Toggle navigation
Documentation
The friendly Operating System for the Internet of Things
algorithm.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2024 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
24
#ifdef __cplusplus
25
extern
"C"
{
26
#endif
27
28
#include "
psa/algorithm.h
"
29
#include "
psa/hash/algorithm.h
"
30
34
#define PSA_ALG_CATEGORY_SIGN ((psa_algorithm_t)0x06000000)
35
45
#define PSA_ALG_IS_SIGN(alg) \
46
(((alg) & PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_ASYMMETRIC_SIGNATURE)
47
56
#define PSA_ALG_IS_RSA_PKCS1V15_SIGN(alg) \
57
(((alg) & ~0x000000ff) == 0x06000200)
58
70
#define PSA_ALG_IS_RSA_PSS(alg) \
71
(((alg) & ~0x000000ff) == 0x06000300)
72
87
#define PSA_ALG_IS_RSA_PSS_ANY_SALT(alg) \
88
(((alg) & ~0x000000ff) == 0x06001300)
89
104
#define PSA_ALG_IS_RSA_PSS_STANDARD_SALT(alg) \
105
(((alg) & ~0x000000ff) == 0x06000300)
106
115
#define PSA_ALG_IS_ECDSA(alg) \
116
(((alg) & PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_SIGN)
117
128
#define PSA_ALG_IS_DETERMINISTIC_ECDSA(alg) \
129
(((alg) & ~0x000000ff) == 0x06000700)
130
141
#define PSA_ALG_IS_RANDOMIZED_ECDSA(alg) \
142
(((alg) & ~0x000000ff) == 0x06000600)
143
152
#define PSA_ALG_IS_HASH_EDDSA(alg) \
153
(((alg) & ~0x000000ff) == 0x06000900)
154
170
#define PSA_ALG_IS_SIGN_HASH(alg) \
171
(PSA_ALG_IS_RSA_PSS(alg) || PSA_ALG_IS_RSA_PKCS1V15_SIGN(alg) || \
172
PSA_ALG_IS_ECDSA(alg) || PSA_ALG_IS_HASH_EDDSA(alg))
173
206
#define PSA_ALG_IS_HASH_AND_SIGN(alg) \
207
(PSA_ALG_IS_SIGN_HASH(alg) && \
208
((alg) & PSA_ALG_HASH_MASK) != 0)
209
221
#define PSA_ALG_IS_SIGN_MESSAGE(alg) \
222
(PSA_ALG_IS_SIGN_HASH(alg) || (alg) == PSA_ALG_PURE_EDDSA)
223
238
#define PSA_ALG_IS_WILDCARD(alg) \
239
(PSA_ALG_GET_HASH(alg) == PSA_ALG_ANY_HASH)
240
283
#define PSA_ALG_ANY_HASH ((psa_algorithm_t)0x020000ff)
284
310
#define PSA_ALG_RSA_PKCS1V15_SIGN(hash_alg) \
311
((psa_algorithm_t)(0x06000200 | ((hash_alg) & 0x000000ff)))
312
335
#define PSA_ALG_RSA_PKCS1V15_SIGN_RAW ((psa_algorithm_t)0x06000200)
336
366
#define PSA_ALG_RSA_PSS(hash_alg) \
367
((psa_algorithm_t)(0x06000300 | ((hash_alg) & 0x000000ff)))
368
399
#define PSA_ALG_RSA_PSS_ANY_SALT(hash_alg) \
400
((psa_algorithm_t)(0x06001300 | ((hash_alg) & 0x000000ff)))
401
405
#define PSA_ALG_ECDSA_BASE ((psa_algorithm_t)0x06000600)
406
456
#define PSA_ALG_ECDSA(hash_alg) \
457
(PSA_ALG_ECDSA_BASE | ((hash_alg) & PSA_ALG_HASH_MASK))
458
486
#define PSA_ALG_ECDSA_ANY PSA_ALG_ECDSA_BASE
487
529
#define PSA_ALG_DETERMINISTIC_ECDSA(hash_alg) \
530
((psa_algorithm_t)(0x06000700 | ((hash_alg) & 0x000000ff)))
531
567
#define PSA_ALG_PURE_EDDSA ((psa_algorithm_t)0x06000800)
568
596
#define PSA_ALG_ED25519PH ((psa_algorithm_t)0x0600090B)
597
626
#define PSA_ALG_ED448PH ((psa_algorithm_t)0x06000915)
627
628
#ifdef __cplusplus
629
}
630
#endif
631
algorithm.h
Algorithm definitions for the PSA Crypto API.
algorithm.h
Hash algorithm definitions for the PSA Crypto API.
Generated on Mon Jun 30 2025 18:46:46 by
1.9.1