final class sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage extends sun.security.ssl.SSLHandshake$HandshakeMessage
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage
super_class: sun.security.ssl.SSLHandshake$HandshakeMessage
{
private static final byte[] serverSignHead;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] clientSignHead;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final sun.security.ssl.SignatureScheme signatureScheme;
descriptor: Lsun/security/ssl/SignatureScheme;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] signature;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: bipush 98
newarray 8
dup
iconst_0
1: bipush 32
bastore
dup
iconst_1
bipush 32
bastore
dup
iconst_2
bipush 32
bastore
dup
iconst_3
bipush 32
bastore
dup
iconst_4
2: bipush 32
bastore
dup
iconst_5
bipush 32
bastore
dup
bipush 6
bipush 32
bastore
dup
bipush 7
bipush 32
bastore
dup
bipush 8
3: bipush 32
bastore
dup
bipush 9
bipush 32
bastore
dup
bipush 10
bipush 32
bastore
dup
bipush 11
bipush 32
bastore
dup
bipush 12
4: bipush 32
bastore
dup
bipush 13
bipush 32
bastore
dup
bipush 14
bipush 32
bastore
dup
bipush 15
bipush 32
bastore
dup
bipush 16
5: bipush 32
bastore
dup
bipush 17
bipush 32
bastore
dup
bipush 18
bipush 32
bastore
dup
bipush 19
bipush 32
bastore
dup
bipush 20
6: bipush 32
bastore
dup
bipush 21
bipush 32
bastore
dup
bipush 22
bipush 32
bastore
dup
bipush 23
bipush 32
bastore
dup
bipush 24
7: bipush 32
bastore
dup
bipush 25
bipush 32
bastore
dup
bipush 26
bipush 32
bastore
dup
bipush 27
bipush 32
bastore
dup
bipush 28
8: bipush 32
bastore
dup
bipush 29
bipush 32
bastore
dup
bipush 30
bipush 32
bastore
dup
bipush 31
bipush 32
bastore
dup
bipush 32
9: bipush 32
bastore
dup
bipush 33
bipush 32
bastore
dup
bipush 34
bipush 32
bastore
dup
bipush 35
bipush 32
bastore
dup
bipush 36
10: bipush 32
bastore
dup
bipush 37
bipush 32
bastore
dup
bipush 38
bipush 32
bastore
dup
bipush 39
bipush 32
bastore
dup
bipush 40
11: bipush 32
bastore
dup
bipush 41
bipush 32
bastore
dup
bipush 42
bipush 32
bastore
dup
bipush 43
bipush 32
bastore
dup
bipush 44
12: bipush 32
bastore
dup
bipush 45
bipush 32
bastore
dup
bipush 46
bipush 32
bastore
dup
bipush 47
bipush 32
bastore
dup
bipush 48
13: bipush 32
bastore
dup
bipush 49
bipush 32
bastore
dup
bipush 50
bipush 32
bastore
dup
bipush 51
bipush 32
bastore
dup
bipush 52
14: bipush 32
bastore
dup
bipush 53
bipush 32
bastore
dup
bipush 54
bipush 32
bastore
dup
bipush 55
bipush 32
bastore
dup
bipush 56
15: bipush 32
bastore
dup
bipush 57
bipush 32
bastore
dup
bipush 58
bipush 32
bastore
dup
bipush 59
bipush 32
bastore
dup
bipush 60
16: bipush 32
bastore
dup
bipush 61
bipush 32
bastore
dup
bipush 62
bipush 32
bastore
dup
bipush 63
bipush 32
bastore
dup
bipush 64
17: bipush 84
bastore
dup
bipush 65
bipush 76
bastore
dup
bipush 66
bipush 83
bastore
dup
bipush 67
bipush 32
bastore
dup
bipush 68
18: bipush 49
bastore
dup
bipush 69
bipush 46
bastore
dup
bipush 70
bipush 51
bastore
dup
bipush 71
bipush 44
bastore
dup
bipush 72
19: bipush 32
bastore
dup
bipush 73
bipush 115
bastore
dup
bipush 74
bipush 101
bastore
dup
bipush 75
bipush 114
bastore
dup
bipush 76
20: bipush 118
bastore
dup
bipush 77
bipush 101
bastore
dup
bipush 78
bipush 114
bastore
dup
bipush 79
bipush 32
bastore
dup
bipush 80
21: bipush 67
bastore
dup
bipush 81
bipush 101
bastore
dup
bipush 82
bipush 114
bastore
dup
bipush 83
bipush 116
bastore
dup
bipush 84
22: bipush 105
bastore
dup
bipush 85
bipush 102
bastore
dup
bipush 86
bipush 105
bastore
dup
bipush 87
bipush 99
bastore
dup
bipush 88
23: bipush 97
bastore
dup
bipush 89
bipush 116
bastore
dup
bipush 90
bipush 101
bastore
dup
bipush 91
bipush 86
bastore
dup
bipush 92
24: bipush 101
bastore
dup
bipush 93
bipush 114
bastore
dup
bipush 94
bipush 105
bastore
dup
bipush 95
bipush 102
bastore
dup
bipush 96
25: bipush 121
bastore
26: putstatic sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.serverSignHead:[B
27: bipush 98
newarray 8
dup
iconst_0
28: bipush 32
bastore
dup
iconst_1
bipush 32
bastore
dup
iconst_2
bipush 32
bastore
dup
iconst_3
bipush 32
bastore
dup
iconst_4
29: bipush 32
bastore
dup
iconst_5
bipush 32
bastore
dup
bipush 6
bipush 32
bastore
dup
bipush 7
bipush 32
bastore
dup
bipush 8
30: bipush 32
bastore
dup
bipush 9
bipush 32
bastore
dup
bipush 10
bipush 32
bastore
dup
bipush 11
bipush 32
bastore
dup
bipush 12
31: bipush 32
bastore
dup
bipush 13
bipush 32
bastore
dup
bipush 14
bipush 32
bastore
dup
bipush 15
bipush 32
bastore
dup
bipush 16
32: bipush 32
bastore
dup
bipush 17
bipush 32
bastore
dup
bipush 18
bipush 32
bastore
dup
bipush 19
bipush 32
bastore
dup
bipush 20
33: bipush 32
bastore
dup
bipush 21
bipush 32
bastore
dup
bipush 22
bipush 32
bastore
dup
bipush 23
bipush 32
bastore
dup
bipush 24
34: bipush 32
bastore
dup
bipush 25
bipush 32
bastore
dup
bipush 26
bipush 32
bastore
dup
bipush 27
bipush 32
bastore
dup
bipush 28
35: bipush 32
bastore
dup
bipush 29
bipush 32
bastore
dup
bipush 30
bipush 32
bastore
dup
bipush 31
bipush 32
bastore
dup
bipush 32
36: bipush 32
bastore
dup
bipush 33
bipush 32
bastore
dup
bipush 34
bipush 32
bastore
dup
bipush 35
bipush 32
bastore
dup
bipush 36
37: bipush 32
bastore
dup
bipush 37
bipush 32
bastore
dup
bipush 38
bipush 32
bastore
dup
bipush 39
bipush 32
bastore
dup
bipush 40
38: bipush 32
bastore
dup
bipush 41
bipush 32
bastore
dup
bipush 42
bipush 32
bastore
dup
bipush 43
bipush 32
bastore
dup
bipush 44
39: bipush 32
bastore
dup
bipush 45
bipush 32
bastore
dup
bipush 46
bipush 32
bastore
dup
bipush 47
bipush 32
bastore
dup
bipush 48
40: bipush 32
bastore
dup
bipush 49
bipush 32
bastore
dup
bipush 50
bipush 32
bastore
dup
bipush 51
bipush 32
bastore
dup
bipush 52
41: bipush 32
bastore
dup
bipush 53
bipush 32
bastore
dup
bipush 54
bipush 32
bastore
dup
bipush 55
bipush 32
bastore
dup
bipush 56
42: bipush 32
bastore
dup
bipush 57
bipush 32
bastore
dup
bipush 58
bipush 32
bastore
dup
bipush 59
bipush 32
bastore
dup
bipush 60
43: bipush 32
bastore
dup
bipush 61
bipush 32
bastore
dup
bipush 62
bipush 32
bastore
dup
bipush 63
bipush 32
bastore
dup
bipush 64
44: bipush 84
bastore
dup
bipush 65
bipush 76
bastore
dup
bipush 66
bipush 83
bastore
dup
bipush 67
bipush 32
bastore
dup
bipush 68
45: bipush 49
bastore
dup
bipush 69
bipush 46
bastore
dup
bipush 70
bipush 51
bastore
dup
bipush 71
bipush 44
bastore
dup
bipush 72
46: bipush 32
bastore
dup
bipush 73
bipush 99
bastore
dup
bipush 74
bipush 108
bastore
dup
bipush 75
bipush 105
bastore
dup
bipush 76
47: bipush 101
bastore
dup
bipush 77
bipush 110
bastore
dup
bipush 78
bipush 116
bastore
dup
bipush 79
bipush 32
bastore
dup
bipush 80
48: bipush 67
bastore
dup
bipush 81
bipush 101
bastore
dup
bipush 82
bipush 114
bastore
dup
bipush 83
bipush 116
bastore
dup
bipush 84
49: bipush 105
bastore
dup
bipush 85
bipush 102
bastore
dup
bipush 86
bipush 105
bastore
dup
bipush 87
bipush 99
bastore
dup
bipush 88
50: bipush 97
bastore
dup
bipush 89
bipush 116
bastore
dup
bipush 90
bipush 101
bastore
dup
bipush 91
bipush 86
bastore
dup
bipush 92
51: bipush 101
bastore
dup
bipush 93
bipush 114
bastore
dup
bipush 94
bipush 105
bastore
dup
bipush 95
bipush 102
bastore
dup
bipush 96
52: bipush 121
bastore
53: putstatic sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.clientSignHead:[B
54: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(sun.security.ssl.HandshakeContext, sun.security.ssl.X509Authentication$X509Possession);
descriptor: (Lsun/security/ssl/HandshakeContext;Lsun/security/ssl/X509Authentication$X509Possession;)V
flags: (0x0000)
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial sun.security.ssl.SSLHandshake$HandshakeMessage.<init>:(Lsun/security/ssl/HandshakeContext;)V
1: aload 0
2: aload 1
getfield sun.security.ssl.HandshakeContext.peerRequestedSignatureSchemes:Ljava/util/List;
3: aload 2
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
4: aload 1
getfield sun.security.ssl.HandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
5: invokestatic sun.security.ssl.SignatureScheme.getPreferableAlgorithm:(Ljava/util/List;Ljava/security/PrivateKey;Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/SignatureScheme;
putfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
6: aload 0
getfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
ifnonnull 10
7: aload 1
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
8: ldc "No preferred signature algorithm for CertificateVerify"
9: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
10: StackMap locals: sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage sun.security.ssl.HandshakeContext sun.security.ssl.X509Authentication$X509Possession
StackMap stack:
aload 1
getfield sun.security.ssl.HandshakeContext.handshakeHash:Lsun/security/ssl/HandshakeHash;
invokevirtual sun.security.ssl.HandshakeHash.digest:()[B
astore 3
start local 3 11: aload 1
getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.isClientMode:Z
ifeq 19
12: getstatic sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.clientSignHead:[B
13: getstatic sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.clientSignHead:[B
arraylength
aload 3
arraylength
iadd
14: invokestatic java.util.Arrays.copyOf:([BI)[B
astore 4
start local 4 15: aload 3
iconst_0
aload 4
16: getstatic sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.clientSignHead:[B
arraylength
aload 3
arraylength
17: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
18: goto 25
end local 4 19: StackMap locals: byte[]
StackMap stack:
getstatic sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.serverSignHead:[B
20: getstatic sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.serverSignHead:[B
arraylength
aload 3
arraylength
iadd
21: invokestatic java.util.Arrays.copyOf:([BI)[B
astore 4
start local 4 22: aload 3
iconst_0
aload 4
23: getstatic sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.serverSignHead:[B
arraylength
aload 3
arraylength
24: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
25: StackMap locals: byte[]
StackMap stack:
aconst_null
astore 5
start local 5 26: aload 0
getfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
aload 2
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
invokevirtual sun.security.ssl.SignatureScheme.getSignature:(Ljava/security/Key;)Ljava/security/Signature;
27: astore 6
start local 6 28: aload 6
aload 4
invokevirtual java.security.Signature.update:([B)V
29: aload 6
invokevirtual java.security.Signature.sign:()[B
astore 5
end local 6 30: goto 43
31: StackMap locals: sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage sun.security.ssl.HandshakeContext sun.security.ssl.X509Authentication$X509Possession byte[] byte[] byte[]
StackMap stack: java.security.GeneralSecurityException
astore 6
start local 6 32: aload 1
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
33: new java.lang.StringBuilder
dup
ldc "Unsupported signature algorithm ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
34: aload 0
getfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
getfield sun.security.ssl.SignatureScheme.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
35: ldc ") used in CertificateVerify handshake message"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
36: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
37: aload 6
38: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 6 39: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 6
start local 6 40: aload 1
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
41: ldc "Cannot produce CertificateVerify signature"
aload 6
42: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 6 43: StackMap locals:
StackMap stack:
aload 0
aload 5
putfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signature:[B
44: return
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 45 0 this Lsun/security/ssl/CertificateVerify$T13CertificateVerifyMessage;
0 45 1 context Lsun/security/ssl/HandshakeContext;
0 45 2 x509Possession Lsun/security/ssl/X509Authentication$X509Possession;
11 45 3 hashValue [B
15 19 4 contentCovered [B
22 45 4 contentCovered [B
26 45 5 temproary [B
28 30 6 signer Ljava/security/Signature;
32 39 6 nsae Ljava/security/GeneralSecurityException;
40 43 6 ikse Ljava/security/GeneralSecurityException;
Exception table:
from to target type
26 30 31 Class java.security.NoSuchAlgorithmException
26 30 31 Class java.security.InvalidAlgorithmParameterException
26 30 39 Class java.security.InvalidKeyException
26 30 39 Class java.security.SignatureException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
x509Possession
void <init>(sun.security.ssl.HandshakeContext, java.nio.ByteBuffer);
descriptor: (Lsun/security/ssl/HandshakeContext;Ljava/nio/ByteBuffer;)V
flags: (0x0000)
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial sun.security.ssl.SSLHandshake$HandshakeMessage.<init>:(Lsun/security/ssl/HandshakeContext;)V
1: aload 2
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_4
if_icmpge 5
2: aload 1
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
3: ldc "Invalid CertificateVerify message: no sufficient data"
4: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
5: StackMap locals: sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage sun.security.ssl.HandshakeContext java.nio.ByteBuffer
StackMap stack:
aload 2
invokestatic sun.security.ssl.Record.getInt16:(Ljava/nio/ByteBuffer;)I
istore 3
start local 3 6: aload 0
iload 3
invokestatic sun.security.ssl.SignatureScheme.valueOf:(I)Lsun/security/ssl/SignatureScheme;
putfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
7: aload 0
getfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
ifnonnull 13
8: aload 1
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
9: new java.lang.StringBuilder
dup
ldc "Invalid signature algorithm ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
10: ldc ") used in CertificateVerify handshake message"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
13: StackMap locals: int
StackMap stack:
aload 1
getfield sun.security.ssl.HandshakeContext.localSupportedSignAlgs:Ljava/util/List;
aload 0
getfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifne 20
14: aload 1
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
15: new java.lang.StringBuilder
dup
ldc "Unsupported signature algorithm ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
16: aload 0
getfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
getfield sun.security.ssl.SignatureScheme.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
17: ldc ") used in CertificateVerify handshake message"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
18: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
19: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
20: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 21: aload 1
getfield sun.security.ssl.HandshakeContext.handshakeCredentials:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 26
StackMap locals: sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage sun.security.ssl.HandshakeContext java.nio.ByteBuffer int sun.security.ssl.X509Authentication$X509Credentials top java.util.Iterator
StackMap stack:
22: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.SSLCredentials
astore 5
start local 5 23: aload 5
instanceof sun.security.ssl.X509Authentication$X509Credentials
ifeq 26
24: aload 5
checkcast sun.security.ssl.X509Authentication$X509Credentials
astore 4
25: goto 27
end local 5 26: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 22
27: StackMap locals: sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage sun.security.ssl.HandshakeContext java.nio.ByteBuffer int sun.security.ssl.X509Authentication$X509Credentials
StackMap stack:
aload 4
ifnull 29
28: aload 4
getfield sun.security.ssl.X509Authentication$X509Credentials.popPublicKey:Ljava/security/PublicKey;
ifnonnull 32
29: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
30: ldc "No X509 credentials negotiated for CertificateVerify"
31: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
32: StackMap locals:
StackMap stack:
aload 0
aload 2
invokestatic sun.security.ssl.Record.getBytes16:(Ljava/nio/ByteBuffer;)[B
putfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signature:[B
33: aload 1
getfield sun.security.ssl.HandshakeContext.handshakeHash:Lsun/security/ssl/HandshakeHash;
invokevirtual sun.security.ssl.HandshakeHash.digest:()[B
astore 5
start local 5 34: aload 1
getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.isClientMode:Z
ifeq 42
35: getstatic sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.serverSignHead:[B
36: getstatic sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.serverSignHead:[B
arraylength
aload 5
arraylength
iadd
37: invokestatic java.util.Arrays.copyOf:([BI)[B
astore 6
start local 6 38: aload 5
iconst_0
aload 6
39: getstatic sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.serverSignHead:[B
arraylength
aload 5
arraylength
40: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
41: goto 48
end local 6 42: StackMap locals: byte[]
StackMap stack:
getstatic sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.clientSignHead:[B
43: getstatic sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.clientSignHead:[B
arraylength
aload 5
arraylength
iadd
44: invokestatic java.util.Arrays.copyOf:([BI)[B
astore 6
start local 6 45: aload 5
iconst_0
aload 6
46: getstatic sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.clientSignHead:[B
arraylength
aload 5
arraylength
47: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
48: StackMap locals: byte[]
StackMap stack:
aload 0
getfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
aload 4
getfield sun.security.ssl.X509Authentication$X509Credentials.popPublicKey:Ljava/security/PublicKey;
invokevirtual sun.security.ssl.SignatureScheme.getSignature:(Ljava/security/Key;)Ljava/security/Signature;
49: astore 7
start local 7 50: aload 7
aload 6
invokevirtual java.security.Signature.update:([B)V
51: aload 7
aload 0
getfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signature:[B
invokevirtual java.security.Signature.verify:([B)Z
ifne 67
52: aload 1
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
53: ldc "Invalid CertificateVerify signature"
54: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
end local 7 55: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 7
start local 7 56: aload 1
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
57: new java.lang.StringBuilder
dup
ldc "Unsupported signature algorithm ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
58: aload 0
getfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
getfield sun.security.ssl.SignatureScheme.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
59: ldc ") used in CertificateVerify handshake message"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
60: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
61: aload 7
62: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 7 63: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 7
start local 7 64: aload 1
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
65: ldc "Cannot verify CertificateVerify signature"
aload 7
66: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 7 67: StackMap locals:
StackMap stack:
return
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 68 0 this Lsun/security/ssl/CertificateVerify$T13CertificateVerifyMessage;
0 68 1 context Lsun/security/ssl/HandshakeContext;
0 68 2 m Ljava/nio/ByteBuffer;
6 68 3 ssid I
21 68 4 x509Credentials Lsun/security/ssl/X509Authentication$X509Credentials;
23 26 5 cd Lsun/security/ssl/SSLCredentials;
34 68 5 hashValue [B
38 42 6 contentCovered [B
45 68 6 contentCovered [B
50 55 7 signer Ljava/security/Signature;
56 63 7 nsae Ljava/security/GeneralSecurityException;
64 67 7 ikse Ljava/security/GeneralSecurityException;
Exception table:
from to target type
48 55 55 Class java.security.NoSuchAlgorithmException
48 55 55 Class java.security.InvalidAlgorithmParameterException
48 55 63 Class java.security.InvalidKeyException
48 55 63 Class java.security.SignatureException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
m
public sun.security.ssl.SSLHandshake handshakeType();
descriptor: ()Lsun/security/ssl/SSLHandshake;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_VERIFY:Lsun/security/ssl/SSLHandshake;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/CertificateVerify$T13CertificateVerifyMessage;
public int messageLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iconst_4
aload 0
getfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signature:[B
arraylength
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/CertificateVerify$T13CertificateVerifyMessage;
public void send(sun.security.ssl.HandshakeOutStream);
descriptor: (Lsun/security/ssl/HandshakeOutStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
getfield sun.security.ssl.SignatureScheme.id:I
invokevirtual sun.security.ssl.HandshakeOutStream.putInt16:(I)V
1: aload 1
aload 0
getfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signature:[B
invokevirtual sun.security.ssl.HandshakeOutStream.putBytes16:([B)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ssl/CertificateVerify$T13CertificateVerifyMessage;
0 3 1 hos Lsun/security/ssl/HandshakeOutStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
hos
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: new java.text.MessageFormat
dup
1: ldc "\"CertificateVerify\": '{'\n \"signature algorithm\": {0}\n \"signature\": '{'\n{1}\n '}'\n'}'"
2: getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
3: invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
astore 1
start local 1 4: new sun.security.util.HexDumpEncoder
dup
invokespecial sun.security.util.HexDumpEncoder.<init>:()V
astore 2
start local 2 5: iconst_2
anewarray java.lang.Object
dup
iconst_0
6: aload 0
getfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
getfield sun.security.ssl.SignatureScheme.name:Ljava/lang/String;
aastore
dup
iconst_1
7: aload 2
aload 0
getfield sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage.signature:[B
invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
ldc " "
8: invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
9: astore 3
start local 3 10: aload 1
aload 3
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/ssl/CertificateVerify$T13CertificateVerifyMessage;
4 11 1 messageFormat Ljava/text/MessageFormat;
5 11 2 hexEncoder Lsun/security/util/HexDumpEncoder;
10 11 3 messageFields [Ljava/lang/Object;
}
SourceFile: "CertificateVerify.java"
NestHost: sun.security.ssl.CertificateVerify
InnerClasses:
final T13CertificateVerifyMessage = sun.security.ssl.CertificateVerify$T13CertificateVerifyMessage of sun.security.ssl.CertificateVerify
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake
final X509Credentials = sun.security.ssl.X509Authentication$X509Credentials of sun.security.ssl.X509Authentication
final X509Possession = sun.security.ssl.X509Authentication$X509Possession of sun.security.ssl.X509Authentication