Skip to content

Commit fe56b7d

Browse files
committed
sys/psa_crypto: Implement PSA_MAC_MAX_SIZE()
This support macro is necessary for full MAC support. Signed-off-by: Armin Wolf <W_Armin@gmx.de>
1 parent 98d2680 commit fe56b7d

1 file changed

Lines changed: 24 additions & 1 deletion

File tree

sys/include/psa_crypto/psa/crypto_sizes.h

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,30 @@ extern "C" {
456456
*
457457
* See also @ref PSA_MAC_LENGTH().
458458
*/
459-
#define PSA_MAC_MAX_SIZE (PSA_HASH_MAX_SIZE)
459+
#if (IS_USED(MODULE_PSA_MAC_HMAC_SHA_512) || \
460+
IS_USED(MODULE_PSA_MAC_HMAC_SHA3_512))
461+
#define PSA_MAC_MAX_SIZE (PSA_HASH_LENGTH(PSA_ALG_SHA3_512)) /* 64 */
462+
#elif (IS_USED(MODULE_PSA_MAC_HMAC_SHA_384) || \
463+
IS_USED(MODULE_PSA_MAC_HMAC_SHA3_384))
464+
#define PSA_MAC_MAX_SIZE (PSA_HASH_LENGTH(PSA_ALG_SHA3_384)) /* 48 */
465+
#elif (IS_USED(MODULE_PSA_MAC_HMAC_SHA_256) || \
466+
IS_USED(MODULE_PSA_MAC_HMAC_SHA_512_256) || \
467+
IS_USED(MODULE_PSA_MAC_HMAC_SHA3_256))
468+
#define PSA_MAC_MAX_SIZE (PSA_HASH_LENGTH(PSA_ALG_SHA3_256)) /* 32 */
469+
#elif (IS_USED(MODULE_PSA_MAC_HMAC_SHA_224) || \
470+
IS_USED(MODULE_PSA_MAC_HMAC_SHA_512_224) || \
471+
IS_USED(MODULE_PSA_MAC_HMAC_SHA3_224))
472+
#define PSA_MAC_MAX_SIZE (PSA_HASH_LENGTH(PSA_ALG_SHA3_224)) /* 28 */
473+
#elif (IS_USED(MODULE_PSA_MAC_HMAC_RIPEMD160) || \
474+
IS_USED(MODULE_PSA_MAC_HMAC_SHA_1))
475+
#define PSA_MAC_MAX_SIZE (PSA_HASH_LENGTH(PSA_ALG_SHA_1)) /* 20 */
476+
#elif (IS_USED(MODULE_PSA_MAC_HMAC_MD2) || \
477+
IS_USED(MODULE_PSA_MAC_HMAC_MD4) || \
478+
IS_USED(MODULE_PSA_MAC_HMAC_MD5))
479+
#define PSA_MAC_MAX_SIZE (PSA_HASH_LENGTH(PSA_ALG_MD5)) /* 16 */
480+
#else
481+
#define PSA_MAC_MAX_SIZE 0
482+
#endif
460483

461484
/**
462485
* @brief The block size of a block cipher.

0 commit comments

Comments
 (0)