From 5a3c50e89049b4a5efbeceea49318182fac28456 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 4 Dec 2018 12:27:09 +0100 Subject: [PATCH] Don't use an enum in a bit-field This isn't standard C. GCC and Clang accept it but not every compiler (e.g. Armcc 5). --- library/psa_crypto.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 233a19edeb..7415a9a4fe 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -147,12 +147,10 @@ static int key_type_is_raw_bytes( psa_key_type_t type ) return( PSA_KEY_TYPE_IS_UNSTRUCTURED( type ) ); } -enum rng_state -{ - RNG_NOT_INITIALIZED = 0, - RNG_INITIALIZED, - RNG_SEEDED, -}; +/* Values for psa_global_data_t::rng_state */ +#define RNG_NOT_INITIALIZED 0 +#define RNG_INITIALIZED 1 +#define RNG_SEEDED 2 typedef struct { @@ -162,7 +160,7 @@ typedef struct mbedtls_ctr_drbg_context ctr_drbg; key_slot_t key_slots[PSA_KEY_SLOT_COUNT]; unsigned initialized : 1; - enum rng_state rng_state : 2; + unsigned rng_state : 2; unsigned key_slots_initialized : 1; } psa_global_data_t;