final class sun.security.ssl.CertificateMessage$T13CertificateProducer implements sun.security.ssl.HandshakeProducer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.CertificateMessage$T13CertificateProducer
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/CertificateMessage$T13CertificateProducer;
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=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast sun.security.ssl.HandshakeContext
astore 3
start local 3 1: aload 3
getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.isClientMode:Z
ifeq 5
2: aload 0
3: aload 1
checkcast sun.security.ssl.ClientHandshakeContext
aload 2
4: invokevirtual sun.security.ssl.CertificateMessage$T13CertificateProducer.onProduceCertificate:(Lsun/security/ssl/ClientHandshakeContext;Lsun/security/ssl/SSLHandshake$HandshakeMessage;)[B
areturn
5: StackMap locals: sun.security.ssl.HandshakeContext
StackMap stack:
aload 0
6: aload 1
checkcast sun.security.ssl.ServerHandshakeContext
aload 2
7: invokevirtual sun.security.ssl.CertificateMessage$T13CertificateProducer.onProduceCertificate:(Lsun/security/ssl/ServerHandshakeContext;Lsun/security/ssl/SSLHandshake$HandshakeMessage;)[B
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/CertificateMessage$T13CertificateProducer;
0 8 1 context Lsun/security/ssl/ConnectionContext;
0 8 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
1 8 3 hc Lsun/security/ssl/HandshakeContext;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
message
private byte[] onProduceCertificate(sun.security.ssl.ServerHandshakeContext, sun.security.ssl.SSLHandshake$HandshakeMessage);
descriptor: (Lsun/security/ssl/ServerHandshakeContext;Lsun/security/ssl/SSLHandshake$HandshakeMessage;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 2
checkcast sun.security.ssl.ClientHello$ClientHelloMessage
astore 3
start local 3 1: aload 1
aload 3
invokestatic sun.security.ssl.CertificateMessage$T13CertificateProducer.choosePossession:(Lsun/security/ssl/HandshakeContext;Lsun/security/ssl/ClientHello$ClientHelloMessage;)Lsun/security/ssl/SSLPossession;
astore 4
start local 4 2: aload 4
ifnonnull 6
3: aload 1
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
4: ldc "No available authentication scheme"
5: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
6: StackMap locals: sun.security.ssl.ClientHello$ClientHelloMessage sun.security.ssl.SSLPossession
StackMap stack:
aload 4
instanceof sun.security.ssl.X509Authentication$X509Possession
ifne 10
7: aload 1
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
8: ldc "No X.509 certificate for server authentication"
9: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
10: StackMap locals:
StackMap stack:
aload 4
checkcast sun.security.ssl.X509Authentication$X509Possession
astore 5
start local 5 11: aload 5
getfield sun.security.ssl.X509Authentication$X509Possession.popCerts:[Ljava/security/cert/X509Certificate;
astore 6
start local 6 12: aload 6
ifnull 13
aload 6
arraylength
ifne 16
13: StackMap locals: sun.security.ssl.X509Authentication$X509Possession java.security.cert.X509Certificate[]
StackMap stack:
aload 1
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
14: ldc "No X.509 certificate for server authentication"
15: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
16: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.ServerHandshakeContext.handshakePossessions:Ljava/util/List;
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
17: aload 1
getfield sun.security.ssl.ServerHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
18: aload 5
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
19: invokevirtual sun.security.ssl.SSLSessionImpl.setLocalPrivateKey:(Ljava/security/PrivateKey;)V
20: aload 1
getfield sun.security.ssl.ServerHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
aload 6
invokevirtual sun.security.ssl.SSLSessionImpl.setLocalCertificates:([Ljava/security/cert/X509Certificate;)V
21: new sun.security.ssl.CertificateMessage$T13CertificateMessage
dup
aload 1
iconst_0
newarray 8
aload 6
invokespecial sun.security.ssl.CertificateMessage$T13CertificateMessage.<init>:(Lsun/security/ssl/HandshakeContext;[B[Ljava/security/cert/X509Certificate;)V
astore 7
start local 7 22: goto 27
end local 7 StackMap locals:
StackMap stack: java.lang.Exception
23: astore 8
start local 8 24: aload 1
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
25: ldc "Failed to produce server Certificate message"
aload 8
26: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 8 start local 7 27: StackMap locals: sun.security.ssl.CertificateMessage$T13CertificateMessage
StackMap stack:
aload 1
aload 1
invokestatic sun.security.ssl.StatusResponseManager.processStapling:(Lsun/security/ssl/ServerHandshakeContext;)Lsun/security/ssl/StatusResponseManager$StaplingParameters;
putfield sun.security.ssl.ServerHandshakeContext.stapleParams:Lsun/security/ssl/StatusResponseManager$StaplingParameters;
28: aload 1
aload 1
getfield sun.security.ssl.ServerHandshakeContext.stapleParams:Lsun/security/ssl/StatusResponseManager$StaplingParameters;
ifnull 29
iconst_1
goto 30
StackMap locals:
StackMap stack: sun.security.ssl.ServerHandshakeContext
29: iconst_0
StackMap locals: sun.security.ssl.CertificateMessage$T13CertificateProducer sun.security.ssl.ServerHandshakeContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ClientHello$ClientHelloMessage sun.security.ssl.SSLPossession sun.security.ssl.X509Authentication$X509Possession java.security.cert.X509Certificate[] sun.security.ssl.CertificateMessage$T13CertificateMessage
StackMap stack: sun.security.ssl.ServerHandshakeContext int
30: putfield sun.security.ssl.ServerHandshakeContext.staplingActive:Z
31: aload 1
getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
32: getstatic sun.security.ssl.SSLHandshake.CERTIFICATE:Lsun/security/ssl/SSLHandshake;
33: getstatic sun.security.ssl.ProtocolVersion.PROTOCOLS_OF_13:[Lsun/security/ssl/ProtocolVersion;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
34: invokevirtual sun.security.ssl.SSLConfiguration.getEnabledExtensions:(Lsun/security/ssl/SSLHandshake;Ljava/util/List;)[Lsun/security/ssl/SSLExtension;
astore 8
start local 8 35: aload 7
getfield sun.security.ssl.CertificateMessage$T13CertificateMessage.certEntries:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 39
StackMap locals: sun.security.ssl.CertificateMessage$T13CertificateProducer sun.security.ssl.ServerHandshakeContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ClientHello$ClientHelloMessage sun.security.ssl.SSLPossession sun.security.ssl.X509Authentication$X509Possession java.security.cert.X509Certificate[] sun.security.ssl.CertificateMessage$T13CertificateMessage sun.security.ssl.SSLExtension[] top java.util.Iterator
StackMap stack:
36: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.CertificateMessage$CertificateEntry
astore 9
start local 9 37: aload 1
aload 9
putfield sun.security.ssl.ServerHandshakeContext.currentCertEntry:Lsun/security/ssl/CertificateMessage$CertificateEntry;
38: aload 9
getfield sun.security.ssl.CertificateMessage$CertificateEntry.extensions:Lsun/security/ssl/SSLExtensions;
aload 1
aload 8
invokevirtual sun.security.ssl.SSLExtensions.produce:(Lsun/security/ssl/HandshakeContext;[Lsun/security/ssl/SSLExtension;)V
end local 9 39: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 36
40: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 42
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 42
41: ldc "Produced server Certificate message"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 7
aastore
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
42: StackMap locals: sun.security.ssl.CertificateMessage$T13CertificateProducer sun.security.ssl.ServerHandshakeContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ClientHello$ClientHelloMessage sun.security.ssl.SSLPossession sun.security.ssl.X509Authentication$X509Possession java.security.cert.X509Certificate[] sun.security.ssl.CertificateMessage$T13CertificateMessage sun.security.ssl.SSLExtension[]
StackMap stack:
aload 7
aload 1
getfield sun.security.ssl.ServerHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.CertificateMessage$T13CertificateMessage.write:(Lsun/security/ssl/HandshakeOutStream;)V
43: aload 1
getfield sun.security.ssl.ServerHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
44: aconst_null
areturn
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 45 0 this Lsun/security/ssl/CertificateMessage$T13CertificateProducer;
0 45 1 shc Lsun/security/ssl/ServerHandshakeContext;
0 45 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
1 45 3 clientHello Lsun/security/ssl/ClientHello$ClientHelloMessage;
2 45 4 pos Lsun/security/ssl/SSLPossession;
11 45 5 x509Possession Lsun/security/ssl/X509Authentication$X509Possession;
12 45 6 localCerts [Ljava/security/cert/X509Certificate;
22 23 7 cm Lsun/security/ssl/CertificateMessage$T13CertificateMessage;
27 45 7 cm Lsun/security/ssl/CertificateMessage$T13CertificateMessage;
24 27 8 ce Ljava/lang/Exception;
35 45 8 enabledCTExts [Lsun/security/ssl/SSLExtension;
37 39 9 certEnt Lsun/security/ssl/CertificateMessage$CertificateEntry;
Exception table:
from to target type
21 22 23 Class javax.net.ssl.SSLException
21 22 23 Class java.security.cert.CertificateException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
shc
message
private static sun.security.ssl.SSLPossession choosePossession(sun.security.ssl.HandshakeContext, sun.security.ssl.ClientHello$ClientHelloMessage);
descriptor: (Lsun/security/ssl/HandshakeContext;Lsun/security/ssl/ClientHello$ClientHelloMessage;)Lsun/security/ssl/SSLPossession;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.HandshakeContext.peerRequestedCertSignSchemes:Ljava/util/List;
ifnull 2
1: aload 0
getfield sun.security.ssl.HandshakeContext.peerRequestedCertSignSchemes:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 6
2: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 5
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 5
3: ldc "No signature_algorithms(_cert) in ClientHello"
iconst_0
anewarray java.lang.Object
4: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
5: StackMap locals:
StackMap stack:
aconst_null
areturn
6: StackMap locals:
StackMap stack:
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 2
start local 2 7: aload 0
getfield sun.security.ssl.HandshakeContext.peerRequestedCertSignSchemes:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 39
StackMap locals: sun.security.ssl.HandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage java.util.Collection top java.util.Iterator
StackMap stack:
8: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.SignatureScheme
astore 3
start local 3 9: aload 2
aload 3
getfield sun.security.ssl.SignatureScheme.keyAlgorithm:Ljava/lang/String;
invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
ifeq 14
10: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 39
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 39
11: new java.lang.StringBuilder
dup
ldc "Unsupported authentication scheme: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
getfield sun.security.ssl.SignatureScheme.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
12: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
13: goto 39
14: StackMap locals: sun.security.ssl.HandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage java.util.Collection sun.security.ssl.SignatureScheme java.util.Iterator
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeContext.algorithmConstraints:Ljava/security/AlgorithmConstraints;
15: aload 0
getfield sun.security.ssl.HandshakeContext.peerRequestedSignatureSchemes:Ljava/util/List;
16: aload 3
aload 0
getfield sun.security.ssl.HandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
17: invokestatic sun.security.ssl.SignatureScheme.getPreferableAlgorithm:(Ljava/security/AlgorithmConstraints;Ljava/util/List;Lsun/security/ssl/SignatureScheme;Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/SignatureScheme;
ifnonnull 25
18: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 23
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 23
19: new java.lang.StringBuilder
dup
ldc "Unable to produce CertificateVerify for signature scheme: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
20: aload 3
getfield sun.security.ssl.SignatureScheme.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
21: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
22: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
23: StackMap locals:
StackMap stack:
aload 2
aload 3
getfield sun.security.ssl.SignatureScheme.keyAlgorithm:Ljava/lang/String;
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
24: goto 39
25: StackMap locals:
StackMap stack:
aload 3
invokestatic sun.security.ssl.X509Authentication.valueOf:(Lsun/security/ssl/SignatureScheme;)Lsun/security/ssl/X509Authentication;
astore 5
start local 5 26: aload 5
ifnonnull 32
27: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 30
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 30
28: new java.lang.StringBuilder
dup
ldc "Unsupported authentication scheme: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
getfield sun.security.ssl.SignatureScheme.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
29: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
30: StackMap locals: sun.security.ssl.SSLAuthentication
StackMap stack:
aload 2
aload 3
getfield sun.security.ssl.SignatureScheme.keyAlgorithm:Ljava/lang/String;
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
31: goto 39
32: StackMap locals:
StackMap stack:
aload 5
aload 0
invokeinterface sun.security.ssl.SSLAuthentication.createPossession:(Lsun/security/ssl/HandshakeContext;)Lsun/security/ssl/SSLPossession;
astore 6
start local 6 33: aload 6
ifnonnull 38
34: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 39
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 39
35: new java.lang.StringBuilder
dup
ldc "Unavailable authentication scheme: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
getfield sun.security.ssl.SignatureScheme.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
36: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
37: goto 39
38: StackMap locals: sun.security.ssl.SSLPossession
StackMap stack:
aload 6
areturn
end local 6 end local 5 end local 3 39: StackMap locals: sun.security.ssl.HandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage java.util.Collection top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
40: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 42
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 42
41: ldc "No available authentication scheme"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
42: StackMap locals: sun.security.ssl.HandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage java.util.Collection
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 hc Lsun/security/ssl/HandshakeContext;
0 43 1 clientHello Lsun/security/ssl/ClientHello$ClientHelloMessage;
7 43 2 checkedKeyTypes Ljava/util/Collection<Ljava/lang/String;>;
9 39 3 ss Lsun/security/ssl/SignatureScheme;
26 39 5 ka Lsun/security/ssl/SSLAuthentication;
33 39 6 pos Lsun/security/ssl/SSLPossession;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
hc
clientHello
private byte[] onProduceCertificate(sun.security.ssl.ClientHandshakeContext, sun.security.ssl.SSLHandshake$HandshakeMessage);
descriptor: (Lsun/security/ssl/ClientHandshakeContext;Lsun/security/ssl/SSLHandshake$HandshakeMessage;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 2
checkcast sun.security.ssl.ClientHello$ClientHelloMessage
astore 3
start local 3 1: aload 1
aload 3
invokestatic sun.security.ssl.CertificateMessage$T13CertificateProducer.choosePossession:(Lsun/security/ssl/HandshakeContext;Lsun/security/ssl/ClientHello$ClientHelloMessage;)Lsun/security/ssl/SSLPossession;
astore 4
start local 4 2: aload 4
ifnonnull 7
3: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 5
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 5
4: ldc "No available client authentication scheme"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
5: StackMap locals: sun.security.ssl.ClientHello$ClientHelloMessage sun.security.ssl.SSLPossession
StackMap stack:
iconst_0
anewarray java.security.cert.X509Certificate
astore 5
start local 5 6: goto 19
end local 5 7: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.ClientHandshakeContext.handshakePossessions:Ljava/util/List;
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: aload 4
instanceof sun.security.ssl.X509Authentication$X509Possession
ifne 14
9: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 12
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 12
10: ldc "No X.509 certificate for client authentication"
iconst_0
anewarray java.lang.Object
11: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
12: StackMap locals:
StackMap stack:
iconst_0
anewarray java.security.cert.X509Certificate
astore 5
start local 5 13: goto 19
end local 5 14: StackMap locals:
StackMap stack:
aload 4
checkcast sun.security.ssl.X509Authentication$X509Possession
astore 6
start local 6 15: aload 6
getfield sun.security.ssl.X509Authentication$X509Possession.popCerts:[Ljava/security/cert/X509Certificate;
astore 5
start local 5 16: aload 1
getfield sun.security.ssl.ClientHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
17: aload 6
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
18: invokevirtual sun.security.ssl.SSLSessionImpl.setLocalPrivateKey:(Ljava/security/PrivateKey;)V
end local 6 19: StackMap locals: java.security.cert.X509Certificate[]
StackMap stack:
aload 5
ifnull 22
aload 5
arraylength
ifeq 22
20: aload 1
getfield sun.security.ssl.ClientHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
aload 5
invokevirtual sun.security.ssl.SSLSessionImpl.setLocalCertificates:([Ljava/security/cert/X509Certificate;)V
21: goto 23
22: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.ClientHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
aconst_null
invokevirtual sun.security.ssl.SSLSessionImpl.setLocalCertificates:([Ljava/security/cert/X509Certificate;)V
23: StackMap locals:
StackMap stack:
new sun.security.ssl.CertificateMessage$T13CertificateMessage
dup
24: aload 1
aload 1
getfield sun.security.ssl.ClientHandshakeContext.certRequestContext:[B
aload 5
25: invokespecial sun.security.ssl.CertificateMessage$T13CertificateMessage.<init>:(Lsun/security/ssl/HandshakeContext;[B[Ljava/security/cert/X509Certificate;)V
astore 6
start local 6 26: goto 31
end local 6 StackMap locals:
StackMap stack: java.lang.Exception
27: astore 7
start local 7 28: aload 1
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
29: ldc "Failed to produce client Certificate message"
aload 7
30: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 7 start local 6 31: StackMap locals: sun.security.ssl.CertificateMessage$T13CertificateMessage
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 33
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 33
32: ldc "Produced client Certificate message"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
33: StackMap locals:
StackMap stack:
aload 6
aload 1
getfield sun.security.ssl.ClientHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.CertificateMessage$T13CertificateMessage.write:(Lsun/security/ssl/HandshakeOutStream;)V
34: aload 1
getfield sun.security.ssl.ClientHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
35: aconst_null
areturn
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 36 0 this Lsun/security/ssl/CertificateMessage$T13CertificateProducer;
0 36 1 chc Lsun/security/ssl/ClientHandshakeContext;
0 36 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
1 36 3 clientHello Lsun/security/ssl/ClientHello$ClientHelloMessage;
2 36 4 pos Lsun/security/ssl/SSLPossession;
6 7 5 localCerts [Ljava/security/cert/X509Certificate;
13 14 5 localCerts [Ljava/security/cert/X509Certificate;
16 36 5 localCerts [Ljava/security/cert/X509Certificate;
15 19 6 x509Possession Lsun/security/ssl/X509Authentication$X509Possession;
26 27 6 cm Lsun/security/ssl/CertificateMessage$T13CertificateMessage;
31 36 6 cm Lsun/security/ssl/CertificateMessage$T13CertificateMessage;
28 31 7 ce Ljava/lang/Exception;
Exception table:
from to target type
23 26 27 Class javax.net.ssl.SSLException
23 26 27 Class java.security.cert.CertificateException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
chc
message
}
SourceFile: "CertificateMessage.java"
NestHost: sun.security.ssl.CertificateMessage
InnerClasses:
final CertificateEntry = sun.security.ssl.CertificateMessage$CertificateEntry of sun.security.ssl.CertificateMessage
final T13CertificateMessage = sun.security.ssl.CertificateMessage$T13CertificateMessage of sun.security.ssl.CertificateMessage
private final T13CertificateProducer = sun.security.ssl.CertificateMessage$T13CertificateProducer of sun.security.ssl.CertificateMessage
final ClientHelloMessage = sun.security.ssl.ClientHello$ClientHelloMessage of sun.security.ssl.ClientHello
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake
final StaplingParameters = sun.security.ssl.StatusResponseManager$StaplingParameters of sun.security.ssl.StatusResponseManager
final X509Possession = sun.security.ssl.X509Authentication$X509Possession of sun.security.ssl.X509Authentication