Fix timing leak in BN_from_montgomery_word.
authorDavid Benjamin <davidben@google.com>
Wed, 31 Jan 2018 19:47:41 +0000 (14:47 -0500)
committerAndy Polyakov <appro@openssl.org>
Thu, 1 Feb 2018 20:52:17 +0000 (21:52 +0100)
commitf345b1f39d9b4e4c9ef07e7522e9b2a870c9ca09
treee88b0384f90e80d3919f0224863aaed34ccf1ab0
parent39eeb64f59ff838f976ad305de7d15747d47a41c
Fix timing leak in BN_from_montgomery_word.

BN_from_montgomery_word doesn't have a constant memory access pattern.
Replace the pointer trick with a constant-time select. There is, of
course, still the bn_correct_top leak pervasive in BIGNUM itself.

See also https://boringssl-review.googlesource.com/22904 from BoringSSL.

Reviewed-by: Andy Polyakov <appro@openssl.org>
Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
(Merged from https://github.com/openssl/openssl/pull/5228)
crypto/bn/bn_mont.c