Skip to content

Commit ac586ce

Browse files
committed
Fix inject entropy tests
* Call greentea_case_teardown_handler() and greentea_case_setup_handler() instead of return STATUS_CONTINUE * Introduce and use new macro MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE
1 parent 1e928d8 commit ac586ce

File tree

1 file changed

+19
-14
lines changed

1 file changed

+19
-14
lines changed

TESTS/psa/entropy_inject/main.cpp

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,15 @@
2929
#include "entropy_poll.h"
3030
#include "crypto.h"
3131

32+
/* MAX value support macro */
33+
#if !defined(MAX)
34+
#define MAX(a,b) (((a)>(b))?(a):(b))
35+
#endif
36+
37+
/* Calculating the minimum allowed entropy size in bytes */
38+
#define MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE \
39+
MAX(MBEDTLS_ENTROPY_MIN_PLATFORM, MBEDTLS_ENTROPY_BLOCK_SIZE)
40+
3241
using namespace utest::v1;
3342

3443
uint8_t seed[MBEDTLS_ENTROPY_MAX_SEED_SIZE+2] = {0};
@@ -56,15 +65,15 @@ void run_entropy_inject_with_crypto_init( )
5665
psa_status_t status;
5766
status = psa_crypto_init();
5867
TEST_ASSERT( status == PSA_ERROR_INSUFFICIENT_ENTROPY );
59-
status = mbedtls_psa_inject_entropy( seed, MBEDTLS_ENTROPY_MIN_PLATFORM );
68+
status = mbedtls_psa_inject_entropy( seed, MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE );
6069
TEST_ASSERT( status == PSA_SUCCESS );
6170
status = psa_crypto_init();
6271
TEST_ASSERT( status == PSA_SUCCESS );
63-
status = mbedtls_psa_inject_entropy( seed, MBEDTLS_ENTROPY_MIN_PLATFORM );
72+
status = mbedtls_psa_inject_entropy( seed, MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE );
6473
TEST_ASSERT( status == PSA_ERROR_NOT_PERMITTED );
6574
mbedtls_psa_crypto_free( );
6675
/* The seed is written by nv_seed callback functions therefore the injection will fail */
67-
status = mbedtls_psa_inject_entropy( seed, MBEDTLS_ENTROPY_MIN_PLATFORM );
76+
status = mbedtls_psa_inject_entropy( seed, MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE );
6877
TEST_ASSERT( status == PSA_ERROR_NOT_PERMITTED );
6978
}
7079

@@ -79,11 +88,7 @@ utest::v1::status_t greentea_test_setup(const size_t number_of_cases)
7988

8089
static void injection_small_good()
8190
{
82-
#if (MBEDTLS_ENTROPY_MIN_PLATFORM > MBEDTLS_ENTROPY_BLOCK_SIZE)
83-
validate_entropy_seed_injection( MBEDTLS_ENTROPY_MIN_PLATFORM, PSA_SUCCESS, MBEDTLS_ENTROPY_MIN_PLATFORM, PSA_ERROR_NOT_PERMITTED);
84-
#else
85-
validate_entropy_seed_injection( MBEDTLS_ENTROPY_BLOCK_SIZE, PSA_SUCCESS, MBEDTLS_ENTROPY_BLOCK_SIZE, PSA_ERROR_NOT_PERMITTED);
86-
#endif
91+
validate_entropy_seed_injection( MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE, PSA_SUCCESS, MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE, PSA_ERROR_NOT_PERMITTED);
8792
}
8893

8994
static void injection_big_good()
@@ -93,7 +98,7 @@ static void injection_big_good()
9398

9499
static void injection_too_small()
95100
{
96-
validate_entropy_seed_injection((MBEDTLS_ENTROPY_MIN_PLATFORM - 1), PSA_ERROR_INVALID_ARGUMENT, MBEDTLS_ENTROPY_MAX_SEED_SIZE, PSA_SUCCESS);
101+
validate_entropy_seed_injection((MBEDTLS_ENTROPY_MIN_PLATFORM - 1), PSA_ERROR_INVALID_ARGUMENT, MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE, PSA_SUCCESS);
97102
}
98103

99104
static void injection_too_big()
@@ -116,20 +121,20 @@ utest::v1::status_t case_teardown_handler(const Case *const source, const size_t
116121
status = test_psa_its_reset();
117122
TEST_ASSERT_EQUAL(PSA_ITS_SUCCESS, status);
118123
mbedtls_psa_crypto_free( );
119-
return STATUS_CONTINUE;
124+
return greentea_case_teardown_handler(source, passed, failed, reason);
120125
}
121126

122-
utest::v1::status_t case_setup_handler(const utest::v1::Case*, unsigned int)
127+
utest::v1::status_t case_setup_handler(const Case *const source, const size_t index_of_case)
123128
{
124129
psa_status_t status;
125-
status = test_psa_its_reset();
126-
TEST_ASSERT_EQUAL(PSA_ITS_SUCCESS, status);
130+
status = test_psa_its_reset();
131+
TEST_ASSERT_EQUAL(PSA_ITS_SUCCESS, status);
127132
/* fill seed in some data */
128133
for( size_t i = 0; i < MBEDTLS_ENTROPY_MAX_SEED_SIZE+2; ++i)
129134
{
130135
seed[i] = i;
131136
}
132-
return STATUS_CONTINUE;
137+
return greentea_case_setup_handler(source, index_of_case);
133138
}
134139

135140
Case cases[] = {

0 commit comments

Comments
 (0)