A N 3 7 0
28
Rev. 1.0
7. Module Descriptions
7.1. AES Module
The Advanced Encryption Standard Module encrypts a 128 bit block using a 128 bit key. It is up to the user to
declare a 16 byte DATA/IDATA plain or cipher text data array and a 16 byte DATA/IDATA key. Pointers to these
arrays are passed into the AES functions and manipulated from within the module’s functions.
The key is always destroyed during encrypt/decrypt operation, so the user must copy a new key to the predefined
DATA/IDATA key location before each vAes_Cipher(), vAes_InvGenKey(), or vAes_InvCipher() call.
The ordering of the key and data is the usual ordering expected by byte oriented AES implementation. For
reference, here is one commonly used example:
BYTE abPlainData[16] =
{ 0x32, 0x43, 0xf6, 0xa8,
0x88, 0x5a, 0x30, 0x8d,
0x31, 0x31, 0x98, 0xa2,
0xe0, 0x37, 0x07, 0x34 };
BYTE abKey[16] =
{ 0x2b, 0x7e, 0x15, 0x16,
0x28, 0xae, 0xd2, 0xa6,
0xab, 0xf7, 0x15, 0x88,
0x09, 0xcf, 0x4f, 0x3c };
BYTE abCipherData[16] =
{ 0x39, 0x25, 0x84, 0x1d,
0x02, 0xdc, 0x09, 0xfb,
0xdc, 0x11, 0x85, 0x97,
0x19, 0x6a, 0x0b, 0x32 };