public class java.security.spec.ECFieldF2m implements java.security.spec.ECField
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.security.spec.ECFieldF2m
super_class: java.lang.Object
{
private int m;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int[] ks;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private java.math.BigInteger rp;
descriptor: Ljava/math/BigInteger;
flags: (0x0002) ACC_PRIVATE
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: iload 1
ifgt 3
2: new java.lang.IllegalArgumentException
dup
ldc "m is not positive"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.security.spec.ECFieldF2m int
StackMap stack:
aload 0
iload 1
putfield java.security.spec.ECFieldF2m.m:I
4: aload 0
aconst_null
putfield java.security.spec.ECFieldF2m.ks:[I
5: aload 0
aconst_null
putfield java.security.spec.ECFieldF2m.rp:Ljava/math/BigInteger;
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/security/spec/ECFieldF2m;
0 7 1 m I
MethodParameters:
Name Flags
m
public void <init>(int, java.math.BigInteger);
descriptor: (ILjava/math/BigInteger;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iload 1
putfield java.security.spec.ECFieldF2m.m:I
2: aload 0
aload 2
putfield java.security.spec.ECFieldF2m.rp:Ljava/math/BigInteger;
3: iload 1
ifgt 5
4: new java.lang.IllegalArgumentException
dup
ldc "m is not positive"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.security.spec.ECFieldF2m int java.math.BigInteger
StackMap stack:
aload 0
getfield java.security.spec.ECFieldF2m.rp:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitCount:()I
istore 3
start local 3 6: aload 0
getfield java.security.spec.ECFieldF2m.rp:Ljava/math/BigInteger;
iconst_0
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 8
aload 0
getfield java.security.spec.ECFieldF2m.rp:Ljava/math/BigInteger;
iload 1
invokevirtual java.math.BigInteger.testBit:(I)Z
ifeq 8
7: iload 3
iconst_3
if_icmpeq 11
iload 3
iconst_5
if_icmpeq 11
8: StackMap locals: int
StackMap stack:
new java.lang.IllegalArgumentException
dup
9: ldc "rp does not represent a valid reduction polynomial"
10: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield java.security.spec.ECFieldF2m.rp:Ljava/math/BigInteger;
iconst_0
invokevirtual java.math.BigInteger.clearBit:(I)Ljava/math/BigInteger;
iload 1
invokevirtual java.math.BigInteger.clearBit:(I)Ljava/math/BigInteger;
astore 4
start local 4 12: aload 0
iload 3
iconst_2
isub
newarray 10
putfield java.security.spec.ECFieldF2m.ks:[I
13: aload 0
getfield java.security.spec.ECFieldF2m.ks:[I
arraylength
iconst_1
isub
istore 5
start local 5 14: goto 19
15: StackMap locals: java.math.BigInteger int
StackMap stack:
aload 4
invokevirtual java.math.BigInteger.getLowestSetBit:()I
istore 6
start local 6 16: aload 0
getfield java.security.spec.ECFieldF2m.ks:[I
iload 5
iload 6
iastore
17: aload 4
iload 6
invokevirtual java.math.BigInteger.clearBit:(I)Ljava/math/BigInteger;
astore 4
end local 6 18: iinc 5 -1
StackMap locals:
StackMap stack:
19: iload 5
ifge 15
end local 5 20: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Ljava/security/spec/ECFieldF2m;
0 21 1 m I
0 21 2 rp Ljava/math/BigInteger;
6 21 3 bitCount I
12 21 4 temp Ljava/math/BigInteger;
14 20 5 i I
16 18 6 index I
MethodParameters:
Name Flags
m
rp
public void <init>(int, int[]);
descriptor: (I[I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iload 1
putfield java.security.spec.ECFieldF2m.m:I
2: aload 0
aload 2
invokevirtual int[].clone:()Ljava/lang/Object;
checkcast int[]
putfield java.security.spec.ECFieldF2m.ks:[I
3: iload 1
ifgt 5
4: new java.lang.IllegalArgumentException
dup
ldc "m is not positive"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.security.spec.ECFieldF2m int int[]
StackMap stack:
aload 0
getfield java.security.spec.ECFieldF2m.ks:[I
arraylength
iconst_1
if_icmpeq 9
aload 0
getfield java.security.spec.ECFieldF2m.ks:[I
arraylength
iconst_3
if_icmpeq 9
6: new java.lang.IllegalArgumentException
dup
7: ldc "length of ks is neither 1 nor 3"
8: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 10: goto 20
11: StackMap locals: int
StackMap stack:
aload 0
getfield java.security.spec.ECFieldF2m.ks:[I
iload 3
iaload
iconst_1
if_icmplt 12
aload 0
getfield java.security.spec.ECFieldF2m.ks:[I
iload 3
iaload
iload 1
iconst_1
isub
if_icmple 15
12: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
13: new java.lang.StringBuilder
dup
ldc "ks["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "] is out of range"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
iload 3
ifeq 19
aload 0
getfield java.security.spec.ECFieldF2m.ks:[I
iload 3
iaload
aload 0
getfield java.security.spec.ECFieldF2m.ks:[I
iload 3
iconst_1
isub
iaload
if_icmplt 19
16: new java.lang.IllegalArgumentException
dup
17: ldc "values in ks are not in descending order"
18: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
20: iload 3
aload 0
getfield java.security.spec.ECFieldF2m.ks:[I
arraylength
if_icmplt 11
end local 3 21: aload 0
getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
putfield java.security.spec.ECFieldF2m.rp:Ljava/math/BigInteger;
22: aload 0
aload 0
getfield java.security.spec.ECFieldF2m.rp:Ljava/math/BigInteger;
iload 1
invokevirtual java.math.BigInteger.setBit:(I)Ljava/math/BigInteger;
putfield java.security.spec.ECFieldF2m.rp:Ljava/math/BigInteger;
23: iconst_0
istore 3
start local 3 24: goto 27
25: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield java.security.spec.ECFieldF2m.rp:Ljava/math/BigInteger;
aload 0
getfield java.security.spec.ECFieldF2m.ks:[I
iload 3
iaload
invokevirtual java.math.BigInteger.setBit:(I)Ljava/math/BigInteger;
putfield java.security.spec.ECFieldF2m.rp:Ljava/math/BigInteger;
26: iinc 3 1
StackMap locals:
StackMap stack:
27: iload 3
aload 0
getfield java.security.spec.ECFieldF2m.ks:[I
arraylength
if_icmplt 25
end local 3 28: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Ljava/security/spec/ECFieldF2m;
0 29 1 m I
0 29 2 ks [I
10 21 3 i I
24 28 3 j I
MethodParameters:
Name Flags
m
ks
public int getFieldSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.security.spec.ECFieldF2m.m:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/security/spec/ECFieldF2m;
public int getM();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.security.spec.ECFieldF2m.m:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/security/spec/ECFieldF2m;
public java.math.BigInteger getReductionPolynomial();
descriptor: ()Ljava/math/BigInteger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.security.spec.ECFieldF2m.rp:Ljava/math/BigInteger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/security/spec/ECFieldF2m;
public int[] getMidTermsOfReductionPolynomial();
descriptor: ()[I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.security.spec.ECFieldF2m.ks:[I
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield java.security.spec.ECFieldF2m.ks:[I
invokevirtual int[].clone:()Ljava/lang/Object;
checkcast int[]
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/security/spec/ECFieldF2m;
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 1
iconst_1
ireturn
1: StackMap locals:
StackMap stack:
aload 1
instanceof java.security.spec.ECFieldF2m
ifeq 6
2: aload 0
getfield java.security.spec.ECFieldF2m.m:I
aload 1
checkcast java.security.spec.ECFieldF2m
getfield java.security.spec.ECFieldF2m.m:I
if_icmpne 5
3: aload 0
getfield java.security.spec.ECFieldF2m.ks:[I
aload 1
checkcast java.security.spec.ECFieldF2m
getfield java.security.spec.ECFieldF2m.ks:[I
invokestatic java.util.Arrays.equals:([I[I)Z
ifeq 5
4: iconst_1
ireturn
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/security/spec/ECFieldF2m;
0 7 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield java.security.spec.ECFieldF2m.m:I
iconst_5
ishl
istore 1
start local 1 1: iload 1
aload 0
getfield java.security.spec.ECFieldF2m.rp:Ljava/math/BigInteger;
ifnonnull 2
iconst_0
goto 3
StackMap locals: java.security.spec.ECFieldF2m int
StackMap stack: int
2: aload 0
getfield java.security.spec.ECFieldF2m.rp:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.hashCode:()I
StackMap locals: java.security.spec.ECFieldF2m int
StackMap stack: int int
3: iadd
istore 1
4: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/security/spec/ECFieldF2m;
1 5 1 value I
}
SourceFile: "ECFieldF2m.java"