final class sun.security.ssl.CertificateRequest$T10CertificateRequestConsumer implements sun.security.ssl.SSLConsumer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.CertificateRequest$T10CertificateRequestConsumer
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/CertificateRequest$T10CertificateRequestConsumer;
public void consume(sun.security.ssl.ConnectionContext, java.nio.ByteBuffer);
descriptor: (Lsun/security/ssl/ConnectionContext;Ljava/nio/ByteBuffer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, 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.handshakeConsumers:Ljava/util/LinkedHashMap;
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_REQUEST:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
invokevirtual java.util.LinkedHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
3: getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_STATUS:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
4: invokevirtual java.util.LinkedHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.security.ssl.SSLConsumer
astore 4
start local 4 5: aload 4
ifnull 7
6: getstatic sun.security.ssl.CertificateStatus.handshakeAbsence:Lsun/security/ssl/HandshakeAbsence;
aload 1
aconst_null
invokeinterface sun.security.ssl.HandshakeAbsence.absent:(Lsun/security/ssl/ConnectionContext;Lsun/security/ssl/SSLHandshake$HandshakeMessage;)V
7: StackMap locals: sun.security.ssl.ClientHandshakeContext sun.security.ssl.SSLConsumer
StackMap stack:
new sun.security.ssl.CertificateRequest$T10CertificateRequestMessage
dup
aload 3
aload 2
invokespecial sun.security.ssl.CertificateRequest$T10CertificateRequestMessage.<init>:(Lsun/security/ssl/HandshakeContext;Ljava/nio/ByteBuffer;)V
8: astore 5
start local 5 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 "Consuming CertificateRequest handshake message"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
11: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
12: StackMap locals: sun.security.ssl.CertificateRequest$T10CertificateRequestMessage
StackMap stack:
aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakeProducers:Ljava/util/HashMap;
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
13: getstatic sun.security.ssl.SSLHandshake.CERTIFICATE:Lsun/security/ssl/SSLHandshake;
14: invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: aload 3
getfield sun.security.ssl.ClientHandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getX509KeyManager:()Ljavax/net/ssl/X509ExtendedKeyManager;
astore 6
start local 6 16: aconst_null
astore 7
start local 7 17: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.transport:Lsun/security/ssl/SSLTransport;
instanceof sun.security.ssl.SSLSocketImpl
ifeq 22
18: aload 6
aload 5
invokevirtual sun.security.ssl.CertificateRequest$T10CertificateRequestMessage.getKeyTypes:()[Ljava/lang/String;
19: aload 5
invokevirtual sun.security.ssl.CertificateRequest$T10CertificateRequestMessage.getAuthorities:()[Ljavax/security/auth/x500/X500Principal;
aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.transport:Lsun/security/ssl/SSLTransport;
checkcast javax.net.ssl.SSLSocket
20: invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseClientAlias:([Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;
astore 7
21: goto 26
StackMap locals: javax.net.ssl.X509ExtendedKeyManager java.lang.String
StackMap stack:
22: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.transport:Lsun/security/ssl/SSLTransport;
instanceof sun.security.ssl.SSLEngineImpl
ifeq 26
23: aload 6
aload 5
invokevirtual sun.security.ssl.CertificateRequest$T10CertificateRequestMessage.getKeyTypes:()[Ljava/lang/String;
24: aload 5
invokevirtual sun.security.ssl.CertificateRequest$T10CertificateRequestMessage.getAuthorities:()[Ljavax/security/auth/x500/X500Principal;
aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.transport:Lsun/security/ssl/SSLTransport;
checkcast javax.net.ssl.SSLEngine
25: invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseEngineClientAlias:([Ljava/lang/String;[Ljava/security/Principal;Ljavax/net/ssl/SSLEngine;)Ljava/lang/String;
astore 7
26: StackMap locals:
StackMap stack:
aload 7
ifnonnull 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 "No available client authentication"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
29: StackMap locals:
StackMap stack:
return
30: StackMap locals:
StackMap stack:
aload 6
aload 7
invokevirtual javax.net.ssl.X509ExtendedKeyManager.getPrivateKey:(Ljava/lang/String;)Ljava/security/PrivateKey;
astore 8
start local 8 31: aload 8
ifnonnull 35
32: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 34
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 34
33: ldc "No available client private key"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
34: StackMap locals: java.security.PrivateKey
StackMap stack:
return
35: StackMap locals:
StackMap stack:
aload 6
aload 7
invokevirtual javax.net.ssl.X509ExtendedKeyManager.getCertificateChain:(Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
astore 9
start local 9 36: aload 9
ifnull 37
aload 9
arraylength
ifne 40
37: StackMap locals: java.security.cert.X509Certificate[]
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 39
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 39
38: ldc "No available client certificate"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
39: StackMap locals:
StackMap stack:
return
40: StackMap locals:
StackMap stack:
aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakePossessions:Ljava/util/List;
41: new sun.security.ssl.X509Authentication$X509Possession
dup
aload 8
aload 9
invokespecial sun.security.ssl.X509Authentication$X509Possession.<init>:(Ljava/security/PrivateKey;[Ljava/security/cert/X509Certificate;)V
42: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
43: aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakeProducers:Ljava/util/HashMap;
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_VERIFY:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
44: getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_VERIFY:Lsun/security/ssl/SSLHandshake;
45: invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
46: return
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 47 0 this Lsun/security/ssl/CertificateRequest$T10CertificateRequestConsumer;
0 47 1 context Lsun/security/ssl/ConnectionContext;
0 47 2 message Ljava/nio/ByteBuffer;
1 47 3 chc Lsun/security/ssl/ClientHandshakeContext;
5 47 4 certStatCons Lsun/security/ssl/SSLConsumer;
9 47 5 crm Lsun/security/ssl/CertificateRequest$T10CertificateRequestMessage;
16 47 6 km Ljavax/net/ssl/X509ExtendedKeyManager;
17 47 7 clientAlias Ljava/lang/String;
31 47 8 clientPrivateKey Ljava/security/PrivateKey;
36 47 9 clientCerts [Ljava/security/cert/X509Certificate;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
message
}
SourceFile: "CertificateRequest.java"
NestHost: sun.security.ssl.CertificateRequest
InnerClasses:
private final T10CertificateRequestConsumer = sun.security.ssl.CertificateRequest$T10CertificateRequestConsumer of sun.security.ssl.CertificateRequest
final T10CertificateRequestMessage = sun.security.ssl.CertificateRequest$T10CertificateRequestMessage of sun.security.ssl.CertificateRequest
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake
final X509Possession = sun.security.ssl.X509Authentication$X509Possession of sun.security.ssl.X509Authentication