public class KeyFactory extends Object
Key
) into key specifications
(transparent representations of the underlying key material), and vice
versa.
Key factories are bi-directional. That is, they allow you to build an opaque key object from a given key specification (key material), or to retrieve the underlying key material of a key object in a suitable format.
Multiple compatible key specifications may exist for the same key.
For example, a DSA public key may be specified using
DSAPublicKeySpec
or
X509EncodedKeySpec
. A key factory can be used to translate
between compatible key specifications.
The following is an example of how to use a key factory in order to instantiate a DSA public key from its encoding. Assume Alice has received a digital signature from Bob. Bob also sent her his public key (in encoded format) to verify his signature. Alice then performs the following actions:
X509EncodedKeySpec bobPubKeySpec = new X509EncodedKeySpec(bobEncodedPubKey); KeyFactory keyFactory = KeyFactory.getInstance("DSA"); PublicKey bobPubKey = keyFactory.generatePublic(bobPubKeySpec); Signature sig = Signature.getInstance("DSA"); sig.initVerify(bobPubKey); sig.update(data); sig.verify(signature);
Every implementation of the Java platform is required to support the
following standard KeyFactory
algorithms:
Key
,
PublicKey
,
PrivateKey
,
KeySpec
,
DSAPublicKeySpec
,
X509EncodedKeySpec
Modifier | Constructor and Description |
---|---|
protected |
KeyFactory(KeyFactorySpi keyFacSpi,
Provider provider,
String algorithm)
Creates a KeyFactory object.
|
Modifier and Type | Method and Description |
---|---|
PrivateKey |
generatePrivate(KeySpec keySpec)
Generates a private key object from the provided key specification
(key material).
|
PublicKey |
generatePublic(KeySpec keySpec)
Generates a public key object from the provided key specification
(key material).
|
String |
getAlgorithm()
Gets the name of the algorithm
associated with this KeyFactory.
|
static KeyFactory |
getInstance(String algorithm)
Returns a KeyFactory object that converts
public/private keys of the specified algorithm.
|
static KeyFactory |
getInstance(String algorithm,
Provider provider)
Returns a KeyFactory object that converts
public/private keys of the specified algorithm.
|
static KeyFactory |
getInstance(String algorithm,
String provider)
Returns a KeyFactory object that converts
public/private keys of the specified algorithm.
|
<T extends KeySpec> |
getKeySpec(Key key,
Class<T> keySpec)
Returns a specification (key material) of the given key object.
|
Provider |
|