29
29
#include " entropy_poll.h"
30
30
#include " crypto.h"
31
31
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
+
32
41
using namespace utest::v1;
33
42
34
43
uint8_t seed[MBEDTLS_ENTROPY_MAX_SEED_SIZE+2 ] = {0 };
@@ -56,15 +65,15 @@ void run_entropy_inject_with_crypto_init( )
56
65
psa_status_t status;
57
66
status = psa_crypto_init ();
58
67
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 );
60
69
TEST_ASSERT ( status == PSA_SUCCESS );
61
70
status = psa_crypto_init ();
62
71
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 );
64
73
TEST_ASSERT ( status == PSA_ERROR_NOT_PERMITTED );
65
74
mbedtls_psa_crypto_free ( );
66
75
/* 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 );
68
77
TEST_ASSERT ( status == PSA_ERROR_NOT_PERMITTED );
69
78
}
70
79
@@ -79,11 +88,7 @@ utest::v1::status_t greentea_test_setup(const size_t number_of_cases)
79
88
80
89
static void injection_small_good ()
81
90
{
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);
87
92
}
88
93
89
94
static void injection_big_good ()
@@ -93,7 +98,7 @@ static void injection_big_good()
93
98
94
99
static void injection_too_small ()
95
100
{
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);
97
102
}
98
103
99
104
static void injection_too_big ()
@@ -116,20 +121,20 @@ utest::v1::status_t case_teardown_handler(const Case *const source, const size_t
116
121
status = test_psa_its_reset ();
117
122
TEST_ASSERT_EQUAL (PSA_ITS_SUCCESS, status);
118
123
mbedtls_psa_crypto_free ( );
119
- return STATUS_CONTINUE ;
124
+ return greentea_case_teardown_handler (source, passed, failed, reason) ;
120
125
}
121
126
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 )
123
128
{
124
129
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);
127
132
/* fill seed in some data */
128
133
for ( size_t i = 0 ; i < MBEDTLS_ENTROPY_MAX_SEED_SIZE+2 ; ++i)
129
134
{
130
135
seed[i] = i;
131
136
}
132
- return STATUS_CONTINUE ;
137
+ return greentea_case_setup_handler (source, index_of_case) ;
133
138
}
134
139
135
140
Case cases[] = {
0 commit comments