iaik.security.dh
Class DHKeyFactory

java.lang.Object
  |
  +--java.security.KeyFactorySpi
        |
        +--iaik.security.dh.DHKeyFactory

public final class DHKeyFactory
extends KeyFactorySpi

This class converts Diffie Hellman keys (opaque representation) in their KeySpecs (transparent representation) and vice versa.

To convert, for instance, DER encoded PKCS#8 private key material (e.g. pkcs8_key_spec instantiated from PKCS8EncodedKeySpec) into DHPrivateKey representation, use this KeyFactory for DH keys:

 KeyFactory dh_key_fac = KeyFactory.getInstance("DH");
 DHPrivateKey dh_priv_key = (DHPrivateKey)dh_key_fac.generatePrivate(pkcs8_key_spec);
 

Version:
File Revision 16
See Also:
DHPrivateKeySpec, DHPublicKeySpec, DHPrivateKey, DHPublicKey, DHKeyAgreement

Constructor Summary
DHKeyFactory()
          Default constructor for creating a DHKeyFactory.
 
Method Summary
protected  PrivateKey engineGeneratePrivate(KeySpec keySpec)
          Converts the given key specification to a PrivateKey.
protected  PublicKey engineGeneratePublic(KeySpec keySpec)
          Converts the given key specification to a PublicKey.
protected  KeySpec engineGetKeySpec(Key key, Class classSpec)
          Converts the given key into the requested key specification (key material).
protected  Key engineTranslateKey(Key key)
          Translates the given key object of some unknown or untrusted provider into a key object supported by this DH key factory.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DHKeyFactory

public DHKeyFactory()
Default constructor for creating a DHKeyFactory. Applications shall use KeyFactory.getInstance("DH"); for instantiating a DHKeyFactory.

Method Detail

engineGeneratePrivate

protected PrivateKey engineGeneratePrivate(KeySpec keySpec)
                                    throws InvalidKeySpecException
Converts the given key specification to a PrivateKey. The given key material may either be a DHPrivateKeySpec or a PKCS8EncodedKeySpec.

Overrides:
engineGeneratePrivate in class KeyFactorySpi
Parameters:
keySpec - the key specification as DHPrivateKeySpec or PKCS8EncodedKeySpec
Returns:
the resulting PrivateKey
Throws:
InvalidKeySpecException - if the given key material is not a DHPrivateKeySpec or PKCS8EncodedKeySpec

engineGeneratePublic

protected PublicKey engineGeneratePublic(KeySpec keySpec)
                                  throws InvalidKeySpecException
Converts the given key specification to a PublicKey. The given key material may either be a DHPublicKeySpec or a X509EncodedKeySpec.

Overrides:
engineGeneratePublic in class KeyFactorySpi
Parameters:
keySpec - the key specification as DHPublicKeySpec or X509EncodedKeySpec
Returns:
the resulting PublicKey
Throws:
InvalidKeySpecException - if the given key material is not a DHPublicKeySpec or X509EncodedKeySpec

engineGetKeySpec

protected KeySpec engineGetKeySpec(Key key,
                                   Class classSpec)
                            throws InvalidKeySpecException
Converts the given key into the requested key specification (key material). The given key may either be a DHPublicKey or a DHPrivateKey. If the key is a DHPublicKey, this method only can create a DHPublicKeySpec or a X509EncodedKeySpec from it. If the given key is a DHPrivateKey, a DHPrivateKeySpec or a PKCS8EncodedKeySpec may be returned, depending on which of these two types of specifications is requested by classSpec. Each attempt to get key material of a type not matching to a given DH key will raise an exception.

Overrides:
engineGetKeySpec in class KeyFactorySpi
Parameters:
key - the key to be converted, which either may be a DHPublicKey or a DHPrivateKey.
keySpec - the key specification type into which the key shall be converted, which may be a DHPublicKeySpec or a X509EncodedKeySpec if the given key is a DHPublicKey, or a DHPrivateKeySpec or a PKCS8EncodedKeySpec if the given key is a DHPrivateKey
Returns:
the key specification (key material) derived from the given key
Throws:
InvalidKeySpecException - if the given key cannot be converted into the requested key specification object by this key factory

engineTranslateKey

protected Key engineTranslateKey(Key key)
                          throws InvalidKeyException
Translates the given key object of some unknown or untrusted provider into a key object supported by this DH key factory. This method only can translate keys of type DHPublicKey or DHPrivateKey.

Overrides:
engineTranslateKey in class KeyFactorySpi
Parameters:
key - the key of some unknown or untrusted provider
Returns:
the translated key
Throws:
InvalidKeyException - if the given key cannot be translated by this key factory

This Javadoc may contain text parts from Internet Standard specifications (RFC 2459, 3280, 3039, 2560, 1521, 821, 822, 2253, 1319, 1321, ,2630, 2631, 2268, 3058, 2984, 2104, 2144, 2040, 2311, 2279, see copyright note) and RSA Data Security Public-Key Cryptography Standards (PKCS#1,3,5,7,8,9,10,12, see copyright note).

IAIK-JCE 3.1 with IAIK-JCE CC Core 3.1, (c) 1997-2004 IAIK