public final class com.sun.crypto.provider.DHKeyAgreement extends javax.crypto.KeyAgreementSpi
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.sun.crypto.provider.DHKeyAgreement
super_class: javax.crypto.KeyAgreementSpi
{
private boolean generateSecret;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.math.BigInteger init_p;
descriptor: Ljava/math/BigInteger;
flags: (0x0002) ACC_PRIVATE
private java.math.BigInteger init_g;
descriptor: Ljava/math/BigInteger;
flags: (0x0002) ACC_PRIVATE
private java.math.BigInteger x;
descriptor: Ljava/math/BigInteger;
flags: (0x0002) ACC_PRIVATE
private java.math.BigInteger y;
descriptor: Ljava/math/BigInteger;
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial javax.crypto.KeyAgreementSpi.<init>:()V
1: aload 0
iconst_0
putfield com.sun.crypto.provider.DHKeyAgreement.generateSecret:Z
2: aload 0
aconst_null
putfield com.sun.crypto.provider.DHKeyAgreement.init_p:Ljava/math/BigInteger;
3: aload 0
aconst_null
putfield com.sun.crypto.provider.DHKeyAgreement.init_g:Ljava/math/BigInteger;
4: aload 0
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
putfield com.sun.crypto.provider.DHKeyAgreement.x:Ljava/math/BigInteger;
5: aload 0
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
putfield com.sun.crypto.provider.DHKeyAgreement.y:Ljava/math/BigInteger;
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/crypto/provider/DHKeyAgreement;
protected void engineInit(java.security.Key, java.security.SecureRandom);
descriptor: (Ljava/security/Key;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aconst_null
aload 2
invokevirtual com.sun.crypto.provider.DHKeyAgreement.engineInit:(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
1: goto 3
StackMap locals:
StackMap stack: java.security.InvalidAlgorithmParameterException
2: pop
3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/crypto/provider/DHKeyAgreement;
0 4 1 key Ljava/security/Key;
0 4 2 random Ljava/security/SecureRandom;
Exception table:
from to target type
0 1 2 Class java.security.InvalidAlgorithmParameterException
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
key
random
protected void engineInit(java.security.Key, java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom);
descriptor: (Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iconst_0
putfield com.sun.crypto.provider.DHKeyAgreement.generateSecret:Z
1: aload 0
aconst_null
putfield com.sun.crypto.provider.DHKeyAgreement.init_p:Ljava/math/BigInteger;
2: aload 0
aconst_null
putfield com.sun.crypto.provider.DHKeyAgreement.init_g:Ljava/math/BigInteger;
3: aload 2
ifnull 7
aload 2
instanceof javax.crypto.spec.DHParameterSpec
ifne 7
4: new java.security.InvalidAlgorithmParameterException
dup
5: ldc "Diffie-Hellman parameters expected"
6: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 1
instanceof javax.crypto.interfaces.DHPrivateKey
ifne 9
8: new java.security.InvalidKeyException
dup
ldc "Diffie-Hellman private key expected"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
aload 1
checkcast javax.crypto.interfaces.DHPrivateKey
astore 4
start local 4 10: aload 2
ifnull 13
11: aload 0
aload 2
checkcast javax.crypto.spec.DHParameterSpec
invokevirtual javax.crypto.spec.DHParameterSpec.getP:()Ljava/math/BigInteger;
putfield com.sun.crypto.provider.DHKeyAgreement.init_p:Ljava/math/BigInteger;
12: aload 0
aload 2
checkcast javax.crypto.spec.DHParameterSpec
invokevirtual javax.crypto.spec.DHParameterSpec.getG:()Ljava/math/BigInteger;
putfield com.sun.crypto.provider.DHKeyAgreement.init_g:Ljava/math/BigInteger;
13: StackMap locals: javax.crypto.interfaces.DHPrivateKey
StackMap stack:
aload 4
invokeinterface javax.crypto.interfaces.DHPrivateKey.getParams:()Ljavax/crypto/spec/DHParameterSpec;
invokevirtual javax.crypto.spec.DHParameterSpec.getP:()Ljava/math/BigInteger;
astore 5
start local 5 14: aload 4
invokeinterface javax.crypto.interfaces.DHPrivateKey.getParams:()Ljavax/crypto/spec/DHParameterSpec;
invokevirtual javax.crypto.spec.DHParameterSpec.getG:()Ljava/math/BigInteger;
astore 6
start local 6 15: aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.init_p:Ljava/math/BigInteger;
ifnull 17
aload 5
ifnull 17
aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.init_p:Ljava/math/BigInteger;
aload 5
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifne 17
16: new java.security.InvalidKeyException
dup
ldc "Incompatible parameters"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals: java.math.BigInteger java.math.BigInteger
StackMap stack:
aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.init_g:Ljava/math/BigInteger;
ifnull 19
aload 6
ifnull 19
aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.init_g:Ljava/math/BigInteger;
aload 6
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifne 19
18: new java.security.InvalidKeyException
dup
ldc "Incompatible parameters"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.init_p:Ljava/math/BigInteger;
ifnonnull 20
aload 5
ifnull 21
20: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.init_g:Ljava/math/BigInteger;
ifnonnull 22
aload 6
ifnonnull 22
21: StackMap locals:
StackMap stack:
new java.security.InvalidKeyException
dup
ldc "Missing parameters"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals:
StackMap stack:
aload 0
aload 5
putfield com.sun.crypto.provider.DHKeyAgreement.init_p:Ljava/math/BigInteger;
23: aload 0
aload 6
putfield com.sun.crypto.provider.DHKeyAgreement.init_g:Ljava/math/BigInteger;
24: aload 0
aload 4
invokeinterface javax.crypto.interfaces.DHPrivateKey.getX:()Ljava/math/BigInteger;
putfield com.sun.crypto.provider.DHKeyAgreement.x:Ljava/math/BigInteger;
25: 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 26 0 this Lcom/sun/crypto/provider/DHKeyAgreement;
0 26 1 key Ljava/security/Key;
0 26 2 params Ljava/security/spec/AlgorithmParameterSpec;
0 26 3 random Ljava/security/SecureRandom;
10 26 4 dhPrivKey Ljavax/crypto/interfaces/DHPrivateKey;
14 26 5 priv_p Ljava/math/BigInteger;
15 26 6 priv_g Ljava/math/BigInteger;
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
key
params
random
protected java.security.Key engineDoPhase(java.security.Key, boolean);
descriptor: (Ljava/security/Key;Z)Ljava/security/Key;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof javax.crypto.interfaces.DHPublicKey
ifne 2
1: new java.security.InvalidKeyException
dup
ldc "Diffie-Hellman public key expected"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
checkcast javax.crypto.interfaces.DHPublicKey
astore 3
start local 3 3: aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.init_p:Ljava/math/BigInteger;
ifnull 4
aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.init_g:Ljava/math/BigInteger;
ifnonnull 5
4: StackMap locals: javax.crypto.interfaces.DHPublicKey
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "Not initialized"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 3
invokeinterface javax.crypto.interfaces.DHPublicKey.getParams:()Ljavax/crypto/spec/DHParameterSpec;
invokevirtual javax.crypto.spec.DHParameterSpec.getP:()Ljava/math/BigInteger;
astore 4
start local 4 6: aload 3
invokeinterface javax.crypto.interfaces.DHPublicKey.getParams:()Ljavax/crypto/spec/DHParameterSpec;
invokevirtual javax.crypto.spec.DHParameterSpec.getG:()Ljava/math/BigInteger;
astore 5
start local 5 7: aload 4
ifnull 9
aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.init_p:Ljava/math/BigInteger;
aload 4
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifne 9
8: new java.security.InvalidKeyException
dup
ldc "Incompatible parameters"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: java.math.BigInteger java.math.BigInteger
StackMap stack:
aload 5
ifnull 11
aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.init_g:Ljava/math/BigInteger;
aload 5
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifne 11
10: new java.security.InvalidKeyException
dup
ldc "Incompatible parameters"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 3
invokestatic sun.security.util.KeyUtil.validate:(Ljava/security/Key;)V
12: aload 0
aload 3
invokeinterface javax.crypto.interfaces.DHPublicKey.getY:()Ljava/math/BigInteger;
putfield com.sun.crypto.provider.DHKeyAgreement.y:Ljava/math/BigInteger;
13: aload 0
iconst_1
putfield com.sun.crypto.provider.DHKeyAgreement.generateSecret:Z
14: iload 2
ifne 19
15: aload 0
invokevirtual com.sun.crypto.provider.DHKeyAgreement.engineGenerateSecret:()[B
astore 6
start local 6 16: new com.sun.crypto.provider.DHPublicKey
dup
new java.math.BigInteger
dup
iconst_1
aload 6
invokespecial java.math.BigInteger.<init>:(I[B)V
17: aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.init_p:Ljava/math/BigInteger;
aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.init_g:Ljava/math/BigInteger;
18: invokespecial com.sun.crypto.provider.DHPublicKey.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 6 19: StackMap locals:
StackMap stack:
aconst_null
areturn
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 20 0 this Lcom/sun/crypto/provider/DHKeyAgreement;
0 20 1 key Ljava/security/Key;
0 20 2 lastPhase Z
3 20 3 dhPubKey Ljavax/crypto/interfaces/DHPublicKey;
6 20 4 pub_p Ljava/math/BigInteger;
7 20 5 pub_g Ljava/math/BigInteger;
16 19 6 intermediate [B
Exceptions:
throws java.security.InvalidKeyException, java.lang.IllegalStateException
MethodParameters:
Name Flags
key
lastPhase
protected byte[] engineGenerateSecret();
descriptor: ()[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.generateSecret:Z
ifne 4
1: new java.lang.IllegalStateException
dup
2: ldc "Key agreement has not been completed yet"
3: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield com.sun.crypto.provider.DHKeyAgreement.generateSecret:Z
5: aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.init_p:Ljava/math/BigInteger;
astore 1
start local 1 6: aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.y:Ljava/math/BigInteger;
aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.x:Ljava/math/BigInteger;
aload 1
invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 2
start local 2 7: aload 2
invokevirtual java.math.BigInteger.toByteArray:()[B
astore 3
start local 3 8: aload 2
invokevirtual java.math.BigInteger.bitLength:()I
bipush 8
irem
ifne 12
9: aload 3
arraylength
iconst_1
isub
newarray 8
astore 4
start local 4 10: aload 3
iconst_1
aload 4
iconst_0
aload 4
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: aload 4
areturn
end local 4 12: StackMap locals: java.math.BigInteger java.math.BigInteger byte[]
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/sun/crypto/provider/DHKeyAgreement;
6 13 1 modulus Ljava/math/BigInteger;
7 13 2 tmpResult Ljava/math/BigInteger;
8 13 3 secret [B
10 12 4 retval [B
Exceptions:
throws java.lang.IllegalStateException
protected int engineGenerateSecret(byte[], int);
descriptor: ([BI)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.generateSecret:Z
ifne 4
1: new java.lang.IllegalStateException
dup
2: ldc "Key agreement has not been completed yet"
3: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
ifnonnull 8
5: new javax.crypto.ShortBufferException
dup
6: ldc "No buffer provided for shared secret"
7: invokespecial javax.crypto.ShortBufferException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.init_p:Ljava/math/BigInteger;
astore 3
start local 3 9: aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.y:Ljava/math/BigInteger;
aload 0
getfield com.sun.crypto.provider.DHKeyAgreement.x:Ljava/math/BigInteger;
aload 3
invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.toByteArray:()[B
astore 4
start local 4 10: aload 4
arraylength
iconst_3
ishl
aload 3
invokevirtual java.math.BigInteger.bitLength:()I
if_icmpeq 20
11: aload 1
arraylength
iload 2
isub
aload 4
arraylength
iconst_1
isub
if_icmpge 15
12: new javax.crypto.ShortBufferException
dup
13: ldc "Buffer too short for shared secret"
14: invokespecial javax.crypto.ShortBufferException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals: java.math.BigInteger byte[]
StackMap stack:
aload 4
iconst_1
aload 1
iload 2
16: aload 4
arraylength
iconst_1
isub
17: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
18: aload 0
iconst_0
putfield com.sun.crypto.provider.DHKeyAgreement.generateSecret:Z
19: aload 4
arraylength
iconst_1
isub
ireturn
20: StackMap locals:
StackMap stack:
aload 1
arraylength
iload 2
isub
aload 4
arraylength
if_icmpge 24
21: new javax.crypto.ShortBufferException
dup
22: ldc "Buffer too short to hold shared secret"
23: invokespecial javax.crypto.ShortBufferException.<init>:(Ljava/lang/String;)V
athrow
24: StackMap locals:
StackMap stack:
aload 4
iconst_0
aload 1
iload 2
aload 4
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
25: aload 0
iconst_0
putfield com.sun.crypto.provider.DHKeyAgreement.generateSecret:Z
26: aload 4
arraylength
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lcom/sun/crypto/provider/DHKeyAgreement;
0 27 1 sharedSecret [B
0 27 2 offset I
9 27 3 modulus Ljava/math/BigInteger;
10 27 4 secret [B
Exceptions:
throws java.lang.IllegalStateException, javax.crypto.ShortBufferException
MethodParameters:
Name Flags
sharedSecret
offset
protected javax.crypto.SecretKey engineGenerateSecret(java.lang.String);
descriptor: (Ljava/lang/String;)Ljavax/crypto/SecretKey;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.security.NoSuchAlgorithmException
dup
ldc "null algorithm"
invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
ldc "TlsPremasterSecret"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 7
3: getstatic com.sun.crypto.provider.DHKeyAgreement$AllowKDF.VALUE:Z
ifne 7
4: new java.security.NoSuchAlgorithmException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported secret key algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
5: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.crypto.provider.DHKeyAgreement.engineGenerateSecret:()[B
astore 2
start local 2 8: aload 1
ldc "DES"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 10
9: new com.sun.crypto.provider.DESKey
dup
aload 2
invokespecial com.sun.crypto.provider.DESKey.<init>:([B)V
areturn
10: StackMap locals: byte[]
StackMap stack:
aload 1
ldc "DESede"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 12
11: aload 1
ldc "TripleDES"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 13
12: StackMap locals:
StackMap stack:
new com.sun.crypto.provider.DESedeKey
dup
aload 2
invokespecial com.sun.crypto.provider.DESedeKey.<init>:([B)V
areturn
13: StackMap locals:
StackMap stack:
aload 1
ldc "Blowfish"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 21
14: aload 2
arraylength
istore 3
start local 3 15: iload 3
bipush 56
if_icmplt 17
16: bipush 56
istore 3
17: StackMap locals: int
StackMap stack:
new javax.crypto.spec.SecretKeySpec
dup
aload 2
iconst_0
iload 3
18: ldc "Blowfish"
19: invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BIILjava/lang/String;)V
astore 4
start local 4 20: aload 4
areturn
end local 4 end local 3 21: StackMap locals:
StackMap stack:
aload 1
ldc "AES"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 34
22: aload 2
arraylength
istore 3
start local 3 23: aconst_null
astore 4
start local 4 24: getstatic com.sun.crypto.provider.AESConstants.AES_KEYSIZES:[I
arraylength
iconst_1
isub
istore 5
start local 5 25: goto 30
26: StackMap locals: int javax.crypto.spec.SecretKeySpec int
StackMap stack:
iload 3
getstatic com.sun.crypto.provider.AESConstants.AES_KEYSIZES:[I
iload 5
iaload
if_icmplt 29
27: getstatic com.sun.crypto.provider.AESConstants.AES_KEYSIZES:[I
iload 5
iaload
istore 3
28: new javax.crypto.spec.SecretKeySpec
dup
aload 2
iconst_0
iload 3
ldc "AES"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BIILjava/lang/String;)V
astore 4
29: StackMap locals:
StackMap stack:
iinc 5 -1
30: StackMap locals:
StackMap stack:
aload 4
ifnonnull 31
iload 5
ifge 26
31: StackMap locals:
StackMap stack:
aload 4
ifnonnull 33
32: new java.security.InvalidKeyException
dup
ldc "Key material is too short"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
33: StackMap locals:
StackMap stack:
aload 4
areturn
end local 5 end local 4 end local 3 34: StackMap locals:
StackMap stack:
aload 1
ldc "TlsPremasterSecret"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 36
35: new javax.crypto.spec.SecretKeySpec
dup
aload 2
ldc "TlsPremasterSecret"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
areturn
36: StackMap locals:
StackMap stack:
new java.security.NoSuchAlgorithmException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported secret key algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
37: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
38: invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lcom/sun/crypto/provider/DHKeyAgreement;
0 39 1 algorithm Ljava/lang/String;
8 39 2 secret [B
15 21 3 keysize I
20 21 4 skey Ljavax/crypto/spec/SecretKeySpec;
23 34 3 keysize I
24 34 4 skey Ljavax/crypto/spec/SecretKeySpec;
25 34 5 idx I
Exceptions:
throws java.lang.IllegalStateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
MethodParameters:
Name Flags
algorithm
}
SourceFile: "DHKeyAgreement.java"
NestMembers:
com.sun.crypto.provider.DHKeyAgreement$AllowKDF com.sun.crypto.provider.DHKeyAgreement$AllowKDF$1
InnerClasses:
private AllowKDF = com.sun.crypto.provider.DHKeyAgreement$AllowKDF of com.sun.crypto.provider.DHKeyAgreement