public class org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$ElGamal 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$ElGamal
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$ElGamal this
0: .line 190
aload 0 /* this */
invokespecial org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator.<init>:()V
1: .line 193
aload 0 /* this */
iconst_0
putfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$ElGamal.l:I
2: .line 190
return
end local 0 // org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$ElGamal this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator$ElGamal;
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$ElGamal this
start local 1 // java.security.spec.AlgorithmParameterSpec genParamSpec
start local 2 // java.security.SecureRandom random
0: .line 200
aload 1 /* genParamSpec */
instanceof javax.crypto.spec.DHGenParameterSpec
ifne 2
1: .line 202
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 204
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 206
aload 0 /* this */
aload 3 /* spec */
invokevirtual javax.crypto.spec.DHGenParameterSpec.getPrimeSize:()I
putfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$ElGamal.strength:I
4: .line 207
aload 0 /* this */
aload 3 /* spec */
invokevirtual javax.crypto.spec.DHGenParameterSpec.getExponentSize:()I
putfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$ElGamal.l:I
5: .line 208
aload 0 /* this */
aload 2 /* random */
putfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$ElGamal.random:Ljava/security/SecureRandom;
6: .line 209
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$ElGamal this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator$ElGamal;
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$ElGamal this
0: .line 213
new org.bouncycastle.crypto.generators.ElGamalParametersGenerator
dup
invokespecial org.bouncycastle.crypto.generators.ElGamalParametersGenerator.<init>:()V
astore 1 /* pGen */
start local 1 // org.bouncycastle.crypto.generators.ElGamalParametersGenerator pGen
1: .line 215
aload 0 /* this */
getfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$ElGamal.random:Ljava/security/SecureRandom;
ifnull 4
2: .line 217
aload 1 /* pGen */
aload 0 /* this */
getfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$ElGamal.strength:I
bipush 20
aload 0 /* this */
getfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$ElGamal.random:Ljava/security/SecureRandom;
invokevirtual org.bouncycastle.crypto.generators.ElGamalParametersGenerator.init:(IILjava/security/SecureRandom;)V
3: .line 218
goto 5
4: .line 221
StackMap locals: org.bouncycastle.crypto.generators.ElGamalParametersGenerator
StackMap stack:
aload 1 /* pGen */
aload 0 /* this */
getfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$ElGamal.strength:I
bipush 20
new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
invokevirtual org.bouncycastle.crypto.generators.ElGamalParametersGenerator.init:(IILjava/security/SecureRandom;)V
5: .line 224
StackMap locals:
StackMap stack:
aload 1 /* pGen */
invokevirtual org.bouncycastle.crypto.generators.ElGamalParametersGenerator.generateParameters:()Lorg/bouncycastle/crypto/params/ElGamalParameters;
astore 2 /* p */
start local 2 // org.bouncycastle.crypto.params.ElGamalParameters p
6: .line 230
ldc "ElGamal"
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 231
aload 3 /* params */
new javax.crypto.spec.DHParameterSpec
dup
aload 2 /* p */
invokevirtual org.bouncycastle.crypto.params.ElGamalParameters.getP:()Ljava/math/BigInteger;
aload 2 /* p */
invokevirtual org.bouncycastle.crypto.params.ElGamalParameters.getG:()Ljava/math/BigInteger;
aload 0 /* this */
getfield org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$ElGamal.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 232
goto 11
end local 3 // java.security.AlgorithmParameters params
9: .line 233
StackMap locals: org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$ElGamal org.bouncycastle.crypto.generators.ElGamalParametersGenerator org.bouncycastle.crypto.params.ElGamalParameters
StackMap stack: java.lang.Exception
astore 4 /* e */
start local 4 // java.lang.Exception e
10: .line 235
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 238
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.ElGamalParameters p
end local 1 // org.bouncycastle.crypto.generators.ElGamalParametersGenerator pGen
end local 0 // org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$ElGamal this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/bouncycastle/jce/provider/JDKAlgorithmParameterGenerator$ElGamal;
1 12 1 pGen Lorg/bouncycastle/crypto/generators/ElGamalParametersGenerator;
6 12 2 p Lorg/bouncycastle/crypto/params/ElGamalParameters;
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 ElGamal = org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator$ElGamal of org.bouncycastle.jce.provider.JDKAlgorithmParameterGenerator