Class CompositePublicKey

  • All Implemented Interfaces:
    java.io.Serializable, java.security.Key, java.security.PublicKey

    public class CompositePublicKey
    extends java.lang.Object
    implements java.security.PublicKey
    A composite key class.
    See Also:
    Serialized Form
    • Field Summary

      • Fields inherited from interface java.security.PublicKey

        serialVersionUID
    • Constructor Summary

      Constructors 
      Constructor Description
      CompositePublicKey​(java.security.PublicKey... keys)
      Create a composite public key from an array of PublicKeys.
      CompositePublicKey​(ASN1ObjectIdentifier algorithmIdentifier, java.security.PublicKey... keys)
      Create a composite public key which corresponds to a composite signature algorithm in algorithmIdentifier.
      CompositePublicKey​(SubjectPublicKeyInfo keyInfo)
      Create a composite public key from a SubjectPublicKeyInfo.
    • Constructor Detail

      • CompositePublicKey

        public CompositePublicKey​(java.security.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,
                                  java.security.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 Detail

      • getPublicKeys

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

        public java.lang.String getAlgorithm()
        Specified by:
        getAlgorithm in interface java.security.Key
      • getFormat

        public java.lang.String getFormat()
        Specified by:
        getFormat in interface java.security.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 java.security.Key
        Returns:
      • hashCode

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

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object