final class com.sun.crypto.provider.KeyGeneratorCore
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.sun.crypto.provider.KeyGeneratorCore
super_class: java.lang.Object
{
private final java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int defaultKeySize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int keySize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.security.SecureRandom random;
descriptor: Ljava/security/SecureRandom;
flags: (0x0002) ACC_PRIVATE
void <init>(java.lang.String, int);
descriptor: (Ljava/lang/String;I)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.sun.crypto.provider.KeyGeneratorCore.name:Ljava/lang/String;
2: aload 0
iload 2
putfield com.sun.crypto.provider.KeyGeneratorCore.defaultKeySize:I
3: aload 0
aconst_null
invokevirtual com.sun.crypto.provider.KeyGeneratorCore.implInit:(Ljava/security/SecureRandom;)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/crypto/provider/KeyGeneratorCore;
0 5 1 name Ljava/lang/String;
0 5 2 defaultKeySize I
MethodParameters:
Name Flags
name
defaultKeySize
void implInit(java.security.SecureRandom);
descriptor: (Ljava/security/SecureRandom;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield com.sun.crypto.provider.KeyGeneratorCore.defaultKeySize:I
putfield com.sun.crypto.provider.KeyGeneratorCore.keySize:I
1: aload 0
aload 1
putfield com.sun.crypto.provider.KeyGeneratorCore.random:Ljava/security/SecureRandom;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/crypto/provider/KeyGeneratorCore;
0 3 1 random Ljava/security/SecureRandom;
MethodParameters:
Name Flags
random
void implInit(java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom);
descriptor: (Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.security.InvalidAlgorithmParameterException
dup
1: new java.lang.StringBuilder
dup
aload 0
getfield com.sun.crypto.provider.KeyGeneratorCore.name:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " key generation does not take any parameters"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
2: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/crypto/provider/KeyGeneratorCore;
0 3 1 params Ljava/security/spec/AlgorithmParameterSpec;
0 3 2 random Ljava/security/SecureRandom;
Exceptions:
throws java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
params
random
void implInit(int, java.security.SecureRandom);
descriptor: (ILjava/security/SecureRandom;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
bipush 40
if_icmpge 4
1: new java.security.InvalidParameterException
dup
2: ldc "Key length must be at least 40 bits"
3: invokespecial java.security.InvalidParameterException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield com.sun.crypto.provider.KeyGeneratorCore.keySize:I
5: aload 0
aload 2
putfield com.sun.crypto.provider.KeyGeneratorCore.random:Ljava/security/SecureRandom;
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/crypto/provider/KeyGeneratorCore;
0 7 1 keysize I
0 7 2 random Ljava/security/SecureRandom;
MethodParameters:
Name Flags
keysize
random
javax.crypto.SecretKey implGenerateKey();
descriptor: ()Ljavax/crypto/SecretKey;
flags: (0x0000)
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.crypto.provider.KeyGeneratorCore.random:Ljava/security/SecureRandom;
ifnonnull 2
1: aload 0
invokestatic com.sun.crypto.provider.SunJCE.getRandom:()Ljava/security/SecureRandom;
putfield com.sun.crypto.provider.KeyGeneratorCore.random:Ljava/security/SecureRandom;
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.crypto.provider.KeyGeneratorCore.keySize:I
bipush 7
iadd
iconst_3
ishr
newarray 8
astore 1
start local 1 3: aload 0
getfield com.sun.crypto.provider.KeyGeneratorCore.random:Ljava/security/SecureRandom;
aload 1
invokevirtual java.security.SecureRandom.nextBytes:([B)V
4: new javax.crypto.spec.SecretKeySpec
dup
aload 1
aload 0
getfield com.sun.crypto.provider.KeyGeneratorCore.name:Ljava/lang/String;
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/crypto/provider/KeyGeneratorCore;
3 5 1 b [B
}
SourceFile: "KeyGeneratorCore.java"
NestMembers:
com.sun.crypto.provider.KeyGeneratorCore$ARCFOURKeyGenerator com.sun.crypto.provider.KeyGeneratorCore$ChaCha20KeyGenerator com.sun.crypto.provider.KeyGeneratorCore$HmacSHA2KG com.sun.crypto.provider.KeyGeneratorCore$HmacSHA2KG$SHA224 com.sun.crypto.provider.KeyGeneratorCore$HmacSHA2KG$SHA256 com.sun.crypto.provider.KeyGeneratorCore$HmacSHA2KG$SHA384 com.sun.crypto.provider.KeyGeneratorCore$HmacSHA2KG$SHA512 com.sun.crypto.provider.KeyGeneratorCore$RC2KeyGenerator
InnerClasses:
public final ARCFOURKeyGenerator = com.sun.crypto.provider.KeyGeneratorCore$ARCFOURKeyGenerator of com.sun.crypto.provider.KeyGeneratorCore
public final ChaCha20KeyGenerator = com.sun.crypto.provider.KeyGeneratorCore$ChaCha20KeyGenerator of com.sun.crypto.provider.KeyGeneratorCore
abstract HmacSHA2KG = com.sun.crypto.provider.KeyGeneratorCore$HmacSHA2KG of com.sun.crypto.provider.KeyGeneratorCore
public final RC2KeyGenerator = com.sun.crypto.provider.KeyGeneratorCore$RC2KeyGenerator of com.sun.crypto.provider.KeyGeneratorCore