public class org.bouncycastle.math.ec.ECCurve$Fp extends org.bouncycastle.math.ec.ECCurve
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.math.ec.ECCurve$Fp
super_class: org.bouncycastle.math.ec.ECCurve
{
java.math.BigInteger q;
descriptor: Ljava/math/BigInteger;
flags: (0x0000)
org.bouncycastle.math.ec.ECPoint$Fp infinity;
descriptor: Lorg/bouncycastle/math/ec/ECPoint$Fp;
flags: (0x0000)
public void <init>(java.math.BigInteger, java.math.BigInteger, java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, 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.ECCurve.<init>:()V
1: aload 0
aload 1
putfield org.bouncycastle.math.ec.ECCurve$Fp.q:Ljava/math/BigInteger;
2: aload 0
aload 0
aload 2
invokevirtual org.bouncycastle.math.ec.ECCurve$Fp.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
putfield org.bouncycastle.math.ec.ECCurve$Fp.a:Lorg/bouncycastle/math/ec/ECFieldElement;
3: aload 0
aload 0
aload 3
invokevirtual org.bouncycastle.math.ec.ECCurve$Fp.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
putfield org.bouncycastle.math.ec.ECCurve$Fp.b:Lorg/bouncycastle/math/ec/ECFieldElement;
4: aload 0
new org.bouncycastle.math.ec.ECPoint$Fp
dup
aload 0
aconst_null
aconst_null
invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)V
putfield org.bouncycastle.math.ec.ECCurve$Fp.infinity:Lorg/bouncycastle/math/ec/ECPoint$Fp;
5: return
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/ECCurve$Fp;
0 6 1 q Ljava/math/BigInteger;
0 6 2 a Ljava/math/BigInteger;
0 6 3 b Ljava/math/BigInteger;
MethodParameters:
Name Flags
q
a
b
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.ECCurve$Fp.q:Ljava/math/BigInteger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECCurve$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.ECCurve$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/ECCurve$Fp;
public org.bouncycastle.math.ec.ECFieldElement fromBigInteger(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, 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.ECCurve$Fp.q:Ljava/math/BigInteger;
aload 1
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(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/ECCurve$Fp;
0 1 1 x Ljava/math/BigInteger;
MethodParameters:
Name Flags
x
public org.bouncycastle.math.ec.ECPoint createPoint(java.math.BigInteger, java.math.BigInteger, boolean);
descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;Z)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.bouncycastle.math.ec.ECPoint$Fp
dup
aload 0
aload 0
aload 1
invokevirtual org.bouncycastle.math.ec.ECCurve$Fp.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
aload 0
aload 2
invokevirtual org.bouncycastle.math.ec.ECCurve$Fp.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
iload 3
invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECCurve$Fp;
0 1 1 x Ljava/math/BigInteger;
0 1 2 y Ljava/math/BigInteger;
0 1 3 withCompression Z
MethodParameters:
Name Flags
x
y
withCompression
public org.bouncycastle.math.ec.ECPoint decodePoint(byte[]);
descriptor: ([B)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=11, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
iconst_0
baload
tableswitch { // 0 - 7
0: 2
1: 33
2: 6
3: 6
4: 24
5: 33
6: 24
7: 24
default: 33
}
2: StackMap locals: org.bouncycastle.math.ec.ECPoint
StackMap stack:
aload 1
arraylength
iconst_1
if_icmple 4
3: new java.lang.RuntimeException
dup
ldc "Invalid point encoding"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.math.ec.ECCurve$Fp.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
astore 2
5: goto 34
6: StackMap locals:
StackMap stack:
aload 1
iconst_0
baload
iconst_1
iand
istore 3
start local 3 7: aload 1
arraylength
iconst_1
isub
newarray 8
astore 4
start local 4 8: aload 1
iconst_1
aload 4
iconst_0
aload 4
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
9: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECCurve$Fp.q:Ljava/math/BigInteger;
new java.math.BigInteger
dup
iconst_1
aload 4
invokespecial java.math.BigInteger.<init>:(I[B)V
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
astore 5
start local 5 10: aload 5
aload 5
invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
aload 0
getfield org.bouncycastle.math.ec.ECCurve$Fp.a:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
aload 0
getfield org.bouncycastle.math.ec.ECCurve$Fp.b:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
astore 6
start local 6 11: aload 6
invokevirtual org.bouncycastle.math.ec.ECFieldElement.sqrt:()Lorg/bouncycastle/math/ec/ECFieldElement;
astore 7
start local 7 12: aload 7
ifnonnull 14
13: new java.lang.RuntimeException
dup
ldc "Invalid point compression"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals: org.bouncycastle.math.ec.ECCurve$Fp byte[] org.bouncycastle.math.ec.ECPoint int byte[] org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
StackMap stack:
aload 7
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
iconst_0
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 15
iconst_1
goto 16
StackMap locals:
StackMap stack:
15: iconst_0
StackMap locals:
StackMap stack: int
16: istore 8
start local 8 17: iload 8
iload 3
if_icmpne 20
18: new org.bouncycastle.math.ec.ECPoint$Fp
dup
aload 0
aload 5
aload 7
iconst_1
invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
astore 2
19: goto 34
20: StackMap locals: int
StackMap stack:
new org.bouncycastle.math.ec.ECPoint$Fp
dup
aload 0
aload 5
21: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECCurve$Fp.q:Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.math.ec.ECCurve$Fp.q:Ljava/math/BigInteger;
aload 7
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()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;)V
iconst_1
22: invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
astore 2
23: goto 34
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 24: StackMap locals: org.bouncycastle.math.ec.ECCurve$Fp byte[] org.bouncycastle.math.ec.ECPoint
StackMap stack:
aload 1
arraylength
iconst_1
isub
iconst_2
idiv
newarray 8
astore 9
start local 9 25: aload 1
arraylength
iconst_1
isub
iconst_2
idiv
newarray 8
astore 10
start local 10 26: aload 1
iconst_1
aload 9
iconst_0
aload 9
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
27: aload 1
aload 9
arraylength
iconst_1
iadd
aload 10
iconst_0
aload 10
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
28: new org.bouncycastle.math.ec.ECPoint$Fp
dup
aload 0
29: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECCurve$Fp.q:Ljava/math/BigInteger;
new java.math.BigInteger
dup
iconst_1
aload 9
invokespecial java.math.BigInteger.<init>:(I[B)V
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
30: new org.bouncycastle.math.ec.ECFieldElement$Fp
dup
aload 0
getfield org.bouncycastle.math.ec.ECCurve$Fp.q:Ljava/math/BigInteger;
new java.math.BigInteger
dup
iconst_1
aload 10
invokespecial java.math.BigInteger.<init>:(I[B)V
invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
31: invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)V
astore 2
32: goto 34
end local 10 end local 9 33: StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Invalid point encoding 0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
iconst_0
baload
bipush 16
invokestatic java.lang.Integer.toString:(II)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
34: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/bouncycastle/math/ec/ECCurve$Fp;
0 35 1 encoded [B
1 35 2 p Lorg/bouncycastle/math/ec/ECPoint;
7 24 3 ytilde I
8 24 4 i [B
10 24 5 x Lorg/bouncycastle/math/ec/ECFieldElement;
11 24 6 alpha Lorg/bouncycastle/math/ec/ECFieldElement;
12 24 7 beta Lorg/bouncycastle/math/ec/ECFieldElement;
17 24 8 bit0 I
25 33 9 xEnc [B
26 33 10 yEnc [B
MethodParameters:
Name Flags
encoded
public org.bouncycastle.math.ec.ECPoint getInfinity();
descriptor: ()Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.ECCurve$Fp.infinity:Lorg/bouncycastle/math/ec/ECPoint$Fp;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECCurve$Fp;
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.ECCurve$Fp
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
checkcast org.bouncycastle.math.ec.ECCurve$Fp
astore 2
start local 2 5: aload 0
getfield org.bouncycastle.math.ec.ECCurve$Fp.q:Ljava/math/BigInteger;
aload 2
getfield org.bouncycastle.math.ec.ECCurve$Fp.q:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 8
6: aload 0
getfield org.bouncycastle.math.ec.ECCurve$Fp.a:Lorg/bouncycastle/math/ec/ECFieldElement;
aload 2
getfield org.bouncycastle.math.ec.ECCurve$Fp.a:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 8
aload 0
getfield org.bouncycastle.math.ec.ECCurve$Fp.b:Lorg/bouncycastle/math/ec/ECFieldElement;
aload 2
getfield org.bouncycastle.math.ec.ECCurve$Fp.b:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 8
7: iconst_1
ireturn
StackMap locals: org.bouncycastle.math.ec.ECCurve$Fp
StackMap stack:
8: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/bouncycastle/math/ec/ECCurve$Fp;
0 9 1 anObject Ljava/lang/Object;
5 9 2 other Lorg/bouncycastle/math/ec/ECCurve$Fp;
MethodParameters:
Name Flags
anObject
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.ECCurve$Fp.a:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual java.lang.Object.hashCode:()I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$Fp.b:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual java.lang.Object.hashCode:()I
ixor
aload 0
getfield org.bouncycastle.math.ec.ECCurve$Fp.q: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/ECCurve$Fp;
}
SourceFile: "ECCurve.java"
NestHost: org.bouncycastle.math.ec.ECCurve
InnerClasses:
public Fp = org.bouncycastle.math.ec.ECCurve$Fp of org.bouncycastle.math.ec.ECCurve
public Fp = org.bouncycastle.math.ec.ECFieldElement$Fp of org.bouncycastle.math.ec.ECFieldElement
public Fp = org.bouncycastle.math.ec.ECPoint$Fp of org.bouncycastle.math.ec.ECPoint