public class org.bouncycastle.math.ec.ECAlgorithms
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.math.ec.ECAlgorithms
super_class: java.lang.Object
{
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 Lorg/bouncycastle/math/ec/ECAlgorithms;
public static boolean isF2mCurve(org.bouncycastle.math.ec.ECCurve);
descriptor: (Lorg/bouncycastle/math/ec/ECCurve;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.math.ec.ECCurve.getField:()Lorg/bouncycastle/math/field/FiniteField;
invokestatic org.bouncycastle.math.ec.ECAlgorithms.isF2mField:(Lorg/bouncycastle/math/field/FiniteField;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 c Lorg/bouncycastle/math/ec/ECCurve;
MethodParameters:
Name Flags
c
public static boolean isF2mField(org.bouncycastle.math.field.FiniteField);
descriptor: (Lorg/bouncycastle/math/field/FiniteField;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface org.bouncycastle.math.field.FiniteField.getDimension:()I
iconst_1
if_icmple 3
aload 0
invokeinterface org.bouncycastle.math.field.FiniteField.getCharacteristic:()Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 3
1: aload 0
instanceof org.bouncycastle.math.field.PolynomialExtensionField
ifeq 3
2: iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 field Lorg/bouncycastle/math/field/FiniteField;
MethodParameters:
Name Flags
field
public static boolean isFpCurve(org.bouncycastle.math.ec.ECCurve);
descriptor: (Lorg/bouncycastle/math/ec/ECCurve;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.math.ec.ECCurve.getField:()Lorg/bouncycastle/math/field/FiniteField;
invokestatic org.bouncycastle.math.ec.ECAlgorithms.isFpField:(Lorg/bouncycastle/math/field/FiniteField;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 c Lorg/bouncycastle/math/ec/ECCurve;
MethodParameters:
Name Flags
c
public static boolean isFpField(org.bouncycastle.math.field.FiniteField);
descriptor: (Lorg/bouncycastle/math/field/FiniteField;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface org.bouncycastle.math.field.FiniteField.getDimension:()I
iconst_1
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 field Lorg/bouncycastle/math/field/FiniteField;
MethodParameters:
Name Flags
field
public static org.bouncycastle.math.ec.ECPoint sumOfMultiplies(org.bouncycastle.math.ec.ECPoint[], java.math.BigInteger[]);
descriptor: ([Lorg/bouncycastle/math/ec/ECPoint;[Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
ifnull 1
aload 1
ifnull 1
aload 0
arraylength
aload 1
arraylength
if_icmpne 1
aload 0
arraylength
iconst_1
if_icmpge 2
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "point and scalar arrays should be non-null, and of equal, non-zero, length"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
arraylength
istore 2
start local 2 3: iload 2
tableswitch { // 1 - 2
1: 4
2: 5
default: 6
}
4: StackMap locals: int
StackMap stack:
aload 0
iconst_0
aaload
aload 1
iconst_0
aaload
invokevirtual org.bouncycastle.math.ec.ECPoint.multiply:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
areturn
5: StackMap locals:
StackMap stack:
aload 0
iconst_0
aaload
aload 1
iconst_0
aaload
aload 0
iconst_1
aaload
aload 1
iconst_1
aaload
invokestatic org.bouncycastle.math.ec.ECAlgorithms.sumOfTwoMultiplies:(Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
areturn
6: StackMap locals:
StackMap stack:
aload 0
iconst_0
aaload
astore 3
start local 3 7: aload 3
invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
astore 4
start local 4 8: iload 2
anewarray org.bouncycastle.math.ec.ECPoint
astore 5
start local 5 9: aload 5
iconst_0
aload 3
aastore
10: iconst_1
istore 6
start local 6 11: goto 14
12: StackMap locals: org.bouncycastle.math.ec.ECPoint[] java.math.BigInteger[] int org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint[] int
StackMap stack:
aload 5
iload 6
aload 4
aload 0
iload 6
aaload
invokestatic org.bouncycastle.math.ec.ECAlgorithms.importPoint:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
aastore
13: iinc 6 1
StackMap locals:
StackMap stack:
14: iload 6
iload 2
if_icmplt 12
end local 6 15: aload 4
invokevirtual org.bouncycastle.math.ec.ECCurve.getEndomorphism:()Lorg/bouncycastle/math/ec/endo/ECEndomorphism;
astore 6
start local 6 16: aload 6
instanceof org.bouncycastle.math.ec.endo.GLVEndomorphism
ifeq 18
17: aload 5
aload 1
aload 6
checkcast org.bouncycastle.math.ec.endo.GLVEndomorphism
invokestatic org.bouncycastle.math.ec.ECAlgorithms.implSumOfMultipliesGLV:([Lorg/bouncycastle/math/ec/ECPoint;[Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/endo/GLVEndomorphism;)Lorg/bouncycastle/math/ec/ECPoint;
invokestatic org.bouncycastle.math.ec.ECAlgorithms.implCheckResult:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
areturn
18: StackMap locals: org.bouncycastle.math.ec.ECPoint[] java.math.BigInteger[] int org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.endo.ECEndomorphism
StackMap stack:
aload 5
aload 1
invokestatic org.bouncycastle.math.ec.ECAlgorithms.implSumOfMultiplies:([Lorg/bouncycastle/math/ec/ECPoint;[Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
invokestatic org.bouncycastle.math.ec.ECAlgorithms.implCheckResult:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
areturn
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 19 0 ps [Lorg/bouncycastle/math/ec/ECPoint;
0 19 1 ks [Ljava/math/BigInteger;
3 19 2 count I
7 19 3 p Lorg/bouncycastle/math/ec/ECPoint;
8 19 4 c Lorg/bouncycastle/math/ec/ECCurve;
9 19 5 imported [Lorg/bouncycastle/math/ec/ECPoint;
11 15 6 i I
16 19 6 endomorphism Lorg/bouncycastle/math/ec/endo/ECEndomorphism;
MethodParameters:
Name Flags
ps
ks
public static org.bouncycastle.math.ec.ECPoint sumOfTwoMultiplies(org.bouncycastle.math.ec.ECPoint, java.math.BigInteger, org.bouncycastle.math.ec.ECPoint, java.math.BigInteger);
descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
astore 4
start local 4 1: aload 4
aload 2
invokestatic org.bouncycastle.math.ec.ECAlgorithms.importPoint:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
astore 2
2: aload 4
instanceof org.bouncycastle.math.ec.ECCurve$AbstractF2m
ifeq 6
3: aload 4
checkcast org.bouncycastle.math.ec.ECCurve$AbstractF2m
astore 5
start local 5 4: aload 5
invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.isKoblitz:()Z
ifeq 6
5: aload 0
aload 1
invokevirtual org.bouncycastle.math.ec.ECPoint.multiply:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
aload 2
aload 3
invokevirtual org.bouncycastle.math.ec.ECPoint.multiply:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
invokevirtual org.bouncycastle.math.ec.ECPoint.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
invokestatic org.bouncycastle.math.ec.ECAlgorithms.implCheckResult:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
areturn
end local 5 6: StackMap locals: org.bouncycastle.math.ec.ECCurve
StackMap stack:
aload 4
invokevirtual org.bouncycastle.math.ec.ECCurve.getEndomorphism:()Lorg/bouncycastle/math/ec/endo/ECEndomorphism;
astore 5
start local 5 7: aload 5
instanceof org.bouncycastle.math.ec.endo.GLVEndomorphism
ifeq 10
8: iconst_2
anewarray org.bouncycastle.math.ec.ECPoint
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 2
aastore
iconst_2
anewarray java.math.BigInteger
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 3
aastore
aload 5
checkcast org.bouncycastle.math.ec.endo.GLVEndomorphism
invokestatic org.bouncycastle.math.ec.ECAlgorithms.implSumOfMultipliesGLV:([Lorg/bouncycastle/math/ec/ECPoint;[Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/endo/GLVEndomorphism;)Lorg/bouncycastle/math/ec/ECPoint;
9: invokestatic org.bouncycastle.math.ec.ECAlgorithms.implCheckResult:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
areturn
10: StackMap locals: org.bouncycastle.math.ec.endo.ECEndomorphism
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokestatic org.bouncycastle.math.ec.ECAlgorithms.implShamirsTrickWNaf:(Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
invokestatic org.bouncycastle.math.ec.ECAlgorithms.implCheckResult:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
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 11 0 P Lorg/bouncycastle/math/ec/ECPoint;
0 11 1 a Ljava/math/BigInteger;
0 11 2 Q Lorg/bouncycastle/math/ec/ECPoint;
0 11 3 b Ljava/math/BigInteger;
1 11 4 cp Lorg/bouncycastle/math/ec/ECCurve;
4 6 5 f2mCurve Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;
7 11 5 endomorphism Lorg/bouncycastle/math/ec/endo/ECEndomorphism;
MethodParameters:
Name Flags
P
a
Q
b
public static org.bouncycastle.math.ec.ECPoint shamirsTrick(org.bouncycastle.math.ec.ECPoint, java.math.BigInteger, org.bouncycastle.math.ec.ECPoint, java.math.BigInteger);
descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
astore 4
start local 4 1: aload 4
aload 2
invokestatic org.bouncycastle.math.ec.ECAlgorithms.importPoint:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
astore 2
2: aload 0
aload 1
aload 2
aload 3
invokestatic org.bouncycastle.math.ec.ECAlgorithms.implShamirsTrickJsf:(Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
invokestatic org.bouncycastle.math.ec.ECAlgorithms.implCheckResult:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 P Lorg/bouncycastle/math/ec/ECPoint;
0 3 1 k Ljava/math/BigInteger;
0 3 2 Q Lorg/bouncycastle/math/ec/ECPoint;
0 3 3 l Ljava/math/BigInteger;
1 3 4 cp Lorg/bouncycastle/math/ec/ECCurve;
MethodParameters:
Name Flags
P
k
Q
l
public static org.bouncycastle.math.ec.ECPoint importPoint(org.bouncycastle.math.ec.ECCurve, org.bouncycastle.math.ec.ECPoint);
descriptor: (Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
astore 2
start local 2 1: aload 0
aload 2
invokevirtual org.bouncycastle.math.ec.ECCurve.equals:(Lorg/bouncycastle/math/ec/ECCurve;)Z
ifne 3
2: new java.lang.IllegalArgumentException
dup
ldc "Point must be on the same curve"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: org.bouncycastle.math.ec.ECCurve
StackMap stack:
aload 0
aload 1
invokevirtual org.bouncycastle.math.ec.ECCurve.importPoint:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 c Lorg/bouncycastle/math/ec/ECCurve;
0 4 1 p Lorg/bouncycastle/math/ec/ECPoint;
1 4 2 cp Lorg/bouncycastle/math/ec/ECCurve;
MethodParameters:
Name Flags
c
p
public static void montgomeryTrick(org.bouncycastle.math.ec.ECFieldElement[], int, int);
descriptor: ([Lorg/bouncycastle/math/ec/ECFieldElement;II)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iload 2
aconst_null
invokestatic org.bouncycastle.math.ec.ECAlgorithms.montgomeryTrick:([Lorg/bouncycastle/math/ec/ECFieldElement;IILorg/bouncycastle/math/ec/ECFieldElement;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 zs [Lorg/bouncycastle/math/ec/ECFieldElement;
0 2 1 off I
0 2 2 len I
MethodParameters:
Name Flags
zs
off
len
public static void montgomeryTrick(org.bouncycastle.math.ec.ECFieldElement[], int, int, org.bouncycastle.math.ec.ECFieldElement);
descriptor: ([Lorg/bouncycastle/math/ec/ECFieldElement;IILorg/bouncycastle/math/ec/ECFieldElement;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
anewarray org.bouncycastle.math.ec.ECFieldElement
astore 4
start local 4 1: aload 4
iconst_0
aload 0
iload 1
aaload
aastore
2: iconst_0
istore 5
start local 5 3: goto 5
4: StackMap locals: org.bouncycastle.math.ec.ECFieldElement[] int
StackMap stack:
aload 4
iload 5
aload 4
iload 5
iconst_1
isub
aaload
aload 0
iload 1
iload 5
iadd
aaload
invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
aastore
5: StackMap locals:
StackMap stack:
iinc 5 1
iload 5
iload 2
if_icmplt 4
6: iinc 5 -1
7: aload 3
ifnull 9
8: aload 4
iload 5
aload 4
iload 5
aaload
aload 3
invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
aastore
9: StackMap locals:
StackMap stack:
aload 4
iload 5
aaload
invokevirtual org.bouncycastle.math.ec.ECFieldElement.invert:()Lorg/bouncycastle/math/ec/ECFieldElement;
astore 6
start local 6 10: goto 15
11: StackMap locals: org.bouncycastle.math.ec.ECFieldElement
StackMap stack:
iload 1
iload 5
iinc 5 -1
iadd
istore 7
start local 7 12: aload 0
iload 7
aaload
astore 8
start local 8 13: aload 0
iload 7
aload 4
iload 5
aaload
aload 6
invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
aastore
14: aload 6
aload 8
invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
astore 6
end local 8 end local 7 15: StackMap locals:
StackMap stack:
iload 5
ifgt 11
16: aload 0
iload 1
aload 6
aastore
17: 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 18 0 zs [Lorg/bouncycastle/math/ec/ECFieldElement;
0 18 1 off I
0 18 2 len I
0 18 3 scale Lorg/bouncycastle/math/ec/ECFieldElement;
1 18 4 c [Lorg/bouncycastle/math/ec/ECFieldElement;
3 18 5 i I
10 18 6 u Lorg/bouncycastle/math/ec/ECFieldElement;
12 15 7 j I
13 15 8 tmp Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
zs
off
len
scale
public static org.bouncycastle.math.ec.ECPoint referenceMultiply(org.bouncycastle.math.ec.ECPoint, java.math.BigInteger);
descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
astore 2
start local 2 1: aload 0
invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
astore 3
start local 3 2: aload 2
invokevirtual java.math.BigInteger.bitLength:()I
istore 4
start local 4 3: iload 4
ifle 13
4: aload 2
iconst_0
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 6
5: aload 0
astore 3
6: StackMap locals: java.math.BigInteger org.bouncycastle.math.ec.ECPoint int
StackMap stack:
iconst_1
istore 5
start local 5 7: goto 12
8: StackMap locals: int
StackMap stack:
aload 0
invokevirtual org.bouncycastle.math.ec.ECPoint.twice:()Lorg/bouncycastle/math/ec/ECPoint;
astore 0
9: aload 2
iload 5
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 11
10: aload 3
aload 0
invokevirtual org.bouncycastle.math.ec.ECPoint.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
astore 3
11: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
12: iload 5
iload 4
if_icmplt 8
end local 5 13: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.math.BigInteger.signum:()I
ifge 14
aload 3
invokevirtual org.bouncycastle.math.ec.ECPoint.negate:()Lorg/bouncycastle/math/ec/ECPoint;
goto 15
StackMap locals:
StackMap stack:
14: aload 3
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECPoint
15: areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 p Lorg/bouncycastle/math/ec/ECPoint;
0 16 1 k Ljava/math/BigInteger;
1 16 2 x Ljava/math/BigInteger;
2 16 3 q Lorg/bouncycastle/math/ec/ECPoint;
3 16 4 t I
7 13 5 i I
MethodParameters:
Name Flags
p
k
public static org.bouncycastle.math.ec.ECPoint validatePoint(org.bouncycastle.math.ec.ECPoint);
descriptor: (Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.math.ec.ECPoint.isValid:()Z
ifne 2
1: new java.lang.IllegalStateException
dup
ldc "Invalid point"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 p Lorg/bouncycastle/math/ec/ECPoint;
MethodParameters:
Name Flags
p
public static org.bouncycastle.math.ec.ECPoint cleanPoint(org.bouncycastle.math.ec.ECCurve, org.bouncycastle.math.ec.ECPoint);
descriptor: (Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
astore 2
start local 2 1: aload 0
aload 2
invokevirtual org.bouncycastle.math.ec.ECCurve.equals:(Lorg/bouncycastle/math/ec/ECCurve;)Z
ifne 3
2: new java.lang.IllegalArgumentException
dup
ldc "Point must be on the same curve"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: org.bouncycastle.math.ec.ECCurve
StackMap stack:
aload 0
aload 1
iconst_0
invokevirtual org.bouncycastle.math.ec.ECPoint.getEncoded:(Z)[B
invokevirtual org.bouncycastle.math.ec.ECCurve.decodePoint:([B)Lorg/bouncycastle/math/ec/ECPoint;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 c Lorg/bouncycastle/math/ec/ECCurve;
0 4 1 p Lorg/bouncycastle/math/ec/ECPoint;
1 4 2 cp Lorg/bouncycastle/math/ec/ECCurve;
MethodParameters:
Name Flags
c
p
static org.bouncycastle.math.ec.ECPoint implCheckResult(org.bouncycastle.math.ec.ECPoint);
descriptor: (Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.math.ec.ECPoint.isValidPartial:()Z
ifne 2
1: new java.lang.IllegalStateException
dup
ldc "Invalid result"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 p Lorg/bouncycastle/math/ec/ECPoint;
MethodParameters:
Name Flags
p
static org.bouncycastle.math.ec.ECPoint implShamirsTrickJsf(org.bouncycastle.math.ec.ECPoint, java.math.BigInteger, org.bouncycastle.math.ec.ECPoint, java.math.BigInteger);
descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=17, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
astore 4
start local 4 1: aload 4
invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
astore 5
start local 5 2: aload 0
aload 2
invokevirtual org.bouncycastle.math.ec.ECPoint.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
astore 6
start local 6 3: aload 0
aload 2
invokevirtual org.bouncycastle.math.ec.ECPoint.subtract:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
astore 7
start local 7 4: iconst_4
anewarray org.bouncycastle.math.ec.ECPoint
dup
iconst_0
aload 2
aastore
dup
iconst_1
aload 7
aastore
dup
iconst_2
aload 0
aastore
dup
iconst_3
aload 6
aastore
astore 8
start local 8 5: aload 4
aload 8
invokevirtual org.bouncycastle.math.ec.ECCurve.normalizeAll:([Lorg/bouncycastle/math/ec/ECPoint;)V
6: bipush 9
anewarray org.bouncycastle.math.ec.ECPoint
dup
iconst_0
7: aload 8
iconst_3
aaload
invokevirtual org.bouncycastle.math.ec.ECPoint.negate:()Lorg/bouncycastle/math/ec/ECPoint;
aastore
dup
iconst_1
aload 8
iconst_2
aaload
invokevirtual org.bouncycastle.math.ec.ECPoint.negate:()Lorg/bouncycastle/math/ec/ECPoint;
aastore
dup
iconst_2
aload 8
iconst_1
aaload
invokevirtual org.bouncycastle.math.ec.ECPoint.negate:()Lorg/bouncycastle/math/ec/ECPoint;
aastore
dup
iconst_3
8: aload 8
iconst_0
aaload
invokevirtual org.bouncycastle.math.ec.ECPoint.negate:()Lorg/bouncycastle/math/ec/ECPoint;
aastore
dup
iconst_4
aload 5
aastore
dup
iconst_5
aload 8
iconst_0
aaload
aastore
dup
bipush 6
9: aload 8
iconst_1
aaload
aastore
dup
bipush 7
aload 8
iconst_2
aaload
aastore
dup
bipush 8
aload 8
iconst_3
aaload
aastore
10: astore 9
start local 9 11: aload 1
aload 3
invokestatic org.bouncycastle.math.ec.WNafUtil.generateJSF:(Ljava/math/BigInteger;Ljava/math/BigInteger;)[B
astore 10
start local 10 12: aload 5
astore 11
start local 11 13: aload 10
arraylength
istore 12
start local 12 14: goto 20
15: StackMap locals: org.bouncycastle.math.ec.ECPoint java.math.BigInteger org.bouncycastle.math.ec.ECPoint java.math.BigInteger org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPoint[] byte[] org.bouncycastle.math.ec.ECPoint int
StackMap stack:
aload 10
iload 12
baload
istore 13
start local 13 16: iload 13
bipush 24
ishl
bipush 28
ishr
istore 14
start local 14 17: iload 13
bipush 28
ishl
bipush 28
ishr
istore 15
start local 15 18: iconst_4
iload 14
iconst_3
imul
iadd
iload 15
iadd
istore 16
start local 16 19: aload 11
aload 9
iload 16
aaload
invokevirtual org.bouncycastle.math.ec.ECPoint.twicePlus:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
astore 11
end local 16 end local 15 end local 14 end local 13 20: StackMap locals:
StackMap stack:
iinc 12 -1
iload 12
ifge 15
21: aload 11
areturn
end local 12 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 22 0 P Lorg/bouncycastle/math/ec/ECPoint;
0 22 1 k Ljava/math/BigInteger;
0 22 2 Q Lorg/bouncycastle/math/ec/ECPoint;
0 22 3 l Ljava/math/BigInteger;
1 22 4 curve Lorg/bouncycastle/math/ec/ECCurve;
2 22 5 infinity Lorg/bouncycastle/math/ec/ECPoint;
3 22 6 PaddQ Lorg/bouncycastle/math/ec/ECPoint;
4 22 7 PsubQ Lorg/bouncycastle/math/ec/ECPoint;
5 22 8 points [Lorg/bouncycastle/math/ec/ECPoint;
11 22 9 table [Lorg/bouncycastle/math/ec/ECPoint;
12 22 10 jsf [B
13 22 11 R Lorg/bouncycastle/math/ec/ECPoint;
14 22 12 i I
16 20 13 jsfi I
17 20 14 kDigit I
18 20 15 lDigit I
19 20 16 index I
MethodParameters:
Name Flags
P
k
Q
l
static org.bouncycastle.math.ec.ECPoint implShamirsTrickWNaf(org.bouncycastle.math.ec.ECPoint, java.math.BigInteger, org.bouncycastle.math.ec.ECPoint, java.math.BigInteger);
descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=16, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual java.math.BigInteger.signum:()I
ifge 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 4
start local 4 3: aload 3
invokevirtual java.math.BigInteger.signum:()I
ifge 4
iconst_1
goto 5
StackMap locals: int
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 5
start local 5 6: aload 1
invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
astore 1
7: aload 3
invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
astore 3
8: iconst_2
bipush 16
aload 1
invokevirtual java.math.BigInteger.bitLength:()I
invokestatic org.bouncycastle.math.ec.WNafUtil.getWindowSize:(I)I
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Math.max:(II)I
istore 6
start local 6 9: iconst_2
bipush 16
aload 3
invokevirtual java.math.BigInteger.bitLength:()I
invokestatic org.bouncycastle.math.ec.WNafUtil.getWindowSize:(I)I
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Math.max:(II)I
istore 7
start local 7 10: aload 0
iload 6
iconst_1
invokestatic org.bouncycastle.math.ec.WNafUtil.precompute:(Lorg/bouncycastle/math/ec/ECPoint;IZ)Lorg/bouncycastle/math/ec/WNafPreCompInfo;
astore 8
start local 8 11: aload 2
iload 7
iconst_1
invokestatic org.bouncycastle.math.ec.WNafUtil.precompute:(Lorg/bouncycastle/math/ec/ECPoint;IZ)Lorg/bouncycastle/math/ec/WNafPreCompInfo;
astore 9
start local 9 12: iload 4
ifeq 13
aload 8
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
goto 14
StackMap locals: org.bouncycastle.math.ec.ECPoint java.math.BigInteger org.bouncycastle.math.ec.ECPoint java.math.BigInteger int int int int org.bouncycastle.math.ec.WNafPreCompInfo org.bouncycastle.math.ec.WNafPreCompInfo
StackMap stack:
13: aload 8
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECPoint[]
14: astore 10
start local 10 15: iload 5
ifeq 16
aload 9
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
goto 17
StackMap locals: org.bouncycastle.math.ec.ECPoint[]
StackMap stack:
16: aload 9
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECPoint[]
17: astore 11
start local 11 18: iload 4
ifeq 19
aload 8
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
goto 20
StackMap locals: org.bouncycastle.math.ec.ECPoint[]
StackMap stack:
19: aload 8
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECPoint[]
20: astore 12
start local 12 21: iload 5
ifeq 22
aload 9
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
goto 23
StackMap locals: org.bouncycastle.math.ec.ECPoint[]
StackMap stack:
22: aload 9
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECPoint[]
23: astore 13
start local 13 24: iload 6
aload 1
invokestatic org.bouncycastle.math.ec.WNafUtil.generateWindowNaf:(ILjava/math/BigInteger;)[B
astore 14
start local 14 25: iload 7
aload 3
invokestatic org.bouncycastle.math.ec.WNafUtil.generateWindowNaf:(ILjava/math/BigInteger;)[B
astore 15
start local 15 26: aload 10
aload 12
aload 14
aload 11
aload 13
aload 15
invokestatic org.bouncycastle.math.ec.ECAlgorithms.implShamirsTrickWNaf:([Lorg/bouncycastle/math/ec/ECPoint;[Lorg/bouncycastle/math/ec/ECPoint;[B[Lorg/bouncycastle/math/ec/ECPoint;[Lorg/bouncycastle/math/ec/ECPoint;[B)Lorg/bouncycastle/math/ec/ECPoint;
areturn
end local 15 end local 14 end local 13 end local 12 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 27 0 P Lorg/bouncycastle/math/ec/ECPoint;
0 27 1 k Ljava/math/BigInteger;
0 27 2 Q Lorg/bouncycastle/math/ec/ECPoint;
0 27 3 l Ljava/math/BigInteger;
3 27 4 negK Z
6 27 5 negL Z
9 27 6 widthP I
10 27 7 widthQ I
11 27 8 infoP Lorg/bouncycastle/math/ec/WNafPreCompInfo;
12 27 9 infoQ Lorg/bouncycastle/math/ec/WNafPreCompInfo;
15 27 10 preCompP [Lorg/bouncycastle/math/ec/ECPoint;
18 27 11 preCompQ [Lorg/bouncycastle/math/ec/ECPoint;
21 27 12 preCompNegP [Lorg/bouncycastle/math/ec/ECPoint;
24 27 13 preCompNegQ [Lorg/bouncycastle/math/ec/ECPoint;
25 27 14 wnafP [B
26 27 15 wnafQ [B
MethodParameters:
Name Flags
P
k
Q
l
static org.bouncycastle.math.ec.ECPoint implShamirsTrickWNaf(org.bouncycastle.math.ec.ECPoint, java.math.BigInteger, org.bouncycastle.math.ec.ECPointMap, java.math.BigInteger);
descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/ECPointMap;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=16, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual java.math.BigInteger.signum:()I
ifge 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 4
start local 4 3: aload 3
invokevirtual java.math.BigInteger.signum:()I
ifge 4
iconst_1
goto 5
StackMap locals: int
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 5
start local 5 6: aload 1
invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
astore 1
7: aload 3
invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
astore 3
8: iconst_2
bipush 16
aload 1
invokevirtual java.math.BigInteger.bitLength:()I
aload 3
invokevirtual java.math.BigInteger.bitLength:()I
invokestatic java.lang.Math.max:(II)I
invokestatic org.bouncycastle.math.ec.WNafUtil.getWindowSize:(I)I
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Math.max:(II)I
istore 6
start local 6 9: aload 0
iload 6
iconst_1
aload 2
invokestatic org.bouncycastle.math.ec.WNafUtil.mapPointWithPrecomp:(Lorg/bouncycastle/math/ec/ECPoint;IZLorg/bouncycastle/math/ec/ECPointMap;)Lorg/bouncycastle/math/ec/ECPoint;
astore 7
start local 7 10: aload 0
invokestatic org.bouncycastle.math.ec.WNafUtil.getWNafPreCompInfo:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/WNafPreCompInfo;
astore 8
start local 8 11: aload 7
invokestatic org.bouncycastle.math.ec.WNafUtil.getWNafPreCompInfo:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/WNafPreCompInfo;
astore 9
start local 9 12: iload 4
ifeq 13
aload 8
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
goto 14
StackMap locals: org.bouncycastle.math.ec.ECPoint java.math.BigInteger org.bouncycastle.math.ec.ECPointMap java.math.BigInteger int int int org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.WNafPreCompInfo org.bouncycastle.math.ec.WNafPreCompInfo
StackMap stack:
13: aload 8
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECPoint[]
14: astore 10
start local 10 15: iload 5
ifeq 16
aload 9
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
goto 17
StackMap locals: org.bouncycastle.math.ec.ECPoint[]
StackMap stack:
16: aload 9
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECPoint[]
17: astore 11
start local 11 18: iload 4
ifeq 19
aload 8
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
goto 20
StackMap locals: org.bouncycastle.math.ec.ECPoint[]
StackMap stack:
19: aload 8
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECPoint[]
20: astore 12
start local 12 21: iload 5
ifeq 22
aload 9
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
goto 23
StackMap locals: org.bouncycastle.math.ec.ECPoint[]
StackMap stack:
22: aload 9
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECPoint[]
23: astore 13
start local 13 24: iload 6
aload 1
invokestatic org.bouncycastle.math.ec.WNafUtil.generateWindowNaf:(ILjava/math/BigInteger;)[B
astore 14
start local 14 25: iload 6
aload 3
invokestatic org.bouncycastle.math.ec.WNafUtil.generateWindowNaf:(ILjava/math/BigInteger;)[B
astore 15
start local 15 26: aload 10
aload 12
aload 14
aload 11
aload 13
aload 15
invokestatic org.bouncycastle.math.ec.ECAlgorithms.implShamirsTrickWNaf:([Lorg/bouncycastle/math/ec/ECPoint;[Lorg/bouncycastle/math/ec/ECPoint;[B[Lorg/bouncycastle/math/ec/ECPoint;[Lorg/bouncycastle/math/ec/ECPoint;[B)Lorg/bouncycastle/math/ec/ECPoint;
areturn
end local 15 end local 14 end local 13 end local 12 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 27 0 P Lorg/bouncycastle/math/ec/ECPoint;
0 27 1 k Ljava/math/BigInteger;
0 27 2 pointMapQ Lorg/bouncycastle/math/ec/ECPointMap;
0 27 3 l Ljava/math/BigInteger;
3 27 4 negK Z
6 27 5 negL Z
9 27 6 width I
10 27 7 Q Lorg/bouncycastle/math/ec/ECPoint;
11 27 8 infoP Lorg/bouncycastle/math/ec/WNafPreCompInfo;
12 27 9 infoQ Lorg/bouncycastle/math/ec/WNafPreCompInfo;
15 27 10 preCompP [Lorg/bouncycastle/math/ec/ECPoint;
18 27 11 preCompQ [Lorg/bouncycastle/math/ec/ECPoint;
21 27 12 preCompNegP [Lorg/bouncycastle/math/ec/ECPoint;
24 27 13 preCompNegQ [Lorg/bouncycastle/math/ec/ECPoint;
25 27 14 wnafP [B
26 27 15 wnafQ [B
MethodParameters:
Name Flags
P
k
pointMapQ
l
private static org.bouncycastle.math.ec.ECPoint implShamirsTrickWNaf(org.bouncycastle.math.ec.ECPoint[], org.bouncycastle.math.ec.ECPoint[], byte[], org.bouncycastle.math.ec.ECPoint[], org.bouncycastle.math.ec.ECPoint[], byte[]);
descriptor: ([Lorg/bouncycastle/math/ec/ECPoint;[Lorg/bouncycastle/math/ec/ECPoint;[B[Lorg/bouncycastle/math/ec/ECPoint;[Lorg/bouncycastle/math/ec/ECPoint;[B)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=17, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 2
arraylength
aload 5
arraylength
invokestatic java.lang.Math.max:(II)I
istore 6
start local 6 1: aload 0
iconst_0
aaload
invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
astore 7
start local 7 2: aload 7
invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
astore 8
start local 8 3: aload 8
astore 9
start local 9 4: iconst_0
istore 10
start local 10 5: iload 6
iconst_1
isub
istore 11
start local 11 6: goto 34
7: StackMap locals: org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPoint[] byte[] org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPoint[] byte[] int org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECPoint int int
StackMap stack:
iload 11
aload 2
arraylength
if_icmpge 8
aload 2
iload 11
baload
goto 9
StackMap locals:
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: istore 12
start local 12 10: iload 11
aload 5
arraylength
if_icmpge 11
aload 5
iload 11
baload
goto 12
StackMap locals: int
StackMap stack:
11: iconst_0
StackMap locals:
StackMap stack: int
12: istore 13
start local 13 13: iload 12
iload 13
ior
ifne 16
14: iinc 10 1
15: goto 33
16: StackMap locals: int
StackMap stack:
aload 8
astore 14
start local 14 17: iload 12
ifeq 23
18: iload 12
invokestatic java.lang.Math.abs:(I)I
istore 15
start local 15 19: iload 12
ifge 20
aload 1
goto 21
StackMap locals: org.bouncycastle.math.ec.ECPoint int
StackMap stack:
20: aload 0
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECPoint[]
21: astore 16
start local 16 22: aload 14
aload 16
iload 15
iconst_1
iushr
aaload
invokevirtual org.bouncycastle.math.ec.ECPoint.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
astore 14
end local 16 end local 15 23: StackMap locals:
StackMap stack:
iload 13
ifeq 29
24: iload 13
invokestatic java.lang.Math.abs:(I)I
istore 15
start local 15 25: iload 13
ifge 26
aload 4
goto 27
StackMap locals: int
StackMap stack:
26: aload 3
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECPoint[]
27: astore 16
start local 16 28: aload 14
aload 16
iload 15
iconst_1
iushr
aaload
invokevirtual org.bouncycastle.math.ec.ECPoint.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
astore 14
end local 16 end local 15 29: StackMap locals:
StackMap stack:
iload 10
ifle 32
30: aload 9
iload 10
invokevirtual org.bouncycastle.math.ec.ECPoint.timesPow2:(I)Lorg/bouncycastle/math/ec/ECPoint;
astore 9
31: iconst_0
istore 10
32: StackMap locals:
StackMap stack:
aload 9
aload 14
invokevirtual org.bouncycastle.math.ec.ECPoint.twicePlus:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
astore 9
end local 14 end local 13 end local 12 33: StackMap locals:
StackMap stack:
iinc 11 -1
StackMap locals:
StackMap stack:
34: iload 11
ifge 7
end local 11 35: iload 10
ifle 37
36: aload 9
iload 10
invokevirtual org.bouncycastle.math.ec.ECPoint.timesPow2:(I)Lorg/bouncycastle/math/ec/ECPoint;
astore 9
37: StackMap locals:
StackMap stack:
aload 9
areturn
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 38 0 preCompP [Lorg/bouncycastle/math/ec/ECPoint;
0 38 1 preCompNegP [Lorg/bouncycastle/math/ec/ECPoint;
0 38 2 wnafP [B
0 38 3 preCompQ [Lorg/bouncycastle/math/ec/ECPoint;
0 38 4 preCompNegQ [Lorg/bouncycastle/math/ec/ECPoint;
0 38 5 wnafQ [B
1 38 6 len I
2 38 7 curve Lorg/bouncycastle/math/ec/ECCurve;
3 38 8 infinity Lorg/bouncycastle/math/ec/ECPoint;
4 38 9 R Lorg/bouncycastle/math/ec/ECPoint;
5 38 10 zeroes I
6 35 11 i I
10 33 12 wiP I
13 33 13 wiQ I
17 33 14 r Lorg/bouncycastle/math/ec/ECPoint;
19 23 15 nP I
22 23 16 tableP [Lorg/bouncycastle/math/ec/ECPoint;
25 29 15 nQ I
28 29 16 tableQ [Lorg/bouncycastle/math/ec/ECPoint;
MethodParameters:
Name Flags
preCompP
preCompNegP
wnafP
preCompQ
preCompNegQ
wnafQ
static org.bouncycastle.math.ec.ECPoint implSumOfMultiplies(org.bouncycastle.math.ec.ECPoint[], java.math.BigInteger[]);
descriptor: ([Lorg/bouncycastle/math/ec/ECPoint;[Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 0
arraylength
istore 2
start local 2 1: iload 2
newarray 4
astore 3
start local 3 2: iload 2
anewarray org.bouncycastle.math.ec.WNafPreCompInfo
astore 4
start local 4 3: iload 2
anewarray byte[]
astore 5
start local 5 4: iconst_0
istore 6
start local 6 5: goto 14
6: StackMap locals: org.bouncycastle.math.ec.ECPoint[] java.math.BigInteger[] int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int
StackMap stack:
aload 1
iload 6
aaload
astore 7
start local 7 7: aload 3
iload 6
aload 7
invokevirtual java.math.BigInteger.signum:()I
ifge 8
iconst_1
goto 9
StackMap locals: org.bouncycastle.math.ec.ECPoint[] java.math.BigInteger[] int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int java.math.BigInteger
StackMap stack: boolean[] int
8: iconst_0
StackMap locals: org.bouncycastle.math.ec.ECPoint[] java.math.BigInteger[] int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int java.math.BigInteger
StackMap stack: boolean[] int int
9: bastore
aload 7
invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
astore 7
10: iconst_2
bipush 16
aload 7
invokevirtual java.math.BigInteger.bitLength:()I
invokestatic org.bouncycastle.math.ec.WNafUtil.getWindowSize:(I)I
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Math.max:(II)I
istore 8
start local 8 11: aload 4
iload 6
aload 0
iload 6
aaload
iload 8
iconst_1
invokestatic org.bouncycastle.math.ec.WNafUtil.precompute:(Lorg/bouncycastle/math/ec/ECPoint;IZ)Lorg/bouncycastle/math/ec/WNafPreCompInfo;
aastore
12: aload 5
iload 6
iload 8
aload 7
invokestatic org.bouncycastle.math.ec.WNafUtil.generateWindowNaf:(ILjava/math/BigInteger;)[B
aastore
end local 8 end local 7 13: iinc 6 1
StackMap locals:
StackMap stack:
14: iload 6
iload 2
if_icmplt 6
end local 6 15: aload 3
aload 4
aload 5
invokestatic org.bouncycastle.math.ec.ECAlgorithms.implSumOfMultiplies:([Z[Lorg/bouncycastle/math/ec/WNafPreCompInfo;[[B)Lorg/bouncycastle/math/ec/ECPoint;
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 16 0 ps [Lorg/bouncycastle/math/ec/ECPoint;
0 16 1 ks [Ljava/math/BigInteger;
1 16 2 count I
2 16 3 negs [Z
3 16 4 infos [Lorg/bouncycastle/math/ec/WNafPreCompInfo;
4 16 5 wnafs [[B
5 15 6 i I
7 13 7 ki Ljava/math/BigInteger;
11 13 8 width I
MethodParameters:
Name Flags
ps
ks
static org.bouncycastle.math.ec.ECPoint implSumOfMultipliesGLV(org.bouncycastle.math.ec.ECPoint[], java.math.BigInteger[], org.bouncycastle.math.ec.endo.GLVEndomorphism);
descriptor: ([Lorg/bouncycastle/math/ec/ECPoint;[Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/endo/GLVEndomorphism;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_0
aaload
invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
invokevirtual org.bouncycastle.math.ec.ECCurve.getOrder:()Ljava/math/BigInteger;
astore 3
start local 3 1: aload 0
arraylength
istore 4
start local 4 2: iload 4
iconst_1
ishl
anewarray java.math.BigInteger
astore 5
start local 5 3: iconst_0
istore 6
start local 6 4: iconst_0
istore 7
start local 7 5: goto 10
6: StackMap locals: org.bouncycastle.math.ec.ECPoint[] java.math.BigInteger[] org.bouncycastle.math.ec.endo.GLVEndomorphism java.math.BigInteger int java.math.BigInteger[] int int
StackMap stack:
aload 2
aload 1
iload 6
aaload
aload 3
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokeinterface org.bouncycastle.math.ec.endo.GLVEndomorphism.decomposeScalar:(Ljava/math/BigInteger;)[Ljava/math/BigInteger;
astore 8
start local 8 7: aload 5
iload 7
iinc 7 1
aload 8
iconst_0
aaload
aastore
8: aload 5
iload 7
iinc 7 1
aload 8
iconst_1
aaload
aastore
end local 8 9: iinc 6 1
StackMap locals:
StackMap stack:
10: iload 6
iload 4
if_icmplt 6
end local 7 end local 6 11: aload 2
invokeinterface org.bouncycastle.math.ec.endo.GLVEndomorphism.getPointMap:()Lorg/bouncycastle/math/ec/ECPointMap;
astore 6
start local 6 12: aload 2
invokeinterface org.bouncycastle.math.ec.endo.GLVEndomorphism.hasEfficientPointMap:()Z
ifeq 14
13: aload 0
aload 6
aload 5
invokestatic org.bouncycastle.math.ec.ECAlgorithms.implSumOfMultiplies:([Lorg/bouncycastle/math/ec/ECPoint;Lorg/bouncycastle/math/ec/ECPointMap;[Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
areturn
14: StackMap locals: org.bouncycastle.math.ec.ECPoint[] java.math.BigInteger[] org.bouncycastle.math.ec.endo.GLVEndomorphism java.math.BigInteger int java.math.BigInteger[] org.bouncycastle.math.ec.ECPointMap
StackMap stack:
iload 4
iconst_1
ishl
anewarray org.bouncycastle.math.ec.ECPoint
astore 7
start local 7 15: iconst_0
istore 8
start local 8 16: iconst_0
istore 9
start local 9 17: goto 23
18: StackMap locals: org.bouncycastle.math.ec.ECPoint[] int int
StackMap stack:
aload 0
iload 8
aaload
astore 10
start local 10 19: aload 6
aload 10
invokeinterface org.bouncycastle.math.ec.ECPointMap.map:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
astore 11
start local 11 20: aload 7
iload 9
iinc 9 1
aload 10
aastore
21: aload 7
iload 9
iinc 9 1
aload 11
aastore
end local 11 end local 10 22: iinc 8 1
StackMap locals:
StackMap stack:
23: iload 8
iload 4
if_icmplt 18
end local 9 end local 8 24: aload 7
aload 5
invokestatic org.bouncycastle.math.ec.ECAlgorithms.implSumOfMultiplies:([Lorg/bouncycastle/math/ec/ECPoint;[Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
areturn
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 25 0 ps [Lorg/bouncycastle/math/ec/ECPoint;
0 25 1 ks [Ljava/math/BigInteger;
0 25 2 glvEndomorphism Lorg/bouncycastle/math/ec/endo/GLVEndomorphism;
1 25 3 n Ljava/math/BigInteger;
2 25 4 len I
3 25 5 abs [Ljava/math/BigInteger;
4 11 6 i I
5 11 7 j I
7 9 8 ab [Ljava/math/BigInteger;
12 25 6 pointMap Lorg/bouncycastle/math/ec/ECPointMap;
15 25 7 pqs [Lorg/bouncycastle/math/ec/ECPoint;
16 24 8 i I
17 24 9 j I
19 22 10 p Lorg/bouncycastle/math/ec/ECPoint;
20 22 11 q Lorg/bouncycastle/math/ec/ECPoint;
MethodParameters:
Name Flags
ps
ks
glvEndomorphism
static org.bouncycastle.math.ec.ECPoint implSumOfMultiplies(org.bouncycastle.math.ec.ECPoint[], org.bouncycastle.math.ec.ECPointMap, java.math.BigInteger[]);
descriptor: ([Lorg/bouncycastle/math/ec/ECPoint;Lorg/bouncycastle/math/ec/ECPointMap;[Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=16, args_size=3
start local 0 start local 1 start local 2 0: aload 0
arraylength
istore 3
start local 3 1: iload 3
iconst_1
ishl
istore 4
start local 4 2: iload 4
newarray 4
astore 5
start local 5 3: iload 4
anewarray org.bouncycastle.math.ec.WNafPreCompInfo
astore 6
start local 6 4: iload 4
anewarray byte[]
astore 7
start local 7 5: iconst_0
istore 8
start local 8 6: goto 25
7: StackMap locals: org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPointMap java.math.BigInteger[] int int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int
StackMap stack:
iload 8
iconst_1
ishl
istore 9
start local 9 8: iload 9
iconst_1
iadd
istore 10
start local 10 9: aload 2
iload 9
aaload
astore 11
start local 11 10: aload 5
iload 9
aload 11
invokevirtual java.math.BigInteger.signum:()I
ifge 11
iconst_1
goto 12
StackMap locals: org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPointMap java.math.BigInteger[] int int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int int int java.math.BigInteger
StackMap stack: boolean[] int
11: iconst_0
StackMap locals: org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPointMap java.math.BigInteger[] int int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int int int java.math.BigInteger
StackMap stack: boolean[] int int
12: bastore
aload 11
invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
astore 11
13: aload 2
iload 10
aaload
astore 12
start local 12 14: aload 5
iload 10
aload 12
invokevirtual java.math.BigInteger.signum:()I
ifge 15
iconst_1
goto 16
StackMap locals: org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPointMap java.math.BigInteger[] int int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int int int java.math.BigInteger java.math.BigInteger
StackMap stack: boolean[] int
15: iconst_0
StackMap locals: org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPointMap java.math.BigInteger[] int int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int int int java.math.BigInteger java.math.BigInteger
StackMap stack: boolean[] int int
16: bastore
aload 12
invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
astore 12
17: iconst_2
bipush 16
aload 11
invokevirtual java.math.BigInteger.bitLength:()I
aload 12
invokevirtual java.math.BigInteger.bitLength:()I
invokestatic java.lang.Math.max:(II)I
invokestatic org.bouncycastle.math.ec.WNafUtil.getWindowSize:(I)I
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Math.max:(II)I
istore 13
start local 13 18: aload 0
iload 8
aaload
astore 14
start local 14 19: aload 14
iload 13
iconst_1
aload 1
invokestatic org.bouncycastle.math.ec.WNafUtil.mapPointWithPrecomp:(Lorg/bouncycastle/math/ec/ECPoint;IZLorg/bouncycastle/math/ec/ECPointMap;)Lorg/bouncycastle/math/ec/ECPoint;
astore 15
start local 15 20: aload 6
iload 9
aload 14
invokestatic org.bouncycastle.math.ec.WNafUtil.getWNafPreCompInfo:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/WNafPreCompInfo;
aastore
21: aload 6
iload 10
aload 15
invokestatic org.bouncycastle.math.ec.WNafUtil.getWNafPreCompInfo:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/WNafPreCompInfo;
aastore
22: aload 7
iload 9
iload 13
aload 11
invokestatic org.bouncycastle.math.ec.WNafUtil.generateWindowNaf:(ILjava/math/BigInteger;)[B
aastore
23: aload 7
iload 10
iload 13
aload 12
invokestatic org.bouncycastle.math.ec.WNafUtil.generateWindowNaf:(ILjava/math/BigInteger;)[B
aastore
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 24: iinc 8 1
StackMap locals: org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPointMap java.math.BigInteger[] int int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int
StackMap stack:
25: iload 8
iload 3
if_icmplt 7
end local 8 26: aload 5
aload 6
aload 7
invokestatic org.bouncycastle.math.ec.ECAlgorithms.implSumOfMultiplies:([Z[Lorg/bouncycastle/math/ec/WNafPreCompInfo;[[B)Lorg/bouncycastle/math/ec/ECPoint;
areturn
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 27 0 ps [Lorg/bouncycastle/math/ec/ECPoint;
0 27 1 pointMap Lorg/bouncycastle/math/ec/ECPointMap;
0 27 2 ks [Ljava/math/BigInteger;
1 27 3 halfCount I
2 27 4 fullCount I
3 27 5 negs [Z
4 27 6 infos [Lorg/bouncycastle/math/ec/WNafPreCompInfo;
5 27 7 wnafs [[B
6 26 8 i I
8 24 9 j0 I
9 24 10 j1 I
10 24 11 kj0 Ljava/math/BigInteger;
14 24 12 kj1 Ljava/math/BigInteger;
18 24 13 width I
19 24 14 P Lorg/bouncycastle/math/ec/ECPoint;
20 24 15 Q Lorg/bouncycastle/math/ec/ECPoint;
MethodParameters:
Name Flags
ps
pointMap
ks
private static org.bouncycastle.math.ec.ECPoint implSumOfMultiplies(boolean[], org.bouncycastle.math.ec.WNafPreCompInfo[], byte[][]);
descriptor: ([Z[Lorg/bouncycastle/math/ec/WNafPreCompInfo;[[B)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=17, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: aload 2
arraylength
istore 4
start local 4 2: iconst_0
istore 5
start local 5 3: goto 6
4: StackMap locals: int int int
StackMap stack:
iload 3
aload 2
iload 5
aaload
arraylength
invokestatic java.lang.Math.max:(II)I
istore 3
5: iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
iload 4
if_icmplt 4
end local 5 7: aload 1
iconst_0
aaload
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
iconst_0
aaload
invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
astore 5
start local 5 8: aload 5
invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
astore 6
start local 6 9: aload 6
astore 7
start local 7 10: iconst_0
istore 8
start local 8 11: iload 3
iconst_1
isub
istore 9
start local 9 12: goto 39
13: StackMap locals: boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int int org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECPoint int int
StackMap stack:
aload 6
astore 10
start local 10 14: iconst_0
istore 11
start local 11 15: goto 30
16: StackMap locals: org.bouncycastle.math.ec.ECPoint int
StackMap stack:
aload 2
iload 11
aaload
astore 12
start local 12 17: iload 9
aload 12
arraylength
if_icmpge 18
aload 12
iload 9
baload
goto 19
StackMap locals: byte[]
StackMap stack:
18: iconst_0
StackMap locals:
StackMap stack: int
19: istore 13
start local 13 20: iload 13
ifeq 29
21: iload 13
invokestatic java.lang.Math.abs:(I)I
istore 14
start local 14 22: aload 1
iload 11
aaload
astore 15
start local 15 23: iload 13
ifge 24
iconst_1
goto 25
StackMap locals: int int org.bouncycastle.math.ec.WNafPreCompInfo
StackMap stack:
24: iconst_0
StackMap locals:
StackMap stack: int
25: aload 0
iload 11
baload
if_icmpne 26
aload 15
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
goto 27
StackMap locals:
StackMap stack:
26: aload 15
invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECPoint[]
27: astore 16
start local 16 28: aload 10
aload 16
iload 14
iconst_1
iushr
aaload
invokevirtual org.bouncycastle.math.ec.ECPoint.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
astore 10
end local 16 end local 15 end local 14 end local 13 end local 12 29: StackMap locals: boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int int org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECPoint int int org.bouncycastle.math.ec.ECPoint int
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
30: iload 11
iload 4
if_icmplt 16
end local 11 31: aload 10
aload 6
if_acmpne 34
32: iinc 8 1
33: goto 38
34: StackMap locals:
StackMap stack:
iload 8
ifle 37
35: aload 7
iload 8
invokevirtual org.bouncycastle.math.ec.ECPoint.timesPow2:(I)Lorg/bouncycastle/math/ec/ECPoint;
astore 7
36: iconst_0
istore 8
37: StackMap locals:
StackMap stack:
aload 7
aload 10
invokevirtual org.bouncycastle.math.ec.ECPoint.twicePlus:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
astore 7
end local 10 38: StackMap locals:
StackMap stack:
iinc 9 -1
StackMap locals:
StackMap stack:
39: iload 9
ifge 13
end local 9 40: iload 8
ifle 42
41: aload 7
iload 8
invokevirtual org.bouncycastle.math.ec.ECPoint.timesPow2:(I)Lorg/bouncycastle/math/ec/ECPoint;
astore 7
42: StackMap locals:
StackMap stack:
aload 7
areturn
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 43 0 negs [Z
0 43 1 infos [Lorg/bouncycastle/math/ec/WNafPreCompInfo;
0 43 2 wnafs [[B
1 43 3 len I
2 43 4 count I
3 7 5 i I
8 43 5 curve Lorg/bouncycastle/math/ec/ECCurve;
9 43 6 infinity Lorg/bouncycastle/math/ec/ECPoint;
10 43 7 R Lorg/bouncycastle/math/ec/ECPoint;
11 43 8 zeroes I
12 40 9 i I
14 38 10 r Lorg/bouncycastle/math/ec/ECPoint;
15 31 11 j I
17 29 12 wnaf [B
20 29 13 wi I
22 29 14 n I
23 29 15 info Lorg/bouncycastle/math/ec/WNafPreCompInfo;
28 29 16 table [Lorg/bouncycastle/math/ec/ECPoint;
MethodParameters:
Name Flags
negs
infos
wnafs
}
SourceFile: "ECAlgorithms.java"
InnerClasses:
public abstract AbstractF2m = org.bouncycastle.math.ec.ECCurve$AbstractF2m of org.bouncycastle.math.ec.ECCurve