public class MLDSASigner extends java.lang.Object implements Signer
verifySignature(byte[]) (and verifyMuSignature(byte[], byte[])) return
false uniformly for a cryptographically wrong signature and for one that is
structurally malformed per FIPS 204 Algorithm 8 (wrong length, an out-of-order or duplicate
hint index, or a hint weight exceeding the parameter set's omega) - the two cases are not
distinguished, and neither ever throws for a decode failure. This differs from some other
implementations (e.g. the JDK's own SUN ML-DSA provider), which signal a decode failure
separately from a cryptographic mismatch; see
github #2367.
| Constructor and Description |
|---|
MLDSASigner() |
| Modifier and Type | Method and Description |
|---|---|
byte[] |
generateMu() |
byte[] |
generateMuSignature(byte[] mu) |
byte[] |
generateSignature()
generate a signature for the message we've been loaded with using
the key we were initialised with.
|
void |
init(boolean forSigning,
CipherParameters param)
Initialise the signer for signing or verification.
|
protected byte[] |
internalGenerateSignature(byte[] message,
byte[] random) |
protected boolean |
internalVerifySignature(byte[] message,
byte[] signature) |
void |
reset()
reset the internal state
|
void |
update(byte b)
update the internal digest with the byte b
|
void |
update(byte[] in,
int off,
int len)
update the internal digest with the byte array in
|
boolean |
verifyMu(byte[] mu) |
boolean |
verifyMuSignature(byte[] mu,
byte[] signature) |
boolean |
verifySignature(byte[] signature)
return true if the internal state represents the signature described
in the passed in array.
|
public void init(boolean forSigning,
CipherParameters param)
Signerpublic void update(byte b)
Signerpublic void update(byte[] in,
int off,
int len)
Signerpublic byte[] generateMu()
throws CryptoException,
DataLengthException
CryptoExceptionDataLengthExceptionpublic byte[] generateMuSignature(byte[] mu)
throws CryptoException,
DataLengthException
CryptoExceptionDataLengthExceptionpublic byte[] generateSignature()
throws CryptoException,
DataLengthException
SignergenerateSignature in interface SignerCryptoExceptionDataLengthExceptionpublic boolean verifyMu(byte[] mu)
public boolean verifySignature(byte[] signature)
SignerverifySignature in interface Signerpublic boolean verifyMuSignature(byte[] mu,
byte[] signature)
public void reset()
Signerprotected byte[] internalGenerateSignature(byte[] message,
byte[] random)
protected boolean internalVerifySignature(byte[] message,
byte[] signature)