public class com.jcraft.jsch.jce.DH implements com.jcraft.jsch.DH
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.jcraft.jsch.jce.DH
super_class: java.lang.Object
{
java.math.BigInteger p;
descriptor: Ljava/math/BigInteger;
flags: (0x0000)
java.math.BigInteger g;
descriptor: Ljava/math/BigInteger;
flags: (0x0000)
java.math.BigInteger e;
descriptor: Ljava/math/BigInteger;
flags: (0x0000)
byte[] e_array;
descriptor: [B
flags: (0x0000)
java.math.BigInteger f;
descriptor: Ljava/math/BigInteger;
flags: (0x0000)
java.math.BigInteger K;
descriptor: Ljava/math/BigInteger;
flags: (0x0000)
byte[] K_array;
descriptor: [B
flags: (0x0000)
private java.security.KeyPairGenerator myKpairGen;
descriptor: Ljava/security/KeyPairGenerator;
flags: (0x0002) ACC_PRIVATE
private javax.crypto.KeyAgreement myKeyAgree;
descriptor: Ljavax/crypto/KeyAgreement;
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/jcraft/jsch/jce/DH;
public void init();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "DH"
invokestatic java.security.KeyPairGenerator.getInstance:(Ljava/lang/String;)Ljava/security/KeyPairGenerator;
putfield com.jcraft.jsch.jce.DH.myKpairGen:Ljava/security/KeyPairGenerator;
1: aload 0
ldc "DH"
invokestatic javax.crypto.KeyAgreement.getInstance:(Ljava/lang/String;)Ljavax/crypto/KeyAgreement;
putfield com.jcraft.jsch.jce.DH.myKeyAgree:Ljavax/crypto/KeyAgreement;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/jcraft/jsch/jce/DH;
Exceptions:
throws java.lang.Exception
public byte[] getE();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield com.jcraft.jsch.jce.DH.e:Ljava/math/BigInteger;
ifnonnull 7
1: new javax.crypto.spec.DHParameterSpec
dup
aload 0
getfield com.jcraft.jsch.jce.DH.p:Ljava/math/BigInteger;
aload 0
getfield com.jcraft.jsch.jce.DH.g:Ljava/math/BigInteger;
invokespecial javax.crypto.spec.DHParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
astore 1
start local 1 2: aload 0
getfield com.jcraft.jsch.jce.DH.myKpairGen:Ljava/security/KeyPairGenerator;
aload 1
invokevirtual java.security.KeyPairGenerator.initialize:(Ljava/security/spec/AlgorithmParameterSpec;)V
3: aload 0
getfield com.jcraft.jsch.jce.DH.myKpairGen:Ljava/security/KeyPairGenerator;
invokevirtual java.security.KeyPairGenerator.generateKeyPair:()Ljava/security/KeyPair;
astore 2
start local 2 4: aload 0
getfield com.jcraft.jsch.jce.DH.myKeyAgree:Ljavax/crypto/KeyAgreement;
aload 2
invokevirtual java.security.KeyPair.getPrivate:()Ljava/security/PrivateKey;
invokevirtual javax.crypto.KeyAgreement.init:(Ljava/security/Key;)V
5: aload 0
aload 2
invokevirtual java.security.KeyPair.getPublic:()Ljava/security/PublicKey;
checkcast javax.crypto.interfaces.DHPublicKey
invokeinterface javax.crypto.interfaces.DHPublicKey.getY:()Ljava/math/BigInteger;
putfield com.jcraft.jsch.jce.DH.e:Ljava/math/BigInteger;
6: aload 0
aload 0
getfield com.jcraft.jsch.jce.DH.e:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.toByteArray:()[B
putfield com.jcraft.jsch.jce.DH.e_array:[B
end local 2 end local 1 7: StackMap locals:
StackMap stack:
aload 0
getfield com.jcraft.jsch.jce.DH.e_array:[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/jcraft/jsch/jce/DH;
2 7 1 dhSkipParamSpec Ljavax/crypto/spec/DHParameterSpec;
4 7 2 myKpair Ljava/security/KeyPair;
Exceptions:
throws java.lang.Exception
public byte[] getK();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
getfield com.jcraft.jsch.jce.DH.K:Ljava/math/BigInteger;
ifnonnull 9
1: ldc "DH"
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
astore 1
start local 1 2: new javax.crypto.spec.DHPublicKeySpec
dup
aload 0
getfield com.jcraft.jsch.jce.DH.f:Ljava/math/BigInteger;
aload 0
getfield com.jcraft.jsch.jce.DH.p:Ljava/math/BigInteger;
aload 0
getfield com.jcraft.jsch.jce.DH.g:Ljava/math/BigInteger;
invokespecial javax.crypto.spec.DHPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
astore 2
start local 2 3: aload 1
aload 2
invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
astore 3
start local 3 4: aload 0
getfield com.jcraft.jsch.jce.DH.myKeyAgree:Ljavax/crypto/KeyAgreement;
aload 3
iconst_1
invokevirtual javax.crypto.KeyAgreement.doPhase:(Ljava/security/Key;Z)Ljava/security/Key;
pop
5: aload 0
getfield com.jcraft.jsch.jce.DH.myKeyAgree:Ljavax/crypto/KeyAgreement;
invokevirtual javax.crypto.KeyAgreement.generateSecret:()[B
astore 4
start local 4 6: aload 0
new java.math.BigInteger
dup
iconst_1
aload 4
invokespecial java.math.BigInteger.<init>:(I[B)V
putfield com.jcraft.jsch.jce.DH.K:Ljava/math/BigInteger;
7: aload 0
aload 0
getfield com.jcraft.jsch.jce.DH.K:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.toByteArray:()[B
putfield com.jcraft.jsch.jce.DH.K_array:[B
8: aload 0
aload 4
putfield com.jcraft.jsch.jce.DH.K_array:[B
end local 4 end local 3 end local 2 end local 1 9: StackMap locals:
StackMap stack:
aload 0
getfield com.jcraft.jsch.jce.DH.K_array:[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/jcraft/jsch/jce/DH;
2 9 1 myKeyFac Ljava/security/KeyFactory;
3 9 2 keySpec Ljavax/crypto/spec/DHPublicKeySpec;
4 9 3 yourPubKey Ljava/security/PublicKey;
6 9 4 mySharedSecret [B
Exceptions:
throws java.lang.Exception
public void setP(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new java.math.BigInteger
dup
iconst_1
aload 1
invokespecial java.math.BigInteger.<init>:(I[B)V
invokevirtual com.jcraft.jsch.jce.DH.setP:(Ljava/math/BigInteger;)V
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/jcraft/jsch/jce/DH;
0 1 1 p [B
MethodParameters:
Name Flags
p
public void setG(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new java.math.BigInteger
dup
iconst_1
aload 1
invokespecial java.math.BigInteger.<init>:(I[B)V
invokevirtual com.jcraft.jsch.jce.DH.setG:(Ljava/math/BigInteger;)V
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/jcraft/jsch/jce/DH;
0 1 1 g [B
MethodParameters:
Name Flags
g
public void setF(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new java.math.BigInteger
dup
iconst_1
aload 1
invokespecial java.math.BigInteger.<init>:(I[B)V
invokevirtual com.jcraft.jsch.jce.DH.setF:(Ljava/math/BigInteger;)V
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/jcraft/jsch/jce/DH;
0 1 1 f [B
MethodParameters:
Name Flags
f
void setP(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.jcraft.jsch.jce.DH.p:Ljava/math/BigInteger;
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/jcraft/jsch/jce/DH;
0 1 1 p Ljava/math/BigInteger;
MethodParameters:
Name Flags
p
void setG(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.jcraft.jsch.jce.DH.g:Ljava/math/BigInteger;
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/jcraft/jsch/jce/DH;
0 1 1 g Ljava/math/BigInteger;
MethodParameters:
Name Flags
g
void setF(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.jcraft.jsch.jce.DH.f:Ljava/math/BigInteger;
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/jcraft/jsch/jce/DH;
0 1 1 f Ljava/math/BigInteger;
MethodParameters:
Name Flags
f
public void checkRange();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/jcraft/jsch/jce/DH;
Exceptions:
throws java.lang.Exception
private void checkRange(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
astore 2
start local 2 1: aload 0
getfield com.jcraft.jsch.jce.DH.p:Ljava/math/BigInteger;
aload 2
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 3
start local 3 2: aload 2
aload 1
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
ifge 3
aload 1
aload 3
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
iflt 4
3: StackMap locals: java.math.BigInteger java.math.BigInteger
StackMap stack:
new com.jcraft.jsch.JSchException
dup
ldc "invalid DH value"
invokespecial com.jcraft.jsch.JSchException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/jcraft/jsch/jce/DH;
0 5 1 tmp Ljava/math/BigInteger;
1 5 2 one Ljava/math/BigInteger;
2 5 3 p_1 Ljava/math/BigInteger;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
tmp
}
SourceFile: "DH.java"