public final class com.sun.crypto.provider.TlsPrfGenerator 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.TlsPrfGenerator
super_class: javax.crypto.KeyGeneratorSpi
{
private static final byte[] B0;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final byte[] LABEL_MASTER_SECRET;
descriptor: [B
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final byte[] LABEL_EXTENDED_MASTER_SECRET;
descriptor: [B
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final byte[] LABEL_KEY_EXPANSION;
descriptor: [B
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final byte[] LABEL_CLIENT_WRITE_KEY;
descriptor: [B
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final byte[] LABEL_SERVER_WRITE_KEY;
descriptor: [B
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final byte[] LABEL_IV_BLOCK;
descriptor: [B
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final byte[] HMAC_ipad;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] HMAC_opad;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final byte[][] SSL3_CONST;
descriptor: [[B
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final java.lang.String MSG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "TlsPrfGenerator must be initialized using a TlsPrfParameterSpec"
private sun.security.internal.spec.TlsPrfParameterSpec spec;
descriptor: Lsun/security/internal/spec/TlsPrfParameterSpec;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: iconst_0
newarray 8
putstatic com.sun.crypto.provider.TlsPrfGenerator.B0:[B
1: bipush 13
newarray 8
dup
iconst_0
bipush 109
bastore
dup
iconst_1
bipush 97
bastore
dup
iconst_2
bipush 115
bastore
dup
iconst_3
bipush 116
bastore
dup
iconst_4
bipush 101
bastore
dup
iconst_5
bipush 114
bastore
dup
bipush 6
bipush 32
bastore
dup
bipush 7
bipush 115
bastore
dup
bipush 8
bipush 101
bastore
dup
bipush 9
bipush 99
bastore
dup
bipush 10
bipush 114
bastore
dup
bipush 11
bipush 101
bastore
dup
bipush 12
bipush 116
bastore
2: putstatic com.sun.crypto.provider.TlsPrfGenerator.LABEL_MASTER_SECRET:[B
3: bipush 22
newarray 8
dup
iconst_0
bipush 101
bastore
dup
iconst_1
bipush 120
bastore
dup
iconst_2
bipush 116
bastore
dup
iconst_3
bipush 101
bastore
dup
iconst_4
bipush 110
bastore
dup
iconst_5
bipush 100
bastore
dup
bipush 6
bipush 101
bastore
dup
bipush 7
bipush 100
bastore
dup
bipush 8
bipush 32
bastore
dup
bipush 9
bipush 109
bastore
dup
bipush 10
bipush 97
bastore
dup
bipush 11
bipush 115
bastore
dup
bipush 12
bipush 116
bastore
dup
bipush 13
4: bipush 101
bastore
dup
bipush 14
bipush 114
bastore
dup
bipush 15
bipush 32
bastore
dup
bipush 16
bipush 115
bastore
dup
bipush 17
bipush 101
bastore
dup
bipush 18
bipush 99
bastore
dup
bipush 19
bipush 114
bastore
dup
bipush 20
bipush 101
bastore
dup
bipush 21
bipush 116
bastore
5: putstatic com.sun.crypto.provider.TlsPrfGenerator.LABEL_EXTENDED_MASTER_SECRET:[B
6: bipush 13
newarray 8
dup
iconst_0
bipush 107
bastore
dup
iconst_1
bipush 101
bastore
dup
iconst_2
bipush 121
bastore
dup
iconst_3
bipush 32
bastore
dup
iconst_4
bipush 101
bastore
dup
iconst_5
bipush 120
bastore
dup
bipush 6
bipush 112
bastore
dup
bipush 7
bipush 97
bastore
dup
bipush 8
bipush 110
bastore
dup
bipush 9
bipush 115
bastore
dup
bipush 10
bipush 105
bastore
dup
bipush 11
bipush 111
bastore
dup
bipush 12
bipush 110
bastore
7: putstatic com.sun.crypto.provider.TlsPrfGenerator.LABEL_KEY_EXPANSION:[B
8: bipush 16
newarray 8
dup
iconst_0
bipush 99
bastore
dup
iconst_1
bipush 108
bastore
dup
iconst_2
bipush 105
bastore
dup
iconst_3
bipush 101
bastore
dup
iconst_4
bipush 110
bastore
dup
iconst_5
bipush 116
bastore
dup
bipush 6
bipush 32
bastore
dup
bipush 7
bipush 119
bastore
dup
bipush 8
bipush 114
bastore
dup
bipush 9
bipush 105
bastore
dup
bipush 10
bipush 116
bastore
dup
bipush 11
bipush 101
bastore
dup
bipush 12
bipush 32
bastore
dup
bipush 13
9: bipush 107
bastore
dup
bipush 14
bipush 101
bastore
dup
bipush 15
bipush 121
bastore
10: putstatic com.sun.crypto.provider.TlsPrfGenerator.LABEL_CLIENT_WRITE_KEY:[B
11: bipush 16
newarray 8
dup
iconst_0
bipush 115
bastore
dup
iconst_1
bipush 101
bastore
dup
iconst_2
bipush 114
bastore
dup
iconst_3
bipush 118
bastore
dup
iconst_4
bipush 101
bastore
dup
iconst_5
bipush 114
bastore
dup
bipush 6
bipush 32
bastore
dup
bipush 7
bipush 119
bastore
dup
bipush 8
bipush 114
bastore
dup
bipush 9
bipush 105
bastore
dup
bipush 10
bipush 116
bastore
dup
bipush 11
bipush 101
bastore
dup
bipush 12
bipush 32
bastore
dup
bipush 13
12: bipush 107
bastore
dup
bipush 14
bipush 101
bastore
dup
bipush 15
bipush 121
bastore
13: putstatic com.sun.crypto.provider.TlsPrfGenerator.LABEL_SERVER_WRITE_KEY:[B
14: bipush 8
newarray 8
dup
iconst_0
bipush 73
bastore
dup
iconst_1
bipush 86
bastore
dup
iconst_2
bipush 32
bastore
dup
iconst_3
bipush 98
bastore
dup
iconst_4
bipush 108
bastore
dup
iconst_5
bipush 111
bastore
dup
bipush 6
bipush 99
bastore
dup
bipush 7
bipush 107
bastore
15: putstatic com.sun.crypto.provider.TlsPrfGenerator.LABEL_IV_BLOCK:[B
16: bipush 54
bipush 64
invokestatic com.sun.crypto.provider.TlsPrfGenerator.genPad:(BI)[B
putstatic com.sun.crypto.provider.TlsPrfGenerator.HMAC_ipad:[B
17: bipush 92
bipush 64
invokestatic com.sun.crypto.provider.TlsPrfGenerator.genPad:(BI)[B
putstatic com.sun.crypto.provider.TlsPrfGenerator.HMAC_opad:[B
18: invokestatic com.sun.crypto.provider.TlsPrfGenerator.genConst:()[[B
putstatic com.sun.crypto.provider.TlsPrfGenerator.SSL3_CONST:[[B
19: return
LocalVariableTable:
Start End Slot Name Signature
static byte[] genPad(byte, int);
descriptor: (BI)[B
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iload 1
newarray 8
astore 2
start local 2 1: aload 2
iload 0
invokestatic java.util.Arrays.fill:([BB)V
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 b B
0 3 1 count I
1 3 2 padding [B
MethodParameters:
Name Flags
b
count
static byte[] concat(byte[], byte[]);
descriptor: ([B[B)[B
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
arraylength
istore 2
start local 2 1: aload 1
arraylength
istore 3
start local 3 2: iload 2
iload 3
iadd
newarray 8
astore 4
start local 4 3: aload 0
iconst_0
aload 4
iconst_0
iload 2
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: aload 1
iconst_0
aload 4
iload 2
iload 3
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 b1 [B
0 6 1 b2 [B
1 6 2 n1 I
2 6 3 n2 I
3 6 4 b [B
MethodParameters:
Name Flags
b1
b2
private static byte[][] genConst();
descriptor: ()[[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=0
0: bipush 10
istore 0
start local 0 1: iload 0
anewarray byte[]
astore 1
start local 1 2: iconst_0
istore 2
start local 2 3: goto 8
4: StackMap locals: int byte[][] int
StackMap stack:
iload 2
iconst_1
iadd
newarray 8
astore 3
start local 3 5: aload 3
bipush 65
iload 2
iadd
i2b
invokestatic java.util.Arrays.fill:([BB)V
6: aload 1
iload 2
aload 3
aastore
end local 3 7: iinc 2 1
StackMap locals:
StackMap stack:
8: iload 2
iload 0
if_icmplt 4
end local 2 9: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 10 0 n I
2 10 1 arr [[B
3 9 2 i I
5 7 3 b [B
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/TlsPrfGenerator;
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 "TlsPrfGenerator must be initialized using a TlsPrfParameterSpec"
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/TlsPrfGenerator;
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=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof sun.security.internal.spec.TlsPrfParameterSpec
ifne 2
1: new java.security.InvalidAlgorithmParameterException
dup
ldc "TlsPrfGenerator must be initialized using a TlsPrfParameterSpec"
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast sun.security.internal.spec.TlsPrfParameterSpec
putfield com.sun.crypto.provider.TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
3: aload 0
getfield com.sun.crypto.provider.TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getSecret:()Ljavax/crypto/SecretKey;
astore 3
start local 3 4: aload 3
ifnull 8
ldc "RAW"
aload 3
invokeinterface javax.crypto.SecretKey.getFormat:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 8
5: new java.security.InvalidAlgorithmParameterException
dup
6: ldc "Key encoding format must be RAW"
7: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: javax.crypto.SecretKey
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/crypto/provider/TlsPrfGenerator;
0 9 1 params Ljava/security/spec/AlgorithmParameterSpec;
0 9 2 random Ljava/security/SecureRandom;
4 9 3 key Ljavax/crypto/SecretKey;
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 "TlsPrfGenerator must be initialized using a TlsPrfParameterSpec"
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/TlsPrfGenerator;
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=4, locals=6, args_size=1
start local 0 0: aload 0
getfield com.sun.crypto.provider.TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
ifnonnull 4
1: new java.lang.IllegalStateException
dup
2: ldc "TlsPrfGenerator must be initialized"
3: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.crypto.provider.TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getSecret:()Ljavax/crypto/SecretKey;
astore 1
start local 1 5: aload 1
ifnonnull 6
aconst_null
goto 7
StackMap locals: javax.crypto.SecretKey
StackMap stack:
6: aload 1
invokeinterface javax.crypto.SecretKey.getEncoded:()[B
StackMap locals:
StackMap stack: byte[]
7: astore 2
start local 2 8: aload 0
getfield com.sun.crypto.provider.TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getLabel:()Ljava/lang/String;
ldc "UTF8"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
astore 3
start local 3 9: aload 0
getfield com.sun.crypto.provider.TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getOutputLength:()I
istore 4
start local 4 10: aload 2
aload 3
aload 0
getfield com.sun.crypto.provider.TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getSeed:()[B
iload 4
invokestatic com.sun.crypto.provider.TlsPrfGenerator.doPRF:([B[B[BI)[B
astore 5
start local 5 11: new javax.crypto.spec.SecretKeySpec
dup
aload 5
ldc "TlsPrf"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
12: areturn
end local 5 end local 4 end local 3 13: StackMap locals: com.sun.crypto.provider.TlsPrfGenerator javax.crypto.SecretKey byte[]
StackMap stack: java.security.GeneralSecurityException
astore 3
start local 3 14: new java.security.ProviderException
dup
ldc "Could not generate PRF"
aload 3
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 15: StackMap locals:
StackMap stack: java.io.UnsupportedEncodingException
astore 3
start local 3 16: new java.security.ProviderException
dup
ldc "Could not generate PRF"
aload 3
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/crypto/provider/TlsPrfGenerator;
5 17 1 key Ljavax/crypto/SecretKey;
8 17 2 secret [B
9 13 3 labelBytes [B
10 13 4 n I
11 13 5 prfBytes [B
14 15 3 e Ljava/security/GeneralSecurityException;
16 17 3 e Ljava/io/UnsupportedEncodingException;
Exception table:
from to target type
8 12 13 Class java.security.GeneralSecurityException
8 12 15 Class java.io.UnsupportedEncodingException
static final byte[] doPRF(byte[], byte[], byte[], int);
descriptor: ([B[B[BI)[B
flags: (0x0018) ACC_STATIC, ACC_FINAL
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: ldc "MD5"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 4
start local 4 1: ldc "SHA1"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 5
start local 5 2: aload 0
aload 1
aload 2
iload 3
aload 4
aload 5
invokestatic com.sun.crypto.provider.TlsPrfGenerator.doPRF:([B[B[BILjava/security/MessageDigest;Ljava/security/MessageDigest;)[B
areturn
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 3 0 secret [B
0 3 1 labelBytes [B
0 3 2 seed [B
0 3 3 outputLength I
1 3 4 md5 Ljava/security/MessageDigest;
2 3 5 sha Ljava/security/MessageDigest;
Exceptions:
throws java.security.NoSuchAlgorithmException, java.security.DigestException
MethodParameters:
Name Flags
secret
labelBytes
seed
outputLength
static final byte[] doPRF(byte[], byte[], byte[], int, java.security.MessageDigest, java.security.MessageDigest);
descriptor: ([B[B[BILjava/security/MessageDigest;Ljava/security/MessageDigest;)[B
flags: (0x0018) ACC_STATIC, ACC_FINAL
Code:
stack=8, locals=11, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
ifnonnull 2
1: getstatic com.sun.crypto.provider.TlsPrfGenerator.B0:[B
astore 0
2: StackMap locals:
StackMap stack:
aload 0
arraylength
iconst_1
ishr
istore 6
start local 6 3: iload 6
aload 0
arraylength
iconst_1
iand
iadd
istore 7
start local 7 4: aload 0
astore 8
start local 8 5: iload 7
istore 9
start local 9 6: iload 3
newarray 8
astore 10
start local 10 7: iload 7
bipush 64
if_icmple 11
8: aload 4
aload 0
iconst_0
iload 7
invokevirtual java.security.MessageDigest.update:([BII)V
9: aload 4
invokevirtual java.security.MessageDigest.digest:()[B
astore 8
10: aload 8
arraylength
istore 9
11: StackMap locals: byte[] byte[] byte[] int java.security.MessageDigest java.security.MessageDigest int int byte[] int byte[]
StackMap stack:
aload 4
bipush 16
aload 8
iconst_0
iload 9
aload 1
aload 2
aload 10
invokestatic com.sun.crypto.provider.TlsPrfGenerator.expand:(Ljava/security/MessageDigest;I[BII[B[B[B)V
12: iload 7
bipush 64
if_icmple 17
13: aload 5
aload 0
iload 6
iload 7
invokevirtual java.security.MessageDigest.update:([BII)V
14: aload 5
invokevirtual java.security.MessageDigest.digest:()[B
astore 8
15: aload 8
arraylength
istore 9
16: iconst_0
istore 6
17: StackMap locals:
StackMap stack:
aload 5
bipush 20
aload 8
iload 6
iload 9
aload 1
aload 2
aload 10
invokestatic com.sun.crypto.provider.TlsPrfGenerator.expand:(Ljava/security/MessageDigest;I[BII[B[B[B)V
18: aload 10
areturn
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 19 0 secret [B
0 19 1 labelBytes [B
0 19 2 seed [B
0 19 3 outputLength I
0 19 4 md5 Ljava/security/MessageDigest;
0 19 5 sha Ljava/security/MessageDigest;
3 19 6 off I
4 19 7 seclen I
5 19 8 secKey [B
6 19 9 keyLen I
7 19 10 output [B
Exceptions:
throws java.security.DigestException
MethodParameters:
Name Flags
secret
labelBytes
seed
outputLength
md5
sha
private static final void expand(java.security.MessageDigest, int, byte[], int, int, byte[], byte[], byte[]);
descriptor: (Ljava/security/MessageDigest;I[BII[B[B[B)V
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=6, locals=16, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: getstatic com.sun.crypto.provider.TlsPrfGenerator.HMAC_ipad:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
astore 8
start local 8 1: getstatic com.sun.crypto.provider.TlsPrfGenerator.HMAC_opad:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
astore 9
start local 9 2: iconst_0
istore 10
start local 10 3: goto 7
4: StackMap locals: byte[] byte[] int
StackMap stack:
aload 8
iload 10
dup2
baload
aload 2
iload 10
iload 3
iadd
baload
ixor
i2b
bastore
5: aload 9
iload 10
dup2
baload
aload 2
iload 10
iload 3
iadd
baload
ixor
i2b
bastore
6: iinc 10 1
StackMap locals:
StackMap stack:
7: iload 10
iload 4
if_icmplt 4
end local 10 8: iload 1
newarray 8
astore 10
start local 10 9: aconst_null
astore 11
start local 11 10: aload 7
arraylength
istore 12
start local 12 11: iconst_0
istore 13
start local 13 12: goto 40
13: StackMap locals: java.security.MessageDigest int byte[] int int byte[] byte[] byte[] byte[] byte[] byte[] byte[] int int
StackMap stack:
aload 0
aload 8
invokevirtual java.security.MessageDigest.update:([B)V
14: aload 11
ifnonnull 18
15: aload 0
aload 5
invokevirtual java.security.MessageDigest.update:([B)V
16: aload 0
aload 6
invokevirtual java.security.MessageDigest.update:([B)V
17: goto 19
18: StackMap locals:
StackMap stack:
aload 0
aload 11
invokevirtual java.security.MessageDigest.update:([B)V
19: StackMap locals:
StackMap stack:
aload 0
aload 10
iconst_0
iload 1
invokevirtual java.security.MessageDigest.digest:([BII)I
pop
20: aload 0
aload 9
invokevirtual java.security.MessageDigest.update:([B)V
21: aload 0
aload 10
invokevirtual java.security.MessageDigest.update:([B)V
22: aload 11
ifnonnull 24
23: iload 1
newarray 8
astore 11
24: StackMap locals:
StackMap stack:
aload 0
aload 11
iconst_0
iload 1
invokevirtual java.security.MessageDigest.digest:([BII)I
pop
25: aload 0
aload 8
invokevirtual java.security.MessageDigest.update:([B)V
26: aload 0
aload 11
invokevirtual java.security.MessageDigest.update:([B)V
27: aload 0
aload 5
invokevirtual java.security.MessageDigest.update:([B)V
28: aload 0
aload 6
invokevirtual java.security.MessageDigest.update:([B)V
29: aload 0
aload 10
iconst_0
iload 1
invokevirtual java.security.MessageDigest.digest:([BII)I
pop
30: aload 0
aload 9
invokevirtual java.security.MessageDigest.update:([B)V
31: aload 0
aload 10
invokevirtual java.security.MessageDigest.update:([B)V
32: aload 0
aload 10
iconst_0
iload 1
invokevirtual java.security.MessageDigest.digest:([BII)I
pop
33: iload 1
iload 12
invokestatic java.lang.Math.min:(II)I
istore 14
start local 14 34: iconst_0
istore 15
start local 15 35: goto 38
36: StackMap locals: int int
StackMap stack:
aload 7
iload 13
iinc 13 1
dup2
baload
aload 10
iload 15
baload
ixor
i2b
bastore
37: iinc 15 1
StackMap locals:
StackMap stack:
38: iload 15
iload 14
if_icmplt 36
end local 15 39: iload 12
iload 14
isub
istore 12
end local 14 40: StackMap locals:
StackMap stack:
iload 12
ifgt 13
41: return
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 42 0 digest Ljava/security/MessageDigest;
0 42 1 hmacSize I
0 42 2 secret [B
0 42 3 secOff I
0 42 4 secLen I
0 42 5 label [B
0 42 6 seed [B
0 42 7 output [B
1 42 8 pad1 [B
2 42 9 pad2 [B
3 8 10 i I
9 42 10 tmp [B
10 42 11 aBytes [B
11 42 12 remaining I
12 42 13 ofs I
34 40 14 k I
35 39 15 i I
Exceptions:
throws java.security.DigestException
MethodParameters:
Name Flags
digest
hmacSize
secret
secOff
secLen
label
seed
output
}
SourceFile: "TlsPrfGenerator.java"