abstract class sun.security.ec.ECDSASignature extends java.security.SignatureSpi
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: sun.security.ec.ECDSASignature
super_class: java.security.SignatureSpi
{
private final java.security.MessageDigest messageDigest;
descriptor: Ljava/security/MessageDigest;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.security.SecureRandom random;
descriptor: Ljava/security/SecureRandom;
flags: (0x0002) ACC_PRIVATE
private boolean needsReset;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.security.interfaces.ECPrivateKey privateKey;
descriptor: Ljava/security/interfaces/ECPrivateKey;
flags: (0x0002) ACC_PRIVATE
private java.security.interfaces.ECPublicKey publicKey;
descriptor: Ljava/security/interfaces/ECPublicKey;
flags: (0x0002) ACC_PRIVATE
private java.security.spec.ECParameterSpec sigParams;
descriptor: Ljava/security/spec/ECParameterSpec;
flags: (0x0002) ACC_PRIVATE
private final boolean p1363Format;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokespecial sun.security.ec.ECDSASignature.<init>:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ec/ECDSASignature;
void <init>(boolean);
descriptor: (Z)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.security.SignatureSpi.<init>:()V
1: aload 0
aconst_null
putfield sun.security.ec.ECDSASignature.sigParams:Ljava/security/spec/ECParameterSpec;
2: aload 0
aconst_null
putfield sun.security.ec.ECDSASignature.messageDigest:Ljava/security/MessageDigest;
3: aload 0
iload 1
putfield sun.security.ec.ECDSASignature.p1363Format:Z
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/ec/ECDSASignature;
0 5 1 p1363Format Z
MethodParameters:
Name Flags
p1363Format
void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokespecial sun.security.ec.ECDSASignature.<init>:(Ljava/lang/String;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ec/ECDSASignature;
0 2 1 digestName Ljava/lang/String;
MethodParameters:
Name Flags
digestName
void <init>(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.security.SignatureSpi.<init>:()V
1: aload 0
aconst_null
putfield sun.security.ec.ECDSASignature.sigParams:Ljava/security/spec/ECParameterSpec;
2: aload 0
aload 1
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
putfield sun.security.ec.ECDSASignature.messageDigest:Ljava/security/MessageDigest;
3: goto 6
StackMap locals: sun.security.ec.ECDSASignature java.lang.String int
StackMap stack: java.security.NoSuchAlgorithmException
4: astore 3
start local 3 5: new java.security.ProviderException
dup
aload 3
invokespecial java.security.ProviderException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 6: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.ec.ECDSASignature.needsReset:Z
7: aload 0
iload 2
putfield sun.security.ec.ECDSASignature.p1363Format:Z
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/ec/ECDSASignature;
0 9 1 digestName Ljava/lang/String;
0 9 2 p1363Format Z
5 6 3 e Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
2 3 4 Class java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
digestName
p1363Format
protected void engineInitVerify(java.security.PublicKey);
descriptor: (Ljava/security/PublicKey;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic sun.security.ec.ECKeyFactory.toECKey:(Ljava/security/Key;)Ljava/security/interfaces/ECKey;
checkcast java.security.interfaces.ECPublicKey
astore 2
start local 2 1: aload 0
getfield sun.security.ec.ECDSASignature.sigParams:Ljava/security/spec/ECParameterSpec;
aload 2
invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
invokestatic sun.security.ec.ECDSASignature.isCompatible:(Ljava/security/spec/ECParameterSpec;Ljava/security/spec/ECParameterSpec;)Z
ifne 3
2: new java.security.InvalidKeyException
dup
ldc "Key params does not match signature params"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.security.interfaces.ECPublicKey
StackMap stack:
aload 0
aload 2
putfield sun.security.ec.ECDSASignature.publicKey:Ljava/security/interfaces/ECPublicKey;
4: aload 0
aconst_null
putfield sun.security.ec.ECDSASignature.privateKey:Ljava/security/interfaces/ECPrivateKey;
5: aload 0
invokevirtual sun.security.ec.ECDSASignature.resetDigest:()V
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ec/ECDSASignature;
0 7 1 publicKey Ljava/security/PublicKey;
1 7 2 key Ljava/security/interfaces/ECPublicKey;
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
publicKey
protected void engineInitSign(java.security.PrivateKey);
descriptor: (Ljava/security/PrivateKey;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokevirtual sun.security.ec.ECDSASignature.engineInitSign:(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ec/ECDSASignature;
0 2 1 privateKey Ljava/security/PrivateKey;
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
privateKey
protected void engineInitSign(java.security.PrivateKey, java.security.SecureRandom);
descriptor: (Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic sun.security.ec.ECKeyFactory.toECKey:(Ljava/security/Key;)Ljava/security/interfaces/ECKey;
checkcast java.security.interfaces.ECPrivateKey
astore 3
start local 3 1: aload 0
getfield sun.security.ec.ECDSASignature.sigParams:Ljava/security/spec/ECParameterSpec;
aload 3
invokeinterface java.security.interfaces.ECPrivateKey.getParams:()Ljava/security/spec/ECParameterSpec;
invokestatic sun.security.ec.ECDSASignature.isCompatible:(Ljava/security/spec/ECParameterSpec;Ljava/security/spec/ECParameterSpec;)Z
ifne 3
2: new java.security.InvalidKeyException
dup
ldc "Key params does not match signature params"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.security.interfaces.ECPrivateKey
StackMap stack:
aload 0
aload 3
putfield sun.security.ec.ECDSASignature.privateKey:Ljava/security/interfaces/ECPrivateKey;
4: aload 0
aconst_null
putfield sun.security.ec.ECDSASignature.publicKey:Ljava/security/interfaces/ECPublicKey;
5: aload 0
aload 2
putfield sun.security.ec.ECDSASignature.random:Ljava/security/SecureRandom;
6: aload 0
invokevirtual sun.security.ec.ECDSASignature.resetDigest:()V
7: return
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/ECDSASignature;
0 8 1 privateKey Ljava/security/PrivateKey;
0 8 2 random Ljava/security/SecureRandom;
1 8 3 key Ljava/security/interfaces/ECPrivateKey;
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
privateKey
random
protected void resetDigest();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ec.ECDSASignature.needsReset:Z
ifeq 4
1: aload 0
getfield sun.security.ec.ECDSASignature.messageDigest:Ljava/security/MessageDigest;
ifnull 3
2: aload 0
getfield sun.security.ec.ECDSASignature.messageDigest:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.reset:()V
3: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.ec.ECDSASignature.needsReset:Z
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/ec/ECDSASignature;
protected byte[] getDigestValue();
descriptor: ()[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
putfield sun.security.ec.ECDSASignature.needsReset:Z
1: aload 0
getfield sun.security.ec.ECDSASignature.messageDigest:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.digest:()[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ec/ECDSASignature;
Exceptions:
throws java.security.SignatureException
protected void engineUpdate(byte);
descriptor: (B)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ec.ECDSASignature.messageDigest:Ljava/security/MessageDigest;
iload 1
invokevirtual java.security.MessageDigest.update:(B)V
1: aload 0
iconst_1
putfield sun.security.ec.ECDSASignature.needsReset:Z
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ec/ECDSASignature;
0 3 1 b B
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
b
protected void engineUpdate(byte[], int, int);
descriptor: ([BII)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.security.ec.ECDSASignature.messageDigest:Ljava/security/MessageDigest;
aload 1
iload 2
iload 3
invokevirtual java.security.MessageDigest.update:([BII)V
1: aload 0
iconst_1
putfield sun.security.ec.ECDSASignature.needsReset:Z
2: return
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/ECDSASignature;
0 3 1 b [B
0 3 2 off I
0 3 3 len I
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
b
off
len
protected void engineUpdate(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 2
start local 2 1: iload 2
ifgt 3
2: return
3: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ec.ECDSASignature.messageDigest:Ljava/security/MessageDigest;
aload 1
invokevirtual java.security.MessageDigest.update:(Ljava/nio/ByteBuffer;)V
4: aload 0
iconst_1
putfield sun.security.ec.ECDSASignature.needsReset:Z
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/ec/ECDSASignature;
0 6 1 byteBuffer Ljava/nio/ByteBuffer;
1 6 2 len I
MethodParameters:
Name Flags
byteBuffer
private static boolean isCompatible(java.security.spec.ECParameterSpec, java.security.spec.ECParameterSpec);
descriptor: (Ljava/security/spec/ECParameterSpec;Ljava/security/spec/ECParameterSpec;)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 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic sun.security.util.ECUtil.equals:(Ljava/security/spec/ECParameterSpec;Ljava/security/spec/ECParameterSpec;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 sigParams Ljava/security/spec/ECParameterSpec;
0 3 1 keyParams Ljava/security/spec/ECParameterSpec;
MethodParameters:
Name Flags
sigParams
keyParams
private byte[] signDigestImpl(sun.security.ec.ECDSAOperations, int, byte[], sun.security.ec.ECPrivateKeyImpl, java.security.SecureRandom);
descriptor: (Lsun/security/ec/ECDSAOperations;I[BLsun/security/ec/ECPrivateKeyImpl;Ljava/security/SecureRandom;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iload 2
bipush 7
iadd
bipush 8
idiv
newarray 8
astore 6
start local 6 1: aload 4
invokevirtual sun.security.ec.ECPrivateKeyImpl.getArrayS:()[B
astore 7
start local 7 2: sipush 128
istore 8
start local 8 3: iconst_0
istore 9
start local 9 4: goto 11
5: StackMap locals: sun.security.ec.ECDSASignature sun.security.ec.ECDSAOperations int byte[] sun.security.ec.ECPrivateKeyImpl java.security.SecureRandom byte[] byte[] int int
StackMap stack:
aload 5
aload 6
invokevirtual java.security.SecureRandom.nextBytes:([B)V
6: new sun.security.ec.ECDSAOperations$Seed
dup
aload 6
invokespecial sun.security.ec.ECDSAOperations$Seed.<init>:([B)V
astore 10
start local 10 7: aload 1
aload 7
aload 3
aload 10
invokevirtual sun.security.ec.ECDSAOperations.signDigest:([B[BLsun/security/ec/ECDSAOperations$Seed;)[B
8: areturn
9: StackMap locals: sun.security.ec.ECDSASignature sun.security.ec.ECDSAOperations int byte[] sun.security.ec.ECPrivateKeyImpl java.security.SecureRandom byte[] byte[] int int sun.security.ec.ECDSAOperations$Seed
StackMap stack: sun.security.ec.ECOperations$IntermediateValueException
pop
end local 10 10: iinc 9 1
StackMap locals:
StackMap stack:
11: iload 9
iload 8
if_icmplt 5
end local 9 12: new java.security.SignatureException
dup
new java.lang.StringBuilder
dup
ldc "Unable to produce signature after "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
13: iload 8
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " attempts"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
athrow
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 15 0 this Lsun/security/ec/ECDSASignature;
0 15 1 ops Lsun/security/ec/ECDSAOperations;
0 15 2 seedBits I
0 15 3 digest [B
0 15 4 privImpl Lsun/security/ec/ECPrivateKeyImpl;
0 15 5 random Ljava/security/SecureRandom;
1 15 6 seedBytes [B
2 15 7 s [B
3 15 8 numAttempts I
4 12 9 i I
7 10 10 seed Lsun/security/ec/ECDSAOperations$Seed;
Exception table:
from to target type
7 8 9 Class sun.security.ec.ECOperations$IntermediateValueException
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
ops
seedBits
digest
privImpl
random
private java.util.Optional<byte[]> signDigestImpl(java.security.interfaces.ECPrivateKey, byte[], java.security.SecureRandom);
descriptor: (Ljava/security/interfaces/ECPrivateKey;[BLjava/security/SecureRandom;)Ljava/util/Optional;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
instanceof sun.security.ec.ECPrivateKeyImpl
ifne 2
1: invokestatic java.util.Optional.empty:()Ljava/util/Optional;
areturn
2: StackMap locals:
StackMap stack:
aload 1
checkcast sun.security.ec.ECPrivateKeyImpl
astore 4
start local 4 3: aload 1
invokeinterface java.security.interfaces.ECPrivateKey.getParams:()Ljava/security/spec/ECParameterSpec;
astore 5
start local 5 4: aload 5
invokevirtual java.security.spec.ECParameterSpec.getOrder:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
bipush 64
iadd
istore 6
start local 6 5: aload 5
invokestatic sun.security.ec.ECDSAOperations.forParameters:(Ljava/security/spec/ECParameterSpec;)Ljava/util/Optional;
6: astore 7
start local 7 7: aload 7
invokevirtual java.util.Optional.isEmpty:()Z
ifeq 9
8: invokestatic java.util.Optional.empty:()Ljava/util/Optional;
areturn
9: StackMap locals: sun.security.ec.ECDSASignature java.security.interfaces.ECPrivateKey byte[] java.security.SecureRandom sun.security.ec.ECPrivateKeyImpl java.security.spec.ECParameterSpec int java.util.Optional
StackMap stack:
aload 0
aload 7
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast sun.security.ec.ECDSAOperations
iload 6
aload 2
10: aload 4
aload 3
11: invokevirtual sun.security.ec.ECDSASignature.signDigestImpl:(Lsun/security/ec/ECDSAOperations;I[BLsun/security/ec/ECPrivateKeyImpl;Ljava/security/SecureRandom;)[B
astore 8
start local 8 12: aload 8
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
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 13 0 this Lsun/security/ec/ECDSASignature;
0 13 1 privateKey Ljava/security/interfaces/ECPrivateKey;
0 13 2 digest [B
0 13 3 random Ljava/security/SecureRandom;
3 13 4 privImpl Lsun/security/ec/ECPrivateKeyImpl;
4 13 5 params Ljava/security/spec/ECParameterSpec;
5 13 6 seedBits I
7 13 7 opsOpt Ljava/util/Optional<Lsun/security/ec/ECDSAOperations;>;
12 13 8 sig [B
Exceptions:
throws java.security.SignatureException
Signature: (Ljava/security/interfaces/ECPrivateKey;[BLjava/security/SecureRandom;)Ljava/util/Optional<[B>;
MethodParameters:
Name Flags
privateKey
digest
random
private byte[] signDigestNative(java.security.interfaces.ECPrivateKey, byte[], java.security.SecureRandom);
descriptor: (Ljava/security/interfaces/ECPrivateKey;[BLjava/security/SecureRandom;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokeinterface java.security.interfaces.ECPrivateKey.getS:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.toByteArray:()[B
astore 4
start local 4 1: aload 1
invokeinterface java.security.interfaces.ECPrivateKey.getParams:()Ljava/security/spec/ECParameterSpec;
astore 5
start local 5 2: aconst_null
aload 5
invokestatic sun.security.util.ECUtil.encodeECParameterSpec:(Ljava/security/Provider;Ljava/security/spec/ECParameterSpec;)[B
astore 6
start local 6 3: aload 5
invokevirtual java.security.spec.ECParameterSpec.getOrder:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
istore 7
start local 7 4: iload 7
bipush 7
iadd
iconst_3
ishr
iconst_1
iadd
iconst_2
imul
newarray 8
astore 8
start local 8 5: aload 3
aload 8
invokevirtual java.security.SecureRandom.nextBytes:([B)V
6: aload 3
invokevirtual java.security.SecureRandom.nextInt:()I
istore 9
start local 9 7: iload 9
iconst_1
ior
istore 9
8: aload 2
aload 4
aload 6
aload 8
9: iload 9
10: invokestatic sun.security.ec.ECDSASignature.signDigest:([B[B[B[BI)[B
11: areturn
12: StackMap locals: sun.security.ec.ECDSASignature java.security.interfaces.ECPrivateKey byte[] java.security.SecureRandom byte[] java.security.spec.ECParameterSpec byte[] int byte[] int
StackMap stack: java.security.GeneralSecurityException
astore 10
start local 10 13: new java.security.SignatureException
dup
ldc "Could not sign data"
aload 10
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
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 14 0 this Lsun/security/ec/ECDSASignature;
0 14 1 privateKey Ljava/security/interfaces/ECPrivateKey;
0 14 2 digest [B
0 14 3 random Ljava/security/SecureRandom;
1 14 4 s [B
2 14 5 params Ljava/security/spec/ECParameterSpec;
3 14 6 encodedParams [B
4 14 7 orderLength I
5 14 8 seed [B
7 14 9 timingArgument I
13 14 10 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
8 11 12 Class java.security.GeneralSecurityException
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
privateKey
digest
random
protected byte[] engineSign();
descriptor: ()[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
getfield sun.security.ec.ECDSASignature.random:Ljava/security/SecureRandom;
ifnonnull 2
1: aload 0
invokestatic sun.security.jca.JCAUtil.getSecureRandom:()Ljava/security/SecureRandom;
putfield sun.security.ec.ECDSASignature.random:Ljava/security/SecureRandom;
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ec.ECDSASignature.getDigestValue:()[B
astore 1
start local 1 3: aload 0
aload 0
getfield sun.security.ec.ECDSASignature.privateKey:Ljava/security/interfaces/ECPrivateKey;
aload 1
aload 0
getfield sun.security.ec.ECDSASignature.random:Ljava/security/SecureRandom;
invokevirtual sun.security.ec.ECDSASignature.signDigestImpl:(Ljava/security/interfaces/ECPrivateKey;[BLjava/security/SecureRandom;)Ljava/util/Optional;
astore 2
start local 2 4: aload 2
invokevirtual java.util.Optional.isPresent:()Z
ifeq 7
5: aload 2
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast byte[]
astore 3
start local 3 6: goto 8
end local 3 7: StackMap locals: byte[] java.util.Optional
StackMap stack:
aload 0
aload 0
getfield sun.security.ec.ECDSASignature.privateKey:Ljava/security/interfaces/ECPrivateKey;
aload 1
aload 0
getfield sun.security.ec.ECDSASignature.random:Ljava/security/SecureRandom;
invokevirtual sun.security.ec.ECDSASignature.signDigestNative:(Ljava/security/interfaces/ECPrivateKey;[BLjava/security/SecureRandom;)[B
astore 3
start local 3 8: StackMap locals: byte[]
StackMap stack:
aload 0
getfield sun.security.ec.ECDSASignature.p1363Format:Z
ifeq 10
9: aload 3
areturn
10: StackMap locals:
StackMap stack:
aload 3
invokestatic sun.security.util.ECUtil.encodeSignature:([B)[B
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/ec/ECDSASignature;
3 11 1 digest [B
4 11 2 sigOpt Ljava/util/Optional<[B>;
6 7 3 sig [B
8 11 3 sig [B
Exceptions:
throws java.security.SignatureException
protected boolean engineVerify(byte[]);
descriptor: ([B)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ec.ECDSASignature.publicKey:Ljava/security/interfaces/ECPublicKey;
invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
astore 3
start local 3 1: aconst_null
aload 3
invokestatic sun.security.util.ECUtil.encodeECParameterSpec:(Ljava/security/Provider;Ljava/security/spec/ECParameterSpec;)[B
astore 4
start local 4 2: aload 0
getfield sun.security.ec.ECDSASignature.publicKey:Ljava/security/interfaces/ECPublicKey;
instanceof sun.security.ec.ECPublicKeyImpl
ifeq 5
3: aload 0
getfield sun.security.ec.ECDSASignature.publicKey:Ljava/security/interfaces/ECPublicKey;
checkcast sun.security.ec.ECPublicKeyImpl
invokevirtual sun.security.ec.ECPublicKeyImpl.getEncodedPublicValue:()[B
astore 2
start local 2 4: goto 6
end local 2 5: StackMap locals: sun.security.ec.ECDSASignature byte[] top java.security.spec.ECParameterSpec byte[]
StackMap stack:
aload 0
getfield sun.security.ec.ECDSASignature.publicKey:Ljava/security/interfaces/ECPublicKey;
invokeinterface java.security.interfaces.ECPublicKey.getW:()Ljava/security/spec/ECPoint;
aload 3
invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
invokestatic sun.security.util.ECUtil.encodePoint:(Ljava/security/spec/ECPoint;Ljava/security/spec/EllipticCurve;)[B
astore 2
start local 2 6: StackMap locals: sun.security.ec.ECDSASignature byte[] byte[] java.security.spec.ECParameterSpec byte[]
StackMap stack:
aload 0
getfield sun.security.ec.ECDSASignature.p1363Format:Z
ifeq 9
7: aload 1
astore 5
start local 5 8: goto 10
end local 5 9: StackMap locals:
StackMap stack:
aload 1
invokestatic sun.security.util.ECUtil.decodeSignature:([B)[B
astore 5
start local 5 10: StackMap locals: byte[]
StackMap stack:
aload 5
aload 0
invokevirtual sun.security.ec.ECDSASignature.getDigestValue:()[B
aload 2
aload 4
invokestatic sun.security.ec.ECDSASignature.verifySignedDigest:([B[B[B[B)Z
11: ireturn
12: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 6
start local 6 13: new java.security.SignatureException
dup
ldc "Could not verify signature"
aload 6
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
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 this Lsun/security/ec/ECDSASignature;
0 14 1 signature [B
4 5 2 w [B
6 14 2 w [B
1 14 3 params Ljava/security/spec/ECParameterSpec;
2 14 4 encodedParams [B
8 9 5 sig [B
10 14 5 sig [B
13 14 6 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
10 11 12 Class java.security.GeneralSecurityException
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
signature
protected void engineSetParameter(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.UnsupportedOperationException
dup
ldc "setParameter() not supported"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ec/ECDSASignature;
0 1 1 param Ljava/lang/String;
0 1 2 value Ljava/lang/Object;
Exceptions:
throws java.security.InvalidParameterException
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
param
value
protected void engineSetParameter(java.security.spec.AlgorithmParameterSpec);
descriptor: (Ljava/security/spec/AlgorithmParameterSpec;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnull 2
aload 1
instanceof java.security.spec.ECParameterSpec
ifne 2
1: new java.security.InvalidAlgorithmParameterException
dup
ldc "No parameter accepted"
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ec.ECDSASignature.privateKey:Ljava/security/interfaces/ECPrivateKey;
ifnonnull 3
aload 0
getfield sun.security.ec.ECDSASignature.publicKey:Ljava/security/interfaces/ECPublicKey;
goto 4
StackMap locals:
StackMap stack:
3: aload 0
getfield sun.security.ec.ECDSASignature.privateKey:Ljava/security/interfaces/ECPrivateKey;
StackMap locals:
StackMap stack: java.security.interfaces.ECKey
4: astore 2
start local 2 5: aload 2
ifnull 9
aload 1
checkcast java.security.spec.ECParameterSpec
aload 2
invokeinterface java.security.interfaces.ECKey.getParams:()Ljava/security/spec/ECParameterSpec;
invokestatic sun.security.ec.ECDSASignature.isCompatible:(Ljava/security/spec/ECParameterSpec;Ljava/security/spec/ECParameterSpec;)Z
ifne 9
6: new java.security.InvalidAlgorithmParameterException
dup
7: ldc "Signature params does not match key params"
8: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: java.security.interfaces.ECKey
StackMap stack:
aload 0
aload 1
checkcast java.security.spec.ECParameterSpec
putfield sun.security.ec.ECDSASignature.sigParams:Ljava/security/spec/ECParameterSpec;
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/ec/ECDSASignature;
0 11 1 params Ljava/security/spec/AlgorithmParameterSpec;
5 11 2 key Ljava/security/interfaces/ECKey;
Exceptions:
throws java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
params
protected java.lang.Object engineGetParameter(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.UnsupportedOperationException
dup
ldc "getParameter() not supported"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ec/ECDSASignature;
0 1 1 param Ljava/lang/String;
Exceptions:
throws java.security.InvalidParameterException
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
param
protected java.security.AlgorithmParameters engineGetParameters();
descriptor: ()Ljava/security/AlgorithmParameters;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.security.ec.ECDSASignature.sigParams:Ljava/security/spec/ECParameterSpec;
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
ldc "EC"
invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
astore 1
start local 1 3: aload 1
aload 0
getfield sun.security.ec.ECDSASignature.sigParams:Ljava/security/spec/ECParameterSpec;
invokevirtual java.security.AlgorithmParameters.init:(Ljava/security/spec/AlgorithmParameterSpec;)V
4: aload 1
5: areturn
end local 1 6: StackMap locals:
StackMap stack: java.lang.Exception
astore 1
start local 1 7: new java.security.ProviderException
dup
ldc "Error retrieving EC parameters"
aload 1
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ec/ECDSASignature;
3 6 1 ap Ljava/security/AlgorithmParameters;
7 8 1 e Ljava/lang/Exception;
Exception table:
from to target type
2 5 6 Class java.lang.Exception
private static native byte[] signDigest(byte[], byte[], byte[], byte[], int);
descriptor: ([B[B[B[BI)[B
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
digest
s
encodedParams
seed
timing
private static native boolean verifySignedDigest(byte[], byte[], byte[], byte[]);
descriptor: ([B[B[B[B)Z
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
signature
digest
w
encodedParams
}
SourceFile: "ECDSASignature.java"
NestMembers:
sun.security.ec.ECDSASignature$Raw sun.security.ec.ECDSASignature$RawECDSA sun.security.ec.ECDSASignature$RawinP1363Format sun.security.ec.ECDSASignature$SHA1 sun.security.ec.ECDSASignature$SHA1inP1363Format sun.security.ec.ECDSASignature$SHA224 sun.security.ec.ECDSASignature$SHA224inP1363Format sun.security.ec.ECDSASignature$SHA256 sun.security.ec.ECDSASignature$SHA256inP1363Format sun.security.ec.ECDSASignature$SHA384 sun.security.ec.ECDSASignature$SHA384inP1363Format sun.security.ec.ECDSASignature$SHA512 sun.security.ec.ECDSASignature$SHA512inP1363Format
InnerClasses:
public Seed = sun.security.ec.ECDSAOperations$Seed of sun.security.ec.ECDSAOperations
public final Raw = sun.security.ec.ECDSASignature$Raw of sun.security.ec.ECDSASignature
RawECDSA = sun.security.ec.ECDSASignature$RawECDSA of sun.security.ec.ECDSASignature
public final RawinP1363Format = sun.security.ec.ECDSASignature$RawinP1363Format of sun.security.ec.ECDSASignature
public final SHA1 = sun.security.ec.ECDSASignature$SHA1 of sun.security.ec.ECDSASignature
public final SHA1inP1363Format = sun.security.ec.ECDSASignature$SHA1inP1363Format of sun.security.ec.ECDSASignature
public final SHA224 = sun.security.ec.ECDSASignature$SHA224 of sun.security.ec.ECDSASignature
public final SHA224inP1363Format = sun.security.ec.ECDSASignature$SHA224inP1363Format of sun.security.ec.ECDSASignature
public final SHA256 = sun.security.ec.ECDSASignature$SHA256 of sun.security.ec.ECDSASignature
public final SHA256inP1363Format = sun.security.ec.ECDSASignature$SHA256inP1363Format of sun.security.ec.ECDSASignature
public final SHA384 = sun.security.ec.ECDSASignature$SHA384 of sun.security.ec.ECDSASignature
public final SHA384inP1363Format = sun.security.ec.ECDSASignature$SHA384inP1363Format of sun.security.ec.ECDSASignature
public final SHA512 = sun.security.ec.ECDSASignature$SHA512 of sun.security.ec.ECDSASignature
public final SHA512inP1363Format = sun.security.ec.ECDSASignature$SHA512inP1363Format of sun.security.ec.ECDSASignature
IntermediateValueException = sun.security.ec.ECOperations$IntermediateValueException of sun.security.ec.ECOperations