Class CompositePrivateKey

java.lang.Object
org.bouncycastle.jcajce.CompositePrivateKey
All Implemented Interfaces:
Serializable, AsymmetricKey, DEREncodablePREVIEW, Key, PrivateKey, Destroyable

public class CompositePrivateKey extends Object implements PrivateKey
A composite private key class for Composite ML-KEM.
See Also:
  • Constructor Details

    • CompositePrivateKey

      public CompositePrivateKey(PrivateKey... keys)
      Create a composite private key from an array of PrivateKeys.
      Parameters:
      keys - The component private keys.
    • CompositePrivateKey

      public CompositePrivateKey(ASN1ObjectIdentifier algorithm, PrivateKey... keys)
    • CompositePrivateKey

      public CompositePrivateKey(AlgorithmIdentifier algorithmIdentifier, PrivateKey... keys)
      Create a composite private key which corresponds to a composite KEM algorithm in algorithmIdentifier.
      Parameters:
      algorithmIdentifier -
      keys -
    • CompositePrivateKey

      public CompositePrivateKey(PrivateKeyInfo keyInfo)
      Create a composite private key from a PrivateKeyInfo.
      Parameters:
      keyInfo - PrivateKeyInfo object containing a composite private key.
  • Method Details

    • builder

      public static CompositePrivateKey.Builder builder(ASN1ObjectIdentifier compAlgOid)
    • builder

      public static CompositePrivateKey.Builder builder(String algorithmName)
    • getPrivateKeys

      public List<PrivateKey> getPrivateKeys()
      Return a list of the component private keys making up this composite.
      Returns:
      an immutable list of private keys.
    • getProviders

      public List<Provider> getProviders()
      Return a list of the providers supporting the component private keys.
      Returns:
      an immutable list of Provider objects.
    • getAlgorithm

      public String getAlgorithm()
      Return the name the composite algorithm this key belongs to is registered under, or null if the key's algorithm is not one of the composite signature or composite KEM parameter sets (the legacy generic composite key OIDs have no registered name of their own).
      Specified by:
      getAlgorithm in interface Key
      Returns:
      the composite algorithm name, e.g. "MLDSA44-Ed25519-SHA512" or "MLKEM768-X25519-SHA3-256".
    • getAlgorithmIdentifier

      public AlgorithmIdentifier getAlgorithmIdentifier()
    • getFormat

      public String getFormat()
      Specified by:
      getFormat in interface Key
    • getEncoded

      public byte[] getEncoded()
      Returns the encoding of the composite private key as per Section 4.2. Format: ML-KEM seed (64 bytes) || Traditional private key encoding
      Specified by:
      getEncoded in interface Key
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object