@InterfaceAudience.Public @InterfaceStability.Evolving public class KeyStoreKeyProvider extends java.lang.Object implements KeyProvider
scheme://path?option1=value1&option2=value2
scheme can be either "jks" or "jceks", specifying the file based providers shipped with every JRE. The latter is the certificate store for the SunJCE cryptography extension, or PKCS #12, and is capable of storing SecretKeys.
path is the location of the keystore in the filesystem namespace.
Options can be specified as query parameters.
If the store was created with a password, the password can be specified using the option 'password'.
For example:
jceks:///var/tmp/example.ks?password=foobar
It is assumed that all keys in the store are protected with the same password.
Alternatively, a properties file can be specified containing passwords for keys in the keystore.
jceks:///var/tmp/example.ks?passwordFile=/var/tmp/example.pw
Subclasses for supporting KeyStores that are not file based can extend the protected methods of this class to specify the appropriate LoadStoreParameters.
Modifier and Type | Field and Description |
---|---|
protected char[] |
password |
protected java.util.Properties |
passwordFile |
protected java.security.KeyStore |
store |
PASSWORD, PASSWORDFILE
Constructor and Description |
---|
KeyStoreKeyProvider() |
Modifier and Type | Method and Description |
---|---|
protected char[] |
getAliasPassword(java.lang.String alias) |
java.security.Key |
getKey(java.lang.String alias)
Retrieve the key for a given key aliase
|
java.security.Key[] |
getKeys(java.lang.String[] aliases)
Retrieve keys for a given set of key aliases
|
void |
init(java.lang.String params)
Initialize the key provider
|
protected void |
load(java.net.URI uri) |
protected void |
processParameter(java.lang.String name,
java.lang.String value) |
protected void |
processParameters(java.net.URI uri) |
protected java.security.KeyStore store
protected char[] password
protected java.util.Properties passwordFile
protected void processParameter(java.lang.String name, java.lang.String value) throws java.io.IOException
java.io.IOException
protected void processParameters(java.net.URI uri) throws java.io.IOException
java.io.IOException
protected void load(java.net.URI uri) throws java.io.IOException
java.io.IOException
public void init(java.lang.String params)
KeyProvider
init
in interface KeyProvider
protected char[] getAliasPassword(java.lang.String alias)
public java.security.Key getKey(java.lang.String alias)
KeyProvider
getKey
in interface KeyProvider
public java.security.Key[] getKeys(java.lang.String[] aliases)
KeyProvider
getKeys
in interface KeyProvider
aliases
- an array of aliases