Cryptography for Intel(R) Integrated Performance Primitives Developer Reference

ID 768738
Date 12/16/2022
Public
Document Table of 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

Did you find the information on this page useful?

Characters remaining:

Feedback Message