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.NamedGroup namedGroup;
descriptor: Lsun/security/ssl/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 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
private sun.security.ssl.SSLCredentials sslCredentials;
descriptor: Lsun/security/ssl/SSLCredentials;
flags: (0x0002) ACC_PRIVATE
void <init>(sun.security.ssl.HandshakeContext);
descriptor: (Lsun/security/ssl/HandshakeContext;)V
flags: (0x0000)
Code:
stack=5, locals=8, 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.NamedGroupPossession 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.NamedGroupPossession
ifeq 11
8: aload 5
checkcast sun.security.ssl.NamedGroupPossession
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.NamedGroupPossession 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.NamedGroupPossession 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.NamedGroupPossession 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
invokeinterface sun.security.ssl.NamedGroupPossession.getNamedGroup:()Lsun/security/ssl/NamedGroup;
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/NamedGroup;
21: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/NamedGroup;
ifnull 22
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/NamedGroup;
getfield sun.security.ssl.NamedGroup.isAvailable:Z
ifne 25
22: StackMap locals:
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;
23: new java.lang.StringBuilder
dup
ldc "Missing or improper named group: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/NamedGroup;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
24: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
25: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/NamedGroup;
26: aload 3
27: invokevirtual sun.security.ssl.NamedGroup.encodePossessionPublicKey:(Lsun/security/ssl/NamedGroupPossession;)[B
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
28: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
ifnonnull 32
29: aload 2
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
30: new java.lang.StringBuilder
dup
ldc "Missing public point for named group: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/NamedGroup;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
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 4
ifnonnull 37
33: aload 0
aconst_null
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
34: aload 0
aconst_null
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
35: aload 0
iconst_0
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
36: goto 85
37: StackMap locals:
StackMap stack:
aload 0
38: aload 2
getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
39: putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
40: aconst_null
astore 5
start local 5 41: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
ifeq 58
42: aload 2
getfield sun.security.ssl.ServerHandshakeContext.algorithmConstraints:Ljava/security/AlgorithmConstraints;
43: aload 2
getfield sun.security.ssl.ServerHandshakeContext.peerRequestedSignatureSchemes:Ljava/util/List;
44: aload 4
45: aload 2
getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
46: invokestatic sun.security.ssl.SignatureScheme.getSignerOfPreferableAlgorithm:(Ljava/security/AlgorithmConstraints;Ljava/util/List;Lsun/security/ssl/X509Authentication$X509Possession;Lsun/security/ssl/ProtocolVersion;)Ljava/util/Map$Entry;
47: astore 6
start local 6 48: aload 6
ifnonnull 55
49: aload 2
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
50: new java.lang.StringBuilder
dup
ldc "No supported signature algorithm for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
51: 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;
52: ldc " key"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
53: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
54: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
55: StackMap locals: java.security.Signature java.util.Map$Entry
StackMap stack:
aload 0
aload 6
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast sun.security.ssl.SignatureScheme
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
56: aload 6
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.security.Signature
astore 5
end local 6 57: goto 70
58: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
59: aload 4
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
60: aload 4
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
61: invokestatic sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.getSignature:(Ljava/lang/String;Ljava/security/Key;)Ljava/security/Signature;
astore 5
62: goto 70
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
63: astore 6
start local 6 64: aload 2
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
65: new java.lang.StringBuilder
dup
ldc "Unsupported signature algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
66: 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;
67: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
68: aload 6
69: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 6 70: StackMap locals:
StackMap stack:
aconst_null
astore 6
start local 6 71: aload 5
aload 2
getfield sun.security.ssl.ServerHandshakeContext.clientHelloRandom:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.randomBytes:[B
72: aload 2
getfield sun.security.ssl.ServerHandshakeContext.serverHelloRandom:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.randomBytes:[B
73: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/NamedGroup;
getfield sun.security.ssl.NamedGroup.id:I
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
74: invokestatic sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.updateSignature:(Ljava/security/Signature;[B[BI[B)V
75: aload 5
invokevirtual java.security.Signature.sign:()[B
astore 6
76: goto 84
StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext sun.security.ssl.ServerHandshakeContext sun.security.ssl.NamedGroupPossession sun.security.ssl.X509Authentication$X509Possession java.security.Signature byte[]
StackMap stack: java.security.SignatureException
77: astore 7
start local 7 78: aload 2
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
79: new java.lang.StringBuilder
dup
ldc "Failed to sign ecdhe parameters: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
80: 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;
81: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
82: aload 7
83: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 7 84: StackMap locals:
StackMap stack:
aload 0
aload 6
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
end local 6 end local 5 85: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 86 0 this Lsun/security/ssl/ECDHServerKeyExchange$ECDHServerKeyExchangeMessage;
0 86 1 handshakeContext Lsun/security/ssl/HandshakeContext;
3 86 2 shc Lsun/security/ssl/ServerHandshakeContext;
4 86 3 namedGroupPossession Lsun/security/ssl/NamedGroupPossession;
5 86 4 x509Possession Lsun/security/ssl/X509Authentication$X509Possession;
7 15 5 possession Lsun/security/ssl/SSLPossession;
41 85 5 signer Ljava/security/Signature;
48 57 6 schemeAndSigner Ljava/util/Map$Entry<Lsun/security/ssl/SignatureScheme;Ljava/security/Signature;>;
64 70 6 e Ljava/security/GeneralSecurityException;
71 85 6 signature [B
78 84 7 ex Ljava/security/SignatureException;
Exception table:
from to target type
59 62 63 Class java.security.NoSuchAlgorithmException
59 62 63 Class java.security.InvalidKeyException
71 76 77 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=6, locals=9, 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.NamedGroup.valueOf:(I)Lsun/security/ssl/NamedGroup;
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/NamedGroup;
10: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/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/NamedGroup;
invokestatic sun.security.ssl.SupportedGroupsExtension$SupportedGroups.isSupported:(Lsun/security/ssl/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/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
aload 2
invokestatic sun.security.ssl.Record.getBytes8:(Ljava/nio/ByteBuffer;)[B
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
19: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
arraylength
ifne 23
20: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
21: new java.lang.StringBuilder
dup
ldc "Insufficient Point data: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/NamedGroup;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
22: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
23: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/NamedGroup;
24: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
aload 1
getfield sun.security.ssl.HandshakeContext.algorithmConstraints:Ljava/security/AlgorithmConstraints;
25: aload 0
aload 3
invokedynamic apply(Lsun/security/ssl/ECDHServerKeyExchange$ECDHServerKeyExchangeMessage;Lsun/security/ssl/ClientHandshakeContext;)Lsun/security/ssl/NamedGroup$ExceptionSupplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/String;)V
sun/security/ssl/ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.lambda$0(Lsun/security/ssl/ClientHandshakeContext;Ljava/lang/String;)V (7)
(Ljava/lang/String;)V
26: invokevirtual sun.security.ssl.NamedGroup.decodeCredentials:([BLjava/security/AlgorithmConstraints;Lsun/security/ssl/NamedGroup$ExceptionSupplier;)Lsun/security/ssl/SSLCredentials;
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.sslCredentials:Lsun/security/ssl/SSLCredentials;
27: goto 34
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
28: pop
29: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
30: new java.lang.StringBuilder
dup
ldc "Cannot decode named group: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
31: iload 5
invokestatic sun.security.ssl.NamedGroup.nameOf:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
32: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
33: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
34: StackMap locals:
StackMap stack:
aconst_null
astore 6
start local 6 35: aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakeCredentials:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 40
StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext java.nio.ByteBuffer sun.security.ssl.ClientHandshakeContext int int sun.security.ssl.X509Authentication$X509Credentials top java.util.Iterator
StackMap stack:
36: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.SSLCredentials
astore 7
start local 7 37: aload 7
instanceof sun.security.ssl.X509Authentication$X509Credentials
ifeq 40
38: aload 7
checkcast sun.security.ssl.X509Authentication$X509Credentials
astore 6
39: goto 41
end local 7 40: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 36
41: StackMap locals: sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage sun.security.ssl.HandshakeContext java.nio.ByteBuffer sun.security.ssl.ClientHandshakeContext int int sun.security.ssl.X509Authentication$X509Credentials
StackMap stack:
aload 6
ifnonnull 50
42: aload 2
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 46
43: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
44: ldc "Invalid DH ServerKeyExchange: unknown extra data"
45: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
46: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
47: aload 0
aconst_null
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
48: aload 0
iconst_0
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
49: return
50: StackMap locals:
StackMap stack:
aload 0
51: aload 3
getfield sun.security.ssl.ClientHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
52: putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
53: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
ifeq 69
54: aload 2
invokestatic sun.security.ssl.Record.getInt16:(Ljava/nio/ByteBuffer;)I
istore 7
start local 7 55: aload 0
iload 7
invokestatic sun.security.ssl.SignatureScheme.valueOf:(I)Lsun/security/ssl/SignatureScheme;
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
56: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
ifnonnull 62
57: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
58: new java.lang.StringBuilder
dup
ldc "Invalid signature algorithm ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 7
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
59: ldc ") used in ECDH ServerKeyExchange handshake message"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
60: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
61: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
62: 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 70
63: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
64: new java.lang.StringBuilder
dup
ldc "Unsupported signature algorithm ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
65: 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;
66: ldc ") used in ECDH ServerKeyExchange handshake message"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
67: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
68: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
end local 7 69: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
70: 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
71: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
ifeq 83
72: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
73: aload 6
getfield sun.security.ssl.X509Authentication$X509Credentials.popPublicKey:Ljava/security/PublicKey;
74: invokevirtual sun.security.ssl.SignatureScheme.getVerifier:(Ljava/security/PublicKey;)Ljava/security/Signature;
astore 7
start local 7 75: goto 94
end local 7 76: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 8
start local 8 77: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
78: new java.lang.StringBuilder
dup
ldc "Unsupported signature algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
79: 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;
80: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
81: aload 8
82: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 8 83: StackMap locals:
StackMap stack:
aload 6
getfield sun.security.ssl.X509Authentication$X509Credentials.popPublicKey:Ljava/security/PublicKey;
invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
84: aload 6
getfield sun.security.ssl.X509Authentication$X509Credentials.popPublicKey:Ljava/security/PublicKey;
85: invokestatic sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.getSignature:(Ljava/lang/String;Ljava/security/Key;)Ljava/security/Signature;
astore 7
start local 7 86: goto 94
end local 7 StackMap locals:
StackMap stack: java.security.GeneralSecurityException
87: astore 8
start local 8 88: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
89: new java.lang.StringBuilder
dup
ldc "Unsupported signature algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
90: aload 6
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;
91: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
92: aload 8
93: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 8 start local 7 94: StackMap locals: java.security.Signature
StackMap stack:
aload 7
95: aload 3
getfield sun.security.ssl.ClientHandshakeContext.clientHelloRandom:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.randomBytes:[B
96: aload 3
getfield sun.security.ssl.ClientHandshakeContext.serverHelloRandom:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.randomBytes:[B
97: aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/NamedGroup;
getfield sun.security.ssl.NamedGroup.id:I
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
98: invokestatic sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.updateSignature:(Ljava/security/Signature;[B[BI[B)V
99: aload 7
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.paramsSignature:[B
invokevirtual java.security.Signature.verify:([B)Z
ifne 107
100: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
101: ldc "Invalid ECDH ServerKeyExchange signature"
102: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
103: StackMap locals:
StackMap stack: java.security.SignatureException
astore 8
start local 8 104: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
105: ldc "Cannot verify ECDH ServerKeyExchange signature"
aload 8
106: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 8 107: StackMap locals:
StackMap stack:
return
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 108 0 this Lsun/security/ssl/ECDHServerKeyExchange$ECDHServerKeyExchangeMessage;
0 108 1 handshakeContext Lsun/security/ssl/HandshakeContext;
0 108 2 m Ljava/nio/ByteBuffer;
3 108 3 chc Lsun/security/ssl/ClientHandshakeContext;
4 108 4 curveType B
9 108 5 namedGroupId I
35 108 6 x509Credentials Lsun/security/ssl/X509Authentication$X509Credentials;
37 40 7 cd Lsun/security/ssl/SSLCredentials;
55 69 7 ssid I
75 76 7 signer Ljava/security/Signature;
86 87 7 signer Ljava/security/Signature;
94 108 7 signer Ljava/security/Signature;
77 83 8 nsae Ljava/security/GeneralSecurityException;
88 94 8 e Ljava/security/GeneralSecurityException;
104 107 8 ex Ljava/security/SignatureException;
Exception table:
from to target type
23 27 28 Class java.security.GeneralSecurityException
72 75 76 Class java.security.NoSuchAlgorithmException
72 75 76 Class java.security.InvalidKeyException
72 75 76 Class java.security.InvalidAlgorithmParameterException
83 86 87 Class java.security.NoSuchAlgorithmException
83 86 87 Class java.security.InvalidKeyException
94 103 103 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/NamedGroup;
getfield sun.security.ssl.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.security.util.HexDumpEncoder
dup
invokespecial sun.security.util.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/NamedGroup;
getfield sun.security.ssl.NamedGroup.name:Ljava/lang/String;
aastore
dup
iconst_1
8: aload 2
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
invokevirtual sun.security.util.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.security.util.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.security.util.HexDumpEncoder
dup
invokespecial sun.security.util.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/NamedGroup;
getfield sun.security.ssl.NamedGroup.name:Ljava/lang/String;
aastore
dup
iconst_1
23: aload 2
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
invokevirtual sun.security.util.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.security.util.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.security.util.HexDumpEncoder
dup
invokespecial sun.security.util.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/NamedGroup;
getfield sun.security.ssl.NamedGroup.name:Ljava/lang/String;
aastore
dup
iconst_1
36: aload 2
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.publicPoint:[B
invokevirtual sun.security.util.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/security/util/HexDumpEncoder;
14 15 3 messageFields [Ljava/lang/Object;
20 29 1 messageFormat Ljava/text/MessageFormat;
21 29 2 hexEncoder Lsun/security/util/HexDumpEncoder;
28 29 3 messageFields [Ljava/lang/Object;
33 40 1 messageFormat Ljava/text/MessageFormat;
34 40 2 hexEncoder Lsun/security/util/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 java.security.Signature.getInstance:(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
private void lambda$0(sun.security.ssl.ClientHandshakeContext, java.lang.String);
descriptor: (Lsun/security/ssl/ClientHandshakeContext;Ljava/lang/String;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 2 0: aload 1
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INSUFFICIENT_SECURITY:Lsun/security/ssl/Alert;
1: new java.lang.StringBuilder
dup
ldc "ServerKeyExchange "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage.namedGroup:Lsun/security/ssl/NamedGroup;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
2: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
3: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/ssl/ECDHServerKeyExchange$ECDHServerKeyExchangeMessage;
0 4 2 s Ljava/lang/String;
Exceptions:
throws javax.net.ssl.SSLException
}
SourceFile: "ECDHServerKeyExchange.java"
NestHost: sun.security.ssl.ECDHServerKeyExchange
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map
private final ECDHServerKeyExchangeMessage = sun.security.ssl.ECDHServerKeyExchange$ECDHServerKeyExchangeMessage of sun.security.ssl.ECDHServerKeyExchange
abstract ExceptionSupplier = sun.security.ssl.NamedGroup$ExceptionSupplier of sun.security.ssl.NamedGroup
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake
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