mirror of https://github.com/ARMmbed/mbed-os.git
[NUC472/M487] Refine code in SHA alter.
parent
b443a23b07
commit
add839c808
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue