Go to file
David Benjamin ad8f5e1de9 Don't use long for timestamps.
This is the first part to fixing the SSL stack to be 2038-clean.
Internal structures and functions are switched to use OPENSSL_timeval
which, unlike timeval and long, are suitable for timestamps on all
platforms.

It is generally accepted that the year is now sometime after 1970, so
use uint64_t for the timestamps to avoid worrying about serializing
negative numbers in SSL_SESSION.

A follow-up change will fix SSL_CTX_set_current_time_cb to use
OPENSSL_timeval. This will require some coordinating with WebRTC.
DTLSv1_get_timeout is left alone for compatibility and because it stores
time remaining rather than an absolute time.

BUG=155

Change-Id: I1a5054813300874b6f29e348f9cd8ca80f6b9729
Reviewed-on: https://boringssl-review.googlesource.com/13944
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2017-03-01 21:58:38 +00:00
.github Add a PULL_REQUEST_TEMPLATE. 2016-03-08 15:23:52 +00:00
crypto Convert x25519_test to GTest. 2017-03-01 21:46:11 +00:00
decrepit Move the SSL BIO into ssl/ from decrepit/. 2017-02-03 21:08:10 +00:00
fuzz Add new cipherlist-setting APIs that reject nonsense. 2017-02-22 00:09:27 +00:00
include/openssl Don't use long for timestamps. 2017-03-01 21:58:38 +00:00
infra/config Commit-Queue config: effectively remove Andorid builders. 2016-07-26 13:14:47 +00:00
ssl Don't use long for timestamps. 2017-03-01 21:58:38 +00:00
third_party Clear the last GTest warning suppression. 2017-02-16 19:03:32 +00:00
tool Benchmark open & seal separately for AES-GCM-SIV. 2017-02-28 17:41:35 +00:00
util Convert x25519_test to GTest. 2017-03-01 21:46:11 +00:00
.clang-format Import `newhope' (post-quantum key exchange). 2016-04-26 22:53:59 +00:00
.gitignore Also add util/bot/golang to .gitignore. 2016-12-02 23:39:35 +00:00
API-CONVENTIONS.md Fix API-CONVENTIONS.md typos. 2017-01-04 01:46:32 +00:00
BUILDING.md Do a cursory conversion of a few tests to GTest. 2017-01-21 00:17:05 +00:00
CMakeLists.txt Build with -fsanitize-address-use-after-scope if -DASAN=1 2017-02-28 20:07:09 +00:00
codereview.settings No-op change to trigger the new Bazel bot. 2016-07-07 12:07:04 -07:00
CONTRIBUTING.md
FUZZING.md Merge in upstream's certificate corpus. 2016-12-12 21:41:00 +00:00
INCORPORATING.md Update links to Bazel's site. 2016-10-31 18:16:58 +00:00
LICENSE Add some bug references to the LICENSE file. 2016-02-22 20:16:48 +00:00
PORTING.md Add a note in PORTING to ask us before adding ifdefs. 2016-08-11 15:48:14 +00:00
README.md Add an API-CONVENTIONS.md document. 2016-08-04 23:27:49 +00:00
STYLE.md Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +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: