public final class sun.security.pkcs11.P11TlsMasterSecretGenerator extends javax.crypto.KeyGeneratorSpi
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.security.pkcs11.P11TlsMasterSecretGenerator
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: "TlsMasterSecretGenerator must be initialized using a TlsMasterSecretParameterSpec"
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.TlsMasterSecretParameterSpec spec;
descriptor: Lsun/security/internal/spec/TlsMasterSecretParameterSpec;
flags: (0x0002) ACC_PRIVATE
private sun.security.pkcs11.P11Key p11Key;
descriptor: Lsun/security/pkcs11/P11Key;
flags: (0x0002) ACC_PRIVATE
sun.security.pkcs11.wrapper.CK_VERSION ckVersion;
descriptor: Lsun/security/pkcs11/wrapper/CK_VERSION;
flags: (0x0000)
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.P11TlsMasterSecretGenerator.token:Lsun/security/pkcs11/Token;
2: aload 0
aload 2
putfield sun.security.pkcs11.P11TlsMasterSecretGenerator.algorithm:Ljava/lang/String;
3: aload 0
lload 3
putfield sun.security.pkcs11.P11TlsMasterSecretGenerator.mechanism:J
4: aload 0
lload 3
ldc 881
lcmp
ifne 5
iconst_1
goto 6
StackMap locals: sun.security.pkcs11.P11TlsMasterSecretGenerator sun.security.pkcs11.Token java.lang.String long
StackMap stack: sun.security.pkcs11.P11TlsMasterSecretGenerator
5: iconst_0
StackMap locals: sun.security.pkcs11.P11TlsMasterSecretGenerator sun.security.pkcs11.Token java.lang.String long
StackMap stack: sun.security.pkcs11.P11TlsMasterSecretGenerator int
6: putfield sun.security.pkcs11.P11TlsMasterSecretGenerator.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/P11TlsMasterSecretGenerator;
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 "TlsMasterSecretGenerator must be initialized using a TlsMasterSecretParameterSpec"
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/P11TlsMasterSecretGenerator;
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=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof sun.security.internal.spec.TlsMasterSecretParameterSpec
ifne 2
1: new java.security.InvalidAlgorithmParameterException
dup
ldc "TlsMasterSecretGenerator must be initialized using a TlsMasterSecretParameterSpec"
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
checkcast sun.security.internal.spec.TlsMasterSecretParameterSpec
astore 3
start local 3 3: aload 3
invokevirtual sun.security.internal.spec.TlsMasterSecretParameterSpec.getMajorVersion:()I
bipush 8
ishl
aload 3
invokevirtual sun.security.internal.spec.TlsMasterSecretParameterSpec.getMinorVersion:()I
ior
istore 4
start local 4 4: iload 4
sipush 768
if_icmpne 5
aload 0
getfield sun.security.pkcs11.P11TlsMasterSecretGenerator.supportSSLv3:Z
ifeq 7
StackMap locals: sun.security.internal.spec.TlsMasterSecretParameterSpec int
StackMap stack:
5: iload 4
sipush 768
if_icmplt 7
6: iload 4
sipush 770
if_icmple 15
7: StackMap locals:
StackMap stack:
new java.security.InvalidAlgorithmParameterException
dup
8: new java.lang.StringBuilder
dup
ldc "Only"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.pkcs11.P11TlsMasterSecretGenerator.supportSSLv3:Z
ifeq 9
ldc " SSL 3.0,"
goto 10
StackMap locals: sun.security.pkcs11.P11TlsMasterSecretGenerator java.security.spec.AlgorithmParameterSpec java.security.SecureRandom sun.security.internal.spec.TlsMasterSecretParameterSpec int
StackMap stack: new 7 new 7 java.lang.StringBuilder
9: ldc ""
StackMap locals: sun.security.pkcs11.P11TlsMasterSecretGenerator java.security.spec.AlgorithmParameterSpec java.security.SecureRandom sun.security.internal.spec.TlsMasterSecretParameterSpec int
StackMap stack: new 7 new 7 java.lang.StringBuilder java.lang.String
10: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: ldc " TLS 1.0, and TLS 1.1 are supported (0x"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: 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;
13: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
aload 3
invokevirtual sun.security.internal.spec.TlsMasterSecretParameterSpec.getPremasterSecret:()Ljavax/crypto/SecretKey;
astore 5
start local 5 16: aload 0
aload 0
getfield sun.security.pkcs11.P11TlsMasterSecretGenerator.token:Lsun/security/pkcs11/Token;
aload 5
aconst_null
invokestatic sun.security.pkcs11.P11SecretKeyFactory.convertKey:(Lsun/security/pkcs11/Token;Ljava/security/Key;Ljava/lang/String;)Lsun/security/pkcs11/P11Key;
putfield sun.security.pkcs11.P11TlsMasterSecretGenerator.p11Key:Lsun/security/pkcs11/P11Key;
17: goto 20
StackMap locals: sun.security.pkcs11.P11TlsMasterSecretGenerator java.security.spec.AlgorithmParameterSpec java.security.SecureRandom sun.security.internal.spec.TlsMasterSecretParameterSpec int javax.crypto.SecretKey
StackMap stack: java.security.InvalidKeyException
18: astore 6
start local 6 19: new java.security.InvalidAlgorithmParameterException
dup
ldc "init() failed"
aload 6
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 20: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield sun.security.pkcs11.P11TlsMasterSecretGenerator.spec:Lsun/security/internal/spec/TlsMasterSecretParameterSpec;
21: aload 0
getfield sun.security.pkcs11.P11TlsMasterSecretGenerator.p11Key:Lsun/security/pkcs11/P11Key;
invokevirtual sun.security.pkcs11.P11Key.getAlgorithm:()Ljava/lang/String;
ldc "TlsRsaPremasterSecret"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 27
22: aload 0
iload 4
sipush 768
if_icmpne 23
ldc 881
goto 24
23: StackMap locals:
StackMap stack: sun.security.pkcs11.P11TlsMasterSecretGenerator
ldc 885
24: StackMap locals: sun.security.pkcs11.P11TlsMasterSecretGenerator java.security.spec.AlgorithmParameterSpec java.security.SecureRandom sun.security.internal.spec.TlsMasterSecretParameterSpec int javax.crypto.SecretKey
StackMap stack: sun.security.pkcs11.P11TlsMasterSecretGenerator long
putfield sun.security.pkcs11.P11TlsMasterSecretGenerator.mechanism:J
25: aload 0
new sun.security.pkcs11.wrapper.CK_VERSION
dup
iconst_0
iconst_0
invokespecial sun.security.pkcs11.wrapper.CK_VERSION.<init>:(II)V
putfield sun.security.pkcs11.P11TlsMasterSecretGenerator.ckVersion:Lsun/security/pkcs11/wrapper/CK_VERSION;
26: goto 31
27: StackMap locals:
StackMap stack:
aload 0
iload 4
sipush 768
if_icmpne 28
ldc 883
goto 29
28: StackMap locals:
StackMap stack: sun.security.pkcs11.P11TlsMasterSecretGenerator
ldc 887
29: StackMap locals: sun.security.pkcs11.P11TlsMasterSecretGenerator java.security.spec.AlgorithmParameterSpec java.security.SecureRandom sun.security.internal.spec.TlsMasterSecretParameterSpec int javax.crypto.SecretKey
StackMap stack: sun.security.pkcs11.P11TlsMasterSecretGenerator long
putfield sun.security.pkcs11.P11TlsMasterSecretGenerator.mechanism:J
30: aload 0
aconst_null
putfield sun.security.pkcs11.P11TlsMasterSecretGenerator.ckVersion:Lsun/security/pkcs11/wrapper/CK_VERSION;
31: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lsun/security/pkcs11/P11TlsMasterSecretGenerator;
0 32 1 params Ljava/security/spec/AlgorithmParameterSpec;
0 32 2 random Ljava/security/SecureRandom;
3 32 3 spec Lsun/security/internal/spec/TlsMasterSecretParameterSpec;
4 32 4 version I
16 32 5 key Ljavax/crypto/SecretKey;
19 20 6 e Ljava/security/InvalidKeyException;
Exception table:
from to target type
16 17 18 Class java.security.InvalidKeyException
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 "TlsMasterSecretGenerator must be initialized using a TlsMasterSecretParameterSpec"
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/P11TlsMasterSecretGenerator;
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=14, args_size=1
start local 0 0: aload 0
getfield sun.security.pkcs11.P11TlsMasterSecretGenerator.spec:Lsun/security/internal/spec/TlsMasterSecretParameterSpec;
ifnonnull 4
1: new java.lang.IllegalStateException
dup
2: ldc "TlsMasterSecretGenerator must be initialized"
3: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11TlsMasterSecretGenerator.spec:Lsun/security/internal/spec/TlsMasterSecretParameterSpec;
invokevirtual sun.security.internal.spec.TlsMasterSecretParameterSpec.getClientRandom:()[B
astore 1
start local 1 5: aload 0
getfield sun.security.pkcs11.P11TlsMasterSecretGenerator.spec:Lsun/security/internal/spec/TlsMasterSecretParameterSpec;
invokevirtual sun.security.internal.spec.TlsMasterSecretParameterSpec.getServerRandom:()[B
astore 2
start local 2 6: new sun.security.pkcs11.wrapper.CK_SSL3_RANDOM_DATA
dup
aload 1
aload 2
invokespecial sun.security.pkcs11.wrapper.CK_SSL3_RANDOM_DATA.<init>:([B[B)V
7: astore 3
start local 3 8: new sun.security.pkcs11.wrapper.CK_SSL3_MASTER_KEY_DERIVE_PARAMS
dup
aload 3
aload 0
getfield sun.security.pkcs11.P11TlsMasterSecretGenerator.ckVersion:Lsun/security/pkcs11/wrapper/CK_VERSION;
invokespecial sun.security.pkcs11.wrapper.CK_SSL3_MASTER_KEY_DERIVE_PARAMS.<init>:(Lsun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA;Lsun/security/pkcs11/wrapper/CK_VERSION;)V
9: astore 4
start local 4 10: aconst_null
astore 5
start local 5 11: aload 0
getfield sun.security.pkcs11.P11TlsMasterSecretGenerator.token:Lsun/security/pkcs11/Token;
invokevirtual sun.security.pkcs11.Token.getObjSession:()Lsun/security/pkcs11/Session;
astore 5
12: aload 0
getfield sun.security.pkcs11.P11TlsMasterSecretGenerator.token:Lsun/security/pkcs11/Token;
ldc "generate"
13: ldc 4
ldc 16
iconst_0
anewarray sun.security.pkcs11.wrapper.CK_ATTRIBUTE
14: invokevirtual sun.security.pkcs11.Token.getAttributes:(Ljava/lang/String;JJ[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;
astore 6
start local 6 15: aload 0
getfield sun.security.pkcs11.P11TlsMasterSecretGenerator.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 5
invokevirtual sun.security.pkcs11.Session.id:()J
16: new sun.security.pkcs11.wrapper.CK_MECHANISM
dup
aload 0
getfield sun.security.pkcs11.P11TlsMasterSecretGenerator.mechanism:J
aload 4
invokespecial sun.security.pkcs11.wrapper.CK_MECHANISM.<init>:(JLsun/security/pkcs11/wrapper/CK_SSL3_MASTER_KEY_DERIVE_PARAMS;)V
aload 0
getfield sun.security.pkcs11.P11TlsMasterSecretGenerator.p11Key:Lsun/security/pkcs11/P11Key;
getfield sun.security.pkcs11.P11Key.keyID:J
aload 6
17: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_DeriveKey:(JLsun/security/pkcs11/wrapper/CK_MECHANISM;J[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)J
lstore 7
start local 7 18: aload 4
getfield sun.security.pkcs11.wrapper.CK_SSL3_MASTER_KEY_DERIVE_PARAMS.pVersion:Lsun/security/pkcs11/wrapper/CK_VERSION;
ifnonnull 22
19: iconst_m1
istore 9
start local 9 20: iconst_m1
istore 10
start local 10 21: goto 24
end local 10 end local 9 22: StackMap locals: sun.security.pkcs11.P11TlsMasterSecretGenerator byte[] byte[] sun.security.pkcs11.wrapper.CK_SSL3_RANDOM_DATA sun.security.pkcs11.wrapper.CK_SSL3_MASTER_KEY_DERIVE_PARAMS sun.security.pkcs11.Session sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] long
StackMap stack:
aload 4
getfield sun.security.pkcs11.wrapper.CK_SSL3_MASTER_KEY_DERIVE_PARAMS.pVersion:Lsun/security/pkcs11/wrapper/CK_VERSION;
getfield sun.security.pkcs11.wrapper.CK_VERSION.major:B
istore 9
start local 9 23: aload 4
getfield sun.security.pkcs11.wrapper.CK_SSL3_MASTER_KEY_DERIVE_PARAMS.pVersion:Lsun/security/pkcs11/wrapper/CK_VERSION;
getfield sun.security.pkcs11.wrapper.CK_VERSION.minor:B
istore 10
start local 10 24: StackMap locals: int int
StackMap stack:
aload 5
lload 7
25: ldc "TlsMasterSecret"
sipush 384
aload 6
iload 9
iload 10
26: invokestatic sun.security.pkcs11.P11Key.masterSecretKey:(Lsun/security/pkcs11/Session;JLjava/lang/String;I[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;II)Ljavax/crypto/SecretKey;
astore 11
start local 11 27: aload 11
astore 13
28: aload 0
getfield sun.security.pkcs11.P11TlsMasterSecretGenerator.token:Lsun/security/pkcs11/Token;
aload 5
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
pop
29: aload 13
areturn
end local 11 end local 10 end local 9 end local 7 end local 6 30: StackMap locals: sun.security.pkcs11.P11TlsMasterSecretGenerator byte[] byte[] sun.security.pkcs11.wrapper.CK_SSL3_RANDOM_DATA sun.security.pkcs11.wrapper.CK_SSL3_MASTER_KEY_DERIVE_PARAMS sun.security.pkcs11.Session
StackMap stack: java.lang.Exception
astore 6
start local 6 31: new java.security.ProviderException
dup
ldc "Could not generate key"
aload 6
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 32: StackMap locals:
StackMap stack: java.lang.Throwable
astore 12
33: aload 0
getfield sun.security.pkcs11.P11TlsMasterSecretGenerator.token:Lsun/security/pkcs11/Token;
aload 5
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
pop
34: aload 12
athrow
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lsun/security/pkcs11/P11TlsMasterSecretGenerator;
5 35 1 clientRandom [B
6 35 2 serverRandom [B
8 35 3 random Lsun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA;
10 35 4 params Lsun/security/pkcs11/wrapper/CK_SSL3_MASTER_KEY_DERIVE_PARAMS;
11 35 5 session Lsun/security/pkcs11/Session;
15 30 6 attributes [Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;
18 30 7 keyID J
20 22 9 major I
23 30 9 major I
21 22 10 minor I
24 30 10 minor I
27 30 11 key Ljavax/crypto/SecretKey;
31 32 6 e Ljava/lang/Exception;
Exception table:
from to target type
11 28 30 Class java.lang.Exception
11 28 32 any
30 32 32 any
}
SourceFile: "P11TlsMasterSecretGenerator.java"