@@ -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 ;
@@ -526,7 +526,8 @@ int crypto_sign_signature_internal(uint8_t sig[CRYPTO_BYTES], size_t *siglen,
526526 int externalmu )
527527{
528528 int result ;
529- uint8_t seedbuf [2 * MLDSA_SEEDBYTES + MLDSA_TRBYTES + 2 * MLDSA_CRHBYTES ];
529+ MLD_ALIGN uint8_t
530+ seedbuf [2 * MLDSA_SEEDBYTES + MLDSA_TRBYTES + 2 * MLDSA_CRHBYTES ];
530531 uint8_t * rho , * tr , * key , * mu , * rhoprime ;
531532 mld_polyvecl mat [MLDSA_K ], s1 ;
532533 mld_polyveck t0 , s2 ;
@@ -632,8 +633,8 @@ int crypto_sign_signature(uint8_t sig[CRYPTO_BYTES], size_t *siglen,
632633 size_t ctxlen ,
633634 const uint8_t sk [CRYPTO_SECRETKEYBYTES ])
634635{
635- uint8_t pre [257 ];
636- uint8_t rnd [MLDSA_RNDBYTES ];
636+ MLD_ALIGN uint8_t pre [257 ];
637+ MLD_ALIGN uint8_t rnd [MLDSA_RNDBYTES ];
637638 int result ;
638639
639640 if (ctxlen > 255 )
@@ -678,7 +679,7 @@ int crypto_sign_signature_extmu(uint8_t sig[CRYPTO_BYTES], size_t *siglen,
678679 const uint8_t mu [MLDSA_CRHBYTES ],
679680 const uint8_t sk [CRYPTO_SECRETKEYBYTES ])
680681{
681- uint8_t rnd [MLDSA_RNDBYTES ];
682+ MLD_ALIGN uint8_t rnd [MLDSA_RNDBYTES ];
682683 int result ;
683684
684685 /* Randomized variant of ML-DSA. If you need the deterministic variant,
@@ -731,11 +732,11 @@ int crypto_sign_verify_internal(const uint8_t *sig, size_t siglen,
731732{
732733 unsigned int i ;
733734 int res ;
734- uint8_t buf [MLDSA_K * MLDSA_POLYW1_PACKEDBYTES ];
735- uint8_t rho [MLDSA_SEEDBYTES ];
736- uint8_t mu [MLDSA_CRHBYTES ];
737- uint8_t c [MLDSA_CTILDEBYTES ];
738- uint8_t c2 [MLDSA_CTILDEBYTES ];
735+ MLD_ALIGN uint8_t buf [MLDSA_K * MLDSA_POLYW1_PACKEDBYTES ];
736+ MLD_ALIGN uint8_t rho [MLDSA_SEEDBYTES ];
737+ MLD_ALIGN uint8_t mu [MLDSA_CRHBYTES ];
738+ MLD_ALIGN uint8_t c [MLDSA_CTILDEBYTES ];
739+ MLD_ALIGN uint8_t c2 [MLDSA_CTILDEBYTES ];
739740 mld_poly cp ;
740741 mld_polyvecl mat [MLDSA_K ], z ;
741742 mld_polyveck t1 , w1 , tmp , h ;
@@ -761,7 +762,7 @@ int crypto_sign_verify_internal(const uint8_t *sig, size_t siglen,
761762 if (!externalmu )
762763 {
763764 /* Compute CRH(H(rho, t1), pre, msg) */
764- uint8_t hpk [MLDSA_CRHBYTES ];
765+ MLD_ALIGN uint8_t hpk [MLDSA_CRHBYTES ];
765766 mld_H (hpk , MLDSA_TRBYTES , pk , CRYPTO_PUBLICKEYBYTES , NULL , 0 , NULL , 0 );
766767 mld_H (mu , MLDSA_CRHBYTES , hpk , MLDSA_TRBYTES , pre , prelen , m , mlen );
767768
@@ -844,7 +845,7 @@ int crypto_sign_verify(const uint8_t *sig, size_t siglen, const uint8_t *m,
844845 size_t mlen , const uint8_t * ctx , size_t ctxlen ,
845846 const uint8_t pk [CRYPTO_PUBLICKEYBYTES ])
846847{
847- uint8_t pre [257 ];
848+ MLD_ALIGN uint8_t pre [257 ];
848849 int result ;
849850
850851 if (ctxlen > 255 )
0 commit comments