final class sun.security.ssl.CertificateVerify$S30CertificateVerifyProducer implements sun.security.ssl.HandshakeProducer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.CertificateVerify$S30CertificateVerifyProducer
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.CertificateVerify$S30CertificateVerifyProducer this
0: .line 230
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 232
return
end local 0 // sun.security.ssl.CertificateVerify$S30CertificateVerifyProducer this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/CertificateVerify$S30CertificateVerifyProducer;
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=5, locals=7, args_size=3
start local 0 // sun.security.ssl.CertificateVerify$S30CertificateVerifyProducer this
start local 1 // sun.security.ssl.ConnectionContext context
start local 2 // sun.security.ssl.SSLHandshake$HandshakeMessage message
0: .line 238
aload 1 /* context */
checkcast sun.security.ssl.ClientHandshakeContext
astore 3 /* chc */
start local 3 // sun.security.ssl.ClientHandshakeContext chc
1: .line 240
aconst_null
astore 4 /* x509Possession */
start local 4 // sun.security.ssl.X509Authentication$X509Possession x509Possession
2: .line 241
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakePossessions:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 7
StackMap locals: sun.security.ssl.CertificateVerify$S30CertificateVerifyProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ClientHandshakeContext 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 /* possession */
start local 5 // sun.security.ssl.SSLPossession possession
4: .line 242
aload 5 /* possession */
instanceof sun.security.ssl.X509Authentication$X509Possession
ifeq 7
5: .line 243
aload 5 /* possession */
checkcast sun.security.ssl.X509Authentication$X509Possession
astore 4 /* x509Possession */
6: .line 244
goto 8
end local 5 // sun.security.ssl.SSLPossession possession
7: .line 241
StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
8: .line 248
StackMap locals: sun.security.ssl.CertificateVerify$S30CertificateVerifyProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ClientHandshakeContext sun.security.ssl.X509Authentication$X509Possession
StackMap stack:
aload 4 /* x509Possession */
ifnull 10
9: .line 249
aload 4 /* x509Possession */
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
ifnonnull 14
10: .line 250
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: .line 252
ldc "No X.509 credentials negotiated for CertificateVerify"
iconst_0
anewarray java.lang.Object
12: .line 251
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
13: .line 255
StackMap locals:
StackMap stack:
aconst_null
areturn
14: .line 259
StackMap locals:
StackMap stack:
new sun.security.ssl.CertificateVerify$S30CertificateVerifyMessage
dup
aload 3 /* chc */
aload 4 /* x509Possession */
invokespecial sun.security.ssl.CertificateVerify$S30CertificateVerifyMessage.<init>:(Lsun/security/ssl/HandshakeContext;Lsun/security/ssl/X509Authentication$X509Possession;)V
15: .line 258
astore 5 /* cvm */
start local 5 // sun.security.ssl.CertificateVerify$S30CertificateVerifyMessage cvm
16: .line 260
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 19
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 19
17: .line 262
ldc "Produced CertificateVerify handshake message"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5 /* cvm */
aastore
18: .line 261
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
19: .line 266
StackMap locals: sun.security.ssl.CertificateVerify$S30CertificateVerifyMessage
StackMap stack:
aload 5 /* cvm */
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.CertificateVerify$S30CertificateVerifyMessage.write:(Lsun/security/ssl/HandshakeOutStream;)V
20: .line 267
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
21: .line 270
aconst_null
areturn
end local 5 // sun.security.ssl.CertificateVerify$S30CertificateVerifyMessage cvm
end local 4 // sun.security.ssl.X509Authentication$X509Possession x509Possession
end local 3 // sun.security.ssl.ClientHandshakeContext chc
end local 2 // sun.security.ssl.SSLHandshake$HandshakeMessage message
end local 1 // sun.security.ssl.ConnectionContext context
end local 0 // sun.security.ssl.CertificateVerify$S30CertificateVerifyProducer this
LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lsun/security/ssl/CertificateVerify$S30CertificateVerifyProducer;
0 22 1 context Lsun/security/ssl/ConnectionContext;
0 22 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
1 22 3 chc Lsun/security/ssl/ClientHandshakeContext;
2 22 4 x509Possession Lsun/security/ssl/X509Authentication$X509Possession;
4 7 5 possession Lsun/security/ssl/SSLPossession;
16 22 5 cvm Lsun/security/ssl/CertificateVerify$S30CertificateVerifyMessage;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
message
}
SourceFile: "CertificateVerify.java"
NestHost: sun.security.ssl.CertificateVerify
InnerClasses:
final S30CertificateVerifyMessage = sun.security.ssl.CertificateVerify$S30CertificateVerifyMessage of sun.security.ssl.CertificateVerify
private final S30CertificateVerifyProducer = sun.security.ssl.CertificateVerify$S30CertificateVerifyProducer 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