@@ -745,15 +745,31 @@ void mld_polyz_pack(uint8_t *r, const mld_poly *a)
745745MLD_INTERNAL_API
746746void mld_polyz_unpack (mld_poly * r , const uint8_t * a )
747747{
748+ unsigned int i ;
748749#if defined(MLD_USE_NATIVE_POLYZ_UNPACK_17 ) && MLD_CONFIG_PARAMETER_SET == 44
749750 /* TODO: proof */
750- mld_polyz_unpack_17_native (r -> coeffs , a );
751+ int ret ;
752+ ret = mld_polyz_unpack_17_native (r -> coeffs , a );
753+ if (ret == MLD_NATIVE_FUNC_SUCCESS )
754+ {
755+ mld_assert_bound (r -> coeffs , MLDSA_N , - (MLDSA_GAMMA1 - 1 ), MLDSA_GAMMA1 + 1 );
756+ return ;
757+ }
751758#elif defined(MLD_USE_NATIVE_POLYZ_UNPACK_19 ) && \
752759 (MLD_CONFIG_PARAMETER_SET == 65 || MLD_CONFIG_PARAMETER_SET == 87 )
753760 /* TODO: proof */
754- mld_polyz_unpack_19_native (r -> coeffs , a );
755- #elif MLD_CONFIG_PARAMETER_SET == 44
756- unsigned int i ;
761+ int ret ;
762+ ret = mld_polyz_unpack_19_native (r -> coeffs , a );
763+ if (ret == MLD_NATIVE_FUNC_SUCCESS )
764+ {
765+ mld_assert_bound (r -> coeffs , MLDSA_N , - (MLDSA_GAMMA1 - 1 ), MLDSA_GAMMA1 + 1 );
766+ return ;
767+ }
768+ #endif /* !(MLD_USE_NATIVE_POLYZ_UNPACK_17 && MLD_CONFIG_PARAMETER_SET == 44) \
769+ && MLD_USE_NATIVE_POLYZ_UNPACK_19 && (MLD_CONFIG_PARAMETER_SET == 65 \
770+ || MLD_CONFIG_PARAMETER_SET == 87) */
771+
772+ #if MLD_CONFIG_PARAMETER_SET == 44
757773 for (i = 0 ; i < MLDSA_N / 4 ; ++ i )
758774 __loop__ (
759775 invariant (i <= MLDSA_N /4 )
@@ -784,11 +800,7 @@ void mld_polyz_unpack(mld_poly *r, const uint8_t *a)
784800 r -> coeffs [4 * i + 2 ] = MLDSA_GAMMA1 - r -> coeffs [4 * i + 2 ];
785801 r -> coeffs [4 * i + 3 ] = MLDSA_GAMMA1 - r -> coeffs [4 * i + 3 ];
786802 }
787- #else /* !(MLD_USE_NATIVE_POLYZ_UNPACK_17 && MLD_CONFIG_PARAMETER_SET == 44) \
788- && !(MLD_USE_NATIVE_POLYZ_UNPACK_19 && (MLD_CONFIG_PARAMETER_SET == \
789- 65 || MLD_CONFIG_PARAMETER_SET == 87)) && MLD_CONFIG_PARAMETER_SET == \
790- 44 */
791- unsigned int i ;
803+ #else /* MLD_CONFIG_PARAMETER_SET == 44 */
792804 for (i = 0 ; i < MLDSA_N / 2 ; ++ i )
793805 __loop__ (
794806 invariant (i <= MLDSA_N /2 )
@@ -808,11 +820,7 @@ void mld_polyz_unpack(mld_poly *r, const uint8_t *a)
808820 r -> coeffs [2 * i + 0 ] = MLDSA_GAMMA1 - r -> coeffs [2 * i + 0 ];
809821 r -> coeffs [2 * i + 1 ] = MLDSA_GAMMA1 - r -> coeffs [2 * i + 1 ];
810822 }
811- #endif /* !(MLD_USE_NATIVE_POLYZ_UNPACK_17 && MLD_CONFIG_PARAMETER_SET == 44) \
812- && !(MLD_USE_NATIVE_POLYZ_UNPACK_19 && (MLD_CONFIG_PARAMETER_SET == \
813- 65 || MLD_CONFIG_PARAMETER_SET == 87)) && MLD_CONFIG_PARAMETER_SET \
814- != 44 */
815-
823+ #endif /* MLD_CONFIG_PARAMETER_SET != 44 */
816824 mld_assert_bound (r -> coeffs , MLDSA_N , - (MLDSA_GAMMA1 - 1 ), MLDSA_GAMMA1 + 1 );
817825}
818826
0 commit comments