From fe9882769e503127b0956ee2bd65ad292d6c90dc Mon Sep 17 00:00:00 2001 From: Ruby Martin Date: Wed, 22 May 2024 09:13:31 -0600 Subject: [PATCH 1/5] Test case for wc_HpkeGenerateKeyPair() NULL argument --- wolfcrypt/test/test.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c index 78bf1cdc4..aa829ca8a 100644 --- a/wolfcrypt/test/test.c +++ b/wolfcrypt/test/test.c @@ -27521,6 +27521,13 @@ static wc_test_ret_t hpke_test_single(Hpke* hpke) ret = WC_TEST_RET_ENC_EC(ret); } + if (ret == 0) { + ret = wc_HpkeGenerateKeyPair(NULL, &receiverKey, rng); + if (ret != -173) + ret = WC_TEST_RET_ENC_EC(ret); + ret = 0; + } + /* seal */ if (ret == 0) { ret = wc_HpkeSealBase(hpke, ephemeralKey, receiverKey, From 159981f442a6563a23806dd4627276c97b2d2763 Mon Sep 17 00:00:00 2001 From: Ruby Martin Date: Wed, 22 May 2024 15:23:38 -0600 Subject: [PATCH 2/5] include negative test comment and BAD_FUNC_ARG --- wolfcrypt/test/test.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c index aa829ca8a..805798230 100644 --- a/wolfcrypt/test/test.c +++ b/wolfcrypt/test/test.c @@ -27520,10 +27520,11 @@ static wc_test_ret_t hpke_test_single(Hpke* hpke) if (ret != 0) ret = WC_TEST_RET_ENC_EC(ret); } - + + /* NULL argument results in failure */ if (ret == 0) { ret = wc_HpkeGenerateKeyPair(NULL, &receiverKey, rng); - if (ret != -173) + if (ret != BAD_FUNC_ARG) ret = WC_TEST_RET_ENC_EC(ret); ret = 0; } From f2492da6a477ed28481a4b44662e3c7de53f9f72 Mon Sep 17 00:00:00 2001 From: Ruby Martin Date: Wed, 22 May 2024 15:23:38 -0600 Subject: [PATCH 3/5] include negative test comment and BAD_FUNC_ARG --- wolfcrypt/test/test.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c index 805798230..22290b436 100644 --- a/wolfcrypt/test/test.c +++ b/wolfcrypt/test/test.c @@ -27526,7 +27526,8 @@ static wc_test_ret_t hpke_test_single(Hpke* hpke) ret = wc_HpkeGenerateKeyPair(NULL, &receiverKey, rng); if (ret != BAD_FUNC_ARG) ret = WC_TEST_RET_ENC_EC(ret); - ret = 0; + else + ret = 0; } /* seal */ From b8838dca44ad4bdd79850d3435be7e65232b0211 Mon Sep 17 00:00:00 2001 From: Ruby Martin Date: Thu, 23 May 2024 13:36:48 -0600 Subject: [PATCH 4/5] Tests all NULL argument cases --- wolfcrypt/test/test.c | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c index 22290b436..a2e4fa0d1 100644 --- a/wolfcrypt/test/test.c +++ b/wolfcrypt/test/test.c @@ -27521,15 +27521,6 @@ static wc_test_ret_t hpke_test_single(Hpke* hpke) ret = WC_TEST_RET_ENC_EC(ret); } - /* NULL argument results in failure */ - if (ret == 0) { - ret = wc_HpkeGenerateKeyPair(NULL, &receiverKey, rng); - if (ret != BAD_FUNC_ARG) - ret = WC_TEST_RET_ENC_EC(ret); - else - ret = 0; - } - /* seal */ if (ret == 0) { ret = wc_HpkeSealBase(hpke, ephemeralKey, receiverKey, @@ -27565,6 +27556,31 @@ static wc_test_ret_t hpke_test_single(Hpke* hpke) ret = WC_TEST_RET_ENC_NC; } + /* Negative test case with NULL argument */ + if (ret == 0) { + ret = wc_HpkeGenerateKeyPair(NULL, &receiverKey, rng); + if (ret != BAD_FUNC_ARG) + ret = WC_TEST_RET_ENC_EC(ret); + else + ret = 0; + } + + if (ret == 0) { + ret = wc_HpkeGenerateKeyPair(hpke, NULL, rng); + if (ret != BAD_FUNC_ARG) + ret = WC_TEST_RET_ENC_EC(ret); + else + ret = 0; + } + + if (ret == 0) { + ret = wc_HpkeGenerateKeyPair(hpke, &receiverKey, NULL); + if (ret != BAD_FUNC_ARG) + ret = WC_TEST_RET_ENC_EC(ret); + else + ret = 0; + } + if (ephemeralKey != NULL) wc_HpkeFreeKey(hpke, hpke->kem, ephemeralKey, hpke->heap); From 078fb66b29dade5e856e8f6e7729e87976b04d1d Mon Sep 17 00:00:00 2001 From: Ruby Martin Date: Thu, 23 May 2024 13:57:08 -0600 Subject: [PATCH 5/5] Negative tests for all NULL arguments --- wolfcrypt/test/test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c index a2e4fa0d1..9434d73da 100644 --- a/wolfcrypt/test/test.c +++ b/wolfcrypt/test/test.c @@ -27520,7 +27520,7 @@ static wc_test_ret_t hpke_test_single(Hpke* hpke) if (ret != 0) ret = WC_TEST_RET_ENC_EC(ret); } - + /* seal */ if (ret == 0) { ret = wc_HpkeSealBase(hpke, ephemeralKey, receiverKey,