algorithm.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2024 TU Dresden
3  * SPDX-FileCopyrightText: 2021 HAW Hamburg
4  * SPDX-License-Identifier: LGPL-2.1-only
5  */
6 
7 #pragma once
8 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 #include "psa/algorithm.h"
26 
30 #define PSA_ALG_CATEGORY_KEY_AGREEMENT ((psa_algorithm_t)0x09000000)
31 
40 #define PSA_ALG_IS_KEY_AGREEMENT(alg) \
41  (((alg) & PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_KEY_AGREEMENT)
42 
55 #define PSA_ALG_KEY_AGREEMENT_GET_BASE(alg) \
56  ((psa_algorithm_t)((alg) & 0xffff0000))
57 
70 #define PSA_ALG_KEY_AGREEMENT_GET_KDF(alg) \
71  ((psa_algorithm_t)((alg) & 0xfe00ffff))
72 
89 #define PSA_ALG_IS_RAW_KEY_AGREEMENT(alg) \
90  (((alg) & 0x7f00ffff) == 0x09000000)
91 
103 #define PSA_ALG_IS_FFDH(alg) \
104  (((alg) & 0x7fff0000) == 0x09010000)
105 
117 #define PSA_ALG_IS_ECDH(alg) \
118  (((alg) & 0x7fff0000) == 0x09020000)
119 
150 #define PSA_ALG_FFDH ((psa_algorithm_t)0x09010000)
151 
219 #define PSA_ALG_ECDH ((psa_algorithm_t)0x09020000)
220 
243 #define PSA_ALG_KEY_AGREEMENT(ka_alg, kdf_alg) \
244  ((ka_alg) | (kdf_alg))
245 
246 #ifdef __cplusplus
247 }
248 #endif
249 
Algorithm definitions for the PSA Crypto API.