public class KeyFactory extends Object
Key) into key specifications (transparent representations of the
underlying key material).
Key factories are bi-directional. They allow a key class to be converted
into a key specification (key material) and back again. For example DSA
public keys can be specified as DSAPublicKeySpec or
X509EncodedKeySpec. A key factory translates these key
specifications.
Key,
KeySpec,
DSAPublicKeySpec,
X509EncodedKeySpec| Modifier | Constructor and Description |
|---|---|
protected |
KeyFactory(KeyFactorySpi keyFacSpi,
Provider provider,
String algorithm)
Constructs a new instance of
KeyFactory with the specified
parameters. |
| Modifier and Type | Method and Description |
|---|---|
PrivateKey |
generatePrivate(KeySpec keySpec)
Generates a private key from the provided key specification.
|
PublicKey |
generatePublic(KeySpec keySpec)
Generates a public key from the provided key specification.
|
String |
getAlgorithm()
Returns the name of the algorithm used.
|
static KeyFactory |
getInstance(String algorithm)
Returns a new instance of
KeyFactory representing the
specified key factory. |
static KeyFactory |
getInstance(String algorithm,
Provider provider)
Returns a new instance of
KeyFactory representing the
specified key factory from the designated Provider. |
static KeyFactory |
getInstance(String algorithm,
String provider)
Returns a new instance of
KeyFactory representing the
specified key factory from the specified provider. |
<T extends KeySpec> |
getKeySpec(Key key,
Class<T> keySpec)
Returns a key specification for the given key.
|
Provider |
getProvider()
Returns the
Provider of this instance. |
Key |
translateKey(Key key)
Translates the key from an unknown or untrusted provider into a key from
this key factory.
|
protected KeyFactory(KeyFactorySpi keyFacSpi, Provider provider, String algorithm)
KeyFactory with the specified
parameters.keyFacSpi - the key factory to use.provider - the provider to use.algorithm - the name of the key algorithm to use.public static KeyFactory getInstance(String algorithm) throws NoSuchAlgorithmException
KeyFactory representing the
specified key factory.algorithm - the name of algorithm to use.NoSuchAlgorithmException - if the algorithm is not implemented by any
provider.IllegalArgumentException - if algorithm is
null or is an empty string.public static KeyFactory getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
KeyFactory representing the
specified key factory from the specified provider.algorithm - the name of algorithm to use.provider - the name of the provider to use.NoSuchAlgorithmException - if the algorithm is not implemented by the
named provider.NoSuchProviderException - if the named provider was not found.IllegalArgumentException - if either algorithm or
provider is null or empty.public static KeyFactory getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
KeyFactory representing the
specified key factory from the designated Provider.algorithm - the name of algorithm to use.provider - the Provider to use.NoSuchAlgorithmException - if the algorithm is not implemented by
Provider.IllegalArgumentException - if either algorithm or
provider is null, or if
algorithm is an empty string.Providerpublic final Provider getProvider()
Provider of this instance.Provider of this instance.public final String getAlgorithm()
public final PublicKey generatePublic(KeySpec keySpec) throws InvalidKeySpecException
keySpec - the key specification.InvalidKeySpecException - if the key specification is invalid.public final PrivateKey generatePrivate(KeySpec keySpec) throws InvalidKeySpecException
keySpec - the key specification.InvalidKeySpecException - if the key specification is invalid.public final <T extends KeySpec> T getKeySpec(Key key, Class<T> keySpec) throws InvalidKeySpecException
keySpec
identifies the specification class to return the key material in.key - the key to use.keySpec - the specification class to use.InvalidKeySpecException - the requested key specification is inappropriate for this key or
the key is unrecognized.public final Key translateKey(Key key) throws InvalidKeyException
key - the key to translate from.InvalidKeyException - if the key cannot be processed by this key factory.