public abstract class org.bouncycastle.math.ec.rfc8032.Ed25519
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.bouncycastle.math.ec.rfc8032.Ed25519
super_class: java.lang.Object
{
private static final long M28L;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 268435455
private static final long M32L;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4294967295
private static final int POINT_BYTES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private static final int SCALAR_INTS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int SCALAR_BYTES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
public static final int PREHASH_SIZE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 64
public static final int PUBLIC_KEY_SIZE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 32
public static final int SECRET_KEY_SIZE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 32
public static final int SIGNATURE_SIZE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 64
private static final byte[] DOM2_PREFIX;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] P;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] L;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int L0;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -50998291
private static final int L1;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 19280294
private static final int L2;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 127719000
private static final int L3;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -6428113
private static final int L4;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5343
private static final int[] B_x;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] B_y;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] C_d;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] C_d2;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] C_d4;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int WNAF_WIDTH_BASE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 7
private static final int PRECOMP_BLOCKS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int PRECOMP_TEETH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int PRECOMP_SPACING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int PRECOMP_POINTS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int PRECOMP_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 7
private static java.lang.Object precompLock;
descriptor: Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] precompBaseTable;
descriptor: [Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static int[] precompBase;
descriptor: [I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: ldc "SigEd25519 no Ed25519 collisions"
invokestatic org.bouncycastle.util.Strings.toByteArray:(Ljava/lang/String;)[B
putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.DOM2_PREFIX:[B
1: bipush 8
newarray 10
dup
iconst_0
bipush -19
iastore
dup
iconst_1
iconst_m1
iastore
dup
iconst_2
iconst_m1
iastore
dup
iconst_3
iconst_m1
iastore
dup
iconst_4
iconst_m1
iastore
dup
iconst_5
iconst_m1
iastore
dup
bipush 6
iconst_m1
iastore
dup
bipush 7
ldc 2147483647
iastore
putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.P:[I
2: bipush 8
newarray 10
dup
iconst_0
ldc 1559614445
iastore
dup
iconst_1
ldc 1477600026
iastore
dup
iconst_2
ldc -1560830762
iastore
dup
iconst_3
ldc 350157278
iastore
dup
bipush 7
ldc 268435456
iastore
putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.L:[I
3: bipush 10
newarray 10
dup
iconst_0
ldc 52811034
iastore
dup
iconst_1
ldc 25909283
iastore
dup
iconst_2
ldc 8072341
iastore
dup
iconst_3
ldc 50637101
iastore
dup
iconst_4
ldc 13785486
iastore
dup
iconst_5
ldc 30858332
iastore
dup
bipush 6
4: ldc 20483199
iastore
dup
bipush 7
ldc 20966410
iastore
dup
bipush 8
ldc 43936626
iastore
dup
bipush 9
ldc 4379245
iastore
5: putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.B_x:[I
6: bipush 10
newarray 10
dup
iconst_0
ldc 40265304
iastore
dup
iconst_1
ldc 26843545
iastore
dup
iconst_2
ldc 6710886
iastore
dup
iconst_3
ldc 53687091
iastore
dup
iconst_4
ldc 13421772
iastore
dup
iconst_5
ldc 40265318
iastore
dup
bipush 6
7: ldc 26843545
iastore
dup
bipush 7
ldc 6710886
iastore
dup
bipush 8
ldc 53687091
iastore
dup
bipush 9
ldc 13421772
iastore
8: putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.B_y:[I
9: bipush 10
newarray 10
dup
iconst_0
ldc 56195235
iastore
dup
iconst_1
ldc 47411844
iastore
dup
iconst_2
ldc 25868126
iastore
dup
iconst_3
ldc 40503822
iastore
dup
iconst_4
ldc 57364
iastore
dup
iconst_5
ldc 58321048
iastore
dup
bipush 6
10: ldc 30416477
iastore
dup
bipush 7
ldc 31930572
iastore
dup
bipush 8
ldc 57760639
iastore
dup
bipush 9
ldc 10749657
iastore
11: putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.C_d:[I
12: bipush 10
newarray 10
dup
iconst_0
ldc 45281625
iastore
dup
iconst_1
ldc 27714825
iastore
dup
iconst_2
ldc 18181821
iastore
dup
iconst_3
ldc 13898781
iastore
dup
iconst_4
ldc 114729
iastore
dup
iconst_5
ldc 49533232
iastore
dup
bipush 6
13: ldc 60832955
iastore
dup
bipush 7
ldc 30306712
iastore
dup
bipush 8
ldc 48412415
iastore
dup
bipush 9
ldc 4722099
iastore
14: putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.C_d2:[I
15: bipush 10
newarray 10
dup
iconst_0
ldc 23454386
iastore
dup
iconst_1
ldc 55429651
iastore
dup
iconst_2
ldc 2809210
iastore
dup
iconst_3
ldc 27797563
iastore
dup
iconst_4
ldc 229458
iastore
dup
iconst_5
ldc 31957600
iastore
dup
bipush 6
16: ldc 54557047
iastore
dup
bipush 7
ldc 27058993
iastore
dup
bipush 8
ldc 29715967
iastore
dup
bipush 9
ldc 9444199
iastore
17: putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.C_d4:[I
18: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompLock:Ljava/lang/Object;
19: aconst_null
putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBaseTable:[Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
20: aconst_null
putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: 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/rfc8032/Ed25519;
private static byte[] calculateS(byte[], byte[], byte[]);
descriptor: ([B[B[B)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: bipush 16
newarray 10
astore 3
start local 3 1: aload 0
iconst_0
aload 3
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decodeScalar:([BI[I)V
2: bipush 8
newarray 10
astore 4
start local 4 3: aload 1
iconst_0
aload 4
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decodeScalar:([BI[I)V
4: bipush 8
newarray 10
astore 5
start local 5 5: aload 2
iconst_0
aload 5
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decodeScalar:([BI[I)V
6: aload 4
aload 5
aload 3
invokestatic org.bouncycastle.math.raw.Nat256.mulAddTo:([I[I[I)I
pop
7: bipush 64
newarray 8
astore 6
start local 6 8: iconst_0
istore 7
start local 7 9: goto 12
10: StackMap locals: byte[] byte[] byte[] int[] int[] int[] byte[] int
StackMap stack:
aload 3
iload 7
iaload
aload 6
iload 7
iconst_4
imul
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encode32:(I[BI)V
11: iinc 7 1
StackMap locals:
StackMap stack:
12: iload 7
aload 3
arraylength
if_icmplt 10
end local 7 13: aload 6
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.reduceScalar:([B)[B
areturn
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 14 0 r [B
0 14 1 k [B
0 14 2 s [B
1 14 3 t [I
3 14 4 u [I
5 14 5 v [I
8 14 6 result [B
9 13 7 i I
MethodParameters:
Name Flags
r
k
s
private static boolean checkContextVar(byte[], byte);
descriptor: ([BB)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 1
iload 1
ifeq 4
1: StackMap locals:
StackMap stack:
aload 0
ifnull 3
aload 0
arraylength
sipush 256
2: if_icmplt 4
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
StackMap locals:
StackMap stack:
4: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 ctx [B
0 5 1 phflag B
MethodParameters:
Name Flags
ctx
phflag
private static boolean checkPointVar(byte[]);
descriptor: ([B)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: bipush 8
newarray 10
astore 1
start local 1 1: aload 0
iconst_0
aload 1
iconst_0
bipush 8
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI[III)V
2: aload 1
bipush 7
dup2
iaload
ldc 2147483647
iand
iastore
3: aload 1
getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.P:[I
invokestatic org.bouncycastle.math.raw.Nat256.gte:([I[I)Z
ifeq 4
iconst_0
goto 5
StackMap locals: int[]
StackMap stack:
4: iconst_1
StackMap locals:
StackMap stack: int
5: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 p [B
1 6 1 t [I
MethodParameters:
Name Flags
p
private static boolean checkScalarVar(byte[]);
descriptor: ([B)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: bipush 8
newarray 10
astore 1
start local 1 1: aload 0
iconst_0
aload 1
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decodeScalar:([BI[I)V
2: aload 1
getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.L:[I
invokestatic org.bouncycastle.math.raw.Nat256.gte:([I[I)Z
ifeq 3
iconst_0
goto 4
StackMap locals: int[]
StackMap stack:
3: iconst_1
StackMap locals:
StackMap stack: int
4: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 s [B
1 5 1 n [I
MethodParameters:
Name Flags
s
private static org.bouncycastle.crypto.Digest createDigest();
descriptor: ()Lorg/bouncycastle/crypto/Digest;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new org.bouncycastle.crypto.digests.SHA512Digest
dup
invokespecial org.bouncycastle.crypto.digests.SHA512Digest.<init>:()V
areturn
LocalVariableTable:
Start End Slot Name Signature
public static org.bouncycastle.crypto.Digest createPrehash();
descriptor: ()Lorg/bouncycastle/crypto/Digest;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.createDigest:()Lorg/bouncycastle/crypto/Digest;
areturn
LocalVariableTable:
Start End Slot Name Signature
private static int decode24(byte[], int);
descriptor: ([BI)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
baload
sipush 255
iand
istore 2
start local 2 1: iload 2
aload 0
iinc 1 1
iload 1
baload
sipush 255
iand
bipush 8
ishl
ior
istore 2
2: iload 2
aload 0
iinc 1 1
iload 1
baload
sipush 255
iand
bipush 16
ishl
ior
istore 2
3: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 bs [B
0 4 1 off I
1 4 2 n I
MethodParameters:
Name Flags
bs
off
private static int decode32(byte[], int);
descriptor: ([BI)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
baload
sipush 255
iand
istore 2
start local 2 1: iload 2
aload 0
iinc 1 1
iload 1
baload
sipush 255
iand
bipush 8
ishl
ior
istore 2
2: iload 2
aload 0
iinc 1 1
iload 1
baload
sipush 255
iand
bipush 16
ishl
ior
istore 2
3: iload 2
aload 0
iinc 1 1
iload 1
baload
bipush 24
ishl
ior
istore 2
4: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 bs [B
0 5 1 off I
1 5 2 n I
MethodParameters:
Name Flags
bs
off
private static void decode32(byte[], int, int[], int, int);
descriptor: ([BI[III)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iconst_0
istore 5
start local 5 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 2
iload 3
iload 5
iadd
aload 0
iload 1
iload 5
iconst_4
imul
iadd
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
iastore
3: iinc 5 1
StackMap locals:
StackMap stack:
4: iload 5
iload 4
if_icmplt 2
end local 5 5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 bs [B
0 6 1 bsOff I
0 6 2 n [I
0 6 3 nOff I
0 6 4 nLen I
1 5 5 i I
MethodParameters:
Name Flags
bs
bsOff
n
nOff
nLen
private static boolean decodePointVar(byte[], int, boolean, org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt);
descriptor: ([BIZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
iload 1
bipush 32
iadd
invokestatic org.bouncycastle.util.Arrays.copyOfRange:([BII)[B
astore 4
start local 4 1: aload 4
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.checkPointVar:([B)Z
ifne 3
2: iconst_0
ireturn
3: StackMap locals: byte[]
StackMap stack:
aload 4
bipush 31
baload
sipush 128
iand
bipush 7
iushr
istore 5
start local 5 4: aload 4
bipush 31
dup2
baload
bipush 127
iand
i2b
bastore
5: aload 4
iconst_0
aload 3
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.decode:([BI[I)V
6: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 6
start local 6 7: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 7
start local 7 8: aload 3
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
aload 6
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.sqr:([I[I)V
9: getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.C_d:[I
aload 6
aload 7
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
10: aload 6
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.subOne:([I)V
11: aload 7
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.addOne:([I)V
12: aload 6
aload 7
aload 3
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.sqrtRatioVar:([I[I[I)Z
ifne 14
13: iconst_0
ireturn
14: StackMap locals: int int[] int[]
StackMap stack:
aload 3
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.normalize:([I)V
15: iload 5
iconst_1
if_icmpne 17
aload 3
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.isZeroVar:([I)Z
ifeq 17
16: iconst_0
ireturn
17: StackMap locals:
StackMap stack:
iload 2
iload 5
aload 3
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
iconst_0
iaload
iconst_1
iand
if_icmpeq 18
iconst_1
goto 19
StackMap locals:
StackMap stack: int
18: iconst_0
StackMap locals: byte[] int int org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt byte[] int int[] int[]
StackMap stack: int int
19: ixor
ifeq 21
20: aload 3
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
aload 3
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.negate:([I[I)V
21: StackMap locals:
StackMap stack:
aload 3
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointExtendXY:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
22: iconst_1
ireturn
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 23 0 p [B
0 23 1 pOff I
0 23 2 negate Z
0 23 3 r Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
1 23 4 py [B
4 23 5 x_0 I
7 23 6 u [I
8 23 7 v [I
MethodParameters:
Name Flags
p
pOff
negate
r
private static void decodeScalar(byte[], int, int[]);
descriptor: ([BI[I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aload 2
iconst_0
bipush 8
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI[III)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 k [B
0 2 1 kOff I
0 2 2 n [I
MethodParameters:
Name Flags
k
kOff
n
private static void dom2(org.bouncycastle.crypto.Digest, byte, byte[]);
descriptor: (Lorg/bouncycastle/crypto/Digest;B[B)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 5
1: aload 0
getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.DOM2_PREFIX:[B
iconst_0
getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.DOM2_PREFIX:[B
arraylength
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
2: aload 0
iload 1
invokeinterface org.bouncycastle.crypto.Digest.update:(B)V
3: aload 0
aload 2
arraylength
i2b
invokeinterface org.bouncycastle.crypto.Digest.update:(B)V
4: aload 0
aload 2
iconst_0
aload 2
arraylength
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
5: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 d Lorg/bouncycastle/crypto/Digest;
0 6 1 phflag B
0 6 2 ctx [B
MethodParameters:
Name Flags
d
phflag
ctx
private static void encode24(int, byte[], int);
descriptor: (I[BI)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
iload 2
iload 0
i2b
bastore
1: aload 1
iinc 2 1
iload 2
iload 0
bipush 8
iushr
i2b
bastore
2: aload 1
iinc 2 1
iload 2
iload 0
bipush 16
iushr
i2b
bastore
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 n I
0 4 1 bs [B
0 4 2 off I
MethodParameters:
Name Flags
n
bs
off
private static void encode32(int, byte[], int);
descriptor: (I[BI)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
iload 2
iload 0
i2b
bastore
1: aload 1
iinc 2 1
iload 2
iload 0
bipush 8
iushr
i2b
bastore
2: aload 1
iinc 2 1
iload 2
iload 0
bipush 16
iushr
i2b
bastore
3: aload 1
iinc 2 1
iload 2
iload 0
bipush 24
iushr
i2b
bastore
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 n I
0 5 1 bs [B
0 5 2 off I
MethodParameters:
Name Flags
n
bs
off
private static void encode56(long, byte[], int);
descriptor: (J[BI)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 2 start local 3 0: lload 0
l2i
aload 2
iload 3
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encode32:(I[BI)V
1: lload 0
bipush 32
lushr
l2i
aload 2
iload 3
iconst_4
iadd
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encode24:(I[BI)V
2: return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 n J
0 3 2 bs [B
0 3 3 off I
MethodParameters:
Name Flags
n
bs
off
private static void encodePoint(org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum, byte[], int);
descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;[BI)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 3
start local 3 1: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 4
start local 4 2: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
aload 4
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.inv:([I[I)V
3: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
aload 4
aload 3
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
4: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
aload 4
aload 4
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
5: aload 3
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.normalize:([I)V
6: aload 4
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.normalize:([I)V
7: aload 4
aload 1
iload 2
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.encode:([I[BI)V
8: aload 1
iload 2
bipush 32
iadd
iconst_1
isub
dup2
baload
aload 3
iconst_0
iaload
iconst_1
iand
bipush 7
ishl
ior
i2b
bastore
9: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 p Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
0 10 1 r [B
0 10 2 rOff I
1 10 3 x [I
2 10 4 y [I
MethodParameters:
Name Flags
p
r
rOff
public static void generatePrivateKey(java.security.SecureRandom, byte[]);
descriptor: (Ljava/security/SecureRandom;[B)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.security.SecureRandom.nextBytes:([B)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 random Ljava/security/SecureRandom;
0 2 1 k [B
MethodParameters:
Name Flags
random
k
public static void generatePublicKey(byte[], int, byte[], int);
descriptor: ([BI[BI)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.createDigest:()Lorg/bouncycastle/crypto/Digest;
astore 4
start local 4 1: aload 4
invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
newarray 8
astore 5
start local 5 2: aload 4
aload 0
iload 1
bipush 32
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
3: aload 4
aload 5
iconst_0
invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
pop
4: bipush 32
newarray 8
astore 6
start local 6 5: aload 5
iconst_0
aload 6
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pruneScalar:([BI[B)V
6: aload 6
aload 2
iload 3
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.scalarMultBaseEncoded:([B[BI)V
7: 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 8 0 sk [B
0 8 1 skOff I
0 8 2 pk [B
0 8 3 pkOff I
1 8 4 d Lorg/bouncycastle/crypto/Digest;
2 8 5 h [B
5 8 6 s [B
MethodParameters:
Name Flags
sk
skOff
pk
pkOff
private static byte[] getWNAF(int[], int);
descriptor: ([II)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=14, args_size=2
start local 0 start local 1 0: bipush 16
newarray 10
astore 2
start local 2 1: aload 2
arraylength
istore 3
start local 3 2: iconst_0
istore 4
start local 4 3: bipush 8
istore 5
start local 5 4: goto 8
5: StackMap locals: int[] int int[] int int int
StackMap stack:
aload 0
iload 5
iaload
istore 6
start local 6 6: aload 2
iinc 3 -1
iload 3
iload 6
bipush 16
iushr
iload 4
bipush 16
ishl
ior
iastore
7: aload 2
iinc 3 -1
iload 3
iload 6
dup
istore 4
iastore
end local 6 8: StackMap locals:
StackMap stack:
iinc 5 -1
iload 5
ifge 5
end local 5 end local 4 end local 3 9: sipush 256
newarray 8
astore 3
start local 3 10: iconst_1
iload 1
ishl
istore 4
start local 4 11: iload 4
iconst_1
isub
istore 5
start local 5 12: iload 4
iconst_1
iushr
istore 6
start local 6 13: iconst_0
istore 7
start local 7 14: iconst_0
istore 8
start local 8 15: iconst_0
istore 9
start local 9 16: goto 32
17: StackMap locals: int[] int int[] byte[] int int int int int int
StackMap stack:
aload 2
iload 9
iaload
istore 10
start local 10 18: goto 30
19: StackMap locals: int
StackMap stack:
iload 10
iload 7
iushr
istore 11
start local 11 20: iload 11
iconst_1
iand
istore 12
start local 12 21: iload 12
iload 8
if_icmpne 24
22: iinc 7 1
23: goto 30
24: StackMap locals: int int
StackMap stack:
iload 11
iload 5
iand
iload 8
iadd
istore 13
start local 13 25: iload 13
iload 6
iand
istore 8
26: iload 13
iload 8
iconst_1
ishl
isub
istore 13
27: iload 8
iload 1
iconst_1
isub
iushr
istore 8
28: aload 3
iload 9
iconst_4
ishl
iload 7
iadd
iload 13
i2b
bastore
29: iload 7
iload 1
iadd
istore 7
end local 13 end local 12 end local 11 30: StackMap locals:
StackMap stack:
iload 7
bipush 16
if_icmplt 19
end local 10 31: iinc 9 1
iinc 7 -16
StackMap locals:
StackMap stack:
32: iload 9
aload 2
arraylength
if_icmplt 17
end local 9 33: aload 3
areturn
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 34 0 n [I
0 34 1 width I
1 34 2 t [I
2 9 3 tPos I
3 9 4 c I
4 9 5 i I
6 8 6 next I
10 34 3 ws [B
11 34 4 pow2 I
12 34 5 mask I
13 34 6 sign I
14 34 7 j I
15 34 8 carry I
16 33 9 i I
18 31 10 word I
20 30 11 word16 I
21 30 12 bit I
25 30 13 digit I
MethodParameters:
Name Flags
n
width
private static void implSign(org.bouncycastle.crypto.Digest, byte[], byte[], byte[], int, byte[], byte, byte[], int, int, byte[], int);
descriptor: (Lorg/bouncycastle/crypto/Digest;[B[B[BI[BB[BII[BI)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=16, args_size=12
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 start local 9 start local 10 start local 11 0: aload 0
iload 6
aload 5
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.dom2:(Lorg/bouncycastle/crypto/Digest;B[B)V
1: aload 0
aload 1
bipush 32
bipush 32
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
2: aload 0
aload 7
iload 8
iload 9
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
3: aload 0
aload 1
iconst_0
invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
pop
4: aload 1
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.reduceScalar:([B)[B
astore 12
start local 12 5: bipush 32
newarray 8
astore 13
start local 13 6: aload 12
aload 13
iconst_0
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.scalarMultBaseEncoded:([B[BI)V
7: aload 0
iload 6
aload 5
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.dom2:(Lorg/bouncycastle/crypto/Digest;B[B)V
8: aload 0
aload 13
iconst_0
bipush 32
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
9: aload 0
aload 3
iload 4
bipush 32
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
10: aload 0
aload 7
iload 8
iload 9
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
11: aload 0
aload 1
iconst_0
invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
pop
12: aload 1
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.reduceScalar:([B)[B
astore 14
start local 14 13: aload 12
aload 14
aload 2
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.calculateS:([B[B[B)[B
astore 15
start local 15 14: aload 13
iconst_0
aload 10
iload 11
bipush 32
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
15: aload 15
iconst_0
aload 10
iload 11
bipush 32
iadd
bipush 32
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
16: return
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 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 17 0 d Lorg/bouncycastle/crypto/Digest;
0 17 1 h [B
0 17 2 s [B
0 17 3 pk [B
0 17 4 pkOff I
0 17 5 ctx [B
0 17 6 phflag B
0 17 7 m [B
0 17 8 mOff I
0 17 9 mLen I
0 17 10 sig [B
0 17 11 sigOff I
5 17 12 r [B
6 17 13 R [B
13 17 14 k [B
14 17 15 S [B
MethodParameters:
Name Flags
d
h
s
pk
pkOff
ctx
phflag
m
mOff
mLen
sig
sigOff
private static void implSign(byte[], int, byte[], byte, byte[], int, int, byte[], int);
descriptor: ([BI[BB[BII[BI)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=12, locals=13, 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 2
iload 3
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.checkContextVar:([BB)Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "ctx"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.createDigest:()Lorg/bouncycastle/crypto/Digest;
astore 9
start local 9 3: aload 9
invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
newarray 8
astore 10
start local 10 4: aload 9
aload 0
iload 1
bipush 32
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
5: aload 9
aload 10
iconst_0
invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
pop
6: bipush 32
newarray 8
astore 11
start local 11 7: aload 10
iconst_0
aload 11
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pruneScalar:([BI[B)V
8: bipush 32
newarray 8
astore 12
start local 12 9: aload 11
aload 12
iconst_0
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.scalarMultBaseEncoded:([B[BI)V
10: aload 9
aload 10
aload 11
aload 12
iconst_0
aload 2
iload 3
aload 4
iload 5
iload 6
aload 7
iload 8
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:(Lorg/bouncycastle/crypto/Digest;[B[B[BI[BB[BII[BI)V
11: return
end local 12 end local 11 end local 10 end local 9 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 12 0 sk [B
0 12 1 skOff I
0 12 2 ctx [B
0 12 3 phflag B
0 12 4 m [B
0 12 5 mOff I
0 12 6 mLen I
0 12 7 sig [B
0 12 8 sigOff I
3 12 9 d Lorg/bouncycastle/crypto/Digest;
4 12 10 h [B
7 12 11 s [B
9 12 12 pk [B
MethodParameters:
Name Flags
sk
skOff
ctx
phflag
m
mOff
mLen
sig
sigOff
private static void implSign(byte[], int, byte[], int, byte[], byte, byte[], int, int, byte[], int);
descriptor: ([BI[BI[BB[BII[BI)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=12, locals=14, args_size=11
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 start local 9 start local 10 0: aload 4
iload 5
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.checkContextVar:([BB)Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "ctx"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.createDigest:()Lorg/bouncycastle/crypto/Digest;
astore 11
start local 11 3: aload 11
invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
newarray 8
astore 12
start local 12 4: aload 11
aload 0
iload 1
bipush 32
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
5: aload 11
aload 12
iconst_0
invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
pop
6: bipush 32
newarray 8
astore 13
start local 13 7: aload 12
iconst_0
aload 13
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pruneScalar:([BI[B)V
8: aload 11
aload 12
aload 13
aload 2
iload 3
aload 4
iload 5
aload 6
iload 7
iload 8
aload 9
iload 10
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:(Lorg/bouncycastle/crypto/Digest;[B[B[BI[BB[BII[BI)V
9: return
end local 13 end local 12 end local 11 end local 10 end local 9 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 10 0 sk [B
0 10 1 skOff I
0 10 2 pk [B
0 10 3 pkOff I
0 10 4 ctx [B
0 10 5 phflag B
0 10 6 m [B
0 10 7 mOff I
0 10 8 mLen I
0 10 9 sig [B
0 10 10 sigOff I
3 10 11 d Lorg/bouncycastle/crypto/Digest;
4 10 12 h [B
7 10 13 s [B
MethodParameters:
Name Flags
sk
skOff
pk
pkOff
ctx
phflag
m
mOff
mLen
sig
sigOff
private static boolean implVerify(byte[], int, byte[], int, byte[], byte, byte[], int, int);
descriptor: ([BI[BI[BB[BII)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=19, 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 4
iload 5
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.checkContextVar:([BB)Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "ctx"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 1
bipush 32
iadd
invokestatic org.bouncycastle.util.Arrays.copyOfRange:([BII)[B
astore 9
start local 9 3: aload 0
iload 1
bipush 32
iadd
iload 1
bipush 64
iadd
invokestatic org.bouncycastle.util.Arrays.copyOfRange:([BII)[B
astore 10
start local 10 4: aload 9
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.checkPointVar:([B)Z
ifne 6
5: iconst_0
ireturn
6: StackMap locals: byte[] byte[]
StackMap stack:
aload 10
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.checkScalarVar:([B)Z
ifne 8
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack:
new org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
dup
invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.<init>:()V
astore 11
start local 11 9: aload 2
iload 3
iconst_1
aload 11
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decodePointVar:([BIZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)Z
ifne 11
10: iconst_0
ireturn
11: StackMap locals: org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
StackMap stack:
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.createDigest:()Lorg/bouncycastle/crypto/Digest;
astore 12
start local 12 12: aload 12
invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
newarray 8
astore 13
start local 13 13: aload 12
iload 5
aload 4
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.dom2:(Lorg/bouncycastle/crypto/Digest;B[B)V
14: aload 12
aload 9
iconst_0
bipush 32
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
15: aload 12
aload 2
iload 3
bipush 32
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
16: aload 12
aload 6
iload 7
iload 8
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
17: aload 12
aload 13
iconst_0
invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
pop
18: aload 13
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.reduceScalar:([B)[B
astore 14
start local 14 19: bipush 8
newarray 10
astore 15
start local 15 20: aload 10
iconst_0
aload 15
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decodeScalar:([BI[I)V
21: bipush 8
newarray 10
astore 16
start local 16 22: aload 14
iconst_0
aload 16
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decodeScalar:([BI[I)V
23: new org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum
dup
invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.<init>:()V
astore 17
start local 17 24: aload 15
aload 16
aload 11
aload 17
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.scalarMultStraussVar:([I[ILorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
25: bipush 32
newarray 8
astore 18
start local 18 26: aload 17
aload 18
iconst_0
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encodePoint:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;[BI)V
27: aload 18
aload 9
invokestatic org.bouncycastle.util.Arrays.areEqual:([B[B)Z
ireturn
end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 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 28 0 sig [B
0 28 1 sigOff I
0 28 2 pk [B
0 28 3 pkOff I
0 28 4 ctx [B
0 28 5 phflag B
0 28 6 m [B
0 28 7 mOff I
0 28 8 mLen I
3 28 9 R [B
4 28 10 S [B
9 28 11 pA Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
12 28 12 d Lorg/bouncycastle/crypto/Digest;
13 28 13 h [B
19 28 14 k [B
20 28 15 nS [I
22 28 16 nA [I
24 28 17 pR Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
26 28 18 check [B
MethodParameters:
Name Flags
sig
sigOff
pk
pkOff
ctx
phflag
m
mOff
mLen
private static void pointAddVar(boolean, org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt, org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum);
descriptor: (ZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=15, args_size=3
start local 0 start local 1 start local 2 0: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 3
start local 3 1: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 4
start local 4 2: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 5
start local 5 3: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 6
start local 6 4: aload 2
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.u:[I
astore 7
start local 7 5: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 8
start local 8 6: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 9
start local 9 7: aload 2
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.v:[I
astore 10
start local 10 8: iload 0
ifeq 14
9: aload 6
astore 11
start local 11 10: aload 5
astore 12
start local 12 11: aload 9
astore 13
start local 13 12: aload 8
astore 14
start local 14 13: goto 18
end local 14 end local 13 end local 12 end local 11 14: StackMap locals: int org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum int[] int[] int[] int[] int[] int[] int[] int[]
StackMap stack:
aload 5
astore 11
start local 11 15: aload 6
astore 12
start local 12 16: aload 8
astore 13
start local 13 17: aload 9
astore 14
start local 14 18: StackMap locals: int org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum int[] int[] int[] int[] int[] int[] int[] int[] int[] int[] int[] int[]
StackMap stack:
aload 2
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
aload 2
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
aload 4
aload 3
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
19: aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
aload 12
aload 11
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
20: aload 3
aload 5
aload 3
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
21: aload 4
aload 6
aload 4
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
22: aload 2
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.u:[I
aload 2
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.v:[I
aload 5
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
23: aload 5
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
aload 5
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
24: aload 5
getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.C_d2:[I
aload 5
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
25: aload 2
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
aload 6
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
26: aload 6
aload 6
aload 6
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.add:([I[I[I)V
27: aload 4
aload 3
aload 10
aload 7
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
28: aload 6
aload 5
aload 14
aload 13
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
29: aload 14
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.carry:([I)V
30: aload 7
aload 8
aload 2
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
31: aload 9
aload 10
aload 2
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
32: aload 8
aload 9
aload 2
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
33: return
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 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 34 0 negate Z
0 34 1 p Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
0 34 2 r Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
1 34 3 A [I
2 34 4 B [I
3 34 5 C [I
4 34 6 D [I
5 34 7 E [I
6 34 8 F [I
7 34 9 G [I
8 34 10 H [I
10 14 11 c [I
15 34 11 c [I
11 14 12 d [I
16 34 12 d [I
12 14 13 f [I
17 34 13 f [I
13 14 14 g [I
18 34 14 g [I
MethodParameters:
Name Flags
negate
p
r
private static void pointAddVar(boolean, org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt, org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt, org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt);
descriptor: (ZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=16, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 4
start local 4 1: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 5
start local 5 2: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 6
start local 6 3: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 7
start local 7 4: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 8
start local 8 5: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 9
start local 9 6: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 10
start local 10 7: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 11
start local 11 8: iload 0
ifeq 14
9: aload 7
astore 12
start local 12 10: aload 6
astore 13
start local 13 11: aload 10
astore 14
start local 14 12: aload 9
astore 15
start local 15 13: goto 18
end local 15 end local 14 end local 13 end local 12 14: StackMap locals: int org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt int[] int[] int[] int[] int[] int[] int[] int[]
StackMap stack:
aload 6
astore 12
start local 12 15: aload 7
astore 13
start local 13 16: aload 9
astore 14
start local 14 17: aload 10
astore 15
start local 15 18: StackMap locals: int org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt int[] int[] int[] int[] int[] int[] int[] int[] int[] int[] int[] int[]
StackMap stack:
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
aload 5
aload 4
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
19: aload 2
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
aload 2
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
aload 13
aload 12
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
20: aload 4
aload 6
aload 4
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
21: aload 5
aload 7
aload 5
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
22: aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
aload 2
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
aload 6
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
23: aload 6
getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.C_d2:[I
aload 6
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
24: aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
aload 2
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
aload 7
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
25: aload 7
aload 7
aload 7
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.add:([I[I[I)V
26: aload 5
aload 4
aload 11
aload 8
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
27: aload 7
aload 6
aload 15
aload 14
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
28: aload 15
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.carry:([I)V
29: aload 8
aload 9
aload 3
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
30: aload 10
aload 11
aload 3
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
31: aload 9
aload 10
aload 3
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
32: aload 8
aload 11
aload 3
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
33: return
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 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 34 0 negate Z
0 34 1 p Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
0 34 2 q Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
0 34 3 r Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
1 34 4 A [I
2 34 5 B [I
3 34 6 C [I
4 34 7 D [I
5 34 8 E [I
6 34 9 F [I
7 34 10 G [I
8 34 11 H [I
10 14 12 c [I
15 34 12 c [I
11 14 13 d [I
16 34 13 d [I
12 14 14 f [I
17 34 14 f [I
13 14 15 g [I
18 34 15 g [I
MethodParameters:
Name Flags
negate
p
q
r
private static void pointAddPrecomp(org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp, org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum);
descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointPrecomp;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 2
start local 2 1: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 3
start local 3 2: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 4
start local 4 3: aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.u:[I
astore 5
start local 5 4: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 6
start local 6 5: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 7
start local 7 6: aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.v:[I
astore 8
start local 8 7: aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
aload 3
aload 2
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
8: aload 2
aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ymx_h:[I
aload 2
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
9: aload 3
aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ypx_h:[I
aload 3
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
10: aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.u:[I
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.v:[I
aload 4
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
11: aload 4
aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.xyd:[I
aload 4
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
12: aload 3
aload 2
aload 8
aload 5
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
13: aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
aload 4
aload 7
aload 6
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
14: aload 7
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.carry:([I)V
15: aload 5
aload 6
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
16: aload 7
aload 8
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
17: aload 6
aload 7
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
18: 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 19 0 p Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointPrecomp;
0 19 1 r Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
1 19 2 A [I
2 19 3 B [I
3 19 4 C [I
4 19 5 E [I
5 19 6 F [I
6 19 7 G [I
7 19 8 H [I
MethodParameters:
Name Flags
p
r
private static org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt pointCopy(org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum);
descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
dup
invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.<init>:()V
astore 1
start local 1 1: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
iconst_0
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
iconst_0
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
2: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
iconst_0
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
iconst_0
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
3: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
iconst_0
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
iconst_0
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
4: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.u:[I
aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.v:[I
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
5: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 p Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
1 6 1 r Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
MethodParameters:
Name Flags
p
private static org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt pointCopy(org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt);
descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
dup
invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.<init>:()V
astore 1
start local 1 1: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
iconst_0
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
iconst_0
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
2: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
iconst_0
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
iconst_0
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
3: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
iconst_0
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
iconst_0
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
4: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
iconst_0
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
iconst_0
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
5: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 p Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
1 6 1 r Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
MethodParameters:
Name Flags
p
private static void pointDouble(org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum);
descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=1
start local 0 0: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 1
start local 1 1: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 2
start local 2 2: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 3
start local 3 3: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.u:[I
astore 4
start local 4 4: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 5
start local 5 5: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 6
start local 6 6: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.v:[I
astore 7
start local 7 7: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
aload 1
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.sqr:([I[I)V
8: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
aload 2
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.sqr:([I[I)V
9: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
aload 3
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.sqr:([I[I)V
10: aload 3
aload 3
aload 3
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.add:([I[I[I)V
11: aload 1
aload 2
aload 7
aload 6
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
12: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
aload 4
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.add:([I[I[I)V
13: aload 4
aload 4
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.sqr:([I[I)V
14: aload 7
aload 4
aload 4
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.sub:([I[I[I)V
15: aload 3
aload 6
aload 5
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.add:([I[I[I)V
16: aload 5
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.carry:([I)V
17: aload 4
aload 5
aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
18: aload 6
aload 7
aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
19: aload 5
aload 6
aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
20: return
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 21 0 r Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
1 21 1 A [I
2 21 2 B [I
3 21 3 C [I
4 21 4 E [I
5 21 5 F [I
6 21 6 G [I
7 21 7 H [I
MethodParameters:
Name Flags
r
private static void pointExtendXY(org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum);
descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.one:([I)V
1: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
iconst_0
aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.u:[I
iconst_0
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
2: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
iconst_0
aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.v:[I
iconst_0
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 p Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
MethodParameters:
Name Flags
p
private static void pointExtendXY(org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt);
descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.one:([I)V
1: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 p Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
MethodParameters:
Name Flags
p
private static void pointLookup(int, int, org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp);
descriptor: (IILorg/bouncycastle/math/ec/rfc8032/Ed25519$PointPrecomp;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iload 0
bipush 8
imul
iconst_3
imul
bipush 10
imul
istore 3
start local 3 1: iconst_0
istore 4
start local 4 2: goto 8
3: StackMap locals: int int
StackMap stack:
iload 4
iload 1
ixor
iconst_1
isub
bipush 31
ishr
istore 5
start local 5 4: bipush 10
iload 5
getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
iload 3
aload 2
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ypx_h:[I
iconst_0
invokestatic org.bouncycastle.math.raw.Nat.cmov:(II[II[II)V
iinc 3 10
5: bipush 10
iload 5
getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
iload 3
aload 2
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ymx_h:[I
iconst_0
invokestatic org.bouncycastle.math.raw.Nat.cmov:(II[II[II)V
iinc 3 10
6: bipush 10
iload 5
getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
iload 3
aload 2
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.xyd:[I
iconst_0
invokestatic org.bouncycastle.math.raw.Nat.cmov:(II[II[II)V
iinc 3 10
end local 5 7: iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
bipush 8
if_icmplt 3
end local 4 9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 block I
0 10 1 index I
0 10 2 p Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointPrecomp;
1 10 3 off I
2 9 4 i I
4 7 5 mask I
MethodParameters:
Name Flags
block
index
p
private static org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] pointPrecompVar(org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt, int);
descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;I)[Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=5, args_size=2
start local 0 start local 1 0: new org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
dup
invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.<init>:()V
astore 2
start local 2 1: iconst_0
aload 0
aload 0
aload 2
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointAddVar:(ZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
2: iload 1
anewarray org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
astore 3
start local 3 3: aload 3
iconst_0
aload 0
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointCopy:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
aastore
4: iconst_1
istore 4
start local 4 5: goto 8
6: StackMap locals: org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] int
StackMap stack:
iconst_0
aload 3
iload 4
iconst_1
isub
aaload
aload 2
aload 3
iload 4
new org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
dup
invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.<init>:()V
dup_x2
aastore
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointAddVar:(ZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
7: iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
iload 1
if_icmplt 6
end local 4 9: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 p Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
0 10 1 count I
1 10 2 d Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
3 10 3 table [Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
5 9 4 i I
MethodParameters:
Name Flags
p
count
private static void pointSetNeutral(org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum);
descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.zero:([I)V
1: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.one:([I)V
2: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.one:([I)V
3: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.u:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.zero:([I)V
4: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.v:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.one:([I)V
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 p Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
MethodParameters:
Name Flags
p
private static void pointSetNeutral(org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt);
descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.zero:([I)V
1: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.one:([I)V
2: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.one:([I)V
3: aload 0
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.zero:([I)V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 p Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
MethodParameters:
Name Flags
p
public static void precompute();
descriptor: ()V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=13, args_size=0
0: getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompLock:Ljava/lang/Object;
dup
astore 0
monitorenter
1: getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
ifnull 4
2: aload 0
monitorexit
3: return
4: StackMap locals: java.lang.Object
StackMap stack:
new org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
dup
invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.<init>:()V
astore 1
start local 1 5: getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.B_x:[I
iconst_0
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
iconst_0
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
6: getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.B_y:[I
iconst_0
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
iconst_0
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
7: aload 1
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointExtendXY:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
8: aload 1
bipush 32
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointPrecompVar:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;I)[Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBaseTable:[Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
end local 1 9: new org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum
dup
invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.<init>:()V
astore 1
start local 1 10: getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.B_x:[I
iconst_0
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
iconst_0
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
11: getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.B_y:[I
iconst_0
aload 1
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
iconst_0
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
12: aload 1
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointExtendXY:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
13: sipush 1920
newarray 10
putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
14: iconst_0
istore 2
start local 2 15: iconst_0
istore 3
start local 3 16: goto 68
17: StackMap locals: org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum int int
StackMap stack:
iconst_4
anewarray org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
astore 4
start local 4 18: new org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
dup
invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.<init>:()V
astore 5
start local 5 19: aload 5
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointSetNeutral:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
20: iconst_0
istore 6
start local 6 21: goto 33
22: StackMap locals: org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt int
StackMap stack:
aload 1
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointCopy:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
astore 7
start local 7 23: iconst_1
aload 5
aload 7
aload 5
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointAddVar:(ZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
24: aload 1
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointDouble:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
25: aload 4
iload 6
aload 1
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointCopy:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
aastore
26: iload 3
iload 6
iadd
bipush 10
if_icmpeq 32
27: iconst_1
istore 8
start local 8 28: goto 31
29: StackMap locals: org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt int
StackMap stack:
aload 1
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointDouble:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
30: iinc 8 1
StackMap locals:
StackMap stack:
31: iload 8
bipush 8
if_icmplt 29
end local 8 end local 7 32: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
33: iload 6
iconst_4
if_icmplt 22
end local 6 34: bipush 8
anewarray org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
astore 6
start local 6 35: iconst_0
istore 7
start local 7 36: aload 6
iload 7
iinc 7 1
aload 5
aastore
37: iconst_0
istore 8
start local 8 38: goto 46
39: StackMap locals: java.lang.Object org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum int int org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] int int
StackMap stack:
iconst_1
iload 8
ishl
istore 9
start local 9 40: iconst_0
istore 10
start local 10 41: goto 44
42: StackMap locals: int int
StackMap stack:
iconst_0
aload 6
iload 7
iload 9
isub
aaload
aload 4
iload 8
aaload
aload 6
iload 7
new org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
dup
invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.<init>:()V
dup_x2
aastore
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointAddVar:(ZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
43: iinc 10 1
iinc 7 1
StackMap locals:
StackMap stack:
44: iload 10
iload 9
if_icmplt 42
end local 10 end local 9 45: iinc 8 1
StackMap locals:
StackMap stack:
46: iload 8
iconst_3
if_icmplt 39
end local 8 47: iconst_0
istore 8
start local 8 48: goto 66
49: StackMap locals:
StackMap stack:
aload 6
iload 8
aaload
astore 9
start local 9 50: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 10
start local 10 51: invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
astore 11
start local 11 52: aload 9
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
aload 9
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
aload 10
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.add:([I[I[I)V
53: aload 10
aload 11
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.inv:([I[I)V
54: aload 9
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
aload 11
aload 10
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
55: aload 9
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
aload 11
aload 11
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
56: new org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp
dup
invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.<init>:()V
astore 12
start local 12 57: aload 11
aload 10
aload 12
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ypx_h:[I
aload 12
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ymx_h:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
58: aload 10
aload 11
aload 12
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.xyd:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
59: aload 12
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.xyd:[I
getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.C_d4:[I
aload 12
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.xyd:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
60: aload 12
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ypx_h:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.normalize:([I)V
61: aload 12
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ymx_h:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.normalize:([I)V
62: aload 12
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ypx_h:[I
iconst_0
getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
iload 2
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
iinc 2 10
63: aload 12
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ymx_h:[I
iconst_0
getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
iload 2
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
iinc 2 10
64: aload 12
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.xyd:[I
iconst_0
getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
iload 2
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
iinc 2 10
end local 12 end local 11 end local 10 end local 9 65: iinc 8 1
StackMap locals:
StackMap stack:
66: iload 8
bipush 8
if_icmplt 49
end local 8 end local 7 end local 6 end local 5 end local 4 67: iinc 3 1
StackMap locals: java.lang.Object org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum int int
StackMap stack:
68: iload 3
bipush 8
if_icmplt 17
end local 3 end local 2 end local 1 69: aload 0
monitorexit
70: goto 73
StackMap locals: java.lang.Object
StackMap stack: java.lang.Throwable
71: aload 0
monitorexit
72: athrow
73: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
5 9 1 b Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
10 69 1 p Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
15 69 2 off I
16 69 3 b I
18 67 4 ds [Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
19 67 5 sum Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
21 34 6 t I
23 32 7 q Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
28 32 8 s I
35 67 6 points [Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
36 67 7 k I
38 47 8 t I
40 45 9 size I
41 45 10 j I
48 67 8 i I
50 65 9 q Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
51 65 10 x [I
52 65 11 y [I
57 65 12 r Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointPrecomp;
Exception table:
from to target type
1 3 71 any
4 70 71 any
71 72 71 any
private static void pruneScalar(byte[], int, byte[]);
descriptor: ([BI[B)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aload 2
iconst_0
bipush 32
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
1: aload 2
iconst_0
dup2
baload
sipush 248
iand
i2b
bastore
2: aload 2
bipush 31
dup2
baload
bipush 127
iand
i2b
bastore
3: aload 2
bipush 31
dup2
baload
bipush 64
ior
i2b
bastore
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 n [B
0 5 1 nOff I
0 5 2 r [B
MethodParameters:
Name Flags
n
nOff
r
private static byte[] reduceScalar(byte[]);
descriptor: ([B)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=42, args_size=1
start local 0 0: aload 0
iconst_0
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
i2l
ldc 4294967295
land
lstore 1
start local 1 1: aload 0
iconst_4
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
iconst_4
ishl
i2l
ldc 4294967295
land
lstore 3
start local 3 2: aload 0
bipush 7
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
i2l
ldc 4294967295
land
lstore 5
start local 5 3: aload 0
bipush 11
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
iconst_4
ishl
i2l
ldc 4294967295
land
lstore 7
start local 7 4: aload 0
bipush 14
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
i2l
ldc 4294967295
land
lstore 9
start local 9 5: aload 0
bipush 18
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
iconst_4
ishl
i2l
ldc 4294967295
land
lstore 11
start local 11 6: aload 0
bipush 21
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
i2l
ldc 4294967295
land
lstore 13
start local 13 7: aload 0
bipush 25
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
iconst_4
ishl
i2l
ldc 4294967295
land
lstore 15
start local 15 8: aload 0
bipush 28
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
i2l
ldc 4294967295
land
lstore 17
start local 17 9: aload 0
bipush 32
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
iconst_4
ishl
i2l
ldc 4294967295
land
lstore 19
start local 19 10: aload 0
bipush 35
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
i2l
ldc 4294967295
land
lstore 21
start local 21 11: aload 0
bipush 39
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
iconst_4
ishl
i2l
ldc 4294967295
land
lstore 23
start local 23 12: aload 0
bipush 42
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
i2l
ldc 4294967295
land
lstore 25
start local 25 13: aload 0
bipush 46
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
iconst_4
ishl
i2l
ldc 4294967295
land
lstore 27
start local 27 14: aload 0
bipush 49
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
i2l
ldc 4294967295
land
lstore 29
start local 29 15: aload 0
bipush 53
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
iconst_4
ishl
i2l
ldc 4294967295
land
lstore 31
start local 31 16: aload 0
bipush 56
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
i2l
ldc 4294967295
land
lstore 33
start local 33 17: aload 0
bipush 60
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
iconst_4
ishl
i2l
ldc 4294967295
land
lstore 35
start local 35 18: aload 0
bipush 63
baload
i2l
ldc 255
land
lstore 37
start local 37 19: lload 19
lload 37
ldc -50998291
lmul
lsub
lstore 19
20: lload 21
lload 37
ldc 19280294
lmul
lsub
lstore 21
21: lload 23
lload 37
ldc 127719000
lmul
lsub
lstore 23
22: lload 25
lload 37
ldc -6428113
lmul
lsub
lstore 25
23: lload 27
lload 37
ldc 5343
lmul
lsub
lstore 27
24: lload 35
lload 33
bipush 28
lshr
ladd
lstore 35
lload 33
ldc 268435455
land
lstore 33
25: lload 17
lload 35
ldc -50998291
lmul
lsub
lstore 17
26: lload 19
lload 35
ldc 19280294
lmul
lsub
lstore 19
27: lload 21
lload 35
ldc 127719000
lmul
lsub
lstore 21
28: lload 23
lload 35
ldc -6428113
lmul
lsub
lstore 23
29: lload 25
lload 35
ldc 5343
lmul
lsub
lstore 25
30: lload 15
lload 33
ldc -50998291
lmul
lsub
lstore 15
31: lload 17
lload 33
ldc 19280294
lmul
lsub
lstore 17
32: lload 19
lload 33
ldc 127719000
lmul
lsub
lstore 19
33: lload 21
lload 33
ldc -6428113
lmul
lsub
lstore 21
34: lload 23
lload 33
ldc 5343
lmul
lsub
lstore 23
35: lload 31
lload 29
bipush 28
lshr
ladd
lstore 31
lload 29
ldc 268435455
land
lstore 29
36: lload 13
lload 31
ldc -50998291
lmul
lsub
lstore 13
37: lload 15
lload 31
ldc 19280294
lmul
lsub
lstore 15
38: lload 17
lload 31
ldc 127719000
lmul
lsub
lstore 17
39: lload 19
lload 31
ldc -6428113
lmul
lsub
lstore 19
40: lload 21
lload 31
ldc 5343
lmul
lsub
lstore 21
41: lload 11
lload 29
ldc -50998291
lmul
lsub
lstore 11
42: lload 13
lload 29
ldc 19280294
lmul
lsub
lstore 13
43: lload 15
lload 29
ldc 127719000
lmul
lsub
lstore 15
44: lload 17
lload 29
ldc -6428113
lmul
lsub
lstore 17
45: lload 19
lload 29
ldc 5343
lmul
lsub
lstore 19
46: lload 27
lload 25
bipush 28
lshr
ladd
lstore 27
lload 25
ldc 268435455
land
lstore 25
47: lload 9
lload 27
ldc -50998291
lmul
lsub
lstore 9
48: lload 11
lload 27
ldc 19280294
lmul
lsub
lstore 11
49: lload 13
lload 27
ldc 127719000
lmul
lsub
lstore 13
50: lload 15
lload 27
ldc -6428113
lmul
lsub
lstore 15
51: lload 17
lload 27
ldc 5343
lmul
lsub
lstore 17
52: lload 25
lload 23
bipush 28
lshr
ladd
lstore 25
lload 23
ldc 268435455
land
lstore 23
53: lload 7
lload 25
ldc -50998291
lmul
lsub
lstore 7
54: lload 9
lload 25
ldc 19280294
lmul
lsub
lstore 9
55: lload 11
lload 25
ldc 127719000
lmul
lsub
lstore 11
56: lload 13
lload 25
ldc -6428113
lmul
lsub
lstore 13
57: lload 15
lload 25
ldc 5343
lmul
lsub
lstore 15
58: lload 23
lload 21
bipush 28
lshr
ladd
lstore 23
lload 21
ldc 268435455
land
lstore 21
59: lload 5
lload 23
ldc -50998291
lmul
lsub
lstore 5
60: lload 7
lload 23
ldc 19280294
lmul
lsub
lstore 7
61: lload 9
lload 23
ldc 127719000
lmul
lsub
lstore 9
62: lload 11
lload 23
ldc -6428113
lmul
lsub
lstore 11
63: lload 13
lload 23
ldc 5343
lmul
lsub
lstore 13
64: lload 21
lload 19
bipush 28
lshr
ladd
lstore 21
lload 19
ldc 268435455
land
lstore 19
65: lload 3
lload 21
ldc -50998291
lmul
lsub
lstore 3
66: lload 5
lload 21
ldc 19280294
lmul
lsub
lstore 5
67: lload 7
lload 21
ldc 127719000
lmul
lsub
lstore 7
68: lload 9
lload 21
ldc -6428113
lmul
lsub
lstore 9
69: lload 11
lload 21
ldc 5343
lmul
lsub
lstore 11
70: lload 17
lload 15
bipush 28
lshr
ladd
lstore 17
lload 15
ldc 268435455
land
lstore 15
71: lload 19
lload 17
bipush 28
lshr
ladd
lstore 19
lload 17
ldc 268435455
land
lstore 17
72: lload 17
bipush 27
lushr
lstore 39
start local 39 73: lload 19
lload 39
ladd
lstore 19
74: lload 1
lload 19
ldc -50998291
lmul
lsub
lstore 1
75: lload 3
lload 19
ldc 19280294
lmul
lsub
lstore 3
76: lload 5
lload 19
ldc 127719000
lmul
lsub
lstore 5
77: lload 7
lload 19
ldc -6428113
lmul
lsub
lstore 7
78: lload 9
lload 19
ldc 5343
lmul
lsub
lstore 9
79: lload 3
lload 1
bipush 28
lshr
ladd
lstore 3
lload 1
ldc 268435455
land
lstore 1
80: lload 5
lload 3
bipush 28
lshr
ladd
lstore 5
lload 3
ldc 268435455
land
lstore 3
81: lload 7
lload 5
bipush 28
lshr
ladd
lstore 7
lload 5
ldc 268435455
land
lstore 5
82: lload 9
lload 7
bipush 28
lshr
ladd
lstore 9
lload 7
ldc 268435455
land
lstore 7
83: lload 11
lload 9
bipush 28
lshr
ladd
lstore 11
lload 9
ldc 268435455
land
lstore 9
84: lload 13
lload 11
bipush 28
lshr
ladd
lstore 13
lload 11
ldc 268435455
land
lstore 11
85: lload 15
lload 13
bipush 28
lshr
ladd
lstore 15
lload 13
ldc 268435455
land
lstore 13
86: lload 17
lload 15
bipush 28
lshr
ladd
lstore 17
lload 15
ldc 268435455
land
lstore 15
87: lload 17
bipush 28
lshr
lstore 19
lload 17
ldc 268435455
land
lstore 17
88: lload 19
lload 39
lsub
lstore 19
89: lload 1
lload 19
ldc -50998291
land
ladd
lstore 1
90: lload 3
lload 19
ldc 19280294
land
ladd
lstore 3
91: lload 5
lload 19
ldc 127719000
land
ladd
lstore 5
92: lload 7
lload 19
ldc -6428113
land
ladd
lstore 7
93: lload 9
lload 19
ldc 5343
land
ladd
lstore 9
94: lload 3
lload 1
bipush 28
lshr
ladd
lstore 3
lload 1
ldc 268435455
land
lstore 1
95: lload 5
lload 3
bipush 28
lshr
ladd
lstore 5
lload 3
ldc 268435455
land
lstore 3
96: lload 7
lload 5
bipush 28
lshr
ladd
lstore 7
lload 5
ldc 268435455
land
lstore 5
97: lload 9
lload 7
bipush 28
lshr
ladd
lstore 9
lload 7
ldc 268435455
land
lstore 7
98: lload 11
lload 9
bipush 28
lshr
ladd
lstore 11
lload 9
ldc 268435455
land
lstore 9
99: lload 13
lload 11
bipush 28
lshr
ladd
lstore 13
lload 11
ldc 268435455
land
lstore 11
100: lload 15
lload 13
bipush 28
lshr
ladd
lstore 15
lload 13
ldc 268435455
land
lstore 13
101: lload 17
lload 15
bipush 28
lshr
ladd
lstore 17
lload 15
ldc 268435455
land
lstore 15
102: bipush 32
newarray 8
astore 41
start local 41 103: lload 1
lload 3
bipush 28
lshl
lor
aload 41
iconst_0
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encode56:(J[BI)V
104: lload 5
lload 7
bipush 28
lshl
lor
aload 41
bipush 7
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encode56:(J[BI)V
105: lload 9
lload 11
bipush 28
lshl
lor
aload 41
bipush 14
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encode56:(J[BI)V
106: lload 13
lload 15
bipush 28
lshl
lor
aload 41
bipush 21
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encode56:(J[BI)V
107: lload 17
l2i
aload 41
bipush 28
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encode32:(I[BI)V
108: aload 41
areturn
end local 41 end local 39 end local 37 end local 35 end local 33 end local 31 end local 29 end local 27 end local 25 end local 23 end local 21 end local 19 end local 17 end local 15 end local 13 end local 11 end local 9 end local 7 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 109 0 n [B
1 109 1 x00 J
2 109 3 x01 J
3 109 5 x02 J
4 109 7 x03 J
5 109 9 x04 J
6 109 11 x05 J
7 109 13 x06 J
8 109 15 x07 J
9 109 17 x08 J
10 109 19 x09 J
11 109 21 x10 J
12 109 23 x11 J
13 109 25 x12 J
14 109 27 x13 J
15 109 29 x14 J
16 109 31 x15 J
17 109 33 x16 J
18 109 35 x17 J
19 109 37 x18 J
73 109 39 t J
103 109 41 r [B
MethodParameters:
Name Flags
n
private static void scalarMultBase(byte[], org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum);
descriptor: ([BLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompute:()V
1: aload 1
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointSetNeutral:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
2: bipush 8
newarray 10
astore 2
start local 2 3: aload 0
iconst_0
aload 2
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decodeScalar:([BI[I)V
4: bipush 8
aload 2
iconst_0
iaload
iconst_m1
ixor
iconst_1
iand
aload 2
getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.L:[I
aload 2
invokestatic org.bouncycastle.math.raw.Nat.cadd:(II[I[I[I)I
pop
5: bipush 8
aload 2
iconst_1
invokestatic org.bouncycastle.math.raw.Nat.shiftDownBit:(I[II)I
pop
6: iconst_0
istore 3
start local 3 7: goto 10
8: StackMap locals: int[] int
StackMap stack:
aload 2
iload 3
aload 2
iload 3
iaload
invokestatic org.bouncycastle.math.raw.Interleave.shuffle2:(I)I
iastore
9: iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
bipush 8
if_icmplt 8
end local 3 11: new org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp
dup
invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.<init>:()V
astore 3
start local 3 12: bipush 28
istore 4
start local 4 13: StackMap locals: byte[] org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum int[] org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp int
StackMap stack:
iconst_0
istore 5
start local 5 14: goto 23
15: StackMap locals: int
StackMap stack:
aload 2
iload 5
iaload
iload 4
iushr
istore 6
start local 6 16: iload 6
iconst_3
iushr
iconst_1
iand
istore 7
start local 7 17: iload 6
iload 7
ineg
ixor
bipush 7
iand
istore 8
start local 8 18: iload 5
iload 8
aload 3
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointLookup:(IILorg/bouncycastle/math/ec/rfc8032/Ed25519$PointPrecomp;)V
19: iload 7
aload 3
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ypx_h:[I
aload 3
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ymx_h:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.cswap:(I[I[I)V
20: iload 7
aload 3
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.xyd:[I
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.cnegate:(I[I)V
21: aload 3
aload 1
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointAddPrecomp:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointPrecomp;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
end local 8 end local 7 end local 6 22: iinc 5 1
StackMap locals:
StackMap stack:
23: iload 5
bipush 8
if_icmplt 15
end local 5 24: iinc 4 -4
iload 4
ifge 26
25: goto 28
26: StackMap locals:
StackMap stack:
aload 1
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointDouble:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
27: goto 13
28: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 k [B
0 29 1 r Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
3 29 2 n [I
7 11 3 i I
12 29 3 p Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointPrecomp;
13 29 4 cOff I
14 24 5 b I
16 22 6 w I
17 22 7 sign I
18 22 8 abs I
MethodParameters:
Name Flags
k
r
private static void scalarMultBaseEncoded(byte[], byte[], int);
descriptor: ([B[BI)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum
dup
invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.<init>:()V
astore 3
start local 3 1: aload 0
aload 3
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.scalarMultBase:([BLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
2: aload 3
aload 1
iload 2
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encodePoint:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;[BI)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 k [B
0 4 1 r [B
0 4 2 rOff I
1 4 3 p Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
MethodParameters:
Name Flags
k
r
rOff
public static void scalarMultBaseYZ(org.bouncycastle.math.ec.rfc7748.X25519$Friend, byte[], int, int[], int[]);
descriptor: (Lorg/bouncycastle/math/ec/rfc7748/X25519$Friend;[BI[I[I)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "This method is only for use by X25519"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
bipush 32
newarray 8
astore 5
start local 5 3: aload 1
iload 2
aload 5
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pruneScalar:([BI[B)V
4: new org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum
dup
invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.<init>:()V
astore 6
start local 6 5: aload 5
aload 6
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.scalarMultBase:([BLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
6: aload 6
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
iconst_0
aload 3
iconst_0
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
7: aload 6
getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
iconst_0
aload 4
iconst_0
invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
8: 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 9 0 friend Lorg/bouncycastle/math/ec/rfc7748/X25519$Friend;
0 9 1 k [B
0 9 2 kOff I
0 9 3 y [I
0 9 4 z [I
3 9 5 n [B
5 9 6 p Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
MethodParameters:
Name Flags
friend
k
kOff
y
z
private static void scalarMultStraussVar(int[], int[], org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt, org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum);
descriptor: ([I[ILorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompute:()V
1: aload 0
bipush 7
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.getWNAF:([II)[B
astore 4
start local 4 2: aload 1
iconst_5
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.getWNAF:([II)[B
astore 5
start local 5 3: aload 2
bipush 8
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointPrecompVar:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;I)[Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
astore 6
start local 6 4: aload 3
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointSetNeutral:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
5: sipush 255
istore 7
start local 7 6: goto 8
7: StackMap locals: int[] int[] org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum byte[] byte[] org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] int
StackMap stack:
iinc 7 -1
8: StackMap locals:
StackMap stack:
iload 7
ifle 9
aload 4
iload 7
baload
aload 5
iload 7
baload
ior
ifeq 7
9: StackMap locals:
StackMap stack:
aload 4
iload 7
baload
istore 8
start local 8 10: iload 8
ifeq 16
11: iload 8
bipush 31
ishr
istore 9
start local 9 12: iload 8
iload 9
ixor
iconst_1
iushr
istore 10
start local 10 13: iload 9
ifeq 14
iconst_1
goto 15
StackMap locals: int int int
StackMap stack:
14: iconst_0
StackMap locals:
StackMap stack: int
15: getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBaseTable:[Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
iload 10
aaload
aload 3
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointAddVar:(ZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
end local 10 end local 9 16: StackMap locals:
StackMap stack:
aload 5
iload 7
baload
istore 9
start local 9 17: iload 9
ifeq 23
18: iload 9
bipush 31
ishr
istore 10
start local 10 19: iload 9
iload 10
ixor
iconst_1
iushr
istore 11
start local 11 20: iload 10
ifeq 21
iconst_1
goto 22
StackMap locals: int int int
StackMap stack:
21: iconst_0
StackMap locals:
StackMap stack: int
22: aload 6
iload 11
aaload
aload 3
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointAddVar:(ZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
end local 11 end local 10 23: StackMap locals:
StackMap stack:
iinc 7 -1
iload 7
ifge 25
24: goto 27
25: StackMap locals:
StackMap stack:
aload 3
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointDouble:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
end local 9 end local 8 26: goto 9
27: StackMap locals:
StackMap stack:
return
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 28 0 nb [I
0 28 1 np [I
0 28 2 p Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
0 28 3 r Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
2 28 4 ws_b [B
3 28 5 ws_p [B
4 28 6 tp [Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
6 28 7 bit I
10 26 8 wb I
12 16 9 sign I
13 16 10 index I
17 26 9 wp I
19 23 10 sign I
20 23 11 index I
MethodParameters:
Name Flags
nb
np
p
r
public static void sign(byte[], int, byte[], int, int, byte[], int);
descriptor: ([BI[BII[BI)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=9, 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: aconst_null
astore 7
start local 7 1: iconst_0
istore 8
start local 8 2: aload 0
iload 1
aload 7
iload 8
aload 2
iload 3
iload 4
aload 5
iload 6
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:([BI[BB[BII[BI)V
3: 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 4 0 sk [B
0 4 1 skOff I
0 4 2 m [B
0 4 3 mOff I
0 4 4 mLen I
0 4 5 sig [B
0 4 6 sigOff I
1 4 7 ctx [B
2 4 8 phflag B
MethodParameters:
Name Flags
sk
skOff
m
mOff
mLen
sig
sigOff
public static void sign(byte[], int, byte[], int, byte[], int, int, byte[], int);
descriptor: ([BI[BI[BII[BI)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=11, locals=11, 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: aconst_null
astore 9
start local 9 1: iconst_0
istore 10
start local 10 2: aload 0
iload 1
aload 2
iload 3
aload 9
iload 10
aload 4
iload 5
iload 6
aload 7
iload 8
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:([BI[BI[BB[BII[BI)V
3: return
end local 10 end local 9 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 4 0 sk [B
0 4 1 skOff I
0 4 2 pk [B
0 4 3 pkOff I
0 4 4 m [B
0 4 5 mOff I
0 4 6 mLen I
0 4 7 sig [B
0 4 8 sigOff I
1 4 9 ctx [B
2 4 10 phflag B
MethodParameters:
Name Flags
sk
skOff
pk
pkOff
m
mOff
mLen
sig
sigOff
public static void sign(byte[], int, byte[], byte[], int, int, byte[], int);
descriptor: ([BI[B[BII[BI)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=9, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: iconst_0
istore 8
start local 8 1: aload 0
iload 1
aload 2
iload 8
aload 3
iload 4
iload 5
aload 6
iload 7
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:([BI[BB[BII[BI)V
2: 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 3 0 sk [B
0 3 1 skOff I
0 3 2 ctx [B
0 3 3 m [B
0 3 4 mOff I
0 3 5 mLen I
0 3 6 sig [B
0 3 7 sigOff I
1 3 8 phflag B
MethodParameters:
Name Flags
sk
skOff
ctx
m
mOff
mLen
sig
sigOff
public static void sign(byte[], int, byte[], int, byte[], byte[], int, int, byte[], int);
descriptor: ([BI[BI[B[BII[BI)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=11, locals=11, args_size=10
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 start local 9 0: iconst_0
istore 10
start local 10 1: aload 0
iload 1
aload 2
iload 3
aload 4
iload 10
aload 5
iload 6
iload 7
aload 8
iload 9
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:([BI[BI[BB[BII[BI)V
2: return
end local 10 end local 9 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 3 0 sk [B
0 3 1 skOff I
0 3 2 pk [B
0 3 3 pkOff I
0 3 4 ctx [B
0 3 5 m [B
0 3 6 mOff I
0 3 7 mLen I
0 3 8 sig [B
0 3 9 sigOff I
1 3 10 phflag B
MethodParameters:
Name Flags
sk
skOff
pk
pkOff
ctx
m
mOff
mLen
sig
sigOff
public static void signPrehash(byte[], int, byte[], byte[], int, byte[], int);
descriptor: ([BI[B[BI[BI)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=8, 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: iconst_1
istore 7
start local 7 1: aload 0
iload 1
aload 2
iload 7
aload 3
iload 4
bipush 64
aload 5
iload 6
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:([BI[BB[BII[BI)V
2: return
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 3 0 sk [B
0 3 1 skOff I
0 3 2 ctx [B
0 3 3 ph [B
0 3 4 phOff I
0 3 5 sig [B
0 3 6 sigOff I
1 3 7 phflag B
MethodParameters:
Name Flags
sk
skOff
ctx
ph
phOff
sig
sigOff
public static void signPrehash(byte[], int, byte[], int, byte[], byte[], int, byte[], int);
descriptor: ([BI[BI[B[BI[BI)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=11, locals=10, 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: iconst_1
istore 9
start local 9 1: aload 0
iload 1
aload 2
iload 3
aload 4
iload 9
aload 5
iload 6
bipush 64
aload 7
iload 8
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:([BI[BI[BB[BII[BI)V
2: return
end local 9 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 3 0 sk [B
0 3 1 skOff I
0 3 2 pk [B
0 3 3 pkOff I
0 3 4 ctx [B
0 3 5 ph [B
0 3 6 phOff I
0 3 7 sig [B
0 3 8 sigOff I
1 3 9 phflag B
MethodParameters:
Name Flags
sk
skOff
pk
pkOff
ctx
ph
phOff
sig
sigOff
public static void signPrehash(byte[], int, byte[], org.bouncycastle.crypto.Digest, byte[], int);
descriptor: ([BI[BLorg/bouncycastle/crypto/Digest;[BI)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: bipush 64
newarray 8
astore 6
start local 6 1: bipush 64
aload 3
aload 6
iconst_0
invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
if_icmpeq 3
2: new java.lang.IllegalArgumentException
dup
ldc "ph"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: byte[]
StackMap stack:
iconst_1
istore 7
start local 7 4: aload 0
iload 1
aload 2
iload 7
aload 6
iconst_0
aload 6
arraylength
aload 4
iload 5
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:([BI[BB[BII[BI)V
5: return
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 6 0 sk [B
0 6 1 skOff I
0 6 2 ctx [B
0 6 3 ph Lorg/bouncycastle/crypto/Digest;
0 6 4 sig [B
0 6 5 sigOff I
1 6 6 m [B
4 6 7 phflag B
MethodParameters:
Name Flags
sk
skOff
ctx
ph
sig
sigOff
public static void signPrehash(byte[], int, byte[], int, byte[], org.bouncycastle.crypto.Digest, byte[], int);
descriptor: ([BI[BI[BLorg/bouncycastle/crypto/Digest;[BI)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=11, locals=10, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: bipush 64
newarray 8
astore 8
start local 8 1: bipush 64
aload 5
aload 8
iconst_0
invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
if_icmpeq 3
2: new java.lang.IllegalArgumentException
dup
ldc "ph"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: byte[]
StackMap stack:
iconst_1
istore 9
start local 9 4: aload 0
iload 1
aload 2
iload 3
aload 4
iload 9
aload 8
iconst_0
aload 8
arraylength
aload 6
iload 7
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:([BI[BI[BB[BII[BI)V
5: return
end local 9 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 6 0 sk [B
0 6 1 skOff I
0 6 2 pk [B
0 6 3 pkOff I
0 6 4 ctx [B
0 6 5 ph Lorg/bouncycastle/crypto/Digest;
0 6 6 sig [B
0 6 7 sigOff I
1 6 8 m [B
4 6 9 phflag B
MethodParameters:
Name Flags
sk
skOff
pk
pkOff
ctx
ph
sig
sigOff
public static boolean verify(byte[], int, byte[], int, byte[], int, int);
descriptor: ([BI[BI[BII)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=9, 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: aconst_null
astore 7
start local 7 1: iconst_0
istore 8
start local 8 2: aload 0
iload 1
aload 2
iload 3
aload 7
iload 8
aload 4
iload 5
iload 6
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implVerify:([BI[BI[BB[BII)Z
ireturn
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 3 0 sig [B
0 3 1 sigOff I
0 3 2 pk [B
0 3 3 pkOff I
0 3 4 m [B
0 3 5 mOff I
0 3 6 mLen I
1 3 7 ctx [B
2 3 8 phflag B
MethodParameters:
Name Flags
sig
sigOff
pk
pkOff
m
mOff
mLen
public static boolean verify(byte[], int, byte[], int, byte[], byte[], int, int);
descriptor: ([BI[BI[B[BII)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=9, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: iconst_0
istore 8
start local 8 1: aload 0
iload 1
aload 2
iload 3
aload 4
iload 8
aload 5
iload 6
iload 7
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implVerify:([BI[BI[BB[BII)Z
ireturn
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 2 0 sig [B
0 2 1 sigOff I
0 2 2 pk [B
0 2 3 pkOff I
0 2 4 ctx [B
0 2 5 m [B
0 2 6 mOff I
0 2 7 mLen I
1 2 8 phflag B
MethodParameters:
Name Flags
sig
sigOff
pk
pkOff
ctx
m
mOff
mLen
public static boolean verifyPrehash(byte[], int, byte[], int, byte[], byte[], int);
descriptor: ([BI[BI[B[BI)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=8, 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: iconst_1
istore 7
start local 7 1: aload 0
iload 1
aload 2
iload 3
aload 4
iload 7
aload 5
iload 6
bipush 64
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implVerify:([BI[BI[BB[BII)Z
ireturn
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 2 0 sig [B
0 2 1 sigOff I
0 2 2 pk [B
0 2 3 pkOff I
0 2 4 ctx [B
0 2 5 ph [B
0 2 6 phOff I
1 2 7 phflag B
MethodParameters:
Name Flags
sig
sigOff
pk
pkOff
ctx
ph
phOff
public static boolean verifyPrehash(byte[], int, byte[], int, byte[], org.bouncycastle.crypto.Digest);
descriptor: ([BI[BI[BLorg/bouncycastle/crypto/Digest;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: bipush 64
newarray 8
astore 6
start local 6 1: bipush 64
aload 5
aload 6
iconst_0
invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
if_icmpeq 3
2: new java.lang.IllegalArgumentException
dup
ldc "ph"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: byte[]
StackMap stack:
iconst_1
istore 7
start local 7 4: aload 0
iload 1
aload 2
iload 3
aload 4
iload 7
aload 6
iconst_0
aload 6
arraylength
invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implVerify:([BI[BI[BB[BII)Z
ireturn
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 5 0 sig [B
0 5 1 sigOff I
0 5 2 pk [B
0 5 3 pkOff I
0 5 4 ctx [B
0 5 5 ph Lorg/bouncycastle/crypto/Digest;
1 5 6 m [B
4 5 7 phflag B
MethodParameters:
Name Flags
sig
sigOff
pk
pkOff
ctx
ph
}
SourceFile: "Ed25519.java"
NestMembers:
org.bouncycastle.math.ec.rfc8032.Ed25519$Algorithm org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp
InnerClasses:
public Friend = org.bouncycastle.math.ec.rfc7748.X25519$Friend of org.bouncycastle.math.ec.rfc7748.X25519
public final Algorithm = org.bouncycastle.math.ec.rfc8032.Ed25519$Algorithm of org.bouncycastle.math.ec.rfc8032.Ed25519
private PointAccum = org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum of org.bouncycastle.math.ec.rfc8032.Ed25519
private PointExt = org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt of org.bouncycastle.math.ec.rfc8032.Ed25519
private PointPrecomp = org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp of org.bouncycastle.math.ec.rfc8032.Ed25519