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
newarray 8
astore 20
start local 20 63: aload 16
iload 19
aload 20
iconst_0
iload 10
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
64: iload 19
iload 10
iadd
istore 19
65: new javax.crypto.spec.SecretKeySpec
dup
aload 20
ldc "Mac"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 4
66: aload 16
iload 19
aload 20
iconst_0
iload 10
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
67: iload 19
iload 10
iadd
istore 19
68: new javax.crypto.spec.SecretKeySpec
dup
aload 20
ldc "Mac"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 5
69: iload 13
ifne 71
70: 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
71: StackMap locals: int byte[]
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 21
start local 21 72: iload 13
newarray 8
astore 22
start local 22 73: aload 16
iload 19
aload 22
iconst_0
iload 13
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
74: iload 19
iload 13
iadd
istore 19
75: iload 13
newarray 8
astore 23
start local 23 76: aload 16
iload 19
aload 23
iconst_0
iload 13
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
77: iload 19
iload 13
iadd
istore 19
78: iload 12
ifne 90
79: new javax.crypto.spec.SecretKeySpec
dup
aload 22
aload 21
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 6
80: new javax.crypto.spec.SecretKeySpec
dup
aload 23
aload 21
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 7
81: iload 14
ifeq 135
82: iload 14
newarray 8
astore 20
83: aload 16
iload 19
aload 20
iconst_0
iload 14
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
84: iload 19
iload 14
iadd
istore 19
85: new javax.crypto.spec.IvParameterSpec
dup
aload 20
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
astore 8
86: aload 16
iload 19
aload 20
iconst_0
iload 14
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
87: iload 19
iload 14
iadd
istore 19
88: new javax.crypto.spec.IvParameterSpec
dup
aload 20
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
astore 9
89: goto 135
90: StackMap locals: java.lang.String byte[] byte[]
StackMap stack:
aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.protocolVersion:I
sipush 770
if_icmplt 94
91: new java.lang.RuntimeException
dup
92: ldc "Internal Error: TLS 1.1+ should not be negotiatingexportable ciphersuites"
93: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
94: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.crypto.provider.TlsKeyMaterialGenerator.protocolVersion:I
sipush 769
if_icmpne 114
95: aload 2
aload 3
invokestatic com.sun.crypto.provider.TlsPrfGenerator.concat:([B[B)[B
astore 24
start local 24 96: aload 22
getstatic com.sun.crypto.provider.TlsPrfGenerator.LABEL_CLIENT_WRITE_KEY:[B
aload 24
97: iload 11
aload 17
aload 18
98: invokestatic com.sun.crypto.provider.TlsPrfGenerator.doTLS10PRF:([B[B[BILjava/security/MessageDigest;Ljava/security/MessageDigest;)[B
astore 20
99: new javax.crypto.spec.SecretKeySpec
dup
aload 20
aload 21
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 6
100: aload 23
getstatic com.sun.crypto.provider.TlsPrfGenerator.LABEL_SERVER_WRITE_KEY:[B
aload 24
101: iload 11
aload 17
aload 18
102: invokestatic com.sun.crypto.provider.TlsPrfGenerator.doTLS10PRF:([B[B[BILjava/security/MessageDigest;Ljava/security/MessageDigest;)[B
astore 20
103: new javax.crypto.spec.SecretKeySpec
dup
aload 20
aload 21
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 7
104: iload 14
ifeq 135
105: iload 14
newarray 8
astore 20
106: aconst_null
getstatic com.sun.crypto.provider.TlsPrfGenerator.LABEL_IV_BLOCK:[B
aload 24
107: iload 14
iconst_1
ishl
aload 17
aload 18
108: invokestatic com.sun.crypto.provider.TlsPrfGenerator.doTLS10PRF:([B[B[BILjava/security/MessageDigest;Ljava/security/MessageDigest;)[B
astore 25
start local 25 109: aload 25
iconst_0
aload 20
iconst_0
iload 14
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
110: new javax.crypto.spec.IvParameterSpec
dup
aload 20
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
astore 8
111: aload 25
iload 14
aload 20
iconst_0
iload 14
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
112: new javax.crypto.spec.IvParameterSpec
dup
aload 20
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
astore 9
end local 25 end local 24 113: goto 135
114: StackMap locals:
StackMap stack:
iload 11
newarray 8
astore 20
115: aload 17
aload 22
invokevirtual java.security.MessageDigest.update:([B)V
116: aload 17
aload 2
invokevirtual java.security.MessageDigest.update:([B)V
117: aload 17
aload 3
invokevirtual java.security.MessageDigest.update:([B)V
118: aload 17
invokevirtual java.security.MessageDigest.digest:()[B
iconst_0
aload 20
iconst_0
iload 11
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
119: new javax.crypto.spec.SecretKeySpec
dup
aload 20
aload 21
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 6
120: aload 17
aload 23
invokevirtual java.security.MessageDigest.update:([B)V
121: aload 17
aload 3
invokevirtual java.security.MessageDigest.update:([B)V
122: aload 17
aload 2
invokevirtual java.security.MessageDigest.update:([B)V
123: aload 17
invokevirtual java.security.MessageDigest.digest:()[B
iconst_0
aload 20
iconst_0
iload 11
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
124: new javax.crypto.spec.SecretKeySpec
dup
aload 20
aload 21
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 7
125: iload 14
ifeq 135
126: iload 14
newarray 8
astore 20
127: aload 17
aload 2
invokevirtual java.security.MessageDigest.update:([B)V
128: aload 17
aload 3
invokevirtual java.security.MessageDigest.update:([B)V
129: aload 17
invokevirtual java.security.MessageDigest.digest:()[B
iconst_0
aload 20
iconst_0
iload 14
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
130: new javax.crypto.spec.IvParameterSpec
dup
aload 20
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
astore 8
131: aload 17
aload 3
invokevirtual java.security.MessageDigest.update:([B)V
132: aload 17
aload 2
invokevirtual java.security.MessageDigest.update:([B)V
133: aload 17
invokevirtual java.security.MessageDigest.digest:()[B
iconst_0
aload 20
iconst_0
iload 14
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
134: new javax.crypto.spec.IvParameterSpec
dup
aload 20
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
astore 9
135: StackMap locals:
StackMap stack:
new sun.security.internal.spec.TlsKeyMaterialSpec
dup
aload 4
aload 5
136: aload 6
aload 8
aload 7
aload 9
137: 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 23 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 138 0 this Lcom/sun/crypto/provider/TlsKeyMaterialGenerator;
1 138 1 masterSecret [B
2 138 2 clientRandom [B
3 138 3 serverRandom [B
4 138 4 clientMacKey Ljavax/crypto/SecretKey;
5 138 5 serverMacKey Ljavax/crypto/SecretKey;
6 138 6 clientCipherKey Ljavax/crypto/SecretKey;
7 138 7 serverCipherKey Ljavax/crypto/SecretKey;
8 138 8 clientIv Ljavax/crypto/spec/IvParameterSpec;
9 138 9 serverIv Ljavax/crypto/spec/IvParameterSpec;
10 138 10 macLength I
11 138 11 expandedKeyLength I
14 138 12 isExportable Z
15 138 13 keyLength I
16 138 14 ivLength I
20 138 15 keyBlockLen I
22 138 16 keyBlock [B
23 138 17 md5 Ljava/security/MessageDigest;
24 138 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 138 19 ofs I
63 138 20 tmp [B
72 138 21 alg Ljava/lang/String;
73 138 22 clientKeyBytes [B
76 138 23 serverKeyBytes [B
96 113 24 seed [B
109 113 25 block [B
Exceptions:
throws java.security.GeneralSecurityException
}
SourceFile: "TlsKeyMaterialGenerator.java"