public final class ElGamalKeyFactory
extends java.security.KeyFactorySpi
To convert, for instance, DER encoded PKCS#8 private key material (e.g. pkcs8_key_spec
instantiated from PKCS8EncodedKeySpec
) into ElGamalPrivateKey representation, use this KeyFactory
for ElGamal keys:
KeyFactory ElGamal_key_fac = KeyFactory.getInstance("ElGamal"); ElGamalPrivateKey ElGamal_priv_key = (ElGamalPrivateKey)ElGamal_key_fac.generatePrivate(pkcs8_key_spec);
ElGamalPrivateKey
,
ElGamalPublicKey
Constructor and Description |
---|
ElGamalKeyFactory()
Default constructor for creating a ElGamalKeyFactory.
|
Modifier and Type | Method and Description |
---|---|
protected java.security.PrivateKey |
engineGeneratePrivate(java.security.spec.KeySpec keySpec)
Converts the given key specification to a PrivateKey.
|
protected java.security.PublicKey |
engineGeneratePublic(java.security.spec.KeySpec keySpec)
Converts the given key specification to a PublicKey.
|
protected java.security.spec.KeySpec |
engineGetKeySpec(java.security.Key key,
java.lang.Class classSpec)
Converts the given key into the requested key specification (key material).
|
protected java.security.Key |
engineTranslateKey(java.security.Key key)
Translates the given key object of some unknown or untrusted provider into a
key object supported by this ElGamal key factory.
|
public ElGamalKeyFactory()
KeyFactory.getInstance("ElGamal");
for instantiating
a ElGamalKeyFactory.
protected java.security.PrivateKey engineGeneratePrivate(java.security.spec.KeySpec keySpec) throws java.security.spec.InvalidKeySpecException
engineGeneratePrivate
in class java.security.KeyFactorySpi
keySpec
- the key specification as ElGamalPrivateKeySpec or PKCS8EncodedKeySpecjava.security.spec.InvalidKeySpecException
- if the given key material is not
a ElGamalPrivateKeySpec or PKCS8EncodedKeySpecprotected java.security.PublicKey engineGeneratePublic(java.security.spec.KeySpec keySpec) throws java.security.spec.InvalidKeySpecException
engineGeneratePublic
in class java.security.KeyFactorySpi
keySpec
- the key specification as ElGamalPublicKeySpec or X509EncodedKeySpecjava.security.spec.InvalidKeySpecException
- if the given key material is not
a ElGamalPublicKeySpec or X509EncodedKeySpecprotected java.security.spec.KeySpec engineGetKeySpec(java.security.Key key, java.lang.Class classSpec) throws java.security.spec.InvalidKeySpecException
classSpec
. Each attempt
to get key material of a type not matching to a given ElGamal key will raise an exception.
engineGetKeySpec
in class java.security.KeyFactorySpi
key
- the key to be converted, which either may be a ElGamalPublicKey or a ElGamalPrivateKey.classSpec
- the key specification type into which the key shall be converted, which may be
a ElGamalPublicKeySpec or a X509EncodedKeySpec if the given key is a ElGamalPublicKey, or
a ElGamalPrivateKeySpec or a PKCS8EncodedKeySpec if the given key is a ElGamalPrivateKeyjava.security.spec.InvalidKeySpecException
- if the given key cannot be converted into the
requested key specification object by this key factoryprotected java.security.Key engineTranslateKey(java.security.Key key) throws java.security.InvalidKeyException
ElGamalPublicKey
or ElGamalPrivateKey
.
engineTranslateKey
in class java.security.KeyFactorySpi
key
- the key of some unknown or untrusted providerjava.security.InvalidKeyException
- if the given key cannot be translated by this key factory