blob: a0add59616192a1aa183eb726d1cd33a7f5a4257 [file] [log] [blame]
Raef Coles1a8616d2024-11-05 09:33:52 +00001/*
2 * SPDX-FileCopyrightText: Copyright The TrustedFirmware-M Contributors
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 *
6 */
7
8#ifndef PSA_CRYPTO_VALUES_LMS_H
9#define PSA_CRYPTO_VALUES_LMS_H
10
11#define PSA_ALG_LMS_BASE 0x00100000
12
13#define PSA_ALG_IS_LMS(alg) (((alg) & ~PSA_ALG_HASH_MASK) == PSA_ALG_LMS_BASE)
14
15#define PSA_ALG_LMS(hash) ( \
16 PSA_ALG_VENDOR_FLAG | \
17 PSA_ALG_CATEGORY_SIGN | \
18 PSA_ALG_LMS_BASE | \
19 ((hash) & PSA_ALG_HASH_MASK) \
20 )
21
22#define PSA_ALG_HSS_BASE 0x00200000
23
24#define PSA_ALG_IS_HSS(alg) (((alg) & ~PSA_ALG_HASH_MASK) == PSA_ALG_HSS_BASE)
25
26#define PSA_ALG_HSS(hash) ( \
27 PSA_ALG_VENDOR_FLAG | \
28 PSA_ALG_CATEGORY_SIGN | \
29 PSA_ALG_HSS_BASE | \
30 ((hash) & PSA_ALG_HASH_MASK) \
31 )
32
33/* This overrides the default PSA_ALG_IS_VENDOR_HASH_AND_SIGN in crypto_values.h */
34#define PSA_ALG_IS_VENDOR_HASH_AND_SIGN(alg) ( \
35 (PSA_ALG_IS_LMS(alg)) || \
36 (PSA_ALG_IS_HSS(alg)) \
37 )
38
39#endif /* PSA_CRYPTO_VALUES_LMS_H */