Android 2.3 Gingerbread

java.security
Class KeyStoreSpi

java.lang.Object
  extended by java.security.KeyStoreSpi

public abstract class KeyStoreSpi
extends Object

KeyStoreSpi is the Service Provider Interface (SPI) definition for KeyStore.

See Also:
KeyStore

Constructor Summary
KeyStoreSpi()
           
 
Method Summary
abstract  Enumeration<String> engineAliases()
          Returns an Enumeration over all alias names stored in this KeyStoreSpi.
abstract  boolean engineContainsAlias(String alias)
          Indicates whether the given alias is present in this KeyStoreSpi.
abstract  void engineDeleteEntry(String alias)
          Deletes the entry identified with the given alias from this KeyStoreSpi.
 boolean engineEntryInstanceOf(String alias, Class<? extends KeyStore.Entry> entryClass)
          Indicates whether the entry for the given alias is assignable to the provided Class.
abstract  Certificate engineGetCertificate(String alias)
          Returns the trusted certificate for the entry with the given alias.
abstract  String engineGetCertificateAlias(Certificate cert)
          Returns the alias associated with the first entry whose certificate matches the specified certificate.
abstract  Certificate[] engineGetCertificateChain(String alias)
          Returns the certificate chain for the entry with the given alias.
abstract  Date engineGetCreationDate(String alias)
          Returns the creation date of the entry with the given alias.
 KeyStore.Entry engineGetEntry(String alias, KeyStore.ProtectionParameter protParam)
          Returns the Entry with the given alias, using the specified ProtectionParameter.
abstract  Key engineGetKey(String alias, char[] password)
          Returns the key with the given alias, using the password to recover the key from the store.
abstract  boolean engineIsCertificateEntry(String alias)
          Indicates whether the specified alias is associated with a KeyStore.TrustedCertificateEntry.
abstract  boolean engineIsKeyEntry(String alias)
          Indicates whether the specified alias is associated with either a KeyStore.PrivateKeyEntry or a KeyStore.SecretKeyEntry.
abstract  void engineLoad(InputStream stream, char[] password)
          Loads this KeyStoreSpi from the given InputStream.
 void engineLoad(KeyStore.LoadStoreParameter param)
          Loads this KeyStoreSpi using the specified LoadStoreParameter.
abstract  void engineSetCertificateEntry(String alias, Certificate cert)
          Associates the given alias with a certificate.
 void engineSetEntry(String alias, KeyStore.Entry entry, KeyStore.ProtectionParameter protParam)
          Stores the given Entry in this KeyStoreSpi and associates the entry with the given alias.
abstract  void engineSetKeyEntry(String alias, byte[] key, Certificate[] chain)
          Associates the given alias with a key and a certificate chain.
abstract  void engineSetKeyEntry(String alias, Key key, char[] password, Certificate[] chain)
          Associates the given alias with the key, password and certificate chain.
abstract  int engineSize()
          Returns the number of entries stored in this KeyStoreSpi.
 void engineStore(KeyStore.LoadStoreParameter param)
          Stores this KeyStoreSpi using the specified LoadStoreParameter.
abstract  void engineStore(OutputStream stream, char[] password)
          Writes this KeyStoreSpi to the specified OutputStream.
(package private) static char[] getPasswordFromCallBack(KeyStore.ProtectionParameter protParam)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

KeyStoreSpi

public KeyStoreSpi()
Method Detail

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

public void engineStore(KeyStore.LoadStoreParameter param)
                 throws IOException,
                        NoSuchAlgorithmException,
                        CertificateException
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

public void engineLoad(KeyStore.LoadStoreParameter param)
                throws IOException,
                       NoSuchAlgorithmException,
                       CertificateException
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

public KeyStore.Entry engineGetEntry(String alias,
                                     KeyStore.ProtectionParameter protParam)
                              throws KeyStoreException,
                                     NoSuchAlgorithmException,
                                     UnrecoverableEntryException
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.

getPasswordFromCallBack

static char[] getPasswordFromCallBack(KeyStore.ProtectionParameter protParam)
                               throws UnrecoverableEntryException
Throws:
UnrecoverableEntryException

Android 2.3 Gingerbread