final class sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation implements sun.security.ssl.SSLKeyDerivation
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation
super_class: java.lang.Object
{
private final sun.security.ssl.HandshakeContext context;
descriptor: Lsun/security/ssl/HandshakeContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final javax.crypto.SecretKey masterSecret;
descriptor: Ljavax/crypto/SecretKey;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.security.internal.spec.TlsKeyMaterialSpec keyMaterialSpec;
descriptor: Lsun/security/internal/spec/TlsKeyMaterialSpec;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(sun.security.ssl.HandshakeContext, javax.crypto.SecretKey);
descriptor: (Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;)V
flags: (0x0000)
Code:
stack=15, locals=16, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation.context:Lsun/security/ssl/HandshakeContext;
2: aload 0
aload 2
putfield sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation.masterSecret:Ljavax/crypto/SecretKey;
3: aload 1
getfield sun.security.ssl.HandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
astore 3
start local 3 4: aload 1
getfield sun.security.ssl.HandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
astore 4
start local 4 5: aload 3
getfield sun.security.ssl.CipherSuite.macAlg:Lsun/security/ssl/CipherSuite$MacAlg;
getfield sun.security.ssl.CipherSuite$MacAlg.size:I
istore 5
start local 5 6: aload 3
getfield sun.security.ssl.CipherSuite.exportable:Z
istore 6
start local 6 7: aload 3
getfield sun.security.ssl.CipherSuite.bulkCipher:Lsun/security/ssl/SSLCipher;
astore 7
start local 7 8: iload 6
ifeq 9
aload 7
getfield sun.security.ssl.SSLCipher.expandedKeySize:I
goto 10
StackMap locals: sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation sun.security.ssl.HandshakeContext javax.crypto.SecretKey sun.security.ssl.CipherSuite sun.security.ssl.ProtocolVersion int int sun.security.ssl.SSLCipher
StackMap stack:
9: iconst_0
StackMap locals:
StackMap stack: int
10: istore 8
start local 8 11: aload 4
getfield sun.security.ssl.ProtocolVersion.major:B
istore 11
start local 11 12: aload 4
getfield sun.security.ssl.ProtocolVersion.minor:B
istore 12
start local 12 13: aload 4
getfield sun.security.ssl.ProtocolVersion.id:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.id:I
if_icmplt 17
14: ldc "SunTls12KeyMaterial"
astore 9
start local 9 15: aload 3
getfield sun.security.ssl.CipherSuite.hashAlg:Lsun/security/ssl/CipherSuite$HashAlg;
astore 10
start local 10 16: goto 19
end local 10 end local 9 17: StackMap locals: sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation sun.security.ssl.HandshakeContext javax.crypto.SecretKey sun.security.ssl.CipherSuite sun.security.ssl.ProtocolVersion int int sun.security.ssl.SSLCipher int top top int int
StackMap stack:
ldc "SunTlsKeyMaterial"
astore 9
start local 9 18: getstatic sun.security.ssl.CipherSuite$HashAlg.H_NONE:Lsun/security/ssl/CipherSuite$HashAlg;
astore 10
start local 10 19: StackMap locals: sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation sun.security.ssl.HandshakeContext javax.crypto.SecretKey sun.security.ssl.CipherSuite sun.security.ssl.ProtocolVersion int int sun.security.ssl.SSLCipher int java.lang.String sun.security.ssl.CipherSuite$HashAlg int int
StackMap stack:
aload 7
getfield sun.security.ssl.SSLCipher.ivSize:I
istore 13
start local 13 20: aload 7
getfield sun.security.ssl.SSLCipher.cipherType:Lsun/security/ssl/CipherType;
getstatic sun.security.ssl.CipherType.AEAD_CIPHER:Lsun/security/ssl/CipherType;
if_acmpne 23
21: aload 7
getfield sun.security.ssl.SSLCipher.fixedIvSize:I
istore 13
22: goto 26
23: StackMap locals: int
StackMap stack:
aload 7
getfield sun.security.ssl.SSLCipher.cipherType:Lsun/security/ssl/CipherType;
getstatic sun.security.ssl.CipherType.BLOCK_CIPHER:Lsun/security/ssl/CipherType;
if_acmpne 26
24: aload 4
invokevirtual sun.security.ssl.ProtocolVersion.useTLS11PlusSpec:()Z
ifeq 26
25: iconst_0
istore 13
26: StackMap locals:
StackMap stack:
new sun.security.internal.spec.TlsKeyMaterialParameterSpec
dup
27: aload 2
iload 11
sipush 255
iand
iload 12
sipush 255
iand
28: aload 1
getfield sun.security.ssl.HandshakeContext.clientHelloRandom:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.randomBytes:[B
29: aload 1
getfield sun.security.ssl.HandshakeContext.serverHelloRandom:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.randomBytes:[B
30: aload 7
getfield sun.security.ssl.SSLCipher.algorithm:Ljava/lang/String;
aload 7
getfield sun.security.ssl.SSLCipher.keySize:I
iload 8
31: iload 13
iload 5
32: aload 10
getfield sun.security.ssl.CipherSuite$HashAlg.name:Ljava/lang/String;
aload 10
getfield sun.security.ssl.CipherSuite$HashAlg.hashLength:I
aload 10
getfield sun.security.ssl.CipherSuite$HashAlg.blockSize:I
33: invokespecial sun.security.internal.spec.TlsKeyMaterialParameterSpec.<init>:(Ljavax/crypto/SecretKey;II[B[BLjava/lang/String;IIIILjava/lang/String;II)V
astore 14
start local 14 34: aload 9
invokestatic sun.security.ssl.JsseJce.getKeyGenerator:(Ljava/lang/String;)Ljavax/crypto/KeyGenerator;
astore 15
start local 15 35: aload 15
aload 14
invokevirtual javax.crypto.KeyGenerator.init:(Ljava/security/spec/AlgorithmParameterSpec;)V
36: aload 0
aload 15
invokevirtual javax.crypto.KeyGenerator.generateKey:()Ljavax/crypto/SecretKey;
checkcast sun.security.internal.spec.TlsKeyMaterialSpec
putfield sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation.keyMaterialSpec:Lsun/security/internal/spec/TlsKeyMaterialSpec;
end local 15 37: goto 40
StackMap locals: sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation sun.security.ssl.HandshakeContext javax.crypto.SecretKey sun.security.ssl.CipherSuite sun.security.ssl.ProtocolVersion int int sun.security.ssl.SSLCipher int java.lang.String sun.security.ssl.CipherSuite$HashAlg int int int sun.security.internal.spec.TlsKeyMaterialParameterSpec
StackMap stack: java.security.GeneralSecurityException
38: astore 15
start local 15 39: new java.security.ProviderException
dup
aload 15
invokespecial java.security.ProviderException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 15 40: StackMap locals:
StackMap stack:
return
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 41 0 this Lsun/security/ssl/SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation;
0 41 1 context Lsun/security/ssl/HandshakeContext;
0 41 2 masterSecret Ljavax/crypto/SecretKey;
4 41 3 cipherSuite Lsun/security/ssl/CipherSuite;
5 41 4 protocolVersion Lsun/security/ssl/ProtocolVersion;
6 41 5 hashSize I
7 41 6 is_exportable Z
8 41 7 cipher Lsun/security/ssl/SSLCipher;
11 41 8 expandedKeySize I
15 17 9 keyMaterialAlg Ljava/lang/String;
18 41 9 keyMaterialAlg Ljava/lang/String;
16 17 10 hashAlg Lsun/security/ssl/CipherSuite$HashAlg;
19 41 10 hashAlg Lsun/security/ssl/CipherSuite$HashAlg;
12 41 11 majorVersion B
13 41 12 minorVersion B
20 41 13 ivSize I
34 41 14 spec Lsun/security/internal/spec/TlsKeyMaterialParameterSpec;
35 37 15 kg Ljavax/crypto/KeyGenerator;
39 40 15 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
34 37 38 Class java.security.GeneralSecurityException
MethodParameters:
Name Flags
context
masterSecret
javax.crypto.SecretKey getTrafficKey(java.lang.String);
descriptor: (Ljava/lang/String;)Ljavax/crypto/SecretKey;
flags: (0x0000)
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
dup
astore 2
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 6
-1716638551: 1
-1702941973: 2
-1676186013: 3
-1622415813: 4
1720625075: 5
2023276321: 6
default: 19
}
StackMap locals: java.lang.String
StackMap stack:
1: aload 2
ldc "serverWriteIv"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 15
goto 19
StackMap locals:
StackMap stack:
2: aload 2
ldc "clientWriteKey"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 19
StackMap locals:
StackMap stack:
3: aload 2
ldc "serverWriteKey"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
goto 19
StackMap locals:
StackMap stack:
4: aload 2
ldc "clientMacKey"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
goto 19
StackMap locals:
StackMap stack:
5: aload 2
ldc "serverMacKey"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 8
goto 19
StackMap locals:
StackMap stack:
6: aload 2
ldc "clientWriteIv"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 11
goto 19
7: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation.keyMaterialSpec:Lsun/security/internal/spec/TlsKeyMaterialSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialSpec.getClientMacKey:()Ljavax/crypto/SecretKey;
areturn
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation.keyMaterialSpec:Lsun/security/internal/spec/TlsKeyMaterialSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialSpec.getServerMacKey:()Ljavax/crypto/SecretKey;
areturn
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation.keyMaterialSpec:Lsun/security/internal/spec/TlsKeyMaterialSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialSpec.getClientCipherKey:()Ljavax/crypto/SecretKey;
areturn
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation.keyMaterialSpec:Lsun/security/internal/spec/TlsKeyMaterialSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialSpec.getServerCipherKey:()Ljavax/crypto/SecretKey;
areturn
11: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation.keyMaterialSpec:Lsun/security/internal/spec/TlsKeyMaterialSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialSpec.getClientIv:()Ljavax/crypto/spec/IvParameterSpec;
astore 3
start local 3 12: aload 3
ifnonnull 13
aconst_null
goto 14
13: StackMap locals: javax.crypto.spec.IvParameterSpec
StackMap stack:
new javax.crypto.spec.SecretKeySpec
dup
aload 3
invokevirtual javax.crypto.spec.IvParameterSpec.getIV:()[B
ldc "TlsIv"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
14: StackMap locals:
StackMap stack: javax.crypto.spec.SecretKeySpec
areturn
end local 3 15: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation.keyMaterialSpec:Lsun/security/internal/spec/TlsKeyMaterialSpec;
invokevirtual sun.security.internal.spec.TlsKeyMaterialSpec.getServerIv:()Ljavax/crypto/spec/IvParameterSpec;
astore 4
start local 4 16: aload 4
ifnonnull 17
aconst_null
goto 18
17: StackMap locals: sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation java.lang.String java.lang.String top javax.crypto.spec.IvParameterSpec
StackMap stack:
new javax.crypto.spec.SecretKeySpec
dup
aload 4
invokevirtual javax.crypto.spec.IvParameterSpec.getIV:()[B
ldc "TlsIv"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
18: StackMap locals:
StackMap stack: javax.crypto.spec.SecretKeySpec
areturn
end local 4 19: StackMap locals: sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation java.lang.String
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/security/ssl/SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation;
0 20 1 algorithm Ljava/lang/String;
12 15 3 cliIvSpec Ljavax/crypto/spec/IvParameterSpec;
16 19 4 srvIvSpec Ljavax/crypto/spec/IvParameterSpec;
MethodParameters:
Name Flags
algorithm
public javax.crypto.SecretKey deriveKey(java.lang.String, java.security.spec.AlgorithmParameterSpec);
descriptor: (Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;)Ljavax/crypto/SecretKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation.getTrafficKey:(Ljava/lang/String;)Ljavax/crypto/SecretKey;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation;
0 1 1 algorithm Ljava/lang/String;
0 1 2 params Ljava/security/spec/AlgorithmParameterSpec;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
algorithm
params
}
SourceFile: "SSLTrafficKeyDerivation.java"
NestHost: sun.security.ssl.SSLTrafficKeyDerivation
InnerClasses:
final HashAlg = sun.security.ssl.CipherSuite$HashAlg of sun.security.ssl.CipherSuite
final MacAlg = sun.security.ssl.CipherSuite$MacAlg of sun.security.ssl.CipherSuite
final LegacyTrafficKeyDerivation = sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation of sun.security.ssl.SSLTrafficKeyDerivation