13.3.3.3 GCM API
The GCM function entry point is is located at the Boot ROM address 0x0200190C and the function parameters are:
- Block1[in]: a pointer to 128-bit data blocks that are to be multiplied
- Block2[in]: a pointer to 128-bit data blocks that are to be multiplied
- dst[out]: a pointer to a location for storing the result
The API is:
/* Type definition for GF(2^128) multiplication */
typedef void (*crya_gf_mult128_t) (const uint32_t *block1, const uint32_t *block2, uint32_t *dst);
/* GF(2^128) multiplication.
*
* \param block1[In]: A pointer to 128-bit data blocks that are to be multiplied
* \param block2[In]: A pointer to 128-bit data blocks that are to be multiplied
* \param dst[out]: A pointer to a location for storing the result
*/
#define secure_crya_gf_mult128 ((crya_gf_mult128_t ) (0x0200190C | 0x1))