final class sun.security.ssl.SSLTrafficKeyDerivation$T13TrafficKeyDerivation implements sun.security.ssl.SSLKeyDerivation
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.SSLTrafficKeyDerivation$T13TrafficKeyDerivation
super_class: java.lang.Object
{
private final sun.security.ssl.CipherSuite cs;
descriptor: Lsun/security/ssl/CipherSuite;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final javax.crypto.SecretKey secret;
descriptor: Ljavax/crypto/SecretKey;
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=2, locals=3, 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 2
putfield sun.security.ssl.SSLTrafficKeyDerivation$T13TrafficKeyDerivation.secret:Ljavax/crypto/SecretKey;
2: aload 0
aload 1
getfield sun.security.ssl.HandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
putfield sun.security.ssl.SSLTrafficKeyDerivation$T13TrafficKeyDerivation.cs:Lsun/security/ssl/CipherSuite;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/ssl/SSLTrafficKeyDerivation$T13TrafficKeyDerivation;
0 4 1 context Lsun/security/ssl/HandshakeContext;
0 4 2 secret Ljavax/crypto/SecretKey;
MethodParameters:
Name Flags
context
secret
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=7, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic sun.security.ssl.SSLTrafficKeyDerivation$KeySchedule.valueOf:(Ljava/lang/String;)Lsun/security/ssl/SSLTrafficKeyDerivation$KeySchedule;
astore 3
start local 3 1: new sun.security.ssl.HKDF
dup
aload 0
getfield sun.security.ssl.SSLTrafficKeyDerivation$T13TrafficKeyDerivation.cs:Lsun/security/ssl/CipherSuite;
getfield sun.security.ssl.CipherSuite.hashAlg:Lsun/security/ssl/CipherSuite$HashAlg;
getfield sun.security.ssl.CipherSuite$HashAlg.name:Ljava/lang/String;
invokespecial sun.security.ssl.HKDF.<init>:(Ljava/lang/String;)V
astore 4
start local 4 2: aload 3
getfield sun.security.ssl.SSLTrafficKeyDerivation$KeySchedule.label:[B
aload 3
aload 0
getfield sun.security.ssl.SSLTrafficKeyDerivation$T13TrafficKeyDerivation.cs:Lsun/security/ssl/CipherSuite;
invokevirtual sun.security.ssl.SSLTrafficKeyDerivation$KeySchedule.getKeyLength:(Lsun/security/ssl/CipherSuite;)I
invokestatic sun.security.ssl.SSLTrafficKeyDerivation$T13TrafficKeyDerivation.createHkdfInfo:([BI)[B
3: astore 5
start local 5 4: aload 4
aload 0
getfield sun.security.ssl.SSLTrafficKeyDerivation$T13TrafficKeyDerivation.secret:Ljavax/crypto/SecretKey;
aload 5
5: aload 3
aload 0
getfield sun.security.ssl.SSLTrafficKeyDerivation$T13TrafficKeyDerivation.cs:Lsun/security/ssl/CipherSuite;
invokevirtual sun.security.ssl.SSLTrafficKeyDerivation$KeySchedule.getKeyLength:(Lsun/security/ssl/CipherSuite;)I
6: aload 3
aload 0
getfield sun.security.ssl.SSLTrafficKeyDerivation$T13TrafficKeyDerivation.cs:Lsun/security/ssl/CipherSuite;
aload 1
invokevirtual sun.security.ssl.SSLTrafficKeyDerivation$KeySchedule.getAlgorithm:(Lsun/security/ssl/CipherSuite;Ljava/lang/String;)Ljava/lang/String;
7: invokevirtual sun.security.ssl.HKDF.expand:(Ljavax/crypto/SecretKey;[BILjava/lang/String;)Ljavax/crypto/SecretKey;
8: areturn
end local 5 end local 4 9: StackMap locals: sun.security.ssl.SSLTrafficKeyDerivation$T13TrafficKeyDerivation java.lang.String java.security.spec.AlgorithmParameterSpec sun.security.ssl.SSLTrafficKeyDerivation$KeySchedule
StackMap stack: java.security.GeneralSecurityException
astore 4
start local 4 10: new javax.net.ssl.SSLHandshakeException
dup
11: ldc "Could not generate secret"
12: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
13: aload 4
invokevirtual javax.net.ssl.SSLHandshakeException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
14: checkcast javax.net.ssl.SSLHandshakeException
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/security/ssl/SSLTrafficKeyDerivation$T13TrafficKeyDerivation;
0 15 1 algorithm Ljava/lang/String;
0 15 2 params Ljava/security/spec/AlgorithmParameterSpec;
1 15 3 ks Lsun/security/ssl/SSLTrafficKeyDerivation$KeySchedule;
2 9 4 hkdf Lsun/security/ssl/HKDF;
4 9 5 hkdfInfo [B
10 15 4 gse Ljava/security/GeneralSecurityException;
Exception table:
from to target type
1 8 9 Class java.security.GeneralSecurityException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
algorithm
params
private static byte[] createHkdfInfo(byte[], int);
descriptor: ([BI)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: iconst_4
aload 0
arraylength
iadd
newarray 8
astore 2
start local 2 1: aload 2
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
astore 3
start local 3 2: aload 3
iload 1
invokestatic sun.security.ssl.Record.putInt16:(Ljava/nio/ByteBuffer;I)V
3: aload 3
aload 0
invokestatic sun.security.ssl.Record.putBytes8:(Ljava/nio/ByteBuffer;[B)V
4: aload 3
iconst_0
invokestatic sun.security.ssl.Record.putInt8:(Ljava/nio/ByteBuffer;I)V
5: goto 8
StackMap locals: byte[] int byte[] java.nio.ByteBuffer
StackMap stack: java.io.IOException
6: astore 4
start local 4 7: new java.lang.RuntimeException
dup
ldc "Unexpected exception"
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 8: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 label [B
0 9 1 length I
1 9 2 info [B
2 9 3 m Ljava/nio/ByteBuffer;
7 8 4 ioe Ljava/io/IOException;
Exception table:
from to target type
2 5 6 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
label
length
}
SourceFile: "SSLTrafficKeyDerivation.java"
NestHost: sun.security.ssl.SSLTrafficKeyDerivation
InnerClasses:
final HashAlg = sun.security.ssl.CipherSuite$HashAlg of sun.security.ssl.CipherSuite
private final KeySchedule = sun.security.ssl.SSLTrafficKeyDerivation$KeySchedule of sun.security.ssl.SSLTrafficKeyDerivation
final T13TrafficKeyDerivation = sun.security.ssl.SSLTrafficKeyDerivation$T13TrafficKeyDerivation of sun.security.ssl.SSLTrafficKeyDerivation