]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Fix the checks of factor_size/modulus_bitsize
authorZhiguo Zhou <zhiguo.zhou@intel.com>
Mon, 20 Jan 2025 03:29:50 +0000 (11:29 +0800)
committerZhiguo Zhou <zhiguo.zhou@intel.com>
Mon, 10 Feb 2025 07:14:33 +0000 (15:14 +0800)
The factor_size/modulus_bitsize are required to be 1024/1536/2048.

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25751)

crypto/bn/rsaz_exp_x2.c

index b19cbf62a6ecebb42f54d773b3d0c02196c0ebbe..74d87e6b252bcb8082428d09d578400f6875adf1 100644 (file)
@@ -231,7 +231,7 @@ int ossl_rsaz_mod_exp_avx512_x2(BN_ULONG *res1,
     AMM amm = NULL;
     int avx512ifma = !!ossl_rsaz_avx512ifma_eligible();
 
-    if (factor_size % 512)
+    if (factor_size != 1024 && factor_size != 1536 && factor_size != 2048)
         goto err;
 
     amm = ossl_rsaz_amm52_x1[(factor_size / 512 - 2) * 2 + avx512ifma];
@@ -382,7 +382,7 @@ int RSAZ_mod_exp_x2_ifma256(BN_ULONG *out,
  */
 # define DAMS(r,a,m,k0) damm((r),(a),(a),(m),(k0))
 
-    if (modulus_bitsize % 512)
+    if (modulus_bitsize != 1024 && modulus_bitsize != 1536 && modulus_bitsize != 2048)
         goto err;
 
     damm = ossl_rsaz_amm52_x2[(modulus_bitsize / 512 - 2) * 2 + avx512ifma];