|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object![]()
![]()
![]()
java.security.KeyFactory
public class KeyFactory

Key factories are used to convert keys (opaque
cryptographic keys of type 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);
Key
,
PublicKey
,
PrivateKey
,
KeySpec
,
DSAPublicKeySpec
,
X509EncodedKeySpec

| Constructor Summary | |
|---|---|
protected |
KeyFactory
Creates a KeyFactory object. |
| Method Summary | ||
|---|---|---|
PrivateKey |
generatePrivate
Generates a private key object from the provided key specification (key material). |
|
PublicKey |
generatePublic
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
Generates a KeyFactory object that implements the specified algorithm. |
|
static KeyFactory |
getInstance
Generates a KeyFactory object for the specified algorithm from the specified provider. |
|
static KeyFactory |
getInstance
Generates a KeyFactory object for the specified algorithm from the specified provider. |
|
|
getKeySpec
Returns a specification (key material) of the given key object. |
|
Provider |
getProvider
Returns the provider of this key factory object. |
|
Key |
translateKey
Translates a key object, whose provider may be unknown or potentially untrusted, into a corresponding key object of this key factory. |
|
Methods inherited from class java.lang.Object ![]() |
|---|
clone |
| Constructor Detail |
|---|

protected KeyFactory(KeyFactorySpi![]()
![]()
keyFacSpi, Provider
![]()
![]()
provider, String
![]()
![]()
algorithm)
keyFacSpi - the delegateprovider - the provideralgorithm - the name of the algorithm
to associate with this KeyFactory| Method Detail |
|---|

public static KeyFactory![]()
![]()
getInstance(String
![]()
![]()
algorithm) throws NoSuchAlgorithmException
![]()
![]()
algorithm - the name of the requested key algorithm.
See Appendix A in the
Java Cryptography Architecture API Specification & Reference
for information about standard algorithm names.
NoSuchAlgorithmException

- if the requested algorithm is
not available in the default provider package or any of the other
provider packages that were searched.

public static KeyFactory![]()
![]()
getInstance(String
![]()
![]()
algorithm, String
![]()
![]()
provider) throws NoSuchAlgorithmException
![]()
![]()
, NoSuchProviderException
![]()
![]()
algorithm - the name of the requested key algorithm.
See Appendix A in the
Java Cryptography Architecture API Specification & Reference
for information about standard algorithm names.provider - the name of the provider.
NoSuchAlgorithmException

- if the algorithm is
not available from the specified provider.
NoSuchProviderException

- if the provider has not been
configured.
IllegalArgumentException

- if the provider name is null
or empty.Provider


public static KeyFactory![]()
![]()
getInstance(String
![]()
![]()
algorithm, Provider
![]()
![]()
provider) throws NoSuchAlgorithmException
![]()
![]()
provider doesn't have
to be registered.
algorithm - the name of the requested key algorithm.
See Appendix A in the
Java Cryptography Architecture API Specification & Reference
for information about standard algorithm names.provider - the provider.
NoSuchAlgorithmException

- if the algorithm is
not available from the specified provider.
IllegalArgumentException

- if the provider is
null.Provider


public final Provider![]()
![]()
getProvider()

public final String![]()
![]()
getAlgorithm()

public final PublicKey![]()
![]()
generatePublic(KeySpec
![]()
![]()
keySpec) throws InvalidKeySpecException
![]()
![]()
keySpec - the specification (key material) of the public key.
InvalidKeySpecException

- if the given key specification
is inappropriate for this key factory to produce a public key.

public final PrivateKey![]()
![]()
generatePrivate(KeySpec
![]()
![]()
keySpec) throws InvalidKeySpecException
![]()
![]()
keySpec - the specification (key material) of the private key.
InvalidKeySpecException

- if the given key specification
is inappropriate for this key factory to produce a private key.

public final <T extends KeySpec![]()
![]()
> T getKeySpec(Key
![]()
![]()
key, Class
![]()
![]()
<T> keySpec) throws InvalidKeySpecException
![]()
![]()
keySpec identifies the specification class in which
the key material should be returned. It could, for example, be
DSAPublicKeySpec.class, to indicate that the
key material should be returned in an instance of the
DSAPublicKeySpec class.
key - the key.keySpec - the specification class in which
the key material should be returned.
InvalidKeySpecException

- if the requested key specification is
inappropriate for the given key, or the given key cannot be processed
(e.g., the given key has an unrecognized algorithm or format).

public final Key![]()
![]()
translateKey(Key
![]()
![]()
key) throws InvalidKeyException
![]()
![]()
key - the key whose provider is unknown or untrusted.
InvalidKeyException

- if the given key cannot be processed
by this key factory.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||