public class sun.security.ec.ECDSAOperations
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.security.ec.ECDSAOperations
super_class: java.lang.Object
{
private final sun.security.ec.ECOperations ecOps;
descriptor: Lsun/security/ec/ECOperations;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.security.ec.point.AffinePoint basePoint;
descriptor: Lsun/security/ec/point/AffinePoint;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(sun.security.ec.ECOperations, java.security.spec.ECPoint);
descriptor: (Lsun/security/ec/ECOperations;Ljava/security/spec/ECPoint;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield sun.security.ec.ECDSAOperations.ecOps:Lsun/security/ec/ECOperations;
2: aload 0
aload 2
aload 1
invokevirtual sun.security.ec.ECOperations.getField:()Lsun/security/util/math/IntegerFieldModuloP;
invokestatic sun.security.ec.ECDSAOperations.toAffinePoint:(Ljava/security/spec/ECPoint;Lsun/security/util/math/IntegerFieldModuloP;)Lsun/security/ec/point/AffinePoint;
putfield sun.security.ec.ECDSAOperations.basePoint:Lsun/security/ec/point/AffinePoint;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/ec/ECDSAOperations;
0 4 1 ecOps Lsun/security/ec/ECOperations;
0 4 2 basePoint Ljava/security/spec/ECPoint;
MethodParameters:
Name Flags
ecOps
basePoint
public sun.security.ec.ECOperations getEcOperations();
descriptor: ()Lsun/security/ec/ECOperations;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ec.ECDSAOperations.ecOps:Lsun/security/ec/ECOperations;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ec/ECDSAOperations;
public sun.security.ec.point.AffinePoint basePointMultiply(byte[]);
descriptor: ([B)Lsun/security/ec/point/AffinePoint;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ec.ECDSAOperations.ecOps:Lsun/security/ec/ECOperations;
aload 0
getfield sun.security.ec.ECDSAOperations.basePoint:Lsun/security/ec/point/AffinePoint;
aload 1
invokevirtual sun.security.ec.ECOperations.multiply:(Lsun/security/ec/point/AffinePoint;[B)Lsun/security/ec/point/MutablePoint;
invokeinterface sun.security.ec.point.MutablePoint.asAffine:()Lsun/security/ec/point/AffinePoint;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ec/ECDSAOperations;
0 1 1 scalar [B
MethodParameters:
Name Flags
scalar
public static sun.security.ec.point.AffinePoint toAffinePoint(java.security.spec.ECPoint, sun.security.util.math.IntegerFieldModuloP);
descriptor: (Ljava/security/spec/ECPoint;Lsun/security/util/math/IntegerFieldModuloP;)Lsun/security/ec/point/AffinePoint;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual java.security.spec.ECPoint.getAffineX:()Ljava/math/BigInteger;
invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:(Ljava/math/BigInteger;)Lsun/security/util/math/ImmutableIntegerModuloP;
astore 2
start local 2 1: aload 1
aload 0
invokevirtual java.security.spec.ECPoint.getAffineY:()Ljava/math/BigInteger;
invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:(Ljava/math/BigInteger;)Lsun/security/util/math/ImmutableIntegerModuloP;
astore 3
start local 3 2: new sun.security.ec.point.AffinePoint
dup
aload 2
aload 3
invokespecial sun.security.ec.point.AffinePoint.<init>:(Lsun/security/util/math/ImmutableIntegerModuloP;Lsun/security/util/math/ImmutableIntegerModuloP;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 point Ljava/security/spec/ECPoint;
0 3 1 field Lsun/security/util/math/IntegerFieldModuloP;
1 3 2 affineX Lsun/security/util/math/ImmutableIntegerModuloP;
2 3 3 affineY Lsun/security/util/math/ImmutableIntegerModuloP;
MethodParameters:
Name Flags
point
field
public static sun.security.util.Optional<sun.security.ec.ECDSAOperations> forParameters(java.security.spec.ECParameterSpec);
descriptor: (Ljava/security/spec/ECParameterSpec;)Lsun/security/util/Optional;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokestatic sun.security.ec.ECOperations.forParameters:(Ljava/security/spec/ECParameterSpec;)Lsun/security/util/Optional;
1: astore 1
start local 1 2: aload 1
new sun.security.ec.ECDSAOperations$1
dup
aload 0
invokespecial sun.security.ec.ECDSAOperations$1.<init>:(Ljava/security/spec/ECParameterSpec;)V
invokevirtual sun.security.util.Optional.map:(Lsun/security/util/Function;)Lsun/security/util/Optional;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 ecParams Ljava/security/spec/ECParameterSpec;
2 3 1 curveOps Lsun/security/util/Optional<Lsun/security/ec/ECOperations;>;
Signature: (Ljava/security/spec/ECParameterSpec;)Lsun/security/util/Optional<Lsun/security/ec/ECDSAOperations;>;
MethodParameters:
Name Flags
ecParams final
public byte[] signDigest(byte[], byte[], sun.security.ec.ECDSAOperations$Seed);
descriptor: ([B[BLsun/security/ec/ECDSAOperations$Seed;)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.security.ec.ECDSAOperations.ecOps:Lsun/security/ec/ECOperations;
aload 3
invokevirtual sun.security.ec.ECDSAOperations$Seed.getSeedValue:()[B
invokevirtual sun.security.ec.ECOperations.seedToScalar:([B)[B
astore 4
start local 4 1: new sun.security.ec.ECDSAOperations$Nonce
dup
aload 4
invokespecial sun.security.ec.ECDSAOperations$Nonce.<init>:([B)V
astore 5
start local 5 2: aload 0
aload 1
aload 2
aload 5
invokevirtual sun.security.ec.ECDSAOperations.signDigest:([B[BLsun/security/ec/ECDSAOperations$Nonce;)[B
areturn
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 this Lsun/security/ec/ECDSAOperations;
0 3 1 privateKey [B
0 3 2 digest [B
0 3 3 seed Lsun/security/ec/ECDSAOperations$Seed;
1 3 4 nonceArr [B
2 3 5 nonce Lsun/security/ec/ECDSAOperations$Nonce;
Exceptions:
throws sun.security.ec.ECOperations$IntermediateValueException
MethodParameters:
Name Flags
privateKey
digest
seed
public byte[] signDigest(byte[], byte[], sun.security.ec.ECDSAOperations$Nonce);
descriptor: ([B[BLsun/security/ec/ECDSAOperations$Nonce;)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=19, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.security.ec.ECDSAOperations.ecOps:Lsun/security/ec/ECOperations;
invokevirtual sun.security.ec.ECOperations.getOrderField:()Lsun/security/util/math/IntegerFieldModuloP;
astore 4
start local 4 1: aload 4
invokeinterface sun.security.util.math.IntegerFieldModuloP.getSize:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
istore 5
start local 5 2: iload 5
bipush 8
irem
ifeq 4
iload 5
aload 2
arraylength
bipush 8
imul
if_icmpge 4
3: new java.security.ProviderException
dup
ldc "Invalid digest length"
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: sun.security.util.math.IntegerFieldModuloP int
StackMap stack:
aload 3
invokevirtual sun.security.ec.ECDSAOperations$Nonce.getNonceValue:()[B
astore 6
start local 6 5: aload 4
invokeinterface sun.security.util.math.IntegerFieldModuloP.getSize:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
bipush 7
iadd
bipush 8
idiv
istore 7
start local 7 6: aload 6
arraylength
iload 7
if_icmpeq 8
7: new java.security.ProviderException
dup
ldc "Incorrect nonce length"
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: byte[] int
StackMap stack:
aload 0
getfield sun.security.ec.ECDSAOperations.ecOps:Lsun/security/ec/ECOperations;
aload 0
getfield sun.security.ec.ECDSAOperations.basePoint:Lsun/security/ec/point/AffinePoint;
aload 6
invokevirtual sun.security.ec.ECOperations.multiply:(Lsun/security/ec/point/AffinePoint;[B)Lsun/security/ec/point/MutablePoint;
astore 8
start local 8 9: aload 8
invokeinterface sun.security.ec.point.MutablePoint.asAffine:()Lsun/security/ec/point/AffinePoint;
invokevirtual sun.security.ec.point.AffinePoint.getX:()Lsun/security/util/math/ImmutableIntegerModuloP;
astore 9
start local 9 10: iload 7
newarray 8
astore 10
start local 10 11: aload 9
aload 10
invokeinterface sun.security.util.math.IntegerModuloP.asByteArray:([B)V
12: aload 4
aload 10
invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:([B)Lsun/security/util/math/ImmutableIntegerModuloP;
astore 9
13: aload 9
aload 10
invokeinterface sun.security.util.math.IntegerModuloP.asByteArray:([B)V
14: iconst_2
iload 7
imul
newarray 8
astore 11
start local 11 15: aload 10
invokestatic sun.security.util.ArrayUtil.reverse:([B)V
16: aload 10
iconst_0
aload 11
iconst_0
iload 7
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
17: aload 10
invokestatic sun.security.ec.ECOperations.allZero:([B)Z
ifeq 19
18: new sun.security.ec.ECOperations$IntermediateValueException
dup
invokespecial sun.security.ec.ECOperations$IntermediateValueException.<init>:()V
athrow
19: StackMap locals: sun.security.ec.ECDSAOperations byte[] byte[] sun.security.ec.ECDSAOperations$Nonce sun.security.util.math.IntegerFieldModuloP int byte[] int sun.security.ec.point.MutablePoint sun.security.util.math.IntegerModuloP byte[] byte[]
StackMap stack:
aload 4
aload 1
invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:([B)Lsun/security/util/math/ImmutableIntegerModuloP;
astore 12
start local 12 20: iload 7
aload 2
arraylength
invokestatic java.lang.Math.min:(II)I
istore 13
start local 13 21: iload 13
newarray 8
astore 14
start local 14 22: aload 2
iconst_0
aload 14
iconst_0
iload 13
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
23: aload 14
invokestatic sun.security.util.ArrayUtil.reverse:([B)V
24: aload 4
aload 14
invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:([B)Lsun/security/util/math/ImmutableIntegerModuloP;
astore 15
start local 15 25: aload 4
aload 6
invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:([B)Lsun/security/util/math/ImmutableIntegerModuloP;
astore 16
start local 16 26: aload 16
invokeinterface sun.security.util.math.IntegerModuloP.multiplicativeInverse:()Lsun/security/util/math/ImmutableIntegerModuloP;
astore 17
start local 17 27: aload 9
invokeinterface sun.security.util.math.IntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
astore 18
start local 18 28: aload 18
aload 12
invokeinterface sun.security.util.math.MutableIntegerModuloP.setProduct:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
aload 15
invokeinterface sun.security.util.math.MutableIntegerModuloP.setSum:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
aload 17
invokeinterface sun.security.util.math.MutableIntegerModuloP.setProduct:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
pop
29: aload 18
aload 10
invokeinterface sun.security.util.math.MutableIntegerModuloP.asByteArray:([B)V
30: aload 10
invokestatic sun.security.util.ArrayUtil.reverse:([B)V
31: aload 10
iconst_0
aload 11
iload 7
iload 7
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
32: aload 10
invokestatic sun.security.ec.ECOperations.allZero:([B)Z
ifeq 34
33: new sun.security.ec.ECOperations$IntermediateValueException
dup
invokespecial sun.security.ec.ECOperations$IntermediateValueException.<init>:()V
athrow
34: StackMap locals: sun.security.ec.ECDSAOperations byte[] byte[] sun.security.ec.ECDSAOperations$Nonce sun.security.util.math.IntegerFieldModuloP int byte[] int sun.security.ec.point.MutablePoint sun.security.util.math.IntegerModuloP byte[] byte[] sun.security.util.math.IntegerModuloP int byte[] sun.security.util.math.IntegerModuloP sun.security.util.math.IntegerModuloP sun.security.util.math.IntegerModuloP sun.security.util.math.MutableIntegerModuloP
StackMap stack:
aload 11
areturn
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 35 0 this Lsun/security/ec/ECDSAOperations;
0 35 1 privateKey [B
0 35 2 digest [B
0 35 3 nonce Lsun/security/ec/ECDSAOperations$Nonce;
1 35 4 orderField Lsun/security/util/math/IntegerFieldModuloP;
2 35 5 orderBits I
5 35 6 k [B
6 35 7 length I
9 35 8 R Lsun/security/ec/point/MutablePoint;
10 35 9 r Lsun/security/util/math/IntegerModuloP;
11 35 10 temp [B
15 35 11 result [B
20 35 12 dU Lsun/security/util/math/IntegerModuloP;
21 35 13 lengthE I
22 35 14 E [B
25 35 15 e Lsun/security/util/math/IntegerModuloP;
26 35 16 kElem Lsun/security/util/math/IntegerModuloP;
27 35 17 kInv Lsun/security/util/math/IntegerModuloP;
28 35 18 s Lsun/security/util/math/MutableIntegerModuloP;
Exceptions:
throws sun.security.ec.ECOperations$IntermediateValueException
MethodParameters:
Name Flags
privateKey
digest
nonce
}
SourceFile: "ECDSAOperations.java"
NestMembers:
sun.security.ec.ECDSAOperations$1 sun.security.ec.ECDSAOperations$Nonce sun.security.ec.ECDSAOperations$Seed
InnerClasses:
sun.security.ec.ECDSAOperations$1
public Nonce = sun.security.ec.ECDSAOperations$Nonce of sun.security.ec.ECDSAOperations
public Seed = sun.security.ec.ECDSAOperations$Seed of sun.security.ec.ECDSAOperations
IntermediateValueException = sun.security.ec.ECOperations$IntermediateValueException of sun.security.ec.ECOperations