Package org.bouncycastle.crypto

## Interface Signer

- All Known Subinterfaces:
    `SignerWithRecovery`
  All Known Implementing Classes:
    `DigestingMessageSigner`, `DigestingStateAwareMessageSigner`, `DSADigestSigner`, `Ed25519ctxSigner`, `Ed25519phSigner`, `Ed25519Signer`, `Ed448phSigner`, `Ed448Signer`, `GenericSigner`, `ISO9796d2PSSSigner`, `ISO9796d2Signer`, `PSSSigner`, `RSADigestSigner`, `SM2Signer`, `X931Signer`

      public interface Signer

  Generic signer interface for hash based and message recovery signers.

- - ### Method Summary

    All Methods Instance Methods Abstract 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.
    `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.

- - ### Method Detail

    - #### init

          void init​(boolean forSigning,
                    CipherParameters param)

      Initialise the signer for signing or verification.
      Parameters:
        `forSigning` - true if for signing, false otherwise
        `param` - necessary parameters.

    - #### update

          void update​(byte b)

      update the internal digest with the byte b

    - #### update

          void update​(byte[] in,
                      int off,
                      int len)

      update the internal digest with the byte array in

    - #### generateSignature

          byte[] generateSignature()
                            throws CryptoException,
                                   DataLengthException

      generate a signature for the message we've been loaded with using the key we were initialised with.
      Throws:
        `CryptoException`
        `DataLengthException`

    - #### verifySignature

          boolean verifySignature​(byte[] signature)

      return true if the internal state represents the signature described in the passed in array.

    - #### reset

          void reset()

      reset the internal state