Loading...
Searching...
No Matches
sizes.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2025 TU Dresden
3 * Copyright (C) 2021 HAW Hamburg
4 *
5 * This file is subject to the terms and conditions of the GNU Lesser
6 * General Public License v2.1. See the file LICENSE in the top level
7 * directory for more details.
8 */
9
10#pragma once
11
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28#include "kernel_defines.h"
29#include "psa/algorithm.h"
30#include "psa/cipher/sizes.h"
31#include "psa/hash/algorithm.h"
32#include "psa/hash/sizes.h"
33#include "psa/mac/algorithm.h"
34
57#define PSA_MAC_LENGTH(key_type, key_bits, alg) \
58 ((PSA_ALG_IS_HMAC(alg)) ? PSA_HASH_LENGTH(PSA_ALG_HMAC_GET_HASH(alg)) : \
59 PSA_ALG_IS_BLOCK_CIPHER_MAC(alg) ? PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type) : \
60 ((void)(key_type), (void)(key_bits), 0))
61
72#if (IS_USED(MODULE_PSA_MAC_HMAC_SHA_512) || \
73 IS_USED(MODULE_PSA_MAC_HMAC_SHA3_512))
74#define PSA_MAC_MAX_SIZE (PSA_HASH_LENGTH(PSA_ALG_SHA3_512)) /* 64 */
75#elif (IS_USED(MODULE_PSA_MAC_HMAC_SHA_384) || \
76 IS_USED(MODULE_PSA_MAC_HMAC_SHA3_384))
77#define PSA_MAC_MAX_SIZE (PSA_HASH_LENGTH(PSA_ALG_SHA3_384)) /* 48 */
78#elif (IS_USED(MODULE_PSA_MAC_HMAC_SHA_256) || \
79 IS_USED(MODULE_PSA_MAC_HMAC_SHA_512_256) || \
80 IS_USED(MODULE_PSA_MAC_HMAC_SHA3_256))
81#define PSA_MAC_MAX_SIZE (PSA_HASH_LENGTH(PSA_ALG_SHA3_256)) /* 32 */
82#elif (IS_USED(MODULE_PSA_MAC_HMAC_SHA_224) || \
83 IS_USED(MODULE_PSA_MAC_HMAC_SHA_512_224) || \
84 IS_USED(MODULE_PSA_MAC_HMAC_SHA3_224))
85#define PSA_MAC_MAX_SIZE (PSA_HASH_LENGTH(PSA_ALG_SHA3_224)) /* 28 */
86#elif (IS_USED(MODULE_PSA_MAC_HMAC_RIPEMD160) || \
87 IS_USED(MODULE_PSA_MAC_HMAC_SHA_1))
88#define PSA_MAC_MAX_SIZE (PSA_HASH_LENGTH(PSA_ALG_SHA_1)) /* 20 */
89#elif (IS_USED(MODULE_PSA_MAC_HMAC_MD2) || \
90 IS_USED(MODULE_PSA_MAC_HMAC_MD4) || \
91 IS_USED(MODULE_PSA_MAC_HMAC_MD5))
92#define PSA_MAC_MAX_SIZE (PSA_HASH_LENGTH(PSA_ALG_MD5)) /* 16 */
93#else
94#define PSA_MAC_MAX_SIZE 0
95#endif
96
97#ifdef __cplusplus
98}
99#endif
100
Algorithm definitions for the PSA Crypto API.
Cipher size definitions for the PSA Crypto API.
Hash algorithm definitions for the PSA Crypto API.
Hash size definitions for the PSA Crypto API.
Common macros and compiler attributes/pragmas configuration.
MAC algorithm definitions for the PSA Crypto API.