final class sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage extends sun.security.ssl.SSLHandshake$HandshakeMessage
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage
super_class: sun.security.ssl.SSLHandshake$HandshakeMessage
{
private static final byte CURVE_NAMED_CURVE;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private final sun.security.ssl.SupportedGroupsExtension$NamedGroup namedGroup;
descriptor: Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] publicPoint;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] paramsSignature;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.security.interfaces.ECPublicKey publicKey;
descriptor: Ljava/security/interfaces/ECPublicKey;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean useExplicitSigAlgorithm;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.security.ssl.SignatureScheme signatureScheme;
descriptor: Lsun/security/ssl/SignatureScheme;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(sun.security.ssl.HandshakeContext);
descriptor: (Lsun/security/ssl/HandshakeContext;)V
flags: (0x0000)
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial sun.security.ssl.SSLHandshake$HandshakeMessage.<init>:(Lsun/security/ssl/HandshakeContext;)V
1: aload 1
checkcast sun.security.ssl.ServerHandshakeContext
2: astore 2
start local 2 3: aconst_null
astore 3
start local 3 4: aconst_null
astore 4
start local 4 5: aload 2
getfield sun.security.ssl.ServerHandshakeContext.handshakePossessions:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 15
StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext sun.security.ssl.ServerHandshakeContext sun.security.ssl.ECDHKeyExchange$ECDHEPossession sun.security.ssl.X509Authentication$X509Possession top java.util.Iterator
StackMap stack:
6: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.SSLPossession
astore 5
start local 5 7: aload 5
instanceof sun.security.ssl.ECDHKeyExchange$ECDHEPossession
ifeq 11
8: aload 5
checkcast sun.security.ssl.ECDHKeyExchange$ECDHEPossession
astore 3
9: aload 4
ifnull 15
10: goto 16
11: StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext sun.security.ssl.ServerHandshakeContext sun.security.ssl.ECDHKeyExchange$ECDHEPossession sun.security.ssl.X509Authentication$X509Possession sun.security.ssl.SSLPossession java.util.Iterator
StackMap stack:
aload 5
instanceof sun.security.ssl.X509Authentication$X509Possession
ifeq 15
12: aload 5
checkcast sun.security.ssl.X509Authentication$X509Possession
astore 4
13: aload 3
ifnull 15
14: goto 16
end local 5 15: StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext sun.security.ssl.ServerHandshakeContext sun.security.ssl.ECDHKeyExchange$ECDHEPossession sun.security.ssl.X509Authentication$X509Possession top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
16: StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext sun.security.ssl.ServerHandshakeContext sun.security.ssl.ECDHKeyExchange$ECDHEPossession sun.security.ssl.X509Authentication$X509Possession
StackMap stack:
aload 3
ifnonnull 20
17: aload 2
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
18: ldc "No ECDHE credentials negotiated for server key exchange"
19: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
20: StackMap locals:
StackMap stack:
aload 0
aload 3
getfield sun.security.ssl.ECDHKeyExchange$ECDHEPossession.publicKey:Ljava/security/interfaces/ECPublicKey;
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicKey:Ljava/security/interfaces/ECPublicKey;
21: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicKey:Ljava/security/interfaces/ECPublicKey;
invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
astore 5
start local 5 22: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicKey:Ljava/security/interfaces/ECPublicKey;
invokeinterface java.security.interfaces.ECPublicKey.getW:()Ljava/security/spec/ECPoint;
astore 6
start local 6 23: aload 0
aload 6
aload 5
invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
invokestatic sun.security.ssl.JsseJce.encodePoint:(Ljava/security/spec/ECPoint;Ljava/security/spec/EllipticCurve;)[B
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
24: aload 0
aload 5
invokestatic sun.security.ssl.SupportedGroupsExtension$NamedGroup.valueOf:(Ljava/security/spec/ECParameterSpec;)Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
25: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
ifnull 26
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.oid:Ljava/lang/String;
ifnonnull 29
26: StackMap locals: java.security.spec.ECParameterSpec java.security.spec.ECPoint
StackMap stack:
aload 2
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
27: new java.lang.StringBuilder
dup
ldc "Unnamed EC parameter spec: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
28: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
29: StackMap locals:
StackMap stack:
aload 4
ifnonnull 34
30: aload 0
aconst_null
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
31: aload 0
aconst_null
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
32: aload 0
iconst_0
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
33: goto 89
34: StackMap locals:
StackMap stack:
aload 0
35: aload 2
getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
36: putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
37: aconst_null
astore 7
start local 7 38: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
ifeq 62
39: aload 0
40: aload 2
getfield sun.security.ssl.ServerHandshakeContext.peerRequestedSignatureSchemes:Ljava/util/List;
41: aload 4
42: aload 2
getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
43: invokestatic sun.security.ssl.SignatureScheme.getPreferableAlgorithm:(Ljava/util/List;Lsun/security/ssl/X509Authentication$X509Possession;Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/SignatureScheme;
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
44: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
ifnonnull 51
45: aload 2
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
46: new java.lang.StringBuilder
dup
ldc "No preferred signature algorithm for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
47: aload 4
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
48: ldc " key"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
49: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
50: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
51: StackMap locals: java.security.Signature
StackMap stack:
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
52: aload 4
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
53: invokevirtual sun.security.ssl.SignatureScheme.getSignature:(Ljava/security/Key;)Ljava/security/Signature;
astore 7
54: goto 74
55: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 8
start local 8 56: aload 2
getfield sun.security.ssl.ServerHandshakeContext.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.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.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: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
60: aload 8
61: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 8 62: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
63: aload 4
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
64: aload 4
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
65: invokestatic sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.getSignature:(Ljava/lang/String;Ljava/security/Key;)Ljava/security/Signature;
astore 7
66: goto 74
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
67: astore 8
start local 8 68: aload 2
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
69: new java.lang.StringBuilder
dup
ldc "Unsupported signature algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
70: aload 4
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
71: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
72: aload 8
73: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 8 74: StackMap locals:
StackMap stack:
aconst_null
astore 8
start local 8 75: aload 7
aload 2
getfield sun.security.ssl.ServerHandshakeContext.clientHelloRandom:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.randomBytes:[B
76: aload 2
getfield sun.security.ssl.ServerHandshakeContext.serverHelloRandom:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.randomBytes:[B
77: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.id:I
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
78: invokestatic sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.updateSignature:(Ljava/security/Signature;[B[BI[B)V
79: aload 7
invokevirtual java.security.Signature.sign:()[B
astore 8
80: goto 88
StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext sun.security.ssl.ServerHandshakeContext sun.security.ssl.ECDHKeyExchange$ECDHEPossession sun.security.ssl.X509Authentication$X509Possession java.security.spec.ECParameterSpec java.security.spec.ECPoint java.security.Signature byte[]
StackMap stack: java.security.SignatureException
81: astore 9
start local 9 82: aload 2
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
83: new java.lang.StringBuilder
dup
ldc "Failed to sign ecdhe parameters: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
84: aload 4
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
85: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
86: aload 9
87: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 9 88: StackMap locals:
StackMap stack:
aload 0
aload 8
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
end local 8 end local 7 89: 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 90 0 this Lsun/security/ssl/ECDHServerKeyExchange$ECDHServerKeyExchangeMessage;
0 90 1 handshakeContext Lsun/security/ssl/HandshakeContext;
3 90 2 shc Lsun/security/ssl/ServerHandshakeContext;
4 90 3 ecdhePossession Lsun/security/ssl/ECDHKeyExchange$ECDHEPossession;
5 90 4 x509Possession Lsun/security/ssl/X509Authentication$X509Possession;
7 15 5 possession Lsun/security/ssl/SSLPossession;
22 90 5 params Ljava/security/spec/ECParameterSpec;
23 90 6 point Ljava/security/spec/ECPoint;
38 89 7 signer Ljava/security/Signature;
56 62 8 nsae Ljava/security/GeneralSecurityException;
68 74 8 e Ljava/security/GeneralSecurityException;
75 89 8 signature [B
82 88 9 ex Ljava/security/SignatureException;
Exception table:
from to target type
51 54 55 Class java.security.NoSuchAlgorithmException
51 54 55 Class java.security.InvalidKeyException
51 54 55 Class java.security.InvalidAlgorithmParameterException
63 66 67 Class java.security.NoSuchAlgorithmException
63 66 67 Class java.security.InvalidKeyException
75 80 81 Class java.security.SignatureException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handshakeContext
void <init>(sun.security.ssl.HandshakeContext, java.nio.ByteBuffer);
descriptor: (Lsun/security/ssl/HandshakeContext;Ljava/nio/ByteBuffer;)V
flags: (0x0000)
Code:
stack=5, locals=11, 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 1
checkcast sun.security.ssl.ClientHandshakeContext
2: astore 3
start local 3 3: aload 2
invokestatic sun.security.ssl.Record.getInt8:(Ljava/nio/ByteBuffer;)I
i2b
istore 4
start local 4 4: iload 4
iconst_3
if_icmpeq 8
5: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
6: new java.lang.StringBuilder
dup
ldc "Unsupported ECCurveType: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
8: StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext java.nio.ByteBuffer sun.security.ssl.ClientHandshakeContext int
StackMap stack:
aload 2
invokestatic sun.security.ssl.Record.getInt16:(Ljava/nio/ByteBuffer;)I
istore 5
start local 5 9: aload 0
iload 5
invokestatic sun.security.ssl.SupportedGroupsExtension$NamedGroup.valueOf:(I)Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
10: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
ifnonnull 14
11: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
12: new java.lang.StringBuilder
dup
ldc "Unknown named group ID: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
14: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
invokestatic sun.security.ssl.SupportedGroupsExtension$SupportedGroups.isSupported:(Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;)Z
ifne 18
15: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
16: new java.lang.StringBuilder
dup
ldc "Unsupported named group: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
17: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
18: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.oid:Ljava/lang/String;
ifnonnull 22
19: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
20: new java.lang.StringBuilder
dup
ldc "Unknown named EC curve: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
21: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
22: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.oid:Ljava/lang/String;
invokestatic sun.security.ssl.JsseJce.getECParameterSpec:(Ljava/lang/String;)Ljava/security/spec/ECParameterSpec;
23: astore 6
start local 6 24: aload 6
ifnonnull 28
25: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
26: new java.lang.StringBuilder
dup
ldc "No supported EC parameter: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
27: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
28: StackMap locals: java.security.spec.ECParameterSpec
StackMap stack:
aload 0
aload 2
invokestatic sun.security.ssl.Record.getBytes8:(Ljava/nio/ByteBuffer;)[B
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
29: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
arraylength
ifne 33
30: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
31: new java.lang.StringBuilder
dup
ldc "Insufficient ECPoint data: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
32: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
33: StackMap locals:
StackMap stack:
aconst_null
astore 7
start local 7 34: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
aload 6
invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
invokestatic sun.security.ssl.JsseJce.decodePoint:([BLjava/security/spec/EllipticCurve;)Ljava/security/spec/ECPoint;
35: astore 8
start local 8 36: ldc "EC"
invokestatic sun.security.ssl.JsseJce.getKeyFactory:(Ljava/lang/String;)Ljava/security/KeyFactory;
astore 9
start local 9 37: aload 9
38: new java.security.spec.ECPublicKeySpec
dup
aload 8
aload 6
invokespecial java.security.spec.ECPublicKeySpec.<init>:(Ljava/security/spec/ECPoint;Ljava/security/spec/ECParameterSpec;)V
39: invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
checkcast java.security.interfaces.ECPublicKey
astore 7
end local 9 end local 8 40: goto 45
41: StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext java.nio.ByteBuffer sun.security.ssl.ClientHandshakeContext int int java.security.spec.ECParameterSpec java.security.interfaces.ECPublicKey
StackMap stack: java.lang.Exception
astore 8
start local 8 42: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
43: new java.lang.StringBuilder
dup
ldc "Invalid ECPoint: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 8
44: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 8 45: StackMap locals:
StackMap stack:
aload 0
aload 7
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicKey:Ljava/security/interfaces/ECPublicKey;
46: aconst_null
astore 8
start local 8 47: aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakeCredentials:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 52
StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext java.nio.ByteBuffer sun.security.ssl.ClientHandshakeContext int int java.security.spec.ECParameterSpec java.security.interfaces.ECPublicKey sun.security.ssl.X509Authentication$X509Credentials top java.util.Iterator
StackMap stack:
48: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.SSLCredentials
astore 9
start local 9 49: aload 9
instanceof sun.security.ssl.X509Authentication$X509Credentials
ifeq 52
50: aload 9
checkcast sun.security.ssl.X509Authentication$X509Credentials
astore 8
51: goto 53
end local 9 52: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 48
53: StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext java.nio.ByteBuffer sun.security.ssl.ClientHandshakeContext int int java.security.spec.ECParameterSpec java.security.interfaces.ECPublicKey sun.security.ssl.X509Authentication$X509Credentials
StackMap stack:
aload 8
ifnonnull 62
54: aload 2
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 58
55: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
56: ldc "Invalid DH ServerKeyExchange: unknown extra data"
57: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
58: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
59: aload 0
aconst_null
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
60: aload 0
iconst_0
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
61: return
62: StackMap locals:
StackMap stack:
aload 0
63: aload 3
getfield sun.security.ssl.ClientHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
64: putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
65: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
ifeq 81
66: aload 2
invokestatic sun.security.ssl.Record.getInt16:(Ljava/nio/ByteBuffer;)I
istore 9
start local 9 67: aload 0
iload 9
invokestatic sun.security.ssl.SignatureScheme.valueOf:(I)Lsun/security/ssl/SignatureScheme;
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
68: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
ifnonnull 74
69: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
70: new java.lang.StringBuilder
dup
ldc "Invalid signature algorithm ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 9
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
71: ldc ") used in ECDH ServerKeyExchange handshake message"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
72: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
73: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
74: StackMap locals: int
StackMap stack:
aload 3
getfield sun.security.ssl.ClientHandshakeContext.localSupportedSignAlgs:Ljava/util/List;
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifne 82
75: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
76: new java.lang.StringBuilder
dup
ldc "Unsupported signature algorithm ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
77: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.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;
78: ldc ") used in ECDH ServerKeyExchange handshake message"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
79: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
80: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
end local 9 81: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
82: StackMap locals:
StackMap stack:
aload 0
aload 2
invokestatic sun.security.ssl.Record.getBytes16:(Ljava/nio/ByteBuffer;)[B
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
83: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
ifeq 95
84: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
85: aload 8
getfield sun.security.ssl.X509Authentication$X509Credentials.popPublicKey:Ljava/security/PublicKey;
86: invokevirtual sun.security.ssl.SignatureScheme.getSignature:(Ljava/security/Key;)Ljava/security/Signature;
astore 9
start local 9 87: goto 106
end local 9 88: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 10
start local 10 89: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
90: new java.lang.StringBuilder
dup
ldc "Unsupported signature algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
91: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.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;
92: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
93: aload 10
94: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 10 95: StackMap locals:
StackMap stack:
aload 8
getfield sun.security.ssl.X509Authentication$X509Credentials.popPublicKey:Ljava/security/PublicKey;
invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
96: aload 8
getfield sun.security.ssl.X509Authentication$X509Credentials.popPublicKey:Ljava/security/PublicKey;
97: invokestatic sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.getSignature:(Ljava/lang/String;Ljava/security/Key;)Ljava/security/Signature;
astore 9
start local 9 98: goto 106
end local 9 StackMap locals:
StackMap stack: java.security.GeneralSecurityException
99: astore 10
start local 10 100: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
101: new java.lang.StringBuilder
dup
ldc "Unsupported signature algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
102: aload 8
getfield sun.security.ssl.X509Authentication$X509Credentials.popPublicKey:Ljava/security/PublicKey;
invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
103: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
104: aload 10
105: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 10 start local 9 106: StackMap locals: java.security.Signature
StackMap stack:
aload 9
107: aload 3
getfield sun.security.ssl.ClientHandshakeContext.clientHelloRandom:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.randomBytes:[B
108: aload 3
getfield sun.security.ssl.ClientHandshakeContext.serverHelloRandom:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.randomBytes:[B
109: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.id:I
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
110: invokestatic sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.updateSignature:(Ljava/security/Signature;[B[BI[B)V
111: aload 9
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
invokevirtual java.security.Signature.verify:([B)Z
ifne 119
112: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
113: ldc "Invalid ECDH ServerKeyExchange signature"
114: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
115: StackMap locals:
StackMap stack: java.security.SignatureException
astore 10
start local 10 116: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
117: ldc "Cannot verify ECDH ServerKeyExchange signature"
aload 10
118: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 10 119: StackMap locals:
StackMap stack:
return
end local 9 end local 8 end local 7 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 120 0 this Lsun/security/ssl/ECDHServerKeyExchange$ECDHServerKeyExchangeMessage;
0 120 1 handshakeContext Lsun/security/ssl/HandshakeContext;
0 120 2 m Ljava/nio/ByteBuffer;
3 120 3 chc Lsun/security/ssl/ClientHandshakeContext;
4 120 4 curveType B
9 120 5 namedGroupId I
24 120 6 parameters Ljava/security/spec/ECParameterSpec;
34 120 7 ecPublicKey Ljava/security/interfaces/ECPublicKey;
36 40 8 point Ljava/security/spec/ECPoint;
37 40 9 factory Ljava/security/KeyFactory;
42 45 8 ex Ljava/lang/Exception;
47 120 8 x509Credentials Lsun/security/ssl/X509Authentication$X509Credentials;
49 52 9 cd Lsun/security/ssl/SSLCredentials;
67 81 9 ssid I
87 88 9 signer Ljava/security/Signature;
98 99 9 signer Ljava/security/Signature;
106 120 9 signer Ljava/security/Signature;
89 95 10 nsae Ljava/security/GeneralSecurityException;
100 106 10 e Ljava/security/GeneralSecurityException;
116 119 10 ex Ljava/security/SignatureException;
Exception table:
from to target type
34 40 41 Class java.security.NoSuchAlgorithmException
34 40 41 Class java.security.spec.InvalidKeySpecException
34 40 41 Class java.io.IOException
84 87 88 Class java.security.NoSuchAlgorithmException
84 87 88 Class java.security.InvalidKeyException
84 87 88 Class java.security.InvalidAlgorithmParameterException
95 98 99 Class java.security.NoSuchAlgorithmException
95 98 99 Class java.security.InvalidKeyException
106 115 115 Class java.security.SignatureException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handshakeContext
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.SERVER_KEY_EXCHANGE:Lsun/security/ssl/SSLHandshake;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/ECDHServerKeyExchange$ECDHServerKeyExchangeMessage;
public int messageLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
ifnull 5
2: iconst_2
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
arraylength
iadd
istore 1
3: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
ifeq 5
4: iload 1
invokestatic sun.security.ssl.SignatureScheme.sizeInRecord:()I
iadd
istore 1
5: StackMap locals: int
StackMap stack:
iconst_4
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
arraylength
iadd
iload 1
iadd
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/ssl/ECDHServerKeyExchange$ECDHServerKeyExchangeMessage;
1 6 1 sigLen I
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
iconst_3
invokevirtual sun.security.ssl.HandshakeOutStream.putInt8:(I)V
1: aload 1
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.id:I
invokevirtual sun.security.ssl.HandshakeOutStream.putInt16:(I)V
2: aload 1
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
invokevirtual sun.security.ssl.HandshakeOutStream.putBytes8:([B)V
3: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
ifnull 7
4: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
ifeq 6
5: aload 1
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
getfield sun.security.ssl.SignatureScheme.id:I
invokevirtual sun.security.ssl.HandshakeOutStream.putInt16:(I)V
6: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
invokevirtual sun.security.ssl.HandshakeOutStream.putBytes16:([B)V
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/ECDHServerKeyExchange$ECDHServerKeyExchangeMessage;
0 8 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: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
ifeq 15
1: new java.text.MessageFormat
dup
2: ldc "\"ECDH ServerKeyExchange\": '{'\n \"parameters\": '{'\n \"named group\": \"{0}\"\n \"ecdh public\": '{'\n{1}\n '}',\n '}',\n \"digital signature\": '{'\n \"signature algorithm\": \"{2}\"\n \"signature\": '{'\n{3}\n '}',\n '}'\n'}'"
3: getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
4: invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
astore 1
start local 1 5: new sun.misc.HexDumpEncoder
dup
invokespecial sun.misc.HexDumpEncoder.<init>:()V
astore 2
start local 2 6: iconst_4
anewarray java.lang.Object
dup
iconst_0
7: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.name:Ljava/lang/String;
aastore
dup
iconst_1
8: aload 2
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
invokevirtual sun.misc.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
ldc " "
9: invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_2
10: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
getfield sun.security.ssl.SignatureScheme.name:Ljava/lang/String;
aastore
dup
iconst_3
11: aload 2
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
invokevirtual sun.misc.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
ldc " "
12: invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
13: astore 3
start local 3 14: 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 15: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
ifnull 29
16: new java.text.MessageFormat
dup
17: ldc "\"ECDH ServerKeyExchange\": '{'\n \"parameters\": '{'\n \"named group\": \"{0}\"\n \"ecdh public\": '{'\n{1}\n '}',\n '}',\n \"signature\": '{'\n{2}\n '}'\n'}'"
18: getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
19: invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
astore 1
start local 1 20: new sun.misc.HexDumpEncoder
dup
invokespecial sun.misc.HexDumpEncoder.<init>:()V
astore 2
start local 2 21: iconst_3
anewarray java.lang.Object
dup
iconst_0
22: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.name:Ljava/lang/String;
aastore
dup
iconst_1
23: aload 2
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
invokevirtual sun.misc.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
ldc " "
24: invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_2
25: aload 2
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
invokevirtual sun.misc.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
ldc " "
26: invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
27: astore 3
start local 3 28: 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 29: StackMap locals:
StackMap stack:
new java.text.MessageFormat
dup
30: ldc "\"ECDH ServerKeyExchange\": '{'\n \"parameters\": '{'\n \"named group\": \"{0}\"\n \"ecdh public\": '{'\n{1}\n '}',\n '}'\n'}'"
31: getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
32: invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
astore 1
start local 1 33: new sun.misc.HexDumpEncoder
dup
invokespecial sun.misc.HexDumpEncoder.<init>:()V
astore 2
start local 2 34: iconst_2
anewarray java.lang.Object
dup
iconst_0
35: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.name:Ljava/lang/String;
aastore
dup
iconst_1
36: aload 2
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
invokevirtual sun.misc.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
ldc " "
37: invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
38: astore 3
start local 3 39: 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 40 0 this Lsun/security/ssl/ECDHServerKeyExchange$ECDHServerKeyExchangeMessage;
5 15 1 messageFormat Ljava/text/MessageFormat;
6 15 2 hexEncoder Lsun/misc/HexDumpEncoder;
14 15 3 messageFields [Ljava/lang/Object;
20 29 1 messageFormat Ljava/text/MessageFormat;
21 29 2 hexEncoder Lsun/misc/HexDumpEncoder;
28 29 3 messageFields [Ljava/lang/Object;
33 40 1 messageFormat Ljava/text/MessageFormat;
34 40 2 hexEncoder Lsun/misc/HexDumpEncoder;
39 40 3 messageFields [Ljava/lang/Object;
private static java.security.Signature getSignature(java.lang.String, java.security.Key);
descriptor: (Ljava/lang/String;Ljava/security/Key;)Ljava/security/Signature;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
dup
astore 3
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 2
2206: 2
81440: 3
default: 8
}
StackMap locals: java.security.Signature java.lang.String
StackMap stack:
2: aload 3
ldc "EC"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
goto 8
StackMap locals:
StackMap stack:
3: aload 3
ldc "RSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
goto 8
4: StackMap locals:
StackMap stack:
ldc "SHA1withECDSA"
invokestatic sun.security.ssl.JsseJce.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
astore 2
5: goto 11
6: StackMap locals:
StackMap stack:
invokestatic sun.security.ssl.RSASignature.getInstance:()Ljava/security/Signature;
astore 2
7: goto 11
8: StackMap locals:
StackMap stack:
new java.security.NoSuchAlgorithmException
dup
9: new java.lang.StringBuilder
dup
ldc "neither an RSA or a EC key : "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 2
ifnull 16
12: aload 1
instanceof java.security.PublicKey
ifeq 15
13: aload 2
aload 1
checkcast java.security.PublicKey
invokevirtual java.security.Signature.initVerify:(Ljava/security/PublicKey;)V
14: goto 16
15: StackMap locals:
StackMap stack:
aload 2
aload 1
checkcast java.security.PrivateKey
invokevirtual java.security.Signature.initSign:(Ljava/security/PrivateKey;)V
16: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 keyAlgorithm Ljava/lang/String;
0 17 1 key Ljava/security/Key;
1 17 2 signer Ljava/security/Signature;
Exceptions:
throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
MethodParameters:
Name Flags
keyAlgorithm
key
private static void updateSignature(java.security.Signature, byte[], byte[], int, byte[]);
descriptor: (Ljava/security/Signature;[B[BI[B)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
invokevirtual java.security.Signature.update:([B)V
1: aload 0
aload 2
invokevirtual java.security.Signature.update:([B)V
2: aload 0
iconst_3
invokevirtual java.security.Signature.update:(B)V
3: aload 0
iload 3
bipush 8
ishr
sipush 255
iand
i2b
invokevirtual java.security.Signature.update:(B)V
4: aload 0
iload 3
sipush 255
iand
i2b
invokevirtual java.security.Signature.update:(B)V
5: aload 0
aload 4
arraylength
i2b
invokevirtual java.security.Signature.update:(B)V
6: aload 0
aload 4
invokevirtual java.security.Signature.update:([B)V
7: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 sig Ljava/security/Signature;
0 8 1 clntNonce [B
0 8 2 svrNonce [B
0 8 3 namedGroupId I
0 8 4 publicPoint [B
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
sig
clntNonce
svrNonce
namedGroupId
publicPoint
}
SourceFile: "ECDHServerKeyExchange.java"
NestHost: sun.security.ssl.ECDHServerKeyExchange
InnerClasses:
final ECDHEPossession = sun.security.ssl.ECDHKeyExchange$ECDHEPossession of sun.security.ssl.ECDHKeyExchange
private final ECDHServerKeyExchangeMessage = sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage of sun.security.ssl.ECDHServerKeyExchange
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake
final NamedGroup = sun.security.ssl.SupportedGroupsExtension$NamedGroup of sun.security.ssl.SupportedGroupsExtension
SupportedGroups = sun.security.ssl.SupportedGroupsExtension$SupportedGroups of sun.security.ssl.SupportedGroupsExtension
final X509Credentials = sun.security.ssl.X509Authentication$X509Credentials of sun.security.ssl.X509Authentication
final X509Possession = sun.security.ssl.X509Authentication$X509Possession of sun.security.ssl.X509Authentication