Compare commits

...

2 Commits

Author SHA1 Message Date
Andrew Golovashevich 4b788a51bc
Update code to be compatible with C90 in bn_gcd 2024-05-07 13:52:38 +03:00
Andrew Golovashevich 1203da82b0
Fixes in bn_gcd 2024-05-07 13:03:23 +03:00
1 changed files with 3 additions and 2 deletions

View File

@ -619,11 +619,12 @@ int BN_gcd(BIGNUM *r, const BIGNUM *in_a, const BIGNUM *in_b, BN_CTX *ctx)
pow2_numbits_temp = r->d[i] | g->d[i];
pow2_condition_mask = ((BN_ULONG)!constant_time_is_zero(pow2_flag)) & ((BN_ULONG)!constant_time_is_zero_64(pow2_numbits_temp));
pow2_flag &= !pow2_condition_mask;
pow2_condition_mask = ((~pow2_condition_mask & (pow2_condition_mask - 1)) >> (BN_BITS2 - 1)) - 1; // https://github.com/openssl/openssl/blob/067fbc01b9e867b31c71091d62f0f9012dc9e41a/crypto/bn/bn_lib.c#L950C5-L950C74
pow2_shifts += 1 & pow2_condition_mask;
pow2_shifts += 1 & pow2_flag;
pow2_condition_mask = ((~pow2_condition_mask & (pow2_condition_mask - 1)) >> (BN_BITS2 - 1)) - 1; /* https://github.com/openssl/openssl/blob/067fbc01b9e867b31c71091d62f0f9012dc9e41a/crypto/bn/bn_lib.c#L950C5-L950C74 */
pow2_condition_mask = (pow2_numbits ^ pow2_numbits_temp) & pow2_condition_mask;
pow2_numbits ^= pow2_condition_mask;
}
pow2_numbits = ~pow2_numbits;
pow2_shifts *= BN_BITS2;
pow2_flag = 1;
for (j = 0; j < BN_BITS2; j++) {