Class ExternalPublicKey

java.lang.Object
org.bouncycastle.jcajce.ExternalPublicKey
All Implemented Interfaces:
Serializable, Key, PublicKey

public class ExternalPublicKey extends Object implements 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:
  • Constructor Details

    • 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(PublicKey key, GeneralName location, 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 Details

    • getAlgorithm

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

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

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