Mistake on this page?
Report an issue in GitHub or email us
TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_compat.h
1 /*
2  * Copyright (c) 2019-2020, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 /**
8  * \file psa/crypto_compat.h
9  *
10  * \brief PSA cryptography module: Backward compatibility aliases
11  *
12  * This header declares alternative names for macro and functions.
13  * New application code should not use these names.
14  * These names may be removed in a future version of Mbed Crypto.
15  *
16  * \note This file may not be included directly. Applications must
17  * include psa/crypto.h.
18  */
19 
20 #ifndef PSA_CRYPTO_COMPAT_H
21 #define PSA_CRYPTO_COMPAT_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 #if !defined(MBEDTLS_DEPRECATED_REMOVED)
28 
29 /*
30  * Mechanism for declaring deprecated values
31  */
32 #if defined(MBEDTLS_DEPRECATED_WARNING) && !defined(MBEDTLS_PSA_DEPRECATED)
33 #define MBEDTLS_PSA_DEPRECATED __attribute__((deprecated))
34 #else
35 #define MBEDTLS_PSA_DEPRECATED
36 #endif
37 
38 typedef MBEDTLS_PSA_DEPRECATED size_t mbedtls_deprecated_size_t;
39 typedef MBEDTLS_PSA_DEPRECATED psa_status_t mbedtls_deprecated_psa_status_t;
40 typedef MBEDTLS_PSA_DEPRECATED psa_key_usage_t mbedtls_deprecated_psa_key_usage_t;
41 typedef MBEDTLS_PSA_DEPRECATED psa_ecc_family_t mbedtls_deprecated_psa_ecc_family_t;
42 typedef MBEDTLS_PSA_DEPRECATED psa_dh_family_t mbedtls_deprecated_psa_dh_family_t;
43 typedef MBEDTLS_PSA_DEPRECATED psa_ecc_family_t psa_ecc_curve_t;
44 typedef MBEDTLS_PSA_DEPRECATED psa_dh_family_t psa_dh_group_t;
45 
46 #define PSA_KEY_TYPE_GET_CURVE PSA_KEY_TYPE_ECC_GET_FAMILY
47 #define PSA_KEY_TYPE_GET_GROUP PSA_KEY_TYPE_DH_GET_FAMILY
48 
49 #define MBEDTLS_DEPRECATED_CONSTANT( type, value ) \
50  ( (mbedtls_deprecated_##type) ( value ) )
51 
52 /*
53  * Deprecated PSA Crypto error code definitions (PSA Crypto API <= 1.0 beta2)
54  */
55 #define PSA_ERROR_UNKNOWN_ERROR \
56  MBEDTLS_DEPRECATED_CONSTANT( psa_status_t, PSA_ERROR_GENERIC_ERROR )
57 #define PSA_ERROR_OCCUPIED_SLOT \
58  MBEDTLS_DEPRECATED_CONSTANT( psa_status_t, PSA_ERROR_ALREADY_EXISTS )
59 #define PSA_ERROR_EMPTY_SLOT \
60  MBEDTLS_DEPRECATED_CONSTANT( psa_status_t, PSA_ERROR_DOES_NOT_EXIST )
61 #define PSA_ERROR_INSUFFICIENT_CAPACITY \
62  MBEDTLS_DEPRECATED_CONSTANT( psa_status_t, PSA_ERROR_INSUFFICIENT_DATA )
63 #define PSA_ERROR_TAMPERING_DETECTED \
64  MBEDTLS_DEPRECATED_CONSTANT( psa_status_t, PSA_ERROR_CORRUPTION_DETECTED )
65 
66 /*
67  * Deprecated PSA Crypto numerical encodings (PSA Crypto API <= 1.0 beta3)
68  */
69 #define PSA_KEY_USAGE_SIGN \
70  MBEDTLS_DEPRECATED_CONSTANT( psa_key_usage_t, PSA_KEY_USAGE_SIGN_HASH )
71 #define PSA_KEY_USAGE_VERIFY \
72  MBEDTLS_DEPRECATED_CONSTANT( psa_key_usage_t, PSA_KEY_USAGE_VERIFY_HASH )
73 
74 /*
75  * Deprecated PSA Crypto size calculation macros (PSA Crypto API <= 1.0 beta3)
76  */
77 #define PSA_ASYMMETRIC_SIGNATURE_MAX_SIZE \
78  MBEDTLS_DEPRECATED_CONSTANT( size_t, PSA_SIGNATURE_MAX_SIZE )
79 #define PSA_ASYMMETRIC_SIGN_OUTPUT_SIZE( key_type, key_bits, alg ) \
80  MBEDTLS_DEPRECATED_CONSTANT( size_t, PSA_SIGN_OUTPUT_SIZE( key_type, key_bits, alg ) )
81 
82 /*
83  * Deprecated PSA Crypto function names (PSA Crypto API <= 1.0 beta3)
84  */
85 MBEDTLS_PSA_DEPRECATED psa_status_t psa_asymmetric_sign( psa_key_handle_t key,
86  psa_algorithm_t alg,
87  const uint8_t *hash,
88  size_t hash_length,
89  uint8_t *signature,
90  size_t signature_size,
91  size_t *signature_length );
92 
93 MBEDTLS_PSA_DEPRECATED psa_status_t psa_asymmetric_verify( psa_key_handle_t key,
94  psa_algorithm_t alg,
95  const uint8_t *hash,
96  size_t hash_length,
97  const uint8_t *signature,
98  size_t signature_length );
99 
100 #endif /* MBEDTLS_DEPRECATED_REMOVED */
101 
102 /*
103  * Size-specific elliptic curve families.
104  */
105 #define PSA_ECC_CURVE_SECP160K1 \
106  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 )
107 #define PSA_ECC_CURVE_SECP192K1 \
108  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 )
109 #define PSA_ECC_CURVE_SECP224K1 \
110  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 )
111 #define PSA_ECC_CURVE_SECP256K1 \
112  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 )
113 #define PSA_ECC_CURVE_SECP160R1 \
114  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 )
115 #define PSA_ECC_CURVE_SECP192R1 \
116  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 )
117 #define PSA_ECC_CURVE_SECP224R1 \
118  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 )
119 #define PSA_ECC_CURVE_SECP256R1 \
120  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 )
121 #define PSA_ECC_CURVE_SECP384R1 \
122  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 )
123 #define PSA_ECC_CURVE_SECP521R1 \
124  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 )
125 #define PSA_ECC_CURVE_SECP160R2 \
126  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R2 )
127 #define PSA_ECC_CURVE_SECT163K1 \
128  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 )
129 #define PSA_ECC_CURVE_SECT233K1 \
130  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 )
131 #define PSA_ECC_CURVE_SECT239K1 \
132  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 )
133 #define PSA_ECC_CURVE_SECT283K1 \
134  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 )
135 #define PSA_ECC_CURVE_SECT409K1 \
136  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 )
137 #define PSA_ECC_CURVE_SECT571K1 \
138  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 )
139 #define PSA_ECC_CURVE_SECT163R1 \
140  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 )
141 #define PSA_ECC_CURVE_SECT193R1 \
142  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 )
143 #define PSA_ECC_CURVE_SECT233R1 \
144  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 )
145 #define PSA_ECC_CURVE_SECT283R1 \
146  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 )
147 #define PSA_ECC_CURVE_SECT409R1 \
148  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 )
149 #define PSA_ECC_CURVE_SECT571R1 \
150  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 )
151 #define PSA_ECC_CURVE_SECT163R2 \
152  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R2 )
153 #define PSA_ECC_CURVE_SECT193R2 \
154  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R2 )
155 #define PSA_ECC_CURVE_BRAINPOOL_P256R1 \
156  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_BRAINPOOL_P_R1 )
157 #define PSA_ECC_CURVE_BRAINPOOL_P384R1 \
158  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_BRAINPOOL_P_R1 )
159 #define PSA_ECC_CURVE_BRAINPOOL_P512R1 \
160  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_BRAINPOOL_P_R1 )
161 #define PSA_ECC_CURVE_CURVE25519 \
162  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_MONTGOMERY )
163 #define PSA_ECC_CURVE_CURVE448 \
164  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_MONTGOMERY )
165 
166 /*
167  * Curves that changed name due to PSA specification.
168  */
169 #define PSA_ECC_CURVE_SECP_K1 \
170  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 )
171 #define PSA_ECC_CURVE_SECP_R1 \
172  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 )
173 #define PSA_ECC_CURVE_SECP_R2 \
174  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R2 )
175 #define PSA_ECC_CURVE_SECT_K1 \
176  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 )
177 #define PSA_ECC_CURVE_SECT_R1 \
178  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 )
179 #define PSA_ECC_CURVE_SECT_R2 \
180  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R2 )
181 #define PSA_ECC_CURVE_BRAINPOOL_P_R1 \
182  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_BRAINPOOL_P_R1 )
183 #define PSA_ECC_CURVE_MONTGOMERY \
184  MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_MONTGOMERY )
185 
186 /*
187  * Finite-field Diffie-Hellman families.
188  */
189 #define PSA_DH_GROUP_FFDHE2048 \
190  MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 )
191 #define PSA_DH_GROUP_FFDHE3072 \
192  MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 )
193 #define PSA_DH_GROUP_FFDHE4096 \
194  MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 )
195 #define PSA_DH_GROUP_FFDHE6144 \
196  MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 )
197 #define PSA_DH_GROUP_FFDHE8192 \
198  MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 )
199 
200 /*
201  * Diffie-Hellman families that changed name due to PSA specification.
202  */
203 #define PSA_DH_GROUP_RFC7919 \
204  MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 )
205 #define PSA_DH_GROUP_CUSTOM \
206  MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_CUSTOM )
207 
208 #ifdef __cplusplus
209 }
210 #endif
211 
212 #endif /* PSA_CRYPTO_COMPAT_H */
uint16_t psa_ecc_curve_t
The type of PSA elliptic curve identifiers.
uint8_t psa_dh_family_t
The type of PSA Diffie-Hellman group family identifiers.
uint16_t psa_dh_group_t
The type of PSA Diffie-Hellman group identifiers.
uint32_t psa_algorithm_t
Encoding of a cryptographic algorithm.
uint32_t psa_key_usage_t
Encoding of permitted usage on a key.
uint8_t psa_ecc_family_t
The type of PSA elliptic curve family identifiers.
int32_t psa_status_t
Function return status.
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.