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
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.security.SignatureSpi.<init>:()V
1: aload 0
aconst_null
putfield sun.security.ec.ECDSASignature.messageDigest:Ljava/security/MessageDigest;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ec/ECDSASignature;
void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.security.SignatureSpi.<init>:()V
1: aload 0
aload 1
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
putfield sun.security.ec.ECDSASignature.messageDigest:Ljava/security/MessageDigest;
2: goto 5
StackMap locals: sun.security.ec.ECDSASignature java.lang.String
StackMap stack: java.security.NoSuchAlgorithmException
3: astore 2
start local 2 4: new java.security.ProviderException
dup
aload 2
invokespecial java.security.ProviderException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 5: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.ec.ECDSASignature.needsReset:Z
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ec/ECDSASignature;
0 7 1 digestName Ljava/lang/String;
4 5 2 e Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
1 2 3 Class java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
digestName
protected void engineInitVerify(java.security.PublicKey);
descriptor: (Ljava/security/PublicKey;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic sun.security.ec.ECKeyFactory.toECKey:(Ljava/security/Key;)Ljava/security/interfaces/ECKey;
checkcast java.security.interfaces.ECPublicKey
putfield sun.security.ec.ECDSASignature.publicKey:Ljava/security/interfaces/ECPublicKey;
1: aload 0
aconst_null
putfield sun.security.ec.ECDSASignature.privateKey:Ljava/security/interfaces/ECPrivateKey;
2: aload 0
invokevirtual sun.security.ec.ECDSASignature.resetDigest:()V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/ec/ECDSASignature;
0 4 1 publicKey Ljava/security/PublicKey;
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=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokestatic sun.security.ec.ECKeyFactory.toECKey:(Ljava/security/Key;)Ljava/security/interfaces/ECKey;
checkcast java.security.interfaces.ECPrivateKey
putfield sun.security.ec.ECDSASignature.privateKey:Ljava/security/interfaces/ECPrivateKey;
1: aload 0
aconst_null
putfield sun.security.ec.ECDSASignature.publicKey:Ljava/security/interfaces/ECPublicKey;
2: aload 0
aload 2
putfield sun.security.ec.ECDSASignature.random:Ljava/security/SecureRandom;
3: aload 0
invokevirtual sun.security.ec.ECDSASignature.resetDigest:()V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/ec/ECDSASignature;
0 5 1 privateKey Ljava/security/PrivateKey;
0 5 2 random Ljava/security/SecureRandom;
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 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 sun.security.util.Optional<byte[]> signDigestImpl(java.security.interfaces.ECPrivateKey, byte[], java.security.SecureRandom);
descriptor: (Ljava/security/interfaces/ECPrivateKey;[BLjava/security/SecureRandom;)Lsun/security/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 sun.security.util.Optional.empty:()Lsun/security/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;)Lsun/security/util/Optional;
6: astore 7
start local 7 7: aload 7
invokevirtual sun.security.util.Optional.isEmpty:()Z
ifeq 9
8: invokestatic sun.security.util.Optional.empty:()Lsun/security/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 sun.security.util.Optional
StackMap stack:
aload 0
aload 7
invokevirtual sun.security.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 sun.security.util.Optional.of:(Ljava/lang/Object;)Lsun/security/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 Lsun/security/util/Optional<Lsun/security/ec/ECDSAOperations;>;
12 13 8 sig [B
Exceptions:
throws java.security.SignatureException
Signature: (Ljava/security/interfaces/ECPrivateKey;[BLjava/security/SecureRandom;)Lsun/security/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.getCurve:()Ljava/security/spec/EllipticCurve;
invokevirtual java.security.spec.EllipticCurve.getField:()Ljava/security/spec/ECField;
invokeinterface java.security.spec.ECField.getFieldSize:()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 keySize 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;)Lsun/security/util/Optional;
astore 2
start local 2 4: aload 2
invokevirtual sun.security.util.Optional.isPresent:()Z
ifeq 7
5: aload 2
invokevirtual sun.security.util.Optional.get:()Ljava/lang/Object;
checkcast byte[]
astore 3
start local 3 6: goto 8
end local 3 7: StackMap locals: byte[] sun.security.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
aload 3
invokevirtual sun.security.ec.ECDSASignature.encodeSignature:([B)[B
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/ec/ECDSASignature;
3 9 1 digest [B
4 9 2 sigOpt Lsun/security/util/Optional<[B>;
6 7 3 sig [B
8 9 3 sig [B
Exceptions:
throws java.security.SignatureException
protected boolean engineVerify(byte[]);
descriptor: ([B)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, 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
aload 1
invokevirtual sun.security.ec.ECDSASignature.decodeSignature:([B)[B
aload 0
invokevirtual sun.security.ec.ECDSASignature.getDigestValue:()[B
aload 2
aload 4
7: invokestatic sun.security.ec.ECDSASignature.verifySignedDigest:([B[B[B[B)Z
8: ireturn
9: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 5
start local 5 10: new java.security.SignatureException
dup
ldc "Could not verify signature"
aload 5
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
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 11 0 this Lsun/security/ec/ECDSASignature;
0 11 1 signature [B
4 5 2 w [B
6 11 2 w [B
1 11 3 params Ljava/security/spec/ECParameterSpec;
2 11 4 encodedParams [B
10 11 5 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
6 8 9 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 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
private byte[] encodeSignature(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 1
arraylength
iconst_1
ishr
istore 2
start local 2 1: iload 2
newarray 8
astore 3
start local 3 2: aload 1
iconst_0
aload 3
iconst_0
iload 2
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: new java.math.BigInteger
dup
iconst_1
aload 3
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 4
start local 4 4: aload 1
iload 2
aload 3
iconst_0
iload 2
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: new java.math.BigInteger
dup
iconst_1
aload 3
invokespecial java.math.BigInteger.<init>:(I[B)V
astore 5
start local 5 6: new sun.security.util.DerOutputStream
dup
aload 1
arraylength
bipush 10
iadd
invokespecial sun.security.util.DerOutputStream.<init>:(I)V
astore 6
start local 6 7: aload 6
aload 4
invokevirtual sun.security.util.DerOutputStream.putInteger:(Ljava/math/BigInteger;)V
8: aload 6
aload 5
invokevirtual sun.security.util.DerOutputStream.putInteger:(Ljava/math/BigInteger;)V
9: new sun.security.util.DerValue
dup
bipush 48
aload 6
invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
invokespecial sun.security.util.DerValue.<init>:(B[B)V
10: astore 7
start local 7 11: aload 7
invokevirtual sun.security.util.DerValue.toByteArray:()[B
12: areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 13: StackMap locals:
StackMap stack: java.lang.Exception
astore 2
start local 2 14: new java.security.SignatureException
dup
ldc "Could not encode signature"
aload 2
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
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 signature [B
1 13 2 n I
2 13 3 bytes [B
4 13 4 r Ljava/math/BigInteger;
6 13 5 s Ljava/math/BigInteger;
7 13 6 out Lsun/security/util/DerOutputStream;
11 13 7 result Lsun/security/util/DerValue;
14 15 2 e Ljava/lang/Exception;
Exception table:
from to target type
0 12 13 Class java.lang.Exception
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
signature
private byte[] decodeSignature(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=10, args_size=2
start local 0 start local 1 0: new sun.security.util.DerInputStream
dup
aload 1
iconst_0
aload 1
arraylength
iconst_0
invokespecial sun.security.util.DerInputStream.<init>:([BIIZ)V
astore 2
start local 2 1: aload 2
iconst_2
invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
astore 3
start local 3 2: aload 3
arraylength
iconst_2
if_icmpne 3
aload 2
invokevirtual sun.security.util.DerInputStream.available:()I
ifeq 4
3: StackMap locals: sun.security.util.DerInputStream sun.security.util.DerValue[]
StackMap stack:
new java.io.IOException
dup
ldc "Invalid encoding for signature"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 3
iconst_0
aaload
invokevirtual sun.security.util.DerValue.getPositiveBigInteger:()Ljava/math/BigInteger;
astore 4
start local 4 5: aload 3
iconst_1
aaload
invokevirtual sun.security.util.DerValue.getPositiveBigInteger:()Ljava/math/BigInteger;
astore 5
start local 5 6: aload 4
invokevirtual java.math.BigInteger.toByteArray:()[B
invokestatic sun.security.ec.ECDSASignature.trimZeroes:([B)[B
astore 6
start local 6 7: aload 5
invokevirtual java.math.BigInteger.toByteArray:()[B
invokestatic sun.security.ec.ECDSASignature.trimZeroes:([B)[B
astore 7
start local 7 8: aload 6
arraylength
aload 7
arraylength
invokestatic java.lang.Math.max:(II)I
istore 8
start local 8 9: iload 8
iconst_1
ishl
newarray 8
astore 9
start local 9 10: aload 6
iconst_0
aload 9
iload 8
aload 6
arraylength
isub
11: aload 6
arraylength
12: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
13: aload 7
iconst_0
aload 9
aload 9
arraylength
aload 7
arraylength
isub
14: aload 7
arraylength
15: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
16: aload 9
17: areturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 18: StackMap locals: sun.security.ec.ECDSASignature byte[]
StackMap stack: java.lang.Exception
astore 2
start local 2 19: new java.security.SignatureException
dup
ldc "Invalid encoding for signature"
aload 2
invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/security/ec/ECDSASignature;
0 20 1 sig [B
1 18 2 in Lsun/security/util/DerInputStream;
2 18 3 values [Lsun/security/util/DerValue;
5 18 4 r Ljava/math/BigInteger;
6 18 5 s Ljava/math/BigInteger;
7 18 6 rBytes [B
8 18 7 sBytes [B
9 18 8 k I
10 18 9 result [B
19 20 2 e Ljava/lang/Exception;
Exception table:
from to target type
0 17 18 Class java.lang.Exception
Exceptions:
throws java.security.SignatureException
MethodParameters:
Name Flags
sig
private static byte[] trimZeroes(byte[]);
descriptor: ([B)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 3
2: StackMap locals: int
StackMap stack:
iinc 1 1
3: StackMap locals:
StackMap stack:
iload 1
aload 0
arraylength
iconst_1
isub
if_icmpge 4
aload 0
iload 1
baload
ifeq 2
4: StackMap locals:
StackMap stack:
iload 1
ifne 6
5: aload 0
areturn
6: StackMap locals:
StackMap stack:
aload 0
arraylength
iload 1
isub
newarray 8
astore 2
start local 2 7: aload 0
iload 1
aload 2
iconst_0
aload 2
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 b [B
1 9 1 i I
7 9 2 t [B
MethodParameters:
Name Flags
b
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$SHA1 sun.security.ec.ECDSASignature$SHA224 sun.security.ec.ECDSASignature$SHA256 sun.security.ec.ECDSASignature$SHA384 sun.security.ec.ECDSASignature$SHA512
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
public final SHA1 = sun.security.ec.ECDSASignature$SHA1 of sun.security.ec.ECDSASignature
public final SHA224 = sun.security.ec.ECDSASignature$SHA224 of sun.security.ec.ECDSASignature
public final SHA256 = sun.security.ec.ECDSASignature$SHA256 of sun.security.ec.ECDSASignature
public final SHA384 = sun.security.ec.ECDSASignature$SHA384 of sun.security.ec.ECDSASignature
public final SHA512 = sun.security.ec.ECDSASignature$SHA512 of sun.security.ec.ECDSASignature
IntermediateValueException = sun.security.ec.ECOperations$IntermediateValueException of sun.security.ec.ECOperations