Package org.bouncycastle.crypto.signers
Class ECNRSigner
- java.lang.Object
-
- org.bouncycastle.crypto.signers.ECNRSigner
-
-
Constructor Summary
Constructors Constructor Description ECNRSigner()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.math.BigInteger[]
generateSignature(byte[] digest)
generate a signature for the given message using the key we were initialised with.java.math.BigInteger
getOrder()
Get the order of the group that the r, s values in signatures belong to.byte[]
getRecoveredMessage(java.math.BigInteger r, java.math.BigInteger s)
Returns the data used for the signature generation, assuming the public key passed to init() is correct.void
init(boolean forSigning, CipherParameters param)
Initialise the signer.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.
-
-
-
Method Detail
-
init
public void init(boolean forSigning, CipherParameters param)
Initialise the signer.
-
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.
-
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 interfaceDSA
- 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 interfaceDSA
- 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
-
getRecoveredMessage
public byte[] getRecoveredMessage(java.math.BigInteger r, java.math.BigInteger s)
Returns the data used for the signature generation, assuming the public key passed to init() is correct.- Returns:
- null if r and s are not valid.
-
-