@@ -76,9 +76,9 @@ __contract__(
7676static int mld_check_pct (uint8_t const pk [CRYPTO_PUBLICKEYBYTES ],
7777 uint8_t const sk [CRYPTO_SECRETKEYBYTES ])
7878{
79- uint8_t message [1 ] = {0 };
80- uint8_t signature [CRYPTO_BYTES ];
81- uint8_t pk_test [CRYPTO_PUBLICKEYBYTES ];
79+ MLD_ALIGN uint8_t message [1 ] = {0 };
80+ MLD_ALIGN uint8_t signature [CRYPTO_BYTES ];
81+ MLD_ALIGN uint8_t pk_test [CRYPTO_PUBLICKEYBYTES ];
8282 size_t siglen ;
8383 int ret ;
8484
@@ -179,9 +179,9 @@ int crypto_sign_keypair_internal(uint8_t pk[CRYPTO_PUBLICKEYBYTES],
179179 uint8_t sk [CRYPTO_SECRETKEYBYTES ],
180180 const uint8_t seed [MLDSA_SEEDBYTES ])
181181{
182- uint8_t seedbuf [2 * MLDSA_SEEDBYTES + MLDSA_CRHBYTES ];
183- uint8_t inbuf [MLDSA_SEEDBYTES + 2 ];
184- uint8_t tr [MLDSA_TRBYTES ];
182+ MLD_ALIGN uint8_t seedbuf [2 * MLDSA_SEEDBYTES + MLDSA_CRHBYTES ];
183+ MLD_ALIGN uint8_t inbuf [MLDSA_SEEDBYTES + 2 ];
184+ MLD_ALIGN uint8_t tr [MLDSA_TRBYTES ];
185185 const uint8_t * rho , * rhoprime , * key ;
186186 mld_polyvecl mat [MLDSA_K ];
187187 mld_polyvecl s1 , s1hat ;
@@ -263,7 +263,7 @@ MLD_EXTERNAL_API
263263int crypto_sign_keypair (uint8_t pk [CRYPTO_PUBLICKEYBYTES ],
264264 uint8_t sk [CRYPTO_SECRETKEYBYTES ])
265265{
266- uint8_t seed [MLDSA_SEEDBYTES ];
266+ MLD_ALIGN uint8_t seed [MLDSA_SEEDBYTES ];
267267 int result ;
268268 mld_randombytes (seed , MLDSA_SEEDBYTES );
269269 MLD_CT_TESTING_SECRET (seed , sizeof (seed ));
@@ -388,7 +388,7 @@ __contract__(
388388 ensures (return_value == 0 || return_value == -1 )
389389)
390390{
391- uint8_t challenge_bytes [MLDSA_CTILDEBYTES ];
391+ MLD_ALIGN uint8_t challenge_bytes [MLDSA_CTILDEBYTES ];
392392 unsigned int n ;
393393 mld_polyvecl y , z ;
394394 mld_polyveck w , w1 , w0 , h ;
@@ -525,7 +525,8 @@ int crypto_sign_signature_internal(uint8_t sig[CRYPTO_BYTES], size_t *siglen,
525525 const uint8_t sk [CRYPTO_SECRETKEYBYTES ],
526526 int externalmu )
527527{
528- uint8_t seedbuf [2 * MLDSA_SEEDBYTES + MLDSA_TRBYTES + 2 * MLDSA_CRHBYTES ];
528+ MLD_ALIGN uint8_t
529+ seedbuf [2 * MLDSA_SEEDBYTES + MLDSA_TRBYTES + 2 * MLDSA_CRHBYTES ];
529530 uint8_t * rho , * tr , * key , * mu , * rhoprime ;
530531 mld_polyvecl mat [MLDSA_K ], s1 ;
531532 mld_polyveck t0 , s2 ;
@@ -620,8 +621,8 @@ int crypto_sign_signature(uint8_t sig[CRYPTO_BYTES], size_t *siglen,
620621 size_t ctxlen ,
621622 const uint8_t sk [CRYPTO_SECRETKEYBYTES ])
622623{
623- uint8_t pre [257 ];
624- uint8_t rnd [MLDSA_RNDBYTES ];
624+ MLD_ALIGN uint8_t pre [257 ];
625+ MLD_ALIGN uint8_t rnd [MLDSA_RNDBYTES ];
625626 int result ;
626627
627628 if (ctxlen > 255 )
@@ -664,7 +665,7 @@ int crypto_sign_signature_extmu(uint8_t sig[CRYPTO_BYTES], size_t *siglen,
664665 const uint8_t mu [MLDSA_CRHBYTES ],
665666 const uint8_t sk [CRYPTO_SECRETKEYBYTES ])
666667{
667- uint8_t rnd [MLDSA_RNDBYTES ];
668+ MLD_ALIGN uint8_t rnd [MLDSA_RNDBYTES ];
668669 int result ;
669670
670671 /* Randomized variant of ML-DSA. If you need the deterministic variant,
@@ -716,11 +717,11 @@ int crypto_sign_verify_internal(const uint8_t *sig, size_t siglen,
716717 int externalmu )
717718{
718719 unsigned int i ;
719- uint8_t buf [MLDSA_K * MLDSA_POLYW1_PACKEDBYTES ];
720- uint8_t rho [MLDSA_SEEDBYTES ];
721- uint8_t mu [MLDSA_CRHBYTES ];
722- uint8_t c [MLDSA_CTILDEBYTES ];
723- uint8_t c2 [MLDSA_CTILDEBYTES ];
720+ MLD_ALIGN uint8_t buf [MLDSA_K * MLDSA_POLYW1_PACKEDBYTES ];
721+ MLD_ALIGN uint8_t rho [MLDSA_SEEDBYTES ];
722+ MLD_ALIGN uint8_t mu [MLDSA_CRHBYTES ];
723+ MLD_ALIGN uint8_t c [MLDSA_CTILDEBYTES ];
724+ MLD_ALIGN uint8_t c2 [MLDSA_CTILDEBYTES ];
724725 mld_poly cp ;
725726 mld_polyvecl mat [MLDSA_K ], z ;
726727 mld_polyveck t1 , w1 , tmp , h ;
@@ -743,7 +744,7 @@ int crypto_sign_verify_internal(const uint8_t *sig, size_t siglen,
743744 if (!externalmu )
744745 {
745746 /* Compute CRH(H(rho, t1), pre, msg) */
746- uint8_t hpk [MLDSA_CRHBYTES ];
747+ MLD_ALIGN uint8_t hpk [MLDSA_CRHBYTES ];
747748 mld_H (hpk , MLDSA_TRBYTES , pk , CRYPTO_PUBLICKEYBYTES , NULL , 0 , NULL , 0 );
748749 mld_H (mu , MLDSA_CRHBYTES , hpk , MLDSA_TRBYTES , pre , prelen , m , mlen );
749750
@@ -823,7 +824,7 @@ int crypto_sign_verify(const uint8_t *sig, size_t siglen, const uint8_t *m,
823824 size_t mlen , const uint8_t * ctx , size_t ctxlen ,
824825 const uint8_t pk [CRYPTO_PUBLICKEYBYTES ])
825826{
826- uint8_t pre [257 ];
827+ MLD_ALIGN uint8_t pre [257 ];
827828 int result ;
828829
829830 if (ctxlen > 255 )
0 commit comments