blob: a55e6ac08cd6c1ef54de451f83331dd5a5f66613 [file] [log] [blame]
Satish Kumar427923c2021-10-05 07:21:53 +01001/*
2 * Copyright (c) 2020, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 *
6 */
7
8
9#ifndef AUTHENTICATOR_CRYPTO_CONFIG_H
10#define AUTHENTICATOR_CRYPTO_CONFIG_H
11
12#include <psa_adac_config.h>
13
14#define MBEDTLS_PSA_CRYPTO_C
15
16/* System support */
17#define MBEDTLS_PLATFORM_C
18#define MBEDTLS_PLATFORM_MEMORY
19#define MBEDTLS_MEMORY_BUFFER_ALLOC_C
20#define MBEDTLS_NO_PLATFORM_ENTROPY
21#define MBEDTLS_ENTROPY_HARDWARE_ALT
22#define MBEDTLS_HAVE_ASM
23
24#define MBEDTLS_PLATFORM_EXIT_ALT
25#define MBEDTLS_PLATFORM_PRINTF_ALT
26
27#if defined(PSA_ADAC_RSA3072) || defined(PSA_ADAC_RSA4096)
28#define MBEDTLS_RSA_C
29#define MBEDTLS_PKCS1_V21
30#define MBEDTLS_OID_C
31#define MBEDTLS_BIGNUM_C
32#define MBEDTLS_PK_PARSE_C
33#define MBEDTLS_PK_C
34
35/* Support RSA key sizes up to 4096 bit */
36#define MBEDTLS_MPI_MAX_SIZE 512
37#endif
38
39/* PSA ADAC */
Mathias Brossard6cff9c22025-02-19 22:25:51 -060040#if defined(PSA_ADAC_EC_P256) || defined(PSA_ADAC_EC_P384) \
41 || defined(PSA_ADAC_EC_P521)
Satish Kumar427923c2021-10-05 07:21:53 +010042#define MBEDTLS_ECDSA_C
43#define MBEDTLS_ECP_C
44#define MBEDTLS_ASN1_PARSE_C
45#define MBEDTLS_ASN1_WRITE_C
46#ifndef MBEDTLS_BIGNUM_C
47#define MBEDTLS_BIGNUM_C
48#endif
49#ifndef MBEDTLS_PK_C
50#define MBEDTLS_PK_C
51#endif
52#if defined(PSA_ADAC_EC_P256)
53#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
54#endif
Mathias Brossard6cff9c22025-02-19 22:25:51 -060055#if defined(PSA_ADAC_EC_P384)
56#define MBEDTLS_ECP_DP_SECP384R1_ENABLED
57#endif
Satish Kumar427923c2021-10-05 07:21:53 +010058#if defined(PSA_ADAC_EC_P521)
59#define MBEDTLS_ECP_DP_SECP521R1_ENABLED
60#endif
61#endif
62
63/* Needed by PSA Crypto API Implementation */
64#define MBEDTLS_CTR_DRBG_C
65#define MBEDTLS_ENTROPY_C
66#define MBEDTLS_AES_C
67#define MBEDTLS_AES_ROM_TABLES
68#define MBEDTLS_AES_FEWER_TABLES
69
70#define MBEDTLS_MD_C
71#define MBEDTLS_SHA224_C
72#define MBEDTLS_SHA256_C
73#define MBEDTLS_SHA256_SMALLER
Mathias Brossard6cff9c22025-02-19 22:25:51 -060074#if defined(PSA_ADAC_EC_P384)
75#define MBEDTLS_SHA384_C
76#define MBEDTLS_SHA384_SMALLER
77#endif
Satish Kumar427923c2021-10-05 07:21:53 +010078#if defined(PSA_ADAC_EC_P521) || defined(PSA_ADAC_ED25519)
79#define MBEDTLS_SHA512_C
80#define MBEDTLS_SHA512_SMALLER
81#else
82#define MBEDTLS_ENTROPY_FORCE_SHA256
83#endif
84
85#ifdef PSA_ADAC_USE_CRYPTOCELL
86#define MBEDTLS_AES_ALT
87#define MBEDTLS_SHA256_ALT
88#define MBEDTLS_ENTROPY_HARDWARE_ALT
89#else
90#define MBEDTLS_CIPHER_C
91#endif
92
93#ifdef PSA_ADAC_CMAC
94#define MBEDTLS_CMAC_C
95#ifndef MBEDTLS_CIPHER_C
96#define MBEDTLS_CIPHER_C
97#endif
98#endif
99
100#ifdef PSA_ADAC_HMAC
101#define MBEDTLS_HKDF_C
102#endif
103
104#include "mbedtls/check_config.h"
105
106#endif /* AUTHENTICATOR_CRYPTO_CONFIG_H */