final class sun.security.ssl.PreSharedKeyExtension
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.PreSharedKeyExtension
super_class: java.lang.Object
{
static final sun.security.ssl.HandshakeProducer chNetworkProducer;
descriptor: Lsun/security/ssl/HandshakeProducer;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final sun.security.ssl.SSLExtension$ExtensionConsumer chOnLoadConsumer;
descriptor: Lsun/security/ssl/SSLExtension$ExtensionConsumer;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final sun.security.ssl.HandshakeAbsence chOnLoadAbsence;
descriptor: Lsun/security/ssl/HandshakeAbsence;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final sun.security.ssl.HandshakeConsumer chOnTradeConsumer;
descriptor: Lsun/security/ssl/HandshakeConsumer;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final sun.security.ssl.SSLStringizer chStringizer;
descriptor: Lsun/security/ssl/SSLStringizer;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final sun.security.ssl.HandshakeProducer shNetworkProducer;
descriptor: Lsun/security/ssl/HandshakeProducer;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final sun.security.ssl.SSLExtension$ExtensionConsumer shOnLoadConsumer;
descriptor: Lsun/security/ssl/SSLExtension$ExtensionConsumer;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final sun.security.ssl.HandshakeAbsence shOnLoadAbsence;
descriptor: Lsun/security/ssl/HandshakeAbsence;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final sun.security.ssl.SSLStringizer shStringizer;
descriptor: Lsun/security/ssl/SSLStringizer;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyProducer
dup
invokespecial sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyProducer.<init>:()V
1: putstatic sun.security.ssl.PreSharedKeyExtension.chNetworkProducer:Lsun/security/ssl/HandshakeProducer;
2: new sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyConsumer
dup
invokespecial sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyConsumer.<init>:()V
3: putstatic sun.security.ssl.PreSharedKeyExtension.chOnLoadConsumer:Lsun/security/ssl/SSLExtension$ExtensionConsumer;
4: new sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyAbsence
dup
invokespecial sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyAbsence.<init>:()V
5: putstatic sun.security.ssl.PreSharedKeyExtension.chOnLoadAbsence:Lsun/security/ssl/HandshakeAbsence;
6: new sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyUpdate
dup
invokespecial sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyUpdate.<init>:()V
7: putstatic sun.security.ssl.PreSharedKeyExtension.chOnTradeConsumer:Lsun/security/ssl/HandshakeConsumer;
8: new sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyStringizer
dup
invokespecial sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyStringizer.<init>:()V
9: putstatic sun.security.ssl.PreSharedKeyExtension.chStringizer:Lsun/security/ssl/SSLStringizer;
10: new sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeyProducer
dup
invokespecial sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeyProducer.<init>:()V
11: putstatic sun.security.ssl.PreSharedKeyExtension.shNetworkProducer:Lsun/security/ssl/HandshakeProducer;
12: new sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeyConsumer
dup
invokespecial sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeyConsumer.<init>:()V
13: putstatic sun.security.ssl.PreSharedKeyExtension.shOnLoadConsumer:Lsun/security/ssl/SSLExtension$ExtensionConsumer;
14: new sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeyAbsence
dup
invokespecial sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeyAbsence.<init>:()V
15: putstatic sun.security.ssl.PreSharedKeyExtension.shOnLoadAbsence:Lsun/security/ssl/HandshakeAbsence;
16: new sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeyStringizer
dup
invokespecial sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeyStringizer.<init>:()V
17: putstatic sun.security.ssl.PreSharedKeyExtension.shStringizer:Lsun/security/ssl/SSLStringizer;
18: return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/PreSharedKeyExtension;
private static boolean canRejoin(sun.security.ssl.ClientHello$ClientHelloMessage, sun.security.ssl.ServerHandshakeContext, sun.security.ssl.SSLSessionImpl);
descriptor: (Lsun/security/ssl/ClientHello$ClientHelloMessage;Lsun/security/ssl/ServerHandshakeContext;Lsun/security/ssl/SSLSessionImpl;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual sun.security.ssl.SSLSessionImpl.isRejoinable:()Z
ifeq 1
aload 2
invokevirtual sun.security.ssl.SSLSessionImpl.getPreSharedKey:()Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifeq 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 3
start local 3 3: iload 3
ifeq 8
aload 2
invokevirtual sun.security.ssl.SSLSessionImpl.getProtocolVersion:()Lsun/security/ssl/ProtocolVersion;
aload 1
getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
if_acmpeq 8
4: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 7
5: ldc "ssl,handshake,verbose"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 7
6: ldc "Can't resume, incorrect protocol version"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
7: StackMap locals: int
StackMap stack:
iconst_0
istore 3
8: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.ServerHandshakeContext.localSupportedSignAlgs:Ljava/util/List;
ifnonnull 13
9: aload 1
10: aload 1
getfield sun.security.ssl.ServerHandshakeContext.algorithmConstraints:Ljava/security/AlgorithmConstraints;
aload 1
getfield sun.security.ssl.ServerHandshakeContext.activeProtocols:Ljava/util/List;
11: invokestatic sun.security.ssl.SignatureScheme.getSupportedAlgorithms:(Ljava/security/AlgorithmConstraints;Ljava/util/List;)Ljava/util/List;
12: putfield sun.security.ssl.ServerHandshakeContext.localSupportedSignAlgs:Ljava/util/List;
13: StackMap locals:
StackMap stack:
iload 3
ifeq 30
14: aload 1
getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED:Lsun/security/ssl/ClientAuthType;
if_acmpne 30
15: aload 2
invokevirtual sun.security.ssl.SSLSessionImpl.getPeerPrincipal:()Ljava/security/Principal;
pop
16: goto 23
StackMap locals:
StackMap stack: javax.net.ssl.SSLPeerUnverifiedException
17: pop
18: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 22
19: ldc "ssl,handshake,verbose"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 22
20: ldc "Can't resume, client authentication is required"
iconst_0
anewarray java.lang.Object
21: invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
22: StackMap locals:
StackMap stack:
iconst_0
istore 3
23: StackMap locals:
StackMap stack:
aload 2
invokevirtual sun.security.ssl.SSLSessionImpl.getLocalSupportedSignatureSchemes:()Ljava/util/Collection;
24: astore 4
start local 4 25: iload 3
ifeq 30
26: aload 1
getfield sun.security.ssl.ServerHandshakeContext.localSupportedSignAlgs:Ljava/util/List;
aload 4
invokeinterface java.util.List.containsAll:(Ljava/util/Collection;)Z
ifne 30
27: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 29
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 29
28: ldc "Can't resume. Session uses different signature algorithms"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
29: StackMap locals: java.util.Collection
StackMap stack:
iconst_0
istore 3
end local 4 30: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.identificationProtocol:Ljava/lang/String;
astore 4
start local 4 31: iload 3
ifeq 40
aload 4
ifnull 40
32: aload 2
invokevirtual sun.security.ssl.SSLSessionImpl.getIdentificationProtocol:()Ljava/lang/String;
astore 5
start local 5 33: aload 4
aload 5
invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 40
34: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 39
35: ldc "ssl,handshake,verbose"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 39
36: new java.lang.StringBuilder
dup
ldc "Can't resume, endpoint id algorithm does not match, requested: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
37: aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", cached: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
38: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
39: StackMap locals: java.lang.String java.lang.String
StackMap stack:
iconst_0
istore 3
end local 5 40: StackMap locals:
StackMap stack:
iload 3
ifeq 47
aload 1
aload 2
invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
invokevirtual sun.security.ssl.ServerHandshakeContext.isNegotiable:(Lsun/security/ssl/CipherSuite;)Z
ifeq 42
41: aload 0
getfield sun.security.ssl.ClientHello$ClientHelloMessage.cipherSuites:Ljava/util/List;
aload 2
invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifne 47
42: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 46
43: ldc "ssl,handshake,verbose"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 46
44: ldc "Can't resume, unavailable session cipher suite"
iconst_0
anewarray java.lang.Object
45: invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
46: StackMap locals:
StackMap stack:
iconst_0
istore 3
47: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 48 0 clientHello Lsun/security/ssl/ClientHello$ClientHelloMessage;
0 48 1 shc Lsun/security/ssl/ServerHandshakeContext;
0 48 2 s Lsun/security/ssl/SSLSessionImpl;
3 48 3 result Z
25 30 4 sessionSigAlgs Ljava/util/Collection<Lsun/security/ssl/SignatureScheme;>;
31 48 4 identityAlg Ljava/lang/String;
33 40 5 sessionIdentityAlg Ljava/lang/String;
Exception table:
from to target type
15 16 17 Class javax.net.ssl.SSLPeerUnverifiedException
MethodParameters:
Name Flags
clientHello
shc
s
private static void checkBinder(sun.security.ssl.ServerHandshakeContext, sun.security.ssl.SSLSessionImpl, sun.security.ssl.HandshakeHash, byte[]);
descriptor: (Lsun/security/ssl/ServerHandshakeContext;Lsun/security/ssl/SSLSessionImpl;Lsun/security/ssl/HandshakeHash;[B)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual sun.security.ssl.SSLSessionImpl.getPreSharedKey:()Ljava/util/Optional;
astore 4
start local 4 1: aload 4
invokevirtual java.util.Optional.isPresent:()Z
ifne 5
2: aload 0
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
3: ldc "Session has no PSK"
4: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
5: StackMap locals: java.util.Optional
StackMap stack:
aload 4
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast javax.crypto.SecretKey
astore 5
start local 5 6: aload 0
aload 5
aload 1
invokestatic sun.security.ssl.PreSharedKeyExtension.deriveBinderKey:(Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;Lsun/security/ssl/SSLSessionImpl;)Ljavax/crypto/SecretKey;
astore 6
start local 6 7: aload 0
aload 6
aload 1
aload 2
invokestatic sun.security.ssl.PreSharedKeyExtension.computeBinder:(Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;Lsun/security/ssl/SSLSessionImpl;Lsun/security/ssl/HandshakeHash;)[B
8: astore 7
start local 7 9: aload 3
aload 7
invokestatic java.util.Arrays.equals:([B[B)Z
ifne 13
10: aload 0
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
11: ldc "Incorect PSK binder value"
12: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
13: StackMap locals: javax.crypto.SecretKey javax.crypto.SecretKey byte[]
StackMap stack:
return
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 14 0 shc Lsun/security/ssl/ServerHandshakeContext;
0 14 1 session Lsun/security/ssl/SSLSessionImpl;
0 14 2 pskBinderHash Lsun/security/ssl/HandshakeHash;
0 14 3 binder [B
1 14 4 pskOpt Ljava/util/Optional<Ljavax/crypto/SecretKey;>;
6 14 5 psk Ljavax/crypto/SecretKey;
7 14 6 binderKey Ljavax/crypto/SecretKey;
9 14 7 computedBinder [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
shc
session
pskBinderHash
binder
private static byte[] computeBinder(sun.security.ssl.HandshakeContext, javax.crypto.SecretKey, sun.security.ssl.SSLSessionImpl, sun.security.ssl.HandshakeHash);
descriptor: (Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;Lsun/security/ssl/SSLSessionImpl;Lsun/security/ssl/HandshakeHash;)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
1: aload 2
invokevirtual sun.security.ssl.SSLSessionImpl.getProtocolVersion:()Lsun/security/ssl/ProtocolVersion;
aload 2
invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
2: invokevirtual sun.security.ssl.HandshakeHash.determine:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;)V
3: aload 3
invokevirtual sun.security.ssl.HandshakeHash.update:()V
4: aload 3
invokevirtual sun.security.ssl.HandshakeHash.digest:()[B
astore 4
start local 4 5: aload 0
aload 1
aload 2
aload 4
invokestatic sun.security.ssl.PreSharedKeyExtension.computeBinder:(Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;Lsun/security/ssl/SSLSessionImpl;[B)[B
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 context Lsun/security/ssl/HandshakeContext;
0 6 1 binderKey Ljavax/crypto/SecretKey;
0 6 2 session Lsun/security/ssl/SSLSessionImpl;
0 6 3 pskBinderHash Lsun/security/ssl/HandshakeHash;
5 6 4 digest [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
binderKey
session
pskBinderHash
private static byte[] computeBinder(sun.security.ssl.HandshakeContext, javax.crypto.SecretKey, sun.security.ssl.HandshakeHash, sun.security.ssl.SSLSessionImpl, sun.security.ssl.HandshakeContext, sun.security.ssl.ClientHello$ClientHelloMessage, sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec);
descriptor: (Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;Lsun/security/ssl/HandshakeHash;Lsun/security/ssl/SSLSessionImpl;Lsun/security/ssl/HandshakeContext;Lsun/security/ssl/ClientHello$ClientHelloMessage;Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=11, 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: new sun.security.ssl.PreSharedKeyExtension$PartialClientHelloMessage
dup
aload 4
aload 5
aload 6
invokespecial sun.security.ssl.PreSharedKeyExtension$PartialClientHelloMessage.<init>:(Lsun/security/ssl/HandshakeContext;Lsun/security/ssl/ClientHello$ClientHelloMessage;Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;)V
1: astore 7
start local 7 2: new sun.security.ssl.SSLEngineOutputRecord
dup
aload 2
invokespecial sun.security.ssl.SSLEngineOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
astore 8
start local 8 3: new sun.security.ssl.HandshakeOutStream
dup
aload 8
invokespecial sun.security.ssl.HandshakeOutStream.<init>:(Lsun/security/ssl/OutputRecord;)V
astore 9
start local 9 4: aload 7
aload 9
invokevirtual sun.security.ssl.PreSharedKeyExtension$PartialClientHelloMessage.write:(Lsun/security/ssl/HandshakeOutStream;)V
5: aload 2
aload 3
invokevirtual sun.security.ssl.SSLSessionImpl.getProtocolVersion:()Lsun/security/ssl/ProtocolVersion;
aload 3
invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
invokevirtual sun.security.ssl.HandshakeHash.determine:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;)V
6: aload 2
invokevirtual sun.security.ssl.HandshakeHash.update:()V
7: aload 2
invokevirtual sun.security.ssl.HandshakeHash.digest:()[B
astore 10
start local 10 8: aload 0
aload 1
aload 3
aload 10
invokestatic sun.security.ssl.PreSharedKeyExtension.computeBinder:(Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;Lsun/security/ssl/SSLSessionImpl;[B)[B
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 9 0 context Lsun/security/ssl/HandshakeContext;
0 9 1 binderKey Ljavax/crypto/SecretKey;
0 9 2 hash Lsun/security/ssl/HandshakeHash;
0 9 3 session Lsun/security/ssl/SSLSessionImpl;
0 9 4 ctx Lsun/security/ssl/HandshakeContext;
0 9 5 hello Lsun/security/ssl/ClientHello$ClientHelloMessage;
0 9 6 pskPrototype Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;
2 9 7 partialMsg Lsun/security/ssl/PreSharedKeyExtension$PartialClientHelloMessage;
3 9 8 record Lsun/security/ssl/SSLEngineOutputRecord;
4 9 9 hos Lsun/security/ssl/HandshakeOutStream;
8 9 10 digest [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
binderKey
hash
session
ctx
hello
pskPrototype
private static byte[] computeBinder(sun.security.ssl.HandshakeContext, javax.crypto.SecretKey, sun.security.ssl.SSLSessionImpl, byte[]);
descriptor: (Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;Lsun/security/ssl/SSLSessionImpl;[B)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
getfield sun.security.ssl.CipherSuite.hashAlg:Lsun/security/ssl/CipherSuite$HashAlg;
astore 4
start local 4 1: new sun.security.ssl.HKDF
dup
aload 4
getfield sun.security.ssl.CipherSuite$HashAlg.name:Ljava/lang/String;
invokespecial sun.security.ssl.HKDF.<init>:(Ljava/lang/String;)V
astore 5
start local 5 2: ldc "tls13 finished"
invokevirtual java.lang.String.getBytes:()[B
astore 6
start local 6 3: aload 6
iconst_0
newarray 8
aload 4
getfield sun.security.ssl.CipherSuite$HashAlg.hashLength:I
4: invokestatic sun.security.ssl.SSLSecretDerivation.createHkdfInfo:([B[BI)[B
astore 7
start local 7 5: aload 5
6: aload 1
aload 7
aload 4
getfield sun.security.ssl.CipherSuite$HashAlg.hashLength:I
ldc "TlsBinderKey"
7: invokevirtual sun.security.ssl.HKDF.expand:(Ljavax/crypto/SecretKey;[BILjava/lang/String;)Ljavax/crypto/SecretKey;
astore 8
start local 8 8: new java.lang.StringBuilder
dup
ldc "Hmac"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
getfield sun.security.ssl.CipherSuite$HashAlg.name:Ljava/lang/String;
ldc "-"
ldc ""
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: astore 9
start local 9 10: aload 9
invokestatic sun.security.ssl.JsseJce.getMac:(Ljava/lang/String;)Ljavax/crypto/Mac;
astore 10
start local 10 11: aload 10
aload 8
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
12: aload 10
aload 3
invokevirtual javax.crypto.Mac.doFinal:([B)[B
13: areturn
end local 10 14: StackMap locals: sun.security.ssl.HandshakeContext javax.crypto.SecretKey sun.security.ssl.SSLSessionImpl byte[] sun.security.ssl.CipherSuite$HashAlg sun.security.ssl.HKDF byte[] byte[] javax.crypto.SecretKey java.lang.String
StackMap stack: java.security.GeneralSecurityException
astore 10
start local 10 15: aload 0
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
aload 10
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 16: StackMap locals: sun.security.ssl.HandshakeContext javax.crypto.SecretKey sun.security.ssl.SSLSessionImpl byte[]
StackMap stack: java.security.GeneralSecurityException
astore 4
start local 4 17: aload 0
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
aload 4
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 context Lsun/security/ssl/HandshakeContext;
0 18 1 binderKey Ljavax/crypto/SecretKey;
0 18 2 session Lsun/security/ssl/SSLSessionImpl;
0 18 3 digest [B
1 16 4 hashAlg Lsun/security/ssl/CipherSuite$HashAlg;
2 16 5 hkdf Lsun/security/ssl/HKDF;
3 16 6 label [B
5 16 7 hkdfInfo [B
8 16 8 finishedKey Ljavax/crypto/SecretKey;
10 16 9 hmacAlg Ljava/lang/String;
11 14 10 hmac Ljavax/crypto/Mac;
15 16 10 ex Ljava/security/GeneralSecurityException;
17 18 4 ex Ljava/security/GeneralSecurityException;
Exception table:
from to target type
10 13 14 Class java.security.NoSuchAlgorithmException
10 13 14 Class java.security.InvalidKeyException
0 13 16 Class java.security.GeneralSecurityException
14 16 16 Class java.security.GeneralSecurityException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
binderKey
session
digest
private static javax.crypto.SecretKey deriveBinderKey(sun.security.ssl.HandshakeContext, javax.crypto.SecretKey, sun.security.ssl.SSLSessionImpl);
descriptor: (Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;Lsun/security/ssl/SSLSessionImpl;)Ljavax/crypto/SecretKey;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
getfield sun.security.ssl.CipherSuite.hashAlg:Lsun/security/ssl/CipherSuite$HashAlg;
astore 3
start local 3 1: new sun.security.ssl.HKDF
dup
aload 3
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.CipherSuite$HashAlg.hashLength:I
newarray 8
astore 5
start local 5 3: aload 4
aload 5
aload 1
ldc "TlsEarlySecret"
invokevirtual sun.security.ssl.HKDF.extract:([BLjavax/crypto/SecretKey;Ljava/lang/String;)Ljavax/crypto/SecretKey;
astore 6
start local 6 4: ldc "tls13 res binder"
invokevirtual java.lang.String.getBytes:()[B
astore 7
start local 7 5: aload 3
getfield sun.security.ssl.CipherSuite$HashAlg.name:Ljava/lang/String;
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 8
start local 8 6: aload 7
aload 8
iconst_0
newarray 8
invokevirtual java.security.MessageDigest.digest:([B)[B
aload 3
getfield sun.security.ssl.CipherSuite$HashAlg.hashLength:I
7: invokestatic sun.security.ssl.SSLSecretDerivation.createHkdfInfo:([B[BI)[B
astore 9
start local 9 8: aload 4
aload 6
9: aload 9
aload 3
getfield sun.security.ssl.CipherSuite$HashAlg.hashLength:I
ldc "TlsBinderKey"
10: invokevirtual sun.security.ssl.HKDF.expand:(Ljavax/crypto/SecretKey;[BILjava/lang/String;)Ljavax/crypto/SecretKey;
11: areturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 12: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 3
start local 3 13: aload 0
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
aload 3
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 context Lsun/security/ssl/HandshakeContext;
0 14 1 psk Ljavax/crypto/SecretKey;
0 14 2 session Lsun/security/ssl/SSLSessionImpl;
1 12 3 hashAlg Lsun/security/ssl/CipherSuite$HashAlg;
2 12 4 hkdf Lsun/security/ssl/HKDF;
3 12 5 zeros [B
4 12 6 earlySecret Ljavax/crypto/SecretKey;
5 12 7 label [B
6 12 8 md Ljava/security/MessageDigest;
8 12 9 hkdfInfo [B
13 14 3 ex Ljava/security/GeneralSecurityException;
Exception table:
from to target type
0 11 12 Class java.security.GeneralSecurityException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
psk
session
}
SourceFile: "PreSharedKeyExtension.java"
NestMembers:
sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyAbsence sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyConsumer sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyProducer sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyStringizer sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyUpdate sun.security.ssl.PreSharedKeyExtension$PartialClientHelloMessage sun.security.ssl.PreSharedKeyExtension$PskIdentity sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeyAbsence sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeyConsumer sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeyProducer sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeySpec sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeyStringizer
InnerClasses:
final HashAlg = sun.security.ssl.CipherSuite$HashAlg of sun.security.ssl.CipherSuite
final ClientHelloMessage = sun.security.ssl.ClientHello$ClientHelloMessage of sun.security.ssl.ClientHello
private final CHPreSharedKeyAbsence = sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyAbsence of sun.security.ssl.PreSharedKeyExtension
private final CHPreSharedKeyConsumer = sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyConsumer of sun.security.ssl.PreSharedKeyExtension
private final CHPreSharedKeyProducer = sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyProducer of sun.security.ssl.PreSharedKeyExtension
private final CHPreSharedKeySpec = sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec of sun.security.ssl.PreSharedKeyExtension
private final CHPreSharedKeyStringizer = sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyStringizer of sun.security.ssl.PreSharedKeyExtension
private final CHPreSharedKeyUpdate = sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyUpdate of sun.security.ssl.PreSharedKeyExtension
final PartialClientHelloMessage = sun.security.ssl.PreSharedKeyExtension$PartialClientHelloMessage of sun.security.ssl.PreSharedKeyExtension
private final PskIdentity = sun.security.ssl.PreSharedKeyExtension$PskIdentity of sun.security.ssl.PreSharedKeyExtension
private final SHPreSharedKeyAbsence = sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeyAbsence of sun.security.ssl.PreSharedKeyExtension
private final SHPreSharedKeyConsumer = sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeyConsumer of sun.security.ssl.PreSharedKeyExtension
private final SHPreSharedKeyProducer = sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeyProducer of sun.security.ssl.PreSharedKeyExtension
private final SHPreSharedKeySpec = sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeySpec of sun.security.ssl.PreSharedKeyExtension
private final SHPreSharedKeyStringizer = sun.security.ssl.PreSharedKeyExtension$SHPreSharedKeyStringizer of sun.security.ssl.PreSharedKeyExtension
abstract ExtensionConsumer = sun.security.ssl.SSLExtension$ExtensionConsumer of sun.security.ssl.SSLExtension