Skip to content

Commit da57191

Browse files
author
Cruz Monrreal
authored
Merge pull request #9701 from kfnta/entorpy_inject_test_refactor
Refactor psa entropy inject test
2 parents 2e9d6d2 + eb48d3c commit da57191

File tree

1 file changed

+38
-15
lines changed

1 file changed

+38
-15
lines changed

TESTS/psa/entropy_inject/main.cpp

Lines changed: 38 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
#include "psa/lifecycle.h"
2828
#include "entropy.h"
2929
#include "entropy_poll.h"
30-
#include "crypto.h"
30+
#include "psa/crypto.h"
3131

3232
/* MAX value support macro */
3333
#if !defined(MAX)
@@ -51,31 +51,43 @@ void validate_entropy_seed_injection(int seed_length_a,
5151
psa_status_t status;
5252
uint8_t output[32] = { 0 };
5353
uint8_t zeros[32] = { 0 };
54+
int memcmp_res = 0;
5455
status = mbedtls_psa_inject_entropy(seed, seed_length_a);
55-
TEST_ASSERT(status == expected_status_a);
56+
TEST_ASSERT_EQUAL_INT(expected_status_a, status);
57+
5658
status = mbedtls_psa_inject_entropy(seed, seed_length_b);
57-
TEST_ASSERT(status == expected_status_b);
58-
TEST_ASSERT(psa_crypto_init() == PSA_SUCCESS);
59-
TEST_ASSERT(psa_generate_random(output, sizeof(output)) == PSA_SUCCESS);
60-
TEST_ASSERT(memcmp(output, zeros, sizeof(output)) != 0);
59+
TEST_ASSERT_EQUAL_INT(expected_status_b, status);
60+
61+
status = psa_crypto_init();
62+
TEST_ASSERT_EQUAL_INT(PSA_SUCCESS, status);
63+
64+
status = psa_generate_random(output, sizeof(output));
65+
TEST_ASSERT_EQUAL_INT(PSA_SUCCESS, status);
66+
67+
memcmp_res = memcmp(output, zeros, sizeof(output));
68+
TEST_ASSERT_NOT_EQUAL(0, memcmp_res);
6169
}
6270

6371
void run_entropy_inject_with_crypto_init()
6472
{
6573
psa_its_status_t its_status;
6674
psa_status_t status;
6775
status = psa_crypto_init();
68-
TEST_ASSERT(status == PSA_ERROR_INSUFFICIENT_ENTROPY);
76+
TEST_ASSERT_EQUAL_INT(PSA_ERROR_INSUFFICIENT_ENTROPY, status);
77+
6978
status = mbedtls_psa_inject_entropy(seed, MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE);
70-
TEST_ASSERT(status == PSA_SUCCESS);
79+
TEST_ASSERT_EQUAL_INT(PSA_SUCCESS, status);
80+
7181
status = psa_crypto_init();
72-
TEST_ASSERT(status == PSA_SUCCESS);
82+
TEST_ASSERT_EQUAL_INT(PSA_SUCCESS, status);
83+
7384
status = mbedtls_psa_inject_entropy(seed, MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE);
74-
TEST_ASSERT(status == PSA_ERROR_NOT_PERMITTED);
85+
TEST_ASSERT_EQUAL_INT(PSA_ERROR_NOT_PERMITTED, status);
86+
7587
mbedtls_psa_crypto_free();
7688
/* The seed is written by nv_seed callback functions therefore the injection will fail */
7789
status = mbedtls_psa_inject_entropy(seed, MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE);
78-
TEST_ASSERT(status == PSA_ERROR_NOT_PERMITTED);
90+
TEST_ASSERT_EQUAL_INT(PSA_ERROR_NOT_PERMITTED, status);
7991
}
8092

8193

@@ -90,6 +102,9 @@ utest::v1::status_t greentea_test_setup(const size_t number_of_cases)
90102
seed[i] = i;
91103
}
92104

105+
psa_status_t status = mbed_psa_reboot_and_request_new_security_state(PSA_LIFECYCLE_ASSEMBLY_AND_TEST);
106+
TEST_ASSERT_EQUAL(PSA_SUCCESS, status);
107+
93108
if (mbedtls_psa_inject_entropy(seed, MBEDTLS_ENTROPY_MAX_SEED_SIZE) == PSA_ERROR_NOT_SUPPORTED) {
94109
skip_tests = true;
95110
}
@@ -100,25 +115,33 @@ utest::v1::status_t greentea_test_setup(const size_t number_of_cases)
100115
static void injection_small_good()
101116
{
102117
TEST_SKIP_UNLESS(!skip_tests);
103-
validate_entropy_seed_injection(MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE, PSA_SUCCESS, MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE, PSA_ERROR_NOT_PERMITTED);
118+
validate_entropy_seed_injection(
119+
MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE, PSA_SUCCESS,
120+
MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE, PSA_ERROR_NOT_PERMITTED);
104121
}
105122

106123
static void injection_big_good()
107124
{
108125
TEST_SKIP_UNLESS(!skip_tests);
109-
validate_entropy_seed_injection(MBEDTLS_ENTROPY_MAX_SEED_SIZE, PSA_SUCCESS, MBEDTLS_ENTROPY_MAX_SEED_SIZE, PSA_ERROR_NOT_PERMITTED);
126+
validate_entropy_seed_injection(
127+
MBEDTLS_ENTROPY_MAX_SEED_SIZE, PSA_SUCCESS,
128+
MBEDTLS_ENTROPY_MAX_SEED_SIZE, PSA_ERROR_NOT_PERMITTED);
110129
}
111130

112131
static void injection_too_small()
113132
{
114133
TEST_SKIP_UNLESS(!skip_tests);
115-
validate_entropy_seed_injection((MBEDTLS_ENTROPY_MIN_PLATFORM - 1), PSA_ERROR_INVALID_ARGUMENT, MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE, PSA_SUCCESS);
134+
validate_entropy_seed_injection(
135+
(MBEDTLS_ENTROPY_MIN_PLATFORM - 1), PSA_ERROR_INVALID_ARGUMENT,
136+
MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE, PSA_SUCCESS);
116137
}
117138

118139
static void injection_too_big()
119140
{
120141
TEST_SKIP_UNLESS(!skip_tests);
121-
validate_entropy_seed_injection((MBEDTLS_ENTROPY_MAX_SEED_SIZE + 1), PSA_ERROR_INVALID_ARGUMENT, MBEDTLS_ENTROPY_MAX_SEED_SIZE, PSA_SUCCESS);
142+
validate_entropy_seed_injection(
143+
(MBEDTLS_ENTROPY_MAX_SEED_SIZE + 1), PSA_ERROR_INVALID_ARGUMENT,
144+
MBEDTLS_ENTROPY_MAX_SEED_SIZE, PSA_SUCCESS);
122145
}
123146

124147
static void injection_and_init_deinit()

0 commit comments

Comments
 (0)