final class sun.security.ssl.CertificateRequest$T12CertificateRequestProducer implements sun.security.ssl.HandshakeProducer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.CertificateRequest$T12CertificateRequestProducer
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 // sun.security.ssl.CertificateRequest$T12CertificateRequestProducer this
0: .line 590
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 592
return
end local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestProducer this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/CertificateRequest$T12CertificateRequestProducer;
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=6, locals=6, args_size=3
start local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestProducer this
start local 1 // sun.security.ssl.ConnectionContext context
start local 2 // sun.security.ssl.SSLHandshake$HandshakeMessage message
0: .line 598
aload 1 /* context */
checkcast sun.security.ssl.ServerHandshakeContext
astore 3 /* shc */
start local 3 // sun.security.ssl.ServerHandshakeContext shc
1: .line 599
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.localSupportedSignAlgs:Ljava/util/List;
ifnonnull 7
2: .line 600
aload 3 /* shc */
3: .line 602
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
4: .line 603
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.algorithmConstraints:Ljava/security/AlgorithmConstraints;
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.activeProtocols:Ljava/util/List;
5: .line 601
invokestatic sun.security.ssl.SignatureScheme.getSupportedAlgorithms:(Lsun/security/ssl/SSLConfiguration;Ljava/security/AlgorithmConstraints;Ljava/util/List;)Ljava/util/List;
6: .line 600
putfield sun.security.ssl.ServerHandshakeContext.localSupportedSignAlgs:Ljava/util/List;
7: .line 606
StackMap locals: sun.security.ssl.ServerHandshakeContext
StackMap stack:
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.localSupportedSignAlgs:Ljava/util/List;
ifnull 9
8: .line 607
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.localSupportedSignAlgs:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 12
9: .line 608
StackMap locals:
StackMap stack:
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
10: .line 609
ldc "No supported signature algorithm"
11: .line 608
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
12: .line 613
StackMap locals:
StackMap stack:
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getX509TrustManager:()Ljavax/net/ssl/X509TrustManager;
invokeinterface javax.net.ssl.X509TrustManager.getAcceptedIssuers:()[Ljava/security/cert/X509Certificate;
13: .line 612
astore 4 /* caCerts */
start local 4 // java.security.cert.X509Certificate[] caCerts
14: .line 614
new sun.security.ssl.CertificateRequest$T12CertificateRequestMessage
dup
15: .line 615
aload 3 /* shc */
aload 4 /* caCerts */
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
16: .line 616
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.localSupportedSignAlgs:Ljava/util/List;
17: .line 614
invokespecial sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.<init>:(Lsun/security/ssl/HandshakeContext;[Ljava/security/cert/X509Certificate;Lsun/security/ssl/CipherSuite$KeyExchange;Ljava/util/List;)V
astore 5 /* crm */
start local 5 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage crm
18: .line 617
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 21
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 21
19: .line 619
ldc "Produced CertificateRequest handshake message"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5 /* crm */
aastore
20: .line 618
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
21: .line 623
StackMap locals: java.security.cert.X509Certificate[] sun.security.ssl.CertificateRequest$T12CertificateRequestMessage
StackMap stack:
aload 5 /* crm */
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.write:(Lsun/security/ssl/HandshakeOutStream;)V
22: .line 624
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
23: .line 629
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
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;
24: .line 630
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE:Lsun/security/ssl/SSLHandshake;
25: .line 629
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
26: .line 631
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
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;
27: .line 632
getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_VERIFY:Lsun/security/ssl/SSLHandshake;
28: .line 631
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
29: .line 635
aconst_null
areturn
end local 5 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage crm
end local 4 // java.security.cert.X509Certificate[] caCerts
end local 3 // sun.security.ssl.ServerHandshakeContext shc
end local 2 // sun.security.ssl.SSLHandshake$HandshakeMessage message
end local 1 // sun.security.ssl.ConnectionContext context
end local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestProducer this
LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lsun/security/ssl/CertificateRequest$T12CertificateRequestProducer;
0 30 1 context Lsun/security/ssl/ConnectionContext;
0 30 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
1 30 3 shc Lsun/security/ssl/ServerHandshakeContext;
14 30 4 caCerts [Ljava/security/cert/X509Certificate;
18 30 5 crm Lsun/security/ssl/CertificateRequest$T12CertificateRequestMessage;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
message
}
SourceFile: "CertificateRequest.java"
NestHost: sun.security.ssl.CertificateRequest
InnerClasses:
final T12CertificateRequestMessage = sun.security.ssl.CertificateRequest$T12CertificateRequestMessage of sun.security.ssl.CertificateRequest
private final T12CertificateRequestProducer = sun.security.ssl.CertificateRequest$T12CertificateRequestProducer of sun.security.ssl.CertificateRequest
final KeyExchange = sun.security.ssl.CipherSuite$KeyExchange of sun.security.ssl.CipherSuite
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake