AES_GCMDecrypt#

Decrypts a data buffer in the GCM mode.

Syntax#

IppStatus ippsAES_GCMDecrypt(const Ipp8u* pSrc, Ipp8u* pDst, int len, IppsAES_GCMState* pState);

Include Files#

ippcp.h

Parameters#

pSrc

Pointer to the input ciphertext data stream of a variable length.

pDst

Pointer to the resulting plaintext data stream.

len

Length of the plaintext and ciphertext data stream in bytes.

pState

Pointer to the IppsAES_GCMState context.

Description#

The function decrypts the input cipher data stream of a variable length according to GCM as specified in NIST SP 800-38D.

Warning

The AES-GCM API is designed to support incremental streaming. Consequently, ippsAES_GCMDecrypt outputs plaintext immediately for each processed chunk. Authentication is deferred until the final tag is computed via ippsAES_GCMGetTag. It is the application’s responsibility to manage the lifecycle of the decrypted buffer: the plaintext must not be consumed as authentic until the final tag comparison is successful, and the buffer must be cleared by the application if authentication fails.

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.

ippStsContextMatchErr

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

ippStsLengthErr

Indicates an error condition if len is less than zero.