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

org.bouncycastle.pqc.crypto.falcon

## Class FalconPrivateKeyParameters

- java.lang.Object
- - org.bouncycastle.crypto.params.AsymmetricKeyParameter
  - - org.bouncycastle.pqc.crypto.falcon.FalconKeyParameters
    - - org.bouncycastle.pqc.crypto.falcon.FalconPrivateKeyParameters

- All Implemented Interfaces:
    CipherParameters

      public class FalconPrivateKeyParameters
      extends FalconKeyParameters

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `FalconPrivateKeyParameters(FalconParameters parameters, byte[] f, byte[] g, byte[] F, byte[] pk_encoded)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `getEncoded()`
    `byte[]` | `getG()`
    `byte[]` | `getPublicKey()` Return the encoded public key for this private key.
    `FalconPublicKeyParameters` | `getPublicKeyParameters()` Return the matching `FalconPublicKeyParameters` for this private key, mirroring `MLDSAPrivateKeyParameters.getPublicKeyParameters()`.
    `byte[]` | `getSpolyf()`
    `byte[]` | `getSpolyF()`

    - ### Methods inherited from class org.bouncycastle.pqc.crypto.falcon.FalconKeyParameters

      `getParameters`

    - ### Methods inherited from class org.bouncycastle.crypto.params.AsymmetricKeyParameter

      `isPrivate`

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

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

- - ### Constructor Detail

    - #### FalconPrivateKeyParameters

          public FalconPrivateKeyParameters(FalconParameters parameters,
                                            byte[] f,
                                            byte[] g,
                                            byte[] F,
                                            byte[] pk_encoded)

  - ### Method Detail

    - #### getEncoded

          public byte[] getEncoded()

    - #### getPublicKey

          public byte[] getPublicKey()

      Return the encoded public key for this private key.

      When this instance still carries the encoded public key (the usual case for a freshly generated key) that encoding is returned directly. When it does not — e.g. the key was reconstructed from only its private encoding (f ‖ g ‖ F), with no public key bytes retained — the public key h is recomputed from the private polynomials (h = g * f-1 mod (q, xn+1)) (github #2297).

    - #### getPublicKeyParameters

          public FalconPublicKeyParameters getPublicKeyParameters()

      Return the matching `FalconPublicKeyParameters` for this private key, mirroring `MLDSAPrivateKeyParameters.getPublicKeyParameters()`. Lets wallet / HSM code recover the public key from a stored private key without re-running keygen; see `getPublicKey()` for how the key is recovered when no public key bytes were retained (github #2297).

    - #### getSpolyf

          public byte[] getSpolyf()

    - #### getG

          public byte[] getG()

    - #### getSpolyF

          public byte[] getSpolyF()