final class sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyProducer implements sun.security.ssl.HandshakeProducer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyProducer
super_class: java.lang.Object
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeyProducer;
public byte[] produce(sun.security.ssl.ConnectionContext, sun.security.ssl.SSLHandshake$HandshakeMessage);
descriptor: (Lsun/security/ssl/ConnectionContext;Lsun/security/ssl/SSLHandshake$HandshakeMessage;)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=20, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast sun.security.ssl.ClientHandshakeContext
astore 3
start local 3 1: aload 3
getfield sun.security.ssl.ClientHandshakeContext.isResumption:Z
ifeq 2
aload 3
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
ifnonnull 5
2: StackMap locals: sun.security.ssl.ClientHandshakeContext
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 4
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 4
3: ldc "No session to resume."
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
4: StackMap locals:
StackMap stack:
aconst_null
areturn
5: StackMap locals:
StackMap stack:
aload 3
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getLocalSupportedSignatureSchemes:()Ljava/util/Collection;
6: astore 4
start local 4 7: aload 3
getfield sun.security.ssl.ClientHandshakeContext.localSupportedSignAlgs:Ljava/util/List;
aload 4
invokeinterface java.util.List.containsAll:(Ljava/util/Collection;)Z
ifne 11
8: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 10
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 10
9: ldc "Existing session uses different signature algorithms"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
10: StackMap locals: java.util.Collection
StackMap stack:
aconst_null
areturn
11: StackMap locals:
StackMap stack:
aload 3
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getPreSharedKey:()Ljava/util/Optional;
astore 5
start local 5 12: aload 5
invokevirtual java.util.Optional.isPresent:()Z
ifne 16
13: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 15
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 15
14: ldc "Existing session has no PSK."
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
15: StackMap locals: java.util.Optional
StackMap stack:
aconst_null
areturn
16: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast javax.crypto.SecretKey
astore 6
start local 6 17: aload 3
getfield sun.security.ssl.ClientHandshakeContext.pskIdentity:[B
invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
18: aload 3
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic get(Lsun/security/ssl/SSLSessionImpl;)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
sun/security/ssl/SSLSessionImpl.consumePskIdentity()Ljava/util/Optional; (5)
()Ljava/util/Optional;
invokevirtual java.util.Optional.or:(Ljava/util/function/Supplier;)Ljava/util/Optional;
19: astore 7
start local 7 20: aload 7
invokevirtual java.util.Optional.isPresent:()Z
ifne 25
21: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 24
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 24
22: ldc "PSK has no identity, or identity was already used"
iconst_0
anewarray java.lang.Object
23: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
24: StackMap locals: javax.crypto.SecretKey java.util.Optional
StackMap stack:
aconst_null
areturn
25: StackMap locals:
StackMap stack:
aload 3
aload 7
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast byte[]
putfield sun.security.ssl.ClientHandshakeContext.pskIdentity:[B
26: aload 3
getfield sun.security.ssl.ClientHandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.engineGetClientSessionContext:()Ljavax/net/ssl/SSLSessionContext;
27: checkcast sun.security.ssl.SSLSessionContextImpl
astore 9
start local 9 28: aload 9
aload 3
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getSessionId:()Lsun/security/ssl/SessionId;
invokevirtual sun.security.ssl.SSLSessionContextImpl.remove:(Lsun/security/ssl/SessionId;)V
29: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 32
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 32
30: ldc "Found resumable session. Preparing PSK message."
iconst_0
anewarray java.lang.Object
31: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
32: StackMap locals: sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ClientHandshakeContext java.util.Collection java.util.Optional javax.crypto.SecretKey java.util.Optional top sun.security.ssl.SSLSessionContextImpl
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 10
start local 10 33: invokestatic java.lang.System.currentTimeMillis:()J
34: aload 3
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getTicketCreationTime:()J
35: lsub
l2i
istore 11
start local 11 36: iload 11
aload 3
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getTicketAgeAdd:()I
iadd
37: istore 12
start local 12 38: aload 10
new sun.security.ssl.PreSharedKeyExtension$PskIdentity
dup
aload 3
getfield sun.security.ssl.ClientHandshakeContext.pskIdentity:[B
iload 12
invokespecial sun.security.ssl.PreSharedKeyExtension$PskIdentity.<init>:([BI)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
39: aload 3
aload 6
aload 3
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokestatic sun.security.ssl.PreSharedKeyExtension.deriveBinderKey:(Lsun/security/ssl/HandshakeContext;Ljavax/crypto/SecretKey;Lsun/security/ssl/SSLSessionImpl;)Ljavax/crypto/SecretKey;
40: astore 13
start local 13 41: aload 2
checkcast sun.security.ssl.ClientHello$ClientHelloMessage
astore 14
start local 14 42: aload 0
43: aload 3
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getSuite:()Lsun/security/ssl/CipherSuite;
getfield sun.security.ssl.CipherSuite.hashAlg:Lsun/security/ssl/CipherSuite$HashAlg;
getfield sun.security.ssl.CipherSuite$HashAlg.hashLength:I
aload 10
44: invokevirtual sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyProducer.createPskPrototype:(ILjava/util/List;)Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;
astore 15
start local 15 45: aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakeHash:Lsun/security/ssl/HandshakeHash;
invokevirtual sun.security.ssl.HandshakeHash.copy:()Lsun/security/ssl/HandshakeHash;
astore 16
start local 16 46: aload 3
aload 13
aload 16
47: aload 3
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
aload 3
aload 14
aload 15
48: invokestatic sun.security.ssl.PreSharedKeyExtension.computeBinder:(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
astore 17
start local 17 49: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 18
start local 18 50: aload 18
aload 17
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
51: new sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec
dup
aload 10
aload 18
invokespecial sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.<init>:(Ljava/util/List;Ljava/util/List;)V
52: astore 19
start local 19 53: aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakeExtensions:Ljava/util/Map;
getstatic sun.security.ssl.SSLExtension.CH_PRE_SHARED_KEY:Lsun/security/ssl/SSLExtension;
aload 19
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
54: aload 19
invokevirtual sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.getEncoded:()[B
areturn
end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 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 55 0 this Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeyProducer;
0 55 1 context Lsun/security/ssl/ConnectionContext;
0 55 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
1 55 3 chc Lsun/security/ssl/ClientHandshakeContext;
7 55 4 sessionSigAlgs Ljava/util/Collection<Lsun/security/ssl/SignatureScheme;>;
12 55 5 pskOpt Ljava/util/Optional<Ljavax/crypto/SecretKey;>;
17 55 6 psk Ljavax/crypto/SecretKey;
20 55 7 pskIdOpt Ljava/util/Optional<[B>;
28 55 9 sessionCache Lsun/security/ssl/SSLSessionContextImpl;
33 55 10 identities Ljava/util/List<Lsun/security/ssl/PreSharedKeyExtension$PskIdentity;>;
36 55 11 ageMillis I
38 55 12 obfuscatedAge I
41 55 13 binderKey Ljavax/crypto/SecretKey;
42 55 14 clientHello Lsun/security/ssl/ClientHello$ClientHelloMessage;
45 55 15 pskPrototype Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;
46 55 16 pskBinderHash Lsun/security/ssl/HandshakeHash;
49 55 17 binder [B
50 55 18 binders Ljava/util/List<[B>;
53 55 19 pskMessage Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
message
private sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec createPskPrototype(int, java.util.List<sun.security.ssl.PreSharedKeyExtension$PskIdentity>);
descriptor: (ILjava/util/List;)Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: iload 1
newarray 8
astore 4
start local 4 2: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 5
StackMap locals: java.util.List byte[] java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.PreSharedKeyExtension$PskIdentity
pop
4: aload 3
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: new sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec
dup
aload 2
aload 3
invokespecial sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.<init>:(Ljava/util/List;Ljava/util/List;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeyProducer;
0 7 1 hashLength I
0 7 2 identities Ljava/util/List<Lsun/security/ssl/PreSharedKeyExtension$PskIdentity;>;
1 7 3 binders Ljava/util/List<[B>;
2 7 4 binderProto [B
Signature: (ILjava/util/List<Lsun/security/ssl/PreSharedKeyExtension$PskIdentity;>;)Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;
MethodParameters:
Name Flags
hashLength
identities
}
SourceFile: "PreSharedKeyExtension.java"
NestHost: sun.security.ssl.PreSharedKeyExtension
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
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 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 PskIdentity = sun.security.ssl.PreSharedKeyExtension$PskIdentity of sun.security.ssl.PreSharedKeyExtension
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake