commit | 12a3e7edf6dad774bf3d824dd2cb5405268f087e | [log] [tgz] |
---|---|---|
author | David Benjamin <davidben@google.com> | Tue Apr 13 11:47:36 2021 -0400 |
committer | CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org> | Tue Apr 13 17:27:36 2021 +0000 |
tree | 15159971350ae5d7caef4822811ae142b94b35f0 | |
parent | e4c19175abe1c1a113ee95ad0c8b3fc4239b5ccb [diff] |
Check for invalid ALPN inputs in SSL_(CTX_)set_alpn_protos. See also 86a90dc749af91f8a7b8da6628c9ffca2bae3009 from upstream. This differs from upstream's which treats {NULL, 2} as a valid way to spell the empty list. (I think this is a mistake and have asked them about it.) Upstream's CL also, for them, newly makes the empty list disable ALPN, when previously they'd disable it but misread it as a malloc failure. For us, we'd already fixed the misreading due to our switch to bssl::Array and bssl::Span, but the documentation was odd. This CL preserves that behavior, but updates the documentation and writes a test. Update-Note: SSL_CTX_set_alpn_protos and SSL_set_alpn_protos will now reject invalud inputs. Previously, they would accept them, but silently send an invalid ALPN extension which the server would almost certainly error on. Change-Id: Id5830b2d8c3a5cee4712878fe92ee350c4914367 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/46804 Commit-Queue: David Benjamin <davidben@google.com> Reviewed-by: Adam Langley <agl@google.com>
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.
Project links:
There are other files in this directory which might be helpful: