java.security

Class KeyStoreSpi

public abstract class KeyStoreSpi extends Object

KeyStoreSpi is the Service Provider Interface (SPI) for the KeyStore class. This is the interface for providers to supply to implement a keystore for a particular keystore type.

Since: 1.2

Constructor Summary
KeyStoreSpi()
Constructs a new KeyStoreSpi
Method Summary
abstract Enumeration<String>engineAliases()
Generates a list of all the aliases in the keystore.
abstract booleanengineContainsAlias(String alias)
Determines if the keystore contains the specified alias.
abstract voidengineDeleteEntry(String alias)
Deletes the entry for the specified entry.
abstract CertificateengineGetCertificate(String alias)
Gets a Certificate for the specified alias.
abstract StringengineGetCertificateAlias(Certificate cert)
Determines if the keystore contains the specified certificate entry and returns the alias.
abstract Certificate[]engineGetCertificateChain(String alias)
Gets a Certificate chain for the specified alias.
abstract DateengineGetCreationDate(String alias)
Gets entry creation date for the specified alias.
abstract KeyengineGetKey(String alias, char[] password)
Returns the key associated with given alias using the supplied password.
abstract booleanengineIsCertificateEntry(String alias)
Determines if the keystore contains a certificate entry for the specified alias.
abstract booleanengineIsKeyEntry(String alias)
Determines if the keystore contains a key entry for the specified alias.
abstract voidengineLoad(InputStream stream, char[] password)
Loads the keystore from the specified input stream and it uses the specified password to check for integrity if supplied.
abstract voidengineSetCertificateEntry(String alias, Certificate cert)
Assign the certificate to the alias in the keystore.
abstract voidengineSetKeyEntry(String alias, Key key, char[] password, Certificate[] chain)
Assign the key to the alias in the keystore, protecting it with the given password.
abstract voidengineSetKeyEntry(String alias, byte[] key, Certificate[] chain)
Assign the key to the alias in the keystore.
abstract intengineSize()
Returns the number of entries in the keystore.
abstract voidengineStore(OutputStream stream, char[] password)
Stores the keystore in the specified output stream and it uses the specified key it keep it secure.

Constructor Detail

KeyStoreSpi

public KeyStoreSpi()
Constructs a new KeyStoreSpi

Method Detail

engineAliases

public abstract Enumeration<String> engineAliases()
Generates a list of all the aliases in the keystore.

Returns: an Enumeration of the aliases

engineContainsAlias

public abstract boolean engineContainsAlias(String alias)
Determines if the keystore contains the specified alias.

Parameters: alias the alias name

Returns: true if it contains the alias, false otherwise

engineDeleteEntry

public abstract void engineDeleteEntry(String alias)
Deletes the entry for the specified entry.

Parameters: alias the alias name

Throws: KeyStoreException if it fails

engineGetCertificate

public abstract Certificate engineGetCertificate(String alias)
Gets a Certificate for the specified alias. If there is a trusted certificate entry then that is returned. it there is a key entry with a certificate chain then the first certificate is return or else null.

Parameters: alias the alias name

Returns: a Certificate or null if the alias does not exist or there is no certificate for the alias

engineGetCertificateAlias

public abstract String engineGetCertificateAlias(Certificate cert)
Determines if the keystore contains the specified certificate entry and returns the alias. It checks every entry and for a key entry checks only the first certificate in the chain.

Parameters: cert Certificate to look for

Returns: alias of first matching certificate, null if it does not exist.

engineGetCertificateChain

public abstract Certificate[] engineGetCertificateChain(String alias)
Gets a Certificate chain for the specified alias.

Parameters: alias the alias name

Returns: a chain of Certificates ( ordered from the user's certificate to the Certificate Authority's ) or null if the alias does not exist or there is no certificate chain for the alias ( the alias refers to a trusted certificate entry or there is no entry).

engineGetCreationDate

public abstract Date engineGetCreationDate(String alias)
Gets entry creation date for the specified alias.

Parameters: alias the alias name

UNKNOWN: the entry creation date or null

engineGetKey

public abstract Key engineGetKey(String alias, char[] password)
Returns the key associated with given alias using the supplied password.

Parameters: alias an alias for the key to get password password to access key with

Returns: the requested key, or null otherwise

Throws: NoSuchAlgorithmException if there is no algorithm for recovering the key UnrecoverableKeyException key cannot be reocovered (wrong password).

engineIsCertificateEntry

public abstract boolean engineIsCertificateEntry(String alias)
Determines if the keystore contains a certificate entry for the specified alias.

Parameters: alias the alias name

Returns: true if it is a certificate entry, false otherwise

engineIsKeyEntry

public abstract boolean engineIsKeyEntry(String alias)
Determines if the keystore contains a key entry for the specified alias.

Parameters: alias the alias name

Returns: true if it is a key entry, false otherwise

engineLoad

public abstract void engineLoad(InputStream stream, char[] password)
Loads the keystore from the specified input stream and it uses the specified password to check for integrity if supplied.

Parameters: stream the input stream to load the keystore from password the password to check the keystore integrity with

Throws: IOException if an I/O error occurs. NoSuchAlgorithmException the data integrity algorithm used cannot be found. CertificateException if any certificates could not be stored in the output stream.

engineSetCertificateEntry

public abstract void engineSetCertificateEntry(String alias, Certificate cert)
Assign the certificate to the alias in the keystore. It will overwrite an existing entry.

Parameters: alias the alias name cert the certificate to add

Throws: KeyStoreException if it fails

engineSetKeyEntry

public abstract void engineSetKeyEntry(String alias, Key key, char[] password, Certificate[] chain)
Assign the key to the alias in the keystore, protecting it with the given password. It will overwrite an existing entry and if the key is a PrivateKey, also add the certificate chain representing the corresponding public key.

Parameters: alias the alias name key the key to add chain the certificate chain for the corresponding public key

Throws: KeyStoreException if it fails

UNKNOWN: the password to protect with

engineSetKeyEntry

public abstract void engineSetKeyEntry(String alias, byte[] key, Certificate[] chain)
Assign the key to the alias in the keystore. It will overwrite an existing entry and if the key is a PrivateKey, also add the certificate chain representing the corresponding public key.

Parameters: alias the alias name key the key to add chain the certificate chain for the corresponding public key

Throws: KeyStoreException if it fails

engineSize

public abstract int engineSize()
Returns the number of entries in the keystore.

UNKNOWN: the number of keystore entries.

engineStore

public abstract void engineStore(OutputStream stream, char[] password)
Stores the keystore in the specified output stream and it uses the specified key it keep it secure.

Parameters: stream the output stream to save the keystore to password the password to protect the keystore integrity with

Throws: IOException if an I/O error occurs. NoSuchAlgorithmException the data integrity algorithm used cannot be found. CertificateException if any certificates could not be stored in the output stream.