abstract class com.sun.crypto.provider.TlsPrfGenerator extends javax.crypto.KeyGeneratorSpi
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
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_ipad64;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] HMAC_ipad128;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] HMAC_opad64;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] HMAC_opad128;
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_ipad64:[B
17: bipush 54
sipush 128
invokestatic com.sun.crypto.provider.TlsPrfGenerator.genPad:(BI)[B
putstatic com.sun.crypto.provider.TlsPrfGenerator.HMAC_ipad128:[B
18: bipush 92
bipush 64
invokestatic com.sun.crypto.provider.TlsPrfGenerator.genPad:(BI)[B
putstatic com.sun.crypto.provider.TlsPrfGenerator.HMAC_opad64:[B
19: bipush 92
sipush 128
invokestatic com.sun.crypto.provider.TlsPrfGenerator.genPad:(BI)[B
putstatic com.sun.crypto.provider.TlsPrfGenerator.HMAC_opad128:[B
20: invokestatic com.sun.crypto.provider.TlsPrfGenerator.genConst:()[[B
putstatic com.sun.crypto.provider.TlsPrfGenerator.SSL3_CONST:[[B
21: 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
javax.crypto.SecretKey engineGenerateKey0(boolean);
descriptor: (Z)Ljavax/crypto/SecretKey;
flags: (0x0000)
Code:
stack=7, locals=7, args_size=2
start local 0 start local 1 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 2
start local 2 5: aload 2
ifnonnull 6
aconst_null
goto 7
StackMap locals: javax.crypto.SecretKey
StackMap stack:
6: aload 2
invokeinterface javax.crypto.SecretKey.getEncoded:()[B
StackMap locals:
StackMap stack: byte[]
7: astore 3
start local 3 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;
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
astore 4
start local 4 9: aload 0
getfield com.sun.crypto.provider.TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getOutputLength:()I
istore 5
start local 5 10: iload 1
ifeq 16
11: aload 3
aload 4
aload 0
getfield com.sun.crypto.provider.TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getSeed:()[B
iload 5
12: aload 0
getfield com.sun.crypto.provider.TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getPRFHashAlg:()Ljava/lang/String;
aload 0
getfield com.sun.crypto.provider.TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getPRFHashLength:()I
13: aload 0
getfield com.sun.crypto.provider.TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getPRFBlockSize:()I
14: invokestatic com.sun.crypto.provider.TlsPrfGenerator.doTLS12PRF:([B[B[BILjava/lang/String;II)[B
15: goto 17
16: StackMap locals: byte[] byte[] int
StackMap stack:
aload 3
aload 4
aload 0
getfield com.sun.crypto.provider.TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getSeed:()[B
iload 5
invokestatic com.sun.crypto.provider.TlsPrfGenerator.doTLS10PRF:([B[B[BI)[B
17: StackMap locals:
StackMap stack: byte[]
astore 6
start local 6 18: new javax.crypto.spec.SecretKeySpec
dup
aload 6
ldc "TlsPrf"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
19: areturn
end local 6 end local 5 end local 4 20: StackMap locals: com.sun.crypto.provider.TlsPrfGenerator int javax.crypto.SecretKey byte[]
StackMap stack: java.security.GeneralSecurityException
astore 4
start local 4 21: new java.security.ProviderException
dup
ldc "Could not generate PRF"
aload 4
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/sun/crypto/provider/TlsPrfGenerator;
0 22 1 tls12 Z
5 22 2 key Ljavax/crypto/SecretKey;
8 22 3 secret [B
9 20 4 labelBytes [B
10 20 5 n I
18 20 6 prfBytes [B
21 22 4 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
8 19 20 Class java.security.GeneralSecurityException
MethodParameters:
Name Flags
tls12
static byte[] doTLS12PRF(byte[], byte[], byte[], int, java.lang.String, int, int);
descriptor: ([B[B[BILjava/lang/String;II)[B
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 4
ifnonnull 2
1: new java.security.NoSuchAlgorithmException
dup
ldc "Unspecified PRF algorithm"
invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 4
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 7
start local 7 3: aload 0
aload 1
aload 2
iload 3
4: aload 7
iload 5
iload 6
5: invokestatic com.sun.crypto.provider.TlsPrfGenerator.doTLS12PRF:([B[B[BILjava/security/MessageDigest;II)[B
areturn
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 6 0 secret [B
0 6 1 labelBytes [B
0 6 2 seed [B
0 6 3 outputLength I
0 6 4 prfHash Ljava/lang/String;
0 6 5 prfHashLength I
0 6 6 prfBlockSize I
3 6 7 prfMD Ljava/security/MessageDigest;
Exceptions:
throws java.security.NoSuchAlgorithmException, java.security.DigestException
MethodParameters:
Name Flags
secret
labelBytes
seed
outputLength
prfHash
prfHashLength
prfBlockSize
static byte[] doTLS12PRF(byte[], byte[], byte[], int, java.security.MessageDigest, int, int);
descriptor: ([B[B[BILjava/security/MessageDigest;II)[B
flags: (0x0008) ACC_STATIC
Code:
stack=10, locals=10, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
ifnonnull 2
1: getstatic com.sun.crypto.provider.TlsPrfGenerator.B0:[B
astore 0
2: StackMap locals:
StackMap stack:
aload 0
arraylength
iload 6
if_icmple 4
3: aload 4
aload 0
invokevirtual java.security.MessageDigest.digest:([B)[B
astore 0
4: StackMap locals:
StackMap stack:
iload 3
newarray 8
astore 7
start local 7 5: iload 6
lookupswitch { // 2
64: 6
128: 9
default: 12
}
6: StackMap locals: byte[]
StackMap stack:
getstatic com.sun.crypto.provider.TlsPrfGenerator.HMAC_ipad64:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
astore 8
start local 8 7: getstatic com.sun.crypto.provider.TlsPrfGenerator.HMAC_opad64:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
astore 9
start local 9 8: goto 13
end local 9 end local 8 9: StackMap locals:
StackMap stack:
getstatic com.sun.crypto.provider.TlsPrfGenerator.HMAC_ipad128:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
astore 8
start local 8 10: getstatic com.sun.crypto.provider.TlsPrfGenerator.HMAC_opad128:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
astore 9
start local 9 11: goto 13
end local 9 end local 8 12: StackMap locals:
StackMap stack:
new java.security.DigestException
dup
ldc "Unexpected block size."
invokespecial java.security.DigestException.<init>:(Ljava/lang/String;)V
athrow
start local 8 start local 9 13: StackMap locals: byte[] byte[]
StackMap stack:
aload 4
iload 5
aload 0
iconst_0
aload 0
arraylength
aload 1
14: aload 2
aload 7
aload 8
aload 9
15: invokestatic com.sun.crypto.provider.TlsPrfGenerator.expand:(Ljava/security/MessageDigest;I[BII[B[B[B[B[B)V
16: aload 7
areturn
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 17 0 secret [B
0 17 1 labelBytes [B
0 17 2 seed [B
0 17 3 outputLength I
0 17 4 mdPRF Ljava/security/MessageDigest;
0 17 5 mdPRFLen I
0 17 6 mdPRFBlockSize I
5 17 7 output [B
7 9 8 ipad [B
10 12 8 ipad [B
13 17 8 ipad [B
8 9 9 opad [B
11 12 9 opad [B
13 17 9 opad [B
Exceptions:
throws java.security.DigestException
MethodParameters:
Name Flags
secret
labelBytes
seed
outputLength
mdPRF
mdPRFLen
mdPRFBlockSize
static byte[] doTLS10PRF(byte[], byte[], byte[], int);
descriptor: ([B[B[BI)[B
flags: (0x0008) ACC_STATIC
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.doTLS10PRF:([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 byte[] doTLS10PRF(byte[], byte[], byte[], int, java.security.MessageDigest, java.security.MessageDigest);
descriptor: ([B[B[BILjava/security/MessageDigest;Ljava/security/MessageDigest;)[B
flags: (0x0008) ACC_STATIC
Code:
stack=10, 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
12: getstatic com.sun.crypto.provider.TlsPrfGenerator.HMAC_ipad64:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
getstatic com.sun.crypto.provider.TlsPrfGenerator.HMAC_opad64:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
13: invokestatic com.sun.crypto.provider.TlsPrfGenerator.expand:(Ljava/security/MessageDigest;I[BII[B[B[B[B[B)V
14: iload 7
bipush 64
if_icmple 19
15: aload 5
aload 0
iload 6
iload 7
invokevirtual java.security.MessageDigest.update:([BII)V
16: aload 5
invokevirtual java.security.MessageDigest.digest:()[B
astore 8
17: aload 8
arraylength
istore 9
18: iconst_0
istore 6
19: StackMap locals:
StackMap stack:
aload 5
bipush 20
aload 8
iload 6
iload 9
aload 1
aload 2
aload 10
20: getstatic com.sun.crypto.provider.TlsPrfGenerator.HMAC_ipad64:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
getstatic com.sun.crypto.provider.TlsPrfGenerator.HMAC_opad64:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
21: invokestatic com.sun.crypto.provider.TlsPrfGenerator.expand:(Ljava/security/MessageDigest;I[BII[B[B[B[B[B)V
22: 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 23 0 secret [B
0 23 1 labelBytes [B
0 23 2 seed [B
0 23 3 outputLength I
0 23 4 md5 Ljava/security/MessageDigest;
0 23 5 sha Ljava/security/MessageDigest;
3 23 6 off I
4 23 7 seclen I
5 23 8 secKey [B
6 23 9 keyLen I
7 23 10 output [B
Exceptions:
throws java.security.DigestException
MethodParameters:
Name Flags
secret
labelBytes
seed
outputLength
md5
sha
private static void expand(java.security.MessageDigest, int, byte[], int, int, byte[], byte[], byte[], byte[], byte[]);
descriptor: (Ljava/security/MessageDigest;I[BII[B[B[B[B[B)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=16, args_size=10
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 0: iconst_0
istore 10
start local 10 1: goto 5
2: StackMap locals: int
StackMap stack:
aload 8
iload 10
dup2
baload
aload 2
iload 10
iload 3
iadd
baload
ixor
i2b
bastore
3: aload 9
iload 10
dup2
baload
aload 2
iload 10
iload 3
iadd
baload
ixor
i2b
bastore
4: iinc 10 1
StackMap locals:
StackMap stack:
5: iload 10
iload 4
if_icmplt 2
end local 10 6: iload 1
newarray 8
astore 10
start local 10 7: aconst_null
astore 11
start local 11 8: aload 7
arraylength
istore 12
start local 12 9: iconst_0
istore 13
start local 13 10: goto 38
11: 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
12: aload 11
ifnonnull 16
13: aload 0
aload 5
invokevirtual java.security.MessageDigest.update:([B)V
14: aload 0
aload 6
invokevirtual java.security.MessageDigest.update:([B)V
15: goto 17
16: StackMap locals:
StackMap stack:
aload 0
aload 11
invokevirtual java.security.MessageDigest.update:([B)V
17: StackMap locals:
StackMap stack:
aload 0
aload 10
iconst_0
iload 1
invokevirtual java.security.MessageDigest.digest:([BII)I
pop
18: aload 0
aload 9
invokevirtual java.security.MessageDigest.update:([B)V
19: aload 0
aload 10
invokevirtual java.security.MessageDigest.update:([B)V
20: aload 11
ifnonnull 22
21: iload 1
newarray 8
astore 11
22: StackMap locals:
StackMap stack:
aload 0
aload 11
iconst_0
iload 1
invokevirtual java.security.MessageDigest.digest:([BII)I
pop
23: aload 0
aload 8
invokevirtual java.security.MessageDigest.update:([B)V
24: aload 0
aload 11
invokevirtual java.security.MessageDigest.update:([B)V
25: aload 0
aload 5
invokevirtual java.security.MessageDigest.update:([B)V
26: aload 0
aload 6
invokevirtual java.security.MessageDigest.update:([B)V
27: aload 0
aload 10
iconst_0
iload 1
invokevirtual java.security.MessageDigest.digest:([BII)I
pop
28: aload 0
aload 9
invokevirtual java.security.MessageDigest.update:([B)V
29: aload 0
aload 10
invokevirtual java.security.MessageDigest.update:([B)V
30: aload 0
aload 10
iconst_0
iload 1
invokevirtual java.security.MessageDigest.digest:([BII)I
pop
31: iload 1
iload 12
invokestatic java.lang.Math.min:(II)I
istore 14
start local 14 32: iconst_0
istore 15
start local 15 33: goto 36
34: StackMap locals: int int
StackMap stack:
aload 7
iload 13
iinc 13 1
dup2
baload
aload 10
iload 15
baload
ixor
i2b
bastore
35: iinc 15 1
StackMap locals:
StackMap stack:
36: iload 15
iload 14
if_icmplt 34
end local 15 37: iload 12
iload 14
isub
istore 12
end local 14 38: StackMap locals:
StackMap stack:
iload 12
ifgt 11
39: 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 40 0 digest Ljava/security/MessageDigest;
0 40 1 hmacSize I
0 40 2 secret [B
0 40 3 secOff I
0 40 4 secLen I
0 40 5 label [B
0 40 6 seed [B
0 40 7 output [B
0 40 8 pad1 [B
0 40 9 pad2 [B
1 6 10 i I
7 40 10 tmp [B
8 40 11 aBytes [B
9 40 12 remaining I
10 40 13 ofs I
32 38 14 k I
33 37 15 i I
Exceptions:
throws java.security.DigestException
MethodParameters:
Name Flags
digest
hmacSize
secret
secOff
secLen
label
seed
output
pad1
pad2
}
SourceFile: "TlsPrfGenerator.java"
NestMembers:
com.sun.crypto.provider.TlsPrfGenerator$V10 com.sun.crypto.provider.TlsPrfGenerator$V12
InnerClasses:
public V10 = com.sun.crypto.provider.TlsPrfGenerator$V10 of com.sun.crypto.provider.TlsPrfGenerator
public V12 = com.sun.crypto.provider.TlsPrfGenerator$V12 of com.sun.crypto.provider.TlsPrfGenerator