mbedtls_ct_hmac() function
Compute the HMAC of variable-length data with constant flow. This function computes the HMAC of the concatenation of \p add_data and \p data, and does with a code flow and memory access pattern that does not depend on \p data_len_secret, but only on \p min_data_len and \p max_data_len. In particular, this function always reads exactly \p max_data_len bytes from \p data.
Arguments
ctx
The HMAC context. It must have keys configured with mbedtls_md_hmac_starts() and use one of the following hashes: SHA-384, SHA-256, SHA-1 or MD-5. It is reset using mbedtls_md_hmac_reset() after the computation is complete to prepare for the next computation.
add_data
The first part of the message whose HMAC is being calculated. This must point to a readable buffer of \p add_data_len bytes.
add_data_len
The length of \p add_data in bytes.
data
The buffer containing the second part of the message. This must point to a readable buffer of \p max_data_len bytes.
data_len_secret
The length of the data to process in \p data. This must be no less than \p min_data_len and no greater than \p max_data_len.
min_data_len
The minimal length of the second part of the message, read from \p data.
max_data_len
The maximal length of the second part of the message, read from \p data.
output
The HMAC will be written here. This must point to a writable buffer of sufficient size to hold the HMAC value.
Return value
0 on success. #MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED The hardware accelerator failed.