Go to file
David Benjamin 26b7c35d8c Fix DSA, preserve BN_FLG_CONSTTIME
Operations in the DSA signing algorithm should run in constant time in
order to avoid side channel attacks. A flaw in the OpenSSL DSA
implementation means that a non-constant time codepath is followed for
certain operations. This has been demonstrated through a cache-timing
attack to be sufficient for an attacker to recover the private DSA key.

CVE-2016-2178

(Imported from upstream's 621eaf49a289bfac26d4cbcdb7396e796784c534 and
b7d0f2834e139a20560d64c73e2565e93715ce2b.)

We should eventually not depend on BN_FLG_CONSTTIME since it's a mess (seeing
as the original fix was wrong until we reported b7d0f2834e to them), but, for
now, go with the simplest fix.

Change-Id: I9ea15c1d1cc3a7e21ef5b591e1879ec97a179718
Reviewed-on: https://boringssl-review.googlesource.com/8172
Reviewed-by: Steven Valdez <svaldez@google.com>
Reviewed-by: David Benjamin <davidben@google.com>
2016-06-07 19:29:18 +00:00
.github Add a PULL_REQUEST_TEMPLATE. 2016-03-08 15:23:52 +00:00
crypto Fix DSA, preserve BN_FLG_CONSTTIME 2016-06-07 19:29:18 +00:00
decrepit Replace base64 decoding. 2016-05-26 17:59:10 +00:00
fuzz Replace base64 decoding. 2016-05-26 17:59:10 +00:00
include/openssl Add a no-op OpenSSL_add_all_algorithms_conf. 2016-06-06 15:58:02 +00:00
ssl Don't call ERR_clear_system_error in so many places. 2016-06-07 15:53:44 +00:00
third_party/android-cmake Check in a copy of android-cmake. 2016-05-19 16:55:25 +00:00
tool Print out whether EMS was supported. 2016-05-31 21:11:55 +00:00
util Be consistent about 𝑥_tests.txt 2016-06-06 15:57:46 +00:00
.clang-format Import `newhope' (post-quantum key exchange). 2016-04-26 22:53:59 +00:00
.gitignore
BUILDING.md Update Android build instructions. 2016-05-19 16:56:25 +00:00
CMakeLists.txt Use non-deprecated methods on windows. 2016-05-19 20:30:50 +00:00
codereview.settings
CONTRIBUTING.md Add a CONTRIBUTING.md file. 2016-02-10 21:38:19 +00:00
FUZZING.md Replace base64 decoding. 2016-05-26 17:59:10 +00:00
INCORPORATING.md Update INCORPORATING.md to clarify one point. 2016-05-17 19:39:55 +00:00
LICENSE Add some bug references to the LICENSE file. 2016-02-22 20:16:48 +00:00
PORTING.md Document the d2i object reuse changes in PORTING.md. 2016-02-02 16:21:20 +00:00
README.md Add document about incorporating BoringSSL into a project. 2016-04-27 18:04:37 +00:00
STYLE.md Update style guide note on files which match OpenSSL. 2016-06-02 21:37:21 +00:00

BoringSSL

BoringSSL is a fork of OpenSSL that is designed to meet Google's needs.

Although BoringSSL is an open source project, it is not intended for general use, as OpenSSL is. We don't recommend that third parties depend upon it. Doing so is likely to be frustrating because there are no guarantees of API or ABI stability.

Programs ship their own copies of BoringSSL when they use it and we update everything as needed when deciding to make API changes. This allows us to mostly avoid compromises in the name of compatibility. It works for us, but it may not work for you.

BoringSSL arose because Google used OpenSSL for many years in various ways and, over time, built up a large number of patches that were maintained while tracking upstream OpenSSL. As Google's product portfolio became more complex, more copies of OpenSSL sprung up and the effort involved in maintaining all these patches in multiple places was growing steadily.

Currently BoringSSL is the SSL library in Chrome/Chromium, Android (but it's not part of the NDK) and a number of other apps/programs.

There are other files in this directory which might be helpful: