public abstract class KeyFactorySpi extends Object
KeyFactory
class.
All the abstract methods in this class must be implemented by each
cryptographic service provider who wishes to supply the implementation
of a key factory for a particular algorithm.
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.
A provider should document all the key specifications supported by its key factory.
KeyFactory
,
Key
,
PublicKey
,
PrivateKey
,
KeySpec
,
DSAPublicKeySpec
,
X509EncodedKeySpec
Constructor and Description |
---|
KeyFactorySpi() |
Modifier and Type | Method and Description |
---|---|
protected abstract PrivateKey |
engineGeneratePrivate(KeySpec keySpec)
Generates a private key object from the provided key
specification (key material).
|
protected abstract PublicKey |
engineGeneratePublic(KeySpec keySpec)
Generates a public key object from the provided key
specification (key material).
|
protected abstract <T extends KeySpec> |
engineGetKeySpec(Key key,
Class<T> keySpec)
Returns a specification (key material) of the given key
object.
|
protected abstract Key |
engineTranslateKey(Key key)
Translates a key object, whose provider may be unknown or
potentially untrusted, into a corresponding key object of this key
factory.
|
protected abstract PublicKey engineGeneratePublic(KeySpec keySpec) throws InvalidKeySpecException
InvalidKeySpecException
- if the given key specification
is inappropriate for this key factory to produce a public key.keySpec
- the specification (key material) of the public key.protected abstract PrivateKey engineGeneratePrivate(KeySpec keySpec) throws InvalidKeySpecException
InvalidKeySpecException
- if the given key specification
is inappropriate for this key factory to produce a private key.keySpec
- the specification (key material) of the private key.protected abstract <T extends KeySpec> T engineGetKeySpec(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.InvalidKeySpecException
- if the requested key specification is
inappropriate for the given key, or the given key cannot be dealt with
(e.g., the given key has an unrecognized format).T
- the type of the key specification to be returnedkey
- the key.keySpec
- the specification class in which
the key material should be returned.protected abstract Key engineTranslateKey(Key key) throws InvalidKeyException
InvalidKeyException
- if the given key cannot be processed
by this key factory.key
- the key whose provider is unknown or untrusted.aicas GmbH, Karlsruhe, Germany —www.aicas.com
Copyright © 2001-2022 aicas GmbH. All Rights Reserved.