Skip to content

Commit 2934370

Browse files
authored
Merge pull request #10391 from Frauschi/xmss_Wconversion
XMSS Wconversion fixes
2 parents 01f500b + fe353af commit 2934370

3 files changed

Lines changed: 172 additions & 145 deletions

File tree

wolfcrypt/src/wc_xmss.c

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -751,13 +751,15 @@ static WC_INLINE int wc_xmsskey_signupdate(XmssKey* key, byte* sig,
751751
*/
752752
#ifndef WOLFSSL_WC_XMSS_SMALL
753753
if (key->is_xmssmt) {
754-
ret = wc_xmssmt_sign(state, msg, msgLen, key->sk, sig);
754+
ret = wc_xmssmt_sign(state, msg, (word32)msgLen, key->sk,
755+
sig);
755756
}
756757
else {
757-
ret = wc_xmss_sign(state, msg, msgLen, key->sk, sig);
758+
ret = wc_xmss_sign(state, msg, (word32)msgLen, key->sk,
759+
sig);
758760
}
759761
#else
760-
ret = wc_xmssmt_sign(state, msg, msgLen, key->sk, sig);
762+
ret = wc_xmssmt_sign(state, msg, (word32)msgLen, key->sk, sig);
761763
#endif
762764
if (ret == WC_NO_ERR_TRACE(KEY_EXHAUSTED_E)) {
763765
/* Signature space exhausted. */
@@ -1085,7 +1087,7 @@ int wc_XmssKey_MakeKey(XmssKey* key, WC_RNG* rng)
10851087
}
10861088
#ifdef WOLFSSL_SMALL_STACK
10871089
if (ret == 0) {
1088-
seed = (unsigned char*)XMALLOC(3 * key->params->n, key->heap,
1090+
seed = (unsigned char*)XMALLOC(3U * key->params->n, key->heap,
10891091
DYNAMIC_TYPE_TMP_BUFFER);
10901092
if (seed == NULL) {
10911093
ret = MEMORY_E;
@@ -1095,7 +1097,7 @@ int wc_XmssKey_MakeKey(XmssKey* key, WC_RNG* rng)
10951097

10961098
if (ret == 0) {
10971099
/* Generate three random seeds. */
1098-
ret = wc_RNG_GenerateBlock(rng, seed, 3 * key->params->n);
1100+
ret = wc_RNG_GenerateBlock(rng, seed, 3U * key->params->n);
10991101
}
11001102

11011103
if (ret == 0) {
@@ -1476,10 +1478,11 @@ int wc_XmssKey_ExportPubRaw(const XmssKey* key, byte* out, word32* outLen)
14761478
}
14771479

14781480
if (ret == 0) {
1479-
int i = 0;
1481+
word32 i = 0;
14801482
/* First copy the oid into buffer. */
14811483
for (; i < XMSS_OID_LEN; i++) {
1482-
out[XMSS_OID_LEN - i - 1] = (key->oid >> (8 * i)) & 0xFF;
1484+
out[XMSS_OID_LEN - i - 1U] =
1485+
(byte)((key->oid >> (8U * i)) & 0xFFU);
14831486
}
14841487
/* Copy the public key data into buffer after oid. */
14851488
XMEMCPY(out + XMSS_OID_LEN, key->pk, pubLen - XMSS_OID_LEN);
@@ -1606,7 +1609,7 @@ int wc_XmssKey_Verify(XmssKey* key, const byte* sig, word32 sigLen,
16061609
int ret = 0;
16071610

16081611
/* Validate parameters. */
1609-
if ((key == NULL) || (sig == NULL) || (m == NULL)) {
1612+
if ((key == NULL) || (sig == NULL) || (m == NULL) || (mLen <= 0)) {
16101613
ret = BAD_FUNC_ARG;
16111614
}
16121615
/* Validate state. */
@@ -1634,7 +1637,7 @@ int wc_XmssKey_Verify(XmssKey* key, const byte* sig, word32 sigLen,
16341637
ret = wc_xmss_state_init(state, key->params, key->heap);
16351638
if (ret == 0) {
16361639
/* Verify using either XMSS^MT function as it works for both. */
1637-
ret = wc_xmssmt_verify(state, m, mLen, sig, key->pk);
1640+
ret = wc_xmssmt_verify(state, m, (word32)mLen, sig, key->pk);
16381641
/* Free state after use. */
16391642
wc_xmss_state_free(state);
16401643
}

0 commit comments

Comments
 (0)