XMSSMT (Bouncy Castle Library 1.85 API Specification)
Date: 2026-07-12

org.bouncycastle.pqc.crypto.xmss

## Class XMSSMT

- java.lang.Object
- - org.bouncycastle.pqc.crypto.xmss.XMSSMT

-     public final class XMSSMT
      extends java.lang.Object

  XMSS^MT.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `XMSSMT(XMSSMTParameters params, java.security.SecureRandom prng)` XMSSMT constructor...

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `exportPrivateKey()` Export XMSSMT private key.
    `byte[]` | `exportPublicKey()` Export XMSSMT public key.
    `void` | `generateKeys()` Generate a new XMSSMT private key / public key pair.
    `XMSSMTParameters` | `getParams()` Getter XMSSMT params.
    `byte[]` | `getPublicSeed()` Getter public seed.
    `protected XMSSParameters` | `getXMSS()`
    `void` | `importState(byte[] privateKey, byte[] publicKey)` Import XMSSMT private key / public key pair.
    `byte[]` | `sign(byte[] message)` Sign message.
    `boolean` | `verifySignature(byte[] message, byte[] signature, byte[] publicKey)` Verify an XMSSMT signature.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### XMSSMT

          public XMSSMT(XMSSMTParameters params,
                        java.security.SecureRandom prng)

      XMSSMT constructor...
      Parameters:
        `params` - XMSSMTParameters.

  - ### Method Detail

    - #### generateKeys

          public void generateKeys()

      Generate a new XMSSMT private key / public key pair.

    - #### importState

          public void importState(byte[] privateKey,
                                  byte[] publicKey)

      Import XMSSMT private key / public key pair.
      Parameters:
        `privateKey` - XMSSMT private key.
        `publicKey` - XMSSMT public key.

    - #### sign

          public byte[] sign(byte[] message)

      Sign message.
      Parameters:
        `message` - Message to sign.
      Returns:
        XMSSMT signature on digest of message.

    - #### verifySignature

          public boolean verifySignature(byte[] message,
                                         byte[] signature,
                                         byte[] publicKey)
                                  throws java.text.ParseException

      Verify an XMSSMT signature.
      Parameters:
        `message` - Message.
        `signature` - XMSSMT signature.
        `publicKey` - XMSSMT public key.
      Returns:
        true if signature is valid false else.
      Throws:
        `java.text.ParseException`

    - #### exportPrivateKey

          public byte[] exportPrivateKey()

      Export XMSSMT private key.
      Returns:
        XMSSMT private key.

    - #### exportPublicKey

          public byte[] exportPublicKey()

      Export XMSSMT public key.
      Returns:
        XMSSMT public key.

    - #### getParams

          public XMSSMTParameters getParams()

      Getter XMSSMT params.
      Returns:
        XMSSMT params.

    - #### getPublicSeed

          public byte[] getPublicSeed()

      Getter public seed.
      Returns:
        Public seed.

    - #### getXMSS

          protected XMSSParameters getXMSS()