Interface Decryptor

All Known Implementing Classes:
JceCtrCryptoCodec.JceCtrCipher, OpensslCtrCryptoCodec.OpensslCtrCipher

@Private @Evolving public interface Decryptor
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    decrypt(ByteBuffer inBuffer, ByteBuffer outBuffer)
    This presents a direct interface decrypting with direct ByteBuffers.
    void
    init(byte[] key, byte[] iv)
    Initialize the decryptor and the internal decryption context.
    boolean
    Indicate whether the decryption context is reset.
  • Method Details

    • init

      void init(byte[] key, byte[] iv) throws IOException
      Initialize the decryptor and the internal decryption context. reset.
      Parameters:
      key - decryption key.
      iv - decryption initialization vector
      Throws:
      IOException - if initialization fails
    • isContextReset

      boolean isContextReset()
      Indicate whether the decryption context is reset.

      Certain modes, like CTR, require a different IV depending on the position in the stream. Generally, the decryptor maintains any necessary context for calculating the IV and counter so that no reinit is necessary during the decryption. Reinit before each operation is inefficient.

      Returns:
      boolean whether context is reset.
    • decrypt

      void decrypt(ByteBuffer inBuffer, ByteBuffer outBuffer) throws IOException
      This presents a direct interface decrypting with direct ByteBuffers.

      This function does not always decrypt the entire buffer and may potentially need to be called multiple times to process an entire buffer. The object may hold the decryption context internally.

      Some implementations may require sufficient space in the destination buffer to decrypt the entire input buffer.

      Upon return, inBuffer.position() will be advanced by the number of bytes read and outBuffer.position() by bytes written. Implementations should not modify inBuffer.limit() and outBuffer.limit().

      Parameters:
      inBuffer - a direct ByteBuffer to read from. inBuffer may not be null and inBuffer.remaining() must be > 0
      outBuffer - a direct ByteBuffer to write to. outBuffer may not be null and outBuffer.remaining() must be > 0
      Throws:
      IOException - if decryption fails