- GFpECSetPointHash, GFpECSetPointHashBackCompatible, GFpECSetPointHash_rmf, GFpECSetPointHashBackCompatible_rmf
Rijndael cipher scheme is an iterated block cipher with a variable block size and a variable key length.
Rijndael functions with the 128-bit key length are, in fact, Advanced Encryption Standard (AES) cipher functions implemented in the way to comply with the American Standard FIPS 197.
The AES* functions use the IppsAESSpec context. This context serves as an operational vehicle to carry not only a set of round keys and a set of round inverse keys at the same time, but also the key management information.
Once the respective initialization function generates the round keys, the functions for ECB, CBC, CFB, and other modes are ready for either encrypting or decrypting the streaming data.
The application code for conducting a typical encryption under CBC mode using the AES scheme, that is, the Rijndael128 with a 128-bit key, should follow the sequence of operations as outlined below:
- Get the size required to configure the context IppsAESSpec by calling the function AESGetSize.
- Call the operating system memory-allocation service function to allocate a buffer whose size is no less than the one specified by the function AESGetSize.
- Initialize the context IppsAESSpec*pCtx by calling the function AESInit with the allocated buffer and the respective 128-bit AES key.
- Specify the initialization vector and call the function AESEncryptCBC to encrypt the input data stream using the AES encryption function with CBC mode.
- Clean up secret data stored in the context.
- Call the operating system memory free service function to release the buffer allocated for the context IppsAESSpec, if needed.
The IppsAESSpec context is position-dependent. The AESPack/AESUnpack function transforms the respective position-dependent context to a position-independent form and vice versa.
Gets the size of the IppsAESSpec context.
Initializes user-supplied memory as IppsAESSpec context for future use.
Resets the AES secret key in the initialized IppsAESSpec context.
- AESPack, AESUnpack
Packs/unpacks the IppsAESSpec context into/from a user-defined buffer.
Encrypts plaintext message by using ECB encryption mode (deprecated).
Decrypts byte data stream by using the AES algorithm in the ECB mode (deprecated).
Encrypts byte data stream according to AES in the CBC mode.
Decrypts byte data stream according to AES in the CBC mode.
Encrypts plaintext in the CBC ciphertext stealing mode of the AES block cipher.
Decrypts plaintext in the CBC ciphertext stealing mode of the AES block cipher.
Encrypts byte data stream according to AES in the CFB mode.
Encrypts multiple independent buffers of byte data according to AES in the CFB mode with 16-byte CFB block size.
Decrypts byte data stream according to AES in CFB mode.
Encrypts a variable length data stream according to AES in the OFB mode.
Decrypts a variable length data stream according to AES in the OFB mode.
Encrypts a variable length data stream in the CTR mode.
Decrypts a variable length data stream in the CTR mode.
- AESEncryptXTS_Direct, AESDecryptXTS_Direct
Encrypts/decrypts a data buffer in the XTS mode.
- Example of Using AES Functions
Did you find the information on this page useful?