1*62c56f98SSadaf Ebrahimi /* MBEDTLS_USER_CONFIG_FILE for testing. 2*62c56f98SSadaf Ebrahimi * Only used for a few test configurations. 3*62c56f98SSadaf Ebrahimi * 4*62c56f98SSadaf Ebrahimi * Typical usage (note multiple levels of quoting): 5*62c56f98SSadaf Ebrahimi * make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/user-config-for-test.h\"'" 6*62c56f98SSadaf Ebrahimi */ 7*62c56f98SSadaf Ebrahimi 8*62c56f98SSadaf Ebrahimi /* 9*62c56f98SSadaf Ebrahimi * Copyright The Mbed TLS Contributors 10*62c56f98SSadaf Ebrahimi * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 11*62c56f98SSadaf Ebrahimi */ 12*62c56f98SSadaf Ebrahimi 13*62c56f98SSadaf Ebrahimi #if defined(PSA_CRYPTO_DRIVER_TEST_ALL) 14*62c56f98SSadaf Ebrahimi /* PSA_CRYPTO_DRIVER_TEST_ALL activates test drivers while keeping the 15*62c56f98SSadaf Ebrahimi * built-in implementations active. Normally setting MBEDTLS_PSA_ACCEL_xxx 16*62c56f98SSadaf Ebrahimi * would disable MBEDTLS_PSA_BUILTIN_xxx unless fallback is activated, but 17*62c56f98SSadaf Ebrahimi * here we arrange to have both active so that psa_crypto_*.c includes 18*62c56f98SSadaf Ebrahimi * the built-in implementations and the driver code can call the built-in 19*62c56f98SSadaf Ebrahimi * implementations. 20*62c56f98SSadaf Ebrahimi * 21*62c56f98SSadaf Ebrahimi * The point of this test mode is to verify that the 22*62c56f98SSadaf Ebrahimi * driver entry points are called when they should be in a lightweight 23*62c56f98SSadaf Ebrahimi * way, without requiring an actual driver. This is different from builds 24*62c56f98SSadaf Ebrahimi * with libtestdriver1, where we make a copy of the library source code 25*62c56f98SSadaf Ebrahimi * and use that as an external driver. 26*62c56f98SSadaf Ebrahimi */ 27*62c56f98SSadaf Ebrahimi 28*62c56f98SSadaf Ebrahimi /* Enable the use of the test driver in the library, and build the generic 29*62c56f98SSadaf Ebrahimi * part of the test driver. */ 30*62c56f98SSadaf Ebrahimi #define PSA_CRYPTO_DRIVER_TEST 31*62c56f98SSadaf Ebrahimi 32*62c56f98SSadaf Ebrahimi /* With MBEDTLS_PSA_CRYPTO_CONFIG, if we set up the acceleration, the 33*62c56f98SSadaf Ebrahimi * built-in implementations won't be enabled. */ 34*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_PSA_CRYPTO_CONFIG) 35*62c56f98SSadaf Ebrahimi #error \ 36*62c56f98SSadaf Ebrahimi "PSA_CRYPTO_DRIVER_TEST_ALL sets up a nonstandard configuration that is incompatible with MBEDTLS_PSA_CRYPTO_CONFIG" 37*62c56f98SSadaf Ebrahimi #endif 38*62c56f98SSadaf Ebrahimi 39*62c56f98SSadaf Ebrahimi /* Use the accelerator driver for all cryptographic mechanisms for which 40*62c56f98SSadaf Ebrahimi * the test driver implemented. */ 41*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_KEY_TYPE_AES 42*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_KEY_TYPE_CAMELLIA 43*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY 44*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC 45*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT 46*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT 47*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE 48*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR 49*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING 50*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7 51*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_CTR 52*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_CFB 53*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_ECDSA 54*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_DETERMINISTIC_ECDSA 55*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_MD5 56*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_OFB 57*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_RIPEMD160 58*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_SIGN 59*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_RSA_PSS 60*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_SHA_1 61*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_SHA_224 62*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_SHA_256 63*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_SHA_384 64*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_SHA_512 65*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_XTS 66*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_CMAC 67*62c56f98SSadaf Ebrahimi #define MBEDTLS_PSA_ACCEL_ALG_HMAC 68*62c56f98SSadaf Ebrahimi 69*62c56f98SSadaf Ebrahimi #endif /* PSA_CRYPTO_DRIVER_TEST_ALL */ 70*62c56f98SSadaf Ebrahimi 71*62c56f98SSadaf Ebrahimi 72*62c56f98SSadaf Ebrahimi 73*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_PSA_INJECT_ENTROPY) 74*62c56f98SSadaf Ebrahimi /* The #MBEDTLS_PSA_INJECT_ENTROPY feature requires two extra platform 75*62c56f98SSadaf Ebrahimi * functions, which must be configured as #MBEDTLS_PLATFORM_NV_SEED_READ_MACRO 76*62c56f98SSadaf Ebrahimi * and #MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO. The job of these functions 77*62c56f98SSadaf Ebrahimi * is to read and write from the entropy seed file, which is located 78*62c56f98SSadaf Ebrahimi * in the PSA ITS file whose uid is #PSA_CRYPTO_ITS_RANDOM_SEED_UID. 79*62c56f98SSadaf Ebrahimi * (These could have been provided as library functions, but for historical 80*62c56f98SSadaf Ebrahimi * reasons, they weren't, and so each integrator has to provide a copy 81*62c56f98SSadaf Ebrahimi * of these functions.) 82*62c56f98SSadaf Ebrahimi * 83*62c56f98SSadaf Ebrahimi * Provide implementations of these functions for testing. */ 84*62c56f98SSadaf Ebrahimi #include <stddef.h> 85*62c56f98SSadaf Ebrahimi int mbedtls_test_inject_entropy_seed_read(unsigned char *buf, size_t len); 86*62c56f98SSadaf Ebrahimi int mbedtls_test_inject_entropy_seed_write(unsigned char *buf, size_t len); 87*62c56f98SSadaf Ebrahimi #define MBEDTLS_PLATFORM_NV_SEED_READ_MACRO mbedtls_test_inject_entropy_seed_read 88*62c56f98SSadaf Ebrahimi #define MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO mbedtls_test_inject_entropy_seed_write 89*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_PSA_INJECT_ENTROPY */ 90