blob: 26c205ac9b418b827eec3491cf388f18b66fa63f [file] [log] [blame]
Summer Qin0e5b2e02020-10-22 11:23:39 +08001/*
2 * Copyright (c) 2019-2020, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 *
6 */
Antonio de Angelis04debbd2019-10-14 12:12:52 +01007/**
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 */
Antonio de Angelis04debbd2019-10-14 12:12:52 +010019
20#ifndef PSA_CRYPTO_COMPAT_H
21#define PSA_CRYPTO_COMPAT_H
22
23#ifdef __cplusplus
24extern "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
38typedef MBEDTLS_PSA_DEPRECATED size_t mbedtls_deprecated_size_t;
39typedef MBEDTLS_PSA_DEPRECATED psa_status_t mbedtls_deprecated_psa_status_t;
40typedef MBEDTLS_PSA_DEPRECATED psa_key_usage_t mbedtls_deprecated_psa_key_usage_t;
Summer Qin0e5b2e02020-10-22 11:23:39 +080041typedef MBEDTLS_PSA_DEPRECATED psa_ecc_family_t mbedtls_deprecated_psa_ecc_family_t;
42typedef MBEDTLS_PSA_DEPRECATED psa_dh_family_t mbedtls_deprecated_psa_dh_family_t;
43typedef MBEDTLS_PSA_DEPRECATED psa_ecc_family_t psa_ecc_curve_t;
44typedef 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
Antonio de Angelis04debbd2019-10-14 12:12:52 +010048
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
Soby Mathewfd247c42020-02-24 10:23:43 +000082/*
83 * Deprecated PSA Crypto function names (PSA Crypto API <= 1.0 beta3)
84 */
85MBEDTLS_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
93MBEDTLS_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
Antonio de Angelis04debbd2019-10-14 12:12:52 +0100100#endif /* MBEDTLS_DEPRECATED_REMOVED */
101
Soby Mathew07ef6e42020-07-20 21:09:23 +0100102/*
Summer Qin0e5b2e02020-10-22 11:23:39 +0800103 * Size-specific elliptic curve families.
Soby Mathew07ef6e42020-07-20 21:09:23 +0100104 */
105#define PSA_ECC_CURVE_SECP160K1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800106 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100107#define PSA_ECC_CURVE_SECP192K1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800108 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100109#define PSA_ECC_CURVE_SECP224K1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800110 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100111#define PSA_ECC_CURVE_SECP256K1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800112 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100113#define PSA_ECC_CURVE_SECP160R1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800114 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100115#define PSA_ECC_CURVE_SECP192R1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800116 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100117#define PSA_ECC_CURVE_SECP224R1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800118 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100119#define PSA_ECC_CURVE_SECP256R1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800120 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100121#define PSA_ECC_CURVE_SECP384R1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800122 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100123#define PSA_ECC_CURVE_SECP521R1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800124 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100125#define PSA_ECC_CURVE_SECP160R2 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800126 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R2 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100127#define PSA_ECC_CURVE_SECT163K1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800128 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100129#define PSA_ECC_CURVE_SECT233K1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800130 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100131#define PSA_ECC_CURVE_SECT239K1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800132 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100133#define PSA_ECC_CURVE_SECT283K1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800134 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100135#define PSA_ECC_CURVE_SECT409K1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800136 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100137#define PSA_ECC_CURVE_SECT571K1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800138 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100139#define PSA_ECC_CURVE_SECT163R1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800140 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100141#define PSA_ECC_CURVE_SECT193R1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800142 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100143#define PSA_ECC_CURVE_SECT233R1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800144 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100145#define PSA_ECC_CURVE_SECT283R1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800146 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100147#define PSA_ECC_CURVE_SECT409R1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800148 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100149#define PSA_ECC_CURVE_SECT571R1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800150 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100151#define PSA_ECC_CURVE_SECT163R2 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800152 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R2 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100153#define PSA_ECC_CURVE_SECT193R2 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800154 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R2 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100155#define PSA_ECC_CURVE_BRAINPOOL_P256R1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800156 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_BRAINPOOL_P_R1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100157#define PSA_ECC_CURVE_BRAINPOOL_P384R1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800158 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_BRAINPOOL_P_R1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100159#define PSA_ECC_CURVE_BRAINPOOL_P512R1 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800160 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_BRAINPOOL_P_R1 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100161#define PSA_ECC_CURVE_CURVE25519 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800162 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_MONTGOMERY )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100163#define PSA_ECC_CURVE_CURVE448 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800164 MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_MONTGOMERY )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100165
Summer Qin0e5b2e02020-10-22 11:23:39 +0800166/*
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 */
Soby Mathew07ef6e42020-07-20 21:09:23 +0100189#define PSA_DH_GROUP_FFDHE2048 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800190 MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100191#define PSA_DH_GROUP_FFDHE3072 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800192 MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100193#define PSA_DH_GROUP_FFDHE4096 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800194 MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100195#define PSA_DH_GROUP_FFDHE6144 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800196 MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100197#define PSA_DH_GROUP_FFDHE8192 \
Summer Qin0e5b2e02020-10-22 11:23:39 +0800198 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 )
Soby Mathew07ef6e42020-07-20 21:09:23 +0100207
Antonio de Angelis04debbd2019-10-14 12:12:52 +0100208#ifdef __cplusplus
209}
210#endif
211
212#endif /* PSA_CRYPTO_COMPAT_H */