@@ -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