Go to file
David Benjamin cba2b62a85 Implement draft-ietf-tls-curve25519-01 in Go.
This injects an interface to abstract between elliptic.Curve and a
byte-oriented curve25519. The C implementation will follow a similar
strategy.

Note that this slightly tweaks the order of operations. The client sees
the server public key before sending its own. To keep the abstraction
simple, ecdhCurve expects to generate a keypair before consuming the
peer's public key. Instead, the client handshake stashes the serialized
peer public value and defers parsing it until it comes time to send
ClientKeyExchange. (This is analogous to what it was doing before where
it stashed the parsed peer public value instead.)

BUG=571231

Change-Id: I771bb9aee0dd6903d395c84ec4f2dd7b3e366c75
Reviewed-on: https://boringssl-review.googlesource.com/6777
Reviewed-by: Adam Langley <agl@google.com>
2015-12-22 18:43:33 +00:00
crypto Rewrite ssl3_send_server_key_exchange to use CBB. 2015-12-22 17:23:58 +00:00
decrepit Fix AES XTS mode key size. 2015-11-19 18:08:33 +00:00
fuzz Add four, basic fuzz tests. 2015-11-10 19:14:01 +00:00
include/openssl Rewrite ssl3_send_server_key_exchange to use CBB. 2015-12-22 17:23:58 +00:00
ssl Implement draft-ietf-tls-curve25519-01 in Go. 2015-12-22 18:43:33 +00:00
tool Add a tool to generate Ed25519 keys. 2015-12-18 23:34:13 +00:00
util Chromium's update.sh is dead, long live update.py 2015-12-16 17:30:31 +00:00
.clang-format Inital import. 2014-06-20 13:17:32 -07:00
.gitignore Fix documentation generation on Windows. 2015-08-19 00:45:42 +00:00
BUILDING.md Make the instructions for downloading the ARM compiler easier to copy and paste. 2015-10-30 20:47:08 +00:00
CMakeLists.txt Remove NO_ASM define that I accidently included in the previous commit. 2015-12-22 16:34:33 +00:00
codereview.settings Add a codereview.settings file. 2014-11-18 22:21:33 +00:00
FUZZING.md Update and fix fuzzing instructions. 2015-11-10 23:37:36 +00:00
LICENSE Note that some files carry in Intel license. 2015-07-28 00:55:32 +00:00
PORTING.md Update PORTING.md for the new renego API. 2015-10-26 19:27:56 +00:00
README.md Add four, basic fuzz tests. 2015-11-10 19:14:01 +00:00
STYLE.md Update link to Google style guide. 2015-11-03 02:02:12 +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:

  • PORTING.md: how to port OpenSSL-using code to BoringSSL.
  • BUILDING.md: how to build BoringSSL
  • STYLE.md: rules and guidelines for coding style.
  • include/openssl: public headers with API documentation in comments. Also available online.
  • FUZZING.md: information about fuzzing BoringSSL.