public class org.bouncycastle.crypto.generators.DESedeKeyGenerator extends org.bouncycastle.crypto.generators.DESKeyGenerator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.crypto.generators.DESedeKeyGenerator
  super_class: org.bouncycastle.crypto.generators.DESKeyGenerator
{
  private static final int MAX_IT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 20

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.crypto.generators.DESedeKeyGenerator this
         0: .line 6
            aload 0 /* this */
            invokespecial org.bouncycastle.crypto.generators.DESKeyGenerator.<init>:()V
            return
        end local 0 // org.bouncycastle.crypto.generators.DESedeKeyGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/crypto/generators/DESedeKeyGenerator;

  public void init(org.bouncycastle.crypto.KeyGenerationParameters);
    descriptor: (Lorg/bouncycastle/crypto/KeyGenerationParameters;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.crypto.generators.DESedeKeyGenerator this
        start local 1 // org.bouncycastle.crypto.KeyGenerationParameters param
         0: .line 23
            aload 0 /* this */
            aload 1 /* param */
            invokevirtual org.bouncycastle.crypto.KeyGenerationParameters.getRandom:()Ljava/security/SecureRandom;
            putfield org.bouncycastle.crypto.generators.DESedeKeyGenerator.random:Ljava/security/SecureRandom;
         1: .line 24
            aload 0 /* this */
            aload 1 /* param */
            invokevirtual org.bouncycastle.crypto.KeyGenerationParameters.getStrength:()I
            bipush 7
            iadd
            bipush 8
            idiv
            putfield org.bouncycastle.crypto.generators.DESedeKeyGenerator.strength:I
         2: .line 26
            aload 0 /* this */
            getfield org.bouncycastle.crypto.generators.DESedeKeyGenerator.strength:I
            ifeq 3
            aload 0 /* this */
            getfield org.bouncycastle.crypto.generators.DESedeKeyGenerator.strength:I
            bipush 21
            if_icmpne 5
         3: .line 28
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 24
            putfield org.bouncycastle.crypto.generators.DESedeKeyGenerator.strength:I
         4: .line 29
            goto 11
         5: .line 30
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.generators.DESedeKeyGenerator.strength:I
            bipush 14
            if_icmpne 8
         6: .line 32
            aload 0 /* this */
            bipush 16
            putfield org.bouncycastle.crypto.generators.DESedeKeyGenerator.strength:I
         7: .line 33
            goto 11
         8: .line 34
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.generators.DESedeKeyGenerator.strength:I
            bipush 24
            if_icmpeq 11
         9: .line 35
            aload 0 /* this */
            getfield org.bouncycastle.crypto.generators.DESedeKeyGenerator.strength:I
            bipush 16
            if_icmpeq 11
        10: .line 37
            new java.lang.IllegalArgumentException
            dup
            ldc "DESede key must be 192 or 128 bits long."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 42
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.bouncycastle.crypto.KeyGenerationParameters param
        end local 0 // org.bouncycastle.crypto.generators.DESedeKeyGenerator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lorg/bouncycastle/crypto/generators/DESedeKeyGenerator;
            0   12     1  param  Lorg/bouncycastle/crypto/KeyGenerationParameters;
    MethodParameters:
       Name  Flags
      param  

  public byte[] generateKey();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.bouncycastle.crypto.generators.DESedeKeyGenerator this
         0: .line 46
            aload 0 /* this */
            getfield org.bouncycastle.crypto.generators.DESedeKeyGenerator.strength:I
            newarray 8
            astore 1 /* newKey */
        start local 1 // byte[] newKey
         1: .line 47
            iconst_0
            istore 2 /* count */
        start local 2 // int count
         2: .line 51
      StackMap locals: byte[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.generators.DESedeKeyGenerator.random:Ljava/security/SecureRandom;
            aload 1 /* newKey */
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
         3: .line 53
            aload 1 /* newKey */
            invokestatic org.bouncycastle.crypto.params.DESedeParameters.setOddParity:([B)V
         4: .line 55
            iinc 2 /* count */ 1
            iload 2 /* count */
            bipush 20
            if_icmpge 5
            aload 1 /* newKey */
            iconst_0
            aload 1 /* newKey */
            arraylength
            invokestatic org.bouncycastle.crypto.params.DESedeParameters.isWeakKey:([BII)Z
            ifne 2
            aload 1 /* newKey */
            iconst_0
            invokestatic org.bouncycastle.crypto.params.DESedeParameters.isRealEDEKey:([BI)Z
            ifeq 2
         5: .line 57
      StackMap locals:
      StackMap stack:
            aload 1 /* newKey */
            iconst_0
            aload 1 /* newKey */
            arraylength
            invokestatic org.bouncycastle.crypto.params.DESedeParameters.isWeakKey:([BII)Z
            ifne 6
            aload 1 /* newKey */
            iconst_0
            invokestatic org.bouncycastle.crypto.params.DESedeParameters.isRealEDEKey:([BI)Z
            ifne 7
         6: .line 59
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Unable to generate DES-EDE key"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 62
      StackMap locals:
      StackMap stack:
            aload 1 /* newKey */
            areturn
        end local 2 // int count
        end local 1 // byte[] newKey
        end local 0 // org.bouncycastle.crypto.generators.DESedeKeyGenerator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/bouncycastle/crypto/generators/DESedeKeyGenerator;
            1    8     1  newKey  [B
            2    8     2   count  I
}
SourceFile: "DESedeKeyGenerator.java"