iaik.security.cipher
Class DESKeyFactory

java.lang.Object
  |
  +--javax.crypto.SecretKeyFactorySpi
        |
        +--iaik.security.cipher.DESKeyFactory

public final class DESKeyFactory
extends SecretKeyFactorySpi

SecretKeyFactory implementation for the DES/DES EDE cipher.

Keys may appear in two representations within the Java Security environment:

This SecretKey factory may be used for converting opaque secret keys (instances of javax.crypto.SecretKey) into transparent DES/DES EDE key material (instances of javax.crypto.spec.DESKeySpec respectively javax.crypto.spec.DESedeKeySpec).

An application shall use the getInstance factory method of the javax.crypto.SecretKeyFactory engine class for accessing this DESKeyFactory, e.g.:

 byte[] key_material = ...;
 DESKeySpec des_key_spec = new DESKeySpec(key_material);
 SecretKeyFactory des_key_fac = SecretKeyFactory.getInstance("DES", "IAIK");
 SecretKey des_key = des_key_fac.generateSecret(des_key_spec);
 


Constructor Summary
DESKeyFactory()
          Default constructor.
 
Method Summary
protected  SecretKey engineGenerateSecret(KeySpec keySpec)
          Converts the given key specification (key material) into a SecretKey object.
protected  KeySpec engineGetKeySpec(SecretKey secretKey, java.lang.Class classSpec)
          Converts the given secret key into the requested key specification (key material).
protected  SecretKey engineTranslateKey(SecretKey secretKey)
          Translates a key object of some unknown or untrusted provider into a secret key object of this key factory.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DESKeyFactory

public DESKeyFactory()
Default constructor.
Method Detail

engineGenerateSecret

protected SecretKey engineGenerateSecret(KeySpec keySpec)
                                  throws InvalidKeySpecException
Converts the given key specification (key material) into a SecretKey object.

The supplied keySpec may be an instance of javax.crypto.spec.SecretKeySpec, javax.crypto.spec.DESKeySpec or javax.crypto.spec.DESedeKeySpec.

Overrides:
engineGenerateSecret in class SecretKeyFactorySpi
Parameters:
keySpec - the specification (key material) to be converted into SecretKey representation.
Returns:
the SecretKey object
Throws:
InvalidKeySpecException - if the given key material cannot be converted into a SecretKey object by this key factory

engineGetKeySpec

protected KeySpec engineGetKeySpec(SecretKey secretKey,
                                   java.lang.Class classSpec)
                            throws InvalidKeySpecException
Converts the given secret key into the requested key specification (key material).

This method may be used for getting a javax.crypto.spec.SecretKeySpec, javax.crypto.spec.DESKeySpec, or javax.crypto.spec.DESedeKeySpec from the given secret key.

Overrides:
engineGetKeySpec in class SecretKeyFactorySpi
Parameters:
secretKey - the secret key to be converted
Returns:
the key specification (key material) derived from the given secret key
Throws:
InvalidKeySpecException - if the given secret key cannot be converted into the requested key specification object by this key factory

engineTranslateKey

protected SecretKey engineTranslateKey(SecretKey secretKey)
                                throws InvalidKeyException
Translates a key object of some unknown or untrusted provider into a secret key object of this key factory.
Overrides:
engineTranslateKey in class SecretKeyFactorySpi
Parameters:
secretKey - 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