Class ExternalPublicKey

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

    public class ExternalPublicKey
    extends java.lang.Object
    implements java.security.PublicKey
    Wrapper class which returns an "ExternalValue" for the public key encoding. In this case the key encoding is a hash and the actual key needs to be looked up somewhere else. Useful for where the public keys are really large but it's required to keep certificates small.
    See Also:
    Serialized Form
    • Field Summary

      • Fields inherited from interface java.security.PublicKey

        serialVersionUID
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getAlgorithm()
      Return "ExternalKey"
      byte[] getEncoded()
      Return a SubjectPublicKeyInfo structure containing an ExternalValue encoding for the key.
      java.lang.String getFormat()
      Return "X.509" (DER encoded SubjectPublicKeyInfo)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ExternalPublicKey

        public ExternalPublicKey​(GeneralName location,
                                 AlgorithmIdentifier digestAlg,
                                 byte[] digest)
        Base constructor with fundamental contents.
        Parameters:
        location - location URI for the actual public key.
        digestAlg - hashing algorithm used to hash the actual public key encoding.
        digest - digest of the actual public key.
      • ExternalPublicKey

        public ExternalPublicKey​(java.security.PublicKey key,
                                 GeneralName location,
                                 java.security.MessageDigest digest)
        Helper constructor with JCA contents.
        Parameters:
        key - the public key we are externalising.
        location - location URI for the actual public key.
        digest - digest to use for hashing the key.
      • ExternalPublicKey

        public ExternalPublicKey​(ExternalValue extKey)
        Base constructor with ASN.1 structure.
        Parameters:
        extKey - structure with location, hashing algorithm and hash for the public key.
    • Method Detail

      • getAlgorithm

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

        public java.lang.String getFormat()
        Return "X.509" (DER encoded SubjectPublicKeyInfo)
        Specified by:
        getFormat in interface java.security.Key
        Returns:
        "X.509"
      • getEncoded

        public byte[] getEncoded()
        Return a SubjectPublicKeyInfo structure containing an ExternalValue encoding for the key.
        Specified by:
        getEncoded in interface java.security.Key
        Returns:
        a DER encoding of SubjectPublicKeyInfo containing an ExternalValue structure.