Closed
Description
Description
- Type: Bug
- Priority: Minor
Bug
Target
NUMAKER_PFM_M487
Toolchain:
GCC_ARM|ARM|IAR
mbed-cli version:
1.2.2
mbed-os sha:
b590051 Merge pull request #5808 from SenRamakri/sen_ESP8266TestConfig
Greentea test report
mbedgt: test case report:
+--------------------------+------------------+--------------------------------+---------------------------+--------+--------+--------+--------------------+
| target | platform_name | test suite | test case | passed | failed | result | elapsed_time (sec) |
+--------------------------+------------------+--------------------------------+---------------------------+--------+--------+--------+--------------------+
| NUMAKER_PFM_M487-GCC_ARM | NUMAKER_PFM_M487 | mbed-os-tests-mbedtls-selftest | mbedtls_entropy_self_test | 0 | 1 | FAIL | 0.08 |
| NUMAKER_PFM_M487-GCC_ARM | NUMAKER_PFM_M487 | mbed-os-tests-mbedtls-selftest | mbedtls_sha256_self_test | 1 | 0 | OK | 0.93 |
| NUMAKER_PFM_M487-GCC_ARM | NUMAKER_PFM_M487 | mbed-os-tests-mbedtls-selftest | mbedtls_sha512_self_test | 1 | 0 | OK | 0.62 |
+--------------------------+------------------+--------------------------------+---------------------------+--------+--------+--------+--------------------+
mbedgt: test case results: 1 FAIL / 2 OK
Per my check, there is a call flow error with SHA in mbed-os/features/mbedtls/src/entropy.c
.
mbedtls_sha256_init
/mbedtls_sha512_init
is missing in mbedtls_entropy_init
. If I fix it as below, the test would be OK:
void mbedtls_entropy_init( mbedtls_entropy_context *ctx ) { memset( ctx, 0, sizeof(mbedtls_entropy_context) ); #if defined(MBEDTLS_THREADING_C) mbedtls_mutex_init( &ctx->mutex ); #endif #if defined(MBEDTLS_ENTROPY_SHA512_ACCUMULATOR) mbedtls_sha512_init( &ctx->accumulator ); mbedtls_sha512_starts( &ctx->accumulator, 0 ); #else mbedtls_sha256_init( &ctx->accumulator ); mbedtls_sha256_starts( &ctx->accumulator, 0 ); #endif
void mbedtls_entropy_free( mbedtls_entropy_context *ctx ) { #if defined(MBEDTLS_HAVEGE_C) mbedtls_havege_free( &ctx->havege_data ); #endif #if defined(MBEDTLS_ENTROPY_SHA512_ACCUMULATOR) mbedtls_sha512_free( &ctx->accumulator ); #else mbedtls_sha256_free( &ctx->accumulator ); #endif #if defined(MBEDTLS_THREADING_C) mbedtls_mutex_free( &ctx->mutex ); #endif