Developer Reference

Contents

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:
  1. Compute a synthetic initialization vector by passing the plaintext,
    pAuthKey
    key, and
    AD
    [] to AES_S2V_CMAC.
  2. 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 is
NULL
or a pointer
AD
[
i
] to any individual string is
NULL
while the length
ADlen
[
i
] is non-zero.
ippStsLengthErr
Indicates an error condition that occurs because of one of the following:
  • The
    keyLen
    parameter is different from 16, 24, and 32
  • The number of the strings
    numAD
    in the
    AD
    array is negative or greater than 127
  • The length
    ADlen
    [
    i
    ] of any individual input string is negative
  • The
    len
    parameter is negative

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804