public class org.bouncycastle.crypto.generators.DESKeyGenerator extends org.bouncycastle.crypto.CipherKeyGenerator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.crypto.generators.DESKeyGenerator
  super_class: org.bouncycastle.crypto.CipherKeyGenerator
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.crypto.generators.DESKeyGenerator this
         0: .line 7
            aload 0 /* this */
            invokespecial org.bouncycastle.crypto.CipherKeyGenerator.<init>:()V
            return
        end local 0 // org.bouncycastle.crypto.generators.DESKeyGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/crypto/generators/DESKeyGenerator;

  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.DESKeyGenerator this
        start local 1 // org.bouncycastle.crypto.KeyGenerationParameters param
         0: .line 20
            aload 0 /* this */
            aload 1 /* param */
            invokespecial org.bouncycastle.crypto.CipherKeyGenerator.init:(Lorg/bouncycastle/crypto/KeyGenerationParameters;)V
         1: .line 22
            aload 0 /* this */
            getfield org.bouncycastle.crypto.generators.DESKeyGenerator.strength:I
            ifeq 2
            aload 0 /* this */
            getfield org.bouncycastle.crypto.generators.DESKeyGenerator.strength:I
            bipush 7
            if_icmpne 4
         2: .line 24
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 8
            putfield org.bouncycastle.crypto.generators.DESKeyGenerator.strength:I
         3: .line 25
            goto 6
         4: .line 26
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.generators.DESKeyGenerator.strength:I
            bipush 8
            if_icmpeq 6
         5: .line 28
            new java.lang.IllegalArgumentException
            dup
            ldc "DES key must be 64 bits long."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 32
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.bouncycastle.crypto.KeyGenerationParameters param
        end local 0 // org.bouncycastle.crypto.generators.DESKeyGenerator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/bouncycastle/crypto/generators/DESKeyGenerator;
            0    7     1  param  Lorg/bouncycastle/crypto/KeyGenerationParameters;
    MethodParameters:
       Name  Flags
      param  

  public byte[] generateKey();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.bouncycastle.crypto.generators.DESKeyGenerator this
         0: .line 36
            bipush 8
            newarray 8
            astore 1 /* newKey */
        start local 1 // byte[] newKey
         1: .line 40
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.generators.DESKeyGenerator.random:Ljava/security/SecureRandom;
            aload 1 /* newKey */
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
         2: .line 42
            aload 1 /* newKey */
            invokestatic org.bouncycastle.crypto.params.DESParameters.setOddParity:([B)V
         3: .line 44
            aload 1 /* newKey */
            iconst_0
            invokestatic org.bouncycastle.crypto.params.DESParameters.isWeakKey:([BI)Z
            ifne 1
         4: .line 46
            aload 1 /* newKey */
            areturn
        end local 1 // byte[] newKey
        end local 0 // org.bouncycastle.crypto.generators.DESKeyGenerator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/bouncycastle/crypto/generators/DESKeyGenerator;
            1    5     1  newKey  [B
}
SourceFile: "DESKeyGenerator.java"