Skip to content

Commit 80200c3

Browse files
committed
configure.ac: for enable-all-crypto, enable_dilithium without regard for ENABLED_EXPERIMENTAL;
wolfssl/wolfcrypt/sha512.h: add a prototype for wc_Sha512HashBlock() (only implemented in wolfcrypt/src/port/riscv/riscv-64-sha512.c); wolfcrypt/src/asn.c, wolfcrypt/src/wc_mlkem.c, wolfcrypt/src/wc_mlkem_poly.c: add casts (and fix a few type clashes) to suppress for -Wconversions.
1 parent 397afa9 commit 80200c3

File tree

5 files changed

+309
-309
lines changed

5 files changed

+309
-309
lines changed

configure.ac

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1359,11 +1359,7 @@ then
13591359
test "$enable_kyber" = "" && test "$enable_mlkem" = "" && enable_mlkem=yes
13601360
test "$enable_lms" = "" && enable_lms='yes,sha256-192'
13611361
test "$enable_xmss" = "" && enable_xmss=yes
1362-
1363-
if test "$ENABLED_EXPERIMENTAL" = "yes"
1364-
then
1365-
test "$enable_dilithium" = "" && enable_dilithium=yes
1366-
fi
1362+
test "$enable_dilithium" = "" && enable_dilithium=yes
13671363

13681364
if test "$ENABLED_LINUXKM_DEFAULTS" != "yes"
13691365
then
@@ -11193,7 +11189,7 @@ echo " * AES-XTS: $ENABLED_AESXTS"
1119311189
echo " * AES-XTS streaming: $ENABLED_AESXTS_STREAM"
1119411190
echo " * AES-SIV: $ENABLED_AESSIV"
1119511191
echo " * AES-EAX: $ENABLED_AESEAX"
11196-
echo " * AES Bitspliced: $ENABLED_AESBS"
11192+
echo " * AES Bitsliced: $ENABLED_AESBS"
1119711193
echo " * AES Key Wrap: $ENABLED_AESKEYWRAP"
1119811194
echo " * ARIA: $ENABLED_ARIA"
1119911195
echo " * ASCON: $ENABLED_ASCON"

wolfcrypt/src/asn.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18684,7 +18684,7 @@ int ConfirmSignature(SignatureCtx* sigCtx,
1868418684
goto exit_cs;
1868518685
}
1868618686
if ((ret = wc_dilithium_set_level(sigCtx->key.dilithium,
18687-
level)) < 0) {
18687+
(byte)level)) < 0) {
1868818688
goto exit_cs;
1868918689
}
1869018690
if ((ret = wc_Dilithium_PublicKeyDecode(key, &idx,
@@ -31914,7 +31914,7 @@ static int MakeSignature(CertSignCtx* certSignCtx, const byte* buf, word32 sz,
3191431914
ret = wc_dilithium_sign_ctx_msg(NULL, 0, buf, sz, sig,
3191531915
&outSz, dilithiumKey, rng);
3191631916
if (ret == 0)
31917-
ret = outSz;
31917+
ret = (int)outSz;
3191831918
}
3191931919
}
3192031920
#endif /* HAVE_DILITHIUM && !WOLFSSL_DILITHIUM_NO_SIGN */

wolfcrypt/src/wc_mlkem.c

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -426,16 +426,16 @@ int wc_MlKemKey_MakeKeyWithRandom(MlKemKey* key, const unsigned char* rand,
426426
#ifndef WOLFSSL_MLKEM_MAKEKEY_SMALL_MEM
427427
#ifndef WOLFSSL_MLKEM_CACHE_A
428428
/* e (v) | a (m) */
429-
e = (sword16*)XMALLOC((k + 1) * k * MLKEM_N * sizeof(sword16),
429+
e = (sword16*)XMALLOC(((size_t)k + 1) * (size_t)k * MLKEM_N * sizeof(sword16),
430430
key->heap, DYNAMIC_TYPE_TMP_BUFFER);
431431
#else
432432
/* e (v) */
433-
e = (sword16*)XMALLOC(k * MLKEM_N * sizeof(sword16),
433+
e = (sword16*)XMALLOC((size_t)k * MLKEM_N * sizeof(sword16),
434434
key->heap, DYNAMIC_TYPE_TMP_BUFFER);
435435
#endif
436436
#else
437437
/* e (v) */
438-
e = (sword16*)XMALLOC(k * MLKEM_N * sizeof(sword16),
438+
e = (sword16*)XMALLOC((size_t)k * MLKEM_N * sizeof(sword16),
439439
key->heap, DYNAMIC_TYPE_TMP_BUFFER);
440440
#endif
441441
if (e == NULL) {
@@ -467,7 +467,7 @@ int wc_MlKemKey_MakeKeyWithRandom(MlKemKey* key, const unsigned char* rand,
467467
#endif
468468
#ifndef WOLFSSL_NO_ML_KEM
469469
{
470-
buf[0] = k;
470+
buf[0] = (byte)k;
471471
/* Expand 33 bytes of random to 32.
472472
* Alg 13: Step 1: (rho,sigma) <- G(d||k)
473473
*/
@@ -663,7 +663,7 @@ static int mlkemkey_encapsulate(MlKemKey* key, const byte* m, byte* r, byte* c)
663663
sword16* e1 = NULL;
664664
sword16* e2 = NULL;
665665
#endif
666-
unsigned int k = 0;
666+
int k = 0;
667667
unsigned int compVecSz = 0;
668668
#ifndef WOLFSSL_NO_MALLOC
669669
sword16* y = NULL;
@@ -729,10 +729,10 @@ static int mlkemkey_encapsulate(MlKemKey* key, const byte* m, byte* r, byte* c)
729729
if (ret == 0) {
730730
/* Allocate dynamic memory for all matrices, vectors and polynomials. */
731731
#ifndef WOLFSSL_MLKEM_ENCAPSULATE_SMALL_MEM
732-
y = (sword16*)XMALLOC(((k + 3) * k + 3) * MLKEM_N * sizeof(sword16),
732+
y = (sword16*)XMALLOC((((size_t)k + 3) * (size_t)k + 3) * MLKEM_N * sizeof(sword16),
733733
key->heap, DYNAMIC_TYPE_TMP_BUFFER);
734734
#else
735-
y = (sword16*)XMALLOC(3 * k * MLKEM_N * sizeof(sword16), key->heap,
735+
y = (sword16*)XMALLOC(3 * (size_t)k * MLKEM_N * sizeof(sword16), key->heap,
736736
DYNAMIC_TYPE_TMP_BUFFER);
737737
#endif
738738
if (y == NULL) {
@@ -825,7 +825,7 @@ static int mlkemkey_encapsulate(MlKemKey* key, const byte* m, byte* r, byte* c)
825825
#if defined(WOLFSSL_KYBER512) || defined(WOLFSSL_WC_ML_KEM_512)
826826
if (k == WC_ML_KEM_512_K) {
827827
/* Step 22: c_1 <- ByteEncode_d_u(Compress_d_u(u)) */
828-
mlkem_vec_compress_10(c1, u, k);
828+
mlkem_vec_compress_10(c1, u, (unsigned)k);
829829
/* Step 23: c_2 <- ByteEncode_d_v(Compress_d_v(v)) */
830830
mlkem_compress_4(c2, v);
831831
/* Step 24: return c <- (c_1||c_2) */
@@ -834,7 +834,7 @@ static int mlkemkey_encapsulate(MlKemKey* key, const byte* m, byte* r, byte* c)
834834
#if defined(WOLFSSL_KYBER768) || defined(WOLFSSL_WC_ML_KEM_768)
835835
if (k == WC_ML_KEM_768_K) {
836836
/* Step 22: c_1 <- ByteEncode_d_u(Compress_d_u(u)) */
837-
mlkem_vec_compress_10(c1, u, k);
837+
mlkem_vec_compress_10(c1, u, (unsigned)k);
838838
/* Step 23: c_2 <- ByteEncode_d_v(Compress_d_v(v)) */
839839
mlkem_compress_4(c2, v);
840840
/* Step 24: return c <- (c_1||c_2) */
@@ -1148,7 +1148,7 @@ static MLKEM_NOINLINE int mlkemkey_decapsulate(MlKemKey* key, byte* m,
11481148
int ret = 0;
11491149
sword16* v;
11501150
sword16* w;
1151-
unsigned int k = 0;
1151+
int k = 0;
11521152
unsigned int compVecSz;
11531153
#if defined(WOLFSSL_SMALL_STACK) || \
11541154
(!defined(USE_INTEL_SPEEDUP) && !defined(WOLFSSL_NO_MALLOC))
@@ -1230,15 +1230,15 @@ static MLKEM_NOINLINE int mlkemkey_decapsulate(MlKemKey* key, byte* m,
12301230
#if defined(WOLFSSL_KYBER512) || defined(WOLFSSL_WC_ML_KEM_512)
12311231
if (k == WC_ML_KEM_512_K) {
12321232
/* Step 3: u' <= Decompress_d_u(ByteDecode_d_u(c1)) */
1233-
mlkem_vec_decompress_10(u, c1, k);
1233+
mlkem_vec_decompress_10(u, c1, (unsigned)k);
12341234
/* Step 4: v' <= Decompress_d_v(ByteDecode_d_v(c2)) */
12351235
mlkem_decompress_4(v, c2);
12361236
}
12371237
#endif
12381238
#if defined(WOLFSSL_KYBER768) || defined(WOLFSSL_WC_ML_KEM_768)
12391239
if (k == WC_ML_KEM_768_K) {
12401240
/* Step 3: u' <= Decompress_d_u(ByteDecode_d_u(c1)) */
1241-
mlkem_vec_decompress_10(u, c1, k);
1241+
mlkem_vec_decompress_10(u, c1, (unsigned)k);
12421242
/* Step 4: v' <= Decompress_d_v(ByteDecode_d_v(c2)) */
12431243
mlkem_decompress_4(v, c2);
12441244
}
@@ -1408,7 +1408,7 @@ int wc_MlKemKey_Decapsulate(MlKemKey* key, unsigned char* ss,
14081408
}
14091409
if (ret == 0) {
14101410
/* Compare generated cipher text with that passed in. */
1411-
fail = mlkem_cmp(ct, cmp, ctSz);
1411+
fail = mlkem_cmp(ct, cmp, (int)ctSz);
14121412

14131413
#if defined(WOLFSSL_MLKEM_KYBER) && !defined(WOLFSSL_NO_ML_KEM)
14141414
if (key->type & MLKEM_KYBER)
@@ -1437,7 +1437,7 @@ int wc_MlKemKey_Decapsulate(MlKemKey* key, unsigned char* ss,
14371437
if (ret == 0) {
14381438
/* Set secret to kr or fake secret on comparison failure. */
14391439
for (i = 0; i < WC_ML_KEM_SYM_SZ; i++) {
1440-
ss[i] = kr[i] ^ ((kr[i] ^ msg[i]) & fail);
1440+
ss[i] = (byte)(kr[i] ^ ((kr[i] ^ msg[i]) & fail));
14411441
}
14421442
}
14431443
}
@@ -1478,7 +1478,7 @@ static void mlkemkey_decode_public(sword16* pub, byte* pubSeed, const byte* p,
14781478

14791479
/* Decode public key that is vector of polynomials.
14801480
* Step 2: t <- ByteDecode_12(ek_PKE[0 : 384k]) */
1481-
mlkem_from_bytes(pub, p, k);
1481+
mlkem_from_bytes(pub, p, (int)k);
14821482
p += k * WC_ML_KEM_POLY_SIZE;
14831483

14841484
/* Read public key seed.
@@ -1594,7 +1594,7 @@ int wc_MlKemKey_DecodePrivateKey(MlKemKey* key, const unsigned char* in,
15941594
/* Decode private key that is vector of polynomials.
15951595
* Alg 18 Step 1: dk_PKE <- dk[0 : 384k]
15961596
* Alg 15 Step 5: s_hat <- ByteDecode_12(dk_PKE) */
1597-
mlkem_from_bytes(key->priv, p, k);
1597+
mlkem_from_bytes(key->priv, p, (int)k);
15981598
p += k * WC_ML_KEM_POLY_SIZE;
15991599

16001600
/* Decode the public key that is after the private key. */
@@ -1938,7 +1938,7 @@ int wc_MlKemKey_EncodePrivateKey(MlKemKey* key, unsigned char* out, word32 len)
19381938

19391939
if (ret == 0) {
19401940
/* Encode private key that is vector of polynomials. */
1941-
mlkem_to_bytes(p, key->priv, k);
1941+
mlkem_to_bytes(p, key->priv, (int)k);
19421942
p += WC_ML_KEM_POLY_SIZE * k;
19431943

19441944
/* Encode public key. */
@@ -2055,7 +2055,7 @@ int wc_MlKemKey_EncodePublicKey(MlKemKey* key, unsigned char* out, word32 len)
20552055
int i;
20562056

20572057
/* Encode public key polynomial by polynomial. */
2058-
mlkem_to_bytes(p, key->pub, k);
2058+
mlkem_to_bytes(p, key->pub, (int)k);
20592059
p += k * WC_ML_KEM_POLY_SIZE;
20602060

20612061
/* Append public seed. */

0 commit comments

Comments
 (0)