| java.lang.Object java.security.KeyStore
KeyStore | public class KeyStore (Code) | | This class represents an in-memory collection of keys and certificates.
It manages two types of entries:
- Key Entry
This type of keystore entry holds very sensitive cryptographic key
information, which is stored in a protected format to prevent unauthorized
access.
Typically, a key stored in this type of entry is a secret key, or a
private key accompanied by the certificate chain for the corresponding
public key.
Private keys and certificate chains are used by a given entity for
self-authentication. Applications for this authentication include software
distribution organizations which sign JAR files as part of releasing
and/or licensing software.
- Trusted Certificate Entry
This type of entry contains a single public key certificate belonging to
another party. It is called a trusted certificate because the
keystore owner trusts that the public key in the certificate indeed belongs
to the identity identified by the subject (owner) of the
certificate.
This type of entry can be used to authenticate other parties.
Each entry in a keystore is identified by an "alias" string. In the
case of private keys and their associated certificate chains, these strings
distinguish among the different ways in which the entity may authenticate
itself. For example, the entity may authenticate itself using different
certificate authorities, or using different public key algorithms.
Whether keystores are persistent, and the mechanisms used by the
keystore if it is persistent, are not specified here. This allows
use of a variety of techniques for protecting sensitive (e.g., private or
secret) keys. Smart cards or other integrated cryptographic engines
(SafeKeyper) are one option, and simpler mechanisms such as files may also
be used (in a variety of formats).
There are two ways to request a KeyStore object: by
specifying either just a keystore type, or both a keystore type
and a package provider.
Before a keystore can be accessed, it must be
KeyStore.load(java.io.InputStream,char[]) loaded . In order to create
an empty keystore, you pass null
as the InputStream argument to the load method.
author: Jan Luehe version: 1.29, 02/02/00 See Also: java.security.PrivateKey See Also: java.security.cert.Certificate since: 1.2 |
Constructor Summary | |
protected | KeyStore(KeyStoreSpi keyStoreSpi, Provider provider, String type) Creates a KeyStore object of the given type, and encapsulates the given
provider implementation (SPI object) in it. |
Method Summary | |
final public Enumeration | aliases() Lists all the alias names of this keystore. | final public boolean | containsAlias(String alias) Checks if the given alias exists in this keystore. | final public void | deleteEntry(String alias) Deletes the entry identified by the given alias from this keystore. | final public Certificate | getCertificate(String alias) Returns the certificate associated with the given alias.
If the given alias name identifies a
trusted certificate entry, the certificate associated with that
entry is returned. | final public String | getCertificateAlias(Certificate cert) Returns the (alias) name of the first keystore entry whose certificate
matches the given certificate.
This method attempts to match the given certificate with each
keystore entry. | final public Certificate[] | getCertificateChain(String alias) Returns the certificate chain associated with the given alias. | final public Date | getCreationDate(String alias) Returns the creation date of the entry identified by the given alias. | final public static String | getDefaultType() Returns the default keystore type as specified in the Java security
properties file, or the string "jks" (acronym for "Java keystore")
if no such property exists. | public static KeyStore | getInstance(String type) Generates a keystore object of the given type.
If the default provider package provides a keystore implementation
of the given type, an instance of KeyStore containing that
implementation is returned. | public static KeyStore | getInstance(String type, String provider) Generates a keystore object for the specified keystore
type from the specified provider.
Parameters: type - the type of keystore.See Appendix A in the Java Cryptography Architecture API Specification & Reference for information about standard keystore types. Parameters: provider - the name of the provider. | public static KeyStore | getInstance(String type, Provider provider) Generates a keystore object for the specified keystore
type from the specified provider. | final public Key | getKey(String alias, char[] password) Returns the key associated with the given alias, using the given
password to recover it. | final public Provider | getProvider() Returns the provider of this keystore. | final public String | getType() Returns the type of this keystore. | final public boolean | isCertificateEntry(String alias) Returns true if the entry identified by the given alias is a
trusted certificate entry, and false otherwise. | final public boolean | isKeyEntry(String alias) Returns true if the entry identified by the given alias is a
key entry, and false otherwise. | final public void | load(InputStream stream, char[] password) Loads this KeyStore from the given input stream.
If a password is given, it is used to check the integrity of the
keystore data. | final public void | setCertificateEntry(String alias, Certificate cert) Assigns the given certificate to the given alias. | final public void | setKeyEntry(String alias, Key key, char[] password, Certificate[] chain) Assigns the given key to the given alias, protecting it with the given
password. | final public void | setKeyEntry(String alias, byte[] key, Certificate[] chain) Assigns the given key (that has already been protected) to the given
alias. | final public int | size() Retrieves the number of entries in this keystore. | final public void | store(OutputStream stream, char[] password) Stores this keystore to the given output stream, and protects its
integrity with the given password. |
KeyStore | protected KeyStore(KeyStoreSpi keyStoreSpi, Provider provider, String type)(Code) | | Creates a KeyStore object of the given type, and encapsulates the given
provider implementation (SPI object) in it.
Parameters: keyStoreSpi - the provider implementation. Parameters: provider - the provider. Parameters: type - the keystore type. |
containsAlias | final public boolean containsAlias(String alias) throws KeyStoreException(Code) | | Checks if the given alias exists in this keystore.
Parameters: alias - the alias name true if the alias exists, false otherwise exception: KeyStoreException - if the keystore has not been initialized(loaded). |
deleteEntry | final public void deleteEntry(String alias) throws KeyStoreException(Code) | | Deletes the entry identified by the given alias from this keystore.
Parameters: alias - the alias name exception: KeyStoreException - if the keystore has not been initialized,or if the entry cannot be removed. |
getCertificate | final public Certificate getCertificate(String alias) throws KeyStoreException(Code) | | Returns the certificate associated with the given alias.
If the given alias name identifies a
trusted certificate entry, the certificate associated with that
entry is returned. If the given alias name identifies a
key entry, the first element of the certificate chain of that
entry is returned, or null if that entry does not have a certificate
chain.
Parameters: alias - the alias name the certificate, or null if the given alias does not exist ordoes not contain a certificate. exception: KeyStoreException - if the keystore has not been initialized(loaded). |
getCertificateAlias | final public String getCertificateAlias(Certificate cert) throws KeyStoreException(Code) | | Returns the (alias) name of the first keystore entry whose certificate
matches the given certificate.
This method attempts to match the given certificate with each
keystore entry. If the entry being considered
is a trusted certificate entry, the given certificate is
compared to that entry's certificate. If the entry being considered is
a key entry, the given certificate is compared to the first
element of that entry's certificate chain (if a chain exists).
Parameters: cert - the certificate to match with. the (alias) name of the first entry with matching certificate,or null if no such entry exists in this keystore. exception: KeyStoreException - if the keystore has not been initialized(loaded). |
getCertificateChain | final public Certificate[] getCertificateChain(String alias) throws KeyStoreException(Code) | | Returns the certificate chain associated with the given alias.
Parameters: alias - the alias name the certificate chain (ordered with the user's certificate firstand the root certificate authority last), or null if the given aliasdoes not exist or does not contain a certificate chain (i.e., the given alias identifies either a trusted certificate entry or akey entry without a certificate chain). exception: KeyStoreException - if the keystore has not been initialized(loaded). |
getCreationDate | final public Date getCreationDate(String alias) throws KeyStoreException(Code) | | Returns the creation date of the entry identified by the given alias.
Parameters: alias - the alias name the creation date of this entry, or null if the given alias doesnot exist exception: KeyStoreException - if the keystore has not been initialized(loaded). |
getDefaultType | final public static String getDefaultType()(Code) | | Returns the default keystore type as specified in the Java security
properties file, or the string "jks" (acronym for "Java keystore")
if no such property exists.
The Java security properties file is located in the file named
<JAVA_HOME>/lib/security/java.security, where <JAVA_HOME>
refers to the directory where the SDK was installed.
The default keystore type can be used by applications that do not
want to use a hard-coded keystore type when calling one of the
getInstance methods, and want to provide a default keystore
type in case a user does not specify its own.
The default keystore type can be changed by setting the value of the
"keystore.type" security property (in the Java security properties
file) to the desired keystore type.
the default keystore type as specified in the Java security properties file, or the string "jks"if no such property exists. |
getInstance | public static KeyStore getInstance(String type) throws KeyStoreException(Code) | | Generates a keystore object of the given type.
If the default provider package provides a keystore implementation
of the given type, an instance of KeyStore containing that
implementation is returned. If the requested keystore type is not
available in the default package, other packages are searched.
Parameters: type - the type of keystore. See Appendix A in the Java Cryptography Architecture API Specification & Reference for information about standard keystore types. a keystore object of the specified type. exception: KeyStoreException - if the requested keystore type isnot available in the default provider package or any of the otherprovider packages that were searched. |
getProvider | final public Provider getProvider()(Code) | | Returns the provider of this keystore.
the provider of this keystore. |
getType | final public String getType()(Code) | | Returns the type of this keystore.
the type of this keystore. |
isCertificateEntry | final public boolean isCertificateEntry(String alias) throws KeyStoreException(Code) | | Returns true if the entry identified by the given alias is a
trusted certificate entry, and false otherwise.
Parameters: alias - the alias for the keystore entry to be checked true if the entry identified by the given alias is atrusted certificate entry, false otherwise. exception: KeyStoreException - if the keystore has not been initialized(loaded). |
isKeyEntry | final public boolean isKeyEntry(String alias) throws KeyStoreException(Code) | | Returns true if the entry identified by the given alias is a
key entry, and false otherwise.
Parameters: alias - the alias for the keystore entry to be checked true if the entry identified by the given alias is akey entry, false otherwise. exception: KeyStoreException - if the keystore has not been initialized(loaded). |
load | final public void load(InputStream stream, char[] password) throws IOException, NoSuchAlgorithmException, CertificateException(Code) | | Loads this KeyStore from the given input stream.
If a password is given, it is used to check the integrity of the
keystore data. Otherwise, the integrity of the keystore is not checked.
In order to create an empty keystore, or if the keystore cannot
be initialized from a stream (e.g., because it is stored on a hardware
token device), you pass null
as the stream argument.
Note that if this KeyStore has already been loaded, it is
reinitialized and loaded again from the given input stream.
Parameters: stream - the input stream from which the keystore is loaded, ornull if an empty keystore is to be created. Parameters: password - the (optional) password used to check the integrity ofthe keystore. exception: IOException - if there is an I/O or format problem with thekeystore data exception: NoSuchAlgorithmException - if the algorithm used to checkthe integrity of the keystore cannot be found exception: CertificateException - if any of the certificates in thekeystore could not be loaded |
setCertificateEntry | final public void setCertificateEntry(String alias, Certificate cert) throws KeyStoreException(Code) | | Assigns the given certificate to the given alias.
If the given alias already exists in this keystore and identifies a
trusted certificate entry, the certificate associated with it is
overridden by the given certificate.
Parameters: alias - the alias name Parameters: cert - the certificate exception: KeyStoreException - if the keystore has not been initialized,or the given alias already exists and does not identify atrusted certificate entry, or this operation fails for someother reason. |
setKeyEntry | final public void setKeyEntry(String alias, Key key, char[] password, Certificate[] chain) throws KeyStoreException(Code) | | Assigns the given key to the given alias, protecting it with the given
password.
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).
Parameters: alias - the alias name Parameters: key - the key to be associated with the alias Parameters: password - the password to protect the key Parameters: chain - the certificate chain for the corresponding publickey (only required if the given key is of typejava.security.PrivateKey ). exception: KeyStoreException - if the keystore has not been initialized(loaded), the given key cannot be protected, or this operation failsfor some other reason |
setKeyEntry | final public void setKeyEntry(String alias, byte[] key, Certificate[] chain) throws KeyStoreException(Code) | | Assigns the given key (that has already been protected) to the given
alias.
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).
Parameters: alias - the alias name Parameters: key - the key (in protected format) to be associated with the alias Parameters: chain - the certificate chain for the corresponding publickey (only useful if the protected key is of typejava.security.PrivateKey ). exception: KeyStoreException - if the keystore has not been initialized(loaded), or if this operation fails for some other reason. |
size | final public int size() throws KeyStoreException(Code) | | Retrieves the number of entries in this keystore.
the number of entries in this keystore exception: KeyStoreException - if the keystore has not been initialized(loaded). |
|
|