From e07ab46f325878f51a788a15529b8d529c4a23b9 Mon Sep 17 00:00:00 2001 From: Steven Cooreman Date: Wed, 2 Aug 2017 16:03:29 +0200 Subject: [PATCH] Apply feedback from @RonEld * Use _C flags at compile time in SHA to avoid compiling in unconfigured features * Don't define ECP_SHORTWEIERSTRASS since it is part of the application's configuration --- .../targets/TARGET_Silicon_Labs/crypto_sha.c | 16 ++++++++++++++-- .../targets/TARGET_Silicon_Labs/mbedtls_device.h | 1 - 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/features/mbedtls/targets/TARGET_Silicon_Labs/crypto_sha.c b/features/mbedtls/targets/TARGET_Silicon_Labs/crypto_sha.c index 765b264421..429bec25b5 100644 --- a/features/mbedtls/targets/TARGET_Silicon_Labs/crypto_sha.c +++ b/features/mbedtls/targets/TARGET_Silicon_Labs/crypto_sha.c @@ -40,7 +40,7 @@ #include "mbedtls/sha1.h" #include "mbedtls/sha256.h" -#if defined(MBEDTLS_SHA256_ALT) || defined(MBEDTLS_SHA1_ALT) +#if ( defined(MBEDTLS_SHA256_ALT) && defined(MBEDTLS_SHA256_C) ) || ( defined(MBEDTLS_SHA1_ALT) && defined (MBEDTLS_SHA1_C) ) #include "em_device.h" @@ -51,6 +51,7 @@ #include "em_assert.h" #include +#if defined(MBEDTLS_SHA1_C) static const uint32_t init_state_sha1[8] = { 0x67452301UL, @@ -62,7 +63,9 @@ static const uint32_t init_state_sha1[8] = 0x0UL, 0x0UL }; +#endif /* defined(MBEDTLS_SHA1_C) */ +#if defined(MBEDTLS_SHA256_C) static const uint32_t init_state_sha256[8] = { 0x6A09E667UL, @@ -86,6 +89,7 @@ static const uint32_t init_state_sha224[8] = 0x64F98FA7UL, 0xBEFA4FA4UL }; +#endif /* defined(MBEDTLS_SHA256_C) */ static const unsigned char sha_padding[64] = { @@ -96,8 +100,12 @@ static const unsigned char sha_padding[64] = }; typedef enum { +#if defined(MBEDTLS_SHA1_C) CRYPTO_SHA1, +#endif /* defined(MBEDTLS_SHA1_C) */ +#if defined(MBEDTLS_SHA256_C) CRYPTO_SHA2 +#endif /* defined(MBEDTLS_SHA256_C) */ } crypto_sha_mode_t; /* @@ -131,12 +139,16 @@ static void crypto_sha_update_state( uint32_t state[8], CRYPTO_TypeDef *crypto = crypto_management_acquire(); switch ( mode ) { +#if defined(MBEDTLS_SHA1_C) case CRYPTO_SHA1: crypto->CTRL = CRYPTO_CTRL_SHA_SHA1; break; +#endif /* defined(MBEDTLS_SHA1_C) */ +#if defined(MBEDTLS_SHA256_C) case CRYPTO_SHA2: crypto->CTRL = CRYPTO_CTRL_SHA_SHA2; break; +#endif /* defined(MBEDTLS_SHA256_C) */ } crypto->WAC = 0; @@ -446,4 +458,4 @@ void mbedtls_sha1_process( mbedtls_sha1_context *ctx, #endif /* #if defined(CRYPTO_PRESENT) */ -#endif /* #if defined(MBEDTLS_SHA256_ALT) || defined(MBEDTLS_SHA1_ALT) */ +#endif /* #if ( defined(MBEDTLS_SHA256_ALT) && defined(MBEDTLS_SHA256_C) ) || ( defined(MBEDTLS_SHA1_ALT) && defined (MBEDTLS_SHA1_C) ) */ diff --git a/features/mbedtls/targets/TARGET_Silicon_Labs/mbedtls_device.h b/features/mbedtls/targets/TARGET_Silicon_Labs/mbedtls_device.h index 1646498a8a..d76aba13c6 100644 --- a/features/mbedtls/targets/TARGET_Silicon_Labs/mbedtls_device.h +++ b/features/mbedtls/targets/TARGET_Silicon_Labs/mbedtls_device.h @@ -29,7 +29,6 @@ #define MBEDTLS_AES_ALT #define MBEDTLS_ECP_INTERNAL_ALT -#define ECP_SHORTWEIERSTRASS #define MBEDTLS_ECP_ADD_MIXED_ALT #define MBEDTLS_ECP_DOUBLE_JAC_ALT #define MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT