final class sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator extends javax.crypto.KeyGeneratorSpi
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator
super_class: javax.crypto.KeyGeneratorSpi
{
private static final java.lang.String MSG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "TlsRsaPremasterSecretGenerator must be initialized using a TlsRsaPremasterSecretParameterSpec"
private final sun.security.pkcs11.Token token;
descriptor: Lsun/security/pkcs11/Token;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String algorithm;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long mechanism;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec spec;
descriptor: Lsun/security/internal/spec/TlsRsaPremasterSecretParameterSpec;
flags: (0x0002) ACC_PRIVATE
private final boolean supportSSLv3;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(sun.security.pkcs11.Token, java.lang.String, long);
descriptor: (Lsun/security/pkcs11/Token;Ljava/lang/String;J)V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial javax.crypto.KeyGeneratorSpi.<init>:()V
1: aload 0
aload 1
putfield sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator.token:Lsun/security/pkcs11/Token;
2: aload 0
aload 2
putfield sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator.algorithm:Ljava/lang/String;
3: aload 0
lload 3
putfield sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator.mechanism:J
4: aload 0
lload 3
ldc 880
lcmp
ifne 5
iconst_1
goto 6
StackMap locals: sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator sun.security.pkcs11.Token java.lang.String long
StackMap stack: sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator
5: iconst_0
StackMap locals: sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator sun.security.pkcs11.Token java.lang.String long
StackMap stack: sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator int
6: putfield sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator.supportSSLv3:Z
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/pkcs11/P11TlsRsaPremasterSecretGenerator;
0 8 1 token Lsun/security/pkcs11/Token;
0 8 2 algorithm Ljava/lang/String;
0 8 3 mechanism J
Exceptions:
throws sun.security.pkcs11.wrapper.PKCS11Exception
MethodParameters:
Name Flags
token
algorithm
mechanism
protected void engineInit(java.security.SecureRandom);
descriptor: (Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.security.InvalidParameterException
dup
ldc "TlsRsaPremasterSecretGenerator must be initialized using a TlsRsaPremasterSecretParameterSpec"
invokespecial java.security.InvalidParameterException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs11/P11TlsRsaPremasterSecretGenerator;
0 1 1 random Ljava/security/SecureRandom;
MethodParameters:
Name Flags
random
protected void engineInit(java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom);
descriptor: (Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec
ifne 2
1: new java.security.InvalidAlgorithmParameterException
dup
ldc "TlsRsaPremasterSecretGenerator must be initialized using a TlsRsaPremasterSecretParameterSpec"
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
checkcast sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec
3: astore 3
start local 3 4: aload 3
invokevirtual sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec.getMajorVersion:()I
bipush 8
ishl
aload 3
invokevirtual sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec.getMinorVersion:()I
ior
istore 4
start local 4 5: iload 4
sipush 768
if_icmpne 6
aload 0
getfield sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator.supportSSLv3:Z
ifeq 8
StackMap locals: sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec int
StackMap stack:
6: iload 4
sipush 768
if_icmplt 8
7: iload 4
sipush 770
if_icmple 16
8: StackMap locals:
StackMap stack:
new java.security.InvalidAlgorithmParameterException
dup
9: new java.lang.StringBuilder
dup
ldc "Only"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator.supportSSLv3:Z
ifeq 10
ldc " SSL 3.0,"
goto 11
StackMap locals: sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator java.security.spec.AlgorithmParameterSpec java.security.SecureRandom sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec int
StackMap stack: new 8 new 8 java.lang.StringBuilder
10: ldc ""
StackMap locals: sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator java.security.spec.AlgorithmParameterSpec java.security.SecureRandom sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec int
StackMap stack: new 8 new 8 java.lang.StringBuilder java.lang.String
11: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: ldc " TLS 1.0, and TLS 1.1 are supported (0x"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: iload 4
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator.spec:Lsun/security/internal/spec/TlsRsaPremasterSecretParameterSpec;
17: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/security/pkcs11/P11TlsRsaPremasterSecretGenerator;
0 18 1 params Ljava/security/spec/AlgorithmParameterSpec;
0 18 2 random Ljava/security/SecureRandom;
4 18 3 spec Lsun/security/internal/spec/TlsRsaPremasterSecretParameterSpec;
5 18 4 version I
Exceptions:
throws java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
params
random
protected void engineInit(int, java.security.SecureRandom);
descriptor: (ILjava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.security.InvalidParameterException
dup
ldc "TlsRsaPremasterSecretGenerator must be initialized using a TlsRsaPremasterSecretParameterSpec"
invokespecial java.security.InvalidParameterException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs11/P11TlsRsaPremasterSecretGenerator;
0 1 1 keysize I
0 1 2 random Ljava/security/SecureRandom;
MethodParameters:
Name Flags
keysize
random
protected javax.crypto.SecretKey engineGenerateKey();
descriptor: ()Ljavax/crypto/SecretKey;
flags: (0x0004) ACC_PROTECTED
Code:
stack=8, locals=9, args_size=1
start local 0 0: aload 0
getfield sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator.spec:Lsun/security/internal/spec/TlsRsaPremasterSecretParameterSpec;
ifnonnull 4
1: new java.lang.IllegalStateException
dup
2: ldc "TlsRsaPremasterSecretGenerator must be initialized"
3: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
new sun.security.pkcs11.wrapper.CK_VERSION
dup
5: aload 0
getfield sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator.spec:Lsun/security/internal/spec/TlsRsaPremasterSecretParameterSpec;
invokevirtual sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec.getMajorVersion:()I
aload 0
getfield sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator.spec:Lsun/security/internal/spec/TlsRsaPremasterSecretParameterSpec;
invokevirtual sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec.getMinorVersion:()I
6: invokespecial sun.security.pkcs11.wrapper.CK_VERSION.<init>:(II)V
astore 1
start local 1 7: aconst_null
astore 2
start local 2 8: aload 0
getfield sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator.token:Lsun/security/pkcs11/Token;
invokevirtual sun.security.pkcs11.Token.getObjSession:()Lsun/security/pkcs11/Session;
astore 2
9: aload 0
getfield sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator.token:Lsun/security/pkcs11/Token;
10: ldc "generate"
ldc 4
11: ldc 16
iconst_0
anewarray sun.security.pkcs11.wrapper.CK_ATTRIBUTE
12: invokevirtual sun.security.pkcs11.Token.getAttributes:(Ljava/lang/String;JJ[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;
astore 3
start local 3 13: aload 0
getfield sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 2
invokevirtual sun.security.pkcs11.Session.id:()J
14: new sun.security.pkcs11.wrapper.CK_MECHANISM
dup
aload 0
getfield sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator.mechanism:J
aload 1
invokespecial sun.security.pkcs11.wrapper.CK_MECHANISM.<init>:(JLsun/security/pkcs11/wrapper/CK_VERSION;)V
aload 3
15: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_GenerateKey:(JLsun/security/pkcs11/wrapper/CK_MECHANISM;[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)J
lstore 4
start local 4 16: aload 2
17: lload 4
ldc "TlsRsaPremasterSecret"
sipush 384
aload 3
18: invokestatic sun.security.pkcs11.P11Key.secretKey:(Lsun/security/pkcs11/Session;JLjava/lang/String;I[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)Ljavax/crypto/SecretKey;
astore 6
start local 6 19: aload 6
astore 8
20: aload 0
getfield sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator.token:Lsun/security/pkcs11/Token;
aload 2
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
pop
21: aload 8
areturn
end local 6 end local 4 end local 3 22: StackMap locals: sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator sun.security.pkcs11.wrapper.CK_VERSION sun.security.pkcs11.Session
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
astore 3
start local 3 23: new java.security.ProviderException
dup
24: ldc "Could not generate premaster secret"
aload 3
25: invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 26: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
27: aload 0
getfield sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator.token:Lsun/security/pkcs11/Token;
aload 2
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
pop
28: aload 7
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lsun/security/pkcs11/P11TlsRsaPremasterSecretGenerator;
7 29 1 version Lsun/security/pkcs11/wrapper/CK_VERSION;
8 29 2 session Lsun/security/pkcs11/Session;
13 22 3 attributes [Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;
16 22 4 keyID J
19 22 6 key Ljavax/crypto/SecretKey;
23 26 3 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
Exception table:
from to target type
8 20 22 Class sun.security.pkcs11.wrapper.PKCS11Exception
8 20 26 any
22 26 26 any
}
SourceFile: "P11TlsRsaPremasterSecretGenerator.java"