public class sun.security.ec.ed.EdDSAOperations
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.security.ec.ed.EdDSAOperations
super_class: java.lang.Object
{
private final sun.security.ec.ed.EdDSAParameters params;
descriptor: Lsun/security/ec/ed/EdDSAParameters;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(sun.security.ec.ed.EdDSAParameters);
descriptor: (Lsun/security/ec/ed/EdDSAParameters;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ec/ed/EdDSAOperations;
0 3 1 params Lsun/security/ec/ed/EdDSAParameters;
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
params
public sun.security.ec.ed.EdDSAParameters getParameters();
descriptor: ()Lsun/security/ec/ed/EdDSAParameters;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ec/ed/EdDSAOperations;
public byte[] generatePrivate(java.security.SecureRandom);
descriptor: (Ljava/security/SecureRandom;)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getKeyLength:()I
newarray 8
astore 2
start local 2 1: aload 1
aload 2
invokevirtual java.security.SecureRandom.nextBytes:([B)V
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ec/ed/EdDSAOperations;
0 3 1 random Ljava/security/SecureRandom;
1 3 2 result [B
MethodParameters:
Name Flags
random
public java.security.spec.EdECPoint computePublic(byte[]);
descriptor: ([B)Ljava/security/spec/EdECPoint;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
iconst_1
anewarray byte[]
dup
iconst_0
aload 1
aastore
invokevirtual sun.security.ec.ed.EdDSAParameters.digest:([[B)[B
astore 2
start local 2 1: aload 2
arraylength
iconst_2
idiv
istore 3
start local 3 2: aload 2
iload 3
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 4
start local 4 3: aload 0
aload 4
invokevirtual sun.security.ec.ed.EdDSAOperations.prune:([B)V
4: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getOrderField:()Lsun/security/util/math/IntegerFieldModuloP;
aload 4
invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:([B)Lsun/security/util/math/ImmutableIntegerModuloP;
astore 5
start local 5 5: aload 5
aload 4
invokeinterface sun.security.util.math.IntegerModuloP.asByteArray:([B)V
6: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getEdOperations:()Lsun/security/ec/ed/EdECOperations;
aload 4
invokevirtual sun.security.ec.ed.EdECOperations.basePointMultiply:([B)Lsun/security/ec/point/Point;
astore 6
start local 6 7: aload 6
invokeinterface sun.security.ec.point.Point.asAffine:()Lsun/security/ec/point/AffinePoint;
invokestatic sun.security.ec.ed.EdDSAOperations.asEdECPoint:(Lsun/security/ec/point/AffinePoint;)Ljava/security/spec/EdECPoint;
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 8 0 this Lsun/security/ec/ed/EdDSAOperations;
0 8 1 privateKey [B
1 8 2 privateKeyHash [B
2 8 3 byteLength I
3 8 4 s [B
5 8 5 fieldS Lsun/security/util/math/IntegerModuloP;
7 8 6 A Lsun/security/ec/point/Point;
MethodParameters:
Name Flags
privateKey
private static java.security.spec.EdECPoint asEdECPoint(sun.security.ec.point.AffinePoint);
descriptor: (Lsun/security/ec/point/AffinePoint;)Ljava/security/spec/EdECPoint;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new java.security.spec.EdECPoint
dup
aload 0
invokevirtual sun.security.ec.point.AffinePoint.getX:()Lsun/security/util/math/ImmutableIntegerModuloP;
invokeinterface sun.security.util.math.ImmutableIntegerModuloP.asBigInteger:()Ljava/math/BigInteger;
iconst_0
invokevirtual java.math.BigInteger.testBit:(I)Z
1: aload 0
invokevirtual sun.security.ec.point.AffinePoint.getY:()Lsun/security/util/math/ImmutableIntegerModuloP;
invokeinterface sun.security.util.math.ImmutableIntegerModuloP.asBigInteger:()Ljava/math/BigInteger;
2: invokespecial java.security.spec.EdECPoint.<init>:(ZLjava/math/BigInteger;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 p Lsun/security/ec/point/AffinePoint;
MethodParameters:
Name Flags
p
public byte[] sign(java.security.spec.EdDSAParameterSpec, byte[], byte[]);
descriptor: (Ljava/security/spec/EdDSAParameterSpec;[B[B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=24, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
iconst_1
anewarray byte[]
dup
iconst_0
aload 2
aastore
invokevirtual sun.security.ec.ed.EdDSAParameters.digest:([[B)[B
astore 4
start local 4 1: aload 4
arraylength
iconst_2
idiv
istore 5
start local 5 2: aload 4
iload 5
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 6
start local 6 3: aload 0
aload 6
invokevirtual sun.security.ec.ed.EdDSAOperations.prune:([B)V
4: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getOrderField:()Lsun/security/util/math/IntegerFieldModuloP;
aload 6
invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:([B)Lsun/security/util/math/ImmutableIntegerModuloP;
astore 7
start local 7 5: aload 7
aload 6
invokeinterface sun.security.util.math.IntegerModuloP.asByteArray:([B)V
6: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getEdOperations:()Lsun/security/ec/ed/EdECOperations;
aload 6
invokevirtual sun.security.ec.ed.EdECOperations.basePointMultiply:([B)Lsun/security/ec/point/Point;
astore 8
start local 8 7: aload 4
8: aload 4
arraylength
iconst_2
idiv
aload 4
arraylength
9: invokestatic java.util.Arrays.copyOfRange:([BII)[B
astore 9
start local 9 10: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
aload 1
invokevirtual sun.security.ec.ed.EdDSAParameters.dom:(Ljava/security/spec/EdDSAParameterSpec;)[B
astore 10
start local 10 11: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
iconst_3
anewarray byte[]
dup
iconst_0
aload 10
aastore
dup
iconst_1
aload 9
aastore
dup
iconst_2
aload 3
aastore
invokevirtual sun.security.ec.ed.EdDSAParameters.digest:([[B)[B
astore 11
start local 11 12: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getOrderField:()Lsun/security/util/math/IntegerFieldModuloP;
aload 11
invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:([B)Lsun/security/util/math/ImmutableIntegerModuloP;
astore 12
start local 12 13: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getKeyLength:()I
newarray 8
astore 11
14: aload 12
aload 11
invokeinterface sun.security.util.math.IntegerModuloP.asByteArray:([B)V
15: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getEdOperations:()Lsun/security/ec/ed/EdECOperations;
aload 11
invokevirtual sun.security.ec.ed.EdECOperations.basePointMultiply:([B)Lsun/security/ec/point/Point;
astore 13
start local 13 16: iload 5
aload 13
invokestatic sun.security.ec.ed.EdDSAOperations.encode:(ILsun/security/ec/point/Point;)[B
astore 14
start local 14 17: iload 5
aload 8
invokestatic sun.security.ec.ed.EdDSAOperations.encode:(ILsun/security/ec/point/Point;)[B
astore 15
start local 15 18: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
iconst_4
anewarray byte[]
dup
iconst_0
aload 10
aastore
dup
iconst_1
aload 14
aastore
dup
iconst_2
aload 15
aastore
dup
iconst_3
aload 3
aastore
invokevirtual sun.security.ec.ed.EdDSAParameters.digest:([[B)[B
astore 16
start local 16 19: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getOrderField:()Lsun/security/util/math/IntegerFieldModuloP;
astore 17
start local 17 20: aload 17
aload 16
invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:([B)Lsun/security/util/math/ImmutableIntegerModuloP;
astore 18
start local 18 21: aload 17
aload 11
invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:([B)Lsun/security/util/math/ImmutableIntegerModuloP;
astore 19
start local 19 22: aload 18
invokeinterface sun.security.util.math.IntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
aload 7
invokeinterface sun.security.util.math.MutableIntegerModuloP.setProduct:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
astore 20
start local 20 23: aload 20
aload 19
invokeinterface sun.security.util.math.MutableIntegerModuloP.setSum:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
pop
24: aload 20
invokeinterface sun.security.util.math.MutableIntegerModuloP.setReduced:()Lsun/security/util/math/MutableIntegerModuloP;
pop
25: aload 20
iload 5
invokeinterface sun.security.util.math.MutableIntegerModuloP.asByteArray:(I)[B
astore 21
start local 21 26: iload 5
aload 13
invokestatic sun.security.ec.ed.EdDSAOperations.encode:(ILsun/security/ec/point/Point;)[B
astore 22
start local 22 27: iload 5
iconst_2
imul
newarray 8
astore 23
start local 23 28: aload 22
iconst_0
aload 23
iconst_0
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
29: aload 21
iconst_0
aload 23
iload 5
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
30: aload 23
areturn
end local 23 end local 22 end local 21 end local 20 end local 19 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 31 0 this Lsun/security/ec/ed/EdDSAOperations;
0 31 1 sigParams Ljava/security/spec/EdDSAParameterSpec;
0 31 2 privateKey [B
0 31 3 message [B
1 31 4 privateKeyHash [B
2 31 5 byteLength I
3 31 6 s [B
5 31 7 sElem Lsun/security/util/math/IntegerModuloP;
7 31 8 A Lsun/security/ec/point/Point;
10 31 9 prefix [B
11 31 10 dom [B
12 31 11 r [B
13 31 12 fieldR Lsun/security/util/math/IntegerModuloP;
16 31 13 R Lsun/security/ec/point/Point;
17 31 14 encodedR [B
18 31 15 encodedA [B
19 31 16 k [B
20 31 17 subField Lsun/security/util/math/IntegerFieldModuloP;
21 31 18 kElem Lsun/security/util/math/IntegerModuloP;
22 31 19 rElem Lsun/security/util/math/IntegerModuloP;
23 31 20 S Lsun/security/util/math/MutableIntegerModuloP;
26 31 21 sArr [B
27 31 22 rArr [B
28 31 23 result [B
MethodParameters:
Name Flags
sigParams
privateKey
message
public boolean verify(java.security.spec.EdDSAParameterSpec, sun.security.ec.point.AffinePoint, byte[], byte[], byte[]);
descriptor: (Ljava/security/spec/EdDSAParameterSpec;Lsun/security/ec/point/AffinePoint;[B[B[B)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=19, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 5
ifnonnull 2
1: new java.security.SignatureException
dup
ldc "signature was null"
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 5
aload 5
arraylength
iconst_2
idiv
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 6
start local 6 3: aload 5
aload 5
arraylength
iconst_2
idiv
4: aload 5
arraylength
5: invokestatic java.util.Arrays.copyOfRange:([BII)[B
astore 7
start local 7 6: aload 7
invokestatic sun.security.util.ArrayUtil.reverse:([B)V
7: new java.math.BigInteger
dup
iconst_1
aload 7
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 8
start local 8 8: aload 8
aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getOrderField:()Lsun/security/util/math/IntegerFieldModuloP;
invokeinterface sun.security.util.math.IntegerFieldModuloP.getSize:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
iflt 10
9: new java.security.SignatureException
dup
ldc "s is too large"
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: byte[] byte[] java.math.BigInteger
StackMap stack:
aload 7
invokestatic sun.security.util.ArrayUtil.reverse:([B)V
11: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
aload 1
invokevirtual sun.security.ec.ed.EdDSAParameters.dom:(Ljava/security/spec/EdDSAParameterSpec;)[B
astore 9
start local 9 12: aload 0
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/security/SignatureException.<init>(Ljava/lang/String;)V (8)
(Ljava/lang/String;)Ljava/security/SignatureException;
aload 6
invokevirtual sun.security.ec.ed.EdDSAOperations.decodeAffinePoint:(Ljava/util/function/Function;[B)Lsun/security/ec/point/AffinePoint;
astore 10
start local 10 13: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
iconst_4
anewarray byte[]
dup
iconst_0
aload 9
aastore
dup
iconst_1
aload 6
aastore
dup
iconst_2
aload 3
aastore
dup
iconst_3
aload 4
aastore
invokevirtual sun.security.ec.ed.EdDSAParameters.digest:([[B)[B
astore 11
start local 11 14: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getOrderField:()Lsun/security/util/math/IntegerFieldModuloP;
astore 12
start local 12 15: aload 12
aload 11
invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:([B)Lsun/security/util/math/ImmutableIntegerModuloP;
astore 13
start local 13 16: aload 13
aload 11
arraylength
iconst_2
idiv
invokeinterface sun.security.util.math.IntegerModuloP.asByteArray:(I)[B
astore 11
17: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getEdOperations:()Lsun/security/ec/ed/EdECOperations;
aload 10
invokevirtual sun.security.ec.ed.EdECOperations.of:(Lsun/security/ec/point/AffinePoint;)Lsun/security/ec/point/ImmutablePoint;
astore 14
start local 14 18: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getEdOperations:()Lsun/security/ec/ed/EdECOperations;
aload 2
invokevirtual sun.security.ec.ed.EdECOperations.of:(Lsun/security/ec/point/AffinePoint;)Lsun/security/ec/point/ImmutablePoint;
astore 15
start local 15 19: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getEdOperations:()Lsun/security/ec/ed/EdECOperations;
astore 16
start local 16 20: aload 16
aload 7
invokevirtual sun.security.ec.ed.EdECOperations.basePointMultiply:([B)Lsun/security/ec/point/Point;
astore 17
start local 17 21: aload 16
aload 16
aload 15
invokeinterface sun.security.ec.point.Point.mutable:()Lsun/security/ec/point/MutablePoint;
aload 11
invokevirtual sun.security.ec.ed.EdECOperations.setProduct:(Lsun/security/ec/point/MutablePoint;[B)Lsun/security/ec/point/MutablePoint;
22: aload 14
invokeinterface sun.security.ec.point.Point.mutable:()Lsun/security/ec/point/MutablePoint;
23: invokevirtual sun.security.ec.ed.EdECOperations.setSum:(Lsun/security/ec/point/MutablePoint;Lsun/security/ec/point/MutablePoint;)Lsun/security/ec/point/MutablePoint;
astore 18
start local 18 24: aload 17
aload 18
invokeinterface sun.security.ec.point.Point.affineEquals:(Lsun/security/ec/point/Point;)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 25 0 this Lsun/security/ec/ed/EdDSAOperations;
0 25 1 sigParams Ljava/security/spec/EdDSAParameterSpec;
0 25 2 affineA Lsun/security/ec/point/AffinePoint;
0 25 3 publicKey [B
0 25 4 message [B
0 25 5 signature [B
3 25 6 encR [B
6 25 7 encS [B
8 25 8 bigS Ljava/math/BigInteger;
12 25 9 dom [B
13 25 10 affineR Lsun/security/ec/point/AffinePoint;
14 25 11 k [B
15 25 12 subField Lsun/security/util/math/IntegerFieldModuloP;
16 25 13 kElem Lsun/security/util/math/IntegerModuloP;
18 25 14 pointR Lsun/security/ec/point/Point;
19 25 15 pointA Lsun/security/ec/point/Point;
20 25 16 edOps Lsun/security/ec/ed/EdECOperations;
21 25 17 lhs Lsun/security/ec/point/Point;
24 25 18 rhs Lsun/security/ec/point/Point;
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
sigParams
affineA
publicKey
message
signature
public boolean verify(java.security.spec.EdDSAParameterSpec, byte[], byte[], byte[]);
descriptor: (Ljava/security/spec/EdDSAParameterSpec;[B[B[B)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/security/InvalidKeyException.<init>(Ljava/lang/String;)V (8)
(Ljava/lang/String;)Ljava/security/InvalidKeyException;
1: aload 2
2: invokevirtual sun.security.ec.ed.EdDSAOperations.decodeAffinePoint:(Ljava/util/function/Function;[B)Lsun/security/ec/point/AffinePoint;
astore 5
start local 5 3: aload 0
aload 1
aload 5
aload 2
aload 3
aload 4
invokevirtual sun.security.ec.ed.EdDSAOperations.verify:(Ljava/security/spec/EdDSAParameterSpec;Lsun/security/ec/point/AffinePoint;[B[B[B)Z
ireturn
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 this Lsun/security/ec/ed/EdDSAOperations;
0 4 1 sigParams Ljava/security/spec/EdDSAParameterSpec;
0 4 2 publicKey [B
0 4 3 message [B
0 4 4 signature [B
3 4 5 affineA Lsun/security/ec/point/AffinePoint;
Exceptions:
throws java.security.InvalidKeyException, java.security.SignatureException
MethodParameters:
Name Flags
sigParams
publicKey
message
signature
public <T extends java.lang.Throwable> sun.security.ec.point.AffinePoint decodeAffinePoint(java.util.function.Function<java.lang.String, T>, byte[]) throws T;
descriptor: (Ljava/util/function/Function;[B)Lsun/security/ec/point/AffinePoint;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
arraylength
aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getKeyLength:()I
if_icmpeq 2
1: aload 1
ldc "incorrect length"
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Throwable
athrow
2: StackMap locals:
StackMap stack:
aload 2
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
astore 2
3: sipush 255
aload 2
aload 2
arraylength
iconst_1
isub
baload
iand
bipush 7
iushr
istore 3
start local 3 4: aload 2
aload 2
arraylength
iconst_1
isub
dup2
baload
bipush 127
iand
i2b
bastore
5: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getBits:()I
bipush 7
iadd
iconst_3
ishr
istore 4
start local 4 6: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getField:()Lsun/security/util/math/IntegerFieldModuloP;
aload 2
iconst_0
iload 4
iconst_0
invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:([BIIB)Lsun/security/util/math/ImmutableIntegerModuloP;
7: astore 5
start local 5 8: aload 2
invokestatic sun.security.util.ArrayUtil.reverse:([B)V
9: new java.math.BigInteger
dup
iconst_1
aload 2
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 6
start local 6 10: aload 6
aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getField:()Lsun/security/util/math/IntegerFieldModuloP;
invokeinterface sun.security.util.math.IntegerFieldModuloP.getSize:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
iflt 12
11: aload 1
ldc "y value is too large"
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Throwable
athrow
12: StackMap locals: sun.security.ec.ed.EdDSAOperations java.util.function.Function byte[] int int sun.security.util.math.IntegerModuloP java.math.BigInteger
StackMap stack:
aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getEdOperations:()Lsun/security/ec/ed/EdECOperations;
aload 1
iload 3
aload 5
invokevirtual sun.security.ec.ed.EdECOperations.decodeAffinePoint:(Ljava/util/function/Function;ILsun/security/util/math/IntegerModuloP;)Lsun/security/ec/point/AffinePoint;
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 13 0 this Lsun/security/ec/ed/EdDSAOperations;
0 13 1 exception Ljava/util/function/Function<Ljava/lang/String;TT;>;
0 13 2 arr [B
4 13 3 xLSB I
6 13 4 yLength I
8 13 5 y Lsun/security/util/math/IntegerModuloP;
10 13 6 bigY Ljava/math/BigInteger;
Exceptions:
throws java.lang.Throwable
Signature: <T:Ljava/lang/Throwable;>(Ljava/util/function/Function<Ljava/lang/String;TT;>;[B)Lsun/security/ec/point/AffinePoint;^TT;
MethodParameters:
Name Flags
exception
arr
public <T extends java.lang.Throwable> sun.security.ec.point.AffinePoint decodeAffinePoint(java.util.function.Function<java.lang.String, T>, java.security.spec.EdECPoint) throws T;
descriptor: (Ljava/util/function/Function;Ljava/security/spec/EdECPoint;)Lsun/security/ec/point/AffinePoint;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual java.security.spec.EdECPoint.getY:()Ljava/math/BigInteger;
aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getField:()Lsun/security/util/math/IntegerFieldModuloP;
invokeinterface sun.security.util.math.IntegerFieldModuloP.getSize:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
iflt 2
1: aload 1
ldc "y value is too large"
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Throwable
athrow
2: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.security.spec.EdECPoint.isXOdd:()Z
ifeq 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 3
start local 3 5: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getField:()Lsun/security/util/math/IntegerFieldModuloP;
aload 2
invokevirtual java.security.spec.EdECPoint.getY:()Ljava/math/BigInteger;
invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:(Ljava/math/BigInteger;)Lsun/security/util/math/ImmutableIntegerModuloP;
astore 4
start local 4 6: aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getEdOperations:()Lsun/security/ec/ed/EdECOperations;
aload 1
iload 3
aload 4
invokevirtual sun.security.ec.ed.EdECOperations.decodeAffinePoint:(Ljava/util/function/Function;ILsun/security/util/math/IntegerModuloP;)Lsun/security/ec/point/AffinePoint;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ec/ed/EdDSAOperations;
0 7 1 exception Ljava/util/function/Function<Ljava/lang/String;TT;>;
0 7 2 point Ljava/security/spec/EdECPoint;
5 7 3 xLSB I
6 7 4 y Lsun/security/util/math/IntegerModuloP;
Exceptions:
throws java.lang.Throwable
Signature: <T:Ljava/lang/Throwable;>(Ljava/util/function/Function<Ljava/lang/String;TT;>;Ljava/security/spec/EdECPoint;)Lsun/security/ec/point/AffinePoint;^TT;
MethodParameters:
Name Flags
exception
point
private static int maskHighOrder(byte[], int);
descriptor: ([BI)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
arraylength
iconst_1
isub
istore 2
start local 2 1: aload 0
arraylength
bipush 8
imul
iload 1
isub
istore 3
start local 3 2: bipush 8
iload 3
isub
istore 4
start local 4 3: iconst_1
iload 4
ishl
iconst_1
isub
i2b
istore 5
start local 5 4: aload 0
iload 2
dup2
baload
iload 5
iand
i2b
bastore
5: iload 4
ireturn
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 arr [B
0 6 1 bits I
1 6 2 lastByteIndex I
2 6 3 bitsDiff I
3 6 4 highBits I
4 6 5 msbMaskOff B
MethodParameters:
Name Flags
arr
bits
private static void prune(byte[], int, int);
descriptor: ([BII)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
arraylength
iconst_1
isub
istore 3
start local 3 1: aload 0
iload 1
invokestatic sun.security.ec.ed.EdDSAOperations.maskHighOrder:([BI)I
istore 4
start local 4 2: iload 4
ifne 5
3: aload 0
iload 3
iconst_1
isub
dup2
baload
sipush 128
ior
i2b
bastore
4: goto 7
5: StackMap locals: int int
StackMap stack:
iconst_1
iload 4
iconst_1
isub
ishl
i2b
istore 5
start local 5 6: aload 0
iload 3
dup2
baload
iload 5
ior
i2b
bastore
end local 5 7: StackMap locals:
StackMap stack:
sipush 255
iload 2
ishl
i2b
istore 5
start local 5 8: aload 0
iconst_0
dup2
baload
iload 5
iand
i2b
bastore
9: return
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 k [B
0 10 1 bits I
0 10 2 logCofactor I
1 10 3 lastByteIndex I
2 10 4 highBits I
6 7 5 msbMaskOn B
8 10 5 lsbMaskOff B
MethodParameters:
Name Flags
k
bits
logCofactor
void prune(byte[]);
descriptor: ([B)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getBits:()I
aload 0
getfield sun.security.ec.ed.EdDSAOperations.params:Lsun/security/ec/ed/EdDSAParameters;
invokevirtual sun.security.ec.ed.EdDSAParameters.getLogCofactor:()I
invokestatic sun.security.ec.ed.EdDSAOperations.prune:([BII)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ec/ed/EdDSAOperations;
0 2 1 arr [B
MethodParameters:
Name Flags
arr
private static byte[] encode(int, sun.security.ec.point.Point);
descriptor: (ILsun/security/ec/point/Point;)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 0
aload 1
invokeinterface sun.security.ec.point.Point.asAffine:()Lsun/security/ec/point/AffinePoint;
invokestatic sun.security.ec.ed.EdDSAOperations.encode:(ILsun/security/ec/point/AffinePoint;)[B
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 length I
0 1 1 p Lsun/security/ec/point/Point;
MethodParameters:
Name Flags
length
p
private static byte[] encode(int, sun.security.ec.point.AffinePoint);
descriptor: (ILsun/security/ec/point/AffinePoint;)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual sun.security.ec.point.AffinePoint.getY:()Lsun/security/util/math/ImmutableIntegerModuloP;
iload 0
invokeinterface sun.security.util.math.ImmutableIntegerModuloP.asByteArray:(I)[B
astore 2
start local 2 1: aload 1
invokevirtual sun.security.ec.point.AffinePoint.getX:()Lsun/security/util/math/ImmutableIntegerModuloP;
iconst_1
invokeinterface sun.security.util.math.ImmutableIntegerModuloP.asByteArray:(I)[B
iconst_0
baload
iconst_1
iand
istore 3
start local 3 2: aload 2
aload 2
arraylength
iconst_1
isub
dup2
baload
iload 3
bipush 7
ishl
ior
i2b
bastore
3: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 length I
0 4 1 p Lsun/security/ec/point/AffinePoint;
1 4 2 result [B
2 4 3 xLSB I
MethodParameters:
Name Flags
length
p
}
SourceFile: "EdDSAOperations.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles