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

org.bouncycastle.pqc.crypto.uov

## Class UOVParameters

- java.lang.Object
- - org.bouncycastle.pqc.crypto.uov.UOVParameters

-     public class UOVParameters
      extends java.lang.Object

  Parameter set for the Unbalanced Oil and Vinegar (UOV) signature scheme.

  Tracks the OV / pqov NIST submission's four mathematical variants (uov-Is, uov-Ip, uov-III, uov-V) × three key-encoding variants (classic, pkc, pkc-skc), giving twelve named parameter sets. The math is shared within a parameter-family; only the public/private-key serialization differs between encoding variants:

  - classic: uncompressed pk = P1 || P2 || P3; uncompressed sk = sk_seed || O || P1 || S (where S = F2).
  - pkc: compressed pk = pk_seed (16 bytes) || P3; uncompressed sk.
  - pkc-skc: compressed pk; sk = sk_seed (32 bytes) only.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `GF_16`
    `static int` | `GF_256`
    `static int` | `PK_SEED_BYTES`
    `static int` | `SALT_BYTES`
    `static int` | `SK_SEED_BYTES`
    `static UOVParameters` | `uov_III`
    `static UOVParameters` | `uov_III_pkc`
    `static UOVParameters` | `uov_III_pkc_skc`
    `static UOVParameters` | `uov_Ip`
    `static UOVParameters` | `uov_Ip_pkc`
    `static UOVParameters` | `uov_Ip_pkc_skc`
    `static UOVParameters` | `uov_Is`
    `static UOVParameters` | `uov_Is_pkc`
    `static UOVParameters` | `uov_Is_pkc_skc`
    `static UOVParameters` | `uov_V`
    `static UOVParameters` | `uov_V_pkc`
    `static UOVParameters` | `uov_V_pkc_skc`
    `static int` | `VARIANT_CLASSIC`
    `static int` | `VARIANT_PKC`
    `static int` | `VARIANT_PKC_SKC`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getClassicPublicKeyBytes()`
    `int` | `getClassicSecretKeyBytes()`
    `int` | `getCompressedPublicKeyBytes()`
    `int` | `getCompressedSecretKeyBytes()`
    `int` | `getGfSize()`
    `int` | `getHashLen()`
    `int` | `getM()`
    `int` | `getMByte()`
    `int` | `getN()`
    `java.lang.String` | `getName()`
    `int` | `getNByte()`
    `int` | `getO()`
    `int` | `getOByte()`
    `int` | `getOMapBytes()`
    `int` | `getPkP1Bytes()`
    `int` | `getPkP2Bytes()`
    `int` | `getPkP3Bytes()`
    `int` | `getPublicKeyBytes()`
    `int` | `getSecretKeyBytes()`
    `int` | `getSignatureBytes()`
    `int` | `getV()`
    `int` | `getVariant()`
    `int` | `getVByte()`
    `boolean` | `isCompressedPublicKey()`
    `boolean` | `isCompressedSecretKey()`
    `boolean` | `isGF16()`
    `int` | `packedBytes(int numElements)`

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

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

- - ### Field Detail

    - #### GF_16

          public static final int GF_16

      See Also:
        Constant Field Values

    - #### GF_256

          public static final int GF_256

      See Also:
        Constant Field Values

    - #### VARIANT_CLASSIC

          public static final int VARIANT_CLASSIC

      See Also:
        Constant Field Values

    - #### VARIANT_PKC

          public static final int VARIANT_PKC

      See Also:
        Constant Field Values

    - #### VARIANT_PKC_SKC

          public static final int VARIANT_PKC_SKC

      See Also:
        Constant Field Values

    - #### SK_SEED_BYTES

          public static final int SK_SEED_BYTES

      See Also:
        Constant Field Values

    - #### PK_SEED_BYTES

          public static final int PK_SEED_BYTES

      See Also:
        Constant Field Values

    - #### SALT_BYTES

          public static final int SALT_BYTES

      See Also:
        Constant Field Values

    - #### uov_Is

          public static final UOVParameters uov_Is

    - #### uov_Is_pkc

          public static final UOVParameters uov_Is_pkc

    - #### uov_Is_pkc_skc

          public static final UOVParameters uov_Is_pkc_skc

    - #### uov_Ip

          public static final UOVParameters uov_Ip

    - #### uov_Ip_pkc

          public static final UOVParameters uov_Ip_pkc

    - #### uov_Ip_pkc_skc

          public static final UOVParameters uov_Ip_pkc_skc

    - #### uov_III

          public static final UOVParameters uov_III

    - #### uov_III_pkc

          public static final UOVParameters uov_III_pkc

    - #### uov_III_pkc_skc

          public static final UOVParameters uov_III_pkc_skc

    - #### uov_V

          public static final UOVParameters uov_V

    - #### uov_V_pkc

          public static final UOVParameters uov_V_pkc

    - #### uov_V_pkc_skc

          public static final UOVParameters uov_V_pkc_skc

  - ### Method Detail

    - #### getName

          public java.lang.String getName()

    - #### getGfSize

          public int getGfSize()

    - #### isGF16

          public boolean isGF16()

    - #### getN

          public int getN()

    - #### getM

          public int getM()

    - #### getO

          public int getO()

    - #### getV

          public int getV()

    - #### getHashLen

          public int getHashLen()

    - #### getVariant

          public int getVariant()

    - #### isCompressedPublicKey

          public boolean isCompressedPublicKey()

    - #### isCompressedSecretKey

          public boolean isCompressedSecretKey()

    - #### packedBytes

          public int packedBytes(int numElements)

    - #### getVByte

          public int getVByte()

    - #### getOByte

          public int getOByte()

    - #### getNByte

          public int getNByte()

    - #### getMByte

          public int getMByte()

    - #### getSignatureBytes

          public int getSignatureBytes()

    - #### getPkP1Bytes

          public int getPkP1Bytes()

    - #### getPkP2Bytes

          public int getPkP2Bytes()

    - #### getPkP3Bytes

          public int getPkP3Bytes()

    - #### getClassicPublicKeyBytes

          public int getClassicPublicKeyBytes()

    - #### getCompressedPublicKeyBytes

          public int getCompressedPublicKeyBytes()

    - #### getPublicKeyBytes

          public int getPublicKeyBytes()

    - #### getOMapBytes

          public int getOMapBytes()

    - #### getClassicSecretKeyBytes

          public int getClassicSecretKeyBytes()

    - #### getCompressedSecretKeyBytes

          public int getCompressedSecretKeyBytes()

    - #### getSecretKeyBytes

          public int getSecretKeyBytes()