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

org.bouncycastle.pqc.crypto.faest

## Class FaestParameters

- java.lang.Object
- - org.bouncycastle.pqc.crypto.faest.FaestParameters

-     public final class FaestParameters
      extends java.lang.Object

  FAEST parameter sets per the v2.0 algorithm specification.

  Twelve instances are exposed, one per parameter set, mirroring the `faest_paramid_t` enumeration in the reference implementation's `instances.h`. Numeric values come from the per-parameter macros in `build/parameters.h` of the reference build (auto-generated from the spec). The "derived" fields (`k`, `tau0`, `tau1`, `L`) are computed from `lambda`, `tau`, `wGrind` per the formulae in `instances.c`.

  Reference upstream: `faest-sign/faest-ref`.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static FaestParameters` | `faest_128f` FAEST-128f: lambda=128, fast-signing trade-off.
    `static FaestParameters` | `faest_128s` FAEST-128s: lambda=128, small-signature trade-off.
    `static FaestParameters` | `faest_192f` FAEST-192f: lambda=192, fast-signing trade-off.
    `static FaestParameters` | `faest_192s` FAEST-192s: lambda=192, small-signature trade-off.
    `static FaestParameters` | `faest_256f` FAEST-256f: lambda=256, fast-signing trade-off.
    `static FaestParameters` | `faest_256s` FAEST-256s: lambda=256, small-signature trade-off.
    `static FaestParameters` | `faest_em_128f` FAEST-EM-128f: lambda=128, EM mode, fast-signing trade-off.
    `static FaestParameters` | `faest_em_128s` FAEST-EM-128s: lambda=128, EM mode, small-signature trade-off.
    `static FaestParameters` | `faest_em_192f` FAEST-EM-192f: lambda=192, EM mode, fast-signing trade-off.
    `static FaestParameters` | `faest_em_192s` FAEST-EM-192s: lambda=192, EM mode, small-signature trade-off.
    `static FaestParameters` | `faest_em_256f` FAEST-EM-256f: lambda=256, EM mode, fast-signing trade-off.
    `static FaestParameters` | `faest_em_256s` FAEST-EM-256s: lambda=256, EM mode, small-signature trade-off.
    `static int` | `IV_SIZE` IV size in bytes for randomness expansion.
    `static int` | `MAX_LAMBDA` Max length of a witness, mirrors MAX_LAMBDA in instances.h.
    `static int` | `MAX_TAU` Max VOLE repetitions, mirrors MAX_TAU.
    `static int` | `UNIVERSAL_HASH_B` Universal-hash output width in bytes, mirrors UNIVERSAL_HASH_B.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static FaestParameters` | `byName(java.lang.String name)` Return the parameter set whose `getName()` matches, or null.
    `int` | `getEll()`
    `int` | `getK()`
    `int` | `getL()`
    `int` | `getLambda()`
    `int` | `getLambdaBytes()`
    `java.lang.String` | `getName()`
    `int` | `getOwfInputSize()`
    `int` | `getOwfOutputSize()`
    `int` | `getPkSize()`
    `int` | `getSigSize()`
    `int` | `getSke()`
    `int` | `getSkSize()`
    `int` | `getTau()`
    `int` | `getTau0()`
    `int` | `getTau1()`
    `int` | `getWGrind()`
    `boolean` | `isEm()`

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

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

- - ### Field Detail

    - #### faest_128s

          public static final FaestParameters faest_128s

      FAEST-128s: lambda=128, small-signature trade-off. Signature 4506 bytes.

    - #### faest_128f

          public static final FaestParameters faest_128f

      FAEST-128f: lambda=128, fast-signing trade-off. Signature 5924 bytes.

    - #### faest_192s

          public static final FaestParameters faest_192s

      FAEST-192s: lambda=192, small-signature trade-off. Signature 11260 bytes.

    - #### faest_192f

          public static final FaestParameters faest_192f

      FAEST-192f: lambda=192, fast-signing trade-off. Signature 14948 bytes.

    - #### faest_256s

          public static final FaestParameters faest_256s

      FAEST-256s: lambda=256, small-signature trade-off. Signature 20696 bytes.

    - #### faest_256f

          public static final FaestParameters faest_256f

      FAEST-256f: lambda=256, fast-signing trade-off. Signature 26548 bytes.

    - #### faest_em_128s

          public static final FaestParameters faest_em_128s

      FAEST-EM-128s: lambda=128, EM mode, small-signature trade-off. Signature 3906 bytes.

    - #### faest_em_128f

          public static final FaestParameters faest_em_128f

      FAEST-EM-128f: lambda=128, EM mode, fast-signing trade-off. Signature 5060 bytes.

    - #### faest_em_192s

          public static final FaestParameters faest_em_192s

      FAEST-EM-192s: lambda=192, EM mode, small-signature trade-off. Signature 9340 bytes.

    - #### faest_em_192f

          public static final FaestParameters faest_em_192f

      FAEST-EM-192f: lambda=192, EM mode, fast-signing trade-off. Signature 12380 bytes.

    - #### faest_em_256s

          public static final FaestParameters faest_em_256s

      FAEST-EM-256s: lambda=256, EM mode, small-signature trade-off. Signature 17984 bytes.

    - #### faest_em_256f

          public static final FaestParameters faest_em_256f

      FAEST-EM-256f: lambda=256, EM mode, fast-signing trade-off. Signature 23476 bytes.

    - #### MAX_LAMBDA

          public static final int MAX_LAMBDA

      Max length of a witness, mirrors MAX_LAMBDA in instances.h.
      See Also:
        Constant Field Values

    - #### MAX_TAU

          public static final int MAX_TAU

      Max VOLE repetitions, mirrors MAX_TAU.
      See Also:
        Constant Field Values

    - #### UNIVERSAL_HASH_B

          public static final int UNIVERSAL_HASH_B

      Universal-hash output width in bytes, mirrors UNIVERSAL_HASH_B.
      See Also:
        Constant Field Values

    - #### IV_SIZE

          public static final int IV_SIZE

      IV size in bytes for randomness expansion.
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### byName

          public static FaestParameters byName(java.lang.String name)

      Return the parameter set whose `getName()` matches, or null.

    - #### getName

          public java.lang.String getName()

    - #### isEm

          public boolean isEm()

    - #### getLambda

          public int getLambda()

    - #### getLambdaBytes

          public int getLambdaBytes()

    - #### getTau

          public int getTau()

    - #### getWGrind

          public int getWGrind()

    - #### getEll

          public int getEll()

    - #### getK

          public int getK()

    - #### getTau0

          public int getTau0()

    - #### getTau1

          public int getTau1()

    - #### getL

          public int getL()

    - #### getSke

          public int getSke()

    - #### getOwfInputSize

          public int getOwfInputSize()

    - #### getOwfOutputSize

          public int getOwfOutputSize()

    - #### getPkSize

          public int getPkSize()

    - #### getSkSize

          public int getSkSize()

    - #### getSigSize

          public int getSigSize()