Class HashMLDSASigner

  • All Implemented Interfaces:
    Signer

    public class HashMLDSASigner
    extends java.lang.Object
    implements Signer
    • Constructor Summary

      Constructors 
      Constructor Description
      HashMLDSASigner()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      byte[] generateSignature()
      generate a signature for the message we've been loaded with using the key we were initialised with.
      byte[] generateSignature​(byte[] hash)
      Sign a message that has already been hashed externally.
      void init​(boolean forSigning, CipherParameters param)
      Initialise the signer for signing or verification.
      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 verifySignature​(byte[] signature)
      return true if the internal state represents the signature described in the passed in array.
      boolean verifySignature​(byte[] hash, byte[] signature)
      Verify a signature over a message that has already been hashed externally; companion to generateSignature(byte[]).
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • HashMLDSASigner

        public HashMLDSASigner()
    • Method Detail

      • init

        public void init​(boolean forSigning,
                         CipherParameters param)
        Description copied from interface: Signer
        Initialise the signer for signing or verification.
        Specified by:
        init in interface Signer
        Parameters:
        forSigning - true if for signing, false otherwise
        param - necessary parameters.
      • update

        public void update​(byte b)
        Description copied from interface: Signer
        update the internal digest with the byte b
        Specified by:
        update in interface Signer
      • update

        public void update​(byte[] in,
                           int off,
                           int len)
        Description copied from interface: Signer
        update the internal digest with the byte array in
        Specified by:
        update in interface Signer
      • verifySignature

        public boolean verifySignature​(byte[] signature)
        Description copied from interface: Signer
        return true if the internal state represents the signature described in the passed in array.
        Specified by:
        verifySignature in interface Signer
      • generateSignature

        public byte[] generateSignature​(byte[] hash)
                                 throws CryptoException,
                                        DataLengthException
        Sign a message that has already been hashed externally. See FIPS 204 sec. 5.4 (HashML-DSA): the caller supplies the digest of the message and the signer absorbs it together with the DER encoding of the digest algorithm's OID (derived from the parameter set this signer was initialised with) into the mu computation, just as the streaming form would. The supplied hash must have been produced with the digest algorithm matching the configured parameter set.
        Parameters:
        hash - the digest of the message.
        Returns:
        the ML-DSA signature.
        Throws:
        CryptoException
        DataLengthException
      • verifySignature

        public boolean verifySignature​(byte[] hash,
                                       byte[] signature)
        Verify a signature over a message that has already been hashed externally; companion to generateSignature(byte[]).
        Parameters:
        hash - the digest of the message.
        signature - the candidate signature.
        Returns:
        true if the signature is valid.
      • reset

        public void reset()
        reset the internal state
        Specified by:
        reset in interface Signer