Skip to content

Commit add839c

Browse files
committed
[NUC472/M487] Refine code in SHA alter.
1 parent b443a23 commit add839c

File tree

4 files changed

+51
-52
lines changed

4 files changed

+51
-52
lines changed

features/mbedtls/targets/TARGET_NUVOTON/TARGET_M480/sha/sha_alt_hw.c

Lines changed: 32 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ void mbedtls_sha1_hw_init(crypto_sha_context *ctx)
4242
{
4343
/* Init crypto module */
4444
crypto_init();
45-
memset(ctx, 0, sizeof(crypto_sha_context));
45+
memset(ctx, 0, sizeof(*ctx));
4646
}
4747

4848
void mbedtls_sha1_hw_free(crypto_sha_context *ctx)
@@ -55,7 +55,7 @@ void mbedtls_sha1_hw_free(crypto_sha_context *ctx)
5555

5656
/* Uninit crypto module */
5757
crypto_uninit();
58-
crypto_zeroize(ctx, sizeof(crypto_sha_context));
58+
crypto_zeroize(ctx, sizeof(*ctx));
5959
}
6060

6161
void mbedtls_sha1_hw_clone(crypto_sha_context *dst,
@@ -121,7 +121,7 @@ void mbedtls_sha256_hw_init(crypto_sha_context *ctx)
121121
{
122122
/* Init crypto module */
123123
crypto_init();
124-
memset(ctx, 0, sizeof(crypto_sha_context));
124+
memset(ctx, 0, sizeof(*ctx));
125125
}
126126

127127
void mbedtls_sha256_hw_free(crypto_sha_context *ctx)
@@ -134,7 +134,7 @@ void mbedtls_sha256_hw_free(crypto_sha_context *ctx)
134134

135135
/* Uninit crypto module */
136136
crypto_uninit();
137-
crypto_zeroize(ctx, sizeof(crypto_sha_context));
137+
crypto_zeroize(ctx, sizeof(*ctx));
138138
}
139139

140140
void mbedtls_sha256_hw_clone(crypto_sha_context *dst,
@@ -202,7 +202,7 @@ void mbedtls_sha512_hw_init(crypto_sha_context *ctx)
202202
{
203203
/* Init crypto module */
204204
crypto_init();
205-
memset(ctx, 0, sizeof(crypto_sha_context));
205+
memset(ctx, 0, sizeof(*ctx));
206206
}
207207

208208
void mbedtls_sha512_hw_free(crypto_sha_context *ctx)
@@ -215,7 +215,7 @@ void mbedtls_sha512_hw_free(crypto_sha_context *ctx)
215215

216216
/* Uninit crypto module */
217217
crypto_uninit();
218-
crypto_zeroize(ctx, sizeof(crypto_sha_context));
218+
crypto_zeroize(ctx, sizeof(*ctx));
219219
}
220220

221221
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
322322
int rmn = ilen;
323323
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;
324324
uint32_t sha_opmode = (CRPT->HMAC_CTL & CRPT_HMAC_CTL_OPMODE_Msk) >> CRPT_HMAC_CTL_OPMODE_Pos;
325-
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,
326-
DGST8_old = 0, DGST9_old = 0, DGST10_old = 0, DGST11_old = 0, DGST12_old = 0, DGST13_old = 0, DGST14_old = 0, DGST15_old = 0;
327-
325+
uint32_t DGSTs[16] = { 0 };
326+
328327
while (rmn > 0) {
329328
CRPT->HMAC_CTL = sha_ctl_start;
330329

@@ -340,26 +339,26 @@ void crypto_sha_update_nobuf(crypto_sha_context *ctx, const unsigned char *input
340339
} else {
341340
switch (sha_opmode) {
342341
case SHA_MODE_SHA512:
343-
DGST15_old = CRPT->HMAC_DGST[15];
344-
DGST14_old = CRPT->HMAC_DGST[14];
345-
DGST13_old = CRPT->HMAC_DGST[13];
346-
DGST12_old = CRPT->HMAC_DGST[12];
342+
DGSTs[12] = CRPT->HMAC_DGST[12];
343+
DGSTs[13] = CRPT->HMAC_DGST[13];
344+
DGSTs[14] = CRPT->HMAC_DGST[14];
345+
DGSTs[15] = CRPT->HMAC_DGST[15];
347346
case SHA_MODE_SHA384:
348-
DGST11_old = CRPT->HMAC_DGST[11];
349-
DGST10_old = CRPT->HMAC_DGST[10];
350-
DGST9_old = CRPT->HMAC_DGST[9];
351-
DGST8_old = CRPT->HMAC_DGST[8];
347+
DGSTs[8] = CRPT->HMAC_DGST[8];
348+
DGSTs[9] = CRPT->HMAC_DGST[9];
349+
DGSTs[10] = CRPT->HMAC_DGST[10];
350+
DGSTs[11] = CRPT->HMAC_DGST[11];
352351
case SHA_MODE_SHA256:
353-
DGST7_old = CRPT->HMAC_DGST[7];
352+
DGSTs[7] = CRPT->HMAC_DGST[7];
354353
case SHA_MODE_SHA224:
355-
DGST5_old = CRPT->HMAC_DGST[5];
356-
DGST6_old = CRPT->HMAC_DGST[6];
354+
DGSTs[5] = CRPT->HMAC_DGST[5];
355+
DGSTs[6] = CRPT->HMAC_DGST[6];
357356
case SHA_MODE_SHA1:
358-
DGST0_old = CRPT->HMAC_DGST[0];
359-
DGST1_old = CRPT->HMAC_DGST[1];
360-
DGST2_old = CRPT->HMAC_DGST[2];
361-
DGST3_old = CRPT->HMAC_DGST[3];
362-
DGST4_old = CRPT->HMAC_DGST[4];
357+
DGSTs[0] = CRPT->HMAC_DGST[0];
358+
DGSTs[1] = CRPT->HMAC_DGST[1];
359+
DGSTs[2] = CRPT->HMAC_DGST[2];
360+
DGSTs[3] = CRPT->HMAC_DGST[3];
361+
DGSTs[4] = CRPT->HMAC_DGST[4];
363362
}
364363

365364
CRPT->HMAC_CTL = sha_ctl_start;
@@ -383,30 +382,30 @@ void crypto_sha_update_nobuf(crypto_sha_context *ctx, const unsigned char *input
383382
while (! isfinish) {
384383
switch (sha_opmode) {
385384
case SHA_MODE_SHA512:
386-
if (DGST12_old != CRPT->HMAC_DGST[12] || DGST13_old != CRPT->HMAC_DGST[13] || DGST14_old != CRPT->HMAC_DGST[14] ||
387-
DGST15_old != CRPT->HMAC_DGST[15]) {
385+
if (DGSTs[12] != CRPT->HMAC_DGST[12] || DGSTs[13] != CRPT->HMAC_DGST[13] || DGSTs[14] != CRPT->HMAC_DGST[14] ||
386+
DGSTs[15] != CRPT->HMAC_DGST[15]) {
388387
isfinish = 1;
389388
break;
390389
}
391390
case SHA_MODE_SHA384:
392-
if (DGST8_old != CRPT->HMAC_DGST[8] || DGST9_old != CRPT->HMAC_DGST[9] || DGST10_old != CRPT->HMAC_DGST[10] ||
393-
DGST11_old != CRPT->HMAC_DGST[11]) {
391+
if (DGSTs[8] != CRPT->HMAC_DGST[8] || DGSTs[9] != CRPT->HMAC_DGST[9] || DGSTs[10] != CRPT->HMAC_DGST[10] ||
392+
DGSTs[11] != CRPT->HMAC_DGST[11]) {
394393
isfinish = 1;
395394
break;
396395
}
397396
case SHA_MODE_SHA256:
398-
if (DGST7_old != CRPT->HMAC_DGST[7]) {
397+
if (DGSTs[7] != CRPT->HMAC_DGST[7]) {
399398
isfinish = 1;
400399
break;
401400
}
402401
case SHA_MODE_SHA224:
403-
if (DGST5_old != CRPT->HMAC_DGST[5] || DGST6_old != CRPT->HMAC_DGST[6]) {
402+
if (DGSTs[5] != CRPT->HMAC_DGST[5] || DGSTs[6] != CRPT->HMAC_DGST[6]) {
404403
isfinish = 1;
405404
break;
406405
}
407406
case SHA_MODE_SHA1:
408-
if (DGST0_old != CRPT->HMAC_DGST[0] || DGST1_old != CRPT->HMAC_DGST[1] || DGST2_old != CRPT->HMAC_DGST[2] ||
409-
DGST3_old != CRPT->HMAC_DGST[3] || DGST4_old != CRPT->HMAC_DGST[4]) {
407+
if (DGSTs[0] != CRPT->HMAC_DGST[0] || DGSTs[1] != CRPT->HMAC_DGST[1] || DGSTs[2] != CRPT->HMAC_DGST[2] ||
408+
DGSTs[3] != CRPT->HMAC_DGST[3] || DGSTs[4] != CRPT->HMAC_DGST[4]) {
410409
isfinish = 1;
411410
break;
412411
}

features/mbedtls/targets/TARGET_NUVOTON/TARGET_M480/sha/sha_alt_hw.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ extern "C" {
3030
*/
3131
typedef struct {
3232
uint32_t total; /*!< number of bytes processed */
33-
unsigned char buffer[128]; /*!< data block being processed. Max of SHA-1/SHA-256/SHA-512 */
33+
uint8_t buffer[128]; /*!< data block being processed. Max of SHA-1/SHA-256/SHA-512 */
3434
uint16_t buffer_left;
3535
uint16_t blocksize; /*!< block size */
3636
uint32_t blocksize_mask; /*!< block size mask */

features/mbedtls/targets/TARGET_NUVOTON/TARGET_NUC472/sha/sha_alt_hw.c

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ void mbedtls_sha1_hw_init(crypto_sha_context *ctx)
4242
{
4343
/* Init crypto module */
4444
crypto_init();
45-
memset(ctx, 0, sizeof(crypto_sha_context));
45+
memset(ctx, 0, sizeof(*ctx));
4646
}
4747

4848
void mbedtls_sha1_hw_free(crypto_sha_context *ctx)
@@ -55,7 +55,7 @@ void mbedtls_sha1_hw_free(crypto_sha_context *ctx)
5555

5656
/* Uninit crypto module */
5757
crypto_uninit();
58-
crypto_zeroize(ctx, sizeof(crypto_sha_context));
58+
crypto_zeroize(ctx, sizeof(*ctx));
5959
}
6060

6161
void mbedtls_sha1_hw_clone(crypto_sha_context *dst,
@@ -121,7 +121,7 @@ void mbedtls_sha256_hw_init(crypto_sha_context *ctx)
121121
{
122122
/* Init crypto module */
123123
crypto_init();
124-
memset(ctx, 0, sizeof(crypto_sha_context));
124+
memset(ctx, 0, sizeof(*ctx));
125125
}
126126

127127
void mbedtls_sha256_hw_free(crypto_sha_context *ctx)
@@ -134,7 +134,7 @@ void mbedtls_sha256_hw_free(crypto_sha_context *ctx)
134134

135135
/* Uninit crypto module */
136136
crypto_uninit();
137-
crypto_zeroize(ctx, sizeof(crypto_sha_context));
137+
crypto_zeroize(ctx, sizeof(*ctx));
138138
}
139139

140140
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
241241
int rmn = ilen;
242242
uint32_t sha_ctl_start = (CRPT->SHA_CTL & ~(CRPT_SHA_CTL_DMALAST_Msk | CRPT_SHA_CTL_DMAEN_Msk)) | CRPT_SHA_CTL_START_Msk;
243243
uint32_t sha_opmode = (CRPT->SHA_CTL & CRPT_SHA_CTL_OPMODE_Msk) >> CRPT_SHA_CTL_OPMODE_Pos;
244-
uint32_t DGST0_old, DGST1_old, DGST2_old, DGST3_old, DGST4_old, DGST5_old, DGST6_old, DGST7_old;
244+
uint32_t DGSTs[8] = { 0 };
245245

246246
while (rmn > 0) {
247247
CRPT->SHA_CTL = sha_ctl_start;
@@ -258,16 +258,16 @@ void crypto_sha_update_nobuf(crypto_sha_context *ctx, const unsigned char *input
258258
} else {
259259
switch (sha_opmode) {
260260
case SHA_MODE_SHA256:
261-
DGST7_old = CRPT->SHA_DGST7;
261+
DGSTs[7] = CRPT->SHA_DGST7;
262262
case SHA_MODE_SHA224:
263-
DGST5_old = CRPT->SHA_DGST5;
264-
DGST6_old = CRPT->SHA_DGST6;
263+
DGSTs[5] = CRPT->SHA_DGST5;
264+
DGSTs[6] = CRPT->SHA_DGST6;
265265
case SHA_MODE_SHA1:
266-
DGST0_old = CRPT->SHA_DGST0;
267-
DGST1_old = CRPT->SHA_DGST1;
268-
DGST2_old = CRPT->SHA_DGST2;
269-
DGST3_old = CRPT->SHA_DGST3;
270-
DGST4_old = CRPT->SHA_DGST4;
266+
DGSTs[0] = CRPT->SHA_DGST0;
267+
DGSTs[1] = CRPT->SHA_DGST1;
268+
DGSTs[2] = CRPT->SHA_DGST2;
269+
DGSTs[3] = CRPT->SHA_DGST3;
270+
DGSTs[4] = CRPT->SHA_DGST4;
271271
}
272272

273273
CRPT->SHA_CTL = sha_ctl_start;
@@ -291,18 +291,18 @@ void crypto_sha_update_nobuf(crypto_sha_context *ctx, const unsigned char *input
291291
while (! isfinish) {
292292
switch (sha_opmode) {
293293
case SHA_MODE_SHA256:
294-
if (DGST7_old != CRPT->SHA_DGST7) {
294+
if (DGSTs[7] != CRPT->SHA_DGST7) {
295295
isfinish = 1;
296296
break;
297297
}
298298
case SHA_MODE_SHA224:
299-
if (DGST5_old != CRPT->SHA_DGST5 || DGST6_old != CRPT->SHA_DGST6) {
299+
if (DGSTs[5] != CRPT->SHA_DGST5 || DGSTs[6] != CRPT->SHA_DGST6) {
300300
isfinish = 1;
301301
break;
302302
}
303303
case SHA_MODE_SHA1:
304-
if (DGST0_old != CRPT->SHA_DGST0 || DGST1_old != CRPT->SHA_DGST1 || DGST2_old != CRPT->SHA_DGST2 ||
305-
DGST3_old != CRPT->SHA_DGST3 || DGST4_old != CRPT->SHA_DGST4) {
304+
if (DGSTs[0] != CRPT->SHA_DGST0 || DGSTs[1] != CRPT->SHA_DGST1 || DGSTs[2] != CRPT->SHA_DGST2 ||
305+
DGSTs[3] != CRPT->SHA_DGST3 || DGSTs[4] != CRPT->SHA_DGST4) {
306306
isfinish = 1;
307307
break;
308308
}

features/mbedtls/targets/TARGET_NUVOTON/TARGET_NUC472/sha/sha_alt_hw.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ extern "C" {
3030
*/
3131
typedef struct {
3232
uint32_t total; /*!< number of bytes processed */
33-
unsigned char buffer[128]; /*!< data block being processed. Max of SHA-1/SHA-256/SHA-512 */
33+
uint8_t buffer[128]; /*!< data block being processed. Max of SHA-1/SHA-256/SHA-512 */
3434
uint16_t buffer_left;
3535
uint16_t blocksize; /*!< block size */
3636
uint32_t blocksize_mask; /*!< block size mask */

0 commit comments

Comments
 (0)