Nick Mathewson
3aba8490ba
Merge branch 'maint-0.3.1'
2017-07-12 10:16:06 -04:00
Nick Mathewson
5636b160d4
Merge branch 'bug22349_029' into maint-0.3.1
2017-07-12 10:15:49 -04:00
Nick Mathewson
4984d6242a
Merge branch 'maint-0.3.1'
2017-07-12 09:24:01 -04:00
Nick Mathewson
e111cfcd54
Restore openssl and libscrypt includes in test_crypto_slow.c
...
This reverts part of commit 706c44a6ce
.
It was a mistake to remove these includes: they were needed on
systems where we have openssl 1.1.0 *and* libscrypt, and where we
were validating the one against the other.
Fixes bug 22892; bugfix on 0.3.1.1-alpha.
2017-07-12 09:23:15 -04:00
Isis Lovecruft
9de12397cf
If writing a heartbeat message fails, retry after MIN_HEARTBEAT_PERIOD.
...
* FIXES #19476 .
2017-07-12 03:08:04 +00:00
cypherpunks
f516c9ca99
Use the return value for choosing intervals
2017-07-12 03:08:02 +00:00
Nick Mathewson
7b2364035a
Merge branch 'maint-0.3.1'
2017-07-10 15:27:16 -04:00
Matt Traudt
1ff98a7e89
Make consdiff tests pass on OS X too
2017-07-10 15:27:01 -04:00
Nick Mathewson
db71d42868
Avoid double-typedef errors on freebsd.
2017-07-10 09:28:50 -04:00
David Goulet
b50f39fb6f
prop224: Add common intropoint object
...
Groundwork for more prop224 service and client code. This object contains
common data that both client and service uses.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-07-07 15:38:20 -04:00
Nick Mathewson
948158df33
Merge branch 'bug17750_029_squashed'
2017-07-07 13:28:22 -04:00
teor
527c0735f1
Comment that failure schedules always use exponential backoff
2017-07-07 13:18:04 -04:00
teor
32f0cbc0f6
Refactor exponential backoff multipliers into macros
...
There are only so many times you can type "4".
2017-07-07 13:18:04 -04:00
teor
f30d355903
Add regression tests for 17750 and 20534
2017-07-07 13:18:04 -04:00
teor
344f5a71c5
Use download_status_get_next_attempt_at() more often
...
This guards against future occurrences of 17750.
2017-07-07 13:18:04 -04:00
teor
f813b05202
Give correct bounds in next_random_exponential_delay() comment
2017-07-07 13:18:04 -04:00
teor
c21cfd28f4
Make clients try fallbacks before authorities
...
Make clients wait for 6 seconds before trying to download their
consensus from an authority.
Fixes bug 17750, bugfix on 0.2.8.1-alpha.
2017-07-07 13:18:04 -04:00
Nick Mathewson
63ceadb485
Use LANG_ENGLISH in windows error messages
...
This change prevents us from generating corrupt messages when we
are confused about codepage settings, and makes Windows errors
consistent with the rest of our logs.
Fixes bug 22520; bugfix on 0.1.2.8-alpha. Patch from "Vort".
2017-07-07 13:12:45 -04:00
Nick Mathewson
8e8abbbbee
Fix the expected bug warning in dir/param_voting_lookup tests
2017-07-07 13:06:02 -04:00
Nick Mathewson
eb01f35149
Merge branch 'bug21495'
2017-07-07 13:03:36 -04:00
Nick Mathewson
c7d2a67274
Fix a couple of clang warnings
2017-07-07 11:32:15 -04:00
Nick Mathewson
c387cc5022
Merge branch 'ticket21859_032_01_squashed'
2017-07-07 11:17:53 -04:00
Nick Mathewson
6a64563b1d
Fix wide lines
2017-07-07 11:15:27 -04:00
Nick Mathewson
ec3e046986
Use LD_BUG, not LOG_PROTOCOL_WARN, for bad-purpose cases.
2017-07-07 11:14:47 -04:00
George Kadianakis
f35f52e869
Hide crypto_digest_t again and use an accessor for tests.
2017-07-07 11:12:27 -04:00
George Kadianakis
70d08f764d
Explicit length checks in create_rend_cpath().
...
Had to also edit hs_ntor_circuit_key_expansion() to make it happen.
2017-07-07 11:12:27 -04:00
George Kadianakis
c4d17faf81
Explicit length checks in circuit_init_cpath_crypto().
2017-07-07 11:12:27 -04:00
George Kadianakis
2432499705
Rename get_rend_cpath() to create_rend_cpath().
...
based on Nick's review.
2017-07-07 11:12:27 -04:00
George Kadianakis
b490ae68c7
Rename rend_circuit_validate_purpose() based on Nick's review.
2017-07-07 11:12:27 -04:00
George Kadianakis
fee95dabcf
Turn some warnings into bugs and non-fatal asserts.
2017-07-07 11:12:26 -04:00
George Kadianakis
91da032e9c
Improve docs based on Nick's review.
2017-07-07 11:12:26 -04:00
George Kadianakis
9bccc04f8d
test: Add service-side unittests for e2e rendezvous circuits.
2017-07-07 11:12:26 -04:00
George Kadianakis
173dd486e3
test: Add client-side unittests for e2e rend circuits.
2017-07-07 11:12:26 -04:00
George Kadianakis
dc3a2037f5
test: Move some test code to test helpers.
...
Move code to create connection streams and rend_data structures to
test_helpers so that we can use them from the e2e rendezvous circuit
unittests.
2017-07-07 11:12:26 -04:00
George Kadianakis
43a73f6eb6
test: Crypto groundwork for e2e circuit unittests.
...
- Move some crypto structures so that they are visible by tests.
- Introduce a func to count number of hops in cpath which will be used
by the tests.
- Mark a function as mockable.
2017-07-07 11:12:26 -04:00
George Kadianakis
9ff5613a34
test: Introduce hs_client_note_connection_attempt_succeeded().
...
This commit paves the way for the e2e circuit unittests.
Add a stub for the prop224 equivalent of rend_client_note_connection_attempt_ended().
That function was needed for tests, since the legacy function would get
called when we attach streams and our client-side tests would crash with
assert failures on rend_data.
This also introduces hs_client.[ch] to the codebase.
2017-07-07 11:12:26 -04:00
David Goulet
0cb66fc900
prop224: Introduce e2e rendezvous circuit code.
...
This commit adds most of the work of #21859 . It introduces hs_circuit.c
functions that can handle the setup of e2e circuits for prop224 hidden
services, and also for legacy hidden service clients. Entry points are:
prop224 circuits: hs_circuit_setup_e2e_rend_circ()
legacy client-side circuits: hs_circuit_setup_e2e_rend_circ_legacy_client()
This commit swaps the old rendclient code to use the new API.
I didn't try to accomodate the legacy service-side code in this API, since
that's too tangled up and it would mess up the new API considerably IMO (all
this service_pending_final_cpath_ref stuff is complicated and I didn't want to
change it).
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-07-07 11:12:26 -04:00
George Kadianakis
0b2018a4d0
Refactor legacy code to support hs_ident along with rend_data.
...
The legacy HS circuit code uses rend_data to match between circuits and
streams. We refactor some of that code so that it understands hs_ident
as well which is used for prop224.
2017-07-07 11:12:26 -04:00
George Kadianakis
83249015c2
Refactor circuit_init_cpath_crypto() to do prop224 rend circuits.
...
circuit_init_cpath_crypto() is responsible for creating the cpath of legacy
SHA1/AES128 circuits currently. We want to use it for prop224 circuits, so we
refactor it to create circuits with SHA3-256 and AES256 as well.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-07-07 11:12:26 -04:00
George Kadianakis
ba928e1ac8
Refactor the HS ntor key expansion to fit the e2e circuit API.
...
We want to use the circuit_init_cpath_crypto() function to setup our
cpath, and that function accepts a key array as input. So let's make our
HS ntor key expansion function also return a key array as output,
instead of a struct.
Also, we actually don't need KH from the key expansion, so the key
expansion output can be one DIGEST256_LEN shorter. See here for more
info: https://trac.torproject.org/projects/tor/ticket/22052#comment:3
2017-07-07 11:12:26 -04:00
David Goulet
f8dc1164ba
prop224: Add connection and circuit identifier object
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-07-07 11:12:26 -04:00
Nick Mathewson
67b6ba6f2f
Avoid a scan_build warning in dirvote_get_intermediate_param_value
...
Fixes bug 21495.
2017-07-07 11:08:28 -04:00
Nick Mathewson
ed0fb21834
Merge branch 'maint-0.2.8' into maint-0.2.9
2017-07-07 10:56:31 -04:00
Nick Mathewson
66c85cd881
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-07-07 10:56:31 -04:00
Nick Mathewson
ae756f251f
mingw fix: avoid "unused var" warning.
...
This is a backport of 19615bce64
to
fix bug 22838.
2017-07-07 10:54:24 -04:00
Nick Mathewson
86eb63deb4
Merge remote-tracking branch 'public/bug19648'
2017-07-06 09:32:22 -04:00
Nick Mathewson
139799cdce
Merge branch 'bug20488_029_squashed'
2017-07-06 09:29:03 -04:00
Nick Mathewson
41fe94ef15
Improve warning message to stop implying nickname reg is a thing.
...
Closing ticket 20488.
2017-07-06 09:28:31 -04:00
Nick Mathewson
68a2c75ab7
Merge branch 'maint-0.3.1'
2017-07-05 17:37:14 -04:00
Nick Mathewson
9919638e98
Fix a wide line from 22207
2017-07-05 17:37:06 -04:00
Nick Mathewson
93bd60e5b0
Merge branch 'maint-0.3.1'
2017-07-05 17:00:46 -04:00
Nick Mathewson
2251667ff2
Merge remote-tracking branch 'karsten/task-22207' into maint-0.3.1
2017-07-05 17:00:43 -04:00
Nick Mathewson
55777b3ff9
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-07-05 16:11:48 -04:00
Nick Mathewson
0dc7d68bb5
Merge branch 'maint-0.3.1'
2017-07-05 16:11:48 -04:00
Nick Mathewson
15b13578e8
Merge branch 'maint-0.3.0' into maint-0.3.1
2017-07-05 16:11:48 -04:00
Nick Mathewson
dfc0614840
Only disable -Wfloat-conversion on mingw when it exists.
...
The 22081 fix disabled -Wfloat-conversion, but -Wfloat-conversion
didn't exist in every relevant mingw; it was added in GCC 4.9.x some
time, if the documentation can be trusted.
Bug not in any released version of tor.
2017-07-05 16:10:45 -04:00
Nick Mathewson
a85ee62e74
Make the strings from #1667 static.
2017-07-05 15:59:17 -04:00
Nick Mathewson
13024c7932
Merge branch 'maint-0.3.1'
2017-07-05 15:57:09 -04:00
Nick Mathewson
9383fa3851
Fix mixed-sign comparison warning in fix for 22797.
2017-07-05 15:56:57 -04:00
Nick Mathewson
759154b1ad
Fix unit test memory leak in certs_ok_ed25519.
...
Fixes bug 22803; bugfix on 0.3.0.1-alpha.
2017-07-05 15:42:25 -04:00
Nick Mathewson
546f5b364b
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-07-05 13:43:31 -04:00
Nick Mathewson
15fddaffd5
Merge branch 'maint-0.3.1'
2017-07-05 13:43:31 -04:00
Nick Mathewson
5434b2451e
Merge branch 'maint-0.3.0' into maint-0.3.1
2017-07-05 13:43:31 -04:00
Nick Mathewson
32c0066e4b
Merge branch 'maint-0.2.8' into maint-0.2.9
2017-07-05 13:43:21 -04:00
Nick Mathewson
5ff0f1ab9e
Merge branch 'maint-0.2.7-redux' into maint-0.2.8
2017-07-05 13:42:47 -04:00
Nick Mathewson
6cd6d488dc
Merge branch 'maint-0.2.6' into maint-0.2.7-redux
2017-07-05 13:42:37 -04:00
Nick Mathewson
f6420bceec
Merge branch 'maint-0.2.5' into maint-0.2.6
2017-07-05 13:42:32 -04:00
Nick Mathewson
ff8c230d7c
Merge branch 'maint-0.2.4' into maint-0.2.5
2017-07-05 13:42:26 -04:00
Nick Mathewson
8bc70a2ad2
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-07-05 11:19:03 -04:00
Nick Mathewson
d4f08c74fe
Merge branch 'maint-0.3.1'
2017-07-05 11:19:03 -04:00
Nick Mathewson
0f97f963e3
Merge branch 'maint-0.3.0' into maint-0.3.1
2017-07-05 11:19:03 -04:00
Nick Mathewson
bb97f680e7
Merge branch 'bug22801_028' into maint-0.2.9
2017-07-05 11:18:59 -04:00
Nick Mathewson
e04cc7e27f
Merge branch 'maint-0.3.1'
2017-07-05 11:16:51 -04:00
Nick Mathewson
e88aa98451
Merge branch 'teor-bug22797-025' into maint-0.3.1
2017-07-05 11:16:30 -04:00
teor
878e0d45a5
Always allow extra file descriptors when setting the connection maximum
...
When setting the maximum number of connections allowed by the OS,
always allow some extra file descriptors for other files.
Fixes bug 22797; bugfix on 0.2.0.10-alpha.
2017-07-05 11:15:10 -04:00
Nick Mathewson
cd77ea782e
Merge branch 'neena-fix-1667'
2017-07-05 11:01:36 -04:00
Nick Mathewson
03b6cfd591
Extract "not an HTTP proxy" messages.
2017-07-05 11:01:17 -04:00
Nick Mathewson
46e83477c1
Merge branch 'bug15554_032_01_squashed'
2017-07-05 10:15:24 -04:00
George Kadianakis
17bd118b4c
Add test that parses a hardcoded v2 descriptor.
2017-07-05 10:14:26 -04:00
Nick Mathewson
13ccca69f1
Merge branch 'onionskin_refactor_2'
2017-07-05 10:01:48 -04:00
cypherpunks
c79e286386
Use the proper syscall in sandbox error messages
...
Fixes #22750 .
2017-07-05 09:56:28 -04:00
Nick Mathewson
3402b14089
Merge remote-tracking branch 'asn/ticket22727_032_02'
2017-07-05 09:49:12 -04:00
Nick Mathewson
b6c8530fc3
Merge remote-tracking branch 'dgoulet/ticket22726_032_02'
2017-07-05 09:36:31 -04:00
Roger Dingledine
943d284752
CREATE_FAST is for when you don't know the onion key
...
it isn't (anymore) for when you think you can get away with saving some
crypto operations.
2017-07-03 17:20:52 -04:00
Roger Dingledine
69fba1f2cd
better comments and mild refactoring
2017-07-03 17:13:08 -04:00
Nick Mathewson
9b44e2e50e
Document the new functions from the refactor
2017-07-03 16:54:41 -04:00
Nick Mathewson
2814b86875
Reindent the functions split from circuit_send_next_onion_skin().
...
This is a whitespace change only.
2017-07-03 16:54:41 -04:00
Nick Mathewson
935f84bd40
Split circuit_send_next_onion_skin() into its three main cases.
...
This commit is designed to have a very small diff. Therefore,
the indentation is wrong. The next commit will fix that.
2017-07-03 16:54:41 -04:00
Nick Mathewson
bb3f74e66b
Fix assertion failure related to openbsd strtol().
...
Fixes bug 22789; bugfix on 0.2.3.8-alpha.
2017-07-03 11:22:27 -04:00
Nick Mathewson
5361032219
Fix -Wfloat-conversion C warnings on mingw in clamp_double_to_int64.
...
We just have to suppress these warnings: Mingw's math.h uses gcc's
__builtin_choose_expr() facility to declare isnan, isfinite, and
signbit. But as implemented in at least some versions of gcc,
__builtin_choose_expr() can generate type warnings even from
branches that are not taken.
Fixes bug 22801; bugfix on 0.2.8.1-alpha.
2017-07-03 10:59:31 -04:00
Roger Dingledine
0fe7c42e0e
general formatting / whitespace / typo fixes
2017-07-01 17:56:06 -04:00
Nick Mathewson
83dc072e67
Bump version to 0.3.1.4-alpha-dev
2017-06-29 18:45:49 -04:00
Nick Mathewson
d9427c00df
bump to 0.3.0.9-dev
2017-06-29 18:44:43 -04:00
Nick Mathewson
a53573559f
Bump 0.3.1 to 0.3.1.4-alpha
2017-06-29 16:36:50 -04:00
Nick Mathewson
98ffb2e722
Update maint-0.3.0 to 0.3.0.9
2017-06-29 16:35:40 -04:00
Nick Mathewson
71b9f4f0bb
Merge branch 'maint-0.3.1'
2017-06-29 15:57:49 -04:00
Nick Mathewson
1712dc98b0
Merge branch 'maint-0.3.0' into maint-0.3.1
2017-06-29 15:57:48 -04:00
Nick Mathewson
52c4440c48
Merge branch 'trove-2017-006' into maint-0.3.0
2017-06-29 15:57:42 -04:00
Nick Mathewson
3781678a3c
Merge branch 'maint-0.3.1'
2017-06-29 11:38:06 -04:00
Nick Mathewson
31a08ba26f
Merge remote-tracking branch 'public/bug22670_031' into maint-0.3.1
2017-06-29 11:34:06 -04:00