diff --git a/features/mbedtls/targets/TARGET_Samsung/sha/sha256_alt.c b/features/mbedtls/targets/TARGET_Samsung/sha/sha256_alt.c index 49df7c2469..7483291951 100644 --- a/features/mbedtls/targets/TARGET_Samsung/sha/sha256_alt.c +++ b/features/mbedtls/targets/TARGET_Samsung/sha/sha256_alt.c @@ -76,7 +76,7 @@ int mbedtls_sha256_sw_update_ret(mbedtls_sha256_context *ctx, const unsigned cha void mbedtls_sha256_init(mbedtls_sha256_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_sha256_context ) ); + memset(ctx, 0, sizeof(mbedtls_sha256_context)); } void mbedtls_sha256_free(mbedtls_sha256_context *ctx) @@ -84,7 +84,7 @@ void mbedtls_sha256_free(mbedtls_sha256_context *ctx) if (ctx == NULL) { return; } - memset( ctx, 0, sizeof( mbedtls_sha256_context ) ); + memset(ctx, 0, sizeof(mbedtls_sha256_context)); } void mbedtls_sha256_clone(mbedtls_sha256_context *dst, @@ -95,10 +95,10 @@ void mbedtls_sha256_clone(mbedtls_sha256_context *dst, return; } - SHA256_VALIDATE( dst != NULL ); - SHA256_VALIDATE( src != NULL ); + SHA256_VALIDATE(dst != NULL); + SHA256_VALIDATE(src != NULL); - memcpy(dst, src, sizeof(mbedtls_sha256_context)); + memcpy(dst, src, sizeof(mbedtls_sha256_context)); } /* @@ -106,32 +106,29 @@ void mbedtls_sha256_clone(mbedtls_sha256_context *dst, */ int mbedtls_sha256_starts_ret(mbedtls_sha256_context *ctx, int is224) { - SHA256_VALIDATE_RET( ctx != NULL ); - SHA256_VALIDATE_RET( is224 == 0 || is224 == 1 ); + SHA256_VALIDATE_RET(ctx != NULL); + SHA256_VALIDATE_RET(is224 == 0 || is224 == 1); ctx->total[0] = 0; ctx->total[1] = 0; - if( is224 == 0 ) - { - ctx->is224 = 0; - memset( ctx, 0, sizeof( mbedtls_sha256_context ) ); - } - else - { + if (is224 == 0) { + ctx->is224 = 0; + memset(ctx, 0, sizeof(mbedtls_sha256_context)); + } else { /* SHA-224 */ ctx->state[0] = 0xC1059ED8; ctx->state[1] = 0x367CD507; ctx->state[2] = 0x3070DD17; ctx->state[3] = 0xF70E5939; - ctx->state[4] = 0xFFC00B31; - ctx->state[5] = 0x68581511; - ctx->state[6] = 0x64F98FA7; - ctx->state[7] = 0xBEFA4FA4; - ctx->is224 = is224; + ctx->state[4] = 0xFFC00B31; + ctx->state[5] = 0x68581511; + ctx->state[6] = 0x64F98FA7; + ctx->state[7] = 0xBEFA4FA4; + ctx->is224 = is224; } - // No any of H/W access, always return OK + // No any of H/W access, always return OK return 0; } @@ -140,36 +137,35 @@ int mbedtls_sha256_starts_ret(mbedtls_sha256_context *ctx, int is224) */ int mbedtls_sha256_update_ret(mbedtls_sha256_context *ctx, const unsigned char *input, size_t ilen) { - if(ctx->is224){ - mbedtls_sha256_sw_update_ret(ctx, input, ilen); - } - else { - if(ilen > MAX_MB_HASH_BLOCK_BLEN || ctx->totals > MAX_MB_HASH_BLOCK_BLEN) { - // H/W SHA has limitation to seperated API with oversized message. - // fall back to S/W SHA-256 - if(ctx->totals == 0) { - ctx->total[0] = 0; - ctx->total[1] = 0; - /* SHA-256 */ - ctx->state[0] = 0x6A09E667; - ctx->state[1] = 0xBB67AE85; - ctx->state[2] = 0x3C6EF372; - ctx->state[3] = 0xA54FF53A; - ctx->state[4] = 0x510E527F; - ctx->state[5] = 0x9B05688C; - ctx->state[6] = 0x1F83D9AB; - ctx->state[7] = 0x5BE0CD19; - } - ctx->totals += ilen; - mbedtls_sha256_sw_update_ret(ctx, input, ilen); - } else { - // SHA-256 handle by SSS H/W - memcpy(ctx->sbuf + ctx->pstMessage.u32DataByteLen, input, ilen); - ctx->pstMessage.u32DataByteLen += ilen; - } - } + if (ctx->is224) { + mbedtls_sha256_sw_update_ret(ctx, input, ilen); + } else { + if (ilen > MAX_MB_HASH_BLOCK_BLEN || ctx->totals > MAX_MB_HASH_BLOCK_BLEN) { + // H/W SHA has limitation to seperated API with oversized message. + // fall back to S/W SHA-256 + if (ctx->totals == 0) { + ctx->total[0] = 0; + ctx->total[1] = 0; + /* SHA-256 */ + ctx->state[0] = 0x6A09E667; + ctx->state[1] = 0xBB67AE85; + ctx->state[2] = 0x3C6EF372; + ctx->state[3] = 0xA54FF53A; + ctx->state[4] = 0x510E527F; + ctx->state[5] = 0x9B05688C; + ctx->state[6] = 0x1F83D9AB; + ctx->state[7] = 0x5BE0CD19; + } + ctx->totals += ilen; + mbedtls_sha256_sw_update_ret(ctx, input, ilen); + } else { + // SHA-256 handle by SSS H/W + memcpy(ctx->sbuf + ctx->pstMessage.u32DataByteLen, input, ilen); + ctx->pstMessage.u32DataByteLen += ilen; + } + } - // No any of H/W access, always return OK + // No any of H/W access, always return OK return 0; } @@ -178,57 +174,56 @@ int mbedtls_sha256_update_ret(mbedtls_sha256_context *ctx, const unsigned char * */ int mbedtls_sha256_finish_ret(mbedtls_sha256_context *ctx, unsigned char output[32]) { - if(ctx->is224 || ctx->totals > MAX_MB_HASH_BLOCK_BLEN) - mbedtls_sha256_sw_finish_ret(ctx, output); - else { - int ret = FAIL; - unsigned int object_id; - unsigned int block_byte_len; + if (ctx->is224 || ctx->totals > MAX_MB_HASH_BLOCK_BLEN) { + mbedtls_sha256_sw_finish_ret(ctx, output); + } else { + int ret = FAIL; + unsigned int object_id; + unsigned int block_byte_len; - ctx->pstDigest.pu08Data = output; /* assign output buffer */ + ctx->pstDigest.pu08Data = output; /* assign output buffer */ - stOCTET_STRING stHASH_Input; - //! step 0 : clear Mailbox - ret = mb_system_clear(CLEAR_TYPE_MAILBOX); + stOCTET_STRING stHASH_Input; + //! step 0 : clear Mailbox + ret = mb_system_clear(CLEAR_TYPE_MAILBOX); - if (ret != SSSR_SUCCESS) { - return ret; - } + if (ret != SSSR_SUCCESS) { + return ret; + } - //! assign hash_byte_len to compare returned result from sss_fw after hash operation - object_id = OID_SHA2_256; - block_byte_len = 64; + //! assign hash_byte_len to compare returned result from sss_fw after hash operation + object_id = OID_SHA2_256; + block_byte_len = 64; - //! step 1 : set message length parameter to SSS - ret = mb_hash_init(&ctx->pstMessage, object_id); + //! step 1 : set message length parameter to SSS + ret = mb_hash_init(&ctx->pstMessage, object_id); - if (ret != SSSR_SUCCESS) { - return ret; - } + if (ret != SSSR_SUCCESS) { + return ret; + } - //! step 2 : set message block to SSS - ctx->pstMessage.pu08Data = ctx->sbuf; - stHASH_Input.pu08Data = ctx->pstMessage.pu08Data; - stHASH_Input.u32DataByteLen = ctx->pstMessage.u32DataByteLen; + //! step 2 : set message block to SSS + ctx->pstMessage.pu08Data = ctx->sbuf; + stHASH_Input.pu08Data = ctx->pstMessage.pu08Data; + stHASH_Input.u32DataByteLen = ctx->pstMessage.u32DataByteLen; - ret = mb_hash_update(&stHASH_Input, block_byte_len); + ret = mb_hash_update(&stHASH_Input, block_byte_len); - if (ret != SSSR_SUCCESS) { - return ret; - } + if (ret != SSSR_SUCCESS) { + return ret; + } - //! step 3 : get hash result from SSS - ret = mb_hash_final(&stHASH_Input, &ctx->pstDigest); - if (ret != SSSR_SUCCESS) { - return ret; - } - - } + //! step 3 : get hash result from SSS + ret = mb_hash_final(&stHASH_Input, &ctx->pstDigest); + if (ret != SSSR_SUCCESS) { + return ret; + } + + } return 0; } -static const uint32_t K[] = -{ +static const uint32_t K[] = { 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, @@ -273,63 +268,71 @@ static const uint32_t K[] = (d) += temp1; (h) = temp1 + temp2; \ } while( 0 ) -int mbedtls_internal_sha256_process( mbedtls_sha256_context *ctx, - const unsigned char data[64] ) +int mbedtls_internal_sha256_process(mbedtls_sha256_context *ctx, + const unsigned char data[64]) { uint32_t temp1, temp2, W[64]; uint32_t A[8]; unsigned int i; - SHA256_VALIDATE_RET( ctx != NULL ); - SHA256_VALIDATE_RET( (const unsigned char *)data != NULL ); + SHA256_VALIDATE_RET(ctx != NULL); + SHA256_VALIDATE_RET((const unsigned char *)data != NULL); - for( i = 0; i < 8; i++ ) + for (i = 0; i < 8; i++) { A[i] = ctx->state[i]; + } #if defined(MBEDTLS_SHA256_SMALLER) - for( i = 0; i < 64; i++ ) - { - if( i < 16 ) - GET_UINT32_BE( W[i], data, 4 * i ); - else - R( i ); + for (i = 0; i < 64; i++) { + if (i < 16) { + GET_UINT32_BE(W[i], data, 4 * i); + } else { + R(i); + } - P( A[0], A[1], A[2], A[3], A[4], A[5], A[6], A[7], W[i], K[i] ); + P(A[0], A[1], A[2], A[3], A[4], A[5], A[6], A[7], W[i], K[i]); - temp1 = A[7]; A[7] = A[6]; A[6] = A[5]; A[5] = A[4]; A[4] = A[3]; - A[3] = A[2]; A[2] = A[1]; A[1] = A[0]; A[0] = temp1; + temp1 = A[7]; + A[7] = A[6]; + A[6] = A[5]; + A[5] = A[4]; + A[4] = A[3]; + A[3] = A[2]; + A[2] = A[1]; + A[1] = A[0]; + A[0] = temp1; } #else /* MBEDTLS_SHA256_SMALLER */ - for( i = 0; i < 16; i++ ) - GET_UINT32_BE( W[i], data, 4 * i ); - - for( i = 0; i < 16; i += 8 ) - { - P( A[0], A[1], A[2], A[3], A[4], A[5], A[6], A[7], W[i+0], K[i+0] ); - P( A[7], A[0], A[1], A[2], A[3], A[4], A[5], A[6], W[i+1], K[i+1] ); - P( A[6], A[7], A[0], A[1], A[2], A[3], A[4], A[5], W[i+2], K[i+2] ); - P( A[5], A[6], A[7], A[0], A[1], A[2], A[3], A[4], W[i+3], K[i+3] ); - P( A[4], A[5], A[6], A[7], A[0], A[1], A[2], A[3], W[i+4], K[i+4] ); - P( A[3], A[4], A[5], A[6], A[7], A[0], A[1], A[2], W[i+5], K[i+5] ); - P( A[2], A[3], A[4], A[5], A[6], A[7], A[0], A[1], W[i+6], K[i+6] ); - P( A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[0], W[i+7], K[i+7] ); + for (i = 0; i < 16; i++) { + GET_UINT32_BE(W[i], data, 4 * i); } - for( i = 16; i < 64; i += 8 ) - { - P( A[0], A[1], A[2], A[3], A[4], A[5], A[6], A[7], R(i+0), K[i+0] ); - P( A[7], A[0], A[1], A[2], A[3], A[4], A[5], A[6], R(i+1), K[i+1] ); - P( A[6], A[7], A[0], A[1], A[2], A[3], A[4], A[5], R(i+2), K[i+2] ); - P( A[5], A[6], A[7], A[0], A[1], A[2], A[3], A[4], R(i+3), K[i+3] ); - P( A[4], A[5], A[6], A[7], A[0], A[1], A[2], A[3], R(i+4), K[i+4] ); - P( A[3], A[4], A[5], A[6], A[7], A[0], A[1], A[2], R(i+5), K[i+5] ); - P( A[2], A[3], A[4], A[5], A[6], A[7], A[0], A[1], R(i+6), K[i+6] ); - P( A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[0], R(i+7), K[i+7] ); + for (i = 0; i < 16; i += 8) { + P(A[0], A[1], A[2], A[3], A[4], A[5], A[6], A[7], W[i + 0], K[i + 0]); + P(A[7], A[0], A[1], A[2], A[3], A[4], A[5], A[6], W[i + 1], K[i + 1]); + P(A[6], A[7], A[0], A[1], A[2], A[3], A[4], A[5], W[i + 2], K[i + 2]); + P(A[5], A[6], A[7], A[0], A[1], A[2], A[3], A[4], W[i + 3], K[i + 3]); + P(A[4], A[5], A[6], A[7], A[0], A[1], A[2], A[3], W[i + 4], K[i + 4]); + P(A[3], A[4], A[5], A[6], A[7], A[0], A[1], A[2], W[i + 5], K[i + 5]); + P(A[2], A[3], A[4], A[5], A[6], A[7], A[0], A[1], W[i + 6], K[i + 6]); + P(A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[0], W[i + 7], K[i + 7]); + } + + for (i = 16; i < 64; i += 8) { + P(A[0], A[1], A[2], A[3], A[4], A[5], A[6], A[7], R(i + 0), K[i + 0]); + P(A[7], A[0], A[1], A[2], A[3], A[4], A[5], A[6], R(i + 1), K[i + 1]); + P(A[6], A[7], A[0], A[1], A[2], A[3], A[4], A[5], R(i + 2), K[i + 2]); + P(A[5], A[6], A[7], A[0], A[1], A[2], A[3], A[4], R(i + 3), K[i + 3]); + P(A[4], A[5], A[6], A[7], A[0], A[1], A[2], A[3], R(i + 4), K[i + 4]); + P(A[3], A[4], A[5], A[6], A[7], A[0], A[1], A[2], R(i + 5), K[i + 5]); + P(A[2], A[3], A[4], A[5], A[6], A[7], A[0], A[1], R(i + 6), K[i + 6]); + P(A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[0], R(i + 7), K[i + 7]); } #endif /* MBEDTLS_SHA256_SMALLER */ - for( i = 0; i < 8; i++ ) + for (i = 0; i < 8; i++) { ctx->state[i] += A[i]; + } return 0; } @@ -337,112 +340,115 @@ int mbedtls_internal_sha256_process( mbedtls_sha256_context *ctx, int mbedtls_sha256_sw_finish_ret(mbedtls_sha256_context *ctx, unsigned char output[32]) { - int ret; - uint32_t used; - uint32_t high, low; + int ret; + uint32_t used; + uint32_t high, low; - SHA256_VALIDATE_RET( ctx != NULL ); - SHA256_VALIDATE_RET( (unsigned char *)output != NULL ); + SHA256_VALIDATE_RET(ctx != NULL); + SHA256_VALIDATE_RET((unsigned char *)output != NULL); - /* - * Add padding: 0x80 then 0x00 until 8 bytes remain for the length - */ - used = ctx->total[0] & 0x3F; + /* + * Add padding: 0x80 then 0x00 until 8 bytes remain for the length + */ + used = ctx->total[0] & 0x3F; - ctx->buffer[used++] = 0x80; + ctx->buffer[used++] = 0x80; - if( used <= 56 ) - { - /* Enough room for padding + length in current block */ - memset( ctx->buffer + used, 0, 56 - used ); - } - else - { - /* We'll need an extra block */ - memset( ctx->buffer + used, 0, 64 - used ); + if (used <= 56) { + /* Enough room for padding + length in current block */ + memset(ctx->buffer + used, 0, 56 - used); + } else { + /* We'll need an extra block */ + memset(ctx->buffer + used, 0, 64 - used); - if( ( ret = mbedtls_internal_sha256_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_sha256_process(ctx, ctx->buffer)) != 0) { + return (ret); + } - memset( ctx->buffer, 0, 56 ); - } + memset(ctx->buffer, 0, 56); + } - /* - * Add message length - */ - high = ( ctx->total[0] >> 29 ) - | ( ctx->total[1] << 3 ); - low = ( ctx->total[0] << 3 ); + /* + * Add message length + */ + high = (ctx->total[0] >> 29) + | (ctx->total[1] << 3); + low = (ctx->total[0] << 3); - PUT_UINT32_BE( high, ctx->buffer, 56 ); - PUT_UINT32_BE( low, ctx->buffer, 60 ); + PUT_UINT32_BE(high, ctx->buffer, 56); + PUT_UINT32_BE(low, ctx->buffer, 60); - if( ( ret = mbedtls_internal_sha256_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_sha256_process(ctx, ctx->buffer)) != 0) { + return (ret); + } - /* - * Output final state - */ - PUT_UINT32_BE( ctx->state[0], output, 0 ); - PUT_UINT32_BE( ctx->state[1], output, 4 ); - PUT_UINT32_BE( ctx->state[2], output, 8 ); - PUT_UINT32_BE( ctx->state[3], output, 12 ); - PUT_UINT32_BE( ctx->state[4], output, 16 ); - PUT_UINT32_BE( ctx->state[5], output, 20 ); - PUT_UINT32_BE( ctx->state[6], output, 24 ); + /* + * Output final state + */ + PUT_UINT32_BE(ctx->state[0], output, 0); + PUT_UINT32_BE(ctx->state[1], output, 4); + PUT_UINT32_BE(ctx->state[2], output, 8); + PUT_UINT32_BE(ctx->state[3], output, 12); + PUT_UINT32_BE(ctx->state[4], output, 16); + PUT_UINT32_BE(ctx->state[5], output, 20); + PUT_UINT32_BE(ctx->state[6], output, 24); - if( ctx->is224 == 0 ) - PUT_UINT32_BE( ctx->state[7], output, 28 ); - return 0; + if (ctx->is224 == 0) { + PUT_UINT32_BE(ctx->state[7], output, 28); + } + return 0; } int mbedtls_sha256_sw_update_ret(mbedtls_sha256_context *ctx, const unsigned char *input, size_t ilen) { - //process SW SHA224 - int ret; - size_t fill; - uint32_t left; + //process SW SHA224 + int ret; + size_t fill; + uint32_t left; - SHA256_VALIDATE_RET( ctx != NULL ); - SHA256_VALIDATE_RET( ilen == 0 || input != NULL ); + SHA256_VALIDATE_RET(ctx != NULL); + SHA256_VALIDATE_RET(ilen == 0 || input != NULL); - if( ilen == 0 ) - return( 0 ); + if (ilen == 0) { + return (0); + } - left = ctx->total[0] & 0x3F; - fill = 64 - left; + left = ctx->total[0] & 0x3F; + fill = 64 - left; - ctx->total[0] += (uint32_t) ilen; - ctx->total[0] &= 0xFFFFFFFF; + ctx->total[0] += (uint32_t) ilen; + ctx->total[0] &= 0xFFFFFFFF; - if( ctx->total[0] < (uint32_t) ilen ) - ctx->total[1]++; + if (ctx->total[0] < (uint32_t) ilen) { + ctx->total[1]++; + } - if( left && ilen >= fill ) - { - memcpy( (void *) (ctx->buffer + left), input, fill ); + if (left && ilen >= fill) { + memcpy((void *)(ctx->buffer + left), input, fill); - if( ( ret = mbedtls_internal_sha256_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_sha256_process(ctx, ctx->buffer)) != 0) { + return (ret); + } - input += fill; - ilen -= fill; - left = 0; - } + input += fill; + ilen -= fill; + left = 0; + } - while( ilen >= 64 ) - { - if( ( ret = mbedtls_internal_sha256_process( ctx, input ) ) != 0 ) - return( ret ); + while (ilen >= 64) { + if ((ret = mbedtls_internal_sha256_process(ctx, input)) != 0) { + return (ret); + } - input += 64; - ilen -= 64; - } + input += 64; + ilen -= 64; + } - if( ilen > 0 ) - memcpy( (void *) (ctx->buffer + left), input, ilen ); + if (ilen > 0) { + memcpy((void *)(ctx->buffer + left), input, ilen); + } - return 0; + return 0; } #endif /* MBEDTLS_SHA256_ALT */ diff --git a/features/mbedtls/targets/TARGET_Samsung/sha/sha256_alt.h b/features/mbedtls/targets/TARGET_Samsung/sha/sha256_alt.h index 53365919d0..0dab5c9f28 100644 --- a/features/mbedtls/targets/TARGET_Samsung/sha/sha256_alt.h +++ b/features/mbedtls/targets/TARGET_Samsung/sha/sha256_alt.h @@ -45,25 +45,25 @@ extern "C" { #endif -#define ST_SHA256_BUF_SIZE ((size_t) 256) +#define ST_SHA256_BUF_SIZE ((size_t) 256) struct mbedtls_sha256_context_s; /** * \brief SHA-256 context structure */ typedef struct mbedtls_sha256_context_s { - /* for S/W SHA-224 */ + /* for S/W SHA-224 */ uint32_t total[2]; /*!< The number of Bytes processed. */ uint32_t state[8]; /*!< The intermediate digest state. */ unsigned char buffer[64]; /*!< The data block being processed. */ int is224; /*!< Determines which function to use: 0: Use SHA-256, or 1: Use SHA-224. */ - /* for H/W SHA-256 */ - uint32_t totals; + /* for H/W SHA-256 */ + uint32_t totals; unsigned char sbuf[ST_SHA256_BUF_SIZE]; /*!< ST_SHA256_BLOCK_SIZE buffer to store values so that algorithm is called once the buffer is filled */ - stOCTET_STRING pstMessage; - stOCTET_STRING pstDigest; + stOCTET_STRING pstMessage; + stOCTET_STRING pstDigest; } mbedtls_sha256_context; @@ -73,14 +73,14 @@ mbedtls_sha256_context; * * \param ctx SHA-256 context to be initialized */ -void mbedtls_sha256_init( mbedtls_sha256_context *ctx ); +void mbedtls_sha256_init(mbedtls_sha256_context *ctx); /** * \brief Clear SHA-256 context * * \param ctx SHA-256 context to be cleared */ -void mbedtls_sha256_free( mbedtls_sha256_context *ctx ); +void mbedtls_sha256_free(mbedtls_sha256_context *ctx); /** * \brief Clone (the state of) a SHA-256 context @@ -88,8 +88,8 @@ void mbedtls_sha256_free( mbedtls_sha256_context *ctx ); * \param dst The destination context * \param src The context to be cloned */ -void mbedtls_sha256_clone( mbedtls_sha256_context *dst, - const mbedtls_sha256_context *src ); +void mbedtls_sha256_clone(mbedtls_sha256_context *dst, + const mbedtls_sha256_context *src); /** * \brief SHA-256 context setup @@ -99,7 +99,7 @@ void mbedtls_sha256_clone( mbedtls_sha256_context *dst, * * \returns error code */ -int mbedtls_sha256_starts_ret( mbedtls_sha256_context *ctx, int is224 ); +int mbedtls_sha256_starts_ret(mbedtls_sha256_context *ctx, int is224); /** * \brief SHA-256 process buffer @@ -110,8 +110,8 @@ int mbedtls_sha256_starts_ret( mbedtls_sha256_context *ctx, int is224 ); * * \returns error code */ -int mbedtls_sha256_update_ret( mbedtls_sha256_context *ctx, const unsigned char *input, - size_t ilen ); +int mbedtls_sha256_update_ret(mbedtls_sha256_context *ctx, const unsigned char *input, + size_t ilen); /** * \brief SHA-256 final digest @@ -121,10 +121,10 @@ int mbedtls_sha256_update_ret( mbedtls_sha256_context *ctx, const unsigned char * * \returns error code */ -int mbedtls_sha256_finish_ret( mbedtls_sha256_context *ctx, unsigned char output[32] ); +int mbedtls_sha256_finish_ret(mbedtls_sha256_context *ctx, unsigned char output[32]); /* Internal use */ -int mbedtls_internal_sha256_process( mbedtls_sha256_context *ctx, const unsigned char data[64] ); +int mbedtls_internal_sha256_process(mbedtls_sha256_context *ctx, const unsigned char data[64]); #if !defined(MBEDTLS_DEPRECATED_REMOVED) #if defined(MBEDTLS_DEPRECATED_WARNING) @@ -142,8 +142,8 @@ int mbedtls_internal_sha256_process( mbedtls_sha256_context *ctx, const unsigned * */ -MBEDTLS_DEPRECATED void mbedtls_sha256_starts( mbedtls_sha256_context *ctx, - int is224 ); +MBEDTLS_DEPRECATED void mbedtls_sha256_starts(mbedtls_sha256_context *ctx, + int is224); /** * \brief This function feeds an input buffer into an ongoing @@ -155,9 +155,9 @@ MBEDTLS_DEPRECATED void mbedtls_sha256_starts( mbedtls_sha256_context *ctx, * \param input The buffer holding the data. * \param ilen The length of the input data. */ -MBEDTLS_DEPRECATED void mbedtls_sha256_update( mbedtls_sha256_context *ctx, - const unsigned char *input, - size_t ilen ); +MBEDTLS_DEPRECATED void mbedtls_sha256_update(mbedtls_sha256_context *ctx, + const unsigned char *input, + size_t ilen); /** * \brief This function finishes the SHA-256 operation, and writes @@ -168,8 +168,8 @@ MBEDTLS_DEPRECATED void mbedtls_sha256_update( mbedtls_sha256_context *ctx, * \param ctx The SHA-256 context. * \param output The SHA-224or SHA-256 checksum result. */ -MBEDTLS_DEPRECATED void mbedtls_sha256_finish( mbedtls_sha256_context *ctx, - unsigned char output[32] ); +MBEDTLS_DEPRECATED void mbedtls_sha256_finish(mbedtls_sha256_context *ctx, + unsigned char output[32]); /** * \brief This function processes a single data block within @@ -181,8 +181,8 @@ MBEDTLS_DEPRECATED void mbedtls_sha256_finish( mbedtls_sha256_context *ctx, * \param ctx The SHA-256 context. * \param data The buffer holding one block of data. */ -MBEDTLS_DEPRECATED void mbedtls_sha256_process( mbedtls_sha256_context *ctx, - const unsigned char data[64] ); +MBEDTLS_DEPRECATED void mbedtls_sha256_process(mbedtls_sha256_context *ctx, + const unsigned char data[64]); #undef MBEDTLS_DEPRECATED #endif /* !MBEDTLS_DEPRECATED_REMOVED */ diff --git a/features/mbedtls/targets/TARGET_Samsung/sha/sha512_alt.c b/features/mbedtls/targets/TARGET_Samsung/sha/sha512_alt.c index 3048bd9993..5c6eedfadb 100644 --- a/features/mbedtls/targets/TARGET_Samsung/sha/sha512_alt.c +++ b/features/mbedtls/targets/TARGET_Samsung/sha/sha512_alt.c @@ -39,9 +39,9 @@ #if defined(MBEDTLS_SHA512_C) #if defined(_MSC_VER) || defined(__WATCOMC__) - #define UL64(x) x##ui64 +#define UL64(x) x##ui64 #else - #define UL64(x) x##ULL +#define UL64(x) x##ULL #endif #if defined(MBEDTLS_SHA512_ALT) @@ -82,7 +82,7 @@ #endif /* PUT_UINT64_BE */ #if defined(MBEDTLS_SHA512_SMALLER) -static void sha512_put_uint64_be( uint64_t n, unsigned char *b, uint8_t i ) +static void sha512_put_uint64_be(uint64_t n, unsigned char *b, uint8_t i) { PUT_UINT64_BE(n, b, i); } @@ -101,16 +101,17 @@ int mbedtls_sha512_sw_update_ret(mbedtls_sha512_context *ctx, const unsigned cha void mbedtls_sha512_init(mbedtls_sha512_context *ctx) { - SHA512_VALIDATE( ctx != NULL ); - memset( ctx, 0, sizeof( mbedtls_sha512_context ) ); + SHA512_VALIDATE(ctx != NULL); + memset(ctx, 0, sizeof(mbedtls_sha512_context)); } void mbedtls_sha512_free(mbedtls_sha512_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_sha512_context ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_sha512_context)); } void mbedtls_sha512_clone(mbedtls_sha512_context *dst, @@ -121,10 +122,10 @@ void mbedtls_sha512_clone(mbedtls_sha512_context *dst, return; } - SHA512_VALIDATE( dst != NULL ); - SHA512_VALIDATE( src != NULL ); + SHA512_VALIDATE(dst != NULL); + SHA512_VALIDATE(src != NULL); - memcpy(dst, src, sizeof(mbedtls_sha512_context)); + memcpy(dst, src, sizeof(mbedtls_sha512_context)); } /* @@ -132,10 +133,10 @@ void mbedtls_sha512_clone(mbedtls_sha512_context *dst, */ int mbedtls_sha512_starts_ret(mbedtls_sha512_context *ctx, int is384) { - SHA512_VALIDATE_RET( ctx != NULL ); - SHA512_VALIDATE_RET( is384 == 0 || is384 == 1 ); - memset( ctx, 0, sizeof( mbedtls_sha512_context ) ); - ctx->is384 = is384; + SHA512_VALIDATE_RET(ctx != NULL); + SHA512_VALIDATE_RET(is384 == 0 || is384 == 1); + memset(ctx, 0, sizeof(mbedtls_sha512_context)); + ctx->is384 = is384; return 0; } @@ -145,41 +146,41 @@ int mbedtls_sha512_starts_ret(mbedtls_sha512_context *ctx, int is384) */ int mbedtls_sha512_update_ret(mbedtls_sha512_context *ctx, const unsigned char *input, size_t ilen) { - if(ilen > MAX_MB_HASH_BLOCK_BLEN || ctx->totals > MAX_MB_HASH_BLOCK_BLEN) { - // H/W SHA has limitation to seperated API with oversized message. - // fall back to S/W SHA-512 - if(ctx->totals == 0) { - ctx->total[0] = 0; - ctx->total[1] = 0; - if( ctx->is384 ) { - /* SHA-384 */ - ctx->state[0] = UL64(0xCBBB9D5DC1059ED8); - ctx->state[1] = UL64(0x629A292A367CD507); - ctx->state[2] = UL64(0x9159015A3070DD17); - ctx->state[3] = UL64(0x152FECD8F70E5939); - ctx->state[4] = UL64(0x67332667FFC00B31); - ctx->state[5] = UL64(0x8EB44A8768581511); - ctx->state[6] = UL64(0xDB0C2E0D64F98FA7); - ctx->state[7] = UL64(0x47B5481DBEFA4FA4); - } else { - /* SHA-512 */ - ctx->state[0] = UL64(0x6A09E667F3BCC908); - ctx->state[1] = UL64(0xBB67AE8584CAA73B); - ctx->state[2] = UL64(0x3C6EF372FE94F82B); - ctx->state[3] = UL64(0xA54FF53A5F1D36F1); - ctx->state[4] = UL64(0x510E527FADE682D1); - ctx->state[5] = UL64(0x9B05688C2B3E6C1F); - ctx->state[6] = UL64(0x1F83D9ABFB41BD6B); - ctx->state[7] = UL64(0x5BE0CD19137E2179); - } - } - ctx->totals += ilen; - mbedtls_sha512_sw_update_ret(ctx, input, ilen); - } else { - // SHA-256 handle by SSS H/W - memcpy(ctx->sbuf + ctx->pstMessage.u32DataByteLen, input, ilen); - ctx->pstMessage.u32DataByteLen += ilen; - } + if (ilen > MAX_MB_HASH_BLOCK_BLEN || ctx->totals > MAX_MB_HASH_BLOCK_BLEN) { + // H/W SHA has limitation to seperated API with oversized message. + // fall back to S/W SHA-512 + if (ctx->totals == 0) { + ctx->total[0] = 0; + ctx->total[1] = 0; + if (ctx->is384) { + /* SHA-384 */ + ctx->state[0] = UL64(0xCBBB9D5DC1059ED8); + ctx->state[1] = UL64(0x629A292A367CD507); + ctx->state[2] = UL64(0x9159015A3070DD17); + ctx->state[3] = UL64(0x152FECD8F70E5939); + ctx->state[4] = UL64(0x67332667FFC00B31); + ctx->state[5] = UL64(0x8EB44A8768581511); + ctx->state[6] = UL64(0xDB0C2E0D64F98FA7); + ctx->state[7] = UL64(0x47B5481DBEFA4FA4); + } else { + /* SHA-512 */ + ctx->state[0] = UL64(0x6A09E667F3BCC908); + ctx->state[1] = UL64(0xBB67AE8584CAA73B); + ctx->state[2] = UL64(0x3C6EF372FE94F82B); + ctx->state[3] = UL64(0xA54FF53A5F1D36F1); + ctx->state[4] = UL64(0x510E527FADE682D1); + ctx->state[5] = UL64(0x9B05688C2B3E6C1F); + ctx->state[6] = UL64(0x1F83D9ABFB41BD6B); + ctx->state[7] = UL64(0x5BE0CD19137E2179); + } + } + ctx->totals += ilen; + mbedtls_sha512_sw_update_ret(ctx, input, ilen); + } else { + // SHA-256 handle by SSS H/W + memcpy(ctx->sbuf + ctx->pstMessage.u32DataByteLen, input, ilen); + ctx->pstMessage.u32DataByteLen += ilen; + } return 0; } @@ -189,65 +190,65 @@ int mbedtls_sha512_update_ret(mbedtls_sha512_context *ctx, const unsigned char * */ int mbedtls_sha512_finish_ret(mbedtls_sha512_context *ctx, unsigned char output[64]) { - if(ctx->totals > MAX_MB_HASH_BLOCK_BLEN) { - mbedtls_sha512_sw_finish_ret(ctx, output); - } else { - int ret = FAIL; - unsigned int object_id; - unsigned int block_byte_len; + if (ctx->totals > MAX_MB_HASH_BLOCK_BLEN) { + mbedtls_sha512_sw_finish_ret(ctx, output); + } else { + int ret = FAIL; + unsigned int object_id; + unsigned int block_byte_len; - ctx->pstDigest.pu08Data = output; /* assign output buffer */ + ctx->pstDigest.pu08Data = output; /* assign output buffer */ - stOCTET_STRING stHASH_Input; - //! step 0 : clear Mailbox - ret = mb_system_clear(CLEAR_TYPE_MAILBOX); + stOCTET_STRING stHASH_Input; + //! step 0 : clear Mailbox + ret = mb_system_clear(CLEAR_TYPE_MAILBOX); - if (ret != SSSR_SUCCESS) { - return ret; - } + if (ret != SSSR_SUCCESS) { + return ret; + } - //! assign hash_byte_len to compare returned result from sss_fw after hash operation - if( ctx->is384 == 0 ) - object_id = OID_SHA2_512; - else - object_id = OID_SHA2_384; + //! assign hash_byte_len to compare returned result from sss_fw after hash operation + if (ctx->is384 == 0) { + object_id = OID_SHA2_512; + } else { + object_id = OID_SHA2_384; + } - block_byte_len = 64; + block_byte_len = 64; - //! step 1 : set message length parameter to SSS - ret = mb_hash_init(&ctx->pstMessage, object_id); + //! step 1 : set message length parameter to SSS + ret = mb_hash_init(&ctx->pstMessage, object_id); - if (ret != SSSR_SUCCESS) { - return ret; - } + if (ret != SSSR_SUCCESS) { + return ret; + } - //! step 2 : set message block to SSS - ctx->pstMessage.pu08Data = ctx->sbuf; - stHASH_Input.pu08Data = ctx->pstMessage.pu08Data; - stHASH_Input.u32DataByteLen = ctx->pstMessage.u32DataByteLen; + //! step 2 : set message block to SSS + ctx->pstMessage.pu08Data = ctx->sbuf; + stHASH_Input.pu08Data = ctx->pstMessage.pu08Data; + stHASH_Input.u32DataByteLen = ctx->pstMessage.u32DataByteLen; - ret = mb_hash_update(&stHASH_Input, block_byte_len); + ret = mb_hash_update(&stHASH_Input, block_byte_len); - if (ret != SSSR_SUCCESS) { - return ret; - } + if (ret != SSSR_SUCCESS) { + return ret; + } - //! step 3 : get hash result from SSS - ret = mb_hash_final(&stHASH_Input, &ctx->pstDigest); + //! step 3 : get hash result from SSS + ret = mb_hash_final(&stHASH_Input, &ctx->pstDigest); - if (ret != SSSR_SUCCESS) { - return ret; - } + if (ret != SSSR_SUCCESS) { + return ret; + } - } + } return 0; } /* * Round constants */ -static const uint64_t K[80] = -{ +static const uint64_t K[80] = { UL64(0x428A2F98D728AE22), UL64(0x7137449123EF65CD), UL64(0xB5C0FBCFEC4D3B2F), UL64(0xE9B5DBA58189DBBC), UL64(0x3956C25BF348B538), UL64(0x59F111F1B605D019), @@ -289,16 +290,16 @@ static const uint64_t K[80] = UL64(0x4CC5D4BECB3E42B6), UL64(0x597F299CFC657E2A), UL64(0x5FCB6FAB3AD6FAEC), UL64(0x6C44198C4A475817) }; -#define MBEDTLS_SHA512_SMALLER 1 -int mbedtls_internal_sha512_process( mbedtls_sha512_context *ctx, - const unsigned char data[128] ) +#define MBEDTLS_SHA512_SMALLER 1 +int mbedtls_internal_sha512_process(mbedtls_sha512_context *ctx, + const unsigned char data[128]) { int i; uint64_t temp1, temp2, W[80]; uint64_t A[8]; - SHA512_VALIDATE_RET( ctx != NULL ); - SHA512_VALIDATE_RET( (const unsigned char *)data != NULL ); + SHA512_VALIDATE_RET(ctx != NULL); + SHA512_VALIDATE_RET((const unsigned char *)data != NULL); #define SHR(x,n) ((x) >> (n)) #define ROTR(x,n) (SHR((x),(n)) | ((x) << (64 - (n)))) @@ -320,69 +321,78 @@ int mbedtls_internal_sha512_process( mbedtls_sha512_context *ctx, (d) += temp1; (h) = temp1 + temp2; \ } while( 0 ) - for( i = 0; i < 8; i++ ) + for (i = 0; i < 8; i++) { A[i] = ctx->state[i]; + } #if defined(MBEDTLS_SHA512_SMALLER) - for( i = 0; i < 80; i++ ) - { - if( i < 16 ) - { - GET_UINT64_BE( W[i], data, i << 3 ); - } - else - { + for (i = 0; i < 80; i++) { + if (i < 16) { + GET_UINT64_BE(W[i], data, i << 3); + } else { W[i] = S1(W[i - 2]) + W[i - 7] + S0(W[i - 15]) + W[i - 16]; } - P( A[0], A[1], A[2], A[3], A[4], A[5], A[6], A[7], W[i], K[i] ); + P(A[0], A[1], A[2], A[3], A[4], A[5], A[6], A[7], W[i], K[i]); - temp1 = A[7]; A[7] = A[6]; A[6] = A[5]; A[5] = A[4]; A[4] = A[3]; - A[3] = A[2]; A[2] = A[1]; A[1] = A[0]; A[0] = temp1; + temp1 = A[7]; + A[7] = A[6]; + A[6] = A[5]; + A[5] = A[4]; + A[4] = A[3]; + A[3] = A[2]; + A[2] = A[1]; + A[1] = A[0]; + A[0] = temp1; } #else /* MBEDTLS_SHA512_SMALLER */ - for( i = 0; i < 16; i++ ) - { - GET_UINT64_BE( W[i], data, i << 3 ); + for (i = 0; i < 16; i++) { + GET_UINT64_BE(W[i], data, i << 3); } - for( ; i < 80; i++ ) - { + for (; i < 80; i++) { W[i] = S1(W[i - 2]) + W[i - 7] + S0(W[i - 15]) + W[i - 16]; } i = 0; - do - { - P( A[0], A[1], A[2], A[3], A[4], A[5], A[6], A[7], W[i], K[i] ); i++; - P( A[7], A[0], A[1], A[2], A[3], A[4], A[5], A[6], W[i], K[i] ); i++; - P( A[6], A[7], A[0], A[1], A[2], A[3], A[4], A[5], W[i], K[i] ); i++; - P( A[5], A[6], A[7], A[0], A[1], A[2], A[3], A[4], W[i], K[i] ); i++; - P( A[4], A[5], A[6], A[7], A[0], A[1], A[2], A[3], W[i], K[i] ); i++; - P( A[3], A[4], A[5], A[6], A[7], A[0], A[1], A[2], W[i], K[i] ); i++; - P( A[2], A[3], A[4], A[5], A[6], A[7], A[0], A[1], W[i], K[i] ); i++; - P( A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[0], W[i], K[i] ); i++; - } - while( i < 80 ); + do { + P(A[0], A[1], A[2], A[3], A[4], A[5], A[6], A[7], W[i], K[i]); + i++; + P(A[7], A[0], A[1], A[2], A[3], A[4], A[5], A[6], W[i], K[i]); + i++; + P(A[6], A[7], A[0], A[1], A[2], A[3], A[4], A[5], W[i], K[i]); + i++; + P(A[5], A[6], A[7], A[0], A[1], A[2], A[3], A[4], W[i], K[i]); + i++; + P(A[4], A[5], A[6], A[7], A[0], A[1], A[2], A[3], W[i], K[i]); + i++; + P(A[3], A[4], A[5], A[6], A[7], A[0], A[1], A[2], W[i], K[i]); + i++; + P(A[2], A[3], A[4], A[5], A[6], A[7], A[0], A[1], W[i], K[i]); + i++; + P(A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[0], W[i], K[i]); + i++; + } while (i < 80); #endif /* MBEDTLS_SHA512_SMALLER */ - for( i = 0; i < 8; i++ ) + for (i = 0; i < 8; i++) { ctx->state[i] += A[i]; + } return 0; } -int mbedtls_sha512_sw_finish_ret( mbedtls_sha512_context *ctx, - unsigned char output[64] ) +int mbedtls_sha512_sw_finish_ret(mbedtls_sha512_context *ctx, + unsigned char output[64]) { int ret; unsigned used; uint64_t high, low; - SHA512_VALIDATE_RET( ctx != NULL ); - SHA512_VALIDATE_RET( (unsigned char *)output != NULL ); + SHA512_VALIDATE_RET(ctx != NULL); + SHA512_VALIDATE_RET((unsigned char *)output != NULL); /* * Add padding: 0x80 then 0x00 until 16 bytes remain for the length @@ -391,49 +401,47 @@ int mbedtls_sha512_sw_finish_ret( mbedtls_sha512_context *ctx, ctx->buffer[used++] = 0x80; - if( used <= 112 ) - { + if (used <= 112) { /* Enough room for padding + length in current block */ - memset( ctx->buffer + used, 0, 112 - used ); - } - else - { + memset(ctx->buffer + used, 0, 112 - used); + } else { /* We'll need an extra block */ - memset( ctx->buffer + used, 0, 128 - used ); + memset(ctx->buffer + used, 0, 128 - used); - if( ( ret = mbedtls_internal_sha512_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_sha512_process(ctx, ctx->buffer)) != 0) { + return (ret); + } - memset( ctx->buffer, 0, 112 ); + memset(ctx->buffer, 0, 112); } /* * Add message length */ - high = ( ctx->total[0] >> 61 ) - | ( ctx->total[1] << 3 ); - low = ( ctx->total[0] << 3 ); + high = (ctx->total[0] >> 61) + | (ctx->total[1] << 3); + low = (ctx->total[0] << 3); - sha512_put_uint64_be( high, ctx->buffer, 112 ); - sha512_put_uint64_be( low, ctx->buffer, 120 ); + sha512_put_uint64_be(high, ctx->buffer, 112); + sha512_put_uint64_be(low, ctx->buffer, 120); - if( ( ret = mbedtls_internal_sha512_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_sha512_process(ctx, ctx->buffer)) != 0) { + return (ret); + } /* * Output final state */ - sha512_put_uint64_be( ctx->state[0], output, 0 ); - sha512_put_uint64_be( ctx->state[1], output, 8 ); - sha512_put_uint64_be( ctx->state[2], output, 16 ); - sha512_put_uint64_be( ctx->state[3], output, 24 ); - sha512_put_uint64_be( ctx->state[4], output, 32 ); - sha512_put_uint64_be( ctx->state[5], output, 40 ); + sha512_put_uint64_be(ctx->state[0], output, 0); + sha512_put_uint64_be(ctx->state[1], output, 8); + sha512_put_uint64_be(ctx->state[2], output, 16); + sha512_put_uint64_be(ctx->state[3], output, 24); + sha512_put_uint64_be(ctx->state[4], output, 32); + sha512_put_uint64_be(ctx->state[5], output, 40); - if( ctx->is384 == 0 ) - { - sha512_put_uint64_be( ctx->state[6], output, 48 ); - sha512_put_uint64_be( ctx->state[7], output, 56 ); + if (ctx->is384 == 0) { + sha512_put_uint64_be(ctx->state[6], output, 48); + sha512_put_uint64_be(ctx->state[7], output, 56); } return 0; @@ -445,47 +453,50 @@ int mbedtls_sha512_sw_update_ret(mbedtls_sha512_context *ctx, const unsigned cha size_t fill; unsigned int left; - SHA512_VALIDATE_RET( ctx != NULL ); - SHA512_VALIDATE_RET( ilen == 0 || input != NULL ); + SHA512_VALIDATE_RET(ctx != NULL); + SHA512_VALIDATE_RET(ilen == 0 || input != NULL); - if( ilen == 0 ) - return( 0 ); + if (ilen == 0) { + return (0); + } - left = (unsigned int) (ctx->total[0] & 0x7F); + left = (unsigned int)(ctx->total[0] & 0x7F); fill = 128 - left; ctx->total[0] += (uint64_t) ilen; - if( ctx->total[0] < (uint64_t) ilen ) + if (ctx->total[0] < (uint64_t) ilen) { ctx->total[1]++; + } - if( left && ilen >= fill ) - { - memcpy( (void *) (ctx->buffer + left), input, fill ); + if (left && ilen >= fill) { + memcpy((void *)(ctx->buffer + left), input, fill); - if( ( ret = mbedtls_internal_sha512_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_sha512_process(ctx, ctx->buffer)) != 0) { + return (ret); + } input += fill; ilen -= fill; left = 0; } - while( ilen >= 128 ) - { - if( ( ret = mbedtls_internal_sha512_process( ctx, input ) ) != 0 ) - return( ret ); + while (ilen >= 128) { + if ((ret = mbedtls_internal_sha512_process(ctx, input)) != 0) { + return (ret); + } input += 128; ilen -= 128; } - if( ilen > 0 ) - memcpy( (void *) (ctx->buffer + left), input, ilen ); + if (ilen > 0) { + memcpy((void *)(ctx->buffer + left), input, ilen); + } return 0; } - + #endif /* MBEDTLS_SHA512_ALT */ diff --git a/features/mbedtls/targets/TARGET_Samsung/sha/sha512_alt.h b/features/mbedtls/targets/TARGET_Samsung/sha/sha512_alt.h index 66191e040b..f62c1a0f6e 100644 --- a/features/mbedtls/targets/TARGET_Samsung/sha/sha512_alt.h +++ b/features/mbedtls/targets/TARGET_Samsung/sha/sha512_alt.h @@ -44,24 +44,24 @@ extern "C" { #endif -#define ST_SHA512_BUF_SIZE ((size_t) 512) +#define ST_SHA512_BUF_SIZE ((size_t) 512) struct mbedtls_sha512_context_s; /** * \brief SHA-512 context structure */ typedef struct mbedtls_sha512_context_s { - /* for S/W SHA-384 */ + /* for S/W SHA-384 */ uint64_t total[2]; /*!< The number of Bytes processed. */ uint64_t state[8]; /*!< The intermediate digest state. */ unsigned char buffer[128]; /*!< The data block being processed. */ int is384; /*!< Determines which function to use: 0: Use SHA-512, or 1: Use SHA-384. */ - /* for H/W SHA-512 */ - uint32_t totals; + /* for H/W SHA-512 */ + uint32_t totals; unsigned char sbuf[ST_SHA512_BUF_SIZE]; /*!< ST_SHA512_BLOCK_SIZE buffer to store values so that algorithm is called once the buffer is filled */ - stOCTET_STRING pstMessage; - stOCTET_STRING pstDigest; + stOCTET_STRING pstMessage; + stOCTET_STRING pstDigest; } mbedtls_sha512_context; @@ -71,14 +71,14 @@ mbedtls_sha512_context; * * \param ctx SHA-512 context to be initialized */ -void mbedtls_sha512_init( mbedtls_sha512_context *ctx ); +void mbedtls_sha512_init(mbedtls_sha512_context *ctx); /** * \brief Clear SHA-512 context * * \param ctx SHA-512 context to be cleared */ -void mbedtls_sha512_free( mbedtls_sha512_context *ctx ); +void mbedtls_sha512_free(mbedtls_sha512_context *ctx); /** * \brief Clone (the state of) a SHA-512 context @@ -86,8 +86,8 @@ void mbedtls_sha512_free( mbedtls_sha512_context *ctx ); * \param dst The destination context * \param src The context to be cloned */ -void mbedtls_sha512_clone( mbedtls_sha512_context *dst, - const mbedtls_sha512_context *src ); +void mbedtls_sha512_clone(mbedtls_sha512_context *dst, + const mbedtls_sha512_context *src); /** * \brief SHA-512 context setup @@ -97,7 +97,7 @@ void mbedtls_sha512_clone( mbedtls_sha512_context *dst, * * \returns error code */ -int mbedtls_sha512_starts_ret( mbedtls_sha512_context *ctx, int is224 ); +int mbedtls_sha512_starts_ret(mbedtls_sha512_context *ctx, int is224); /** * \brief SHA-512 process buffer @@ -108,8 +108,8 @@ int mbedtls_sha512_starts_ret( mbedtls_sha512_context *ctx, int is224 ); * * \returns error code */ -int mbedtls_sha512_update_ret( mbedtls_sha512_context *ctx, const unsigned char *input, - size_t ilen ); +int mbedtls_sha512_update_ret(mbedtls_sha512_context *ctx, const unsigned char *input, + size_t ilen); /** * \brief SHA-512 final digest @@ -119,10 +119,10 @@ int mbedtls_sha512_update_ret( mbedtls_sha512_context *ctx, const unsigned char * * \returns error code */ -int mbedtls_sha512_finish_ret( mbedtls_sha512_context *ctx, unsigned char output[64] ); +int mbedtls_sha512_finish_ret(mbedtls_sha512_context *ctx, unsigned char output[64]); /* Internal use */ -int mbedtls_internal_sha512_process( mbedtls_sha512_context *ctx, const unsigned char data[128] ); +int mbedtls_internal_sha512_process(mbedtls_sha512_context *ctx, const unsigned char data[128]); #if !defined(MBEDTLS_DEPRECATED_REMOVED) #if defined(MBEDTLS_DEPRECATED_WARNING) @@ -140,8 +140,8 @@ int mbedtls_internal_sha512_process( mbedtls_sha512_context *ctx, const unsigned * */ -MBEDTLS_DEPRECATED void mbedtls_sha512_starts( mbedtls_sha512_context *ctx, - int is224 ); +MBEDTLS_DEPRECATED void mbedtls_sha512_starts(mbedtls_sha512_context *ctx, + int is224); /** * \brief This function feeds an input buffer into an ongoing @@ -153,9 +153,9 @@ MBEDTLS_DEPRECATED void mbedtls_sha512_starts( mbedtls_sha512_context *ctx, * \param input The buffer holding the data. * \param ilen The length of the input data. */ -MBEDTLS_DEPRECATED void mbedtls_sha512_update( mbedtls_sha512_context *ctx, - const unsigned char *input, - size_t ilen ); +MBEDTLS_DEPRECATED void mbedtls_sha512_update(mbedtls_sha512_context *ctx, + const unsigned char *input, + size_t ilen); /** * \brief This function finishes the SHA-512 operation, and writes @@ -166,8 +166,8 @@ MBEDTLS_DEPRECATED void mbedtls_sha512_update( mbedtls_sha512_context *ctx, * \param ctx The SHA-512 context. * \param output The SHA-224or SHA-512 checksum result. */ -MBEDTLS_DEPRECATED void mbedtls_sha512_finish( mbedtls_sha512_context *ctx, - unsigned char output[64] ); +MBEDTLS_DEPRECATED void mbedtls_sha512_finish(mbedtls_sha512_context *ctx, + unsigned char output[64]); /** * \brief This function processes a single data block within @@ -179,8 +179,8 @@ MBEDTLS_DEPRECATED void mbedtls_sha512_finish( mbedtls_sha512_context *ctx, * \param ctx The SHA-512 context. * \param data The buffer holding one block of data. */ -MBEDTLS_DEPRECATED void mbedtls_sha512_process( mbedtls_sha512_context *ctx, - const unsigned char data[128] ); +MBEDTLS_DEPRECATED void mbedtls_sha512_process(mbedtls_sha512_context *ctx, + const unsigned char data[128]); #undef MBEDTLS_DEPRECATED #endif /* !MBEDTLS_DEPRECATED_REMOVED */