Class CompositePublicKey

java.lang.Object
org.bouncycastle.jcajce.CompositePublicKey
All Implemented Interfaces:
Serializable, 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)
      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

    • getPublicKeys

      public List<PublicKey> getPublicKeys()
      Return a list of the component public keys making up this composite.
      Returns:
      an immutable list of public keys.
    • getAlgorithm

      public String getAlgorithm()
      Specified by:
      getAlgorithm in interface Key
    • getAlgorithmIdentifier

      public ASN1ObjectIdentifier 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 https://www.ietf.org/archive/id/draft-ounsworth-pq-composite-sigs-13.html#name-compositesignaturepublickey 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