Package java.security

Class KeyStoreSpi

java.lang.Object
java.security.KeyStoreSpi
Direct Known Subclasses:
BcKeyStoreSpi, PKCS12KeyStoreSpi, TrustedCertificateKeyStoreSpi

public abstract class KeyStoreSpi
extends Object
KeyStoreSpi is the Service Provider Interface (SPI) definition for KeyStore.
See Also:
KeyStore
  • Constructor Details

    • KeyStoreSpi

      public KeyStoreSpi()
  • Method Details

    • engineGetKey

      public abstract Key engineGetKey​(String alias, char[] password) throws NoSuchAlgorithmException, UnrecoverableKeyException
      Returns the key with the given alias, using the password to recover the key from the store.
      Parameters:
      alias - the alias for the entry.
      password - the password used to recover the key.
      Returns:
      the key with the specified alias, or null if the specified alias is not bound to an entry.
      Throws:
      NoSuchAlgorithmException - if the algorithm for recovering the key is not available.
      UnrecoverableKeyException - if the key can not be recovered.
    • engineGetCertificateChain

      public abstract Certificate[] engineGetCertificateChain​(String alias)
      Returns the certificate chain for the entry with the given alias.
      Parameters:
      alias - the alias for the entry
      Returns:
      the certificate chain for the entry with the given alias, or null if the specified alias is not bound to an entry.
    • engineGetCertificate

      public abstract Certificate engineGetCertificate​(String alias)
      Returns the trusted certificate for the entry with the given alias.
      Parameters:
      alias - the alias for the entry.
      Returns:
      the trusted certificate for the entry with the given alias, or null if the specified alias is not bound to an entry.
    • engineGetCreationDate

      public abstract Date engineGetCreationDate​(String alias)
      Returns the creation date of the entry with the given alias.
      Parameters:
      alias - the alias for the entry.
      Returns:
      the creation date, or null if the specified alias is not bound to an entry.
    • engineSetKeyEntry

      public abstract void engineSetKeyEntry​(String alias, Key key, char[] password, Certificate[] chain) throws KeyStoreException
      Associates the given alias with the key, password and certificate chain.

      If the specified alias already exists, it will be reassigned.

      Parameters:
      alias - the alias for the key.
      key - the key.
      password - the password.
      chain - the certificate chain.
      Throws:
      KeyStoreException - if the specified key can not be protected, or if this operation fails for another reason.
      IllegalArgumentException - if key is a PrivateKey and chain does not contain any certificates.
    • engineSetKeyEntry

      public abstract void engineSetKeyEntry​(String alias, byte[] key, Certificate[] chain) throws KeyStoreException
      Associates the given alias with a key and a certificate chain.

      If the specified alias already exists, it will be reassigned.

      Parameters:
      alias - the alias for the key.
      key - the key in an encoded format.
      chain - the certificate chain.
      Throws:
      KeyStoreException - if this operation fails.
      IllegalArgumentException - if key is a PrivateKey and chain does.
    • engineSetCertificateEntry

      public abstract void engineSetCertificateEntry​(String alias, Certificate cert) throws KeyStoreException
      Associates the given alias with a certificate.

      If the specified alias already exists, it will be reassigned.

      Parameters:
      alias - the alias for the certificate.
      cert - the certificate.
      Throws:
      KeyStoreException - if an existing alias is not associated to an entry containing a trusted certificate, or this method fails for any other reason.
    • engineDeleteEntry

      public abstract void engineDeleteEntry​(String alias) throws KeyStoreException
      Deletes the entry identified with the given alias from this KeyStoreSpi.
      Parameters:
      alias - the alias for the entry.
      Throws:
      KeyStoreException - if the entry can not be deleted.
    • engineAliases

      public abstract Enumeration<String> engineAliases()
      Returns an Enumeration over all alias names stored in this KeyStoreSpi.
      Returns:
      an Enumeration over all alias names stored in this KeyStoreSpi.
    • engineContainsAlias

      public abstract boolean engineContainsAlias​(String alias)
      Indicates whether the given alias is present in this KeyStoreSpi.
      Parameters:
      alias - the alias of an entry.
      Returns:
      true if the alias exists, false otherwise.
    • engineSize

      public abstract int engineSize()
      Returns the number of entries stored in this KeyStoreSpi.
      Returns:
      the number of entries stored in this KeyStoreSpi.
    • engineIsKeyEntry

      public abstract boolean engineIsKeyEntry​(String alias)
      Indicates whether the specified alias is associated with either a KeyStore.PrivateKeyEntry or a KeyStore.SecretKeyEntry.
      Parameters:
      alias - the alias of an entry.
      Returns:
      true if the given alias is associated with a key entry.
    • engineIsCertificateEntry

      public abstract boolean engineIsCertificateEntry​(String alias)
      Indicates whether the specified alias is associated with a KeyStore.TrustedCertificateEntry.
      Parameters:
      alias - the alias of an entry.
      Returns:
      true if the given alias is associated with a certificate entry.
    • engineGetCertificateAlias

      public abstract String engineGetCertificateAlias​(Certificate cert)
      Returns the alias associated with the first entry whose certificate matches the specified certificate.
      Parameters:
      cert - the certificate to find the associated entry's alias for.
      Returns:
      the alias or null if no entry with the specified certificate can be found.
    • engineStore

      public abstract void engineStore​(OutputStream stream, char[] password) throws IOException, NoSuchAlgorithmException, CertificateException
      Writes this KeyStoreSpi to the specified OutputStream. The data written to the OutputStream is protected by the specified password.
      Parameters:
      stream - the OutputStream to write the store's data to.
      password - the password to protect the data.
      Throws:
      IOException - if a problem occurred while writing to the stream.
      NoSuchAlgorithmException - if the required algorithm is not available.
      CertificateException - if the an exception occurred while storing the certificates of this code KeyStoreSpi.
    • engineStore

      Stores this KeyStoreSpi using the specified LoadStoreParameter.
      Parameters:
      param - the LoadStoreParameter that specifies how to store this KeyStoreSpi, maybe null.
      Throws:
      IOException - if a problem occurred while writing to the stream.
      NoSuchAlgorithmException - if the required algorithm is not available.
      CertificateException - if the an exception occurred while storing the certificates of this code KeyStoreSpi.
      IllegalArgumentException - if the given KeyStore.LoadStoreParameter is not recognized.
    • engineLoad

      public abstract void engineLoad​(InputStream stream, char[] password) throws IOException, NoSuchAlgorithmException, CertificateException
      Loads this KeyStoreSpi from the given InputStream. Utilizes the given password to verify the stored data.
      Parameters:
      stream - the InputStream to load this KeyStoreSpi's data from.
      password - the password to verify the stored data, maybe null.
      Throws:
      IOException - if a problem occurred while reading from the stream.
      NoSuchAlgorithmException - if the required algorithm is not available.
      CertificateException - if the an exception occurred while loading the certificates of this code KeyStoreSpi.
    • engineLoad

      Loads this KeyStoreSpi using the specified LoadStoreParameter.
      Parameters:
      param - the LoadStoreParameter that specifies how to load this KeyStoreSpi, maybe null.
      Throws:
      IOException - if a problem occurred while reading from the stream.
      NoSuchAlgorithmException - if the required algorithm is not available.
      CertificateException - if the an exception occurred while loading the certificates of this code KeyStoreSpi.
      IllegalArgumentException - if the given KeyStore.LoadStoreParameter is not recognized.
    • engineGetEntry

      Returns the Entry with the given alias, using the specified ProtectionParameter.
      Parameters:
      alias - the alias of the requested entry.
      protParam - the ProtectionParameter, used to protect the requested entry, maybe null.
      Returns:
      he Entry with the given alias, using the specified ProtectionParameter.
      Throws:
      NoSuchAlgorithmException - if the required algorithm is not available.
      UnrecoverableEntryException - if the entry can not be recovered.
      KeyStoreException - if this operation fails
    • engineSetEntry

      public void engineSetEntry​(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam) throws KeyStoreException
      Stores the given Entry in this KeyStoreSpi and associates the entry with the given alias. The entry is protected by the specified ProtectionParameter.

      If the specified alias already exists, it will be reassigned.

      Parameters:
      alias - the alias for the entry.
      entry - the entry to store.
      protParam - the ProtectionParameter to protect the entry.
      Throws:
      KeyStoreException - if this operation fails.
    • engineEntryInstanceOf

      public boolean engineEntryInstanceOf​(String alias, Class<? extends KeyStore.Entry> entryClass)
      Indicates whether the entry for the given alias is assignable to the provided Class.
      Parameters:
      alias - the alias for the entry.
      entryClass - the type of the entry.
      Returns:
      true if the Entry for the alias is assignable to the specified entryClass.