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=17, 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:()Ljavax/crypto/SecretKey;
astore 5
start local 5 12: aload 5
ifnonnull 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: javax.crypto.SecretKey
StackMap stack:
aconst_null
areturn
16: StackMap locals:
StackMap stack:
aload 3
getfield sun.security.ssl.ClientHandshakeContext.pskIdentity:[B
ifnonnull 18
17: aload 3
aload 3
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.consumePskIdentity:()[B
putfield sun.security.ssl.ClientHandshakeContext.pskIdentity:[B
18: StackMap locals:
StackMap stack:
aload 3
getfield sun.security.ssl.ClientHandshakeContext.pskIdentity:[B
ifnonnull 23
19: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 22
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 22
20: ldc "PSK has no identity, or identity was already used"
iconst_0
anewarray java.lang.Object
21: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
22: StackMap locals:
StackMap stack:
aconst_null
areturn
23: StackMap locals:
StackMap stack:
aload 3
getfield sun.security.ssl.ClientHandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.engineGetClientSessionContext:()Ljavax/net/ssl/SSLSessionContext;
24: checkcast sun.security.ssl.SSLSessionContextImpl
astore 6
start local 6 25: aload 6
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
26: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 29
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 29
27: ldc "Found resumable session. Preparing PSK message."
iconst_0
anewarray java.lang.Object
28: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
29: StackMap locals: sun.security.ssl.SSLSessionContextImpl
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 7
start local 7 30: invokestatic java.lang.System.currentTimeMillis:()J
31: aload 3
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getTicketCreationTime:()J
32: lsub
l2i
istore 8
start local 8 33: iload 8
aload 3
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
invokevirtual sun.security.ssl.SSLSessionImpl.getTicketAgeAdd:()I
iadd
34: istore 9
start local 9 35: aload 7
new sun.security.ssl.PreSharedKeyExtension$PskIdentity
dup
aload 3
getfield sun.security.ssl.ClientHandshakeContext.pskIdentity:[B
iload 9
invokespecial sun.security.ssl.PreSharedKeyExtension$PskIdentity.<init>:([BI)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
36: aload 3
aload 5
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;
37: astore 10
start local 10 38: aload 2
checkcast sun.security.ssl.ClientHello$ClientHelloMessage
astore 11
start local 11 39: aload 0
40: 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 7
41: invokevirtual sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeyProducer.createPskPrototype:(ILjava/util/List;)Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;
astore 12
start local 12 42: aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakeHash:Lsun/security/ssl/HandshakeHash;
invokevirtual sun.security.ssl.HandshakeHash.copy:()Lsun/security/ssl/HandshakeHash;
astore 13
start local 13 43: aload 3
aload 10
aload 13
44: aload 3
getfield sun.security.ssl.ClientHandshakeContext.resumingSession:Lsun/security/ssl/SSLSessionImpl;
aload 3
aload 11
aload 12
45: 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 14
start local 14 46: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 15
start local 15 47: aload 15
aload 14
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
48: new sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec
dup
aload 7
aload 15
invokespecial sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.<init>:(Ljava/util/List;Ljava/util/List;)V
49: astore 16
start local 16 50: 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 16
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
51: aload 16
invokevirtual sun.security.ssl.PreSharedKeyExtension$CHPreSharedKeySpec.getEncoded:()[B
areturn
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 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 52 0 this Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeyProducer;
0 52 1 context Lsun/security/ssl/ConnectionContext;
0 52 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
1 52 3 chc Lsun/security/ssl/ClientHandshakeContext;
7 52 4 sessionSigAlgs Ljava/util/Collection<Lsun/security/ssl/SignatureScheme;>;
12 52 5 psk Ljavax/crypto/SecretKey;
25 52 6 sessionCache Lsun/security/ssl/SSLSessionContextImpl;
30 52 7 identities Ljava/util/List<Lsun/security/ssl/PreSharedKeyExtension$PskIdentity;>;
33 52 8 ageMillis I
35 52 9 obfuscatedAge I
38 52 10 binderKey Ljavax/crypto/SecretKey;
39 52 11 clientHello Lsun/security/ssl/ClientHello$ClientHelloMessage;
42 52 12 pskPrototype Lsun/security/ssl/PreSharedKeyExtension$CHPreSharedKeySpec;
43 52 13 pskBinderHash Lsun/security/ssl/HandshakeHash;
46 52 14 binder [B
47 52 15 binders Ljava/util/List<[B>;
50 52 16 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.size:()I
istore 5
start local 5 3: goto 5
4: StackMap locals: java.util.List byte[] int
StackMap stack:
aload 3
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: StackMap locals:
StackMap stack:
iload 5
iinc 5 -1
ifgt 4
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 5 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
3 7 5 i I
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:
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