Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions tests/api/test_mldsa.c
Original file line number Diff line number Diff line change
Expand Up @@ -30713,6 +30713,9 @@ int test_wc_MldsaDecisionCoverage(void)
len = 0;
ExpectIntEQ(wc_MlDsaKey_GetPubLen(NULL, &len),
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
/* Valid key with a NULL len -> BAD_FUNC_ARG. */
ExpectIntEQ(wc_MlDsaKey_GetPubLen(&key, NULL),
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
/* Valid key with a level set -> *len >= 0, decision FALSE side, ret 0. */
len = 0;
ExpectIntEQ(wc_MlDsaKey_GetPubLen(&key, &len), 0);
Expand All @@ -30722,6 +30725,8 @@ int test_wc_MldsaDecisionCoverage(void)
len = 0;
ExpectIntEQ(wc_MlDsaKey_GetPrivLen(NULL, &len),
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
ExpectIntEQ(wc_MlDsaKey_GetPrivLen(&key, NULL),
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
len = 0;
ExpectIntEQ(wc_MlDsaKey_GetPrivLen(&key, &len), 0);
ExpectIntGT(len, 0);
Expand All @@ -30730,6 +30735,8 @@ int test_wc_MldsaDecisionCoverage(void)
len = 0;
ExpectIntEQ(wc_MlDsaKey_GetSigLen(NULL, &len),
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
ExpectIntEQ(wc_MlDsaKey_GetSigLen(&key, NULL),
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
len = 0;
ExpectIntEQ(wc_MlDsaKey_GetSigLen(&key, &len), 0);
ExpectIntGT(len, 0);
Expand Down
39 changes: 27 additions & 12 deletions wolfcrypt/src/wc_mldsa.c
Original file line number Diff line number Diff line change
Expand Up @@ -12532,15 +12532,20 @@ int wc_MlDsaKey_PrivSize(wc_MlDsaKey* key)
* @param [in] key ML-DSA private/public key.
* @param [out] len Private key size for set level.
* @return 0 on success.
* @return BAD_FUNC_ARG when key is NULL or level not set,
* @return BAD_FUNC_ARG when key or len is NULL or level not set,
*/
int wc_MlDsaKey_GetPrivLen(wc_MlDsaKey* key, int* len)
{
int ret = 0;

*len = wc_MlDsaKey_PrivSize(key);
if (*len < 0) {
ret = *len;
if (len == NULL) {
ret = BAD_FUNC_ARG;
}
else {
*len = wc_MlDsaKey_PrivSize(key);
if (*len < 0) {
ret = *len;
}
}

return ret;
Expand Down Expand Up @@ -12594,15 +12599,20 @@ int wc_MlDsaKey_PubSize(wc_MlDsaKey* key)
* @param [in] key ML-DSA private/public key.
* @param [out] len Public key size for set level.
* @return 0 on success.
* @return BAD_FUNC_ARG when key is NULL or level not set,
* @return BAD_FUNC_ARG when key or len is NULL or level not set,
*/
int wc_MlDsaKey_GetPubLen(wc_MlDsaKey* key, int* len)
{
int ret = 0;

*len = wc_MlDsaKey_PubSize(key);
if (*len < 0) {
ret = *len;
if (len == NULL) {
ret = BAD_FUNC_ARG;
}
else {
*len = wc_MlDsaKey_PubSize(key);
if (*len < 0) {
ret = *len;
}
}

return ret;
Expand Down Expand Up @@ -12655,15 +12665,20 @@ int wc_MlDsaKey_SigSize(wc_MlDsaKey* key)
* @param [in] key ML-DSA private/public key.
* @param [out] len Signature size for set level.
* @return 0 on success.
* @return BAD_FUNC_ARG when key is NULL or level not set,
* @return BAD_FUNC_ARG when key or len is NULL or level not set,
*/
int wc_MlDsaKey_GetSigLen(wc_MlDsaKey* key, int* len)
{
int ret = 0;

*len = wc_MlDsaKey_SigSize(key);
if (*len < 0) {
ret = *len;
if (len == NULL) {
ret = BAD_FUNC_ARG;
}
else {
*len = wc_MlDsaKey_SigSize(key);
if (*len < 0) {
ret = *len;
}
}

return ret;
Expand Down