Class CompositePublicKey

java.lang.Object
org.bouncycastle.jcajce.CompositePublicKey
All Implemented Interfaces:
Serializable, AsymmetricKey, DEREncodablePREVIEW, Key, PublicKey

public class CompositePublicKey extends Object implements PublicKey
A composite key class.
See Also:
  • Constructor Details

    • CompositePublicKey

      public CompositePublicKey(PublicKey... keys)
      Create a composite public key from an array of PublicKeys. This constructor is currently used only for legacy composites implementation.
      Parameters:
      keys - The component public keys.
    • CompositePublicKey

      public CompositePublicKey(ASN1ObjectIdentifier algorithmIdentifier, PublicKey... keys)
    • CompositePublicKey

      public CompositePublicKey(AlgorithmIdentifier algorithmIdentifier, PublicKey... keys)
      Create a composite public key which corresponds to a composite signature algorithm in algorithmIdentifier. The component public keys are not checked if they satisfy the composite definition at this point, however, they will fail when they are fed into component algorithms which are defined by the algorithmIdentifier.
      Parameters:
      algorithmIdentifier -
      keys -
    • CompositePublicKey

      public CompositePublicKey(SubjectPublicKeyInfo keyInfo)
      Create a composite public key from a SubjectPublicKeyInfo.
      Parameters:
      keyInfo - SubjectPublicKeyInfo object containing a composite public key.
  • Method Details

    • builder

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

      public static CompositePublicKey.Builder builder(String algorithmName)
    • getPublicKeys

      public List<PublicKey> getPublicKeys()
      Return a list of the component public keys making up this composite.
      Returns:
      an immutable list of public 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()
      Specified by:
      getAlgorithm in interface Key
    • getAlgorithmIdentifier

      public AlgorithmIdentifier getAlgorithmIdentifier()
    • getFormat

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

      public byte[] getEncoded()
      Returns the composite public key encoded as a SubjectPublicKeyInfo. If the composite public key is legacy (MiscObjectIdentifiers.id_composite_key), it each component public key is wrapped in its own SubjectPublicKeyInfo. Other composite public keys are encoded according to Composite ML-DSA for use in X.509 Public Key Infrastructure where each component public key is a BIT STRING which contains the result of calling getEncoded() for each component public key.
      Specified by:
      getEncoded in interface Key
      Returns:
    • hashCode

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

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