AES_XTSDecrypt
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 theIppsAES_XTSSpeccontext.
- 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 isNULL.
- ippStsLengthErr
- Indicates an error condition if thebitSizeLenparameter value is less than 128.
- ippStsBadArgErr
- Indicates an error condition in the following cases:
- startCipherBlkNovalue is less than zero.
- startCipherBlkNovalue is greater than or equal to the number of the data unit blocks.
- startCipherBlkNo×128+bitSizeLenvalue is greater than size of the data unit in bits.
- size of the data unit in bits modulo 128 is zero and thebitSizeLenvalue modulo 128 is not zero.
- bitSizeLenvalue modulo 128 is zero andstartCipherBlkNo×128+bitSizeLenvalue 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.