Class JceCtrCryptoCodec.JceCtrCipher

java.lang.Object
org.apache.hadoop.crypto.JceCtrCryptoCodec.JceCtrCipher
All Implemented Interfaces:
Decryptor, Encryptor
Enclosing class:
JceCtrCryptoCodec

protected static class JceCtrCryptoCodec.JceCtrCipher extends Object implements Encryptor, Decryptor
  • Constructor Details

  • Method Details

    • init

      public void init(byte[] key, byte[] iv) throws IOException
      Description copied from interface: Encryptor
      Initialize the encryptor and the internal encryption context.
      Specified by:
      init in interface Decryptor
      Specified by:
      init in interface Encryptor
      Parameters:
      key - encryption key.
      iv - encryption initialization vector
      Throws:
      IOException - if initialization fails
    • encrypt

      public void encrypt(ByteBuffer inBuffer, ByteBuffer outBuffer) throws IOException
      Description copied from interface: Encryptor
      This presents a direct interface encrypting with direct ByteBuffers.

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

      Some implementations may require sufficient space in the destination buffer to encrypt 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().

      Specified by:
      encrypt in interface Encryptor
      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 encryption fails
    • decrypt

      public void decrypt(ByteBuffer inBuffer, ByteBuffer outBuffer) throws IOException
      Description copied from interface: Decryptor
      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().

      Specified by:
      decrypt in interface Decryptor
      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
    • process

      public void process(ByteBuffer inBuffer, ByteBuffer outBuffer) throws IOException
      Throws:
      IOException
    • isContextReset

      public boolean isContextReset()
      Description copied from interface: Encryptor
      Indicate whether the encryption context is reset.

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

      Specified by:
      isContextReset in interface Decryptor
      Specified by:
      isContextReset in interface Encryptor
      Returns:
      boolean whether context is reset.