Package org.bouncycastle.crypto.signers
Class ECDSASigner
- java.lang.Object
-
- org.bouncycastle.crypto.signers.ECDSASigner
-
- All Implemented Interfaces:
DSA
,ECConstants
public class ECDSASigner extends java.lang.Object implements ECConstants, DSA
EC-DSA as described in X9.62
-
-
Constructor Summary
Constructors Constructor Description ECDSASigner()
Default configuration, random K values.ECDSASigner(DSAKCalculator kCalculator)
Configuration with an alternate, possibly deterministic calculator of K.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.math.BigInteger
calculateE(java.math.BigInteger n, byte[] message)
protected ECMultiplier
createBasePointMultiplier()
java.math.BigInteger[]
generateSignature(byte[] message)
generate a signature for the given message using the key we were initialised with.protected ECFieldElement
getDenominator(int coordinateSystem, ECPoint p)
void
init(boolean forSigning, CipherParameters param)
initialise the signer for signature generation or signature verification.protected java.security.SecureRandom
initSecureRandom(boolean needed, java.security.SecureRandom provided)
boolean
verifySignature(byte[] message, java.math.BigInteger r, java.math.BigInteger s)
return true if the value r and s represent a DSA signature for the passed in message (for standard DSA the message should be a SHA-1 hash of the real message to be verified).
-
-
-
Constructor Detail
-
ECDSASigner
public ECDSASigner()
Default configuration, random K values.
-
ECDSASigner
public ECDSASigner(DSAKCalculator kCalculator)
Configuration with an alternate, possibly deterministic calculator of K.- Parameters:
kCalculator
- a K value calculator.
-
-
Method Detail
-
init
public void init(boolean forSigning, CipherParameters param)
Description copied from interface:DSA
initialise the signer for signature generation or signature verification.
-
generateSignature
public java.math.BigInteger[] generateSignature(byte[] message)
generate a signature for the given message using the key we were initialised with. For conventional DSA the message should be a SHA-1 hash of the message of interest.- Specified by:
generateSignature
in interfaceDSA
- Parameters:
message
- the message that will be verified later.- Returns:
- two big integers representing the r and s values respectively.
-
verifySignature
public boolean verifySignature(byte[] message, java.math.BigInteger r, java.math.BigInteger s)
return true if the value r and s represent a DSA signature for the passed in message (for standard DSA the message should be a SHA-1 hash of the real message to be verified).- Specified by:
verifySignature
in interfaceDSA
- Parameters:
message
- the message that was supposed to have been signed.r
- the r signature value.s
- the s signature value.
-
calculateE
protected java.math.BigInteger calculateE(java.math.BigInteger n, byte[] message)
-
createBasePointMultiplier
protected ECMultiplier createBasePointMultiplier()
-
getDenominator
protected ECFieldElement getDenominator(int coordinateSystem, ECPoint p)
-
initSecureRandom
protected java.security.SecureRandom initSecureRandom(boolean needed, java.security.SecureRandom provided)
-
-