Merge pull request #9430 from davidhorstmann-arm/align-development-3.6-test-helpers

Align development test helpers with 3.6
This commit is contained in:
Manuel Pégourié-Gonnard 2024-10-30 09:09:34 +00:00 committed by GitHub
commit 69868299a8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 89 additions and 16 deletions

View File

@ -11,7 +11,8 @@
#include "test/helpers.h" #include "test/helpers.h"
#if defined(MBEDTLS_PSA_CRYPTO_CLIENT) #if (MBEDTLS_VERSION_MAJOR < 4 && defined(MBEDTLS_PSA_CRYPTO_C)) || \
(MBEDTLS_VERSION_MAJOR >= 4 && defined(MBEDTLS_PSA_CRYPTO_CLIENT))
#include "test/psa_helpers.h" #include "test/psa_helpers.h"
#include <psa/crypto.h> #include <psa/crypto.h>
#endif #endif
@ -40,7 +41,7 @@
mbedtls_psa_crypto_free(); \ mbedtls_psa_crypto_free(); \
} \ } \
while (0) while (0)
#elif defined(MBEDTLS_PSA_CRYPTO_CLIENT) /* MBEDTLS_PSA_CRYPTO_CLIENT && !MBEDTLS_PSA_CRYPTO_C */ #elif MBEDTLS_VERSION_MAJOR >= 4 && defined(MBEDTLS_PSA_CRYPTO_CLIENT)
#define PSA_INIT() PSA_ASSERT(psa_crypto_init()) #define PSA_INIT() PSA_ASSERT(psa_crypto_init())
#define PSA_DONE() mbedtls_psa_crypto_free(); #define PSA_DONE() mbedtls_psa_crypto_free();
#else /* MBEDTLS_PSA_CRYPTO_CLIENT && !MBEDTLS_PSA_CRYPTO_C */ #else /* MBEDTLS_PSA_CRYPTO_CLIENT && !MBEDTLS_PSA_CRYPTO_C */
@ -48,7 +49,8 @@
#define PSA_DONE() ((void) 0) #define PSA_DONE() ((void) 0)
#endif /* MBEDTLS_PSA_CRYPTO_C */ #endif /* MBEDTLS_PSA_CRYPTO_C */
#if defined(MBEDTLS_PSA_CRYPTO_CLIENT) #if (MBEDTLS_VERSION_MAJOR < 4 && defined(MBEDTLS_PSA_CRYPTO_C)) || \
(MBEDTLS_VERSION_MAJOR >= 4 && defined(MBEDTLS_PSA_CRYPTO_CLIENT))
#if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) #if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C)
@ -253,16 +255,18 @@ uint64_t mbedtls_test_parse_binary_string(data_t *bin_string);
* \param key_type Key type * \param key_type Key type
* \param key_bits Key length in number of bits. * \param key_bits Key length in number of bits.
*/ */
#if defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_AES) #if defined(MBEDTLS_AES_ALT) || \
#define MBEDTLS_TEST_HAVE_ALT_AES 1 defined(MBEDTLS_AES_SETKEY_ENC_ALT) || \
defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_AES)
#define MBEDTLS_TEST_HAVE_ACCEL_AES 1
#else #else
#define MBEDTLS_TEST_HAVE_ALT_AES 0 #define MBEDTLS_TEST_HAVE_ACCEL_AES 0
#endif #endif
#define MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192(key_type, key_bits) \ #define MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192(key_type, key_bits) \
do \ do \
{ \ { \
if ((MBEDTLS_TEST_HAVE_ALT_AES) && \ if ((MBEDTLS_TEST_HAVE_ACCEL_AES) && \
((key_type) == PSA_KEY_TYPE_AES) && \ ((key_type) == PSA_KEY_TYPE_AES) && \
(key_bits == 192)) \ (key_bits == 192)) \
{ \ { \
@ -295,7 +299,8 @@ uint64_t mbedtls_test_parse_binary_string(data_t *bin_string);
* \param nonce_length The nonce length in number of bytes. * \param nonce_length The nonce length in number of bytes.
*/ */
#if defined(MBEDTLS_PSA_ACCEL_ALG_GCM) #if defined(MBEDTLS_GCM_ALT) || \
defined(MBEDTLS_PSA_ACCEL_ALG_GCM)
#define MBEDTLS_TEST_HAVE_ACCEL_GCM 1 #define MBEDTLS_TEST_HAVE_ACCEL_GCM 1
#else #else
#define MBEDTLS_TEST_HAVE_ACCEL_GCM 0 #define MBEDTLS_TEST_HAVE_ACCEL_GCM 0
@ -316,7 +321,22 @@ uint64_t mbedtls_test_parse_binary_string(data_t *bin_string);
} \ } \
while (0) while (0)
#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */ #endif /* MBEDTLS_PSA_CRYPTO_CLIENT || MBEDTLS_PSA_CRYPTO_C */
#if MBEDTLS_VERSION_MAJOR >= 4
/* Legacy PSA_INIT() / PSA_DONE() variants from 3.6 */
#define USE_PSA_INIT() PSA_INIT()
#define USE_PSA_DONE() PSA_DONE()
#define MD_PSA_INIT() PSA_INIT()
#define MD_PSA_DONE() PSA_DONE()
#define BLOCK_CIPHER_PSA_INIT() PSA_INIT()
#define BLOCK_CIPHER_PSA_DONE() PSA_DONE()
#define MD_OR_USE_PSA_INIT() PSA_INIT()
#define MD_OR_USE_PSA_DONE() PSA_DONE()
#define AES_PSA_INIT() PSA_INIT()
#define AES_PSA_DONE() PSA_DONE()
#else /* MBEDTLS_VERSION_MAJOR < 4 */
/** \def USE_PSA_INIT /** \def USE_PSA_INIT
* *
@ -335,9 +355,18 @@ uint64_t mbedtls_test_parse_binary_string(data_t *bin_string);
* This is like #PSA_DONE except it does nothing under the same conditions as * This is like #PSA_DONE except it does nothing under the same conditions as
* #USE_PSA_INIT. * #USE_PSA_INIT.
*/ */
#if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) #if defined(MBEDTLS_USE_PSA_CRYPTO)
#define USE_PSA_INIT() PSA_INIT() #define USE_PSA_INIT() PSA_INIT()
#define USE_PSA_DONE() PSA_DONE() #define USE_PSA_DONE() PSA_DONE()
#elif defined(MBEDTLS_SSL_PROTO_TLS1_3)
/* TLS 1.3 must work without having called psa_crypto_init(), for backward
* compatibility with Mbed TLS <= 3.5 when connecting with a peer that
* supports both TLS 1.2 and TLS 1.3. See mbedtls_ssl_tls13_crypto_init()
* and https://github.com/Mbed-TLS/mbedtls/issues/9072 . */
#define USE_PSA_INIT() ((void) 0)
/* TLS 1.3 may have initialized the PSA subsystem. Shut it down cleanly,
* otherwise Asan and Valgrind would notice a resource leak. */
#define USE_PSA_DONE() PSA_DONE()
#else /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */ #else /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */
/* Define empty macros so that we can use them in the preamble and teardown /* Define empty macros so that we can use them in the preamble and teardown
* of every test function that uses PSA conditionally based on * of every test function that uses PSA conditionally based on
@ -409,13 +438,12 @@ uint64_t mbedtls_test_parse_binary_string(data_t *bin_string);
* This is like #PSA_DONE except it does nothing under the same conditions as * This is like #PSA_DONE except it does nothing under the same conditions as
* #MD_OR_USE_PSA_INIT. * #MD_OR_USE_PSA_INIT.
*/ */
#if defined(MBEDTLS_MD_SOME_PSA) || \ #if defined(MBEDTLS_MD_SOME_PSA)
defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3)
#define MD_OR_USE_PSA_INIT() PSA_INIT() #define MD_OR_USE_PSA_INIT() PSA_INIT()
#define MD_OR_USE_PSA_DONE() PSA_DONE() #define MD_OR_USE_PSA_DONE() PSA_DONE()
#else #else
#define MD_OR_USE_PSA_INIT() ((void) 0) #define MD_OR_USE_PSA_INIT() USE_PSA_INIT()
#define MD_OR_USE_PSA_DONE() ((void) 0) #define MD_OR_USE_PSA_DONE() USE_PSA_DONE()
#endif #endif
/** \def AES_PSA_INIT /** \def AES_PSA_INIT
@ -441,6 +469,8 @@ uint64_t mbedtls_test_parse_binary_string(data_t *bin_string);
#define AES_PSA_DONE() ((void) 0) #define AES_PSA_DONE() ((void) 0)
#endif /* MBEDTLS_CTR_DRBG_USE_PSA_CRYPTO */ #endif /* MBEDTLS_CTR_DRBG_USE_PSA_CRYPTO */
#endif /* MBEDTLS_VERSION_MAJOR >= 4 */
#if !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) && \ #if !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) && \
defined(MBEDTLS_CTR_DRBG_C) && \ defined(MBEDTLS_CTR_DRBG_C) && \
defined(MBEDTLS_CTR_DRBG_USE_PSA_CRYPTO) defined(MBEDTLS_CTR_DRBG_USE_PSA_CRYPTO)

View File

@ -13,8 +13,12 @@
#include "test/drivers/hash.h" #include "test/drivers/hash.h"
#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) #if defined(MBEDTLS_TEST_LIBTESTDRIVER1)
#if MBEDTLS_VERSION_MAJOR < 4
#include "libtestdriver1/library/psa_crypto_hash.h"
#else
#include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_hash.h" #include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_hash.h"
#endif #endif
#endif
mbedtls_test_driver_hash_hooks_t mbedtls_test_driver_hash_hooks_t
mbedtls_test_driver_hash_hooks = MBEDTLS_TEST_DRIVER_HASH_INIT; mbedtls_test_driver_hash_hooks = MBEDTLS_TEST_DRIVER_HASH_INIT;

View File

@ -16,8 +16,12 @@
#include "mbedtls/constant_time.h" #include "mbedtls/constant_time.h"
#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) #if defined(MBEDTLS_TEST_LIBTESTDRIVER1)
#if MBEDTLS_VERSION_MAJOR < 4
#include "libtestdriver1/library/psa_crypto_aead.h"
#else
#include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_aead.h" #include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_aead.h"
#endif #endif
#endif
mbedtls_test_driver_aead_hooks_t mbedtls_test_driver_aead_hooks_t
mbedtls_test_driver_aead_hooks = MBEDTLS_TEST_DRIVER_AEAD_INIT; mbedtls_test_driver_aead_hooks = MBEDTLS_TEST_DRIVER_AEAD_INIT;

View File

@ -16,8 +16,12 @@
#include "test/drivers/key_management.h" #include "test/drivers/key_management.h"
#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) #if defined(MBEDTLS_TEST_LIBTESTDRIVER1)
#if MBEDTLS_VERSION_MAJOR < 4
#include "libtestdriver1/library/psa_crypto_rsa.h"
#else
#include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_rsa.h" #include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_rsa.h"
#endif #endif
#endif
#define PSA_RSA_KEY_PAIR_MAX_SIZE \ #define PSA_RSA_KEY_PAIR_MAX_SIZE \
PSA_KEY_EXPORT_RSA_KEY_PAIR_MAX_SIZE(PSA_VENDOR_RSA_MAX_KEY_BITS) PSA_KEY_EXPORT_RSA_KEY_PAIR_MAX_SIZE(PSA_VENDOR_RSA_MAX_KEY_BITS)

View File

@ -19,8 +19,12 @@
#include "test/random.h" #include "test/random.h"
#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) #if defined(MBEDTLS_TEST_LIBTESTDRIVER1)
#if MBEDTLS_VERSION_MAJOR < 4
#include "libtestdriver1/library/psa_crypto_cipher.h"
#else
#include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_cipher.h" #include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_cipher.h"
#endif #endif
#endif
#include <string.h> #include <string.h>

View File

@ -20,10 +20,16 @@
#include <string.h> #include <string.h>
#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) #if defined(MBEDTLS_TEST_LIBTESTDRIVER1)
#if MBEDTLS_VERSION_MAJOR < 4
#include "libtestdriver1/include/psa/crypto.h"
#include "libtestdriver1/library/psa_crypto_ecp.h"
#include "libtestdriver1/library/psa_crypto_ffdh.h"
#else
#include "libtestdriver1/tf-psa-crypto/include/psa/crypto.h" #include "libtestdriver1/tf-psa-crypto/include/psa/crypto.h"
#include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_ecp.h" #include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_ecp.h"
#include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_ffdh.h" #include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_ffdh.h"
#endif #endif
#endif
mbedtls_test_driver_key_agreement_hooks_t mbedtls_test_driver_key_agreement_hooks_t
mbedtls_test_driver_key_agreement_hooks = MBEDTLS_TEST_DRIVER_KEY_AGREEMENT_INIT; mbedtls_test_driver_key_agreement_hooks = MBEDTLS_TEST_DRIVER_KEY_AGREEMENT_INIT;

View File

@ -23,10 +23,16 @@
#include "test/random.h" #include "test/random.h"
#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) #if defined(MBEDTLS_TEST_LIBTESTDRIVER1)
#if MBEDTLS_VERSION_MAJOR < 4
#include "libtestdriver1/library/psa_crypto_ecp.h"
#include "libtestdriver1/library/psa_crypto_rsa.h"
#include "libtestdriver1/library/psa_crypto_ffdh.h"
#else
#include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_ecp.h" #include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_ecp.h"
#include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_rsa.h" #include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_rsa.h"
#include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_ffdh.h" #include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_ffdh.h"
#endif #endif
#endif
#include <string.h> #include <string.h>

View File

@ -13,8 +13,12 @@
#include "test/drivers/mac.h" #include "test/drivers/mac.h"
#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) #if defined(MBEDTLS_TEST_LIBTESTDRIVER1)
#if MBEDTLS_VERSION_MAJOR < 4
#include "libtestdriver1/library/psa_crypto_mac.h"
#else
#include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_mac.h" #include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_mac.h"
#endif #endif
#endif
mbedtls_test_driver_mac_hooks_t mbedtls_test_driver_mac_hooks = mbedtls_test_driver_mac_hooks_t mbedtls_test_driver_mac_hooks =
MBEDTLS_TEST_DRIVER_MAC_INIT; MBEDTLS_TEST_DRIVER_MAC_INIT;

View File

@ -14,8 +14,12 @@
#include "string.h" #include "string.h"
#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) #if defined(MBEDTLS_TEST_LIBTESTDRIVER1)
#if MBEDTLS_VERSION_MAJOR < 4
#include "libtestdriver1/library/psa_crypto_pake.h"
#else
#include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_pake.h" #include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_pake.h"
#endif #endif
#endif
mbedtls_test_driver_pake_hooks_t mbedtls_test_driver_pake_hooks = mbedtls_test_driver_pake_hooks_t mbedtls_test_driver_pake_hooks =
MBEDTLS_TEST_DRIVER_PAKE_INIT; MBEDTLS_TEST_DRIVER_PAKE_INIT;

View File

@ -26,10 +26,16 @@
#include "test/random.h" #include "test/random.h"
#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) #if defined(MBEDTLS_TEST_LIBTESTDRIVER1)
#if MBEDTLS_VERSION_MAJOR < 4
#include "libtestdriver1/library/psa_crypto_ecp.h"
#include "libtestdriver1/library/psa_crypto_hash.h"
#include "libtestdriver1/library/psa_crypto_rsa.h"
#else
#include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_ecp.h" #include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_ecp.h"
#include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_hash.h" #include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_hash.h"
#include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_rsa.h" #include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_rsa.h"
#endif #endif
#endif
#include <string.h> #include <string.h>

View File

@ -11,7 +11,8 @@
#include <test/macros.h> #include <test/macros.h>
#include <test/psa_exercise_key.h> #include <test/psa_exercise_key.h>
#if defined(MBEDTLS_PSA_CRYPTO_CLIENT) #if (MBEDTLS_VERSION_MAJOR < 4 && defined(MBEDTLS_PSA_CRYPTO_C)) || \
(MBEDTLS_VERSION_MAJOR >= 4 && defined(MBEDTLS_PSA_CRYPTO_CLIENT))
#include <mbedtls/asn1.h> #include <mbedtls/asn1.h>
#include <psa/crypto.h> #include <psa/crypto.h>
@ -1332,4 +1333,4 @@ exit:
} }
#endif /* MBEDTLS_PK_C */ #endif /* MBEDTLS_PK_C */
#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */ #endif /* MBEDTLS_PSA_CRYPTO_C || MBEDTLS_PSA_CRYPTO_CLIENT */