diff --git a/features/mbedtls/targets/TARGET_NUVOTON/TARGET_M480/sha/sha_alt_hw.c b/features/mbedtls/targets/TARGET_NUVOTON/TARGET_M480/sha/sha_alt_hw.c index 81d16bfdd7..c9d462d091 100644 --- a/features/mbedtls/targets/TARGET_NUVOTON/TARGET_M480/sha/sha_alt_hw.c +++ b/features/mbedtls/targets/TARGET_NUVOTON/TARGET_M480/sha/sha_alt_hw.c @@ -42,7 +42,7 @@ void mbedtls_sha1_hw_init(crypto_sha_context *ctx) { /* Init crypto module */ crypto_init(); - memset(ctx, 0, sizeof(crypto_sha_context)); + memset(ctx, 0, sizeof(*ctx)); } void mbedtls_sha1_hw_free(crypto_sha_context *ctx) @@ -55,7 +55,7 @@ void mbedtls_sha1_hw_free(crypto_sha_context *ctx) /* Uninit crypto module */ crypto_uninit(); - crypto_zeroize(ctx, sizeof(crypto_sha_context)); + crypto_zeroize(ctx, sizeof(*ctx)); } void mbedtls_sha1_hw_clone(crypto_sha_context *dst, @@ -121,7 +121,7 @@ void mbedtls_sha256_hw_init(crypto_sha_context *ctx) { /* Init crypto module */ crypto_init(); - memset(ctx, 0, sizeof(crypto_sha_context)); + memset(ctx, 0, sizeof(*ctx)); } void mbedtls_sha256_hw_free(crypto_sha_context *ctx) @@ -134,7 +134,7 @@ void mbedtls_sha256_hw_free(crypto_sha_context *ctx) /* Uninit crypto module */ crypto_uninit(); - crypto_zeroize(ctx, sizeof(crypto_sha_context)); + crypto_zeroize(ctx, sizeof(*ctx)); } void mbedtls_sha256_hw_clone(crypto_sha_context *dst, @@ -202,7 +202,7 @@ void mbedtls_sha512_hw_init(crypto_sha_context *ctx) { /* Init crypto module */ crypto_init(); - memset(ctx, 0, sizeof(crypto_sha_context)); + memset(ctx, 0, sizeof(*ctx)); } void mbedtls_sha512_hw_free(crypto_sha_context *ctx) @@ -215,7 +215,7 @@ void mbedtls_sha512_hw_free(crypto_sha_context *ctx) /* Uninit crypto module */ crypto_uninit(); - crypto_zeroize(ctx, sizeof(crypto_sha_context)); + crypto_zeroize(ctx, sizeof(*ctx)); } void mbedtls_sha512_hw_clone(crypto_sha_context *dst, @@ -322,9 +322,8 @@ void crypto_sha_update_nobuf(crypto_sha_context *ctx, const unsigned char *input int rmn = ilen; uint32_t sha_ctl_start = (CRPT->HMAC_CTL & ~(CRPT_HMAC_CTL_DMALAST_Msk | CRPT_HMAC_CTL_DMAEN_Msk | CRPT_HMAC_CTL_HMACEN_Msk)) | CRPT_HMAC_CTL_START_Msk; uint32_t sha_opmode = (CRPT->HMAC_CTL & CRPT_HMAC_CTL_OPMODE_Msk) >> CRPT_HMAC_CTL_OPMODE_Pos; - uint32_t DGST0_old = 0, DGST1_old = 0, DGST2_old = 0, DGST3_old = 0, DGST4_old = 0, DGST5_old = 0, DGST6_old = 0, DGST7_old = 0, - DGST8_old = 0, DGST9_old = 0, DGST10_old = 0, DGST11_old = 0, DGST12_old = 0, DGST13_old = 0, DGST14_old = 0, DGST15_old = 0; - + uint32_t DGSTs[16] = { 0 }; + while (rmn > 0) { CRPT->HMAC_CTL = sha_ctl_start; @@ -340,26 +339,26 @@ void crypto_sha_update_nobuf(crypto_sha_context *ctx, const unsigned char *input } else { switch (sha_opmode) { case SHA_MODE_SHA512: - DGST15_old = CRPT->HMAC_DGST[15]; - DGST14_old = CRPT->HMAC_DGST[14]; - DGST13_old = CRPT->HMAC_DGST[13]; - DGST12_old = CRPT->HMAC_DGST[12]; + DGSTs[12] = CRPT->HMAC_DGST[12]; + DGSTs[13] = CRPT->HMAC_DGST[13]; + DGSTs[14] = CRPT->HMAC_DGST[14]; + DGSTs[15] = CRPT->HMAC_DGST[15]; case SHA_MODE_SHA384: - DGST11_old = CRPT->HMAC_DGST[11]; - DGST10_old = CRPT->HMAC_DGST[10]; - DGST9_old = CRPT->HMAC_DGST[9]; - DGST8_old = CRPT->HMAC_DGST[8]; + DGSTs[8] = CRPT->HMAC_DGST[8]; + DGSTs[9] = CRPT->HMAC_DGST[9]; + DGSTs[10] = CRPT->HMAC_DGST[10]; + DGSTs[11] = CRPT->HMAC_DGST[11]; case SHA_MODE_SHA256: - DGST7_old = CRPT->HMAC_DGST[7]; + DGSTs[7] = CRPT->HMAC_DGST[7]; case SHA_MODE_SHA224: - DGST5_old = CRPT->HMAC_DGST[5]; - DGST6_old = CRPT->HMAC_DGST[6]; + DGSTs[5] = CRPT->HMAC_DGST[5]; + DGSTs[6] = CRPT->HMAC_DGST[6]; case SHA_MODE_SHA1: - DGST0_old = CRPT->HMAC_DGST[0]; - DGST1_old = CRPT->HMAC_DGST[1]; - DGST2_old = CRPT->HMAC_DGST[2]; - DGST3_old = CRPT->HMAC_DGST[3]; - DGST4_old = CRPT->HMAC_DGST[4]; + DGSTs[0] = CRPT->HMAC_DGST[0]; + DGSTs[1] = CRPT->HMAC_DGST[1]; + DGSTs[2] = CRPT->HMAC_DGST[2]; + DGSTs[3] = CRPT->HMAC_DGST[3]; + DGSTs[4] = CRPT->HMAC_DGST[4]; } CRPT->HMAC_CTL = sha_ctl_start; @@ -383,30 +382,30 @@ void crypto_sha_update_nobuf(crypto_sha_context *ctx, const unsigned char *input while (! isfinish) { switch (sha_opmode) { case SHA_MODE_SHA512: - if (DGST12_old != CRPT->HMAC_DGST[12] || DGST13_old != CRPT->HMAC_DGST[13] || DGST14_old != CRPT->HMAC_DGST[14] || - DGST15_old != CRPT->HMAC_DGST[15]) { + if (DGSTs[12] != CRPT->HMAC_DGST[12] || DGSTs[13] != CRPT->HMAC_DGST[13] || DGSTs[14] != CRPT->HMAC_DGST[14] || + DGSTs[15] != CRPT->HMAC_DGST[15]) { isfinish = 1; break; } case SHA_MODE_SHA384: - if (DGST8_old != CRPT->HMAC_DGST[8] || DGST9_old != CRPT->HMAC_DGST[9] || DGST10_old != CRPT->HMAC_DGST[10] || - DGST11_old != CRPT->HMAC_DGST[11]) { + if (DGSTs[8] != CRPT->HMAC_DGST[8] || DGSTs[9] != CRPT->HMAC_DGST[9] || DGSTs[10] != CRPT->HMAC_DGST[10] || + DGSTs[11] != CRPT->HMAC_DGST[11]) { isfinish = 1; break; } case SHA_MODE_SHA256: - if (DGST7_old != CRPT->HMAC_DGST[7]) { + if (DGSTs[7] != CRPT->HMAC_DGST[7]) { isfinish = 1; break; } case SHA_MODE_SHA224: - if (DGST5_old != CRPT->HMAC_DGST[5] || DGST6_old != CRPT->HMAC_DGST[6]) { + if (DGSTs[5] != CRPT->HMAC_DGST[5] || DGSTs[6] != CRPT->HMAC_DGST[6]) { isfinish = 1; break; } case SHA_MODE_SHA1: - if (DGST0_old != CRPT->HMAC_DGST[0] || DGST1_old != CRPT->HMAC_DGST[1] || DGST2_old != CRPT->HMAC_DGST[2] || - DGST3_old != CRPT->HMAC_DGST[3] || DGST4_old != CRPT->HMAC_DGST[4]) { + if (DGSTs[0] != CRPT->HMAC_DGST[0] || DGSTs[1] != CRPT->HMAC_DGST[1] || DGSTs[2] != CRPT->HMAC_DGST[2] || + DGSTs[3] != CRPT->HMAC_DGST[3] || DGSTs[4] != CRPT->HMAC_DGST[4]) { isfinish = 1; break; } diff --git a/features/mbedtls/targets/TARGET_NUVOTON/TARGET_M480/sha/sha_alt_hw.h b/features/mbedtls/targets/TARGET_NUVOTON/TARGET_M480/sha/sha_alt_hw.h index e8cad3b2de..a492609be3 100644 --- a/features/mbedtls/targets/TARGET_NUVOTON/TARGET_M480/sha/sha_alt_hw.h +++ b/features/mbedtls/targets/TARGET_NUVOTON/TARGET_M480/sha/sha_alt_hw.h @@ -30,7 +30,7 @@ extern "C" { */ typedef struct { uint32_t total; /*!< number of bytes processed */ - unsigned char buffer[128]; /*!< data block being processed. Max of SHA-1/SHA-256/SHA-512 */ + uint8_t buffer[128]; /*!< data block being processed. Max of SHA-1/SHA-256/SHA-512 */ uint16_t buffer_left; uint16_t blocksize; /*!< block size */ uint32_t blocksize_mask; /*!< block size mask */ diff --git a/features/mbedtls/targets/TARGET_NUVOTON/TARGET_NUC472/sha/sha_alt_hw.c b/features/mbedtls/targets/TARGET_NUVOTON/TARGET_NUC472/sha/sha_alt_hw.c index b09a9c34e5..e0b1860047 100644 --- a/features/mbedtls/targets/TARGET_NUVOTON/TARGET_NUC472/sha/sha_alt_hw.c +++ b/features/mbedtls/targets/TARGET_NUVOTON/TARGET_NUC472/sha/sha_alt_hw.c @@ -42,7 +42,7 @@ void mbedtls_sha1_hw_init(crypto_sha_context *ctx) { /* Init crypto module */ crypto_init(); - memset(ctx, 0, sizeof(crypto_sha_context)); + memset(ctx, 0, sizeof(*ctx)); } void mbedtls_sha1_hw_free(crypto_sha_context *ctx) @@ -55,7 +55,7 @@ void mbedtls_sha1_hw_free(crypto_sha_context *ctx) /* Uninit crypto module */ crypto_uninit(); - crypto_zeroize(ctx, sizeof(crypto_sha_context)); + crypto_zeroize(ctx, sizeof(*ctx)); } void mbedtls_sha1_hw_clone(crypto_sha_context *dst, @@ -121,7 +121,7 @@ void mbedtls_sha256_hw_init(crypto_sha_context *ctx) { /* Init crypto module */ crypto_init(); - memset(ctx, 0, sizeof(crypto_sha_context)); + memset(ctx, 0, sizeof(*ctx)); } void mbedtls_sha256_hw_free(crypto_sha_context *ctx) @@ -134,7 +134,7 @@ void mbedtls_sha256_hw_free(crypto_sha_context *ctx) /* Uninit crypto module */ crypto_uninit(); - crypto_zeroize(ctx, sizeof(crypto_sha_context)); + crypto_zeroize(ctx, sizeof(*ctx)); } void mbedtls_sha256_hw_clone(crypto_sha_context *dst, @@ -241,7 +241,7 @@ void crypto_sha_update_nobuf(crypto_sha_context *ctx, const unsigned char *input int rmn = ilen; uint32_t sha_ctl_start = (CRPT->SHA_CTL & ~(CRPT_SHA_CTL_DMALAST_Msk | CRPT_SHA_CTL_DMAEN_Msk)) | CRPT_SHA_CTL_START_Msk; uint32_t sha_opmode = (CRPT->SHA_CTL & CRPT_SHA_CTL_OPMODE_Msk) >> CRPT_SHA_CTL_OPMODE_Pos; - uint32_t DGST0_old, DGST1_old, DGST2_old, DGST3_old, DGST4_old, DGST5_old, DGST6_old, DGST7_old; + uint32_t DGSTs[8] = { 0 }; while (rmn > 0) { CRPT->SHA_CTL = sha_ctl_start; @@ -258,16 +258,16 @@ void crypto_sha_update_nobuf(crypto_sha_context *ctx, const unsigned char *input } else { switch (sha_opmode) { case SHA_MODE_SHA256: - DGST7_old = CRPT->SHA_DGST7; + DGSTs[7] = CRPT->SHA_DGST7; case SHA_MODE_SHA224: - DGST5_old = CRPT->SHA_DGST5; - DGST6_old = CRPT->SHA_DGST6; + DGSTs[5] = CRPT->SHA_DGST5; + DGSTs[6] = CRPT->SHA_DGST6; case SHA_MODE_SHA1: - DGST0_old = CRPT->SHA_DGST0; - DGST1_old = CRPT->SHA_DGST1; - DGST2_old = CRPT->SHA_DGST2; - DGST3_old = CRPT->SHA_DGST3; - DGST4_old = CRPT->SHA_DGST4; + DGSTs[0] = CRPT->SHA_DGST0; + DGSTs[1] = CRPT->SHA_DGST1; + DGSTs[2] = CRPT->SHA_DGST2; + DGSTs[3] = CRPT->SHA_DGST3; + DGSTs[4] = CRPT->SHA_DGST4; } CRPT->SHA_CTL = sha_ctl_start; @@ -291,18 +291,18 @@ void crypto_sha_update_nobuf(crypto_sha_context *ctx, const unsigned char *input while (! isfinish) { switch (sha_opmode) { case SHA_MODE_SHA256: - if (DGST7_old != CRPT->SHA_DGST7) { + if (DGSTs[7] != CRPT->SHA_DGST7) { isfinish = 1; break; } case SHA_MODE_SHA224: - if (DGST5_old != CRPT->SHA_DGST5 || DGST6_old != CRPT->SHA_DGST6) { + if (DGSTs[5] != CRPT->SHA_DGST5 || DGSTs[6] != CRPT->SHA_DGST6) { isfinish = 1; break; } case SHA_MODE_SHA1: - if (DGST0_old != CRPT->SHA_DGST0 || DGST1_old != CRPT->SHA_DGST1 || DGST2_old != CRPT->SHA_DGST2 || - DGST3_old != CRPT->SHA_DGST3 || DGST4_old != CRPT->SHA_DGST4) { + if (DGSTs[0] != CRPT->SHA_DGST0 || DGSTs[1] != CRPT->SHA_DGST1 || DGSTs[2] != CRPT->SHA_DGST2 || + DGSTs[3] != CRPT->SHA_DGST3 || DGSTs[4] != CRPT->SHA_DGST4) { isfinish = 1; break; } diff --git a/features/mbedtls/targets/TARGET_NUVOTON/TARGET_NUC472/sha/sha_alt_hw.h b/features/mbedtls/targets/TARGET_NUVOTON/TARGET_NUC472/sha/sha_alt_hw.h index c66632b9de..18caf697e0 100644 --- a/features/mbedtls/targets/TARGET_NUVOTON/TARGET_NUC472/sha/sha_alt_hw.h +++ b/features/mbedtls/targets/TARGET_NUVOTON/TARGET_NUC472/sha/sha_alt_hw.h @@ -30,7 +30,7 @@ extern "C" { */ typedef struct { uint32_t total; /*!< number of bytes processed */ - unsigned char buffer[128]; /*!< data block being processed. Max of SHA-1/SHA-256/SHA-512 */ + uint8_t buffer[128]; /*!< data block being processed. Max of SHA-1/SHA-256/SHA-512 */ uint16_t buffer_left; uint16_t blocksize; /*!< block size */ uint32_t blocksize_mask; /*!< block size mask */