org.bouncycastle.crypto.signers
Class ECNRSigner
java.lang.Object
org.bouncycastle.crypto.signers.ECNRSigner
- All Implemented Interfaces:
- DSA
public class ECNRSigner
- extends java.lang.Object
- implements DSA
EC-NR as described in IEEE 1363-2000
Method Summary |
java.math.BigInteger[] |
generateSignature(byte[] digest)
generate a signature for the given message using the key we were
initialised with. |
void |
init(boolean forSigning,
CipherParameters param)
initialise the signer for signature generation or signature
verification. |
boolean |
verifySignature(byte[] digest,
java.math.BigInteger r,
java.math.BigInteger s)
return true if the value r and s represent a signature for the
message passed in. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
forSigning
private boolean forSigning
key
private ECKeyParameters key
random
private java.security.SecureRandom random
ECNRSigner
public ECNRSigner()
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
- Parameters:
forSigning
- true if we are generating a signature, false
otherwise.param
- key parameters for signature generation.
generateSignature
public java.math.BigInteger[] generateSignature(byte[] digest)
- generate a signature for the given message using the key we were
initialised with. Generally, the order of the curve should be at
least as long as the hash of the message of interest, and with
ECNR it *must* be at least as long.
- Specified by:
generateSignature
in interface DSA
- Parameters:
digest
- the digest to be signed.
- Returns:
- two big integers representing the r and s values respectively.
- Throws:
DataLengthException
- if the digest is longer than the key allows
verifySignature
public boolean verifySignature(byte[] digest,
java.math.BigInteger r,
java.math.BigInteger s)
- return true if the value r and s represent a signature for the
message passed in. Generally, the order of the curve should be at
least as long as the hash of the message of interest, and with
ECNR, it *must* be at least as long. But just in case the signer
applied mod(n) to the longer digest, this implementation will
apply mod(n) during verification.
- Specified by:
verifySignature
in interface DSA
- Parameters:
digest
- the digest to be verified.r
- the r value of the signature.s
- the s value of the signature.
- Throws:
DataLengthException
- if the digest is longer than the key allows