Class SLHDSASigner

java.lang.Object
org.bouncycastle.pqc.crypto.slhdsa.SLHDSASigner
All Implemented Interfaces:
MessageSigner

public class SLHDSASigner extends Object implements MessageSigner
SLH-DA signer.

This version is based on the 3rd submission with deference to the updated reference implementation on github as at November 9th 2021. This version includes the changes for the countermeasure for the long-message second preimage attack - see "https://github.com/sphincs/sphincsplus/commit/61cd2695c6f984b4f4d6ed675378ed9a486cbede" for further details.

  • Constructor Details

    • SLHDSASigner

      public SLHDSASigner()
      Base constructor.
  • Method Details

    • init

      public void init(boolean forSigning, CipherParameters param)
      Description copied from interface: MessageSigner
      initialise the signer for signature generation or signature verification.
      Specified by:
      init in interface MessageSigner
      Parameters:
      forSigning - true if we are generating a signature, false otherwise.
      param - key parameters for signature generation.
    • generateSignature

      public byte[] generateSignature(byte[] message)
      Description copied from interface: MessageSigner
      sign the passed in message (usually the output of a hash function).
      Specified by:
      generateSignature in interface MessageSigner
      Parameters:
      message - the message to be signed.
      Returns:
      the signature of the message
    • verifySignature

      public boolean verifySignature(byte[] message, byte[] signature)
      Description copied from interface: MessageSigner
      verify the message message against the signature value.
      Specified by:
      verifySignature in interface MessageSigner
      Parameters:
      message - the message that was supposed to have been signed.
      signature - the signature of the message
    • internalVerifySignature

      protected boolean internalVerifySignature(byte[] message, byte[] signature)
    • internalGenerateSignature

      protected byte[] internalGenerateSignature(byte[] message, byte[] optRand)