Package org.bouncycastle.crypto.signers
Class MLDSASigner
- java.lang.Object
-
- org.bouncycastle.crypto.signers.MLDSASigner
-
- All Implemented Interfaces:
Signer
public class MLDSASigner extends java.lang.Object implements Signer
ML-DSA (FIPS 204) signer/verifier.verifySignature(byte[])(andverifyMuSignature(byte[], byte[])) returnfalseuniformly 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 Summary
Constructors Constructor Description MLDSASigner()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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.voidinit(boolean forSigning, CipherParameters param)Initialise the signer for signing or verification.protected byte[]internalGenerateSignature(byte[] message, byte[] random)protected booleaninternalVerifySignature(byte[] message, byte[] signature)voidreset()reset the internal statevoidupdate(byte b)update the internal digest with the byte bvoidupdate(byte[] in, int off, int len)update the internal digest with the byte array inbooleanverifyMu(byte[] mu)booleanverifyMuSignature(byte[] mu, byte[] signature)booleanverifySignature(byte[] signature)return true if the internal state represents the signature described in the passed in array.
-
-
-
Method Detail
-
init
public void init(boolean forSigning, CipherParameters param)Description copied from interface:SignerInitialise the signer for signing or verification.
-
update
public void update(byte b)
Description copied from interface:Signerupdate the internal digest with the byte b
-
update
public void update(byte[] in, int off, int len)Description copied from interface:Signerupdate the internal digest with the byte array in
-
generateMu
public byte[] generateMu() throws CryptoException, DataLengthException- Throws:
CryptoExceptionDataLengthException
-
generateMuSignature
public byte[] generateMuSignature(byte[] mu) throws CryptoException, DataLengthException- Throws:
CryptoExceptionDataLengthException
-
generateSignature
public byte[] generateSignature() throws CryptoException, DataLengthExceptionDescription copied from interface:Signergenerate a signature for the message we've been loaded with using the key we were initialised with.- Specified by:
generateSignaturein interfaceSigner- Throws:
CryptoExceptionDataLengthException
-
verifyMu
public boolean verifyMu(byte[] mu)
-
verifySignature
public boolean verifySignature(byte[] signature)
Description copied from interface:Signerreturn true if the internal state represents the signature described in the passed in array.- Specified by:
verifySignaturein interfaceSigner
-
verifyMuSignature
public boolean verifyMuSignature(byte[] mu, byte[] signature)
-
reset
public void reset()
Description copied from interface:Signerreset the internal state
-
internalGenerateSignature
protected byte[] internalGenerateSignature(byte[] message, byte[] random)
-
internalVerifySignature
protected boolean internalVerifySignature(byte[] message, byte[] signature)
-
-