public class org.bouncycastle.math.ec.ECFieldElement$Fp extends org.bouncycastle.math.ec.ECFieldElement$AbstractFp
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.math.ec.ECFieldElement$Fp
super_class: org.bouncycastle.math.ec.ECFieldElement$AbstractFp
{
java.math.BigInteger q;
descriptor: Ljava/math/BigInteger;
flags: (0x0000)
java.math.BigInteger r;
descriptor: Ljava/math/BigInteger;
flags: (0x0000)
java.math.BigInteger x;
descriptor: Ljava/math/BigInteger;
flags: (0x0000)
static java.math.BigInteger calculateResidue(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)Ljava/math/BigInteger;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual java.math.BigInteger.bitLength:()I
istore 1
start local 1 1: iload 1
bipush 96
if_icmplt 5
2: aload 0
iload 1
bipush 64
isub
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
astore 2
start local 2 3: aload 2
invokevirtual java.math.BigInteger.longValue:()J
ldc -1
lcmp
ifne 5
4: getstatic org.bouncycastle.math.ec.ECFieldElement$Fp.ONE:Ljava/math/BigInteger;
iload 1
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
aload 0
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
areturn
end local 2 5: StackMap locals: int
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 p Ljava/math/BigInteger;
1 6 1 bitLength I
3 5 2 firstWord Ljava/math/BigInteger;
MethodParameters:
Name Flags
p
public void <init>(java.math.BigInteger, java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 1
invokestatic org.bouncycastle.math.ec.ECFieldElement$Fp.calculateResidue:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 2
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 2 1 q Ljava/math/BigInteger;
0 2 2 x Ljava/math/BigInteger;
MethodParameters:
Name Flags
q
x
void <init>(java.math.BigInteger, java.math.BigInteger, java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial org.bouncycastle.math.ec.ECFieldElement$AbstractFp.<init>:()V
1: aload 3
ifnull 2
aload 3
invokevirtual java.math.BigInteger.signum:()I
iflt 2
aload 3
aload 1
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
iflt 3
2: StackMap locals: org.bouncycastle.math.ec.ECFieldElement$Fp java.math.BigInteger java.math.BigInteger java.math.BigInteger
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "x value invalid in Fp field element"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
4: aload 0
aload 2
putfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
5: aload 0
aload 3
putfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 7 1 q Ljava/math/BigInteger;
0 7 2 r Ljava/math/BigInteger;
0 7 3 x Ljava/math/BigInteger;
MethodParameters:
Name Flags
q
r
x
public java.math.BigInteger toBigInteger();
descriptor: ()Ljava/math/BigInteger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
public java.lang.String getFieldName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "Fp"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
public int getFieldSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
public java.math.BigInteger getQ();
descriptor: ()Ljava/math/BigInteger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
public org.bouncycastle.math.ec.ECFieldElement add(org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
aload 0
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modAdd:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 1 1 b Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
b
public org.bouncycastle.math.ec.ECFieldElement addOne();
descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 1
start local 1 1: aload 1
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
ifne 3
2: getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
astore 1
3: StackMap locals: java.math.BigInteger
StackMap stack:
new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
aload 1
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
1 4 1 x2 Ljava/math/BigInteger;
public org.bouncycastle.math.ec.ECFieldElement subtract(org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
aload 0
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modSubtract:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 1 1 b Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
b
public org.bouncycastle.math.ec.ECFieldElement multiply(org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
aload 0
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 1 1 b Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
b
public org.bouncycastle.math.ec.ECFieldElement multiplyMinusProduct(org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
astore 4
start local 4 1: aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
astore 5
start local 5 2: aload 2
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
astore 6
start local 6 3: aload 3
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
astore 7
start local 7 4: aload 4
aload 5
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 8
start local 8 5: aload 6
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 9
start local 9 6: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
aload 0
aload 8
aload 9
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
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 7 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 7 1 b Lorg/bouncycastle/math/ec/ECFieldElement;
0 7 2 x Lorg/bouncycastle/math/ec/ECFieldElement;
0 7 3 y Lorg/bouncycastle/math/ec/ECFieldElement;
1 7 4 ax Ljava/math/BigInteger;
2 7 5 bx Ljava/math/BigInteger;
3 7 6 xx Ljava/math/BigInteger;
4 7 7 yx Ljava/math/BigInteger;
5 7 8 ab Ljava/math/BigInteger;
6 7 9 xy Ljava/math/BigInteger;
MethodParameters:
Name Flags
b
x
y
public org.bouncycastle.math.ec.ECFieldElement multiplyPlusProduct(org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
astore 4
start local 4 1: aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
astore 5
start local 5 2: aload 2
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
astore 6
start local 6 3: aload 3
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
astore 7
start local 7 4: aload 4
aload 5
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 8
start local 8 5: aload 6
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 9
start local 9 6: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
aload 0
aload 8
aload 9
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
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 7 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 7 1 b Lorg/bouncycastle/math/ec/ECFieldElement;
0 7 2 x Lorg/bouncycastle/math/ec/ECFieldElement;
0 7 3 y Lorg/bouncycastle/math/ec/ECFieldElement;
1 7 4 ax Ljava/math/BigInteger;
2 7 5 bx Ljava/math/BigInteger;
3 7 6 xx Ljava/math/BigInteger;
4 7 7 yx Ljava/math/BigInteger;
5 7 8 ab Ljava/math/BigInteger;
6 7 9 xy Ljava/math/BigInteger;
MethodParameters:
Name Flags
b
x
y
public org.bouncycastle.math.ec.ECFieldElement divide(org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=2, args_size=2
start local 0 start local 1 0: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
aload 0
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 0
aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modInverse:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 1 1 b Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
b
public org.bouncycastle.math.ec.ECFieldElement negate();
descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.signum:()I
ifne 1
aload 0
goto 2
StackMap locals:
StackMap stack:
1: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECFieldElement$Fp
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
public org.bouncycastle.math.ec.ECFieldElement square();
descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=1, args_size=1
start local 0 0: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
aload 0
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
public org.bouncycastle.math.ec.ECFieldElement squareMinusProduct(org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
astore 3
start local 3 1: aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
astore 4
start local 4 2: aload 2
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
astore 5
start local 5 3: aload 3
aload 3
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 6
start local 6 4: aload 4
aload 5
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 7
start local 7 5: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
aload 0
aload 6
aload 7
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
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 6 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 6 1 x Lorg/bouncycastle/math/ec/ECFieldElement;
0 6 2 y Lorg/bouncycastle/math/ec/ECFieldElement;
1 6 3 ax Ljava/math/BigInteger;
2 6 4 xx Ljava/math/BigInteger;
3 6 5 yx Ljava/math/BigInteger;
4 6 6 aa Ljava/math/BigInteger;
5 6 7 xy Ljava/math/BigInteger;
MethodParameters:
Name Flags
x
y
public org.bouncycastle.math.ec.ECFieldElement squarePlusProduct(org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
astore 3
start local 3 1: aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
astore 4
start local 4 2: aload 2
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
astore 5
start local 5 3: aload 3
aload 3
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 6
start local 6 4: aload 4
aload 5
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 7
start local 7 5: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
aload 0
aload 6
aload 7
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
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 6 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 6 1 x Lorg/bouncycastle/math/ec/ECFieldElement;
0 6 2 y Lorg/bouncycastle/math/ec/ECFieldElement;
1 6 3 ax Ljava/math/BigInteger;
2 6 4 xx Ljava/math/BigInteger;
3 6 5 yx Ljava/math/BigInteger;
4 6 6 aa Ljava/math/BigInteger;
5 6 7 xy Ljava/math/BigInteger;
MethodParameters:
Name Flags
x
y
public org.bouncycastle.math.ec.ECFieldElement invert();
descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
aload 0
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modInverse:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
public org.bouncycastle.math.ec.ECFieldElement sqrt();
descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=11, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.isZero:()Z
ifne 1
aload 0
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.isOne:()Z
ifeq 2
1: StackMap locals:
StackMap stack:
aload 0
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
iconst_0
invokevirtual java.math.BigInteger.testBit:(I)Z
ifne 4
3: new java.lang.RuntimeException
dup
ldc "not done yet"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
iconst_1
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 7
5: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
iconst_2
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 1
start local 1 6: aload 0
new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 1
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.checkSqrt:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
areturn
end local 1 7: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
iconst_2
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 16
8: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
iconst_3
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 1
start local 1 9: aload 0
aload 1
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 2
start local 2 10: aload 0
aload 2
aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 3
start local 3 11: aload 3
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 13
12: aload 0
new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
aload 2
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.checkSqrt:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
areturn
13: StackMap locals: java.math.BigInteger java.math.BigInteger java.math.BigInteger
StackMap stack:
getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
iconst_2
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 4
start local 4 14: aload 0
aload 2
aload 4
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 5
start local 5 15: aload 0
new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
aload 5
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.checkSqrt:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 16: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
iconst_1
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
astore 1
start local 1 17: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 1
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifne 19
18: aconst_null
areturn
19: StackMap locals: java.math.BigInteger
StackMap stack:
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
astore 2
start local 2 20: aload 0
aload 0
aload 2
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modDouble:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modDouble:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 3
start local 3 21: aload 1
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 4
start local 4 22: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 5
start local 5 23: new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
astore 8
start local 8 24: StackMap locals: org.bouncycastle.math.ec.ECFieldElement$Fp java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger top top java.util.Random
StackMap stack:
new java.math.BigInteger
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
aload 8
invokespecial java.math.BigInteger.<init>:(ILjava/util/Random;)V
astore 9
start local 9 25: aload 9
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
ifge 24
26: aload 0
aload 9
aload 9
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 3
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 1
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 5
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 24
27: aload 0
aload 9
aload 2
aload 4
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.lucasSequence:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)[Ljava/math/BigInteger;
astore 10
start local 10 28: aload 10
iconst_0
aaload
astore 6
start local 6 29: aload 10
iconst_1
aaload
astore 7
start local 7 30: aload 0
aload 7
aload 7
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 3
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 32
31: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
aload 0
aload 7
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modHalfAbs:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 10 end local 9 32: StackMap locals: org.bouncycastle.math.ec.ECFieldElement$Fp java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.util.Random
StackMap stack:
aload 6
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifne 24
aload 6
aload 5
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifne 24
33: aconst_null
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 34 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
6 7 1 e Ljava/math/BigInteger;
9 16 1 t1 Ljava/math/BigInteger;
10 16 2 t2 Ljava/math/BigInteger;
11 16 3 t3 Ljava/math/BigInteger;
14 16 4 t4 Ljava/math/BigInteger;
15 16 5 y Ljava/math/BigInteger;
17 34 1 legendreExponent Ljava/math/BigInteger;
20 34 2 X Ljava/math/BigInteger;
21 34 3 fourX Ljava/math/BigInteger;
22 34 4 k Ljava/math/BigInteger;
23 34 5 qMinusOne Ljava/math/BigInteger;
29 34 6 U Ljava/math/BigInteger;
30 34 7 V Ljava/math/BigInteger;
24 34 8 rand Ljava/util/Random;
25 32 9 P Ljava/math/BigInteger;
28 32 10 result [Ljava/math/BigInteger;
private org.bouncycastle.math.ec.ECFieldElement checkSqrt(org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 1
aload 1
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
StackMap locals:
StackMap stack: org.bouncycastle.math.ec.ECFieldElement
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 3 1 z Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
z
private java.math.BigInteger[] lucasSequence(java.math.BigInteger, java.math.BigInteger, java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)[Ljava/math/BigInteger;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
invokevirtual java.math.BigInteger.bitLength:()I
istore 4
start local 4 1: aload 3
invokevirtual java.math.BigInteger.getLowestSetBit:()I
istore 5
start local 5 2: getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
astore 6
start local 6 3: getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
astore 7
start local 7 4: aload 1
astore 8
start local 8 5: getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
astore 9
start local 9 6: getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
astore 10
start local 10 7: iload 4
iconst_1
isub
istore 11
start local 11 8: goto 21
9: StackMap locals: org.bouncycastle.math.ec.ECFieldElement$Fp java.math.BigInteger java.math.BigInteger java.math.BigInteger int int java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger int
StackMap stack:
aload 0
aload 9
aload 10
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 9
10: aload 3
iload 11
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 16
11: aload 0
aload 9
aload 2
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 10
12: aload 0
aload 6
aload 8
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 6
13: aload 0
aload 8
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 1
aload 9
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 7
14: aload 0
aload 8
aload 8
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 10
iconst_1
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 8
15: goto 20
16: StackMap locals:
StackMap stack:
aload 9
astore 10
17: aload 0
aload 6
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 9
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 6
18: aload 0
aload 8
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 1
aload 9
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 8
19: aload 0
aload 7
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 9
iconst_1
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 7
20: StackMap locals:
StackMap stack:
iinc 11 -1
StackMap locals:
StackMap stack:
21: iload 11
iload 5
iconst_1
iadd
if_icmpge 9
end local 11 22: aload 0
aload 9
aload 10
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 9
23: aload 0
aload 9
aload 2
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 10
24: aload 0
aload 6
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 9
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 6
25: aload 0
aload 8
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 1
aload 9
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 7
26: aload 0
aload 9
aload 10
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 9
27: iconst_1
istore 11
start local 11 28: goto 33
29: StackMap locals:
StackMap stack:
aload 0
aload 6
aload 7
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 6
30: aload 0
aload 7
aload 7
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 9
iconst_1
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 7
31: aload 0
aload 9
aload 9
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 9
32: iinc 11 1
StackMap locals:
StackMap stack:
33: iload 11
iload 5
if_icmple 29
end local 11 34: iconst_2
anewarray java.math.BigInteger
dup
iconst_0
aload 6
aastore
dup
iconst_1
aload 7
aastore
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 35 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 35 1 P Ljava/math/BigInteger;
0 35 2 Q Ljava/math/BigInteger;
0 35 3 k Ljava/math/BigInteger;
1 35 4 n I
2 35 5 s I
3 35 6 Uh Ljava/math/BigInteger;
4 35 7 Vl Ljava/math/BigInteger;
5 35 8 Vh Ljava/math/BigInteger;
6 35 9 Ql Ljava/math/BigInteger;
7 35 10 Qh Ljava/math/BigInteger;
8 22 11 j I
28 34 11 j I
MethodParameters:
Name Flags
P
Q
k
protected java.math.BigInteger modAdd(java.math.BigInteger, java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 3
start local 3 1: aload 3
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
iflt 3
2: aload 3
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 3
3: StackMap locals: java.math.BigInteger
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 4 1 x1 Ljava/math/BigInteger;
0 4 2 x2 Ljava/math/BigInteger;
1 4 3 x3 Ljava/math/BigInteger;
MethodParameters:
Name Flags
x1
x2
protected java.math.BigInteger modDouble(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)Ljava/math/BigInteger;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
iconst_1
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
astore 2
start local 2 1: aload 2
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
iflt 3
2: aload 2
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 2
3: StackMap locals: java.math.BigInteger
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 4 1 x Ljava/math/BigInteger;
1 4 2 _2x Ljava/math/BigInteger;
MethodParameters:
Name Flags
x
protected java.math.BigInteger modHalf(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)Ljava/math/BigInteger;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 2
1: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 1
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 1
2: StackMap locals:
StackMap stack:
aload 1
iconst_1
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 3 1 x Ljava/math/BigInteger;
MethodParameters:
Name Flags
x
protected java.math.BigInteger modHalfAbs(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)Ljava/math/BigInteger;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 2
1: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 1
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 1
2: StackMap locals:
StackMap stack:
aload 1
iconst_1
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 3 1 x Ljava/math/BigInteger;
MethodParameters:
Name Flags
x
protected java.math.BigInteger modInverse(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)Ljava/math/BigInteger;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.getFieldSize:()I
istore 2
start local 2 1: iload 2
bipush 31
iadd
iconst_5
ishr
istore 3
start local 3 2: iload 2
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokestatic org.bouncycastle.math.raw.Nat.fromBigInteger:(ILjava/math/BigInteger;)[I
astore 4
start local 4 3: iload 2
aload 1
invokestatic org.bouncycastle.math.raw.Nat.fromBigInteger:(ILjava/math/BigInteger;)[I
astore 5
start local 5 4: iload 3
invokestatic org.bouncycastle.math.raw.Nat.create:(I)[I
astore 6
start local 6 5: aload 4
aload 5
aload 6
invokestatic org.bouncycastle.math.raw.Mod.invert:([I[I[I)V
6: iload 3
aload 6
invokestatic org.bouncycastle.math.raw.Nat.toBigInteger:(I[I)Ljava/math/BigInteger;
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 7 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 7 1 x Ljava/math/BigInteger;
1 7 2 bits I
2 7 3 len I
3 7 4 p [I
4 7 5 n [I
5 7 6 z [I
MethodParameters:
Name Flags
x
protected java.math.BigInteger modMult(java.math.BigInteger, java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 1 1 x1 Ljava/math/BigInteger;
0 1 2 x2 Ljava/math/BigInteger;
MethodParameters:
Name Flags
x1
x2
protected java.math.BigInteger modReduce(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)Ljava/math/BigInteger;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
ifnull 21
1: aload 1
invokevirtual java.math.BigInteger.signum:()I
ifge 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 2
start local 2 4: iload 2
ifeq 6
5: aload 1
invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
astore 1
6: StackMap locals: int
StackMap stack:
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
istore 3
start local 3 7: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
istore 4
start local 4 8: goto 14
9: StackMap locals: int int
StackMap stack:
aload 1
iload 3
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
astore 5
start local 5 10: aload 1
aload 5
iload 3
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 6
start local 6 11: iload 4
ifne 13
12: aload 5
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 5
13: StackMap locals: java.math.BigInteger java.math.BigInteger
StackMap stack:
aload 5
aload 6
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 1
end local 6 end local 5 14: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.math.BigInteger.bitLength:()I
iload 3
iconst_1
iadd
if_icmpgt 9
15: goto 17
16: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 1
17: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
ifge 16
18: iload 2
ifeq 22
aload 1
invokevirtual java.math.BigInteger.signum:()I
ifeq 22
19: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 1
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 1
end local 4 end local 3 end local 2 20: goto 22
21: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 1
22: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 23 1 x Ljava/math/BigInteger;
4 20 2 negative Z
7 20 3 qLen I
8 20 4 rIsOne Z
10 14 5 u Ljava/math/BigInteger;
11 14 6 v Ljava/math/BigInteger;
MethodParameters:
Name Flags
x
protected java.math.BigInteger modSubtract(java.math.BigInteger, java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 3
start local 3 1: aload 3
invokevirtual java.math.BigInteger.signum:()I
ifge 3
2: aload 3
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 3
3: StackMap locals: java.math.BigInteger
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 4 1 x1 Ljava/math/BigInteger;
0 4 2 x2 Ljava/math/BigInteger;
1 4 3 x3 Ljava/math/BigInteger;
MethodParameters:
Name Flags
x1
x2
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof org.bouncycastle.math.ec.ECFieldElement$Fp
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
checkcast org.bouncycastle.math.ec.ECFieldElement$Fp
astore 2
start local 2 5: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
aload 2
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 6
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
aload 2
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 6
iconst_1
ireturn
StackMap locals: org.bouncycastle.math.ec.ECFieldElement$Fp
StackMap stack:
6: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
0 7 1 other Ljava/lang/Object;
5 7 2 o Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
MethodParameters:
Name Flags
other
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.hashCode:()I
aload 0
getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.hashCode:()I
ixor
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
}
SourceFile: "ECFieldElement.java"
NestHost: org.bouncycastle.math.ec.ECFieldElement
InnerClasses:
public abstract AbstractFp = org.bouncycastle.math.ec.ECFieldElement$AbstractFp of org.bouncycastle.math.ec.ECFieldElement
public Fp = org.bouncycastle.math.ec.ECFieldElement$Fp of org.bouncycastle.math.ec.ECFieldElement