public abstract class KeyStoreSpi extends Object
KeyStore class. All the abstract methods in this class must be implemented by each cryptographic service provider who wishes to supply the implementation of a keystore for a particular keystore type.
KeyStore
| Constructor and Description |
|---|
KeyStoreSpi()
|
| Modifier and Type | Method and Description |
|---|---|
abstract Enumeration |
engineAliases()
Lists all the alias names of this keystore.
|
abstract boolean |
engineContainsAlias(String
Checks if the given alias exists in this keystore.
|
abstract void |
engineDeleteEntry(String
Deletes the entry identified by the given alias from this keystore.
|
boolean |
engineEntryInstanceOf(String
Determines if the keystore
Entry for the specified
alias is an instance or subclass of the specified
entryClass.
|
abstract Certificate |
engineGetCertificate(String
Returns the certificate associated with the given alias.
|
abstract String |
engineGetCertificateAlias(Certificate
Returns the (alias) name of the first keystore entry whose certificate matches the given certificate.
|
abstract Certificate |
engineGetCertificateChain(String
Returns the certificate chain associated with the given alias.
|
abstract Date |
engineGetCreationDate(String
Returns the creation date of the entry identified by the given alias.
|
KeyStore |
engineGetEntry(String
Gets a
KeyStore.Entry for the specified alias with the specified protection parameter.
|
abstract Key |
engineGetKey(String
Returns the key associated with the given alias, using the given password to recover it.
|
abstract boolean |
engineIsCertificateEntry(String
Returns true if the entry identified by the given alias was created by a call to
setCertificateEntry, or created by a call to
setEntry with a
TrustedCertificateEntry.
|
abstract boolean |
engineIsKeyEntry(String
Returns true if the entry identified by the given alias was created by a call to
setKeyEntry, or created by a call to
setEntry with a
PrivateKeyEntry or a
SecretKeyEntry.
|
abstract void |
engineLoad(InputStream
Loads the keystore from the given input stream.
|
void |
engineLoad(KeyStore
Loads the keystore using the given
KeyStore.LoadStoreParameter.
|
abstract void |
engineSetCertificateEntry(String
Assigns the given certificate to the given alias.
|
void |
engineSetEntry(String
Saves a
KeyStore.Entry under the specified alias.
|
abstract void |
engineSetKeyEntry(String
Assigns the given key (that has already been protected) to the given alias.
|
abstract void |
engineSetKeyEntry(String
Assigns the given key to the given alias, protecting it with the given password.
|
abstract int |
engineSize()
Retrieves the number of entries in this keystore.
|
void |
engineStore(KeyStore
Stores this keystore using the given
KeyStore.LoadStoreParmeter.
|
abstract void |
engineStore(OutputStream
Stores this keystore to the given output stream, and protects its integrity with the given password.
|
public abstract KeyengineGetKey(String alias, char[] password) throws NoSuchAlgorithmException , UnrecoverableKeyException
setKeyEntry, or by a call to
setEntry with a
PrivateKeyEntry or
SecretKeyEntry.
alias - the alias name
password - the password for recovering the key
NoSuchAlgorithmException - if the algorithm for recovering the key cannot be found
UnrecoverableKeyException - if the key cannot be recovered (e.g., the given password is wrong).
public abstract Certificate[] engineGetCertificateChain(String alias)
setKeyEntry, or by a call to
setEntry with a
PrivateKeyEntry.
alias - the alias name
public abstract CertificateengineGetCertificate(String alias)
If the given alias name identifies an entry created by a call to setCertificateEntry, or created by a call to setEntry with a TrustedCertificateEntry, then the trusted certificate contained in that entry is returned.
If the given alias name identifies an entry created by a call to setKeyEntry, or created by a call to setEntry with a PrivateKeyEntry, then the first element of the certificate chain in that entry (if a chain exists) is returned.
alias - the alias name
public abstract DateengineGetCreationDate(String alias)
alias - the alias name
public abstract void engineSetKeyEntry(Stringalias, Key key, char[] password, Certificate [] chain) throws KeyStoreException
If the given key is of type java.security.PrivateKey, it must be accompanied by a certificate chain certifying the corresponding public key.
If the given alias already exists, the keystore information associated with it is overridden by the given key (and possibly certificate chain).
alias - the alias name
key - the key to be associated with the alias
password - the password to protect the key
chain - the certificate chain for the corresponding public key (only required if the given key is of type
java.security.PrivateKey).
KeyStoreException - if the given key cannot be protected, or this operation fails for some other reason
public abstract void engineSetKeyEntry(Stringalias, byte[] key, Certificate [] chain) throws KeyStoreException
If the protected key is of type java.security.PrivateKey, it must be accompanied by a certificate chain certifying the corresponding public key.
If the given alias already exists, the keystore information associated with it is overridden by the given key (and possibly certificate chain).
alias - the alias name
key - the key (in protected format) to be associated with the alias
chain - the certificate chain for the corresponding public key (only useful if the protected key is of type
java.security.PrivateKey).
KeyStoreException - if this operation fails.
public abstract void engineSetCertificateEntry(Stringalias, Certificate cert) throws KeyStoreException
If the given alias identifies an existing entry created by a call to setCertificateEntry, or created by a call to setEntry with a TrustedCertificateEntry, the trusted certificate in the existing entry is overridden by the given certificate.
alias - the alias name
cert - the certificate
KeyStoreException - if the given alias already exists and does not identify an entry containing a trusted certificate, or this operation fails for some other reason.
public abstract void engineDeleteEntry(Stringalias) throws KeyStoreException
alias - the alias name
KeyStoreException - if the entry cannot be removed.
public abstract Enumeration<String > engineAliases()
public abstract boolean engineContainsAlias(Stringalias)
alias - the alias name
public abstract int engineSize()
public abstract boolean engineIsKeyEntry(Stringalias)
setKeyEntry, or created by a call to
setEntry with a
PrivateKeyEntry or a
SecretKeyEntry.
alias - the alias for the keystore entry to be checked
public abstract boolean engineIsCertificateEntry(Stringalias)
setCertificateEntry, or created by a call to
setEntry with a
TrustedCertificateEntry.
alias - the alias for the keystore entry to be checked
public abstract StringengineGetCertificateAlias(Certificate cert)
This method attempts to match the given certificate with each keystore entry. If the entry being considered was created by a call to setCertificateEntry, or created by a call to setEntry with a TrustedCertificateEntry, then the given certificate is compared to that entry's certificate.
If the entry being considered was created by a call to setKeyEntry, or created by a call to setEntry with a PrivateKeyEntry, then the given certificate is compared to the first element of that entry's certificate chain.
cert - the certificate to match with.
public abstract void engineStore(OutputStreamstream, char[] password) throws IOException , NoSuchAlgorithmException , CertificateException
stream - the output stream to which this keystore is written.
password - the password to generate the keystore integrity check
IOException - if there was an I/O problem with data
NoSuchAlgorithmException - if the appropriate data integrity algorithm could not be found
CertificateException - if any of the certificates included in the keystore data could not be stored
public void engineStore(KeyStore.LoadStoreParameter param) throws IOException , NoSuchAlgorithmException , CertificateException
KeyStore.LoadStoreParmeter.
param - the
KeyStore.LoadStoreParmeter that specifies how to store the keystore, which may be
null
IllegalArgumentException - if the given
KeyStore.LoadStoreParmeter input is not recognized
IOException - if there was an I/O problem with data
NoSuchAlgorithmException - if the appropriate data integrity algorithm could not be found
CertificateException - if any of the certificates included in the keystore data could not be stored
public abstract void engineLoad(InputStreamstream, char[] password) throws IOException , NoSuchAlgorithmException , CertificateException
A password may be given to unlock the keystore (e.g. the keystore resides on a hardware token device), or to check the integrity of the keystore data. If a password is not given for integrity checking, then integrity checking is not performed.
stream - the input stream from which the keystore is loaded, or
null
password - the password used to check the integrity of the keystore, the password used to unlock the keystore, or
null
IOException - if there is an I/O or format problem with the keystore data, if a password is required but not given, or if the given password was incorrect. If the error is due to a wrong password, the
cause of the
IOException should be an
UnrecoverableKeyException
NoSuchAlgorithmException - if the algorithm used to check the integrity of the keystore cannot be found
CertificateException - if any of the certificates in the keystore could not be loaded
public void engineLoad(KeyStore.LoadStoreParameter param) throws IOException , NoSuchAlgorithmException , CertificateException
KeyStore.LoadStoreParameter.
Note that if this KeyStore has already been loaded, it is reinitialized and loaded again from the given parameter.
param - the
KeyStore.LoadStoreParameter that specifies how to load the keystore, which may be
null
IllegalArgumentException - if the given
KeyStore.LoadStoreParameter input is not recognized
IOException - if there is an I/O or format problem with the keystore data. If the error is due to an incorrect
ProtectionParameter (e.g. wrong password) the
cause of the
IOException should be an
UnrecoverableKeyException
NoSuchAlgorithmException - if the algorithm used to check the integrity of the keystore cannot be found
CertificateException - if any of the certificates in the keystore could not be loaded
public KeyStore.Entry engineGetEntry(String alias, KeyStore .ProtectionParameter protParam) throws KeyStoreException , NoSuchAlgorithmException , UnrecoverableEntryException
KeyStore.Entry for the specified alias with the specified protection parameter.
alias - get the
KeyStore.Entry for this alias
protParam - the
ProtectionParameter used to protect the
Entry, which may be
null
KeyStore.Entry for the specified alias, or
null if there is no such entry
KeyStoreException - if the operation failed
NoSuchAlgorithmException - if the algorithm for recovering the entry cannot be found
UnrecoverableEntryException - if the specified
protParam were insufficient or invalid
UnrecoverableKeyException - if the entry is a
PrivateKeyEntry or
SecretKeyEntry and the specified
protParam does not contain the information needed to recover the key (e.g. wrong password)
public void engineSetEntry(Stringalias, KeyStore .Entry entry, KeyStore .ProtectionParameter protParam) throws KeyStoreException
KeyStore.Entry under the specified alias. The specified protection parameter is used to protect the
Entry.
If an entry already exists for the specified alias, it is overridden.
alias - save the
KeyStore.Entry under this alias
entry - the
Entry to save
protParam - the
ProtectionParameter used to protect the
Entry, which may be
null
KeyStoreException - if this operation fails
public boolean engineEntryInstanceOf(Stringalias, Class <? extends KeyStore .Entry > entryClass)
Entry for the specified
alias is an instance or subclass of the specified
entryClass.
alias - the alias name
entryClass - the entry class
Entry for the specified
alias is an instance or subclass of the specified
entryClass, false otherwise