From 9501bd7d6e3e796b79ba154f56680b13ef8bfe29 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 1310bb576..3ee0482cb 100644 --- a/include/psa/crypto_extra.h +++ b/include/psa/crypto_extra.h @@ -30,6 +30,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 f08fdc8bd..23a02a5d8 100644 --- a/include/psa/crypto_struct.h +++ b/include/psa/crypto_struct.h @@ -184,7 +184,7 @@ typedef struct unsigned int info_set : 1; uint8_t output_block[PSA_HASH_MAX_SIZE]; uint8_t prk[PSA_HASH_MAX_SIZE]; - psa_mac_operation_t hmac; + struct psa_mac_operation_s hmac; } psa_hkdf_key_derivation_t; #endif /* MBEDTLS_PSA_BUILTIN_ALG_HKDF */