class org.bouncycastle.math.ec.custom.gm.SM2P256V1Curve$1 implements org.bouncycastle.math.ec.ECLookupTable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.bouncycastle.math.ec.custom.gm.SM2P256V1Curve$1
super_class: java.lang.Object
{
final org.bouncycastle.math.ec.custom.gm.SM2P256V1Curve this$0;
descriptor: Lorg/bouncycastle/math/ec/custom/gm/SM2P256V1Curve;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final int val$len;
descriptor: I
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final int[] val$table;
descriptor: [I
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(org.bouncycastle.math.ec.custom.gm.SM2P256V1Curve, int, int[]);
descriptor: (Lorg/bouncycastle/math/ec/custom/gm/SM2P256V1Curve;I[I)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 0: aload 0
aload 1
putfield org.bouncycastle.math.ec.custom.gm.SM2P256V1Curve$1.this$0:Lorg/bouncycastle/math/ec/custom/gm/SM2P256V1Curve;
aload 0
iload 2
putfield org.bouncycastle.math.ec.custom.gm.SM2P256V1Curve$1.val$len:I
aload 0
aload 3
putfield org.bouncycastle.math.ec.custom.gm.SM2P256V1Curve$1.val$table:[I
aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/custom/gm/SM2P256V1Curve$1;
MethodParameters:
Name Flags
this$0 final
val$len final
val$table final
public int getSize();
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.custom.gm.SM2P256V1Curve$1.val$len:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/math/ec/custom/gm/SM2P256V1Curve$1;
public org.bouncycastle.math.ec.ECPoint lookup(int);
descriptor: (I)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=2
start local 0 start local 1 0: invokestatic org.bouncycastle.math.raw.Nat256.create:()[I
astore 2
start local 2 1: invokestatic org.bouncycastle.math.raw.Nat256.create:()[I
astore 3
start local 3 2: iconst_0
istore 4
start local 4 3: iconst_0
istore 5
start local 5 4: goto 14
5: StackMap locals: org.bouncycastle.math.ec.custom.gm.SM2P256V1Curve$1 int int[] int[] int int
StackMap stack:
iload 5
iload 1
ixor
iconst_1
isub
bipush 31
ishr
istore 6
start local 6 6: iconst_0
istore 7
start local 7 7: goto 11
8: StackMap locals: int int
StackMap stack:
aload 2
iload 7
dup2
iaload
aload 0
getfield org.bouncycastle.math.ec.custom.gm.SM2P256V1Curve$1.val$table:[I
iload 4
iload 7
iadd
iaload
iload 6
iand
ixor
iastore
9: aload 3
iload 7
dup2
iaload
aload 0
getfield org.bouncycastle.math.ec.custom.gm.SM2P256V1Curve$1.val$table:[I
iload 4
bipush 8
iadd
iload 7
iadd
iaload
iload 6
iand
ixor
iastore
10: iinc 7 1
StackMap locals:
StackMap stack:
11: iload 7
bipush 8
if_icmplt 8
end local 7 12: iinc 4 16
end local 6 13: iinc 5 1
StackMap locals:
StackMap stack:
14: iload 5
aload 0
getfield org.bouncycastle.math.ec.custom.gm.SM2P256V1Curve$1.val$len:I
if_icmplt 5
end local 5 15: aload 0
getfield org.bouncycastle.math.ec.custom.gm.SM2P256V1Curve$1.this$0:Lorg/bouncycastle/math/ec/custom/gm/SM2P256V1Curve;
new org.bouncycastle.math.ec.custom.gm.SM2P256V1FieldElement
dup
aload 2
invokespecial org.bouncycastle.math.ec.custom.gm.SM2P256V1FieldElement.<init>:([I)V
new org.bouncycastle.math.ec.custom.gm.SM2P256V1FieldElement
dup
aload 3
invokespecial org.bouncycastle.math.ec.custom.gm.SM2P256V1FieldElement.<init>:([I)V
iconst_0
invokevirtual org.bouncycastle.math.ec.custom.gm.SM2P256V1Curve.createRawPoint:(Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)Lorg/bouncycastle/math/ec/ECPoint;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/bouncycastle/math/ec/custom/gm/SM2P256V1Curve$1;
0 16 1 index I
1 16 2 x [I
2 16 3 y [I
3 16 4 pos I
4 15 5 i I
6 13 6 MASK I
7 12 7 j I
MethodParameters:
Name Flags
index
}
SourceFile: "SM2P256V1Curve.java"
EnclosingMethod: org.bouncycastle.math.ec.custom.gm.SM2P256V1Curve.createCacheSafeLookupTable:([Lorg/bouncycastle/math/ec/ECPoint;II)Lorg/bouncycastle/math/ec/ECLookupTable;
NestHost: org.bouncycastle.math.ec.custom.gm.SM2P256V1Curve
InnerClasses:
org.bouncycastle.math.ec.custom.gm.SM2P256V1Curve$1