public final class com.sun.crypto.provider.TlsKeyMaterialGenerator extends javax.crypto.KeyGeneratorSpi
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.sun.crypto.provider.TlsKeyMaterialGenerator
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: "TlsKeyMaterialGenerator must be initialized using a TlsKeyMaterialParameterSpec"
private sun.security.internal.spec.TlsKeyMaterialParameterSpec spec;
descriptor: Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
flags: (0x0002) ACC_PRIVATE
private int protocolVersion;
descriptor: I
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial javax.crypto.KeyGeneratorSpi.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/crypto/provider/TlsKeyMaterialGenerator;
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 "TlsKeyMaterialGenerator must be initialized using a TlsKeyMaterialParameterSpec"
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 Lcom/sun/crypto/provider/TlsKeyMaterialGenerator;
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=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof sun.security.internal.spec.TlsKeyMaterialParameterSpec
ifne 2
1: new java.security.InvalidAlgorithmParameterException
dup
ldc "TlsKeyMaterialGenerator must be initialized using a TlsKeyMaterialParameterSpec"
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast sun.security.internal.spec.TlsKeyMaterialParameterSpec
putfield com.sun.crypto.provider.TlsKeyMaterialGenerator.spec:Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
3: ldc "RAW"
aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.spec:Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialParameterSpec.getMasterSecret:()Ljavax/crypto/SecretKey;
invokeinterface javax.crypto.SecretKey.getFormat:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
4: new java.security.InvalidAlgorithmParameterException
dup
5: ldc "Key format must be RAW"
6: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.spec:Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialParameterSpec.getMajorVersion:()I
bipush 8
ishl
8: aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.spec:Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialParameterSpec.getMinorVersion:()I
ior
9: putfield com.sun.crypto.provider.TlsKeyMaterialGenerator.protocolVersion:I
10: aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.protocolVersion:I
sipush 768
if_icmplt 11
aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.protocolVersion:I
sipush 771
if_icmple 14
11: StackMap locals:
StackMap stack:
new java.security.InvalidAlgorithmParameterException
dup
12: ldc "Only SSL 3.0, TLS 1.0/1.1/1.2 supported"
13: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/sun/crypto/provider/TlsKeyMaterialGenerator;
0 15 1 params Ljava/security/spec/AlgorithmParameterSpec;
0 15 2 random Ljava/security/SecureRandom;
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 "TlsKeyMaterialGenerator must be initialized using a TlsKeyMaterialParameterSpec"
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 Lcom/sun/crypto/provider/TlsKeyMaterialGenerator;
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=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.spec:Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
ifnonnull 4
1: new java.lang.IllegalStateException
dup
2: ldc "TlsKeyMaterialGenerator must be initialized"
3: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.crypto.provider.TlsKeyMaterialGenerator.engineGenerateKey0:()Ljavax/crypto/SecretKey;
5: areturn
6: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 1
start local 1 7: new java.security.ProviderException
dup
aload 1
invokespecial java.security.ProviderException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/crypto/provider/TlsKeyMaterialGenerator;
7 8 1 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
4 5 6 Class java.security.GeneralSecurityException
private javax.crypto.SecretKey engineGenerateKey0();
descriptor: ()Ljavax/crypto/SecretKey;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=26, args_size=1
start local 0 0: aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.spec:Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialParameterSpec.getMasterSecret:()Ljavax/crypto/SecretKey;
invokeinterface javax.crypto.SecretKey.getEncoded:()[B
astore 1
start local 1 1: aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.spec:Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialParameterSpec.getClientRandom:()[B
astore 2
start local 2 2: aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.spec:Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialParameterSpec.getServerRandom:()[B
astore 3
start local 3 3: aconst_null
astore 4
start local 4 4: aconst_null
astore 5
start local 5 5: aconst_null
astore 6
start local 6 6: aconst_null
astore 7
start local 7 7: aconst_null
astore 8
start local 8 8: aconst_null
astore 9
start local 9 9: aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.spec:Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialParameterSpec.getMacKeyLength:()I
istore 10
start local 10 10: aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.spec:Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialParameterSpec.getExpandedCipherKeyLength:()I
istore 11
start local 11 11: iload 11
ifeq 12
iconst_1
goto 13
StackMap locals: com.sun.crypto.provider.TlsKeyMaterialGenerator byte[] byte[] byte[] javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.spec.IvParameterSpec javax.crypto.spec.IvParameterSpec int int
StackMap stack:
12: iconst_0
StackMap locals:
StackMap stack: int
13: istore 12
start local 12 14: aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.spec:Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialParameterSpec.getCipherKeyLength:()I
istore 13
start local 13 15: aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.spec:Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialParameterSpec.getIvLength:()I
istore 14
start local 14 16: iload 10
iload 13
iadd
17: iload 12
ifeq 18
iconst_0
goto 19
StackMap locals: com.sun.crypto.provider.TlsKeyMaterialGenerator byte[] byte[] byte[] javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.spec.IvParameterSpec javax.crypto.spec.IvParameterSpec int int int int int
StackMap stack: int
18: iload 14
19: StackMap locals: com.sun.crypto.provider.TlsKeyMaterialGenerator byte[] byte[] byte[] javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.spec.IvParameterSpec javax.crypto.spec.IvParameterSpec int int int int int
StackMap stack: int int
iadd
istore 15
start local 15 20: iload 15
iconst_1
ishl
istore 15
21: iload 15
newarray 8
astore 16
start local 16 22: aconst_null
astore 17
start local 17 23: aconst_null
astore 18
start local 18 24: aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.protocolVersion:I
sipush 771
if_icmplt 31
25: aload 3
aload 2
invokestatic com.sun.crypto.provider.TlsPrfGenerator.concat:([B[B)[B
astore 19
start local 19 26: aload 1
getstatic com.sun.crypto.provider.TlsPrfGenerator.LABEL_KEY_EXPANSION:[B
aload 19
27: iload 15
aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.spec:Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialParameterSpec.getPRFHashAlg:()Ljava/lang/String;
28: aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.spec:Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialParameterSpec.getPRFHashLength:()I
aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.spec:Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialParameterSpec.getPRFBlockSize:()I
29: invokestatic com.sun.crypto.provider.TlsPrfGenerator.doTLS12PRF:([B[B[BILjava/lang/String;II)[B
astore 16
end local 19 30: goto 61
StackMap locals: com.sun.crypto.provider.TlsKeyMaterialGenerator byte[] byte[] byte[] javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.spec.IvParameterSpec javax.crypto.spec.IvParameterSpec int int int int int int byte[] java.security.MessageDigest java.security.MessageDigest
StackMap stack:
31: aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.protocolVersion:I
sipush 769
if_icmplt 39
32: ldc "MD5"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 17
33: ldc "SHA1"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 18
34: aload 3
aload 2
invokestatic com.sun.crypto.provider.TlsPrfGenerator.concat:([B[B)[B
astore 19
start local 19 35: aload 1
getstatic com.sun.crypto.provider.TlsPrfGenerator.LABEL_KEY_EXPANSION:[B
aload 19
36: iload 15
aload 17
aload 18
37: invokestatic com.sun.crypto.provider.TlsPrfGenerator.doTLS10PRF:([B[B[BILjava/security/MessageDigest;Ljava/security/MessageDigest;)[B
astore 16
end local 19 38: goto 61
39: StackMap locals:
StackMap stack:
ldc "MD5"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 17
40: ldc "SHA1"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 18
41: iload 15
newarray 8
astore 16
42: bipush 20
newarray 8
astore 19
start local 19 43: iconst_0
istore 20
start local 20 44: iload 15
istore 21
start local 21 45: goto 59
46: StackMap locals: byte[] int int
StackMap stack:
aload 18
getstatic com.sun.crypto.provider.TlsPrfGenerator.SSL3_CONST:[[B
iload 20
aaload
invokevirtual java.security.MessageDigest.update:([B)V
47: aload 18
aload 1
invokevirtual java.security.MessageDigest.update:([B)V
48: aload 18
aload 3
invokevirtual java.security.MessageDigest.update:([B)V
49: aload 18
aload 2
invokevirtual java.security.MessageDigest.update:([B)V
50: aload 18
aload 19
iconst_0
bipush 20
invokevirtual java.security.MessageDigest.digest:([BII)I
pop
51: aload 17
aload 1
invokevirtual java.security.MessageDigest.update:([B)V
52: aload 17
aload 19
invokevirtual java.security.MessageDigest.update:([B)V
53: iload 21
bipush 16
if_icmplt 56
54: aload 17
aload 16
iload 20
iconst_4
ishl
bipush 16
invokevirtual java.security.MessageDigest.digest:([BII)I
pop
55: goto 58
56: StackMap locals:
StackMap stack:
aload 17
aload 19
iconst_0
bipush 16
invokevirtual java.security.MessageDigest.digest:([BII)I
pop
57: aload 19
iconst_0
aload 16
iload 20
iconst_4
ishl
iload 21
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
58: StackMap locals:
StackMap stack:
iinc 20 1
iinc 21 -16
59: StackMap locals:
StackMap stack:
iload 21
60: ifgt 46
end local 21 end local 20 end local 19 61: StackMap locals:
StackMap stack:
iconst_0
istore 19
start local 19 62: iload 10
ifeq 70
63: iload 10
newarray 8
astore 20
start local 20 64: aload 16
iload 19
aload 20
iconst_0
iload 10
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
65: iload 19
iload 10
iadd
istore 19
66: new javax.crypto.spec.SecretKeySpec
dup
aload 20
ldc "Mac"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 4
67: aload 16
iload 19
aload 20
iconst_0
iload 10
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
68: iload 19
iload 10
iadd
istore 19
69: new javax.crypto.spec.SecretKeySpec
dup
aload 20
ldc "Mac"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 5
end local 20 70: StackMap locals: int
StackMap stack:
iload 13
ifne 72
71: new sun.security.internal.spec.TlsKeyMaterialSpec
dup
aload 4
aload 5
invokespecial sun.security.internal.spec.TlsKeyMaterialSpec.<init>:(Ljavax/crypto/SecretKey;Ljavax/crypto/SecretKey;)V
areturn
72: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.spec:Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialParameterSpec.getCipherAlgorithm:()Ljava/lang/String;
astore 20
start local 20 73: iload 13
newarray 8
astore 21
start local 21 74: aload 16
iload 19
aload 21
iconst_0
iload 13
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
75: iload 19
iload 13
iadd
istore 19
76: iload 13
newarray 8
astore 22
start local 22 77: aload 16
iload 19
aload 22
iconst_0
iload 13
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
78: iload 19
iload 13
iadd
istore 19
79: iload 12
ifne 91
80: new javax.crypto.spec.SecretKeySpec
dup
aload 21
aload 20
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 6
81: new javax.crypto.spec.SecretKeySpec
dup
aload 22
aload 20
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 7
82: iload 14
ifeq 136
83: iload 14
newarray 8
astore 23
start local 23 84: aload 16
iload 19
aload 23
iconst_0
iload 14
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
85: iload 19
iload 14
iadd
istore 19
86: new javax.crypto.spec.IvParameterSpec
dup
aload 23
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
astore 8
87: aload 16
iload 19
aload 23
iconst_0
iload 14
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
88: iload 19
iload 14
iadd
istore 19
89: new javax.crypto.spec.IvParameterSpec
dup
aload 23
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
astore 9
end local 23 90: goto 136
91: StackMap locals: java.lang.String byte[] byte[]
StackMap stack:
aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.protocolVersion:I
sipush 770
if_icmplt 95
92: new java.lang.RuntimeException
dup
93: ldc "Internal Error: TLS 1.1+ should not be negotiatingexportable ciphersuites"
94: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
95: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.protocolVersion:I
sipush 769
if_icmpne 115
96: aload 2
aload 3
invokestatic com.sun.crypto.provider.TlsPrfGenerator.concat:([B[B)[B
astore 23
start local 23 97: aload 21
98: getstatic com.sun.crypto.provider.TlsPrfGenerator.LABEL_CLIENT_WRITE_KEY:[B
aload 23
iload 11
aload 17
aload 18
99: invokestatic com.sun.crypto.provider.TlsPrfGenerator.doTLS10PRF:([B[B[BILjava/security/MessageDigest;Ljava/security/MessageDigest;)[B
astore 24
start local 24 100: new javax.crypto.spec.SecretKeySpec
dup
aload 24
aload 20
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 6
101: aload 22
getstatic com.sun.crypto.provider.TlsPrfGenerator.LABEL_SERVER_WRITE_KEY:[B
aload 23
102: iload 11
aload 17
aload 18
103: invokestatic com.sun.crypto.provider.TlsPrfGenerator.doTLS10PRF:([B[B[BILjava/security/MessageDigest;Ljava/security/MessageDigest;)[B
astore 24
104: new javax.crypto.spec.SecretKeySpec
dup
aload 24
aload 20
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 7
105: iload 14
ifeq 136
106: iload 14
newarray 8
astore 24
107: aconst_null
getstatic com.sun.crypto.provider.TlsPrfGenerator.LABEL_IV_BLOCK:[B
aload 23
108: iload 14
iconst_1
ishl
aload 17
aload 18
109: invokestatic com.sun.crypto.provider.TlsPrfGenerator.doTLS10PRF:([B[B[BILjava/security/MessageDigest;Ljava/security/MessageDigest;)[B
astore 25
start local 25 110: aload 25
iconst_0
aload 24
iconst_0
iload 14
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
111: new javax.crypto.spec.IvParameterSpec
dup
aload 24
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
astore 8
112: aload 25
iload 14
aload 24
iconst_0
iload 14
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
113: new javax.crypto.spec.IvParameterSpec
dup
aload 24
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
astore 9
end local 25 end local 24 end local 23 114: goto 136
115: StackMap locals:
StackMap stack:
iload 11
newarray 8
astore 23
start local 23 116: aload 17
aload 21
invokevirtual java.security.MessageDigest.update:([B)V
117: aload 17
aload 2
invokevirtual java.security.MessageDigest.update:([B)V
118: aload 17
aload 3
invokevirtual java.security.MessageDigest.update:([B)V
119: aload 17
invokevirtual java.security.MessageDigest.digest:()[B
iconst_0
aload 23
iconst_0
iload 11
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
120: new javax.crypto.spec.SecretKeySpec
dup
aload 23
aload 20
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 6
121: aload 17
aload 22
invokevirtual java.security.MessageDigest.update:([B)V
122: aload 17
aload 3
invokevirtual java.security.MessageDigest.update:([B)V
123: aload 17
aload 2
invokevirtual java.security.MessageDigest.update:([B)V
124: aload 17
invokevirtual java.security.MessageDigest.digest:()[B
iconst_0
aload 23
iconst_0
iload 11
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
125: new javax.crypto.spec.SecretKeySpec
dup
aload 23
aload 20
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 7
126: iload 14
ifeq 136
127: iload 14
newarray 8
astore 23
128: aload 17
aload 2
invokevirtual java.security.MessageDigest.update:([B)V
129: aload 17
aload 3
invokevirtual java.security.MessageDigest.update:([B)V
130: aload 17
invokevirtual java.security.MessageDigest.digest:()[B
iconst_0
aload 23
iconst_0
iload 14
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
131: new javax.crypto.spec.IvParameterSpec
dup
aload 23
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
astore 8
132: aload 17
aload 3
invokevirtual java.security.MessageDigest.update:([B)V
133: aload 17
aload 2
invokevirtual java.security.MessageDigest.update:([B)V
134: aload 17
invokevirtual java.security.MessageDigest.digest:()[B
iconst_0
aload 23
iconst_0
iload 14
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
135: new javax.crypto.spec.IvParameterSpec
dup
aload 23
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
astore 9
end local 23 136: StackMap locals:
StackMap stack:
new sun.security.internal.spec.TlsKeyMaterialSpec
dup
aload 4
aload 5
137: aload 6
aload 8
aload 7
aload 9
138: invokespecial sun.security.internal.spec.TlsKeyMaterialSpec.<init>:(Ljavax/crypto/SecretKey;Ljavax/crypto/SecretKey;Ljavax/crypto/SecretKey;Ljavax/crypto/spec/IvParameterSpec;Ljavax/crypto/SecretKey;Ljavax/crypto/spec/IvParameterSpec;)V
areturn
end local 22 end local 21 end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 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 139 0 this Lcom/sun/crypto/provider/TlsKeyMaterialGenerator;
1 139 1 masterSecret [B
2 139 2 clientRandom [B
3 139 3 serverRandom [B
4 139 4 clientMacKey Ljavax/crypto/SecretKey;
5 139 5 serverMacKey Ljavax/crypto/SecretKey;
6 139 6 clientCipherKey Ljavax/crypto/SecretKey;
7 139 7 serverCipherKey Ljavax/crypto/SecretKey;
8 139 8 clientIv Ljavax/crypto/spec/IvParameterSpec;
9 139 9 serverIv Ljavax/crypto/spec/IvParameterSpec;
10 139 10 macLength I
11 139 11 expandedKeyLength I
14 139 12 isExportable Z
15 139 13 keyLength I
16 139 14 ivLength I
20 139 15 keyBlockLen I
22 139 16 keyBlock [B
23 139 17 md5 Ljava/security/MessageDigest;
24 139 18 sha Ljava/security/MessageDigest;
26 30 19 seed [B
35 38 19 seed [B
43 61 19 tmp [B
44 61 20 i I
45 61 21 remaining I
62 139 19 ofs I
64 70 20 tmp [B
73 139 20 alg Ljava/lang/String;
74 139 21 clientKeyBytes [B
77 139 22 serverKeyBytes [B
84 90 23 tmp [B
97 114 23 seed [B
100 114 24 tmp [B
110 114 25 block [B
116 136 23 tmp [B
Exceptions:
throws java.security.GeneralSecurityException
}
SourceFile: "TlsKeyMaterialGenerator.java"