David Benjamin
b87c803006
Guard the _GNU_SOURCE #define.
...
It is hard to control what flags consumers may try to build us with.
Account for someone adding _GNU_SOURCE to the build line.
Change-Id: I4c931da70a9dccc89382ce9100c228c29d28d4bf
Reviewed-on: https://boringssl-review.googlesource.com/13621
Commit-Queue: David Benjamin <davidben@google.com >
Commit-Queue: Adam Langley <agl@google.com >
Reviewed-by: Adam Langley <agl@google.com >
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org >
(cherry picked from commit e025f30507 )
2017-02-03 17:18:09 -05:00
David Benjamin
57cfbea68c
Convert one libssl function to C++11.
...
This is to make sure all of libssl's consumers' have sufficiently
reasonable toolchains. Once this bakes, we can go about moving
libssl to C++.
This is just starting with libssl for now because libcrypto has more
consumers and libssl would benefit more from C++ than libcrypto (though
libcrypto also has code that would benefit).
BUG=132
Change-Id: Ie02f7b0a8a95defd289cc7e62451d4b16408ca2a
Reviewed-on: https://boringssl-review.googlesource.com/13161
Commit-Queue: David Benjamin <davidben@google.com >
Reviewed-by: Adam Langley <agl@google.com >
(cherry picked from commit 1252f8758a )
2017-02-02 18:16:27 -05:00
David Benjamin
e1cc35e581
Tolerate cipher changes on TLS 1.3 resumption as a client.
...
As a client, we must tolerate this to avoid interoperability failures
with allowed server behaviors.
BUG=117
Change-Id: I9c40a2a048282e2e63ab5ee1d40773fc2eda110a
Reviewed-on: https://boringssl-review.googlesource.com/12311
Reviewed-by: David Benjamin <davidben@google.com >
2016-11-16 13:27:07 +00:00
David Benjamin
2b02f4b67d
Loosen TLS 1.3 session/cipher matching in BoGo.
...
Draft 18 sadly loosens the requirements to only requiring the PRF hash
stay fixed.
BUG=117
Change-Id: Ic94d53fd9cabaee611fcf36b0071558075e10728
Reviewed-on: https://boringssl-review.googlesource.com/12310
Reviewed-by: Nick Harper <nharper@chromium.org >
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 >
2016-11-16 13:19:25 +00:00
David Benjamin
d0d532f169
Select TLS 1.3 cipher before resumption in BoGo.
...
This is generally much cleaner and makes it possible to implement the
more lax cipher matching in draft 18.
BUG=117
Change-Id: I595d7619d60bc92e598d75b43945286323c0b72b
Reviewed-on: https://boringssl-review.googlesource.com/12309
Reviewed-by: Nick Harper <nharper@chromium.org >
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 >
2016-11-16 13:14:28 +00:00
David Benjamin
6929f27ed5
Fix return values for TLS 1.3 state machine code.
...
This is a no-op because all affected codepaths are either unreachable or
are fine because ssl_hs_error (intentionally, since C doesn't help us
any) aligns with zero. Still, fix these.
Change-Id: Ieba4e3eec3881a56b5ddcd32abdd2c9dda875eda
Reviewed-on: https://boringssl-review.googlesource.com/12313
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org >
Reviewed-by: Steven Valdez <svaldez@chromium.org >
Reviewed-by: David Benjamin <davidben@google.com >
Commit-Queue: David Benjamin <davidben@google.com >
2016-11-16 13:13:50 +00:00
David Benjamin
71186e85d1
Move ExpectTicketAge out of AcceptAnySession.
...
It doesn't particular matter, but AcceptAnySession should only skip the
things that would cause us to note accept a ticket. ExpectTicketAge is
an assertion, not part of protocol logic. Accordingly, fix the text.
Change-Id: I3bea9c58f4d5f912308252ec8834f183287d632f
Reviewed-on: https://boringssl-review.googlesource.com/12308
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org >
Reviewed-by: Nick Harper <nharper@chromium.org >
Reviewed-by: David Benjamin <davidben@google.com >
Commit-Queue: David Benjamin <davidben@google.com >
2016-11-16 07:57:15 +00:00
David Benjamin
0b8f85ebe5
Fix AcceptAnyVersion bug.
...
The version check should run if AcceptAnyVersion is *not* set.
Change-Id: I4c137564f91a86cb5e6a26e09fd4670cce8f1dcb
Reviewed-on: https://boringssl-review.googlesource.com/12307
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org >
Reviewed-by: Nick Harper <nharper@chromium.org >
Reviewed-by: David Benjamin <davidben@google.com >
Commit-Queue: David Benjamin <davidben@google.com >
2016-11-16 07:55:27 +00:00
David Benjamin
ba28dfc381
Add a -repeat-until-failure flag to runner.
...
When debugging a flaky test, it's useful to be able to run a given test
over and over.
Change-Id: I1a7b38792215550b242eb8238214d873d41becb6
Reviewed-on: https://boringssl-review.googlesource.com/12301
Reviewed-by: David Benjamin <davidben@google.com >
2016-11-16 04:19:27 +00:00
David Benjamin
53210cb48e
Do not send unsolicited SCTs in TLS 1.3.
...
The draft 18 implementation did not compute scts_requested correctly. As
a result, it always believed SCTs were requested. Fix this and add tests
for unsolicited OCSP responses and SCTs at all versions.
Thanks to Daniel Hirche for the report.
Change-Id: Ifc59c5c4d7edba5703fa485c6c7a4055b15954b4
Reviewed-on: https://boringssl-review.googlesource.com/12305
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 >
2016-11-16 00:20:09 +00:00
David Benjamin
ea80f9d5df
obfuscated_ticket_age must also be reset when comparing.
...
Thanks to Eric Rescorla for catching this.
Change-Id: Id0a024d7f705519cfe76d350e0ef2688dbd11a22
Reviewed-on: https://boringssl-review.googlesource.com/12303
Reviewed-by: Nick Harper <nharper@chromium.org >
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 >
2016-11-15 21:56:03 +00:00
David Benjamin
75f9914e17
Align TLS 1.2 and 1.3 server session validity checks.
...
Having that logic in two different places is a nuisance when we go to
add new checks like resumption stuff. Along the way, this adds missing
tests for the ClientHello cipher/session consistency check. (We'll
eventually get it for free once the cipher/resumption change is
unblocked, but get this working in the meantime.)
This also fixes a bug where the session validity checks happened in the
wrong order relative to whether tickets_supported or renew_ticket was
looked at. Fix that by lifting that logic closer to the handshake.
Change-Id: I3f4b59cfe01064f9125277dc5834e62a36e64aae
Reviewed-on: https://boringssl-review.googlesource.com/12230
Reviewed-by: Adam Langley <agl@google.com >
2016-11-15 18:18:39 +00:00
Aurelien Regat-Barrel
1e21e994ec
More flexible detection of arm processors to fix cmake errors on armv6l and armv7l devices
...
Change-Id: Iee7653f620c56136df75908830f06a1d5c597609
Reviewed-on: https://boringssl-review.googlesource.com/12240
Reviewed-by: Adam Langley <agl@google.com >
Commit-Queue: Adam Langley <agl@google.com >
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org >
2016-11-15 18:17:41 +00:00
David Benjamin
bca451e085
Remove bssl::Main wrapper in ec_test.
...
We were using a fully-qualified name for nearly everything anyway.
Change-Id: Ia32c68975ed4126feeab7b420f12b726ad6b89b3
Reviewed-on: https://boringssl-review.googlesource.com/12226
Reviewed-by: Adam Langley <agl@google.com >
2016-11-15 18:06:51 +00:00
David Benjamin
e36888d91a
Rename and document ecp_nistz256_mod_inverse.
...
The other field operations have an explicit _mont suffix to denote their
inputs and outputs are in the Montgomery domain, aside from
ecp_nistz256_neg which works either way. Do the same here.
Change-Id: I63741adaeba8140e29fb0b45dff72273e231add7
Reviewed-on: https://boringssl-review.googlesource.com/12224
Reviewed-by: Adam Langley <agl@google.com >
2016-11-15 17:07:20 +00:00
David Benjamin
dde19c6cdb
Fix booth_recode_w5 comment.
...
The file is util-64.c in BoringSSL.
Change-Id: I51891103254ae1541ea4c30f92c41d5d47c2ba55
Reviewed-on: https://boringssl-review.googlesource.com/12223
Reviewed-by: Adam Langley <agl@google.com >
2016-11-15 17:06:27 +00:00
David Benjamin
4a9313a7e7
Add low-level p256-x86_64 tests.
...
For the most part, this is with random test data which isn't
particularly good. But we'll be able to add more interesting test
vectors as they come up.
Change-Id: I9c50db7ac2c4bf978d4901000ab32e3642aea82b
Reviewed-on: https://boringssl-review.googlesource.com/12222
Reviewed-by: Adam Langley <agl@google.com >
Commit-Queue: Adam Langley <agl@google.com >
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org >
2016-11-15 17:05:01 +00:00
David Benjamin
28d1dc8c51
Perform stricter reduction in p256-x86_64-asm.pl.
...
Addition was not preserving inputs' property of being fully reduced.
Thanks to Brian Smith for reporting this.
(Imported from upstream's b62b2454fadfccaf5e055a1810d72174c2633b8f and
d3034d31e7c04b334dd245504dd4f56e513ca115.)
See also this thread.
https://mta.openssl.org/pipermail/openssl-dev/2016-August/008179.html
Change-Id: I3731f949e2e2ef539dec656c58f1820cc09a56a6
Reviewed-on: https://boringssl-review.googlesource.com/11409
Commit-Queue: David Benjamin <davidben@google.com >
Reviewed-by: Adam Langley <agl@google.com >
2016-11-15 16:26:52 +00:00
David Benjamin
c5665c9ac9
Remove out-of-date BoGo earlyDataContext parsing bits.
...
This was removed a while ago. As of -18, the early data indication
extension is just a boolean.
Change-Id: I328b9abfafad326d4c2a3b5fe981af111f8401ad
Reviewed-on: https://boringssl-review.googlesource.com/12302
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org >
Reviewed-by: Nick Harper <nharper@chromium.org >
Reviewed-by: David Benjamin <davidben@google.com >
Commit-Queue: David Benjamin <davidben@google.com >
2016-11-15 13:55:26 +00:00
David Benjamin
b8d74f5b6a
Add tests for failing cert_cb.
...
We missed that the TLS 1.3 code was inconsistent with the TLS 1.2 code.
Only on the server did we push an error code. But consistency between
client and server is probably worthwhile so, fix the 1.2 code to match
for now.
Change-Id: I17952c72048697dc66eacf0f144a66ced9cb3be8
Reviewed-on: https://boringssl-review.googlesource.com/12260
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 >
2016-11-15 07:15:54 +00:00
David Benjamin
d5ff2f93ba
Refresh TLS fuzzer corpora.
...
Change-Id: Id83611c0976dacc5bf92306ba592cb88fe69c892
Reviewed-on: https://boringssl-review.googlesource.com/12282
Reviewed-by: David Benjamin <davidben@google.com >
2016-11-15 07:01:44 +00:00
David Benjamin
fd06601340
Add a script to refresh fuzzer corpora.
...
This is getting to be a nuisance to do by hand.
Change-Id: If3aa7c666c4cc0bf97615564f258ff740a561766
Reviewed-on: https://boringssl-review.googlesource.com/12281
Reviewed-by: David Benjamin <davidben@google.com >
2016-11-15 07:01:34 +00:00
David Benjamin
9b63f2964d
Fix run_tests on fuzzer-mode builds.
...
Change-Id: I0767cd4801924170ce13b8143a9586485b8f78af
Reviewed-on: https://boringssl-review.googlesource.com/12280
Reviewed-by: Steven Valdez <svaldez@chromium.org >
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 >
2016-11-15 07:01:24 +00:00
David Benjamin
dfb4138197
Update suppressions for fuzzer mode.
...
Change-Id: I07c4b67206440d169b314f24e1b3c1c697dda24f
Reviewed-on: https://boringssl-review.googlesource.com/12204
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 >
2016-11-15 07:00:35 +00:00
David Benjamin
ffb1107c91
Add a helper function for parsing extensions blocks.
...
TLS 1.3 adds a number of places with extensions blocks that don't easily
fit into our ClientHello/EncryptedExtensions callbacks. Between
HelloRetryRequest, ServerHello, draft 18 going nuts with Certificate,
and NewSessionTicket when we do 0-RTT, this passes the "abstract things
that are repeated three times" sniff test.
For now, it rejects unknown extensions, but it will probably grow an
allow_unknown parameter for NewSessionTicket.
This involves disabling some MSVC warnings, but they're invalid as of
C99 which we otherwise require. See
https://connect.microsoft.com/VisualStudio/feedback/details/1230248/remove-c99-related-warnings-or-make-them-off-by-default
Change-Id: Iea8bf8ab216270c081dd63e79aaad9ec73b3b550
Reviewed-on: https://boringssl-review.googlesource.com/12233
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 >
2016-11-15 06:58:52 +00:00
David Benjamin
32b47a5e35
Allow PSK binder mismatches in fuzzer mode.
...
BUG=112
Change-Id: I88ef17e32e33b091ff1e27b7950f88e1d48f9278
Reviewed-on: https://boringssl-review.googlesource.com/12239
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 >
2016-11-15 06:57:54 +00:00
Steven Valdez
a833c357ed
Update to TLS 1.3 draft 18.
...
This is the squash of the following CLs:
https://boringssl-review.googlesource.com/c/12021/9
https://boringssl-review.googlesource.com/c/12022/9
https://boringssl-review.googlesource.com/c/12107/19
https://boringssl-review.googlesource.com/c/12141/22
https://boringssl-review.googlesource.com/c/12181/33
The Go portions were written by Nick Harper
BUG=112
Change-Id: I375a1fcead493ec3e0282e231ccc8d7c4dde5063
Reviewed-on: https://boringssl-review.googlesource.com/12300
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org >
Reviewed-by: David Benjamin <davidben@google.com >
Commit-Queue: David Benjamin <davidben@google.com >
2016-11-15 06:57:21 +00:00
David Benjamin
ced9479fd1
Replace hash_current_message with get_current_message.
...
For TLS 1.3 draft 18, it will be useful to get at the full current
message and not just the body. Add a hook to expose it and replace
hash_current_message with a wrapper over it.
BUG=112
Change-Id: Ib9e00dd1b78e8b72e12409d85c80e96c5b411a8b
Reviewed-on: https://boringssl-review.googlesource.com/12238
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 >
2016-11-15 06:52:10 +00:00
David Benjamin
e8b554dff8
Fix Android bots.
...
I always forget to update this when we add new certs.
Change-Id: Ib5ceeddd70934cfa763a80a3ed92b22d37be8726
Reviewed-on: https://boringssl-review.googlesource.com/12262
Reviewed-by: Steven Valdez <svaldez@chromium.org >
Reviewed-by: David Benjamin <davidben@google.com >
2016-11-15 01:45:19 +00:00
David Benjamin
2c51645c59
Add runner tests which send intermediate certificates.
...
Certificate chain with intermediate taken from Chromium's tests. Though
it doesn't really matter because the runner tests don't verify
certificates.
BUG=70
Change-Id: I46fd1d4be0f371b5bfd43370b97d2c8053cfad60
Reviewed-on: https://boringssl-review.googlesource.com/12261
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org >
Reviewed-by: Steven Valdez <svaldez@chromium.org >
Reviewed-by: David Benjamin <davidben@google.com >
Commit-Queue: David Benjamin <davidben@google.com >
2016-11-15 01:36:37 +00:00
David Benjamin
e6f2221423
Enforce record-layer version numbers.
...
We used to enforce after the version was set, but stopped enforcing with
TLS 1.3. NSS enforces the value for encrypted records, which makes sense
and avoids the problems gating it on have_version. Add tests for this.
Change-Id: I7fb5f94ab4a22e8e3b1c14205aa934952d671727
Reviewed-on: https://boringssl-review.googlesource.com/12143
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 >
2016-11-13 05:28:35 +00:00
David Benjamin
49b5038b77
Speculative fix to Android bots.
...
It's recursedeps, not recurse_deps.
Change-Id: I2c5cb293c5928ef5202ee18db5541712e5b012e6
Reviewed-on: https://boringssl-review.googlesource.com/12235
Reviewed-by: David Benjamin <davidben@google.com >
Commit-Queue: David Benjamin <davidben@google.com >
2016-11-13 05:27:28 +00:00
David Benjamin
eab773a8aa
Add missing PSK identity comment.
...
Change-Id: I1ca9f252afeea6cdcaa6d75e842eab019c82a7e4
Reviewed-on: https://boringssl-review.googlesource.com/12184
Reviewed-by: David Benjamin <davidben@google.com >
2016-11-13 05:22:38 +00:00
David Benjamin
076ade5218
Update pinned revisions in util/bot.
...
Change-Id: I0f085aed8bbb430b8d23ba2ac3f7aaa49816d785
Reviewed-on: https://boringssl-review.googlesource.com/12234
Reviewed-by: Steven Valdez <svaldez@google.com >
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 >
2016-11-13 05:08:52 +00:00
David Benjamin
78476f6065
Move tlsext_ticket_expected to SSL_HANDSHAKE.
...
It's all of one bit, but having it on the SSL object means we need
manually to reset it on renego.
Change-Id: I989dacd430fe0fa63d76451b95f036a942aefcfe
Reviewed-on: https://boringssl-review.googlesource.com/12229
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 >
2016-11-12 07:32:42 +00:00
David Benjamin
ba1660b282
Tidy up finish_message logic.
...
dtls1_finish_message should NULL *out_msg before calling OPENSSL_free,
rather than asking ssl3_complete_message to do it. ssl3_finish_message
has no need to call it at all.
Change-Id: I22054217073690ab391cd19bf9993b1ceada41fd
Reviewed-on: https://boringssl-review.googlesource.com/12231
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org >
Reviewed-by: Steven Valdez <svaldez@google.com >
Reviewed-by: David Benjamin <davidben@google.com >
Commit-Queue: David Benjamin <davidben@google.com >
2016-11-12 05:57:08 +00:00
Steven Valdez
5eead165fc
Splitting finish_message to finish_message/queue_message.
...
This is to allow for PSK binders to be munged into the ClientHello as part of
draft 18.
BUG=112
Change-Id: Ic4fd3b70fa45669389b6aaf55e61d5839f296748
Reviewed-on: https://boringssl-review.googlesource.com/12228
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 >
2016-11-12 05:01:20 +00:00
Jinguang Dong
8499621d21
Check for i2d_name_canon failures in x509_name_canon.
...
Change-Id: I0e1d79e85a2d20ab4105b81d39cdbbd692ba67da
Reviewed-on: https://boringssl-review.googlesource.com/12221
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 >
2016-11-11 10:45:03 +00:00
Adam Langley
a380f9d199
Always assume little-endian in Poly1305 reference code.
...
We don't support big-endian so this could only slow down whatever
platforms weren't listed in the #if.
Change-Id: Ie36f862663d947f591dd4896e6a2ab19122bbc0d
Reviewed-on: https://boringssl-review.googlesource.com/12202
Reviewed-by: Adam Langley <agl@google.com >
Commit-Queue: Adam Langley <agl@google.com >
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org >
2016-11-10 22:34:03 +00:00
Adam Langley
e4f96d615c
Align the non-vector Poly1305 structure.
...
The Poly1305 state defined in the header file is just a 512-byte buffer.
The vector code aligns to 64 bytes but the non-vector code did not.
Since we have lots of space to spare, this change causes the non-vector
code to also align to 64 bytes.
Change-Id: I77e26616a709e770d6eb23df47d9e292742625d7
Reviewed-on: https://boringssl-review.googlesource.com/12201
Commit-Queue: Adam Langley <agl@google.com >
Reviewed-by: Adam Langley <agl@google.com >
2016-11-10 22:28:02 +00:00
David Benjamin
45c844adbe
aes/asm/aesp8-ppc.pl: improve [backward] portability.
...
Some old assemblers can't cope with r0 in address. It's actually
sensible thing to do, because r0 is shunted to 0 in address arithmetic
and by refusing r0 assembler effectively makes you understand that.
(Imported from upstream's a54aba531327285f64cf13a909bc129e9f9d5970.)
This also pulls in a trailing whitespace fix from upstream's
609b0852e4d50251857dbbac3141ba042e35a9ae.
Change-Id: Ieec0bc8d24b98f86ce4fc9ee6ce5126d127cf452
Reviewed-on: https://boringssl-review.googlesource.com/12188
Reviewed-by: Adam Langley <agl@google.com >
2016-11-10 16:20:02 +00:00
David Benjamin
231a475355
Test bad records at all cipher suites.
...
We have AEAD-level coverage for these, but we should also test this in
the TLS stack, and at maximum size per upstream's CVE-2016-7054.
Change-Id: I1f4ad0356e793d6a3eefdc2d55a9c7e05ea08261
Reviewed-on: https://boringssl-review.googlesource.com/12187
Commit-Queue: David Benjamin <davidben@google.com >
Commit-Queue: Adam Langley <agl@google.com >
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org >
Reviewed-by: Adam Langley <agl@google.com >
2016-11-10 16:19:51 +00:00
David Benjamin
126fa278f8
Don't leak memory on ASN1_GENERALIZEDTIME_adj() error path
...
The ASN1_GENERALIZEDTIME_adj() function leaks an ASN1_GENERALIZEDTIME
object on an error path.
(Imported from upstream's fe71bb3ad97ed01ccf92812891cc2bc3ef3dce76.)
Thanks to Jinguang Dong for pointing out the bug.
Change-Id: I2c14662bb03b0cf957bd277bda487f05f07e89e7
Reviewed-on: https://boringssl-review.googlesource.com/12185
Commit-Queue: David Benjamin <davidben@google.com >
Reviewed-by: Adam Langley <agl@google.com >
2016-11-10 16:17:29 +00:00
David Benjamin
7f2ee3522d
bn/asm/x86_64-mont.pl: fix for CVE-2016-7055 (not affected).
...
(Imported from upstream's 2a7dd548a6f5d6f7f84a89c98323b70a2822406e and
9ebcbbba81eba52282df9ad8902f047e2d501f51.)
This is only in the ADX assembly codepath which we do not enable. See
$addx = 0 at the top of the file. Nonetheless, import the test vector
and fix since we still have the code in there.
Upstream's test vector only compares a*b against b*a. The expected
answer was computed using Python.
Change-Id: I3a21093978c5946d83f2d6f4f8399f69d78202cf
Reviewed-on: https://boringssl-review.googlesource.com/12186
Commit-Queue: David Benjamin <davidben@google.com >
Reviewed-by: Adam Langley <agl@google.com >
2016-11-10 16:01:39 +00:00
David Benjamin
14c7e8d282
BORINGSSL_UNSAFE_FUZZER_MODE implies BORINGSSL_UNSAFE_DETERMINISTIC_MODE.
...
We have at least three different external build definitions for the
fuzzers. That's enough that requiring each of them account for the split
fuzzer mode is probably too much turbulence.
Change-Id: I96dbb12a2b4f70bfa1b04cd0d15fda918bbf51d6
Reviewed-on: https://boringssl-review.googlesource.com/12183
Commit-Queue: David Benjamin <davidben@google.com >
Reviewed-by: Adam Langley <agl@google.com >
2016-11-09 23:01:39 +00:00
Adam Langley
c5ac2b6c78
Rename X.509 members in |SSL_SESSION| and |CERT|.
...
This change renames |peer| to |x509_peer| and |cert_chain| to
|x509_chain| in |SSL_SESSION|. It also renames |x509| to |x509_leaf| and
|chain| to |x509_chain| in |CERT|. (All with an eye to maybe making
them lazily initialised in the future).
This a) catches anyone who might be accessing these members directly and
b) makes space for |CRYPTO_BUFFER|-based values to take the unprefixed
names.
Change-Id: I10573304fb7d6f1ea03f9e645f7fc0acdaf71ac2
Reviewed-on: https://boringssl-review.googlesource.com/12162
Reviewed-by: David Benjamin <davidben@google.com >
2016-11-09 20:07:57 +00:00
David Benjamin
a983b4c248
Set SSL_MODE_NO_AUTO_CHAIN by default.
...
In transition to removing it altogether, set SSL_MODE_NO_AUTO_CHAIN by
default. If we find some consumer was relying on it, this will allow
them to revert locally with SSL_(CTX_)clear_mode, but hopefully this was
just unused.
BUG=42
Change-Id: Iaf70a436a3324ce02e02dfb18213b6715c034ff2
Reviewed-on: https://boringssl-review.googlesource.com/12180
Commit-Queue: David Benjamin <davidben@google.com >
Reviewed-by: Adam Langley <agl@google.com >
2016-11-09 19:31:38 +00:00
Matthew Braithwaite
b348897a02
Correctness fixes for NaCl and other platforms.
...
Add missing includes of stdio.h, and prefer |IN6ADDR_ANY_INIT| to
|in6addr_any|.
Change-Id: Ia6663ecd6f87008cb82979ef65620a55d8c9405b
Reviewed-on: https://boringssl-review.googlesource.com/11626
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 >
2016-11-09 19:06:10 +00:00
David Benjamin
da4789e412
Fix BoGo HelloVerifyRequest version handling.
...
3c6a1ea674 switched what layer handled
the DTLS version mapping but forgot to correct the HelloVerifyRequest
logic to account for this.
Thanks to Jed Davis for noticing this.
Change-Id: I94ea18fc43a7ba15dd7250bfbcf44dbb3361b3ce
Reviewed-on: https://boringssl-review.googlesource.com/11984
Reviewed-by: David Benjamin <davidben@google.com >
2016-11-09 19:01:59 +00:00
David Benjamin
4e41926774
Move key_block into SSL_HANDSHAKE.
...
This is already manually released at the end of the handshake. With this
change, it can happen implicitly, and SSL3_STATE shrinks further by
another pointer.
Change-Id: I94b9f2e4df55e8f2aa0b3a8799baa3b9a34d7ac1
Reviewed-on: https://boringssl-review.googlesource.com/12121
Reviewed-by: Adam Langley <agl@google.com >
2016-11-09 17:02:33 +00:00