public abstract class org.bouncycastle.math.ec.ECCurve$AbstractFp extends org.bouncycastle.math.ec.ECCurve
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.bouncycastle.math.ec.ECCurve$AbstractFp
super_class: org.bouncycastle.math.ec.ECCurve
{
protected void <init>(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 // org.bouncycastle.math.ec.ECCurve$AbstractFp this
start local 1 // java.math.BigInteger q
0: .line 584
aload 0 /* this */
aload 1 /* q */
invokestatic org.bouncycastle.math.field.FiniteFields.getPrimeField:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/field/FiniteField;
invokespecial org.bouncycastle.math.ec.ECCurve.<init>:(Lorg/bouncycastle/math/field/FiniteField;)V
1: .line 585
return
end local 1 // java.math.BigInteger q
end local 0 // org.bouncycastle.math.ec.ECCurve$AbstractFp this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/math/ec/ECCurve$AbstractFp;
0 2 1 q Ljava/math/BigInteger;
MethodParameters:
Name Flags
q
public boolean isValidFieldElement(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // org.bouncycastle.math.ec.ECCurve$AbstractFp this
start local 1 // java.math.BigInteger x
0: .line 589
aload 1 /* x */
ifnull 1
aload 1 /* x */
invokevirtual java.math.BigInteger.signum:()I
iflt 1
aload 1 /* x */
aload 0 /* this */
invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractFp.getField:()Lorg/bouncycastle/math/field/FiniteField;
invokeinterface org.bouncycastle.math.field.FiniteField.getCharacteristic:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
ifge 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 // java.math.BigInteger x
end local 0 // org.bouncycastle.math.ec.ECCurve$AbstractFp this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/math/ec/ECCurve$AbstractFp;
0 2 1 x Ljava/math/BigInteger;
MethodParameters:
Name Flags
x
protected org.bouncycastle.math.ec.ECPoint decompressPoint(int, java.math.BigInteger);
descriptor: (ILjava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=3
start local 0 // org.bouncycastle.math.ec.ECCurve$AbstractFp this
start local 1 // int yTilde
start local 2 // java.math.BigInteger X1
0: .line 594
aload 0 /* this */
aload 2 /* X1 */
invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractFp.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
astore 3 /* x */
start local 3 // org.bouncycastle.math.ec.ECFieldElement x
1: .line 595
aload 3 /* x */
invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
aload 0 /* this */
getfield org.bouncycastle.math.ec.ECCurve$AbstractFp.a:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
aload 3 /* x */
invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
aload 0 /* this */
getfield org.bouncycastle.math.ec.ECCurve$AbstractFp.b:Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
astore 4 /* rhs */
start local 4 // org.bouncycastle.math.ec.ECFieldElement rhs
2: .line 596
aload 4 /* rhs */
invokevirtual org.bouncycastle.math.ec.ECFieldElement.sqrt:()Lorg/bouncycastle/math/ec/ECFieldElement;
astore 5 /* y */
start local 5 // org.bouncycastle.math.ec.ECFieldElement y
3: .line 601
aload 5 /* y */
ifnonnull 5
4: .line 603
new java.lang.IllegalArgumentException
dup
ldc "Invalid point compression"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: .line 606
StackMap locals: org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
StackMap stack:
aload 5 /* y */
invokevirtual org.bouncycastle.math.ec.ECFieldElement.testBitZero:()Z
iload 1 /* yTilde */
iconst_1
if_icmpne 6
iconst_1
goto 7
StackMap locals:
StackMap stack: int
6: iconst_0
StackMap locals: org.bouncycastle.math.ec.ECCurve$AbstractFp int java.math.BigInteger org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
StackMap stack: int int
7: if_icmpeq 9
8: .line 609
aload 5 /* y */
invokevirtual org.bouncycastle.math.ec.ECFieldElement.negate:()Lorg/bouncycastle/math/ec/ECFieldElement;
astore 5 /* y */
9: .line 612
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 3 /* x */
aload 5 /* y */
iconst_1
invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractFp.createRawPoint:(Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)Lorg/bouncycastle/math/ec/ECPoint;
areturn
end local 5 // org.bouncycastle.math.ec.ECFieldElement y
end local 4 // org.bouncycastle.math.ec.ECFieldElement rhs
end local 3 // org.bouncycastle.math.ec.ECFieldElement x
end local 2 // java.math.BigInteger X1
end local 1 // int yTilde
end local 0 // org.bouncycastle.math.ec.ECCurve$AbstractFp this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bouncycastle/math/ec/ECCurve$AbstractFp;
0 10 1 yTilde I
0 10 2 X1 Ljava/math/BigInteger;
1 10 3 x Lorg/bouncycastle/math/ec/ECFieldElement;
2 10 4 rhs Lorg/bouncycastle/math/ec/ECFieldElement;
3 10 5 y Lorg/bouncycastle/math/ec/ECFieldElement;
MethodParameters:
Name Flags
yTilde
X1
}
SourceFile: "ECCurve.java"
NestHost: org.bouncycastle.math.ec.ECCurve
InnerClasses:
public abstract AbstractFp = org.bouncycastle.math.ec.ECCurve$AbstractFp of org.bouncycastle.math.ec.ECCurve