Go to file
Adam Langley 6b35262272 Maintain EVP_MD_CTX invariants.
Thanks to Lennart Beringer for pointing that that malloc failures could
lead to invalid EVP_MD_CTX states. This change cleans up the code in
general so that fallible operations are all performed before mutating
objects. Thus failures should leave objects in a valid state.

Also, |ctx_size| is never zero and a hash with no context is not
sensible, so stop handling that case and simply assert that it doesn't
occur.

Change-Id: Ia60c3796dcf2f772f55e12e49431af6475f64d52
Reviewed-on: https://boringssl-review.googlesource.com/20544
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: Adam Langley <agl@google.com>
2017-09-20 18:43:21 +00:00
.github
crypto Maintain EVP_MD_CTX invariants. 2017-09-20 18:43:21 +00:00
decrepit Add EVP AES-128 CFB128 support via decrepit. 2017-09-18 18:34:06 +00:00
fipstools Have run_cavp.go create “resp” directories as needed. 2017-06-08 19:13:01 +00:00
fuzz Refresh fuzzer corpus. 2017-09-12 19:32:13 +00:00
include/openssl Switch the buggy RSA parser off by default. 2017-09-18 19:42:51 +00:00
infra/config CQ: bring back Windows builders. 2017-08-16 06:57:35 +00:00
ssl Remove redundant calls to |OPENSSL_cleanse| and |OPENSSL_realloc_clean|. 2017-09-18 19:16:51 +00:00
third_party Fix build with VS 2017. 2017-06-07 18:56:06 +00:00
tool Add "-www" option to server tool. 2017-09-19 20:01:03 +00:00
util Refresh update_clang.py and download Windows Clang. 2017-09-18 20:36:33 +00:00
.clang-format
.gitignore Add sde-linux64 to .gitignore. 2017-05-12 14:53:07 +00:00
API-CONVENTIONS.md Fix API-CONVENTIONS.md typos. 2017-01-04 01:46:32 +00:00
BUILDING.md Revert ADX due to build issues. 2017-08-15 18:56:09 +00:00
CMakeLists.txt Tidy up some Windows compiler assumptions. 2017-08-16 19:57:06 +00:00
codereview.settings
CONTRIBUTING.md
FUZZING.md Fix typo in FUZZING.md. 2017-07-06 18:25:07 +00:00
INCORPORATING.md Update links to Bazel's site. 2016-10-31 18:16:58 +00:00
LICENSE
PORTING.md Add a note to PORTING.md about free/OPENSSL_free mixups. 2017-09-07 23:04:31 +00:00
README.md
sources.cmake Implement scrypt from RFC 7914. 2017-06-12 20:32:21 +00:00
STYLE.md Fix some style guide samples. 2017-08-31 14:24:45 +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: