Use MBEDTLS_MD_MAX_SIZE in test_suite_md
Not only was the size of 100 arbitrary, it's also not great for testing:
using MBEDTLS_MD_MAX_SIZE will get us an ASan error if it ever is too
small.
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
diff --git a/tests/suites/test_suite_md.function b/tests/suites/test_suite_md.function
index 9fc0130..d0f08e1 100644
--- a/tests/suites/test_suite_md.function
+++ b/tests/suites/test_suite_md.function
@@ -132,11 +132,10 @@
void md_text(int md_type, char *text_src_string, data_t *hash)
{
unsigned char src_str[1000];
- unsigned char output[100];
+ unsigned char output[MBEDTLS_MD_MAX_SIZE] = {0};
const mbedtls_md_info_t *md_info = NULL;
memset(src_str, 0x00, 1000);
- memset(output, 0x00, 100);
strncpy((char *) src_str, text_src_string, sizeof(src_str) - 1);
md_info = mbedtls_md_info_from_type(md_type);
@@ -153,11 +152,9 @@
/* BEGIN_CASE */
void md_hex(int md_type, data_t *src_str, data_t *hash)
{
- unsigned char output[100];
+ unsigned char output[MBEDTLS_MD_MAX_SIZE] = {0};
const mbedtls_md_info_t *md_info = NULL;
- memset(output, 0x00, 100);
-
md_info = mbedtls_md_info_from_type(md_type);
TEST_ASSERT(md_info != NULL);
@@ -175,7 +172,7 @@
data_t *hash)
{
unsigned char src_str[1000];
- unsigned char output[100];
+ unsigned char output[MBEDTLS_MD_MAX_SIZE] = {0};
int halfway, len;
const mbedtls_md_info_t *md_info = NULL;
@@ -185,7 +182,6 @@
mbedtls_md_init(&ctx_copy);
memset(src_str, 0x00, 1000);
- memset(output, 0x00, 100);
strncpy((char *) src_str, text_src_string, sizeof(src_str) - 1);
len = strlen((char *) src_str);
@@ -208,7 +204,7 @@
hash->len) == 0);
/* Test clone */
- memset(output, 0x00, 100);
+ memset(output, 0x00, sizeof(output));
TEST_ASSERT(0 == mbedtls_md_update(&ctx_copy, src_str + halfway, len - halfway));
TEST_ASSERT(0 == mbedtls_md_finish(&ctx_copy, output));
@@ -225,7 +221,7 @@
/* BEGIN_CASE */
void md_hex_multi(int md_type, data_t *src_str, data_t *hash)
{
- unsigned char output[100];
+ unsigned char output[MBEDTLS_MD_MAX_SIZE] = {0};
const mbedtls_md_info_t *md_info = NULL;
mbedtls_md_context_t ctx, ctx_copy;
int halfway;
@@ -233,8 +229,6 @@
mbedtls_md_init(&ctx);
mbedtls_md_init(&ctx_copy);
- memset(output, 0x00, 100);
-
md_info = mbedtls_md_info_from_type(md_type);
TEST_ASSERT(md_info != NULL);
TEST_ASSERT(0 == mbedtls_md_setup(&ctx, md_info, 0));
@@ -254,7 +248,7 @@
hash->len) == 0);
/* Test clone */
- memset(output, 0x00, 100);
+ memset(output, 0x00, sizeof(output));
TEST_ASSERT(0 == mbedtls_md_update(&ctx_copy, src_str->x + halfway, src_str->len - halfway));
TEST_ASSERT(0 == mbedtls_md_finish(&ctx_copy, output));
@@ -273,11 +267,9 @@
data_t *key_str, data_t *src_str,
data_t *hash)
{
- unsigned char output[100];
+ unsigned char output[MBEDTLS_MD_MAX_SIZE] = {0};
const mbedtls_md_info_t *md_info = NULL;
- memset(output, 0x00, 100);
-
md_info = mbedtls_md_info_from_type(md_type);
TEST_ASSERT(md_info != NULL);
@@ -294,15 +286,13 @@
void md_hmac_multi(int md_type, int trunc_size, data_t *key_str,
data_t *src_str, data_t *hash)
{
- unsigned char output[100];
+ unsigned char output[MBEDTLS_MD_MAX_SIZE] = {0};
const mbedtls_md_info_t *md_info = NULL;
mbedtls_md_context_t ctx;
int halfway;
mbedtls_md_init(&ctx);
- memset(output, 0x00, 100);
-
md_info = mbedtls_md_info_from_type(md_type);
TEST_ASSERT(md_info != NULL);
TEST_ASSERT(0 == mbedtls_md_setup(&ctx, md_info, 1));
@@ -319,7 +309,7 @@
trunc_size, hash->len) == 0);
/* Test again, for reset() */
- memset(output, 0x00, 100);
+ memset(output, 0x00, sizeof(output));
TEST_ASSERT(0 == mbedtls_md_hmac_reset(&ctx));
TEST_ASSERT(0 == mbedtls_md_hmac_update(&ctx, src_str->x, halfway));
@@ -338,11 +328,9 @@
void mbedtls_md_file(int md_type, char *filename,
data_t *hash)
{
- unsigned char output[100];
+ unsigned char output[MBEDTLS_MD_MAX_SIZE] = {0};
const mbedtls_md_info_t *md_info = NULL;
- memset(output, 0x00, 100);
-
md_info = mbedtls_md_info_from_type(md_type);
TEST_ASSERT(md_info != NULL);