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

org.bouncycastle.pqc.crypto.qruov

## Class QRUOVParameters

- java.lang.Object
- - org.bouncycastle.pqc.crypto.qruov.QRUOVParameters

-     public class QRUOVParameters
      extends java.lang.Object

  Parameter sets for the QR-UOV multivariate signature scheme (NIST PQC additional signatures Round 2 submission).

  QR-UOV is a quotient-ring UOV variant operating over a small prime field F_q with q in {7, 31, 127}, a quotient ring extension F_q^L = F_q[X]/f(X) for a small irreducible f(X) = x^L - fc * x^fe - fc0, and dimensions (v, m).

  The `#qruov_*_shake` constants use SHAKE as the pseudo-random generator (matching the `kat_shake` test vectors); the `#qruov_*_aes` constants use AES-CTR (matching the `kat_aes` test vectors). Algorithm output is otherwise identical apart from the PRG-driven expansions.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `PRG_AES`
    `static int` | `PRG_SHAKE`
    `static QRUOVParameters` | `qruov_1_q127_L3_v156_m54_aes`
    `static QRUOVParameters` | `qruov_1_q127_L3_v156_m54_shake`
    `static QRUOVParameters` | `qruov_1_q31_L10_v600_m70_aes`
    `static QRUOVParameters` | `qruov_1_q31_L10_v600_m70_shake`
    `static QRUOVParameters` | `qruov_1_q31_L3_v165_m60_aes`
    `static QRUOVParameters` | `qruov_1_q31_L3_v165_m60_shake`
    `static QRUOVParameters` | `qruov_1_q7_L10_v740_m100_aes`
    `static QRUOVParameters` | `qruov_1_q7_L10_v740_m100_shake`
    `static QRUOVParameters` | `qruov_3_q127_L3_v228_m78_aes`
    `static QRUOVParameters` | `qruov_3_q127_L3_v228_m78_shake`
    `static QRUOVParameters` | `qruov_3_q31_L10_v890_m100_aes`
    `static QRUOVParameters` | `qruov_3_q31_L10_v890_m100_shake`
    `static QRUOVParameters` | `qruov_3_q31_L3_v246_m87_aes`
    `static QRUOVParameters` | `qruov_3_q31_L3_v246_m87_shake`
    `static QRUOVParameters` | `qruov_3_q7_L10_v1100_m140_aes`
    `static QRUOVParameters` | `qruov_3_q7_L10_v1100_m140_shake`
    `static QRUOVParameters` | `qruov_5_q127_L3_v306_m105_aes`
    `static QRUOVParameters` | `qruov_5_q127_L3_v306_m105_shake`
    `static QRUOVParameters` | `qruov_5_q31_L10_v1120_m120_aes`
    `static QRUOVParameters` | `qruov_5_q31_L10_v1120_m120_shake`
    `static QRUOVParameters` | `qruov_5_q31_L3_v324_m114_aes`
    `static QRUOVParameters` | `qruov_5_q31_L3_v324_m114_shake`
    `static QRUOVParameters` | `qruov_5_q7_L10_v1490_m190_aes`
    `static QRUOVParameters` | `qruov_5_q7_L10_v1490_m190_shake`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getBigM()`
    `int` | `getBigN()`
    `int` | `getBigV()`
    `int` | `getCategory()`
    `int` | `getCeilLog2Q()`
    `int` | `getFc()`
    `int` | `getFc0()`
    `int` | `getFe()`
    `int` | `getL()`
    `int` | `getM()`
    `int` | `getMuLen()`
    `java.lang.String` | `getName()`
    `int` | `getPrgType()`
    `int` | `getPrivateKeyBytes()`
    `int` | `getPublicKeyBytes()`
    `int` | `getQ()`
    `int` | `getSaltLen()`
    `int` | `getSeedLen()`
    `int` | `getSignatureBytes()`
    `int` | `getTau1()`
    `int` | `getTau2()`
    `int` | `getTau3()`
    `int` | `getTau4()`
    `int` | `getV()`

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

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

- - ### Field Detail

    - #### PRG_AES

          public static final int PRG_AES

      See Also:
        Constant Field Values

    - #### PRG_SHAKE

          public static final int PRG_SHAKE

      See Also:
        Constant Field Values

    - #### qruov_1_q127_L3_v156_m54_shake

          public static final QRUOVParameters qruov_1_q127_L3_v156_m54_shake

    - #### qruov_1_q31_L3_v165_m60_shake

          public static final QRUOVParameters qruov_1_q31_L3_v165_m60_shake

    - #### qruov_1_q31_L10_v600_m70_shake

          public static final QRUOVParameters qruov_1_q31_L10_v600_m70_shake

    - #### qruov_1_q7_L10_v740_m100_shake

          public static final QRUOVParameters qruov_1_q7_L10_v740_m100_shake

    - #### qruov_3_q127_L3_v228_m78_shake

          public static final QRUOVParameters qruov_3_q127_L3_v228_m78_shake

    - #### qruov_3_q31_L3_v246_m87_shake

          public static final QRUOVParameters qruov_3_q31_L3_v246_m87_shake

    - #### qruov_3_q31_L10_v890_m100_shake

          public static final QRUOVParameters qruov_3_q31_L10_v890_m100_shake

    - #### qruov_3_q7_L10_v1100_m140_shake

          public static final QRUOVParameters qruov_3_q7_L10_v1100_m140_shake

    - #### qruov_5_q127_L3_v306_m105_shake

          public static final QRUOVParameters qruov_5_q127_L3_v306_m105_shake

    - #### qruov_5_q31_L3_v324_m114_shake

          public static final QRUOVParameters qruov_5_q31_L3_v324_m114_shake

    - #### qruov_5_q31_L10_v1120_m120_shake

          public static final QRUOVParameters qruov_5_q31_L10_v1120_m120_shake

    - #### qruov_5_q7_L10_v1490_m190_shake

          public static final QRUOVParameters qruov_5_q7_L10_v1490_m190_shake

    - #### qruov_1_q127_L3_v156_m54_aes

          public static final QRUOVParameters qruov_1_q127_L3_v156_m54_aes

    - #### qruov_1_q31_L3_v165_m60_aes

          public static final QRUOVParameters qruov_1_q31_L3_v165_m60_aes

    - #### qruov_1_q31_L10_v600_m70_aes

          public static final QRUOVParameters qruov_1_q31_L10_v600_m70_aes

    - #### qruov_1_q7_L10_v740_m100_aes

          public static final QRUOVParameters qruov_1_q7_L10_v740_m100_aes

    - #### qruov_3_q127_L3_v228_m78_aes

          public static final QRUOVParameters qruov_3_q127_L3_v228_m78_aes

    - #### qruov_3_q31_L3_v246_m87_aes

          public static final QRUOVParameters qruov_3_q31_L3_v246_m87_aes

    - #### qruov_3_q31_L10_v890_m100_aes

          public static final QRUOVParameters qruov_3_q31_L10_v890_m100_aes

    - #### qruov_3_q7_L10_v1100_m140_aes

          public static final QRUOVParameters qruov_3_q7_L10_v1100_m140_aes

    - #### qruov_5_q127_L3_v306_m105_aes

          public static final QRUOVParameters qruov_5_q127_L3_v306_m105_aes

    - #### qruov_5_q31_L3_v324_m114_aes

          public static final QRUOVParameters qruov_5_q31_L3_v324_m114_aes

    - #### qruov_5_q31_L10_v1120_m120_aes

          public static final QRUOVParameters qruov_5_q31_L10_v1120_m120_aes

    - #### qruov_5_q7_L10_v1490_m190_aes

          public static final QRUOVParameters qruov_5_q7_L10_v1490_m190_aes

  - ### Method Detail

    - #### getName

          public java.lang.String getName()

    - #### getCategory

          public int getCategory()

    - #### getQ

          public int getQ()

    - #### getL

          public int getL()

    - #### getV

          public int getV()

    - #### getM

          public int getM()

    - #### getFc

          public int getFc()

    - #### getFe

          public int getFe()

    - #### getFc0

          public int getFc0()

    - #### getTau1

          public int getTau1()

    - #### getTau2

          public int getTau2()

    - #### getTau3

          public int getTau3()

    - #### getTau4

          public int getTau4()

    - #### getPrgType

          public int getPrgType()

    - #### getCeilLog2Q

          public int getCeilLog2Q()

    - #### getSeedLen

          public int getSeedLen()

    - #### getSaltLen

          public int getSaltLen()

    - #### getMuLen

          public int getMuLen()

    - #### getBigV

          public int getBigV()

    - #### getBigM

          public int getBigM()

    - #### getBigN

          public int getBigN()

    - #### getPublicKeyBytes

          public int getPublicKeyBytes()

    - #### getPrivateKeyBytes

          public int getPrivateKeyBytes()

    - #### getSignatureBytes

          public int getSignatureBytes()