final class sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage extends sun.security.ssl.SSLHandshake$HandshakeMessage
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage
super_class: sun.security.ssl.SSLHandshake$HandshakeMessage
{
private final byte[] p;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] g;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] y;
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 final byte[] paramsSignature;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(sun.security.ssl.HandshakeContext);
descriptor: (Lsun/security/ssl/HandshakeContext;)V
flags: (0x0000)
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial sun.security.ssl.SSLHandshake$HandshakeMessage.<init>:(Lsun/security/ssl/HandshakeContext;)V
1: aload 1
checkcast sun.security.ssl.ServerHandshakeContext
2: astore 2
start local 2 3: aconst_null
astore 3
start local 3 4: aconst_null
astore 4
start local 4 5: aload 2
getfield sun.security.ssl.ServerHandshakeContext.handshakePossessions:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 15
StackMap locals: sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage sun.security.ssl.HandshakeContext sun.security.ssl.ServerHandshakeContext sun.security.ssl.DHKeyExchange$DHEPossession 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.DHKeyExchange$DHEPossession
ifeq 11
8: aload 5
checkcast sun.security.ssl.DHKeyExchange$DHEPossession
astore 3
9: aload 4
ifnull 15
10: goto 16
11: StackMap locals: sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage sun.security.ssl.HandshakeContext sun.security.ssl.ServerHandshakeContext sun.security.ssl.DHKeyExchange$DHEPossession 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.DHServerKeyExchange$DHServerKeyExchangeMessage sun.security.ssl.HandshakeContext sun.security.ssl.ServerHandshakeContext sun.security.ssl.DHKeyExchange$DHEPossession 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.DHServerKeyExchange$DHServerKeyExchangeMessage sun.security.ssl.HandshakeContext sun.security.ssl.ServerHandshakeContext sun.security.ssl.DHKeyExchange$DHEPossession 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 DHE 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 3
getfield sun.security.ssl.DHKeyExchange$DHEPossession.publicKey:Ljavax/crypto/interfaces/DHPublicKey;
astore 5
start local 5 21: aload 5
invokeinterface javax.crypto.interfaces.DHPublicKey.getParams:()Ljavax/crypto/spec/DHParameterSpec;
astore 6
start local 6 22: aload 0
aload 6
invokevirtual javax.crypto.spec.DHParameterSpec.getP:()Ljava/math/BigInteger;
invokestatic sun.security.ssl.Utilities.toByteArray:(Ljava/math/BigInteger;)[B
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.p:[B
23: aload 0
aload 6
invokevirtual javax.crypto.spec.DHParameterSpec.getG:()Ljava/math/BigInteger;
invokestatic sun.security.ssl.Utilities.toByteArray:(Ljava/math/BigInteger;)[B
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.g:[B
24: aload 0
aload 5
invokeinterface javax.crypto.interfaces.DHPublicKey.getY:()Ljava/math/BigInteger;
invokestatic sun.security.ssl.Utilities.toByteArray:(Ljava/math/BigInteger;)[B
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.y:[B
25: aload 4
ifnonnull 30
26: aload 0
aconst_null
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.paramsSignature:[B
27: aload 0
aconst_null
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
28: aload 0
iconst_0
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
29: goto 81
30: StackMap locals: javax.crypto.interfaces.DHPublicKey javax.crypto.spec.DHParameterSpec
StackMap stack:
aload 0
31: aload 2
getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
32: putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
33: aconst_null
astore 7
start local 7 34: aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
ifeq 55
35: aload 0
36: aload 2
getfield sun.security.ssl.ServerHandshakeContext.peerRequestedSignatureSchemes:Ljava/util/List;
37: aload 4
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
38: aload 2
getfield sun.security.ssl.ServerHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
39: invokestatic sun.security.ssl.SignatureScheme.getPreferableAlgorithm:(Ljava/util/List;Ljava/security/PrivateKey;Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/SignatureScheme;
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
40: aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
ifnonnull 44
41: aload 2
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
42: ldc "No preferred signature algorithm"
43: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
44: StackMap locals: java.security.Signature
StackMap stack:
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
45: aload 4
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
46: invokevirtual sun.security.ssl.SignatureScheme.getSignature:(Ljava/security/Key;)Ljava/security/Signature;
astore 7
47: goto 67
48: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 8
start local 8 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 "Unsupported signature algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
51: aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.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;
52: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
53: aload 8
54: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 8 55: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
56: aload 4
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
57: aload 4
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
58: invokestatic sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.getSignature:(Ljava/lang/String;Ljava/security/Key;)Ljava/security/Signature;
astore 7
59: goto 67
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
60: astore 8
start local 8 61: aload 2
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
62: new java.lang.StringBuilder
dup
ldc "Unsupported signature algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
63: 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;
64: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
65: aload 8
66: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 8 67: StackMap locals:
StackMap stack:
aconst_null
astore 8
start local 8 68: aload 0
aload 7
aload 2
getfield sun.security.ssl.ServerHandshakeContext.clientHelloRandom:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.randomBytes:[B
69: aload 2
getfield sun.security.ssl.ServerHandshakeContext.serverHelloRandom:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.randomBytes:[B
70: invokevirtual sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.updateSignature:(Ljava/security/Signature;[B[B)V
71: aload 7
invokevirtual java.security.Signature.sign:()[B
astore 8
72: goto 80
StackMap locals: sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage sun.security.ssl.HandshakeContext sun.security.ssl.ServerHandshakeContext sun.security.ssl.DHKeyExchange$DHEPossession sun.security.ssl.X509Authentication$X509Possession javax.crypto.interfaces.DHPublicKey javax.crypto.spec.DHParameterSpec java.security.Signature byte[]
StackMap stack: java.security.SignatureException
73: astore 9
start local 9 74: aload 2
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
75: new java.lang.StringBuilder
dup
ldc "Failed to sign dhe parameters: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
76: 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;
77: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
78: aload 9
79: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 9 80: StackMap locals:
StackMap stack:
aload 0
aload 8
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.paramsSignature:[B
end local 8 end local 7 81: StackMap locals:
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 82 0 this Lsun/security/ssl/DHServerKeyExchange$DHServerKeyExchangeMessage;
0 82 1 handshakeContext Lsun/security/ssl/HandshakeContext;
3 82 2 shc Lsun/security/ssl/ServerHandshakeContext;
4 82 3 dhePossession Lsun/security/ssl/DHKeyExchange$DHEPossession;
5 82 4 x509Possession Lsun/security/ssl/X509Authentication$X509Possession;
7 15 5 possession Lsun/security/ssl/SSLPossession;
21 82 5 publicKey Ljavax/crypto/interfaces/DHPublicKey;
22 82 6 params Ljavax/crypto/spec/DHParameterSpec;
34 81 7 signer Ljava/security/Signature;
49 55 8 nsae Ljava/security/GeneralSecurityException;
61 67 8 e Ljava/security/GeneralSecurityException;
68 81 8 signature [B
74 80 9 ex Ljava/security/SignatureException;
Exception table:
from to target type
44 47 48 Class java.security.NoSuchAlgorithmException
44 47 48 Class java.security.InvalidKeyException
44 47 48 Class java.security.InvalidAlgorithmParameterException
56 59 60 Class java.security.NoSuchAlgorithmException
56 59 60 Class java.security.InvalidKeyException
68 72 73 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=8, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial sun.security.ssl.SSLHandshake$HandshakeMessage.<init>:(Lsun/security/ssl/HandshakeContext;)V
1: aload 1
checkcast sun.security.ssl.ClientHandshakeContext
2: astore 3
start local 3 3: aload 0
aload 2
invokestatic sun.security.ssl.Record.getBytes16:(Ljava/nio/ByteBuffer;)[B
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.p:[B
4: aload 0
aload 2
invokestatic sun.security.ssl.Record.getBytes16:(Ljava/nio/ByteBuffer;)[B
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.g:[B
5: aload 0
aload 2
invokestatic sun.security.ssl.Record.getBytes16:(Ljava/nio/ByteBuffer;)[B
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.y:[B
6: new javax.crypto.spec.DHPublicKeySpec
dup
7: new java.math.BigInteger
dup
iconst_1
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.y:[B
invokespecial java.math.BigInteger.<init>:(I[B)V
8: new java.math.BigInteger
dup
iconst_1
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.p:[B
invokespecial java.math.BigInteger.<init>:(I[B)V
9: new java.math.BigInteger
dup
iconst_1
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.p:[B
invokespecial java.math.BigInteger.<init>:(I[B)V
10: invokespecial javax.crypto.spec.DHPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
invokestatic sun.security.util.KeyUtil.validate:(Ljava/security/spec/KeySpec;)V
11: goto 16
StackMap locals: sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage sun.security.ssl.HandshakeContext java.nio.ByteBuffer sun.security.ssl.ClientHandshakeContext
StackMap stack: java.security.InvalidKeyException
12: astore 4
start local 4 13: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
14: ldc "Invalid DH ServerKeyExchange: invalid parameters"
aload 4
15: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 4 16: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 17: aload 3
getfield sun.security.ssl.ClientHandshakeContext.handshakeCredentials:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 22
StackMap locals: sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage sun.security.ssl.HandshakeContext java.nio.ByteBuffer sun.security.ssl.ClientHandshakeContext sun.security.ssl.X509Authentication$X509Credentials top java.util.Iterator
StackMap stack:
18: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.SSLCredentials
astore 5
start local 5 19: aload 5
instanceof sun.security.ssl.X509Authentication$X509Credentials
ifeq 22
20: aload 5
checkcast sun.security.ssl.X509Authentication$X509Credentials
astore 4
21: goto 23
end local 5 22: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 18
23: StackMap locals: sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage sun.security.ssl.HandshakeContext java.nio.ByteBuffer sun.security.ssl.ClientHandshakeContext sun.security.ssl.X509Authentication$X509Credentials
StackMap stack:
aload 4
ifnonnull 32
24: aload 2
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 28
25: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
26: ldc "Invalid DH ServerKeyExchange: unknown extra data"
27: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
28: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
29: aload 0
aconst_null
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.paramsSignature:[B
30: aload 0
iconst_0
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
31: return
32: StackMap locals:
StackMap stack:
aload 0
33: aload 3
getfield sun.security.ssl.ClientHandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
34: putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
35: aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
ifeq 51
36: aload 2
invokestatic sun.security.ssl.Record.getInt16:(Ljava/nio/ByteBuffer;)I
istore 5
start local 5 37: aload 0
iload 5
invokestatic sun.security.ssl.SignatureScheme.valueOf:(I)Lsun/security/ssl/SignatureScheme;
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
38: aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
ifnonnull 44
39: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
40: new java.lang.StringBuilder
dup
ldc "Invalid signature algorithm ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
41: ldc ") used in DH ServerKeyExchange handshake message"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
42: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
43: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
44: StackMap locals: int
StackMap stack:
aload 3
getfield sun.security.ssl.ClientHandshakeContext.localSupportedSignAlgs:Ljava/util/List;
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifne 52
45: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
46: new java.lang.StringBuilder
dup
ldc "Unsupported signature algorithm ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
47: aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.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;
48: ldc ") used in DH ServerKeyExchange handshake message"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
49: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
50: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
end local 5 51: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
52: StackMap locals:
StackMap stack:
aload 0
aload 2
invokestatic sun.security.ssl.Record.getBytes16:(Ljava/nio/ByteBuffer;)[B
putfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.paramsSignature:[B
53: aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
ifeq 65
54: aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
55: aload 4
getfield sun.security.ssl.X509Authentication$X509Credentials.popPublicKey:Ljava/security/PublicKey;
56: invokevirtual sun.security.ssl.SignatureScheme.getSignature:(Ljava/security/Key;)Ljava/security/Signature;
astore 5
start local 5 57: goto 76
end local 5 58: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 6
start local 6 59: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
60: new java.lang.StringBuilder
dup
ldc "Unsupported signature algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
61: aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.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;
62: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
63: aload 6
64: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 6 65: StackMap locals:
StackMap stack:
aload 4
getfield sun.security.ssl.X509Authentication$X509Credentials.popPublicKey:Ljava/security/PublicKey;
invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
66: aload 4
getfield sun.security.ssl.X509Authentication$X509Credentials.popPublicKey:Ljava/security/PublicKey;
67: invokestatic sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.getSignature:(Ljava/lang/String;Ljava/security/Key;)Ljava/security/Signature;
astore 5
start local 5 68: goto 76
end local 5 StackMap locals:
StackMap stack: java.security.GeneralSecurityException
69: astore 6
start local 6 70: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
71: new java.lang.StringBuilder
dup
ldc "Unsupported signature algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
72: aload 4
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;
73: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
74: aload 6
75: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 6 start local 5 76: StackMap locals: java.security.Signature
StackMap stack:
aload 0
aload 5
77: aload 3
getfield sun.security.ssl.ClientHandshakeContext.clientHelloRandom:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.randomBytes:[B
78: aload 3
getfield sun.security.ssl.ClientHandshakeContext.serverHelloRandom:Lsun/security/ssl/RandomCookie;
getfield sun.security.ssl.RandomCookie.randomBytes:[B
79: invokevirtual sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.updateSignature:(Ljava/security/Signature;[B[B)V
80: aload 5
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.paramsSignature:[B
invokevirtual java.security.Signature.verify:([B)Z
ifne 88
81: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
82: ldc "Invalid signature on DH ServerKeyExchange message"
83: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
84: StackMap locals:
StackMap stack: java.security.SignatureException
astore 6
start local 6 85: aload 3
getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
86: ldc "Cannot verify DH ServerKeyExchange signature"
aload 6
87: invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 6 88: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 89 0 this Lsun/security/ssl/DHServerKeyExchange$DHServerKeyExchangeMessage;
0 89 1 handshakeContext Lsun/security/ssl/HandshakeContext;
0 89 2 m Ljava/nio/ByteBuffer;
3 89 3 chc Lsun/security/ssl/ClientHandshakeContext;
13 16 4 ike Ljava/security/InvalidKeyException;
17 89 4 x509Credentials Lsun/security/ssl/X509Authentication$X509Credentials;
19 22 5 cd Lsun/security/ssl/SSLCredentials;
37 51 5 ssid I
57 58 5 signer Ljava/security/Signature;
68 69 5 signer Ljava/security/Signature;
76 89 5 signer Ljava/security/Signature;
59 65 6 nsae Ljava/security/GeneralSecurityException;
70 76 6 e Ljava/security/GeneralSecurityException;
85 88 6 ex Ljava/security/SignatureException;
Exception table:
from to target type
6 11 12 Class java.security.InvalidKeyException
54 57 58 Class java.security.NoSuchAlgorithmException
54 57 58 Class java.security.InvalidKeyException
54 57 58 Class java.security.InvalidAlgorithmParameterException
65 68 69 Class java.security.NoSuchAlgorithmException
65 68 69 Class java.security.InvalidKeyException
76 84 84 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/DHServerKeyExchange$DHServerKeyExchangeMessage;
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.DHServerKeyExchange$DHServerKeyExchangeMessage.paramsSignature:[B
ifnull 5
2: iconst_2
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.paramsSignature:[B
arraylength
iadd
istore 1
3: aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
ifeq 5
4: iload 1
invokestatic sun.security.ssl.SignatureScheme.sizeInRecord:()I
iadd
istore 1
5: StackMap locals: int
StackMap stack:
bipush 6
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.p:[B
arraylength
iadd
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.g:[B
arraylength
iadd
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.y:[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/DHServerKeyExchange$DHServerKeyExchangeMessage;
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
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.p:[B
invokevirtual sun.security.ssl.HandshakeOutStream.putBytes16:([B)V
1: aload 1
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.g:[B
invokevirtual sun.security.ssl.HandshakeOutStream.putBytes16:([B)V
2: aload 1
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.y:[B
invokevirtual sun.security.ssl.HandshakeOutStream.putBytes16:([B)V
3: aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.paramsSignature:[B
ifnull 7
4: aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
ifeq 6
5: aload 1
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.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.DHServerKeyExchange$DHServerKeyExchangeMessage.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/DHServerKeyExchange$DHServerKeyExchangeMessage;
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.DHServerKeyExchange$DHServerKeyExchangeMessage.paramsSignature:[B
ifnonnull 15
1: new java.text.MessageFormat
dup
2: ldc "\"DH ServerKeyExchange\": '{'\n \"parameters\": '{'\n \"dh_p\": '{'\n{0}\n '}',\n \"dh_g\": '{'\n{1}\n '}',\n \"dh_Ys\": '{'\n{2}\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_3
anewarray java.lang.Object
dup
iconst_0
7: aload 2
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.p:[B
invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
ldc " "
8: invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_1
9: aload 2
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.g:[B
invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
ldc " "
10: invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_2
11: aload 2
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.y:[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.DHServerKeyExchange$DHServerKeyExchangeMessage.useExplicitSigAlgorithm:Z
ifeq 33
16: new java.text.MessageFormat
dup
17: ldc "\"DH ServerKeyExchange\": '{'\n \"parameters\": '{'\n \"dh_p\": '{'\n{0}\n '}',\n \"dh_g\": '{'\n{1}\n '}',\n \"dh_Ys\": '{'\n{2}\n '}',\n '}',\n \"digital signature\": '{'\n \"signature algorithm\": \"{3}\"\n \"signature\": '{'\n{4}\n '}',\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_5
anewarray java.lang.Object
dup
iconst_0
22: aload 2
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.p:[B
invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
ldc " "
23: invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_1
24: aload 2
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.g:[B
invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
ldc " "
25: invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_2
26: aload 2
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.y:[B
invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
ldc " "
27: invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_3
28: aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.signatureScheme:Lsun/security/ssl/SignatureScheme;
getfield sun.security.ssl.SignatureScheme.name:Ljava/lang/String;
aastore
dup
iconst_4
29: aload 2
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.paramsSignature:[B
invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
ldc " "
30: invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
31: astore 3
start local 3 32: 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 33: StackMap locals:
StackMap stack:
new java.text.MessageFormat
dup
34: ldc "\"DH ServerKeyExchange\": '{'\n \"parameters\": '{'\n \"dh_p\": '{'\n{0}\n '}',\n \"dh_g\": '{'\n{1}\n '}',\n \"dh_Ys\": '{'\n{2}\n '}',\n '}',\n \"signature\": '{'\n{3}\n '}'\n'}'"
35: getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
36: invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
astore 1
start local 1 37: new sun.security.util.HexDumpEncoder
dup
invokespecial sun.security.util.HexDumpEncoder.<init>:()V
astore 2
start local 2 38: iconst_4
anewarray java.lang.Object
dup
iconst_0
39: aload 2
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.p:[B
invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
ldc " "
40: invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_1
41: aload 2
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.g:[B
invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
ldc " "
42: invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_2
43: aload 2
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.y:[B
invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
ldc " "
44: invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_3
45: aload 2
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.paramsSignature:[B
invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([B)Ljava/lang/String;
ldc " "
46: invokestatic sun.security.ssl.Utilities.indent:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aastore
47: astore 3
start local 3 48: 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 49 0 this Lsun/security/ssl/DHServerKeyExchange$DHServerKeyExchangeMessage;
5 15 1 messageFormat Ljava/text/MessageFormat;
6 15 2 hexEncoder Lsun/security/util/HexDumpEncoder;
14 15 3 messageFields [Ljava/lang/Object;
20 33 1 messageFormat Ljava/text/MessageFormat;
21 33 2 hexEncoder Lsun/security/util/HexDumpEncoder;
32 33 3 messageFields [Ljava/lang/Object;
37 49 1 messageFormat Ljava/text/MessageFormat;
38 49 2 hexEncoder Lsun/security/util/HexDumpEncoder;
48 49 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
67986: 2
81440: 3
default: 8
}
StackMap locals: java.security.Signature java.lang.String
StackMap stack:
2: aload 3
ldc "DSA"
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 "DSA"
invokestatic sun.security.ssl.JsseJce.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
astore 2
5: goto 11
6: StackMap locals:
StackMap stack:
invokestatic sun.security.ssl.RSASignature.getInstance:()Ljava/security/Signature;
astore 2
7: goto 11
8: StackMap locals:
StackMap stack:
new java.security.NoSuchAlgorithmException
dup
9: new java.lang.StringBuilder
dup
ldc "neither an RSA or a DSA 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 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
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.p:[B
arraylength
bipush 8
ishr
i2b
invokevirtual java.security.Signature.update:(B)V
3: aload 1
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.p:[B
arraylength
sipush 255
iand
i2b
invokevirtual java.security.Signature.update:(B)V
4: aload 1
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.p:[B
invokevirtual java.security.Signature.update:([B)V
5: aload 1
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.g:[B
arraylength
bipush 8
ishr
i2b
invokevirtual java.security.Signature.update:(B)V
6: aload 1
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.g:[B
arraylength
sipush 255
iand
i2b
invokevirtual java.security.Signature.update:(B)V
7: aload 1
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.g:[B
invokevirtual java.security.Signature.update:([B)V
8: aload 1
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.y:[B
arraylength
bipush 8
ishr
i2b
invokevirtual java.security.Signature.update:(B)V
9: aload 1
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.y:[B
arraylength
sipush 255
iand
i2b
invokevirtual java.security.Signature.update:(B)V
10: aload 1
aload 0
getfield sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage.y:[B
invokevirtual java.security.Signature.update:([B)V
11: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/ssl/DHServerKeyExchange$DHServerKeyExchangeMessage;
0 12 1 sig Ljava/security/Signature;
0 12 2 clntNonce [B
0 12 3 svrNonce [B
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
sig
clntNonce
svrNonce
}
SourceFile: "DHServerKeyExchange.java"
NestHost: sun.security.ssl.DHServerKeyExchange
InnerClasses:
final DHEPossession = sun.security.ssl.DHKeyExchange$DHEPossession of sun.security.ssl.DHKeyExchange
private final DHServerKeyExchangeMessage = sun.security.ssl.DHServerKeyExchange$DHServerKeyExchangeMessage of sun.security.ssl.DHServerKeyExchange
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake
final X509Credentials = sun.security.ssl.X509Authentication$X509Credentials of sun.security.ssl.X509Authentication
final X509Possession = sun.security.ssl.X509Authentication$X509Possession of sun.security.ssl.X509Authentication