AES_XTSDecrypt

Decrypts a data buffer in the XTS mode.

Syntax

IppStatus ippsAES_XTSDecrypt(const Ipp8u* pSrc, Ipp8u* pDst, int bitSizeLen, const IppsAES_XTSSpec* pCtx, const Ipp8u* pTweak, int startCipherBlkNo);

Include Files

ippcp.h

Parameters

pSrc

Pointer to the input ciphertext data stream of variable length.

pDst

Pointer to the resulting plaintext data stream.

bitSizeLen

Length of the input buffer in bits.

pCtx

Pointer to the IppsAES_XTSSpec context.

pTweak

Pointer to the tweak vector assigned to the data unit being decrypted.

startCipherBlkNo

Number of the first block of the data unit.

Description

The function decrypts the input ciphered data stream of a variable length in the XTS mode as specified in [IEEE P1619] and [NIST SP 800-38E].

Return Values

ippStsNoErr

Indicates no error. Any other value indicates an error or warning.

ippStsNullPtrErr

Indicates an error condition if any of the specified pointers is NULL.

ippStsLengthErr

Indicates an error condition if the bitSizeLen parameter value is less than 128.

ippStsBadArgErr

Indicates an error condition in the following cases:

  • startCipherBlkNo value is less than zero.

  • startCipherBlkNo value is greater than or equal to the number of the data unit blocks.

  • startCipherBlkNo×128+bitSizeLen value is greater than size of the data unit in bits.

  • size of the data unit in bits modulo 128 is zero and the bitSizeLen value modulo 128 is not zero.

  • bitSizeLen value modulo 128 is zero and startCipherBlkNo×128+bitSizeLen value is not equal to size of the data unit in bits.

ippStsContextMatchErr

Indicates an error condition if the context parameter does not match the operation.