final class sun.security.ssl.CertificateVerify$T13CertificateVerifyProducer implements sun.security.ssl.HandshakeProducer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.CertificateVerify$T13CertificateVerifyProducer
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/CertificateVerify$T13CertificateVerifyProducer;
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=7, 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: aconst_null
astore 4
start local 4 2: aload 3
getfield sun.security.ssl.HandshakeContext.handshakePossessions:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 7
StackMap locals: sun.security.ssl.CertificateVerify$T13CertificateVerifyProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.HandshakeContext sun.security.ssl.X509Authentication$X509Possession top java.util.Iterator
StackMap stack:
3: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.SSLPossession
astore 5
start local 5 4: aload 5
instanceof sun.security.ssl.X509Authentication$X509Possession
ifeq 7
5: aload 5
checkcast sun.security.ssl.X509Authentication$X509Possession
astore 4
6: goto 8
end local 5 7: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
8: StackMap locals: sun.security.ssl.CertificateVerify$T13CertificateVerifyProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.HandshakeContext sun.security.ssl.X509Authentication$X509Possession
StackMap stack:
aload 4
ifnull 10
9: aload 4
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
ifnonnull 14
10: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 13
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 13
11: ldc "No X.509 credentials negotiated for CertificateVerify"
iconst_0
anewarray java.lang.Object
12: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
13: StackMap locals:
StackMap stack:
aconst_null
areturn
14: StackMap locals:
StackMap stack:
aload 3
getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.isClientMode:Z
ifeq 18
15: aload 0
16: aload 1
checkcast sun.security.ssl.ClientHandshakeContext
aload 4
17: invokevirtual sun.security.ssl.CertificateVerify$T13CertificateVerifyProducer.onProduceCertificateVerify:(Lsun/security/ssl/ClientHandshakeContext;Lsun/security/ssl/X509Authentication$X509Possession;)[B
areturn
18: StackMap locals:
StackMap stack:
aload 0
19: aload 1
checkcast sun.security.ssl.ServerHandshakeContext
aload 4
20: invokevirtual sun.security.ssl.CertificateVerify$T13CertificateVerifyProducer.onProduceCertificateVerify:(Lsun/security/ssl/ServerHandshakeContext;Lsun/security/ssl/X509Authentication$X509Possession;)[B
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/security/ssl/CertificateVerify$T13CertificateVerifyProducer;
0 21 1 context Lsun/security/ssl/ConnectionContext;
0 21 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
1 21 3 hc Lsun/security/ssl/HandshakeContext;
2 21 4 x509Possession Lsun/security/ssl/X509Authentication$X509Possession;
4 7 5 possession Lsun/security/ssl/SSLPossession;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
message
private byte[] onProduceCertificateVerify(sun.security.ssl.ServerHandshakeContext, sun.security.ssl.X509Authentication$X509Possession);
descriptor: (Lsun/security/ssl/ServerHandshakeContext;Lsun/security/ssl/X509Authentication$X509Possession;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage
dup
aload 1
aload 2
invokespecial sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.<init>:(Lsun/security/ssl/HandshakeContext;Lsun/security/ssl/X509Authentication$X509Possession;)V
1: astore 3
start local 3 2: 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 "Produced server CertificateVerify handshake message"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
4: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
5: StackMap locals: sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage
StackMap stack:
aload 3
aload 1
getfield sun.security.ssl.ServerHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.write:(Lsun/security/ssl/HandshakeOutStream;)V
6: aload 1
getfield sun.security.ssl.ServerHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
7: aconst_null
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/CertificateVerify$T13CertificateVerifyProducer;
0 8 1 shc Lsun/security/ssl/ServerHandshakeContext;
0 8 2 x509Possession Lsun/security/ssl/X509Authentication$X509Possession;
2 8 3 cvm Lsun/security/ssl/CertificateVerify$T13CertificateVerifyMessage;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
shc
x509Possession
private byte[] onProduceCertificateVerify(sun.security.ssl.ClientHandshakeContext, sun.security.ssl.X509Authentication$X509Possession);
descriptor: (Lsun/security/ssl/ClientHandshakeContext;Lsun/security/ssl/X509Authentication$X509Possession;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage
dup
aload 1
aload 2
invokespecial sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.<init>:(Lsun/security/ssl/HandshakeContext;Lsun/security/ssl/X509Authentication$X509Possession;)V
1: astore 3
start local 3 2: 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 "Produced client CertificateVerify handshake message"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
4: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
5: StackMap locals: sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage
StackMap stack:
aload 3
aload 1
getfield sun.security.ssl.ClientHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.write:(Lsun/security/ssl/HandshakeOutStream;)V
6: aload 1
getfield sun.security.ssl.ClientHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
7: aconst_null
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/CertificateVerify$T13CertificateVerifyProducer;
0 8 1 chc Lsun/security/ssl/ClientHandshakeContext;
0 8 2 x509Possession Lsun/security/ssl/X509Authentication$X509Possession;
2 8 3 cvm Lsun/security/ssl/CertificateVerify$T13CertificateVerifyMessage;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
chc
x509Possession
}
SourceFile: "CertificateVerify.java"
NestHost: sun.security.ssl.CertificateVerify
InnerClasses:
final T13CertificateVerifyMessage = sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage of sun.security.ssl.CertificateVerify
private final T13CertificateVerifyProducer = sun.security.ssl.CertificateVerify$T13CertificateVerifyProducer of sun.security.ssl.CertificateVerify
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake
final X509Possession = sun.security.ssl.X509Authentication$X509Possession of sun.security.ssl.X509Authentication