John Durkop | 6e33dbe | 2020-09-17 21:15:13 -0700 | [diff] [blame] | 1 | /** |
| 2 | * \file mbedtls/config_psa.h |
| 3 | * \brief PSA crypto configuration options (set of defines) |
| 4 | * |
John Durkop | 3481882 | 2020-10-12 21:36:22 -0700 | [diff] [blame] | 5 | * This set of compile-time options takes settings defined in |
Bence Szépkúti | bb0cfeb | 2021-05-28 09:42:25 +0200 | [diff] [blame] | 6 | * include/mbedtls/mbedtls_config.h and include/psa/crypto_config.h and uses |
John Durkop | 3481882 | 2020-10-12 21:36:22 -0700 | [diff] [blame] | 7 | * those definitions to define symbols used in the library code. |
| 8 | * |
| 9 | * Users and integrators should not edit this file, please edit |
Tom Cosgrove | 1797b05 | 2022-12-04 17:19:59 +0000 | [diff] [blame] | 10 | * include/mbedtls/mbedtls_config.h for MBEDTLS_XXX settings or |
John Durkop | 3481882 | 2020-10-12 21:36:22 -0700 | [diff] [blame] | 11 | * include/psa/crypto_config.h for PSA_WANT_XXX settings. |
John Durkop | 6e33dbe | 2020-09-17 21:15:13 -0700 | [diff] [blame] | 12 | */ |
| 13 | /* |
| 14 | * Copyright The Mbed TLS Contributors |
| 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 | |
| 30 | #ifndef MBEDTLS_CONFIG_PSA_H |
| 31 | #define MBEDTLS_CONFIG_PSA_H |
| 32 | |
Valerio Setti | b7ef51a | 2023-06-06 14:32:58 +0200 | [diff] [blame] | 33 | #include "psa/crypto_legacy.h" |
| 34 | |
Gilles Peskine | 7b7d903 | 2023-09-04 16:55:14 +0200 | [diff] [blame] | 35 | #include "psa/crypto_adjust_config_synonyms.h" |
Gilles Peskine | 44c96aa | 2021-10-04 18:33:56 +0200 | [diff] [blame] | 36 | |
Gilles Peskine | eca0178 | 2023-09-04 16:58:54 +0200 | [diff] [blame] | 37 | #include "mbedtls/config_adjust_psa_superset_legacy.h" |
Gilles Peskine | 1231eb5 | 2021-04-19 22:24:23 +0200 | [diff] [blame] | 38 | |
John Durkop | 2dfaf9c | 2020-09-24 04:30:10 -0700 | [diff] [blame] | 39 | #if defined(MBEDTLS_PSA_CRYPTO_CONFIG) |
John Durkop | d895939 | 2020-09-20 23:09:17 -0700 | [diff] [blame] | 40 | |
Gilles Peskine | 4fb1542 | 2023-09-04 17:41:36 +0200 | [diff] [blame^] | 41 | /* Require built-in implementations based on PSA requirements */ |
John Durkop | d62b678 | 2020-11-30 21:06:05 -0800 | [diff] [blame] | 42 | |
Gilles Peskine | 4fb1542 | 2023-09-04 17:41:36 +0200 | [diff] [blame^] | 43 | #include "mbedtls/config_adjust_legacy_from_psa.h" |
Gilles Peskine | 1231eb5 | 2021-04-19 22:24:23 +0200 | [diff] [blame] | 44 | |
John Durkop | 714e3a1 | 2020-09-29 22:07:04 -0700 | [diff] [blame] | 45 | #else /* MBEDTLS_PSA_CRYPTO_CONFIG */ |
| 46 | |
Gilles Peskine | 10c6f07 | 2023-09-04 17:36:35 +0200 | [diff] [blame] | 47 | /* Infer PSA requirements from Mbed TLS capabilities */ |
Gilles Peskine | 2cecfba | 2020-11-25 00:07:04 +0100 | [diff] [blame] | 48 | |
Gilles Peskine | 10c6f07 | 2023-09-04 17:36:35 +0200 | [diff] [blame] | 49 | #include "mbedtls/config_adjust_psa_from_legacy.h" |
David Brown | 8de143e | 2021-02-19 14:08:00 -0700 | [diff] [blame] | 50 | |
John Durkop | 2dfaf9c | 2020-09-24 04:30:10 -0700 | [diff] [blame] | 51 | #endif /* MBEDTLS_PSA_CRYPTO_CONFIG */ |
John Durkop | d895939 | 2020-09-20 23:09:17 -0700 | [diff] [blame] | 52 | |
Tom Cosgrove | 6d62fac | 2023-05-10 14:40:05 +0100 | [diff] [blame] | 53 | #if defined(PSA_WANT_ALG_JPAKE) |
| 54 | #define PSA_WANT_ALG_SOME_PAKE 1 |
| 55 | #endif |
| 56 | |
Valerio Setti | 73fc082 | 2023-06-21 10:06:19 +0200 | [diff] [blame] | 57 | /* Even though KEY_PAIR symbols' feature several level of support (BASIC, IMPORT, |
| 58 | * EXPORT, GENERATE, DERIVE) we're not planning to have support only for BASIC |
| 59 | * without IMPORT/EXPORT since these last 2 features are strongly used in tests. |
Valerio Setti | 27c501a | 2023-06-27 16:58:52 +0200 | [diff] [blame] | 60 | * In general it is allowed to include more feature than what is strictly |
| 61 | * requested. |
| 62 | * As a consequence IMPORT and EXPORT features will be automatically enabled |
| 63 | * as soon as the BASIC one is. */ |
Valerio Setti | 73fc082 | 2023-06-21 10:06:19 +0200 | [diff] [blame] | 64 | #if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC) |
Valerio Setti | 27c501a | 2023-06-27 16:58:52 +0200 | [diff] [blame] | 65 | #define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT 1 |
| 66 | #define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT 1 |
Valerio Setti | 73fc082 | 2023-06-21 10:06:19 +0200 | [diff] [blame] | 67 | #endif |
| 68 | |
Valerio Setti | 27c501a | 2023-06-27 16:58:52 +0200 | [diff] [blame] | 69 | /* See description above */ |
Valerio Setti | 73fc082 | 2023-06-21 10:06:19 +0200 | [diff] [blame] | 70 | #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_BASIC) |
Valerio Setti | 27c501a | 2023-06-27 16:58:52 +0200 | [diff] [blame] | 71 | #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_IMPORT 1 |
| 72 | #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_EXPORT 1 |
Valerio Setti | 8d6e98c | 2023-05-26 13:46:13 +0200 | [diff] [blame] | 73 | #endif |
| 74 | |
Valerio Setti | 0d5c5e5 | 2023-07-10 16:21:00 +0200 | [diff] [blame] | 75 | /* See description above */ |
| 76 | #if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC) |
| 77 | #define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT 1 |
| 78 | #define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT 1 |
| 79 | #endif |
| 80 | |
| 81 | /* See description above */ |
| 82 | #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_BASIC) |
| 83 | #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_IMPORT 1 |
| 84 | #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_EXPORT 1 |
| 85 | #endif |
| 86 | |
Valerio Setti | a55f042 | 2023-07-10 15:34:41 +0200 | [diff] [blame] | 87 | /* See description above */ |
| 88 | #if defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC) |
| 89 | #define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_IMPORT 1 |
| 90 | #define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_EXPORT 1 |
Valerio Setti | 8d6e98c | 2023-05-26 13:46:13 +0200 | [diff] [blame] | 91 | #endif |
| 92 | |
Valerio Setti | a55f042 | 2023-07-10 15:34:41 +0200 | [diff] [blame] | 93 | /* See description above */ |
| 94 | #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_BASIC) |
| 95 | #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_IMPORT 1 |
| 96 | #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_EXPORT 1 |
Valerio Setti | 8d6e98c | 2023-05-26 13:46:13 +0200 | [diff] [blame] | 97 | #endif |
| 98 | |
Gilles Peskine | 5823977 | 2023-09-04 16:56:06 +0200 | [diff] [blame] | 99 | #include "psa/crypto_adjust_auto_enabled.h" |
Gilles Peskine | 60b29fe | 2021-02-16 14:06:50 +0100 | [diff] [blame] | 100 | |
John Durkop | 6e33dbe | 2020-09-17 21:15:13 -0700 | [diff] [blame] | 101 | #endif /* MBEDTLS_CONFIG_PSA_H */ |