final class sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange extends sun.security.ssl.HandshakeMessage$ServerKeyExchange
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange
super_class: sun.security.ssl.HandshakeMessage$ServerKeyExchange
{
private static final int CURVE_EXPLICIT_PRIME;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int CURVE_EXPLICIT_CHAR2;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int CURVE_NAMED_CURVE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private int groupId;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte[] pointBytes;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] signatureBytes;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private java.security.interfaces.ECPublicKey publicKey;
descriptor: Ljava/security/interfaces/ECPublicKey;
flags: (0x0002) ACC_PRIVATE
sun.security.ssl.ProtocolVersion protocolVersion;
descriptor: Lsun/security/ssl/ProtocolVersion;
flags: (0x0000)
private sun.security.ssl.SignatureAndHashAlgorithm preferableSignatureAlgorithm;
descriptor: Lsun/security/ssl/SignatureAndHashAlgorithm;
flags: (0x0002) ACC_PRIVATE
void <init>(sun.security.ssl.ECDHCrypt, java.security.PrivateKey, byte[], byte[], java.security.SecureRandom, sun.security.ssl.SignatureAndHashAlgorithm, sun.security.ssl.ProtocolVersion);
descriptor: (Lsun/security/ssl/ECDHCrypt;Ljava/security/PrivateKey;[B[BLjava/security/SecureRandom;Lsun/security/ssl/SignatureAndHashAlgorithm;Lsun/security/ssl/ProtocolVersion;)V
flags: (0x0000)
Code:
stack=5, locals=12, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
invokespecial sun.security.ssl.HandshakeMessage$ServerKeyExchange.<init>:()V
1: aload 0
aload 7
putfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.protocolVersion:Lsun/security/ssl/ProtocolVersion;
2: aload 0
aload 1
invokevirtual sun.security.ssl.ECDHCrypt.getPublicKey:()Ljava/security/PublicKey;
checkcast java.security.interfaces.ECPublicKey
putfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.publicKey:Ljava/security/interfaces/ECPublicKey;
3: aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.publicKey:Ljava/security/interfaces/ECPublicKey;
invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
astore 8
start local 8 4: aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.publicKey:Ljava/security/interfaces/ECPublicKey;
invokeinterface java.security.interfaces.ECPublicKey.getW:()Ljava/security/spec/ECPoint;
astore 9
start local 9 5: aload 0
aload 9
aload 8
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.HandshakeMessage$ECDH_ServerKeyExchange.pointBytes:[B
6: aload 8
invokestatic sun.security.ssl.NamedGroup.valueOf:(Ljava/security/spec/ECParameterSpec;)Lsun/security/ssl/NamedGroup;
astore 10
start local 10 7: aload 10
ifnull 8
aload 10
getfield sun.security.ssl.NamedGroup.oid:Ljava/lang/String;
ifnonnull 11
8: StackMap locals: sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange sun.security.ssl.ECDHCrypt java.security.PrivateKey byte[] byte[] java.security.SecureRandom sun.security.ssl.SignatureAndHashAlgorithm sun.security.ssl.ProtocolVersion java.security.spec.ECParameterSpec java.security.spec.ECPoint sun.security.ssl.NamedGroup
StackMap stack:
new javax.net.ssl.SSLHandshakeException
dup
9: new java.lang.StringBuilder
dup
ldc "Unnamed EC parameter spec: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 0
aload 10
getfield sun.security.ssl.NamedGroup.id:I
putfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.groupId:I
12: aload 2
ifnonnull 14
13: return
14: StackMap locals:
StackMap stack:
aload 7
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
ifeq 18
15: aload 0
aload 6
putfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
16: aload 6
invokevirtual sun.security.ssl.SignatureAndHashAlgorithm.getAlgorithmName:()Ljava/lang/String;
invokestatic sun.security.ssl.JsseJce.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
astore 11
start local 11 17: goto 19
end local 11 18: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
invokestatic sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
astore 11
start local 11 19: StackMap locals: java.security.Signature
StackMap stack:
aload 11
aload 2
aload 5
invokevirtual java.security.Signature.initSign:(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
20: aload 0
aload 11
aload 3
aload 4
invokevirtual sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.updateSignature:(Ljava/security/Signature;[B[B)V
21: aload 0
aload 11
invokevirtual java.security.Signature.sign:()[B
putfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.signatureBytes:[B
22: return
end local 11 end local 10 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 23 0 this Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;
0 23 1 obj Lsun/security/ssl/ECDHCrypt;
0 23 2 privateKey Ljava/security/PrivateKey;
0 23 3 clntNonce [B
0 23 4 svrNonce [B
0 23 5 sr Ljava/security/SecureRandom;
0 23 6 signAlgorithm Lsun/security/ssl/SignatureAndHashAlgorithm;
0 23 7 protocolVersion Lsun/security/ssl/ProtocolVersion;
4 23 8 params Ljava/security/spec/ECParameterSpec;
5 23 9 point Ljava/security/spec/ECPoint;
7 23 10 namedGroup Lsun/security/ssl/NamedGroup;
17 18 11 sig Ljava/security/Signature;
19 23 11 sig Ljava/security/Signature;
Exceptions:
throws javax.net.ssl.SSLHandshakeException, java.security.GeneralSecurityException
MethodParameters:
Name Flags
obj
privateKey
clntNonce
svrNonce
sr
signAlgorithm
protocolVersion
void <init>(sun.security.ssl.HandshakeInStream, java.security.PublicKey, byte[], byte[], java.util.Collection<sun.security.ssl.SignatureAndHashAlgorithm>, sun.security.ssl.ProtocolVersion);
descriptor: (Lsun/security/ssl/HandshakeInStream;Ljava/security/PublicKey;[B[BLjava/util/Collection;Lsun/security/ssl/ProtocolVersion;)V
flags: (0x0000)
Code:
stack=6, locals=13, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokespecial sun.security.ssl.HandshakeMessage$ServerKeyExchange.<init>:()V
1: aload 0
aload 6
putfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.protocolVersion:Lsun/security/ssl/ProtocolVersion;
2: aload 1
invokevirtual sun.security.ssl.HandshakeInStream.getInt8:()I
istore 7
start local 7 3: iload 7
iconst_3
if_icmpne 23
4: aload 0
aload 1
invokevirtual sun.security.ssl.HandshakeInStream.getInt16:()I
putfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.groupId:I
5: aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.groupId:I
invokestatic sun.security.ssl.NamedGroup.valueOf:(I)Lsun/security/ssl/NamedGroup;
astore 9
start local 9 6: aload 9
ifnonnull 10
7: new javax.net.ssl.SSLHandshakeException
dup
8: new java.lang.StringBuilder
dup
ldc "Unknown named group ID: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.groupId:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange sun.security.ssl.HandshakeInStream java.security.PublicKey byte[] byte[] java.util.Collection sun.security.ssl.ProtocolVersion int top sun.security.ssl.NamedGroup
StackMap stack:
aload 9
invokestatic sun.security.ssl.SupportedGroupsExtension.supports:(Lsun/security/ssl/NamedGroup;)Z
ifne 14
11: new javax.net.ssl.SSLHandshakeException
dup
12: new java.lang.StringBuilder
dup
ldc "Unsupported named group: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
aload 9
getfield sun.security.ssl.NamedGroup.oid:Ljava/lang/String;
ifnonnull 18
15: new javax.net.ssl.SSLHandshakeException
dup
16: new java.lang.StringBuilder
dup
ldc "Unknown named EC curve: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
17: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
aload 9
getfield sun.security.ssl.NamedGroup.oid:Ljava/lang/String;
invokestatic sun.security.ssl.JsseJce.getECParameterSpec:(Ljava/lang/String;)Ljava/security/spec/ECParameterSpec;
astore 8
start local 8 19: aload 8
ifnonnull 26
20: new javax.net.ssl.SSLHandshakeException
dup
21: new java.lang.StringBuilder
dup
ldc "No supported EC parameter for named group: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
22: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
end local 9 end local 8 23: StackMap locals: sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange sun.security.ssl.HandshakeInStream java.security.PublicKey byte[] byte[] java.util.Collection sun.security.ssl.ProtocolVersion int
StackMap stack:
new javax.net.ssl.SSLHandshakeException
dup
24: new java.lang.StringBuilder
dup
ldc "Unsupported ECCurveType: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 7
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
25: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
start local 8 26: StackMap locals: java.security.spec.ECParameterSpec
StackMap stack:
aload 0
aload 1
invokevirtual sun.security.ssl.HandshakeInStream.getBytes8:()[B
putfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.pointBytes:[B
27: aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.pointBytes:[B
aload 8
invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
invokestatic sun.security.ssl.JsseJce.decodePoint:([BLjava/security/spec/EllipticCurve;)Ljava/security/spec/ECPoint;
astore 9
start local 9 28: ldc "EC"
invokestatic sun.security.ssl.JsseJce.getKeyFactory:(Ljava/lang/String;)Ljava/security/KeyFactory;
astore 10
start local 10 29: aload 0
aload 10
30: new java.security.spec.ECPublicKeySpec
dup
aload 9
aload 8
invokespecial java.security.spec.ECPublicKeySpec.<init>:(Ljava/security/spec/ECPoint;Ljava/security/spec/ECParameterSpec;)V
31: invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
checkcast java.security.interfaces.ECPublicKey
putfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.publicKey:Ljava/security/interfaces/ECPublicKey;
32: aload 2
ifnonnull 34
33: return
34: StackMap locals: java.security.spec.ECPoint java.security.KeyFactory
StackMap stack:
aload 6
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
ifeq 49
35: aload 1
invokevirtual sun.security.ssl.HandshakeInStream.getInt8:()I
istore 11
start local 11 36: aload 1
invokevirtual sun.security.ssl.HandshakeInStream.getInt8:()I
istore 12
start local 12 37: aload 0
38: iload 11
iload 12
iconst_0
invokestatic sun.security.ssl.SignatureAndHashAlgorithm.valueOf:(III)Lsun/security/ssl/SignatureAndHashAlgorithm;
39: putfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
40: aload 5
41: aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
42: invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
43: ifne 49
44: new javax.net.ssl.SSLHandshakeException
dup
45: new java.lang.StringBuilder
dup
ldc "Unsupported SignatureAndHashAlgorithm in ServerKeyExchange message: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
46: aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
47: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
48: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
end local 12 end local 11 49: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.security.ssl.HandshakeInStream.getBytes16:()[B
putfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.signatureBytes:[B
50: aload 6
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
ifeq 54
51: aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
invokevirtual sun.security.ssl.SignatureAndHashAlgorithm.getAlgorithmName:()Ljava/lang/String;
52: invokestatic sun.security.ssl.JsseJce.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
astore 11
start local 11 53: goto 55
end local 11 54: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
invokestatic sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
astore 11
start local 11 55: StackMap locals: java.security.Signature
StackMap stack:
aload 11
aload 2
invokevirtual java.security.Signature.initVerify:(Ljava/security/PublicKey;)V
56: aload 0
aload 11
aload 3
aload 4
invokevirtual sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.updateSignature:(Ljava/security/Signature;[B[B)V
57: aload 11
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.signatureBytes:[B
invokevirtual java.security.Signature.verify:([B)Z
ifne 61
58: new javax.net.ssl.SSLKeyException
dup
59: ldc "Invalid signature on ECDH server key exchange message"
60: invokespecial javax.net.ssl.SSLKeyException.<init>:(Ljava/lang/String;)V
athrow
61: StackMap locals:
StackMap stack:
return
end local 11 end local 10 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 62 0 this Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;
0 62 1 input Lsun/security/ssl/HandshakeInStream;
0 62 2 signingKey Ljava/security/PublicKey;
0 62 3 clntNonce [B
0 62 4 svrNonce [B
0 62 5 localSupportedSignAlgs Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
0 62 6 protocolVersion Lsun/security/ssl/ProtocolVersion;
3 62 7 curveType I
19 23 8 parameters Ljava/security/spec/ECParameterSpec;
26 62 8 parameters Ljava/security/spec/ECParameterSpec;
6 23 9 namedGroup Lsun/security/ssl/NamedGroup;
28 62 9 point Ljava/security/spec/ECPoint;
29 62 10 factory Ljava/security/KeyFactory;
36 49 11 hash I
37 49 12 signature I
53 54 11 sig Ljava/security/Signature;
55 62 11 sig Ljava/security/Signature;
Exceptions:
throws java.io.IOException, java.security.GeneralSecurityException
Signature: (Lsun/security/ssl/HandshakeInStream;Ljava/security/PublicKey;[B[BLjava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;Lsun/security/ssl/ProtocolVersion;)V
MethodParameters:
Name Flags
input
signingKey
clntNonce
svrNonce
localSupportedSignAlgs
protocolVersion
java.security.interfaces.ECPublicKey getPublicKey();
descriptor: ()Ljava/security/interfaces/ECPublicKey;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.publicKey:Ljava/security/interfaces/ECPublicKey;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;
private static java.security.Signature getSignature(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/security/Signature;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
dup
astore 1
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 2
2206: 1
81440: 2
default: 5
}
StackMap locals: java.lang.String
StackMap stack:
1: aload 1
ldc "EC"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 3
goto 5
StackMap locals:
StackMap stack:
2: aload 1
ldc "RSA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
goto 5
3: StackMap locals:
StackMap stack:
ldc "SHA1withECDSA"
invokestatic sun.security.ssl.JsseJce.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
areturn
4: StackMap locals:
StackMap stack:
invokestatic sun.security.ssl.RSASignature.getInstance:()Ljava/security/Signature;
areturn
5: StackMap locals:
StackMap stack:
new java.security.NoSuchAlgorithmException
dup
6: 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;
7: invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 keyAlgorithm Ljava/lang/String;
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
keyAlgorithm
private void updateSignature(java.security.Signature, byte[], byte[]);
descriptor: (Ljava/security/Signature;[B[B)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
aload 2
invokevirtual java.security.Signature.update:([B)V
1: aload 1
aload 3
invokevirtual java.security.Signature.update:([B)V
2: aload 1
iconst_3
invokevirtual java.security.Signature.update:(B)V
3: aload 1
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.groupId:I
bipush 8
ishr
i2b
invokevirtual java.security.Signature.update:(B)V
4: aload 1
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.groupId:I
i2b
invokevirtual java.security.Signature.update:(B)V
5: aload 1
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.pointBytes:[B
arraylength
i2b
invokevirtual java.security.Signature.update:(B)V
6: aload 1
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.pointBytes:[B
invokevirtual java.security.Signature.update:([B)V
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;
0 8 1 sig Ljava/security/Signature;
0 8 2 clntNonce [B
0 8 3 svrNonce [B
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
sig
clntNonce
svrNonce
int messageLength();
descriptor: ()I
flags: (0x0000)
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.HandshakeMessage$ECDH_ServerKeyExchange.signatureBytes:[B
ifnull 5
2: iconst_2
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.signatureBytes:[B
arraylength
iadd
istore 1
3: aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
ifeq 5
4: iload 1
invokestatic sun.security.ssl.SignatureAndHashAlgorithm.sizeInRecord:()I
iadd
istore 1
5: StackMap locals: int
StackMap stack:
iconst_4
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.pointBytes:[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/HandshakeMessage$ECDH_ServerKeyExchange;
1 6 1 sigLen I
void send(sun.security.ssl.HandshakeOutStream);
descriptor: (Lsun/security/ssl/HandshakeOutStream;)V
flags: (0x0000)
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.HandshakeMessage$ECDH_ServerKeyExchange.groupId:I
invokevirtual sun.security.ssl.HandshakeOutStream.putInt16:(I)V
2: aload 1
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.pointBytes:[B
invokevirtual sun.security.ssl.HandshakeOutStream.putBytes8:([B)V
3: aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.signatureBytes:[B
ifnull 8
4: aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
ifeq 7
5: aload 1
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
invokevirtual sun.security.ssl.SignatureAndHashAlgorithm.getHashValue:()I
invokevirtual sun.security.ssl.HandshakeOutStream.putInt8:(I)V
6: aload 1
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
invokevirtual sun.security.ssl.SignatureAndHashAlgorithm.getSignatureValue:()I
invokevirtual sun.security.ssl.HandshakeOutStream.putInt8:(I)V
7: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.signatureBytes:[B
invokevirtual sun.security.ssl.HandshakeOutStream.putBytes16:([B)V
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;
0 9 1 s Lsun/security/ssl/HandshakeOutStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
void print(java.io.PrintStream);
descriptor: (Ljava/io/PrintStream;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "*** ECDH ServerKeyExchange"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: getstatic sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.debug:Lsun/security/ssl/Debug;
ifnull 10
ldc "verbose"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 10
2: aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.signatureBytes:[B
ifnonnull 5
3: aload 1
ldc "Anonymous"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: goto 9
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
ifeq 9
6: aload 1
new java.lang.StringBuilder
dup
ldc "Signature Algorithm "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
7: aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
invokevirtual sun.security.ssl.SignatureAndHashAlgorithm.getAlgorithmName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
aload 1
new java.lang.StringBuilder
dup
ldc "Server key: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.publicKey:Ljava/security/interfaces/ECPublicKey;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;
0 11 1 s Ljava/io/PrintStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
}
SourceFile: "HandshakeMessage.java"
NestHost: sun.security.ssl.HandshakeMessage
InnerClasses:
final ECDH_ServerKeyExchange = sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange of sun.security.ssl.HandshakeMessage
abstract ServerKeyExchange = sun.security.ssl.HandshakeMessage$ServerKeyExchange of sun.security.ssl.HandshakeMessage