final class sun.security.ssl.CertStatusExtension$CTCertStatusResponseProducer implements sun.security.ssl.HandshakeProducer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.CertStatusExtension$CTCertStatusResponseProducer
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/CertStatusExtension$CTCertStatusResponseProducer;
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=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast sun.security.ssl.ServerHandshakeContext
astore 3
start local 3 1: aconst_null
astore 4
start local 4 2: aload 3
getfield sun.security.ssl.ServerHandshakeContext.stapleParams:Lsun/security/ssl/StatusResponseManager$StaplingParameters;
ifnonnull 7
3: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 6
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 6
4: ldc "Stapling is disabled for this connection"
iconst_0
anewarray java.lang.Object
5: invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
6: StackMap locals: sun.security.ssl.ServerHandshakeContext byte[]
StackMap stack:
aconst_null
areturn
7: StackMap locals:
StackMap stack:
aload 3
getfield sun.security.ssl.ServerHandshakeContext.currentCertEntry:Lsun/security/ssl/CertificateMessage$CertificateEntry;
ifnonnull 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 "Found null CertificateEntry in context"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
10: StackMap locals:
StackMap stack:
aconst_null
areturn
11: StackMap locals:
StackMap stack:
ldc "X.509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 5
start local 5 12: aload 5
13: new java.io.ByteArrayInputStream
dup
14: aload 3
getfield sun.security.ssl.ServerHandshakeContext.currentCertEntry:Lsun/security/ssl/CertificateMessage$CertificateEntry;
getfield sun.security.ssl.CertificateMessage$CertificateEntry.encoded:[B
15: invokespecial java.io.ByteArrayInputStream.<init>:([B)V
16: invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
checkcast java.security.cert.X509Certificate
17: astore 6
start local 6 18: aload 3
getfield sun.security.ssl.ServerHandshakeContext.stapleParams:Lsun/security/ssl/StatusResponseManager$StaplingParameters;
getfield sun.security.ssl.StatusResponseManager$StaplingParameters.responseMap:Ljava/util/Map;
aload 6
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast byte[]
astore 7
start local 7 19: aload 7
ifnonnull 27
20: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 25
21: ldc "ssl,handshake,verbose"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 25
22: new java.lang.StringBuilder
dup
ldc "No status response found for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
23: aload 6
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
24: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
25: StackMap locals: java.security.cert.CertificateFactory java.security.cert.X509Certificate byte[]
StackMap stack:
aload 3
aconst_null
putfield sun.security.ssl.ServerHandshakeContext.currentCertEntry:Lsun/security/ssl/CertificateMessage$CertificateEntry;
26: aconst_null
areturn
27: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 32
ldc "ssl,handshake,verbose"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 32
28: new java.lang.StringBuilder
dup
ldc "Found status response for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
29: aload 6
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
30: ldc ", response length: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
31: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
32: StackMap locals:
StackMap stack:
aload 3
getfield sun.security.ssl.ServerHandshakeContext.stapleParams:Lsun/security/ssl/StatusResponseManager$StaplingParameters;
getfield sun.security.ssl.StatusResponseManager$StaplingParameters.statReqType:Lsun/security/ssl/CertStatusExtension$CertStatusRequestType;
33: getstatic sun.security.ssl.CertStatusExtension$CertStatusRequestType.OCSP:Lsun/security/ssl/CertStatusExtension$CertStatusRequestType;
34: if_acmpne 39
35: new sun.security.ssl.CertStatusExtension$OCSPStatusResponse
dup
aload 3
getfield sun.security.ssl.ServerHandshakeContext.stapleParams:Lsun/security/ssl/StatusResponseManager$StaplingParameters;
getfield sun.security.ssl.StatusResponseManager$StaplingParameters.statReqType:Lsun/security/ssl/CertStatusExtension$CertStatusRequestType;
getfield sun.security.ssl.CertStatusExtension$CertStatusRequestType.id:B
36: aload 7
37: invokespecial sun.security.ssl.CertStatusExtension$OCSPStatusResponse.<init>:(B[B)V
38: goto 42
39: StackMap locals:
StackMap stack:
new sun.security.ssl.CertStatusExtension$CertStatusResponse
dup
aload 3
getfield sun.security.ssl.ServerHandshakeContext.stapleParams:Lsun/security/ssl/StatusResponseManager$StaplingParameters;
getfield sun.security.ssl.StatusResponseManager$StaplingParameters.statReqType:Lsun/security/ssl/CertStatusExtension$CertStatusRequestType;
getfield sun.security.ssl.CertStatusExtension$CertStatusRequestType.id:B
40: aload 7
41: invokespecial sun.security.ssl.CertStatusExtension$CertStatusResponse.<init>:(B[B)V
42: StackMap locals:
StackMap stack: sun.security.ssl.CertStatusExtension$CertStatusResponse
astore 8
start local 8 43: aload 8
invokevirtual sun.security.ssl.CertStatusExtension$CertStatusResponse.toByteArray:()[B
astore 4
end local 8 end local 7 end local 6 end local 5 44: goto 53
StackMap locals: sun.security.ssl.CertStatusExtension$CTCertStatusResponseProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext byte[]
StackMap stack: java.security.cert.CertificateException
45: astore 5
start local 5 46: aload 3
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.BAD_CERTIFICATE:Lsun/security/ssl/Alert;
47: ldc "Failed to parse server certificates"
aload 5
48: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 5 49: StackMap locals:
StackMap stack: java.io.IOException
astore 5
start local 5 50: aload 3
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.BAD_CERT_STATUS_RESPONSE:Lsun/security/ssl/Alert;
51: ldc "Failed to parse certificate status response"
aload 5
52: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 5 53: StackMap locals:
StackMap stack:
aload 3
aconst_null
putfield sun.security.ssl.ServerHandshakeContext.currentCertEntry:Lsun/security/ssl/CertificateMessage$CertificateEntry;
54: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 55 0 this Lsun/security/ssl/CertStatusExtension$CTCertStatusResponseProducer;
0 55 1 context Lsun/security/ssl/ConnectionContext;
0 55 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
1 55 3 shc Lsun/security/ssl/ServerHandshakeContext;
2 55 4 producedData [B
12 44 5 cf Ljava/security/cert/CertificateFactory;
18 44 6 x509Cert Ljava/security/cert/X509Certificate;
19 44 7 respBytes [B
43 44 8 certResp Lsun/security/ssl/CertStatusExtension$CertStatusResponse;
46 49 5 ce Ljava/security/cert/CertificateException;
50 53 5 ioe Ljava/io/IOException;
Exception table:
from to target type
11 26 45 Class java.security.cert.CertificateException
27 44 45 Class java.security.cert.CertificateException
11 26 49 Class java.io.IOException
27 44 49 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
message
}
SourceFile: "CertStatusExtension.java"
NestHost: sun.security.ssl.CertStatusExtension
InnerClasses:
private final CTCertStatusResponseProducer = sun.security.ssl.CertStatusExtension$CTCertStatusResponseProducer of sun.security.ssl.CertStatusExtension
final CertStatusRequestType = sun.security.ssl.CertStatusExtension$CertStatusRequestType of sun.security.ssl.CertStatusExtension
CertStatusResponse = sun.security.ssl.CertStatusExtension$CertStatusResponse of sun.security.ssl.CertStatusExtension
final OCSPStatusResponse = sun.security.ssl.CertStatusExtension$OCSPStatusResponse of sun.security.ssl.CertStatusExtension
final CertificateEntry = sun.security.ssl.CertificateMessage$CertificateEntry of sun.security.ssl.CertificateMessage
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake
final StaplingParameters = sun.security.ssl.StatusResponseManager$StaplingParameters of sun.security.ssl.StatusResponseManager