com.ibm.crypto.fips.provider
Class CipherWithWrappingSpi
java.lang.Object
|
+--javax.crypto.CipherSpi
|
+--com.ibm.crypto.fips.provider.CipherWithWrappingSpi
- All Implemented Interfaces:
- AlgorithmStatus
- public abstract class CipherWithWrappingSpi
- extends javax.crypto.CipherSpi
- implements AlgorithmStatus
This class entends the javax.crypto.CipherSpi class with a concrete
implementation of the methods for wrapping and unwrapping
keys.
- Version:
- 1.1, 07/28/99
- Author:
- Sharon Liu
- See Also:
CipherSpi
,
DESCipher
Method Summary |
protected java.security.Key |
engineUnwrap(byte[] wrappedKey,
java.lang.String wrappedKeyAlgorithm,
int wrappedKeyType)
Unwrap a previously wrapped key. |
protected byte[] |
engineWrap(java.security.Key key)
Wrap a key. |
protected java.security.Key |
internalUnwrap(byte[] wrappedKey,
java.lang.String wrappedKeyAlgorithm,
int wrappedKeyType)
Unwrap a previously wrapped key. |
protected byte[] |
internalWrap(java.security.Key key)
Wrap a key. |
boolean |
isFipsApproved()
Module identifies if the cryptographic operation (algorithm) is FIPS certified |
Methods inherited from class javax.crypto.CipherSpi |
engineDoFinal, engineDoFinal, engineGetBlockSize, engineGetIV, engineGetKeySize, engineGetOutputSize, engineGetParameters, engineInit, engineInit, engineInit, engineSetMode, engineSetPadding, engineUpdate, engineUpdate |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CipherWithWrappingSpi
public CipherWithWrappingSpi()
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()
engineWrap
protected final byte[] engineWrap(java.security.Key key)
throws javax.crypto.IllegalBlockSizeException,
java.security.InvalidKeyException
- Wrap a key.
- Overrides:
engineWrap
in class javax.crypto.CipherSpi
- Parameters:
key
- the key to be wrapped.- Returns:
- the wrapped key.
- Throws:
javax.crypto.IllegalBlockSizeException
- if this cipher is a block
cipher, no padding has been requested, and the length of the
encoding of the key to be wrapped is not a
multiple of the block size.java.security.InvalidKeyException
- if it is impossible or unsafe to
wrap the key with this cipher (e.g., a hardware protected key is
being passed to a software only cipher).FIPSRuntimeException
- if SelfTest.isFipsRunnable returns false.
internalWrap
protected final byte[] internalWrap(java.security.Key key)
throws javax.crypto.IllegalBlockSizeException,
java.security.InvalidKeyException
- Wrap a key.
- Parameters:
key
- the key to be wrapped.- Returns:
- the wrapped key.
- Throws:
javax.crypto.IllegalBlockSizeException
- if this cipher is a block
cipher, no padding has been requested, and the length of the
encoding of the key to be wrapped is not a
multiple of the block size.java.security.InvalidKeyException
- if it is impossible or unsafe to
wrap the key with this cipher (e.g., a hardware protected key is
being passed to a software only cipher).
engineUnwrap
protected final java.security.Key engineUnwrap(byte[] wrappedKey,
java.lang.String wrappedKeyAlgorithm,
int wrappedKeyType)
throws java.security.InvalidKeyException,
java.security.NoSuchAlgorithmException
- Unwrap a previously wrapped key.
- Overrides:
engineUnwrap
in class javax.crypto.CipherSpi
- Parameters:
wrappedKey
- the key to be unwrapped.wrappedKeyAlgorithm
- the algorithm the wrapped key is for.wrappedKeyType
- the type of the wrapped key.
This is one of Cipher.SECRET_KEY
,
Cipher.PRIVATE_KEY
, or Cipher.PUBLIC_KEY
.- Returns:
- the unwrapped key.
- Throws:
java.security.InvalidKeyException
- if wrappedKey
does not
represent a wrapped key, or if the algorithm associated with the
wrapped key is different from wrappedKeyAlgorithm
and/or its key type is different from wrappedKeyType
.java.security.NoSuchAlgorithmException
- if no installed providers
can create keys for the wrappedKeyAlgorithm
.FIPSRuntimeException
- if SelfTest.isFipsRunnable returns false.
internalUnwrap
protected final java.security.Key internalUnwrap(byte[] wrappedKey,
java.lang.String wrappedKeyAlgorithm,
int wrappedKeyType)
throws java.security.InvalidKeyException,
java.security.NoSuchAlgorithmException
- Unwrap a previously wrapped key.
- Parameters:
wrappedKey
- the key to be unwrapped.wrappedKeyAlgorithm
- the algorithm the wrapped key is for.wrappedKeyType
- the type of the wrapped key.
This is one of Cipher.SECRET_KEY
,
Cipher.PRIVATE_KEY
, or Cipher.PUBLIC_KEY
.- Returns:
- the unwrapped key.
- Throws:
java.security.InvalidKeyException
- if wrappedKey
does not
represent a wrapped key, or if the algorithm associated with the
wrapped key is different from wrappedKeyAlgorithm
and/or its key type is different from wrappedKeyType
.java.security.NoSuchAlgorithmException
- if no installed providers
can create keys for the wrappedKeyAlgorithm
.