Decrement hmac_sha*_vector() maximum num_elem value to 11

This replaces the earlier commit 4c079dcc64 ("Increment
hmac_sha*_vector() maximum num_elem value to 25") with a smaller
increment of just one extra element since the updated FTE MIC
calculation design does not use separate elements. This reduces stack
memory need. In addition, this starts using a define value for the
maximum number of vector elements to make this easier to change and to
make the code more readable.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
Jouni Malinen 2023-08-25 11:34:14 +03:00 committed by Jouni Malinen
parent 7381c60db8
commit ac9bf1cc2a
4 changed files with 11 additions and 9 deletions

View file

@ -21,6 +21,8 @@
#ifndef CRYPTO_H #ifndef CRYPTO_H
#define CRYPTO_H #define CRYPTO_H
#define HMAC_VECTOR_MAX_ELEM 11
/** /**
* md4_vector - MD4 hash for data vector * md4_vector - MD4 hash for data vector
* @num_elem: Number of elements in the data vector * @num_elem: Number of elements in the data vector

View file

@ -28,11 +28,11 @@ int hmac_sha256_vector(const u8 *key, size_t key_len, size_t num_elem,
{ {
unsigned char k_pad[64]; /* padding - key XORd with ipad/opad */ unsigned char k_pad[64]; /* padding - key XORd with ipad/opad */
unsigned char tk[32]; unsigned char tk[32];
const u8 *_addr[26]; const u8 *_addr[HMAC_VECTOR_MAX_ELEM + 1];
size_t _len[26], i; size_t _len[HMAC_VECTOR_MAX_ELEM + 1], i;
int ret; int ret;
if (num_elem > 25) { if (num_elem > HMAC_VECTOR_MAX_ELEM) {
/* /*
* Fixed limit on the number of fragments to avoid having to * Fixed limit on the number of fragments to avoid having to
* allocate memory (which could fail). * allocate memory (which could fail).

View file

@ -28,10 +28,10 @@ int hmac_sha384_vector(const u8 *key, size_t key_len, size_t num_elem,
{ {
unsigned char k_pad[128]; /* padding - key XORd with ipad/opad */ unsigned char k_pad[128]; /* padding - key XORd with ipad/opad */
unsigned char tk[48]; unsigned char tk[48];
const u8 *_addr[26]; const u8 *_addr[HMAC_VECTOR_MAX_ELEM + 1];
size_t _len[26], i; size_t _len[HMAC_VECTOR_MAX_ELEM + 1], i;
if (num_elem > 25) { if (num_elem > HMAC_VECTOR_MAX_ELEM) {
/* /*
* Fixed limit on the number of fragments to avoid having to * Fixed limit on the number of fragments to avoid having to
* allocate memory (which could fail). * allocate memory (which could fail).

View file

@ -28,10 +28,10 @@ int hmac_sha512_vector(const u8 *key, size_t key_len, size_t num_elem,
{ {
unsigned char k_pad[128]; /* padding - key XORd with ipad/opad */ unsigned char k_pad[128]; /* padding - key XORd with ipad/opad */
unsigned char tk[64]; unsigned char tk[64];
const u8 *_addr[26]; const u8 *_addr[HMAC_VECTOR_MAX_ELEM + 1];
size_t _len[26], i; size_t _len[HMAC_VECTOR_MAX_ELEM + 1], i;
if (num_elem > 25) { if (num_elem > HMAC_VECTOR_MAX_ELEM) {
/* /*
* Fixed limit on the number of fragments to avoid having to * Fixed limit on the number of fragments to avoid having to
* allocate memory (which could fail). * allocate memory (which could fail).