public class org.bouncycastle.math.ec.ECCurve$F2m 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$F2m
super_class: org.bouncycastle.math.ec.ECCurve
{
private int m;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int k1;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int k2;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int k3;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.math.BigInteger n;
descriptor: Ljava/math/BigInteger;
flags: (0x0002) ACC_PRIVATE
private java.math.BigInteger h;
descriptor: Ljava/math/BigInteger;
flags: (0x0002) ACC_PRIVATE
private org.bouncycastle.math.ec.ECPoint$F2m infinity;
descriptor: Lorg/bouncycastle/math/ec/ECPoint$F2m;
flags: (0x0002) ACC_PRIVATE
private byte mu;
descriptor: B
flags: (0x0002) ACC_PRIVATE
private java.math.BigInteger[] si;
descriptor: [Ljava/math/BigInteger;
flags: (0x0002) ACC_PRIVATE
public void <init>(int, int, java.math.BigInteger, java.math.BigInteger);
descriptor: (IILjava/math/BigInteger;Ljava/math/BigInteger;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
iload 1
iload 2
iconst_0
iconst_0
aload 3
aload 4
aconst_null
aconst_null
invokespecial org.bouncycastle.math.ec.ECCurve$F2m.<init>:(IIIILjava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
0 2 1 m I
0 2 2 k I
0 2 3 a Ljava/math/BigInteger;
0 2 4 b Ljava/math/BigInteger;
MethodParameters:
Name Flags
m
k
a
b
public void <init>(int, int, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger);
descriptor: (IILjava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
iload 1
iload 2
iconst_0
iconst_0
aload 3
aload 4
aload 5
aload 6
invokespecial org.bouncycastle.math.ec.ECCurve$F2m.<init>:(IIIILjava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
1: 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 2 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
0 2 1 m I
0 2 2 k I
0 2 3 a Ljava/math/BigInteger;
0 2 4 b Ljava/math/BigInteger;
0 2 5 n Ljava/math/BigInteger;
0 2 6 h Ljava/math/BigInteger;
MethodParameters:
Name Flags
m
k
a
b
n
h
public void <init>(int, int, int, int, java.math.BigInteger, java.math.BigInteger);
descriptor: (IIIILjava/math/BigInteger;Ljava/math/BigInteger;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
iload 1
iload 2
iload 3
iload 4
aload 5
aload 6
aconst_null
aconst_null
invokespecial org.bouncycastle.math.ec.ECCurve$F2m.<init>:(IIIILjava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
1: 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 2 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
0 2 1 m I
0 2 2 k1 I
0 2 3 k2 I
0 2 4 k3 I
0 2 5 a Ljava/math/BigInteger;
0 2 6 b Ljava/math/BigInteger;
MethodParameters:
Name Flags
m
k1
k2
k3
a
b
public void <init>(int, int, int, int, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger);
descriptor: (IIIILjava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=9, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 0
invokespecial org.bouncycastle.math.ec.ECCurve.<init>:()V
1: aload 0
iconst_0
putfield org.bouncycastle.math.ec.ECCurve$F2m.mu:B
2: aload 0
aconst_null
putfield org.bouncycastle.math.ec.ECCurve$F2m.si:[Ljava/math/BigInteger;
3: aload 0
iload 1
putfield org.bouncycastle.math.ec.ECCurve$F2m.m:I
4: aload 0
iload 2
putfield org.bouncycastle.math.ec.ECCurve$F2m.k1:I
5: aload 0
iload 3
putfield org.bouncycastle.math.ec.ECCurve$F2m.k2:I
6: aload 0
iload 4
putfield org.bouncycastle.math.ec.ECCurve$F2m.k3:I
7: aload 0
aload 7
putfield org.bouncycastle.math.ec.ECCurve$F2m.n:Ljava/math/BigInteger;
8: aload 0
aload 8
putfield org.bouncycastle.math.ec.ECCurve$F2m.h:Ljava/math/BigInteger;
9: iload 2
ifne 11
10: new java.lang.IllegalArgumentException
dup
ldc "k1 must be > 0"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: org.bouncycastle.math.ec.ECCurve$F2m int int int int java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger
StackMap stack:
iload 3
ifne 14
12: iload 4
ifeq 18
13: new java.lang.IllegalArgumentException
dup
ldc "k3 must be 0 if k2 == 0"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
iload 3
iload 2
if_icmpgt 16
15: new java.lang.IllegalArgumentException
dup
ldc "k2 must be > k1"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack:
iload 4
iload 3
if_icmpgt 18
17: new java.lang.IllegalArgumentException
dup
ldc "k3 must be > k2"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
aload 0
aload 0
aload 5
invokevirtual org.bouncycastle.math.ec.ECCurve$F2m.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
putfield org.bouncycastle.math.ec.ECCurve$F2m.a:Lorg/bouncycastle/math/ec/ECFieldElement;
19: aload 0
aload 0
aload 6
invokevirtual org.bouncycastle.math.ec.ECCurve$F2m.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
putfield org.bouncycastle.math.ec.ECCurve$F2m.b:Lorg/bouncycastle/math/ec/ECFieldElement;
20: aload 0
new org.bouncycastle.math.ec.ECPoint$F2m
dup
aload 0
aconst_null
aconst_null
invokespecial org.bouncycastle.math.ec.ECPoint$F2m.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)V
putfield org.bouncycastle.math.ec.ECCurve$F2m.infinity:Lorg/bouncycastle/math/ec/ECPoint$F2m;
21: return
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 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
0 22 1 m I
0 22 2 k1 I
0 22 3 k2 I
0 22 4 k3 I
0 22 5 a Ljava/math/BigInteger;
0 22 6 b Ljava/math/BigInteger;
0 22 7 n Ljava/math/BigInteger;
0 22 8 h Ljava/math/BigInteger;
MethodParameters:
Name Flags
m
k1
k2
k3
a
b
n
h
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$F2m.m:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
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=7, locals=2, args_size=2
start local 0 start local 1 0: new org.bouncycastle.math.ec.ECFieldElement$F2m
dup
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.m:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k1:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k2:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k3:I
aload 1
invokespecial org.bouncycastle.math.ec.ECFieldElement$F2m.<init>:(IIIILjava/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$F2m;
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$F2m
dup
aload 0
aload 0
aload 1
invokevirtual org.bouncycastle.math.ec.ECCurve$F2m.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
aload 0
aload 2
invokevirtual org.bouncycastle.math.ec.ECCurve$F2m.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
iload 3
invokespecial org.bouncycastle.math.ec.ECPoint$F2m.<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$F2m;
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=14, locals=6, 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: 27
2: 6
3: 6
4: 13
5: 27
6: 13
7: 13
default: 27
}
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$F2m.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
astore 2
5: goto 28
6: StackMap locals:
StackMap stack:
aload 1
arraylength
iconst_1
isub
newarray 8
astore 3
start local 3 7: aload 1
iconst_1
aload 3
iconst_0
aload 3
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: aload 1
iconst_0
baload
iconst_2
if_icmpne 11
9: aload 0
aload 3
iconst_0
invokevirtual org.bouncycastle.math.ec.ECCurve$F2m.decompressPoint:([BI)Lorg/bouncycastle/math/ec/ECPoint;
astore 2
10: goto 28
11: StackMap locals: byte[]
StackMap stack:
aload 0
aload 3
iconst_1
invokevirtual org.bouncycastle.math.ec.ECCurve$F2m.decompressPoint:([BI)Lorg/bouncycastle/math/ec/ECPoint;
astore 2
12: goto 28
end local 3 13: StackMap locals:
StackMap stack:
aload 1
arraylength
iconst_1
isub
iconst_2
idiv
newarray 8
astore 4
start local 4 14: aload 1
arraylength
iconst_1
isub
iconst_2
idiv
newarray 8
astore 5
start local 5 15: aload 1
iconst_1
aload 4
iconst_0
aload 4
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
16: aload 1
aload 4
arraylength
iconst_1
iadd
aload 5
iconst_0
aload 5
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
17: new org.bouncycastle.math.ec.ECPoint$F2m
dup
aload 0
18: new org.bouncycastle.math.ec.ECFieldElement$F2m
dup
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.m:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k1:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k2:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k3:I
19: new java.math.BigInteger
dup
iconst_1
aload 4
invokespecial java.math.BigInteger.<init>:(I[B)V
20: invokespecial org.bouncycastle.math.ec.ECFieldElement$F2m.<init>:(IIIILjava/math/BigInteger;)V
21: new org.bouncycastle.math.ec.ECFieldElement$F2m
dup
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.m:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k1:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k2:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k3:I
22: new java.math.BigInteger
dup
iconst_1
aload 5
invokespecial java.math.BigInteger.<init>:(I[B)V
23: invokespecial org.bouncycastle.math.ec.ECFieldElement$F2m.<init>:(IIIILjava/math/BigInteger;)V
24: iconst_0
25: invokespecial org.bouncycastle.math.ec.ECPoint$F2m.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
astore 2
26: goto 28
end local 5 end local 4 27: 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
28: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
0 29 1 encoded [B
1 29 2 p Lorg/bouncycastle/math/ec/ECPoint;
7 13 3 enc [B
14 27 4 xEnc [B
15 27 5 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$F2m.infinity:Lorg/bouncycastle/math/ec/ECPoint$F2m;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
public boolean isKoblitz();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.n:Ljava/math/BigInteger;
ifnull 5
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.h:Ljava/math/BigInteger;
ifnull 5
1: aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.a:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifne 3
2: aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.a:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 5
3: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.b:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 5
4: iconst_1
ireturn
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
synchronized byte getMu();
descriptor: ()B
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.mu:B
ifne 2
1: aload 0
aload 0
invokestatic org.bouncycastle.math.ec.Tnaf.getMu:(Lorg/bouncycastle/math/ec/ECCurve$F2m;)B
putfield org.bouncycastle.math.ec.ECCurve$F2m.mu:B
2: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.mu:B
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
synchronized java.math.BigInteger[] getSi();
descriptor: ()[Ljava/math/BigInteger;
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.si:[Ljava/math/BigInteger;
ifnonnull 2
1: aload 0
aload 0
invokestatic org.bouncycastle.math.ec.Tnaf.getSi:(Lorg/bouncycastle/math/ec/ECCurve$F2m;)[Ljava/math/BigInteger;
putfield org.bouncycastle.math.ec.ECCurve$F2m.si:[Ljava/math/BigInteger;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.si:[Ljava/math/BigInteger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
private org.bouncycastle.math.ec.ECPoint decompressPoint(byte[], int);
descriptor: ([BI)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0002) ACC_PRIVATE
Code:
stack=10, locals=8, args_size=3
start local 0 start local 1 start local 2 0: new org.bouncycastle.math.ec.ECFieldElement$F2m
dup
1: aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.m:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k1:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k2:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k3:I
new java.math.BigInteger
dup
iconst_1
aload 1
invokespecial java.math.BigInteger.<init>:(I[B)V
2: invokespecial org.bouncycastle.math.ec.ECFieldElement$F2m.<init>:(IIIILjava/math/BigInteger;)V
astore 3
start local 3 3: aconst_null
astore 4
start local 4 4: aload 3
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 12
5: aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.b:Lorg/bouncycastle/math/ec/ECFieldElement;
checkcast org.bouncycastle.math.ec.ECFieldElement$F2m
astore 4
6: iconst_0
istore 5
start local 5 7: goto 10
8: StackMap locals: org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement int
StackMap stack:
aload 4
invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
astore 4
9: iinc 5 1
StackMap locals:
StackMap stack:
10: iload 5
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.m:I
iconst_1
isub
if_icmplt 8
end local 5 11: goto 26
12: StackMap locals:
StackMap stack:
aload 3
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.a:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
13: aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.b:Lorg/bouncycastle/math/ec/ECFieldElement;
aload 3
invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.invert:()Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
14: invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
astore 5
start local 5 15: aload 0
aload 5
invokevirtual org.bouncycastle.math.ec.ECCurve$F2m.solveQuadradicEquation:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
astore 6
start local 6 16: aload 6
ifnonnull 18
17: new java.lang.RuntimeException
dup
ldc "Invalid point compression"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals: org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
StackMap stack:
iconst_0
istore 7
start local 7 19: aload 6
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
iconst_0
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 21
20: iconst_1
istore 7
21: StackMap locals: int
StackMap stack:
iload 7
iload 2
if_icmpeq 25
22: aload 6
new org.bouncycastle.math.ec.ECFieldElement$F2m
dup
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.m:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k1:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k2:I
23: aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k3:I
getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECFieldElement$F2m.<init>:(IIIILjava/math/BigInteger;)V
24: invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
astore 6
25: StackMap locals:
StackMap stack:
aload 3
aload 6
invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
astore 4
end local 7 end local 6 end local 5 26: StackMap locals:
StackMap stack:
new org.bouncycastle.math.ec.ECPoint$F2m
dup
aload 0
aload 3
aload 4
invokespecial org.bouncycastle.math.ec.ECPoint$F2m.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
0 27 1 xEnc [B
0 27 2 ypBit I
3 27 3 xp Lorg/bouncycastle/math/ec/ECFieldElement;
4 27 4 yp Lorg/bouncycastle/math/ec/ECFieldElement;
7 11 5 i I
15 26 5 beta Lorg/bouncycastle/math/ec/ECFieldElement;
16 26 6 z Lorg/bouncycastle/math/ec/ECFieldElement;
19 26 7 zBit I
MethodParameters:
Name Flags
xEnc
ypBit
private org.bouncycastle.math.ec.ECFieldElement solveQuadradicEquation(org.bouncycastle.math.ec.ECFieldElement);
descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
flags: (0x0002) ACC_PRIVATE
Code:
stack=10, locals=10, args_size=2
start local 0 start local 1 0: new org.bouncycastle.math.ec.ECFieldElement$F2m
dup
1: aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.m:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k1:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k2:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k3:I
getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
2: invokespecial org.bouncycastle.math.ec.ECFieldElement$F2m.<init>:(IIIILjava/math/BigInteger;)V
astore 2
start local 2 3: aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 5
4: aload 2
areturn
5: StackMap locals: org.bouncycastle.math.ec.ECFieldElement
StackMap stack:
aconst_null
astore 3
start local 3 6: aload 2
astore 4
start local 4 7: new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
astore 5
start local 5 8: StackMap locals: org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement java.util.Random
StackMap stack:
new org.bouncycastle.math.ec.ECFieldElement$F2m
dup
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.m:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k1:I
9: aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k2:I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k3:I
new java.math.BigInteger
dup
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.m:I
aload 5
invokespecial java.math.BigInteger.<init>:(ILjava/util/Random;)V
10: invokespecial org.bouncycastle.math.ec.ECFieldElement$F2m.<init>:(IIIILjava/math/BigInteger;)V
astore 6
start local 6 11: aload 2
astore 3
12: aload 1
astore 7
start local 7 13: iconst_1
istore 8
start local 8 14: goto 19
15: StackMap locals: org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement int
StackMap stack:
aload 7
invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
astore 9
start local 9 16: aload 3
invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
aload 9
aload 6
invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
astore 3
17: aload 9
aload 1
invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
astore 7
end local 9 18: iinc 8 1
StackMap locals:
StackMap stack:
19: iload 8
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.m:I
iconst_1
isub
if_icmple 15
end local 8 20: aload 7
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifne 22
21: aconst_null
areturn
22: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
aload 3
invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
astore 4
end local 7 end local 6 23: aload 4
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifne 8
24: aload 3
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 25 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
0 25 1 beta Lorg/bouncycastle/math/ec/ECFieldElement;
3 25 2 zeroElement Lorg/bouncycastle/math/ec/ECFieldElement;
6 25 3 z Lorg/bouncycastle/math/ec/ECFieldElement;
7 25 4 gamma Lorg/bouncycastle/math/ec/ECFieldElement;
8 25 5 rand Ljava/util/Random;
11 23 6 t Lorg/bouncycastle/math/ec/ECFieldElement;
13 23 7 w Lorg/bouncycastle/math/ec/ECFieldElement;
14 20 8 i I
16 18 9 w2 Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
beta
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$F2m
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
checkcast org.bouncycastle.math.ec.ECCurve$F2m
astore 2
start local 2 5: aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.m:I
aload 2
getfield org.bouncycastle.math.ec.ECCurve$F2m.m:I
if_icmpne 9
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k1:I
aload 2
getfield org.bouncycastle.math.ec.ECCurve$F2m.k1:I
if_icmpne 9
6: aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k2:I
aload 2
getfield org.bouncycastle.math.ec.ECCurve$F2m.k2:I
if_icmpne 9
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k3:I
aload 2
getfield org.bouncycastle.math.ec.ECCurve$F2m.k3:I
if_icmpne 9
7: aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.a:Lorg/bouncycastle/math/ec/ECFieldElement;
aload 2
getfield org.bouncycastle.math.ec.ECCurve$F2m.a:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 9
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.b:Lorg/bouncycastle/math/ec/ECFieldElement;
aload 2
getfield org.bouncycastle.math.ec.ECCurve$F2m.b:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 9
8: iconst_1
ireturn
StackMap locals: org.bouncycastle.math.ec.ECCurve$F2m
StackMap stack:
9: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
0 10 1 anObject Ljava/lang/Object;
5 10 2 other Lorg/bouncycastle/math/ec/ECCurve$F2m;
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$F2m.a:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual java.lang.Object.hashCode:()I
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.b:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual java.lang.Object.hashCode:()I
ixor
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.m:I
ixor
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k1:I
ixor
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k2:I
ixor
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k3:I
ixor
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
public int getM();
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$F2m.m:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
public boolean isTrinomial();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k2:I
ifne 1
aload 0
getfield org.bouncycastle.math.ec.ECCurve$F2m.k3:I
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
public int getK1();
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$F2m.k1:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
public int getK2();
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$F2m.k2:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
public int getK3();
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$F2m.k3:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
public java.math.BigInteger getN();
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$F2m.n:Ljava/math/BigInteger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
public java.math.BigInteger getH();
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$F2m.h:Ljava/math/BigInteger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/ECCurve$F2m;
}
SourceFile: "ECCurve.java"
NestHost: org.bouncycastle.math.ec.ECCurve
InnerClasses:
public F2m = org.bouncycastle.math.ec.ECCurve$F2m of org.bouncycastle.math.ec.ECCurve
public F2m = org.bouncycastle.math.ec.ECFieldElement$F2m of org.bouncycastle.math.ec.ECFieldElement
public F2m = org.bouncycastle.math.ec.ECPoint$F2m of org.bouncycastle.math.ec.ECPoint