java.security
public class KeyFactory extends Object
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.
Since: 1.2
See Also: Key KeySpec DSAPublicKeySpec X509EncodedKeySpec
Constructor Summary | |
---|---|
protected | KeyFactory(KeyFactorySpi keyFacSpi, Provider provider, String algorithm)
Constructs a new instance of KeyFactory with the specified
parameters.
|
Method Summary | |
---|---|
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, String provider)
Returns a new instance of KeyFactory representing the
specified key factory from the specified provider.
|
static KeyFactory | getInstance(String algorithm, Provider provider)
Returns a new instance of KeyFactory representing the
specified key factory from the designated {@link Provider}.
|
<T extends KeySpec> T | getKeySpec(Key key, Class<T> keySpec)
Returns a key specification for the given key. |
Provider | getProvider()
Returns the {@link Provider} of this instance.
|
Key | translateKey(Key key)
Translates the key from an unknown or untrusted provider into a key from
this key factory.
|
KeyFactory
with the specified
parameters.
Parameters: keyFacSpi the key factory to use. provider the provider to use. algorithm the name of the key algorithm to use.
Parameters: keySpec the key specification.
Returns: the private key.
Throws: InvalidKeySpecException if the key specification is invalid.
Parameters: keySpec the key specification.
Returns: the public key.
Throws: InvalidKeySpecException if the key specification is invalid.
Returns: the name of the algorithm used.
KeyFactory
representing the
specified key factory.
Parameters: algorithm the name of algorithm to use.
Returns: a new instance repesenting the desired algorithm.
Throws: NoSuchAlgorithmException if the algorithm is not implemented by any
provider. IllegalArgumentException if algorithm
is
null
or is an empty string.
KeyFactory
representing the
specified key factory from the specified provider.
Parameters: algorithm the name of algorithm to use. provider the name of the provider to use.
Returns: a new instance repesenting the desired algorithm.
Throws: 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.
KeyFactory
representing the
specified key factory from the designated {@link Provider}.
Parameters: algorithm the name of algorithm to use. provider the {@link Provider} to use.
Returns: a new instance repesenting the desired algorithm.
Throws: NoSuchAlgorithmException if the algorithm is not implemented by
{@link Provider}. IllegalArgumentException if either algorithm
or
provider
is null
, or if
algorithm
is an empty string.
Since: 1.4
See Also: Provider
keySpec
identifies the specification class to return the key material in.
Parameters: key the key to use. keySpec the specification class to use.
Returns: the key specification in an instance of the requested specification class.
Throws: InvalidKeySpecException the requested key specification is inappropriate for this key or the key is unrecognized.
Returns: the {@link Provider} of this instance.
Parameters: key the key to translate from.
Returns: the translated key.
Throws: InvalidKeyException if the key cannot be processed by this key factory.