Package org.bouncycastle.pqc.jcajce.interfaces

## Interface StateAwareSignature

- All Known Implementing Classes:
    `XMSSMTSignatureSpi`, `XMSSMTSignatureSpi.generic`, `XMSSMTSignatureSpi.withSha256`, `XMSSMTSignatureSpi.withSha256andPrehash`, `XMSSMTSignatureSpi.withSha512`, `XMSSMTSignatureSpi.withSha512andPrehash`, `XMSSMTSignatureSpi.withShake128`, `XMSSMTSignatureSpi.withShake128andPrehash`, `XMSSMTSignatureSpi.withShake256`, `XMSSMTSignatureSpi.withShake256andPrehash`, `XMSSSignatureSpi`, `XMSSSignatureSpi.generic`, `XMSSSignatureSpi.withSha256`, `XMSSSignatureSpi.withSha256andPrehash`, `XMSSSignatureSpi.withSha512`, `XMSSSignatureSpi.withSha512andPrehash`, `XMSSSignatureSpi.withShake128`, `XMSSSignatureSpi.withShake128andPrehash`, `XMSSSignatureSpi.withShake256`, `XMSSSignatureSpi.withShake256andPrehash`

      public interface StateAwareSignature

  Deprecated.
  it's better to avoid this and use extractKeyShard methods where possible.
  This interface is implemented by Signature classes returned by the PQC provider where the signature algorithm is one where the private key is updated for each signature generated. Examples of these are algorithms such as GMSS, XMSS, and XMSS^MT.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.String` | `getAlgorithm()` | Deprecated.
    `java.security.PrivateKey` | `getUpdatedPrivateKey()` | Deprecated. Return the current version of the private key with the updated state.
    `void` | `initSign​(java.security.PrivateKey privateKey)` | Deprecated.
    `void` | `initSign​(java.security.PrivateKey privateKey, java.security.SecureRandom random)` | Deprecated.
    `void` | `initVerify​(java.security.cert.Certificate certificate)` | Deprecated.
    `void` | `initVerify​(java.security.PublicKey publicKey)` | Deprecated.
    `boolean` | `isSigningCapable()` | Deprecated. Return true if this Signature object can be used for signing.
    `byte[]` | `sign()` | Deprecated.
    `int` | `sign​(byte[] outbuf, int offset, int len)` | Deprecated.
    `void` | `update​(byte b)` | Deprecated.
    `void` | `update​(byte[] data)` | Deprecated.
    `void` | `update​(byte[] data, int off, int len)` | Deprecated.
    `void` | `update​(java.nio.ByteBuffer data)` | Deprecated.
    `boolean` | `verify​(byte[] signature)` | Deprecated.
    `boolean` | `verify​(byte[] signature, int offset, int length)` | Deprecated.

- - ### Method Detail

    - #### initVerify

          void initVerify​(java.security.PublicKey publicKey)
                   throws java.security.InvalidKeyException

      Deprecated.
      Throws:
        `java.security.InvalidKeyException`

    - #### initVerify

          void initVerify​(java.security.cert.Certificate certificate)
                   throws java.security.InvalidKeyException

      Deprecated.
      Throws:
        `java.security.InvalidKeyException`

    - #### initSign

          void initSign​(java.security.PrivateKey privateKey)
                 throws java.security.InvalidKeyException

      Deprecated.
      Throws:
        `java.security.InvalidKeyException`

    - #### initSign

          void initSign​(java.security.PrivateKey privateKey,
                        java.security.SecureRandom random)
                 throws java.security.InvalidKeyException

      Deprecated.
      Throws:
        `java.security.InvalidKeyException`

    - #### sign

          byte[] sign()
               throws java.security.SignatureException

      Deprecated.
      Throws:
        `java.security.SignatureException`

    - #### sign

          int sign​(byte[] outbuf,
                   int offset,
                   int len)
            throws java.security.SignatureException

      Deprecated.
      Throws:
        `java.security.SignatureException`

    - #### verify

          boolean verify​(byte[] signature)
                  throws java.security.SignatureException

      Deprecated.
      Throws:
        `java.security.SignatureException`

    - #### verify

          boolean verify​(byte[] signature,
                         int offset,
                         int length)
                  throws java.security.SignatureException

      Deprecated.
      Throws:
        `java.security.SignatureException`

    - #### update

          void update​(byte b)
               throws java.security.SignatureException

      Deprecated.
      Throws:
        `java.security.SignatureException`

    - #### update

          void update​(byte[] data)
               throws java.security.SignatureException

      Deprecated.
      Throws:
        `java.security.SignatureException`

    - #### update

          void update​(byte[] data,
                      int off,
                      int len)
               throws java.security.SignatureException

      Deprecated.
      Throws:
        `java.security.SignatureException`

    - #### update

          void update​(java.nio.ByteBuffer data)
               throws java.security.SignatureException

      Deprecated.
      Throws:
        `java.security.SignatureException`

    - #### getAlgorithm

          java.lang.String getAlgorithm()

      Deprecated.

    - #### isSigningCapable

          boolean isSigningCapable()

      Deprecated.
      Return true if this Signature object can be used for signing. False otherwise.
      Returns:
        true if we are capable of making signatures.

    - #### getUpdatedPrivateKey

          java.security.PrivateKey getUpdatedPrivateKey()

      Deprecated.
      Return the current version of the private key with the updated state.

      Note: calling this method will effectively disable the Signature object from being used for further signature generation without another call to initSign().

      Returns:
        an updated private key object, which can be used for later signature generation.