Add testcases for psa_crypto_copy_input()

Signed-off-by: David Horstmann <david.horstmann@arm.com>
This commit is contained in:
David Horstmann 2023-10-30 20:16:41 +00:00
parent af45b8333a
commit 0b241ee584
2 changed files with 39 additions and 1 deletions

View File

@ -7406,3 +7406,12 @@ persistent_key_load_key_from_storage:"":PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY
PSA derive persistent key: HKDF SHA-256, exportable
persistent_key_load_key_from_storage:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":PSA_KEY_TYPE_RAW_DATA:1024:PSA_KEY_USAGE_EXPORT:0:DERIVE_KEY
PSA input buffer copy: straightforward copy
psa_crypto_copy_input:20:20:PSA_SUCCESS
PSA input buffer copy: copy buffer larger than required
psa_crypto_copy_input:10:20:PSA_SUCCESS
PSA input buffer copy: copy buffer too small
psa_crypto_copy_input:20:10:PSA_ERROR_BUFFER_TOO_SMALL

View File

@ -13,7 +13,7 @@
#include "psa/crypto.h"
#include "psa_crypto_slot_management.h"
/* For psa_can_do_hash() */
/* For psa_can_do_hash() and buffer copying functions */
#include "psa_crypto_core.h"
#include "test/asn1_helpers.h"
@ -10305,3 +10305,32 @@ void ecjpake_size_macros()
PSA_PAKE_INPUT_MAX_SIZE);
}
/* END_CASE */
/* BEGIN_CASE */
void psa_crypto_copy_input(int src_len, int dst_len, int exp_ret)
{
uint8_t data[] = {0x12, 0x34, 0x56, 0x78};
uint8_t *src_buffer = NULL;
uint8_t *dst_buffer = NULL;
psa_status_t ret;
TEST_CALLOC(src_buffer, src_len);
TEST_CALLOC(dst_buffer, dst_len);
for (int i = 0; i < src_len; i++) {
src_buffer[i] = data[i % sizeof(data)];
}
ret = psa_crypto_copy_input(src_buffer, src_len, dst_buffer, dst_len);
TEST_EQUAL((int) ret, exp_ret);
if (exp_ret == (int) PSA_SUCCESS) {
/* Note: We compare the first src_len bytes of each buffer, as this is what was copied. */
TEST_MEMORY_COMPARE(src_buffer, src_len, dst_buffer, src_len);
}
exit:
mbedtls_free(src_buffer);
mbedtls_free(dst_buffer);
}
/* END_CASE */