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

org.bouncycastle.crypto.params

## Class ECCSIPrivateKeyParameters

- java.lang.Object
- - org.bouncycastle.crypto.params.AsymmetricKeyParameter
  - - org.bouncycastle.crypto.params.ECCSIPrivateKeyParameters

- All Implemented Interfaces:
    CipherParameters

      public class ECCSIPrivateKeyParameters
      extends AsymmetricKeyParameter

  Represents the private key parameters for the Elliptic Curve-based Certificateless Signature Infrastructure (ECCSI) scheme as defined in RFC 6507.

  This class encapsulates the secret signing key (SSK) used in ECCSI. The SSK is generated by the Key Management Service (KMS) and is a random integer modulo the order of the elliptic curve. It is paired with the corresponding public key parameters, represented by an instance of `ECCSIPublicKeyParameters`, to form the complete key material required for generating and verifying ECCSI signatures without the use of traditional certificates.

  Per RFC 6507 Section 5.1:

  - The SSK is generated as a random value in the appropriate range.
  - It is used in conjunction with the public validation token (PVT) to perform signature operations.
  - The combination of the SSK and the public key parameters enables certificateless signature generation and verification.
  See Also:
    `ECCSIPublicKeyParameters`, RFC 6507: Elliptic Curve-Based Certificateless Signatures for Identity-Based Encryption (ECCSI)

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ECCSIPrivateKeyParameters(java.math.BigInteger ssk, ECCSIPublicKeyParameters pub)` Constructs `ECCSIPrivateKeyParameters` with the specified secret signing key and associated public key parameters.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ECCSIPublicKeyParameters` | `getPublicKeyParameters()` Returns the public key parameters associated with this private key.
    `java.math.BigInteger` | `getSSK()` Returns the secret signing key (SSK) used in ECCSI.

    - ### 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

    - #### ECCSIPrivateKeyParameters

          public ECCSIPrivateKeyParameters(java.math.BigInteger ssk,
                                           ECCSIPublicKeyParameters pub)

      Constructs `ECCSIPrivateKeyParameters` with the specified secret signing key and associated public key parameters.
      Parameters:
        `ssk` - the secret signing key (SSK) as a BigInteger.
        `pub` - the corresponding public key parameters, which encapsulate the public validation token.

  - ### Method Detail

    - #### getPublicKeyParameters

          public ECCSIPublicKeyParameters getPublicKeyParameters()

      Returns the public key parameters associated with this private key.
      Returns:
        the `ECCSIPublicKeyParameters` containing the public validation token (PVT).

    - #### getSSK

          public java.math.BigInteger getSSK()

      Returns the secret signing key (SSK) used in ECCSI.
      Returns:
        the SSK as a BigInteger.