From 09c02ee95fbbebf4075a0e6798ceff8335056b75 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 25 Nov 2021 20:30:47 +0100 Subject: [PATCH] Make PSA headers more self-contained Several files among include/psa/crypto_*.h are not meant to be included directly, and are not guaranteed to be valid if included directly. This makes it harder to perform some static analyses. So make these files more self-contained so that at least, if included on their own, there is no missing macro or type definition (excluding the deliberate use of forward declarations of structs and unions). Signed-off-by: Gilles Peskine --- include/psa/crypto_driver_common.h | 3 +++ include/psa/crypto_extra.h | 1 + include/psa/crypto_struct.h | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/include/psa/crypto_driver_common.h b/include/psa/crypto_driver_common.h index 1b6f32256..26363c6b2 100644 --- a/include/psa/crypto_driver_common.h +++ b/include/psa/crypto_driver_common.h @@ -42,6 +42,9 @@ * of these types. */ #include "crypto_types.h" #include "crypto_values.h" +/* Include size definitions which are used to size some arrays in operation + * structures. */ +#include /** For encrypt-decrypt functions, whether the operation is an encryption * or a decryption. */ diff --git a/include/psa/crypto_extra.h b/include/psa/crypto_extra.h index 2c0b1067c..1f68925ff 100644 --- a/include/psa/crypto_extra.h +++ b/include/psa/crypto_extra.h @@ -31,6 +31,7 @@ #include "mbedtls/platform_util.h" +#include "crypto_types.h" #include "crypto_compat.h" #ifdef __cplusplus diff --git a/include/psa/crypto_struct.h b/include/psa/crypto_struct.h index 26894156c..9b696ca32 100644 --- a/include/psa/crypto_struct.h +++ b/include/psa/crypto_struct.h @@ -186,7 +186,7 @@ typedef struct { uint8_t *MBEDTLS_PRIVATE(info); size_t MBEDTLS_PRIVATE(info_length); - psa_mac_operation_t MBEDTLS_PRIVATE(hmac); + struct psa_mac_operation_s MBEDTLS_PRIVATE(hmac); uint8_t MBEDTLS_PRIVATE(prk)[PSA_HASH_MAX_SIZE]; uint8_t MBEDTLS_PRIVATE(output_block)[PSA_HASH_MAX_SIZE]; #if PSA_HASH_MAX_SIZE > 0xff