public class org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH extends org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH
super_class: org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator
{
private int l;
descriptor: I
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH this
0: .line 41
aload 0 /* this */
invokespecial org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator.<init>:()V
1: .line 44
aload 0 /* this */
iconst_0
putfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH.l:I
2: .line 41
return
end local 0 // org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator$DH;
protected void engineInit(java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom);
descriptor: (Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=3
start local 0 // org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH this
start local 1 // java.security.spec.AlgorithmParameterSpec genParamSpec
start local 2 // java.security.SecureRandom random
0: .line 51
aload 1 /* genParamSpec */
instanceof javax.crypto.spec.DHGenParameterSpec
ifne 2
1: .line 53
new java.security.InvalidAlgorithmParameterException
dup
ldc "DH parameter generator requires a DHGenParameterSpec for initialisation"
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
2: .line 55
StackMap locals:
StackMap stack:
aload 1 /* genParamSpec */
checkcast javax.crypto.spec.DHGenParameterSpec
astore 3 /* spec */
start local 3 // javax.crypto.spec.DHGenParameterSpec spec
3: .line 57
aload 0 /* this */
aload 3 /* spec */
invokevirtual javax.crypto.spec.DHGenParameterSpec.getPrimeSize:()I
putfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH.strength:I
4: .line 58
aload 0 /* this */
aload 3 /* spec */
invokevirtual javax.crypto.spec.DHGenParameterSpec.getExponentSize:()I
putfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH.l:I
5: .line 59
aload 0 /* this */
aload 2 /* random */
putfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH.random:Ljava/security/SecureRandom;
6: .line 60
return
end local 3 // javax.crypto.spec.DHGenParameterSpec spec
end local 2 // java.security.SecureRandom random
end local 1 // java.security.spec.AlgorithmParameterSpec genParamSpec
end local 0 // org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator$DH;
0 7 1 genParamSpec Ljava/security/spec/AlgorithmParameterSpec;
0 7 2 random Ljava/security/SecureRandom;
3 7 3 spec Ljavax/crypto/spec/DHGenParameterSpec;
Exceptions:
throws java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
genParamSpec
random
protected java.security.AlgorithmParameters engineGenerateParameters();
descriptor: ()Ljava/security/AlgorithmParameters;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=5, args_size=1
start local 0 // org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH this
0: .line 64
new org.bouncycastle.crypto.generators.DHParametersGenerator
dup
invokespecial org.bouncycastle.crypto.generators.DHParametersGenerator.<init>:()V
astore 1 /* pGen */
start local 1 // org.bouncycastle.crypto.generators.DHParametersGenerator pGen
1: .line 66
aload 0 /* this */
getfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH.random:Ljava/security/SecureRandom;
ifnull 4
2: .line 68
aload 1 /* pGen */
aload 0 /* this */
getfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH.strength:I
bipush 20
aload 0 /* this */
getfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH.random:Ljava/security/SecureRandom;
invokevirtual org.bouncycastle.crypto.generators.DHParametersGenerator.init:(IILjava/security/SecureRandom;)V
3: .line 69
goto 5
4: .line 72
StackMap locals: org.bouncycastle.crypto.generators.DHParametersGenerator
StackMap stack:
aload 1 /* pGen */
aload 0 /* this */
getfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH.strength:I
bipush 20
new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
invokevirtual org.bouncycastle.crypto.generators.DHParametersGenerator.init:(IILjava/security/SecureRandom;)V
5: .line 75
StackMap locals:
StackMap stack:
aload 1 /* pGen */
invokevirtual org.bouncycastle.crypto.generators.DHParametersGenerator.generateParameters:()Lorg/bouncycastle/crypto/params/DHParameters;
astore 2 /* p */
start local 2 // org.bouncycastle.crypto.params.DHParameters p
6: .line 81
ldc "DH"
getstatic org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME:Ljava/lang/String;
invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/AlgorithmParameters;
astore 3 /* params */
start local 3 // java.security.AlgorithmParameters params
7: .line 82
aload 3 /* params */
new javax.crypto.spec.DHParameterSpec
dup
aload 2 /* p */
invokevirtual org.bouncycastle.crypto.params.DHParameters.getP:()Ljava/math/BigInteger;
aload 2 /* p */
invokevirtual org.bouncycastle.crypto.params.DHParameters.getG:()Ljava/math/BigInteger;
aload 0 /* this */
getfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH.l:I
invokespecial javax.crypto.spec.DHParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;I)V
invokevirtual java.security.AlgorithmParameters.init:(Ljava/security/spec/AlgorithmParameterSpec;)V
8: .line 83
goto 11
end local 3 // java.security.AlgorithmParameters params
9: .line 84
StackMap locals: org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH org.bouncycastle.crypto.generators.DHParametersGenerator org.bouncycastle.crypto.params.DHParameters
StackMap stack: java.lang.Exception
astore 4 /* e */
start local 4 // java.lang.Exception e
10: .line 86
new java.lang.RuntimeException
dup
aload 4 /* e */
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 4 // java.lang.Exception e
start local 3 // java.security.AlgorithmParameters params
11: .line 89
StackMap locals: java.security.AlgorithmParameters
StackMap stack:
aload 3 /* params */
areturn
end local 3 // java.security.AlgorithmParameters params
end local 2 // org.bouncycastle.crypto.params.DHParameters p
end local 1 // org.bouncycastle.crypto.generators.DHParametersGenerator pGen
end local 0 // org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator$DH;
1 12 1 pGen Lorg/bouncycastle/crypto/generators/DHParametersGenerator;
6 12 2 p Lorg/bouncycastle/crypto/params/DHParameters;
7 9 3 params Ljava/security/AlgorithmParameters;
11 12 3 params Ljava/security/AlgorithmParameters;
10 11 4 e Ljava/lang/Exception;
Exception table:
from to target type
6 8 9 Class java.lang.Exception
}
SourceFile: "JDKAlgorithmParameterGenerator.java"
NestHost: org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator
InnerClasses:
public DH = org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$DH of org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator