final class sun.security.ssl.CertificateRequest$T12CertificateRequestConsumer implements sun.security.ssl.SSLConsumer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.CertificateRequest$T12CertificateRequestConsumer
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$T12CertificateRequestConsumer;
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=12, 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$T12CertificateRequestMessage
dup
aload 3
aload 2
invokespecial sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.<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$T12CertificateRequestMessage
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: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 6
start local 6 16: aload 5
getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.algorithmIds:[I
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 22
StackMap locals: sun.security.ssl.CertificateRequest$T12CertificateRequestConsumer sun.security.ssl.ConnectionContext java.nio.ByteBuffer sun.security.ssl.ClientHandshakeContext sun.security.ssl.SSLConsumer sun.security.ssl.CertificateRequest$T12CertificateRequestMessage java.util.List top int int int[]
StackMap stack:
17: aload 10
iload 8
iaload
istore 7
start local 7 18: iload 7
invokestatic sun.security.ssl.SignatureScheme.valueOf:(I)Lsun/security/ssl/SignatureScheme;
astore 11
start local 11 19: aload 11
ifnull 21
20: aload 6
aload 11
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 11 end local 7 21: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
22: iload 8
iload 9
if_icmplt 17
23: aload 3
aload 6
putfield sun.security.ssl.ClientHandshakeContext.peerRequestedSignatureSchemes:Ljava/util/List;
24: aload 3
aload 6
putfield sun.security.ssl.ClientHandshakeContext.peerRequestedCertSignSchemes:Ljava/util/List;
25: aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
aload 6
invokevirtual sun.security.ssl.SSLSessionImpl.setPeerSupportedSignatureAlgorithms:(Ljava/util/Collection;)V
26: aload 3
aload 5
invokevirtual sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.getAuthorities:()[Ljavax/security/auth/x500/X500Principal;
putfield sun.security.ssl.ClientHandshakeContext.peerSupportedAuthorities:[Ljavax/security/auth/x500/X500Principal;
27: aload 3
invokestatic sun.security.ssl.CertificateRequest$T12CertificateRequestConsumer.choosePossession:(Lsun/security/ssl/HandshakeContext;)Lsun/security/ssl/SSLPossession;
astore 7
start local 7 28: aload 7
ifnonnull 30
29: return
30: StackMap locals: sun.security.ssl.CertificateRequest$T12CertificateRequestConsumer sun.security.ssl.ConnectionContext java.nio.ByteBuffer sun.security.ssl.ClientHandshakeContext sun.security.ssl.SSLConsumer sun.security.ssl.CertificateRequest$T12CertificateRequestMessage java.util.List sun.security.ssl.SSLPossession
StackMap stack:
aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakePossessions:Ljava/util/List;
aload 7
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
31: 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;
32: getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_VERIFY:Lsun/security/ssl/SSLHandshake;
33: invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
34: 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 35 0 this Lsun/security/ssl/CertificateRequest$T12CertificateRequestConsumer;
0 35 1 context Lsun/security/ssl/ConnectionContext;
0 35 2 message Ljava/nio/ByteBuffer;
1 35 3 chc Lsun/security/ssl/ClientHandshakeContext;
5 35 4 certStatCons Lsun/security/ssl/SSLConsumer;
9 35 5 crm Lsun/security/ssl/CertificateRequest$T12CertificateRequestMessage;
16 35 6 sss Ljava/util/List<Lsun/security/ssl/SignatureScheme;>;
18 21 7 id I
19 21 11 ss Lsun/security/ssl/SignatureScheme;
28 35 7 pos Lsun/security/ssl/SSLPossession;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
message
private static sun.security.ssl.SSLPossession choosePossession(sun.security.ssl.HandshakeContext);
descriptor: (Lsun/security/ssl/HandshakeContext;)Lsun/security/ssl/SSLPossession;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=1
start local 0 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 5
2: StackMap locals:
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 signature and hash algorithms in CertificateRequest"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
4: StackMap locals:
StackMap stack:
aconst_null
areturn
5: StackMap locals:
StackMap stack:
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 1
start local 1 6: aload 0
getfield sun.security.ssl.HandshakeContext.peerRequestedCertSignSchemes:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 37
StackMap locals: sun.security.ssl.HandshakeContext java.util.Collection top java.util.Iterator
StackMap stack:
7: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.SignatureScheme
astore 2
start local 2 8: aload 1
aload 2
getfield sun.security.ssl.SignatureScheme.keyAlgorithm:Ljava/lang/String;
invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
ifeq 13
9: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 37
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 37
10: new java.lang.StringBuilder
dup
ldc "Unsupported authentication scheme: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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
11: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
12: goto 37
13: StackMap locals: sun.security.ssl.HandshakeContext java.util.Collection sun.security.ssl.SignatureScheme java.util.Iterator
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeContext.peerRequestedSignatureSchemes:Ljava/util/List;
14: aload 2
aload 0
getfield sun.security.ssl.HandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
15: invokestatic sun.security.ssl.SignatureScheme.getPreferableAlgorithm:(Ljava/util/List;Lsun/security/ssl/SignatureScheme;Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/SignatureScheme;
ifnonnull 23
16: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 21
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 21
17: new java.lang.StringBuilder
dup
ldc "Unable to produce CertificateVerify for signature scheme: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
18: aload 2
getfield sun.security.ssl.SignatureScheme.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
19: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
20: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
21: StackMap locals:
StackMap stack:
aload 1
aload 2
getfield sun.security.ssl.SignatureScheme.keyAlgorithm:Ljava/lang/String;
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
22: goto 37
23: StackMap locals:
StackMap stack:
aload 2
invokestatic sun.security.ssl.X509Authentication.valueOf:(Lsun/security/ssl/SignatureScheme;)Lsun/security/ssl/X509Authentication;
astore 4
start local 4 24: aload 4
ifnonnull 30
25: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 28
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 28
26: new java.lang.StringBuilder
dup
ldc "Unsupported authentication scheme: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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
27: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
28: StackMap locals: sun.security.ssl.SSLAuthentication
StackMap stack:
aload 1
aload 2
getfield sun.security.ssl.SignatureScheme.keyAlgorithm:Ljava/lang/String;
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
29: goto 37
30: StackMap locals:
StackMap stack:
aload 4
aload 0
invokeinterface sun.security.ssl.SSLAuthentication.createPossession:(Lsun/security/ssl/HandshakeContext;)Lsun/security/ssl/SSLPossession;
astore 5
start local 5 31: aload 5
ifnonnull 36
32: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 37
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 37
33: new java.lang.StringBuilder
dup
ldc "Unavailable authentication scheme: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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
34: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
35: goto 37
36: StackMap locals: sun.security.ssl.SSLPossession
StackMap stack:
aload 5
areturn
end local 5 end local 4 end local 2 37: StackMap locals: sun.security.ssl.HandshakeContext java.util.Collection top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
38: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 40
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 40
39: ldc "No available authentication scheme"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
40: StackMap locals: sun.security.ssl.HandshakeContext java.util.Collection
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 hc Lsun/security/ssl/HandshakeContext;
6 41 1 checkedKeyTypes Ljava/util/Collection<Ljava/lang/String;>;
8 37 2 ss Lsun/security/ssl/SignatureScheme;
24 37 4 ka Lsun/security/ssl/SSLAuthentication;
31 37 5 pos Lsun/security/ssl/SSLPossession;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
hc
}
SourceFile: "CertificateRequest.java"
NestHost: sun.security.ssl.CertificateRequest
InnerClasses:
private final T12CertificateRequestConsumer = sun.security.ssl.CertificateRequest$T12CertificateRequestConsumer of sun.security.ssl.CertificateRequest
final T12CertificateRequestMessage = sun.security.ssl.CertificateRequest$T12CertificateRequestMessage of sun.security.ssl.CertificateRequest
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake