Skip to content

Commit

Permalink
tiny dilithium cleanup: add test, more cleanup.
Browse files Browse the repository at this point in the history
  • Loading branch information
philljj committed Sep 19, 2024
1 parent 059b388 commit 85cc627
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 2 deletions.
26 changes: 26 additions & 0 deletions wolfcrypt/test/test.c
Original file line number Diff line number Diff line change
Expand Up @@ -42071,16 +42071,25 @@ static wc_test_ret_t dilithium_param_vfy_test(int param, const byte* pubKey,
{
byte msg[512];
dilithium_key* key;
byte * pubExported = NULL;
wc_test_ret_t ret;
int i;
int res = 0;
word32 lenExported = pubKeyLen;
int n_diff = 0;

key = (dilithium_key*)XMALLOC(sizeof(*key), HEAP_HINT,
DYNAMIC_TYPE_TMP_BUFFER);
if (key == NULL) {
ERROR_OUT(WC_TEST_RET_ENC_ERRNO, out);
}

pubExported = (byte*)XMALLOC(pubKeyLen, HEAP_HINT,
DYNAMIC_TYPE_TMP_BUFFER);
if (pubExported == NULL) {
ERROR_OUT(WC_TEST_RET_ENC_ERRNO, out);
}

/* make dummy msg */
for (i = 0; i < (int)sizeof(msg); i++) {
msg[i] = (byte)i;
Expand All @@ -42099,6 +42108,22 @@ static wc_test_ret_t dilithium_param_vfy_test(int param, const byte* pubKey,
if (ret != 0)
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);

/* Now test the ExportPubRaw API, verify we recover the original pub. */
ret = wc_dilithium_export_public(key, pubExported, &lenExported);
if (ret != 0) {
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
}

if (lenExported <= 0 || lenExported != pubKeyLen) {
ERROR_OUT(WC_TEST_RET_ENC_EC(lenExported), out);
}

n_diff = XMEMCMP(pubExported, pubKey, pubKeyLen);

if (n_diff) {
ERROR_OUT(WC_TEST_RET_ENC_EC(n_diff), out);
}

#ifndef WOLFSSL_DILITHIUM_FIPS204_DRAFT
ret = wc_dilithium_verify_ctx_msg(sig, sigLen, NULL, 0, msg,
(word32)sizeof(msg), &res, key);
Expand All @@ -42113,6 +42138,7 @@ static wc_test_ret_t dilithium_param_vfy_test(int param, const byte* pubKey,
out:
wc_dilithium_free(key);
XFREE(key, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
XFREE(pubExported, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
return ret;
}

Expand Down
4 changes: 2 additions & 2 deletions wolfssl/wolfcrypt/dilithium.h
Original file line number Diff line number Diff line change
Expand Up @@ -799,15 +799,15 @@ WOLFSSL_API int wc_Dilithium_PrivateKeyToDer(dilithium_key* key, byte* output,
#define wc_MlDsaKey_ExportPrivRaw(key, out, outLen) \
wc_dilithium_export_private_only(key, out, outLen)
#define wc_MlDsaKey_ImportPrivRaw(key, in, inLen) \
wc_dilithium_import_private_only(out, outLen, key)
wc_dilithium_import_private_only(in, inLen, key)
#define wc_MlDsaKey_Sign(key, sig, sigSz, msg, msgSz, rng) \
wc_dilithium_sign_msg(msg, msgSz, sig, sigSz, key, rng)
#define wc_MlDsaKey_Free(key) \
wc_dilithium_free(key)
#define wc_MlDsaKey_ExportPubRaw(key, out, outLen) \
wc_dilithium_export_public(key, out, outLen)
#define wc_MlDsaKey_ImportPubRaw(key, in, inLen) \
wc_dilithium_import_public(out, outLen, key)
wc_dilithium_import_public(in, inLen, key)
#define wc_MlDsaKey_Verify(key, sig, sigSz, msg, msgSz, res) \
wc_dilithium_verify_msg(sig, sigSz, msg, msgSz, res, key)

Expand Down

0 comments on commit 85cc627

Please sign in to comment.