George Kadianakis
5febea0d54
Fix revision counter bugs caused by bad SRV start time computation.
...
Bug description: For each descriptor, its revision counter is the OPE
ciphertext of the number of seconds since the start time of its SRV value.
This bug caused us to confuse the SRV start time in the middle of the lifetime
of a descriptor in some edge-cases, which caused descriptor rejects.
Bug cause: The bug occurs when we fetch a 23:00 consensus after
midnight (e.g. at 00:08 when not all dirauths have fetched the latest 00:00
consensus). In that case, the voting schedule (which was used for SRV start
time calculation) would return a valid-after past-midnight, whereas our
consensus would be pre-midnight, and that would confuse the SRV start time
computation which is used by HS revision counters (because we would reset the
start time of SRV, without rotating descriptors).
Bug fix: We now use our local consensus time to calculate the SRV start time,
instead of the voting schedule. The voting schedule does not work as originally
envisioned in this case, because it was created for voting by dirauths and not
for scheduling stuff on clients.
2018-08-22 18:09:47 +03:00
Nick Mathewson
8148c0717d
Change log_test_helpers macros to use printf, not pasting
...
This ensures that our test failure messages actually tell us what
strings Tor was expecting. I will need this to debug some test
failures.
2018-08-22 10:55:55 -04:00
Nick Mathewson
ac44e70ffc
Merge branch 'maint-0.3.4'
2018-08-22 09:37:31 -04:00
Nick Mathewson
c1ad40627b
Merge branch 'maint-0.2.9' into maint-0.3.2
2018-08-22 09:37:31 -04:00
Nick Mathewson
8691046ac6
Merge branch 'maint-0.3.2' into maint-0.3.3
2018-08-22 09:37:31 -04:00
Nick Mathewson
573b6e4f2f
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-08-22 09:37:31 -04:00
Nick Mathewson
9068e2fa28
Mark cert_matches_key as not-intrusive; fix stretch compilation.
2018-08-22 09:37:26 -04:00
Nick Mathewson
e619fd02ef
Merge remote-tracking branch 'tor-github/pr/287'
2018-08-21 20:08:55 -04:00
Nick Mathewson
3cfceeb45d
Merge branch 'maint-0.3.2' into maint-0.3.3
2018-08-21 20:04:17 -04:00
Nick Mathewson
81e529d236
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-08-21 20:04:17 -04:00
Nick Mathewson
05cd3224a0
Merge branch 'maint-0.3.4'
2018-08-21 20:04:17 -04:00
Nick Mathewson
bf5704051c
Merge remote-tracking branch 'teor/travis-osx-master'
2018-08-21 20:04:13 -04:00
Nick Mathewson
aac1e17f22
Merge remote-tracking branch 'teor/travis-osx-034' into maint-0.3.4
2018-08-21 20:04:03 -04:00
Nick Mathewson
f0633bc491
Merge remote-tracking branch 'teor/travis-osx-033' into maint-0.3.3
2018-08-21 20:03:56 -04:00
Nick Mathewson
a5bbe3f1d0
Merge branch 'maint-0.2.9' into maint-0.3.2
2018-08-21 20:03:46 -04:00
Nick Mathewson
a29e9a901d
Merge remote-tracking branch 'teor/travis-osx-032' into maint-0.3.2
2018-08-21 20:03:41 -04:00
Nick Mathewson
05d62a3b73
Merge remote-tracking branch 'teor/travis-osx-029' into maint-0.2.9
2018-08-21 20:03:19 -04:00
Neel Chauhan
3bf4493cb9
Remove duplicate include in src/test/test_address.c
2018-08-21 20:01:48 -04:00
Nick Mathewson
de66bd397c
Merge branch 'maint-0.3.4'
2018-08-21 19:20:37 -04:00
Nick Mathewson
f68aab83ba
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-08-21 19:20:31 -04:00
Nick Mathewson
245025a3df
Merge branch 'maint-0.3.2' into maint-0.3.3
2018-08-21 19:16:40 -04:00
Nick Mathewson
d52f406001
Merge branch 'maint-0.2.9' into maint-0.3.2
2018-08-21 19:16:40 -04:00
Nick Mathewson
5245a296c5
Make some x509 functions generic; remove some fields NSS doesn't need
2018-08-21 12:25:33 -04:00
Nick Mathewson
b9ca8f2356
Extract internal-only parts of x509.h
2018-08-21 12:25:33 -04:00
Nick Mathewson
108d9879eb
Extract the non-generic part of tor_tls_context_decref().
2018-08-21 12:25:33 -04:00
Nick Mathewson
96f8e19802
Implement PBKDF2 with NSS.
...
This was a gap that we left in the last commit.
2018-08-21 12:25:33 -04:00
Nick Mathewson
6a88d8f6b4
When enabling NSS, disable OpenSSL.
...
We used to link both libraries at once, but now that I'm working on
TLS, there's nothing left to keep OpenSSL around for when NSS is
enabled.
Note that this patch causes a couple of places that still assumed
OpenSSL to be disabled when NSS is enabled
- tor-gencert
- pbkdf2
2018-08-21 12:25:33 -04:00
Nick Mathewson
1992c76130
Split tls modules and their tests into openssl and generic.
...
Also, add a stubbed-out nss version of the modules. The tests won't
pass with NSS yet since the NSS modules don't do anything.
This is a good patch to read with --color-moved.
2018-08-21 12:25:33 -04:00
Nick Mathewson
91c1e88b7a
Refactor some of the certificate-manipulation logic
2018-08-21 12:25:33 -04:00
Nick Mathewson
598bc78bfa
Extract tortls structures into a new header; clean up a little
2018-08-21 12:25:33 -04:00
Nick Mathewson
9a4f05b05c
Split X509 code out of tortls.c
2018-08-21 12:25:33 -04:00
Nick Mathewson
3ccb94d7b6
The RSA_free in this test is no longer needed or wanted
2018-08-21 12:24:08 -04:00
Nick Mathewson
aa45511250
Implement RSA for NSS.
2018-08-21 12:24:08 -04:00
Nick Mathewson
cb5cfe3177
Also reinitialize the pregenerated keys postfork.
2018-08-21 12:24:08 -04:00
Nick Mathewson
b94e7de7db
Refactor crypto_rsa to use pem module.
...
This cleans up a lot of junk from crypto_rsa_openssl, and will
save us duplicated code in crypto_rsa_nss (when it exists).
(Actually, it already exists, but I am going to use git rebase so
that this commit precedes the creation of crypto_rsa_nss.)
2018-08-21 12:24:08 -04:00
Nick Mathewson
9566ed6fd9
Add rudimentary support for PEM-encoding, since NSS doesn't do that.
2018-08-21 12:24:08 -04:00
Nick Mathewson
0812f1cbc2
Use a constant for "65537"
2018-08-21 12:24:08 -04:00
Nick Mathewson
824009cde5
Rename openssl-bridging functions in crypto_rsa
...
These functions exist only to expose RSA keys to other places in Tor
that use OpenSSL; let's be specific about their purpose.
2018-08-21 12:24:08 -04:00
Nick Mathewson
38212d2e40
Remove a redundant function.
2018-08-21 12:24:08 -04:00
Nick Mathewson
0f971d7c91
Rename functions that encode/decode private keys
...
It is not nice to expose a private key's contents without having the
function name advertise the fact. Fortunately, we weren't misusing
these yet.
2018-08-21 12:24:08 -04:00
Nick Mathewson
752ffa2197
Extract openssl RSA functionality into its own file.
2018-08-21 12:24:08 -04:00
Nick Mathewson
9bb0ac4bf1
Merge branch 'coverage_6aug_squashed'
2018-08-21 12:14:51 -04:00
Nick Mathewson
fe00a481fc
Add a unit test for tor_log_mallinfo()
2018-08-21 12:14:41 -04:00
Nick Mathewson
f124037cde
Add unit tests for parsing "extended" format of config lines.
2018-08-21 12:14:41 -04:00
Nick Mathewson
21a9d03445
fixup! Check for duplicate-close in connection_dir_finished_flusing()
2018-08-21 11:15:07 -04:00
Nick Mathewson
ff0be08059
Fix a bug warning when sending an error on an HTTPTunnelPort conn
...
Fixes bug 26470; bugfix on 0.3.2.1-alpha.
2018-08-21 10:12:04 -04:00
Nick Mathewson
df874ed0f1
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-08-21 10:01:41 -04:00
Nick Mathewson
9bc947dc18
Merge branch 'maint-0.3.4'
2018-08-21 10:01:41 -04:00
Nick Mathewson
4c0c4d4ade
Add changes file for 26873. I missed this when merging earlier.
2018-08-21 10:01:38 -04:00
Nick Mathewson
18183de060
Check for duplicate-close in connection_dir_finished_flusing()
...
Fix for 26896.
2018-08-21 09:50:48 -04:00