openssl/crypto
David Benjamin f345b1f39d 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)
2018-02-01 21:52:17 +01:00
..
aes Processing GNU-style "make variables" - separate CPP flags from C flags 2018-01-28 07:26:10 +01:00
aria
asn1 Fix error-path memory leak in asn_mime.c 2018-01-24 18:12:21 +00:00
async Copyright update of more files that have changed this year 2018-01-19 13:34:03 +01:00
bf Processing GNU-style "make variables" - separate CPP flags from C flags 2018-01-28 07:26:10 +01:00
bio Revert the crypto "global lock" implementation 2018-01-31 12:25:28 -06:00
blake2 Remove parentheses of return. 2017-10-18 16:05:06 +01:00
bn Fix timing leak in BN_from_montgomery_word. 2018-02-01 21:52:17 +01:00
buffer Remove parentheses of return. 2017-10-18 16:05:06 +01:00
camellia Processing GNU-style "make variables" - separate CPP flags from C flags 2018-01-28 07:26:10 +01:00
cast Processing GNU-style "make variables" - separate CPP flags from C flags 2018-01-28 07:26:10 +01:00
chacha Processing GNU-style "make variables" - separate CPP flags from C flags 2018-01-28 07:26:10 +01:00
cmac
cms Check for malloc failure 2017-11-27 14:47:42 -05:00
comp Add comments to NULL func ptrs in bio_method_st 2017-12-18 07:04:48 +10:00
conf Resolve warnings in VC-WIN32 build, which allows to add /WX. 2017-11-13 10:58:57 +01:00
ct Null pointer used. 2017-09-18 06:52:13 +10:00
des Processing GNU-style "make variables" - separate CPP flags from C flags 2018-01-28 07:26:10 +01:00
dh Support public key and param check in EVP interface 2017-11-20 07:20:30 +01:00
dsa Check return value of OBJ_nid2obj in dsa_pub_encode. 2017-11-03 15:46:51 +01:00
dso Remove parentheses of return. 2017-10-18 16:05:06 +01:00
ec Processing GNU-style "make variables" - separate CPP flags from C flags 2018-01-28 07:26:10 +01:00
engine Revert the crypto "global lock" implementation 2018-01-31 12:25:28 -06:00
err Add TLSv1.3 post-handshake authentication (PHA) 2018-02-01 17:07:56 +00:00
evp SHA512/224 and SHA512/256 2018-01-24 07:09:46 +10:00
hmac
idea Remove parentheses of return. 2017-10-18 16:05:06 +01:00
include/internal SHA512/224 and SHA512/256 2018-01-24 07:09:46 +10:00
kdf
lhash lhash.c: Replace Unicode EN DASH with the ASCII char '-'. 2017-11-11 12:44:09 +01:00
md2 Remove parentheses of return. 2017-10-18 16:05:06 +01:00
md4 Remove parentheses of return. 2017-10-18 16:05:06 +01:00
md5 Processing GNU-style "make variables" - separate CPP flags from C flags 2018-01-28 07:26:10 +01:00
mdc2 Remove parentheses of return. 2017-10-18 16:05:06 +01:00
modes Processing GNU-style "make variables" - separate CPP flags from C flags 2018-01-28 07:26:10 +01:00
objects Revert the crypto "global lock" implementation 2018-01-31 12:25:28 -06:00
ocsp Add documentation for the OCSP_basic_sign() and OCSP_basic_sign_ctx() functions. 2018-01-24 18:30:31 +00:00
pem Remove parentheses of return. 2017-10-18 16:05:06 +01:00
perlasm Copyright update of more files that have changed this year 2018-01-19 13:34:03 +01:00
pkcs7 Remove parentheses of return. 2017-10-18 16:05:06 +01:00
pkcs12
poly1305 poly1305/poly1305_ieee754.c: add support for MIPS. 2018-01-31 22:14:29 +01:00
rand Revert the crypto "global lock" implementation 2018-01-31 12:25:28 -06:00
rc2 Remove email addresses from source code. 2017-10-13 10:06:59 -04:00
rc4 Processing GNU-style "make variables" - separate CPP flags from C flags 2018-01-28 07:26:10 +01:00
rc5 Processing GNU-style "make variables" - separate CPP flags from C flags 2018-01-28 07:26:10 +01:00
ripemd Processing GNU-style "make variables" - separate CPP flags from C flags 2018-01-28 07:26:10 +01:00
rsa Minor cleanup of the rsa mp limits code 2017-12-13 17:29:01 +01:00
seed
sha Processing GNU-style "make variables" - separate CPP flags from C flags 2018-01-28 07:26:10 +01:00
siphash Remove email addresses from source code. 2017-10-13 10:06:59 -04:00
sm3 SM3: restructure to EVP internal and update doc to right location 2017-11-06 07:21:15 +08:00
sm4 SM4: Add SM4 block cipher to EVP 2017-10-31 15:19:14 +10:00
srp
stack Add sk_TYPE_new_reserve() function 2017-10-26 09:35:36 +10:00
store Revert the crypto "global lock" implementation 2018-01-31 12:25:28 -06:00
ts
txt_db Remove parentheses of return. 2017-10-18 16:05:06 +01:00
ui Removre comment with user's name 2017-11-08 10:37:52 -05:00
whrlpool Processing GNU-style "make variables" - separate CPP flags from C flags 2018-01-28 07:26:10 +01:00
x509 Update copyright years on all files merged since Jan 1st 2018 2018-01-09 05:49:01 +01:00
x509v3 Add accessors for AdmissionSyntax 2018-01-22 11:29:52 -05:00
alphacpuid.pl
arm64cpuid.pl
arm_arch.h Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
armcap.c Create a prototype for OPENSSL_rdtsc 2017-11-25 14:30:11 +01:00
armv4cpuid.pl
build.info Processing GNU-style "make variables" - separate CPP flags from C flags 2018-01-28 07:26:10 +01:00
c64xpluscpuid.pl Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
cpt_err.c
cryptlib.c Copyright update of more files that have changed this year 2018-01-19 13:34:03 +01:00
ctype.c
cversion.c Fix SOURCE_DATE_EPOCH bug; use UTC 2017-11-27 14:34:14 -05:00
dllmain.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
ebcdic.c Remove email addresses from source code. 2017-10-13 10:06:59 -04:00
ex_data.c Revert the crypto "global lock" implementation 2018-01-31 12:25:28 -06:00
ia64cpuid.S
init.c Restore clearing of init_lock after free 2018-01-31 12:25:28 -06:00
LPdir_nyi.c
LPdir_unix.c
LPdir_vms.c
LPdir_win32.c
LPdir_win.c
LPdir_wince.c
mem_clr.c
mem_dbg.c Revert the crypto "global lock" implementation 2018-01-31 12:25:28 -06:00
mem_sec.c Revert the crypto "global lock" implementation 2018-01-31 12:25:28 -06:00
mem.c Copyright update of more files that have changed this year 2018-01-19 13:34:03 +01:00
mips_arch.h
o_dir.c
o_fips.c
o_fopen.c
o_init.c
o_str.c
o_time.c
pariscid.pl
ppc_arch.h
ppccap.c
ppccpuid.pl
s390x_arch.h Update copyright years on all files merged since Jan 1st 2018 2018-01-09 05:49:01 +01:00
s390xcap.c s390x assembly pack: extend s390x capability vector. 2017-10-30 14:31:32 +01:00
s390xcpuid.pl Update copyright years on all files merged since Jan 1st 2018 2018-01-09 05:49:01 +01:00
sparc_arch.h
sparccpuid.S
sparcv9cap.c Create a prototype for OPENSSL_rdtsc 2017-11-25 14:30:11 +01:00
threads_none.c Add atomic write call 2017-10-10 08:45:53 +10:00
threads_pthread.c Return a value from atomic read on Windows. 2017-10-11 09:47:54 +10:00
threads_win.c Return a value from atomic read on Windows. 2017-10-11 09:47:54 +10:00
uid.c
vms_rms.h
x86_64cpuid.pl crypto/x86_64cpuid.pl: suppress AVX512F flag on Skylake-X. 2017-12-08 12:57:09 +01:00
x86cpuid.pl Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00