Initializes user-supplied memory as the IppsRijndael128GCMState context for use of the AES-GCM implementation with the specified characteristics.
IppStatus ippsRijndael128GCMInitManaged(IppAESGCMbehaviour flag, const Ipp8u* pKey, IppsRijndaelKeyLength keyLen, IppsRijndael128GCMState* pState);
flag |
A flag that defines characteristics for the AES-GCM implementation. |
pKey |
Pointer to the secret key. |
keyLen |
Length of the secret key. |
pState |
Pointer to the IppsRijndael128GCMState context. |
This function is declared in the ippcp.h file. The function takes characteristics of the AES-GCM implementation from the input parameter flag and initializes the memory pointed by pState as the IppsRijndael128GCMState context needed to perform encryption and/or decryption that uses the specified AES-GCM implementation. In addition, the function uses the initialization variable and additional authenticated data to provide all necessary key material for both encryption and decryption. The flag parameter is the following enumerator:
typedef enum { ippAESGCMdefault, ippAESGCMsafe, ippAESGCMtable2K } IppAESGCMbehaviour;
where the values define the following requirements for the characteristics of the AES-GCM implementation:
ippAESGCMdefault |
Minimum memory, that is, the minimum size of the context |
ippAESGCMsafe |
Maximum protection against timing attacks |
ippAESGCMtable2K |
Maximum performance of the implementation |
Call Rijndael128GCMInitManaged with the same value of flag as used in the previous call to Rijndael128GCMGetSizeManaged.
If your system is based on microprocessors that support an AES instruction set, the AES-GCM implementation will meet all the above requirements regardless of the value of flag.
Optimization Notice |
---|
The Intel® Integrated Performance Primitives (Intel® IPP) library contains functions that are more highly optimized for Intel microprocessors than for other microprocessors. While the functions in the Intel® IPP library offer optimizations for both Intel and Intel-compatible microprocessors, depending on your code and other factors, you will likely get extra performance on Intel microprocessors. While the paragraph above describes the basic optimization approach for the Intel® IPP library as a whole, the library may or may not be optimized to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include Intel® Streaming SIMD Extensions 2 (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel® SSE3), and Supplemental Streaming SIMD Extensions 3 (Intel® 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. Intel recommends that you evaluate other library products to determine which best meets your requirements. |
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 keyLen is not set to IppsRijndaelKey128, IppsRijndaelKey192 or IppsRijndaelKey256. |
Copyright © 2000 - 2010, Intel Corporation. All rights reserved.