Class CipherWithWrappingSpi

java.lang.Object
javax.crypto.CipherSpi
com.ibm.crypto.hdwrCCA.provider.CipherWithWrappingSpi

public abstract class CipherWithWrappingSpi extends CipherSpi
This class extends the javax.crypto.CipherSpi class with a concrete implementation of the methods for wrapping and unwrapping keys.
See Also:
  • Constructor Details

    • CipherWithWrappingSpi

      public CipherWithWrappingSpi()
      Constructor
  • Method Details

    • engineWrap

      protected final byte[] engineWrap(Key key) throws IllegalBlockSizeException, InvalidKeyException
      Wrap a key.
      Overrides:
      engineWrap in class CipherSpi
      Parameters:
      key - the key to be wrapped
      Returns:
      the wrapped key.
      Throws:
      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.
      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 Key engineUnwrap(byte[] wrappedKey, String wrappedKeyAlgorithm, int wrappedKeyType) throws InvalidKeyException, NoSuchAlgorithmException
      Unwrap a previously wrapped key.
      Overrides:
      engineUnwrap in class CipherSpi
      Parameters:
      wrappedKey - the key to be unwrapped
      wrappedKeyAlgorithm - the algorithm of the wrapped key
      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:
      InvalidKeyException - if the wrappedKey does not represent a wrapped key, or if the algorithm associated with the wrapped key is different from wrappedKeyAlgorithm, or its key type is different from wrappedKeyType.
      NoSuchAlgorithmException - if no installed providers can create keys for the wrappedKeyAlgorithm.