public class sun.security.provider.DSAParameterGenerator extends java.security.AlgorithmParameterGeneratorSpi
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.security.provider.DSAParameterGenerator
super_class: java.security.AlgorithmParameterGeneratorSpi
{
private int valueL;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int valueN;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int seedLen;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.security.SecureRandom random;
descriptor: Ljava/security/SecureRandom;
flags: (0x0002) ACC_PRIVATE
private static final java.math.BigInteger TWO;
descriptor: Ljava/math/BigInteger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc 2
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
putstatic sun.security.provider.DSAParameterGenerator.TWO:Ljava/math/BigInteger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.security.AlgorithmParameterGeneratorSpi.<init>:()V
1: aload 0
iconst_m1
putfield sun.security.provider.DSAParameterGenerator.valueL:I
2: aload 0
iconst_m1
putfield sun.security.provider.DSAParameterGenerator.valueN:I
3: aload 0
iconst_m1
putfield sun.security.provider.DSAParameterGenerator.seedLen:I
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/provider/DSAParameterGenerator;
protected void engineInit(int, java.security.SecureRandom);
descriptor: (ILjava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
sipush 2048
if_icmpeq 7
iload 1
sipush 3072
if_icmpeq 7
1: iload 1
sipush 512
if_icmplt 2
iload 1
sipush 1024
if_icmpgt 2
iload 1
bipush 64
irem
ifeq 7
2: StackMap locals:
StackMap stack:
new java.security.InvalidParameterException
dup
3: new java.lang.StringBuilder
dup
ldc "Unexpected strength (size of prime): "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
4: ldc ". Prime size should be 512-1024, 2048, or 3072"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial java.security.InvalidParameterException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield sun.security.provider.DSAParameterGenerator.valueL:I
8: aload 0
iload 1
invokestatic sun.security.util.SecurityProviderConstants.getDefDSASubprimeSize:(I)I
putfield sun.security.provider.DSAParameterGenerator.valueN:I
9: aload 0
aload 0
getfield sun.security.provider.DSAParameterGenerator.valueN:I
putfield sun.security.provider.DSAParameterGenerator.seedLen:I
10: aload 0
aload 2
putfield sun.security.provider.DSAParameterGenerator.random:Ljava/security/SecureRandom;
11: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/provider/DSAParameterGenerator;
0 12 1 strength I
0 12 2 random Ljava/security/SecureRandom;
MethodParameters:
Name Flags
strength
random
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 start local 1 start local 2 0: aload 1
instanceof sun.security.spec.DSAGenParameterSpec
ifne 2
1: new java.security.InvalidAlgorithmParameterException
dup
ldc "Invalid parameter"
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
checkcast sun.security.spec.DSAGenParameterSpec
astore 3
start local 3 3: aload 0
aload 3
invokevirtual sun.security.spec.DSAGenParameterSpec.getPrimePLength:()I
putfield sun.security.provider.DSAParameterGenerator.valueL:I
4: aload 0
aload 3
invokevirtual sun.security.spec.DSAGenParameterSpec.getSubprimeQLength:()I
putfield sun.security.provider.DSAParameterGenerator.valueN:I
5: aload 0
aload 3
invokevirtual sun.security.spec.DSAGenParameterSpec.getSeedLength:()I
putfield sun.security.provider.DSAParameterGenerator.seedLen:I
6: aload 0
aload 2
putfield sun.security.provider.DSAParameterGenerator.random:Ljava/security/SecureRandom;
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/provider/DSAParameterGenerator;
0 8 1 genParamSpec Ljava/security/spec/AlgorithmParameterSpec;
0 8 2 random Ljava/security/SecureRandom;
3 8 3 dsaGenParams Lsun/security/spec/DSAGenParameterSpec;
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=5, locals=7, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
getfield sun.security.provider.DSAParameterGenerator.random:Ljava/security/SecureRandom;
ifnonnull 3
2: aload 0
new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
putfield sun.security.provider.DSAParameterGenerator.random:Ljava/security/SecureRandom;
3: StackMap locals: java.security.AlgorithmParameters
StackMap stack:
aload 0
getfield sun.security.provider.DSAParameterGenerator.valueL:I
iconst_m1
if_icmpne 5
4: aload 0
getstatic sun.security.util.SecurityProviderConstants.DEF_DSA_KEY_SIZE:I
aload 0
getfield sun.security.provider.DSAParameterGenerator.random:Ljava/security/SecureRandom;
invokevirtual sun.security.provider.DSAParameterGenerator.engineInit:(ILjava/security/SecureRandom;)V
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.DSAParameterGenerator.random:Ljava/security/SecureRandom;
aload 0
getfield sun.security.provider.DSAParameterGenerator.valueL:I
6: aload 0
getfield sun.security.provider.DSAParameterGenerator.valueN:I
aload 0
getfield sun.security.provider.DSAParameterGenerator.seedLen:I
7: invokestatic sun.security.provider.DSAParameterGenerator.generatePandQ:(Ljava/security/SecureRandom;III)[Ljava/math/BigInteger;
astore 2
start local 2 8: aload 2
iconst_0
aaload
astore 3
start local 3 9: aload 2
iconst_1
aaload
astore 4
start local 4 10: aload 3
aload 4
invokestatic sun.security.provider.DSAParameterGenerator.generateG:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 5
start local 5 11: new java.security.spec.DSAParameterSpec
dup
aload 3
aload 4
aload 5
invokespecial java.security.spec.DSAParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
12: astore 6
start local 6 13: ldc "DSA"
ldc "SUN"
invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/AlgorithmParameters;
astore 1
14: aload 1
aload 6
invokevirtual java.security.AlgorithmParameters.init:(Ljava/security/spec/AlgorithmParameterSpec;)V
end local 6 end local 5 end local 4 end local 3 end local 2 15: goto 22
StackMap locals:
StackMap stack: java.security.spec.InvalidParameterSpecException
16: astore 2
start local 2 17: new java.lang.RuntimeException
dup
aload 2
invokevirtual java.security.spec.InvalidParameterSpecException.getMessage:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 2 18: StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
astore 2
start local 2 19: new java.lang.RuntimeException
dup
aload 2
invokevirtual java.security.NoSuchAlgorithmException.getMessage:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 2 20: StackMap locals:
StackMap stack: java.security.NoSuchProviderException
astore 2
start local 2 21: new java.lang.RuntimeException
dup
aload 2
invokevirtual java.security.NoSuchProviderException.getMessage:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 2 22: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lsun/security/provider/DSAParameterGenerator;
1 23 1 algParams Ljava/security/AlgorithmParameters;
8 15 2 pAndQ [Ljava/math/BigInteger;
9 15 3 paramP Ljava/math/BigInteger;
10 15 4 paramQ Ljava/math/BigInteger;
11 15 5 paramG Ljava/math/BigInteger;
13 15 6 dsaParamSpec Ljava/security/spec/DSAParameterSpec;
17 18 2 e Ljava/security/spec/InvalidParameterSpecException;
19 20 2 e Ljava/security/NoSuchAlgorithmException;
21 22 2 e Ljava/security/NoSuchProviderException;
Exception table:
from to target type
1 15 16 Class java.security.spec.InvalidParameterSpecException
1 15 18 Class java.security.NoSuchAlgorithmException
1 15 20 Class java.security.NoSuchProviderException
private static java.math.BigInteger[] generatePandQ(java.security.SecureRandom, int, int, int);
descriptor: (Ljava/security/SecureRandom;III)[Ljava/math/BigInteger;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=23, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: iload 2
sipush 160
if_icmpne 4
2: ldc "SHA"
astore 4
3: goto 9
StackMap locals: java.lang.String
StackMap stack:
4: iload 2
sipush 224
if_icmpne 7
5: ldc "SHA-224"
astore 4
6: goto 9
StackMap locals:
StackMap stack:
7: iload 2
sipush 256
if_icmpne 9
8: ldc "SHA-256"
astore 4
9: StackMap locals:
StackMap stack:
aconst_null
astore 5
start local 5 10: aload 4
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 5
11: goto 14
StackMap locals: java.security.SecureRandom int int int java.lang.String java.security.MessageDigest
StackMap stack: java.security.NoSuchAlgorithmException
12: astore 6
start local 6 13: aload 6
invokevirtual java.security.NoSuchAlgorithmException.printStackTrace:()V
end local 6 14: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.security.MessageDigest.getDigestLength:()I
bipush 8
imul
istore 6
start local 6 15: iload 1
iconst_1
isub
iload 6
idiv
istore 7
start local 7 16: iload 1
iconst_1
isub
iload 6
irem
istore 8
start local 8 17: iload 3
bipush 8
idiv
newarray 8
astore 9
start local 9 18: getstatic sun.security.provider.DSAParameterGenerator.TWO:Ljava/math/BigInteger;
iload 3
invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
astore 10
start local 10 19: iconst_m1
istore 11
start local 11 20: iload 1
sipush 1024
if_icmpgt 23
21: bipush 80
istore 11
22: goto 28
StackMap locals: java.security.SecureRandom int int int java.lang.String java.security.MessageDigest int int int byte[] java.math.BigInteger int
StackMap stack:
23: iload 1
sipush 2048
if_icmpne 26
24: bipush 112
istore 11
25: goto 28
StackMap locals:
StackMap stack:
26: iload 1
sipush 3072
if_icmpne 28
27: sipush 128
istore 11
28: StackMap locals:
StackMap stack:
iload 11
ifge 30
29: new java.security.ProviderException
dup
new java.lang.StringBuilder
dup
ldc "Invalid valueL: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals:
StackMap stack:
aconst_null
astore 14
start local 14 31: StackMap locals: java.security.SecureRandom int int int java.lang.String java.security.MessageDigest int int int byte[] java.math.BigInteger int top top java.math.BigInteger
StackMap stack:
aload 0
aload 9
invokevirtual java.security.SecureRandom.nextBytes:([B)V
32: new java.math.BigInteger
dup
iconst_1
aload 9
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 14
33: new java.math.BigInteger
dup
iconst_1
aload 5
aload 9
invokevirtual java.security.MessageDigest.digest:([B)[B
invokespecial java.math.BigInteger.<init>:(I[B)V
34: getstatic sun.security.provider.DSAParameterGenerator.TWO:Ljava/math/BigInteger;
iload 2
iconst_1
isub
invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
35: astore 16
start local 16 36: getstatic sun.security.provider.DSAParameterGenerator.TWO:Ljava/math/BigInteger;
iload 2
iconst_1
isub
invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
37: aload 16
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
38: getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
39: aload 16
getstatic sun.security.provider.DSAParameterGenerator.TWO:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
40: astore 13
end local 16 start local 13 41: aload 13
iload 11
invokevirtual java.math.BigInteger.isProbablePrime:(I)Z
ifeq 31
42: getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
astore 16
start local 16 43: iconst_0
istore 15
start local 15 44: goto 75
45: StackMap locals: java.security.SecureRandom int int int java.lang.String java.security.MessageDigest int int int byte[] java.math.BigInteger int top java.math.BigInteger java.math.BigInteger int java.math.BigInteger
StackMap stack:
iload 7
iconst_1
iadd
anewarray java.math.BigInteger
astore 17
start local 17 46: iconst_0
istore 18
start local 18 47: goto 53
48: StackMap locals: java.math.BigInteger[] int
StackMap stack:
iload 18
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
astore 19
start local 19 49: aload 14
aload 16
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 19
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 10
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 20
start local 20 50: aload 5
aload 20
invokestatic sun.security.provider.DSAParameterGenerator.toByteArray:(Ljava/math/BigInteger;)[B
invokevirtual java.security.MessageDigest.digest:([B)[B
astore 21
start local 21 51: aload 17
iload 18
new java.math.BigInteger
dup
iconst_1
aload 21
invokespecial java.math.BigInteger.<init>:(I[B)V
aastore
end local 21 end local 20 end local 19 52: iinc 18 1
StackMap locals:
StackMap stack:
53: iload 18
iload 7
if_icmple 48
end local 18 54: aload 17
iconst_0
aaload
astore 18
start local 18 55: iconst_1
istore 19
start local 19 56: goto 59
57: StackMap locals: java.security.SecureRandom int int int java.lang.String java.security.MessageDigest int int int byte[] java.math.BigInteger int top java.math.BigInteger java.math.BigInteger int java.math.BigInteger java.math.BigInteger[] java.math.BigInteger int
StackMap stack:
aload 18
aload 17
iload 19
aaload
getstatic sun.security.provider.DSAParameterGenerator.TWO:Ljava/math/BigInteger;
iload 19
iload 6
imul
invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 18
58: iinc 19 1
StackMap locals:
StackMap stack:
59: iload 19
iload 7
if_icmplt 57
end local 19 60: aload 18
aload 17
iload 7
aaload
getstatic sun.security.provider.DSAParameterGenerator.TWO:Ljava/math/BigInteger;
iload 8
invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
61: getstatic sun.security.provider.DSAParameterGenerator.TWO:Ljava/math/BigInteger;
iload 7
iload 6
imul
invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
62: invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 18
63: getstatic sun.security.provider.DSAParameterGenerator.TWO:Ljava/math/BigInteger;
iload 1
iconst_1
isub
invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
astore 19
start local 19 64: aload 18
aload 19
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 20
start local 20 65: aload 20
aload 13
getstatic sun.security.provider.DSAParameterGenerator.TWO:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 21
start local 21 66: aload 20
aload 21
getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 12
start local 12 67: aload 12
aload 19
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
iconst_m1
if_icmple 73
68: aload 12
iload 11
invokevirtual java.math.BigInteger.isProbablePrime:(I)Z
ifeq 73
69: iconst_4
anewarray java.math.BigInteger
dup
iconst_0
aload 12
aastore
dup
iconst_1
aload 13
aastore
dup
iconst_2
aload 14
aastore
dup
iconst_3
70: iload 15
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
71: astore 22
start local 22 72: aload 22
areturn
end local 22 73: StackMap locals: java.security.SecureRandom int int int java.lang.String java.security.MessageDigest int int int byte[] java.math.BigInteger int java.math.BigInteger java.math.BigInteger java.math.BigInteger int java.math.BigInteger java.math.BigInteger[] java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger
StackMap stack:
aload 16
iload 7
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 16
end local 21 end local 20 end local 19 end local 18 end local 17 74: iinc 15 1
end local 12 StackMap locals: java.security.SecureRandom int int int java.lang.String java.security.MessageDigest int int int byte[] java.math.BigInteger int top java.math.BigInteger java.math.BigInteger int java.math.BigInteger
StackMap stack:
75: iload 15
iconst_4
iload 1
imul
if_icmplt 45
end local 16 end local 15 end local 13 76: goto 31
end local 14 end local 11 end local 10 end local 9 end local 8 end local 7 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 77 0 random Ljava/security/SecureRandom;
0 77 1 valueL I
0 77 2 valueN I
0 77 3 seedLen I
1 77 4 hashAlg Ljava/lang/String;
10 77 5 hashObj Ljava/security/MessageDigest;
13 14 6 nsae Ljava/security/NoSuchAlgorithmException;
15 77 6 outLen I
16 77 7 n I
17 77 8 b I
18 77 9 seedBytes [B
19 77 10 twoSl Ljava/math/BigInteger;
20 77 11 primeCertainty I
67 75 12 resultP Ljava/math/BigInteger;
41 76 13 resultQ Ljava/math/BigInteger;
31 77 14 seed Ljava/math/BigInteger;
44 76 15 counter I
36 41 16 U Ljava/math/BigInteger;
43 76 16 offset Ljava/math/BigInteger;
46 74 17 V [Ljava/math/BigInteger;
47 54 18 j I
49 52 19 J Ljava/math/BigInteger;
50 52 20 tmp Ljava/math/BigInteger;
51 52 21 vjBytes [B
55 74 18 W Ljava/math/BigInteger;
56 60 19 i I
64 74 19 twoLm1 Ljava/math/BigInteger;
65 74 20 X Ljava/math/BigInteger;
66 74 21 c Ljava/math/BigInteger;
72 73 22 result [Ljava/math/BigInteger;
Exception table:
from to target type
10 11 12 Class java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
random
valueL
valueN
seedLen
private static java.math.BigInteger generateG(java.math.BigInteger, java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, 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
getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 1
invokevirtual java.math.BigInteger.divide:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 3
start local 3 2: getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
astore 4
start local 4 3: goto 6
4: StackMap locals: java.math.BigInteger java.math.BigInteger java.math.BigInteger
StackMap stack:
aload 2
aload 3
aload 0
invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 4
5: aload 2
getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 2
6: StackMap locals:
StackMap stack:
aload 4
getstatic sun.security.provider.DSAParameterGenerator.TWO:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
iflt 4
7: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 p Ljava/math/BigInteger;
0 8 1 q Ljava/math/BigInteger;
1 8 2 h Ljava/math/BigInteger;
2 8 3 pMinusOneOverQ Ljava/math/BigInteger;
3 8 4 resultG Ljava/math/BigInteger;
MethodParameters:
Name Flags
p
q
private static byte[] toByteArray(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual java.math.BigInteger.toByteArray:()[B
astore 1
start local 1 1: aload 1
iconst_0
baload
ifne 5
2: aload 1
arraylength
iconst_1
isub
newarray 8
astore 2
start local 2 3: aload 1
iconst_1
aload 2
iconst_0
aload 2
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: aload 2
astore 1
end local 2 5: StackMap locals: byte[]
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 bigInt Ljava/math/BigInteger;
1 6 1 result [B
3 5 2 tmp [B
MethodParameters:
Name Flags
bigInt
}
SourceFile: "DSAParameterGenerator.java"