Class BaseBlockCipher

    • Constructor Detail

      • BaseBlockCipher

        protected BaseBlockCipher​(BlockCipher engine)
      • BaseBlockCipher

        protected BaseBlockCipher​(BlockCipher engine,
                                  int ivLength)
    • Method Detail

      • engineGetBlockSize

        protected int engineGetBlockSize()
        Description copied from class: CipherSpi
        Returns the block size of this cipher (in bytes)
        Overrides:
        engineGetBlockSize in class BaseWrapCipher
        Returns:
        the block size of this cipher, or zero if this cipher is not a block cipher.
      • engineGetIV

        protected byte[] engineGetIV()
        Description copied from class: CipherSpi
        Returns the Initialization Vector (IV) that was used to initialize this cipher or null if none was used.
        Overrides:
        engineGetIV in class BaseWrapCipher
        Returns:
        the Initialization Vector (IV), or null if none was used.
      • engineGetKeySize

        protected int engineGetKeySize​(Key key)
        Description copied from class: CipherSpi
        Returns the size of a specified key object in bits. This method has been added to this class (for backwards compatibility, it cannot be abstract). If this method is not overridden, it throws an UnsupportedOperationException.
        Overrides:
        engineGetKeySize in class BaseWrapCipher
        Parameters:
        key - the key to get the size for.
        Returns:
        the size of a specified key object in bits.
      • engineGetOutputSize

        protected int engineGetOutputSize​(int inputLen)
        Description copied from class: CipherSpi
        Returns the size for a buffer (in bytes), that the next call to update of doFinal would return, taking into account any buffered data from previous update calls and padding.

        The actual output length of the next call to update or doFinal may be smaller than the length returned by this method.

        Overrides:
        engineGetOutputSize in class BaseWrapCipher
        Parameters:
        inputLen - the length of the input (in bytes).
        Returns:
        the size for a buffer (in bytes).
      • engineGetParameters

        protected AlgorithmParameters engineGetParameters()
        Description copied from class: CipherSpi
        Returns the parameters that where used to create this cipher instance.

        These may be a the same parameters that were used to create this cipher instance, or may be a combination of default and random parameters, depending on the underlying cipher implementation.

        Overrides:
        engineGetParameters in class BaseWrapCipher
        Returns:
        the parameters that where used to create this cipher instance, or null if this cipher instance does not have any parameters at all.
      • engineInit

        protected void engineInit​(int opmode,
                                  Key key,
                                  AlgorithmParameterSpec params,
                                  SecureRandom random)
                           throws InvalidKeyException,
                                  InvalidAlgorithmParameterException
        Description copied from class: CipherSpi
        Initializes this cipher instance with the specified key, algorithm parameters and a source of randomness.

        The cipher will be initialized for the specified operation (one of: encryption, decryption, key wrapping or key unwrapping) depending on opmode.

        If this cipher instance needs any algorithm parameters and params is null, the underlying implementation of this cipher is supposed to generate the required parameters (using its provider or random values). Random values are generated using random.

        When a cipher instance is initialized by a call to any of the init methods, the state of the instance is overridden, means it is equivalent to creating a new instance and calling it init method.

        Overrides:
        engineInit in class BaseWrapCipher
        Parameters:
        opmode - the operation this cipher instance should be initialized for (one of: ENCRYPT_MODE, DECRYPT_MODE, WRAP_MODE or UNWRAP_MODE).
        key - the input key for the operation.
        params - the algorithm parameters.
        random - the source of randomness to use.
        Throws:
        InvalidKeyException - if the specified key cannot be used to initialize this cipher instance.
        InvalidAlgorithmParameterException - it the specified parameters are inappropriate for this cipher.
      • engineInit

        protected void engineInit​(int opmode,
                                  Key key,
                                  AlgorithmParameters params,
                                  SecureRandom random)
                           throws InvalidKeyException,
                                  InvalidAlgorithmParameterException
        Description copied from class: CipherSpi
        Initializes this cipher instance with the specified key, algorithm parameters and a source of randomness.

        The cipher will be initialized for the specified operation (one of: encryption, decryption, key wrapping or key unwrapping) depending on opmode.

        If this cipher instance needs any algorithm parameters and params is null, the underlying implementation of this cipher is supposed to generate the required parameters (using its provider or random values). Random values are generated using random.

        When a cipher instance is initialized by a call to any of the init methods, the state of the instance is overridden, means it is equivalent to creating a new instance and calling it init method.

        Overrides:
        engineInit in class BaseWrapCipher
        Parameters:
        opmode - the operation this cipher instance should be initialized for (one of: ENCRYPT_MODE, DECRYPT_MODE, WRAP_MODE or UNWRAP_MODE).
        key - the input key for the operation.
        params - the algorithm parameters.
        random - the source of randomness to use.
        Throws:
        InvalidKeyException - if the specified key cannot be used to initialize this cipher instance.
        InvalidAlgorithmParameterException - if the specified parameters are inappropriate for this cipher.
      • engineInit

        protected void engineInit​(int opmode,
                                  Key key,
                                  SecureRandom random)
                           throws InvalidKeyException
        Description copied from class: CipherSpi
        Initializes this cipher instance with the specified key and a source of randomness.

        The cipher will be initialized for the specified operation (one of: encryption, decryption, key wrapping or key unwrapping) depending on opmode.

        If this cipher instance needs any algorithm parameters or random values that the specified key cannot provide, the underlying implementation of this cipher is supposed to generate the required parameters (using its provider or random values). Random values will be generated using random;

        When a cipher instance is initialized by a call to any of the init methods, the state of the instance is overridden, means it is equivalent to creating a new instance and calling it init method.

        Overrides:
        engineInit in class BaseWrapCipher
        Parameters:
        opmode - the operation this cipher instance should be initialized for (one of: ENCRYPT_MODE, DECRYPT_MODE, WRAP_MODE or UNWRAP_MODE).
        key - the input key for the operation.
        random - the source of randomness to use.
        Throws:
        InvalidKeyException - if the specified key cannot be used to initialize this cipher instance.
      • engineUpdateAAD

        protected void engineUpdateAAD​(byte[] input,
                                       int offset,
                                       int length)
        Description copied from class: CipherSpi
        Continues a multi-part transformation (encryption or decryption) with Authenticated Additional Data (AAD). AAD may only be added after the Cipher is initialized and before any data is passed to the instance.

        This is only usable with cipher modes that support Authenticated Encryption with Additional Data (AEAD) such as Galois/Counter Mode (GCM).

        Overrides:
        engineUpdateAAD in class CipherSpi
        Parameters:
        input - bytes of AAD to use with the cipher
        offset - offset within bytes of additional data to add to cipher
        length - length of bytes of additional data to add to cipher
      • engineUpdateAAD

        protected void engineUpdateAAD​(ByteBuffer bytebuffer)
        Description copied from class: CipherSpi
        Continues a multi-part transformation (encryption or decryption). The input.remaining() bytes starting at input.position() are used for the Additional Authenticated Data (AAD). AAD may only be added after the Cipher is initialized and before any data is passed to the instance.

        This is only usable with cipher modes that support Authenticated Encryption with Additional Data (AEAD) such as Galois/Counter Mode (GCM).

        Overrides:
        engineUpdateAAD in class CipherSpi
        Parameters:
        bytebuffer - the input buffer to transform.
      • engineUpdate

        protected byte[] engineUpdate​(byte[] input,
                                      int inputOffset,
                                      int inputLen)
        Description copied from class: CipherSpi
        Continues a multi-part transformation (encryption or decryption). The transformed bytes are returned.
        Overrides:
        engineUpdate in class BaseWrapCipher
        Parameters:
        input - the input bytes to transform.
        inputOffset - the offset in the input to start.
        inputLen - the length of the input to transform.
        Returns:
        the transformed bytes in a new buffer, or null if the input has zero length.
      • engineUpdate

        protected int engineUpdate​(byte[] input,
                                   int inputOffset,
                                   int inputLen,
                                   byte[] output,
                                   int outputOffset)
                            throws ShortBufferException
        Description copied from class: CipherSpi
        Continues a multi-part transformation (encryption or decryption). The transformed bytes are stored in the output buffer.

        If the size of the output buffer is too small to hold the result, a ShortBufferException is thrown. Use getOutputSize to check for the size of the output buffer.

        Overrides:
        engineUpdate in class BaseWrapCipher
        Parameters:
        input - the input bytes to transform.
        inputOffset - the offset in the input to start.
        inputLen - the length of the input to transform.
        output - the output buffer.
        outputOffset - the offset in the output buffer.
        Returns:
        the number of bytes placed in output.
        Throws:
        ShortBufferException - if the size of the output buffer is too small.
      • engineDoFinal

        protected byte[] engineDoFinal​(byte[] input,
                                       int inputOffset,
                                       int inputLen)
                                throws IllegalBlockSizeException,
                                       BadPaddingException
        Description copied from class: CipherSpi
        Finishes a multi-part transformation (encryption or decryption).

        Processes the inputLen bytes in input buffer at inputOffset, and any bytes that have been buffered in previous update calls.

        Overrides:
        engineDoFinal in class BaseWrapCipher
        Parameters:
        input - the input buffer.
        inputOffset - the offset in the input buffer.
        inputLen - the length of the input.
        Returns:
        the final bytes from the transformation.
        Throws:
        IllegalBlockSizeException - if the size of the resulting bytes is not a multiple of the cipher block size.
        BadPaddingException - if the padding of the data does not match the padding scheme.
      • engineDoFinal

        protected int engineDoFinal​(byte[] input,
                                    int inputOffset,
                                    int inputLen,
                                    byte[] output,
                                    int outputOffset)
                             throws IllegalBlockSizeException,
                                    BadPaddingException,
                                    ShortBufferException
        Description copied from class: CipherSpi
        Finishes a multi-part transformation (encryption or decryption).

        Processes the inputLen bytes in input buffer at inputOffset, and any bytes that have been buffered in previous update calls.

        Overrides:
        engineDoFinal in class BaseWrapCipher
        Parameters:
        input - the input buffer.
        inputOffset - the offset in the input buffer.
        inputLen - the length of the input.
        output - the output buffer for the transformed bytes.
        outputOffset - the offset in the output buffer.
        Returns:
        the number of bytes placed in the output buffer.
        Throws:
        IllegalBlockSizeException - if the size of the resulting bytes is not a multiple of the cipher block size.
        BadPaddingException - if the padding of the data does not match the padding scheme.
        ShortBufferException - if the size of the output buffer is too small.