org.bouncycastle.crypto.signers
Class ECDSASigner
java.lang.Object
|
+--org.bouncycastle.crypto.signers.ECDSASigner
- All Implemented Interfaces:
- DSA, DSAExt, org.bouncycastle.math.ec.ECConstants
- public class ECDSASigner
- extends java.lang.Object
- implements org.bouncycastle.math.ec.ECConstants, DSAExt
EC-DSA as described in X9.62
Fields inherited from interface org.bouncycastle.math.ec.ECConstants |
EIGHT, FOUR, ONE, THREE, TWO, ZERO |
Constructor Summary |
ECDSASigner()
Default configuration, random K values. |
ECDSASigner(DSAKCalculator kCalculator)
Configuration with an alternate, possibly deterministic calculator of K. |
Method Summary |
protected java.math.BigInteger |
calculateE(java.math.BigInteger n,
byte[] message)
|
protected org.bouncycastle.math.ec.ECMultiplier |
createBasePointMultiplier()
|
java.math.BigInteger[] |
generateSignature(byte[] message)
generate a signature for the given message using the key we were
initialised with. |
protected org.bouncycastle.math.ec.ECFieldElement |
getDenominator(int coordinateSystem,
org.bouncycastle.math.ec.ECPoint p)
|
java.math.BigInteger |
getOrder()
Get the order of the group that the r, s values in signatures belong to. |
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). |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
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.
init
public void init(boolean forSigning,
CipherParameters param)
- Description copied from interface:
DSA
- initialise the signer for signature generation or signature
verification.
- Specified by:
init
in interface DSA
- Following copied from interface:
org.bouncycastle.crypto.DSA
- Parameters:
forSigning
- true if we are generating a signature, false
otherwise.param
- key parameters for signature generation.
getOrder
public java.math.BigInteger getOrder()
- Description copied from interface:
DSAExt
- Get the order of the group that the r, s values in signatures belong to.
- Specified by:
getOrder
in interface DSAExt
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 interface DSA
- Parameters:
message
- the message that will be verified later.
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 interface DSA
- Following copied from interface:
org.bouncycastle.crypto.DSA
- 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 org.bouncycastle.math.ec.ECMultiplier createBasePointMultiplier()
getDenominator
protected org.bouncycastle.math.ec.ECFieldElement getDenominator(int coordinateSystem,
org.bouncycastle.math.ec.ECPoint p)
initSecureRandom
protected java.security.SecureRandom initSecureRandom(boolean needed,
java.security.SecureRandom provided)