com.ibm.crypto.fips.provider
Class DESedeKeyFactory

java.lang.Object
  |
  +--javax.crypto.SecretKeyFactorySpi
        |
        +--com.ibm.crypto.fips.provider.DESedeKeyFactory
All Implemented Interfaces:
AlgorithmStatus

public final class DESedeKeyFactory
extends javax.crypto.SecretKeyFactorySpi
implements AlgorithmStatus

This class implements the DES-EDE key factory of the IBMJCEFIPS provider.

Version:
1.13, 09/10/99
Author:
Jan Luehe

Constructor Summary
DESedeKeyFactory()
          Verify the JCE framework in the constructor.
 
Method Summary
protected  javax.crypto.SecretKey engineGenerateSecret(java.security.spec.KeySpec keySpec)
          Generates a SecretKey object from the provided key specification (key material).
protected  java.security.spec.KeySpec engineGetKeySpec(javax.crypto.SecretKey key, java.lang.Class keySpec)
          Returns a specification (key material) of the given key in the requested format.
protected  javax.crypto.SecretKey engineTranslateKey(javax.crypto.SecretKey key)
          This action is not allowed in this provider.
protected  javax.crypto.SecretKey internalGenerateSecret(java.security.spec.KeySpec keySpec)
          Generates a SecretKey object from the provided key specification (key material).
protected  java.security.spec.KeySpec internalGetKeySpec(javax.crypto.SecretKey key, java.lang.Class keySpec)
          Returns a specification (key material) of the given key in the requested format.
 boolean isFipsApproved()
          Module identifies if the cryptographic operation (algorithm) is FIPS certified
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DESedeKeyFactory

public DESedeKeyFactory()
Verify the JCE framework in the constructor.
Throws:
java.lang.SecurityException - if fails to verify the JCE framework.
Method Detail

isFipsApproved

public boolean isFipsApproved()
Description copied from interface: AlgorithmStatus
Module identifies if the cryptographic operation (algorithm) is FIPS certified
Specified by:
isFipsApproved in interface AlgorithmStatus
See Also:
AlgorithmStatus.isFipsApproved()

engineGenerateSecret

protected javax.crypto.SecretKey engineGenerateSecret(java.security.spec.KeySpec keySpec)
                                               throws java.security.spec.InvalidKeySpecException
Generates a SecretKey object from the provided key specification (key material).
Overrides:
engineGenerateSecret in class javax.crypto.SecretKeyFactorySpi
Parameters:
keySpec - the specification (key material) of the secret key
Returns:
the secret key
Throws:
java.security.spec.InvalidKeySpecException - if the given key specification is inappropriate for this key factory to produce a public key.
FIPSRuntimeException - if SelfTest.isFipsRunnable returns false.

internalGenerateSecret

protected javax.crypto.SecretKey internalGenerateSecret(java.security.spec.KeySpec keySpec)
                                                 throws java.security.spec.InvalidKeySpecException
Generates a SecretKey object from the provided key specification (key material).
Parameters:
keySpec - the specification (key material) of the secret key
Returns:
the secret key
Throws:
java.security.spec.InvalidKeySpecException - if the given key specification is inappropriate for this key factory to produce a public key.

engineGetKeySpec

protected java.security.spec.KeySpec engineGetKeySpec(javax.crypto.SecretKey key,
                                                      java.lang.Class keySpec)
                                               throws java.security.spec.InvalidKeySpecException
Returns a specification (key material) of the given key in the requested format.
Overrides:
engineGetKeySpec in class javax.crypto.SecretKeyFactorySpi
Parameters:
key - the key
keySpec - the requested format in which the key material shall be returned
Returns:
the underlying key specification (key material) in the requested format
Throws:
java.security.spec.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).
FIPSRuntimeException - if SelfTest.isFipsRunnable returns false.

internalGetKeySpec

protected java.security.spec.KeySpec internalGetKeySpec(javax.crypto.SecretKey key,
                                                        java.lang.Class keySpec)
                                                 throws java.security.spec.InvalidKeySpecException
Returns a specification (key material) of the given key in the requested format.
Parameters:
key - the key
keySpec - the requested format in which the key material shall be returned
Returns:
the underlying key specification (key material) in the requested format
Throws:
java.security.spec.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).

engineTranslateKey

protected javax.crypto.SecretKey engineTranslateKey(javax.crypto.SecretKey key)
                                             throws java.security.InvalidKeyException
This action is not allowed in this provider. This method is only here to be complient wiht the SUN JCE JCK tests. If a key is passed in, this method will basically return it back to you without doing any work.
Overrides:
engineTranslateKey in class javax.crypto.SecretKeyFactorySpi
Parameters:
key - the key.
Throws:
java.security.InvalidKeyException - if the given key is null.