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 curveId;
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=4, locals=11, 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 0
aload 8
invokestatic sun.security.ssl.EllipticCurvesExtension.getCurveIndex:(Ljava/security/spec/ECParameterSpec;)I
putfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.curveId:I
7: aload 2
ifnonnull 9
8: return
9: 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
StackMap stack:
aload 7
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 13
10: aload 0
aload 6
putfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
11: aload 6
invokevirtual sun.security.ssl.SignatureAndHashAlgorithm.getAlgorithmName:()Ljava/lang/String;
invokestatic sun.security.ssl.JsseJce.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
astore 10
start local 10 12: goto 14
end local 10 13: 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 10
start local 10 14: StackMap locals: java.security.Signature
StackMap stack:
aload 10
aload 2
aload 5
invokevirtual java.security.Signature.initSign:(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
15: aload 0
aload 10
aload 3
aload 4
invokevirtual sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.updateSignature:(Ljava/security/Signature;[B[B)V
16: aload 0
aload 10
invokevirtual java.security.Signature.sign:()[B
putfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.signatureBytes:[B
17: return
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 18 0 this Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;
0 18 1 obj Lsun/security/ssl/ECDHCrypt;
0 18 2 privateKey Ljava/security/PrivateKey;
0 18 3 clntNonce [B
0 18 4 svrNonce [B
0 18 5 sr Ljava/security/SecureRandom;
0 18 6 signAlgorithm Lsun/security/ssl/SignatureAndHashAlgorithm;
0 18 7 protocolVersion Lsun/security/ssl/ProtocolVersion;
4 18 8 params Ljava/security/spec/ECParameterSpec;
5 18 9 point Ljava/security/spec/ECPoint;
12 13 10 sig Ljava/security/Signature;
14 18 10 sig Ljava/security/Signature;
Exceptions:
throws 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 19
4: aload 0
aload 1
invokevirtual sun.security.ssl.HandshakeInStream.getInt16:()I
putfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.curveId:I
5: aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.curveId:I
invokestatic sun.security.ssl.EllipticCurvesExtension.isSupported:(I)Z
ifne 9
6: new javax.net.ssl.SSLHandshakeException
dup
7: new java.lang.StringBuilder
dup
ldc "Unsupported curveId: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.curveId:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
9: 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:
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.curveId:I
invokestatic sun.security.ssl.EllipticCurvesExtension.getCurveOid:(I)Ljava/lang/String;
astore 9
start local 9 10: aload 9
ifnonnull 14
11: new javax.net.ssl.SSLHandshakeException
dup
12: new java.lang.StringBuilder
dup
ldc "Unknown named curve: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.curveId:I
invokevirtual java.lang.StringBuilder.append:(I)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: sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange sun.security.ssl.HandshakeInStream java.security.PublicKey byte[] byte[] java.util.Collection sun.security.ssl.ProtocolVersion int top java.lang.String
StackMap stack:
aload 9
invokestatic sun.security.ssl.JsseJce.getECParameterSpec:(Ljava/lang/String;)Ljava/security/spec/ECParameterSpec;
astore 8
start local 8 15: aload 8
ifnonnull 22
16: new javax.net.ssl.SSLHandshakeException
dup
17: new java.lang.StringBuilder
dup
ldc "Unsupported curve: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
18: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
end local 9 end local 8 19: 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
20: 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;
21: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
start local 8 22: 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
23: 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 24: ldc "EC"
invokestatic sun.security.ssl.JsseJce.getKeyFactory:(Ljava/lang/String;)Ljava/security/KeyFactory;
astore 10
start local 10 25: aload 0
aload 10
26: 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
27: 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;
28: aload 2
ifnonnull 30
29: return
30: StackMap locals: java.security.spec.ECPoint java.security.KeyFactory
StackMap stack:
aload 6
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 43
31: aload 1
invokevirtual sun.security.ssl.HandshakeInStream.getInt8:()I
istore 11
start local 11 32: aload 1
invokevirtual sun.security.ssl.HandshakeInStream.getInt8:()I
istore 12
start local 12 33: aload 0
34: iload 11
iload 12
iconst_0
invokestatic sun.security.ssl.SignatureAndHashAlgorithm.valueOf:(III)Lsun/security/ssl/SignatureAndHashAlgorithm;
35: putfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
36: aload 5
37: aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
38: invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
39: ifne 43
40: new javax.net.ssl.SSLHandshakeException
dup
41: ldc "Unsupported SignatureAndHashAlgorithm in ServerKeyExchange message"
42: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
end local 12 end local 11 43: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.security.ssl.HandshakeInStream.getBytes16:()[B
putfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.signatureBytes:[B
44: aload 6
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 48
45: aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.preferableSignatureAlgorithm:Lsun/security/ssl/SignatureAndHashAlgorithm;
invokevirtual sun.security.ssl.SignatureAndHashAlgorithm.getAlgorithmName:()Ljava/lang/String;
46: invokestatic sun.security.ssl.JsseJce.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
astore 11
start local 11 47: goto 49
end local 11 48: 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 49: StackMap locals: java.security.Signature
StackMap stack:
aload 11
aload 2
invokevirtual java.security.Signature.initVerify:(Ljava/security/PublicKey;)V
50: aload 0
aload 11
aload 3
aload 4
invokevirtual sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.updateSignature:(Ljava/security/Signature;[B[B)V
51: aload 11
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.signatureBytes:[B
invokevirtual java.security.Signature.verify:([B)Z
ifne 55
52: new javax.net.ssl.SSLKeyException
dup
53: ldc "Invalid signature on ECDH server key exchange message"
54: invokespecial javax.net.ssl.SSLKeyException.<init>:(Ljava/lang/String;)V
athrow
55: 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 56 0 this Lsun/security/ssl/HandshakeMessage$ECDH_ServerKeyExchange;
0 56 1 input Lsun/security/ssl/HandshakeInStream;
0 56 2 signingKey Ljava/security/PublicKey;
0 56 3 clntNonce [B
0 56 4 svrNonce [B
0 56 5 localSupportedSignAlgs Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
0 56 6 protocolVersion Lsun/security/ssl/ProtocolVersion;
3 56 7 curveType I
15 19 8 parameters Ljava/security/spec/ECParameterSpec;
22 56 8 parameters Ljava/security/spec/ECParameterSpec;
10 19 9 curveOid Ljava/lang/String;
24 56 9 point Ljava/security/spec/ECPoint;
25 56 10 factory Ljava/security/KeyFactory;
32 43 11 hash I
33 43 12 signature I
47 48 11 sig Ljava/security/Signature;
49 56 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=3, 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
ldc "neither an RSA or a EC key"
invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 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.curveId:I
bipush 8
ishr
i2b
invokevirtual java.security.Signature.update:(B)V
4: aload 1
aload 0
getfield sun.security.ssl.HandshakeMessage$ECDH_ServerKeyExchange.curveId: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;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 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.curveId: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;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 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;
getfield sun.security.ssl.ProtocolVersion.v:I
getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.v:I
if_icmplt 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