BoringSSL is a fork of OpenSSL that is designed to meet Google's needs
David Benjamin 35a5a9e7be Align PKCS12_parse closer to OpenSSL. 2 days ago
.github Add a PULL_REQUEST_TEMPLATE. 3 years ago
crypto Align PKCS12_parse closer to OpenSSL. 1 day ago
decrepit Rename 'md' output parameter to 'out' and add bounds. 1 month ago
fipstools Add a CFI tester to CHECK_ABI. 4 months ago
fuzz Refresh fuzzer corpus. 4 months ago
include/openssl Align PKCS12_parse closer to OpenSSL. 1 day ago
ssl Save and restore errors when ignoring ssl_send_alert result. 2 weeks ago
third_party Fix the last casts in third_party/sike. 5 days ago
tool Add support for SIKE/p503 post-quantum KEM 6 days ago
util Update generate_build_files.py for SIKE. 2 days ago
.clang-format Import `newhope' (post-quantum key exchange). 3 years ago
.gitignore Add compiled python files to .gitignore. 3 months ago
API-CONVENTIONS.md Clarify "reference" and fix typo. 8 months ago
BREAKING-CHANGES.md Add some notes on how to handle breaking changes. 1 year ago
BUILDING.md Add instructions for debugging on Android with gdb. 3 months ago
CMakeLists.txt Update third_party/googletest. 1 month ago
CONTRIBUTING.md Add a CONTRIBUTING.md file. 3 years ago
FUZZING.md Switch to Clang 6.0's fuzzer support. 8 months ago
INCORPORATING.md Update URL for GN quick start guide. 9 months ago
LICENSE Add support for SIKE/p503 post-quantum KEM 6 days ago
PORTING.md Remove reference to SSL3 in PORTING.md. 10 months ago
README.md Add some notes on how to handle breaking changes. 1 year ago
STYLE.md Fix some style guide samples. 1 year ago
codereview.settings Comment change in codereview.settings 10 months ago
go.mod Add go 1.11 to go.mod. 3 months ago
sources.cmake Add new curve/hash ECDSA combinations from Wycheproof. 9 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: