AES_SIVEncrypt
AES_SIVEncrypt
Performs the SIV authenticated encryption using the AES cipher.
Syntax
IppStatus ippsAES_SIVEncrypt(const Ipp8u*
pSrc
, Ipp8u*
pDst
, int
len
, Ipp8u*
pSIV
, const Ipp8u*
pAuthKey
, const Ipp8u*
pConfKey
, int
keyLen
, const Ipp8u*
AD
[], const int
ADlen
[], int
numAD
);
Include Files
ippcp.h
Parameters
- pSrc
- Pointer to the input data to encrypt (plaintext).
- pDst
- Pointer to the output encrypted data (ciphertext).
- len
- Length in bytes of the plaintext and ciphertext.
- pSIV
- Pointer to the output synthetic initialization vector.
- pAuthKey
- Pointer to the authentication key.
- pConfKey
- Pointer to the confidentiality key.
- keyLen
- Length of keys in bytes.
- AD
- Array of pointers to the associated input strings.
- ADlen
- Array of length (in bytes) of the associated input strings.
- numAD
- The number of the associated strings.
Description
The
AES_SIVEncrypt
function accepts
authentication and confidentiality keys of length keyLen
each, plaintext (*pSrc
) of an arbitrary
length len
, and a vector AD
[] of associated data
(strings). The output of the function is the 16-byte synthetic initialization vector (*pSIV
) and
encrypted data (*pDst
) of the same length as the
plaintext. The computation includes the following steps:
- Compute a synthetic initialization vector by passing the plaintext,pAuthKeykey, andAD[] to AES_S2V_CMAC.
- Encrypt the plaintext using the AES cipher in the CTR mode with the initial counter value (CTR0) equal to the synthetic initialization vector xored with a fixed mask.
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 isNULLor a pointerAD[i] to any individual string isNULLwhile the lengthADlen[i] is non-zero.
- ippStsLengthErr
- Indicates an error condition that occurs because of one of the following:
- ThekeyLenparameter is different from 16, 24, and 32
- The number of the stringsnumADin theADarray is negative or greater than 127
- The lengthADlen[i] of any individual input string is negative
- Thelenparameter is negative