Skip to content

M487: mbed-os-tests-mbedtls-selftest test failed #5853

Closed
@ccli8

Description

@ccli8

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions