blob: bed2b9658bf8bb08740f45fc464a890742191c26 [file] [log] [blame]
Antonio de Angelis04debbd2019-10-14 12:12:52 +01001/**
2 * \file psa/crypto_compat.h
3 *
4 * \brief PSA cryptography module: Backward compatibility aliases
5 *
6 * This header declares alternative names for macro and functions.
7 * New application code should not use these names.
8 * These names may be removed in a future version of Mbed Crypto.
9 *
10 * \note This file may not be included directly. Applications must
11 * include psa/crypto.h.
12 */
13/*
14 * Copyright (C) 2019-2020, ARM Limited, All Rights Reserved
15 * SPDX-License-Identifier: Apache-2.0
16 *
17 * Licensed under the Apache License, Version 2.0 (the "License"); you may
18 * not use this file except in compliance with the License.
19 * You may obtain a copy of the License at
20 *
21 * http://www.apache.org/licenses/LICENSE-2.0
22 *
23 * Unless required by applicable law or agreed to in writing, software
24 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
25 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26 * See the License for the specific language governing permissions and
27 * limitations under the License.
28 *
29 * This file is part of mbed TLS (https://tls.mbed.org)
30 */
31
32#ifndef PSA_CRYPTO_COMPAT_H
33#define PSA_CRYPTO_COMPAT_H
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
39#if !defined(MBEDTLS_DEPRECATED_REMOVED)
40
41/*
42 * Mechanism for declaring deprecated values
43 */
44#if defined(MBEDTLS_DEPRECATED_WARNING) && !defined(MBEDTLS_PSA_DEPRECATED)
45#define MBEDTLS_PSA_DEPRECATED __attribute__((deprecated))
46#else
47#define MBEDTLS_PSA_DEPRECATED
48#endif
49
50typedef MBEDTLS_PSA_DEPRECATED size_t mbedtls_deprecated_size_t;
51typedef MBEDTLS_PSA_DEPRECATED psa_status_t mbedtls_deprecated_psa_status_t;
52typedef MBEDTLS_PSA_DEPRECATED psa_key_usage_t mbedtls_deprecated_psa_key_usage_t;
Soby Mathew07ef6e42020-07-20 21:09:23 +010053typedef MBEDTLS_PSA_DEPRECATED psa_ecc_curve_t mbedtls_deprecated_psa_ecc_curve_t;
54typedef MBEDTLS_PSA_DEPRECATED psa_dh_group_t mbedtls_deprecated_psa_dh_group_t;
Antonio de Angelis04debbd2019-10-14 12:12:52 +010055
56#define MBEDTLS_DEPRECATED_CONSTANT( type, value ) \
57 ( (mbedtls_deprecated_##type) ( value ) )
58
59/*
60 * Deprecated PSA Crypto error code definitions (PSA Crypto API <= 1.0 beta2)
61 */
62#define PSA_ERROR_UNKNOWN_ERROR \
63 MBEDTLS_DEPRECATED_CONSTANT( psa_status_t, PSA_ERROR_GENERIC_ERROR )
64#define PSA_ERROR_OCCUPIED_SLOT \
65 MBEDTLS_DEPRECATED_CONSTANT( psa_status_t, PSA_ERROR_ALREADY_EXISTS )
66#define PSA_ERROR_EMPTY_SLOT \
67 MBEDTLS_DEPRECATED_CONSTANT( psa_status_t, PSA_ERROR_DOES_NOT_EXIST )
68#define PSA_ERROR_INSUFFICIENT_CAPACITY \
69 MBEDTLS_DEPRECATED_CONSTANT( psa_status_t, PSA_ERROR_INSUFFICIENT_DATA )
70#define PSA_ERROR_TAMPERING_DETECTED \
71 MBEDTLS_DEPRECATED_CONSTANT( psa_status_t, PSA_ERROR_CORRUPTION_DETECTED )
72
73/*
74 * Deprecated PSA Crypto numerical encodings (PSA Crypto API <= 1.0 beta3)
75 */
76#define PSA_KEY_USAGE_SIGN \
77 MBEDTLS_DEPRECATED_CONSTANT( psa_key_usage_t, PSA_KEY_USAGE_SIGN_HASH )
78#define PSA_KEY_USAGE_VERIFY \
79 MBEDTLS_DEPRECATED_CONSTANT( psa_key_usage_t, PSA_KEY_USAGE_VERIFY_HASH )
80
81/*
82 * Deprecated PSA Crypto size calculation macros (PSA Crypto API <= 1.0 beta3)
83 */
84#define PSA_ASYMMETRIC_SIGNATURE_MAX_SIZE \
85 MBEDTLS_DEPRECATED_CONSTANT( size_t, PSA_SIGNATURE_MAX_SIZE )
86#define PSA_ASYMMETRIC_SIGN_OUTPUT_SIZE( key_type, key_bits, alg ) \
87 MBEDTLS_DEPRECATED_CONSTANT( size_t, PSA_SIGN_OUTPUT_SIZE( key_type, key_bits, alg ) )
88
Soby Mathewfd247c42020-02-24 10:23:43 +000089/*
90 * Deprecated PSA Crypto function names (PSA Crypto API <= 1.0 beta3)
91 */
92MBEDTLS_PSA_DEPRECATED psa_status_t psa_asymmetric_sign( psa_key_handle_t key,
93 psa_algorithm_t alg,
94 const uint8_t *hash,
95 size_t hash_length,
96 uint8_t *signature,
97 size_t signature_size,
98 size_t *signature_length );
99
100MBEDTLS_PSA_DEPRECATED psa_status_t psa_asymmetric_verify( psa_key_handle_t key,
101 psa_algorithm_t alg,
102 const uint8_t *hash,
103 size_t hash_length,
104 const uint8_t *signature,
105 size_t signature_length );
106
Antonio de Angelis04debbd2019-10-14 12:12:52 +0100107#endif /* MBEDTLS_DEPRECATED_REMOVED */
108
Soby Mathew07ef6e42020-07-20 21:09:23 +0100109/*
110 * Size-specific elliptic curve and Diffie-Hellman group names
111 */
112#define PSA_ECC_CURVE_SECP160K1 \
113 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_K1 )
114#define PSA_ECC_CURVE_SECP192K1 \
115 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_K1 )
116#define PSA_ECC_CURVE_SECP224K1 \
117 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_K1 )
118#define PSA_ECC_CURVE_SECP256K1 \
119 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_K1 )
120#define PSA_ECC_CURVE_SECP160R1 \
121 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_R1 )
122#define PSA_ECC_CURVE_SECP192R1 \
123 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_R1 )
124#define PSA_ECC_CURVE_SECP224R1 \
125 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_R1 )
126#define PSA_ECC_CURVE_SECP256R1 \
127 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_R1 )
128#define PSA_ECC_CURVE_SECP384R1 \
129 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_R1 )
130#define PSA_ECC_CURVE_SECP521R1 \
131 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_R1 )
132#define PSA_ECC_CURVE_SECP160R2 \
133 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_R2 )
134#define PSA_ECC_CURVE_SECT163K1 \
135 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_K1 )
136#define PSA_ECC_CURVE_SECT233K1 \
137 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_K1 )
138#define PSA_ECC_CURVE_SECT239K1 \
139 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_K1 )
140#define PSA_ECC_CURVE_SECT283K1 \
141 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_K1 )
142#define PSA_ECC_CURVE_SECT409K1 \
143 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_K1 )
144#define PSA_ECC_CURVE_SECT571K1 \
145 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_K1 )
146#define PSA_ECC_CURVE_SECT163R1 \
147 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_R1 )
148#define PSA_ECC_CURVE_SECT193R1 \
149 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_R1 )
150#define PSA_ECC_CURVE_SECT233R1 \
151 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_R1 )
152#define PSA_ECC_CURVE_SECT283R1 \
153 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_R1 )
154#define PSA_ECC_CURVE_SECT409R1 \
155 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_R1 )
156#define PSA_ECC_CURVE_SECT571R1 \
157 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_R1 )
158#define PSA_ECC_CURVE_SECT163R2 \
159 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_R2 )
160#define PSA_ECC_CURVE_SECT193R2 \
161 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_R2 )
162#define PSA_ECC_CURVE_BRAINPOOL_P256R1 \
163 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_BRAINPOOL_P_R1 )
164#define PSA_ECC_CURVE_BRAINPOOL_P384R1 \
165 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_BRAINPOOL_P_R1 )
166#define PSA_ECC_CURVE_BRAINPOOL_P512R1 \
167 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_BRAINPOOL_P_R1 )
168#define PSA_ECC_CURVE_CURVE25519 \
169 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_MONTGOMERY )
170#define PSA_ECC_CURVE_CURVE448 \
171 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_MONTGOMERY )
172
173#define PSA_DH_GROUP_FFDHE2048 \
174 MBEDTLS_DEPRECATED_CONSTANT( psa_dh_group_t, PSA_DH_GROUP_RFC7919 )
175#define PSA_DH_GROUP_FFDHE3072 \
176 MBEDTLS_DEPRECATED_CONSTANT( psa_dh_group_t, PSA_DH_GROUP_RFC7919 )
177#define PSA_DH_GROUP_FFDHE4096 \
178 MBEDTLS_DEPRECATED_CONSTANT( psa_dh_group_t, PSA_DH_GROUP_RFC7919 )
179#define PSA_DH_GROUP_FFDHE6144 \
180 MBEDTLS_DEPRECATED_CONSTANT( psa_dh_group_t, PSA_DH_GROUP_RFC7919 )
181#define PSA_DH_GROUP_FFDHE8192 \
182 MBEDTLS_DEPRECATED_CONSTANT( psa_dh_group_t, PSA_DH_GROUP_RFC7919 )
183
Antonio de Angelis04debbd2019-10-14 12:12:52 +0100184#ifdef __cplusplus
185}
186#endif
187
188#endif /* PSA_CRYPTO_COMPAT_H */