BoringSSL is a fork of OpenSSL that is designed to meet Google's needs
David Benjamin 5501a26915 Add 16384 to the default bssl speed sizes. 11 hours ago
.github Add a PULL_REQUEST_TEMPLATE. 3 years ago
crypto Rewrite BN_CTX. 2 days ago
decrepit Remove non-STRICT_ALIGNMENT code from xts.c. 1 month ago
fipstools Add a CFI tester to CHECK_ABI. 2 months ago
fuzz Refresh fuzzer corpus. 2 months ago
include/openssl Remove d2i_ASN1_UINTEGER. 2 days ago
ssl Correct outdated comments 1 week ago
third_party Clear out a bunch of -Wextra-semi warnings. 3 weeks ago
tool Add 16384 to the default bssl speed sizes. 11 hours ago
util Support three-argument instructions on x86-64. 1 week ago
.clang-format Import `newhope' (post-quantum key exchange). 2 years ago
.gitignore Add compiled python files to .gitignore. 3 weeks ago
API-CONVENTIONS.md Clarify "reference" and fix typo. 6 months ago
BREAKING-CHANGES.md Add some notes on how to handle breaking changes. 10 months ago
BUILDING.md Add instructions for debugging on Android with gdb. 1 month ago
CMakeLists.txt Add a RelWithAsserts build configuration. 1 month ago
CONTRIBUTING.md Add a CONTRIBUTING.md file. 3 years ago
FUZZING.md Switch to Clang 6.0's fuzzer support. 6 months ago
INCORPORATING.md Update URL for GN quick start guide. 7 months ago
LICENSE Note licenses for support code in the top-level LICENSE file. 11 months ago
PORTING.md Remove reference to SSL3 in PORTING.md. 8 months ago
README.md Add some notes on how to handle breaking changes. 10 months ago
STYLE.md Fix some style guide samples. 1 year ago
codereview.settings Comment change in codereview.settings 7 months ago
go.mod Add go 1.11 to go.mod. 3 weeks ago
sources.cmake Add new curve/hash ECDSA combinations from Wycheproof. 7 months ago

README.md

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: