Nick Mathewson
cd23903427
Pull detached-signatures code into dirauth.
2018-10-01 10:46:00 -05:00
Nick Mathewson
2be35f4d61
Split microdescriptor parser into its own file.
2018-10-01 10:46:00 -05:00
Nick Mathewson
82f4d3ca75
Move v2 hs parsing into feature/rend
2018-10-01 00:09:00 -05:00
Nick Mathewson
430ca38f70
Split the authority-cert and signature/hash code from routerparse
2018-10-01 00:09:00 -05:00
Nick Mathewson
fec3b3bb93
Extract logic for dumping unparseable junk from routerparse.c
2018-10-01 00:04:58 -05:00
Nick Mathewson
6785aa4010
Move routerparse and parsecommon to their own module.
2018-10-01 00:04:06 -05:00
Nick Mathewson
9e65e7a36f
Merge branch 'split_stats'
2018-09-27 16:26:06 -04:00
Nick Mathewson
d0b2b5a202
Always initialize the periodic events list.
...
Various places in our code try to activate these events or check
their status, so we should make sure they're initialized as early as
possible. Fixes bug 27861; bugfix on 0.3.5.1-alpha.
2018-09-27 13:24:36 -04:00
Nick Mathewson
c8f2a6d2fe
Extract the non-stats part of geoip into a new src/lib/geoip.
2018-09-27 10:26:01 -04:00
Nick Mathewson
fa32574bdb
Remove excess dependencies from geoip.c
2018-09-27 10:15:39 -04:00
Nick Mathewson
f403af2207
Split geoip from geoip-related stats.
...
This commit just moves the code to two separate files. The geoip
code still has a few needless dependencies on core/* and features/*.
2018-09-27 09:36:52 -04:00
Nick Mathewson
241c1505cc
Move the predicted ports code out of rephist.c
...
It differs from the rest of the rephist code in that it's actually
necessary for Tor to operate, so it should probably go somewhere
else. I'm not sure where yet, so I'll leave it in the same
directory, but give it its own file.
2018-09-27 08:21:17 -04:00
Nick Mathewson
4f0bc0c8f5
Revise things that had included router.h before
...
Make them only include the headers that they needed, and sort their
headers while we're at it.
2018-09-25 17:57:58 -04:00
Nick Mathewson
fcd0f76134
Extract all the "am I a server" functions from router.c
2018-09-25 16:00:50 -04:00
Nick Mathewson
934859cf80
Move key-loading and crosscert-checking out of feature/relay
...
This is also used by onion services, so it needs to go in another
module.
2018-09-25 15:14:57 -04:00
Nick Mathewson
78295904f7
Merge branch 'ticket26744'
2018-09-24 10:56:50 -04:00
Nick Mathewson
63e08f56b8
Merge remote-tracking branch 'tor-github/pr/365'
2018-09-21 16:13:59 -04:00
Nick Mathewson
194acfb51d
Split directory.c code into several modules
...
Parts of this C file naturally belong in dircache, dirclient, and
dircommon: so, move them there.
2018-09-21 12:57:22 -04:00
Nick Mathewson
0e4c42a912
Merge remote-tracking branch 'ahf-github/asn/bugs4700_2'
2018-09-21 09:40:16 -04:00
Nick Mathewson
9399c579e5
Merge branch 'split_mainloop_onion'
2018-09-21 09:37:23 -04:00
Nick Mathewson
9b0a17a74f
Merge branch 'maint-0.3.4'
2018-09-21 09:36:31 -04:00
Nick Mathewson
e818a71905
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-09-21 09:35:54 -04:00
Nick Mathewson
2cadd93cea
Merge branch 'maint-0.3.2' into maint-0.3.3
2018-09-21 09:35:51 -04:00
Nick Mathewson
5b04392c15
Merge branch 'maint-0.2.9' into maint-0.3.2
2018-09-21 09:35:23 -04:00
Nick Mathewson
c7ce6b9821
Split main.c into main.c and mainloop.c
...
The main.c code is responsible for initialization and shutdown;
the mainloop.c code is responsible for running the main loop of Tor.
Splitting the "generic event loop" part of mainloop.c from the
event-loop-specific part is not done as part of this patch.
2018-09-21 09:14:06 -04:00
Nick Mathewson
98ef3e82e4
Move the non-crypto parts of onion.c out of src/core/crypto
...
The parts for handling cell formats should be in src/core/or.
The parts for handling onionskin queues should be in src/core/or.
Only the crypto wrapper belongs in src/core/crypto.
2018-09-21 09:14:05 -04:00
rl1987
d40b0e73c2
Check Python version in test_rebind.py
2018-09-21 10:57:41 +03:00
rl1987
81199eaf0e
Remove misleading first line in test_rebind.py
...
test_rebind.py actually does not require Python 3.
Bugfix on 5a11670fcaad0a58de48425ba80510effbe35628; bug not in any
Tor release.
2018-09-21 10:57:41 +03:00
cypherpunks
db89b4b152
rust/protover: fix null deref in protover_all_supported()
...
Fortunately with the current callers it couldn't happen in practice.
Fix on d1820c1516
.
2018-09-21 04:57:26 +00:00
Nick Mathewson
e7ac8fabcc
Merge remote-tracking branch 'dgoulet/ticket27410_035_01'
2018-09-20 16:22:16 -04:00
Nick Mathewson
813019cc57
Merge branch 'bug23512-v4-029-fixes'
2018-09-20 14:41:44 -04:00
Nick Mathewson
a406255cf3
Merge branch 'bug23512-v4-029-fixes'
2018-09-20 14:19:47 -04:00
Nick Mathewson
72e30f26ec
Fix a pair of errors in bug23512
2018-09-20 14:18:09 -04:00
Nick Mathewson
bd6007d898
Merge branch 'split_routerlist_dirserv_v2'
2018-09-20 11:07:50 -04:00
Nick Mathewson
b54a5e704f
Split most of dirserv.c into several new modules
...
In dirauth:
* bwauth.c reads and uses bandwidth files
* guardfraction.c reads and uses the guardfraction file
* reachability.c tests relay reachability
* recommend_pkg.c handles the recommended-packages lines.
* recv_descs.c handles fingerprint files and processing incoming
routerinfos that relays upload to us
* voteflag.c computes flag thresholds and sets those thresholds on
routerstatuses when computing votes
In control:
* fmt_serverstatus.c generates the ancient "v1 server status"
format that controllers expect.
In nodelist:
* routerstatus_fmt.c formats routerstatus entries for a consensus,
a vote, or for the controller.
2018-09-20 11:07:42 -04:00
Nick Mathewson
1f377e910f
Merge branch 'maint-0.3.4'
2018-09-20 10:43:08 -04:00
Nick Mathewson
08e3b88f07
Split routerlist.c into 4 separate modules
...
There are now separate modules for:
* the list of router descriptors
* the list of authorities and fallbacks
* managing authority certificates
* selecting random nodes
2018-09-19 17:08:57 -04:00
David Goulet
cb81a69f90
test: hs-v3 desc has arrived unit test
...
That unit test makes sure we don't have pending SOCK request if the descriptor
turns out to be unusable.
Part of #27410 .
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-19 11:11:57 -04:00
Nick Mathewson
6d33f65638
Use the correct function signatures in test_relaycell.c
...
This is now officially an antipattern: please let's never copy a
function declaration in two places again. That's what headers are
for.
2018-09-18 15:51:11 -04:00
Nick Mathewson
ea5792f333
Make crypto_strongest_rand() non-mockable
...
Instead, have it call a mockable function. We don't want
crypto_strongest_rand() to be mockable, since doing so creates a
type error when we call it from ed25519-donna, which we do not build
in a test mode.
Fixes bug 27728; bugfix on 0.3.5.1-alpha
2018-09-18 12:40:18 -04:00
Nick Mathewson
50367d06f2
Merge remote-tracking branch 'tor-github/pr/352'
2018-09-18 08:44:58 -04:00
Nick Mathewson
4199c8b2d0
Merge remote-tracking branch 'github/bug27073_029'
2018-09-18 08:16:42 -04:00
Mike Perry
8a83c4b613
Merge branch 'bug23512-v4-033' into bug23512-v4-master
2018-09-18 00:17:14 +00:00
Mike Perry
ad10cafd9f
Bug 23512: Test fix: cmux is now allocated by new_fake_channel()
2018-09-17 23:31:48 +00:00
Mike Perry
72cef61028
Merge branch 'bug23512-v4-032' into bug23512-v4-033
2018-09-17 23:31:34 +00:00
Mike Perry
dfd3823047
Bug 23512: Mock assert_circuit_ok in tests.
...
This mocking was not available in 0.2.9.
2018-09-17 23:12:53 +00:00
Mike Perry
36e81e1f59
Merge branch 'bug23512-v4-029' into bug23512-v4-032
2018-09-17 23:12:45 +00:00
Mike Perry
6af352172d
Bug 23512: Test recording bytes in circ queues.
2018-09-17 22:24:25 +00:00
Nick Mathewson
b729bc202c
Add tortls.h includes to expose critical macro. Fix #27734 .
2018-09-16 22:08:02 -04:00
Nick Mathewson
a8ac21fbb5
Don't try to link C from rust doctests for nss detection
...
This is really annoying, since we can't use cfg(test) for doctests.
2018-09-16 14:34:31 -04:00
Nick Mathewson
078debb0de
Merge branch 'bug25573-034-typefix'
2018-09-16 13:46:12 -04:00
Nick Mathewson
7fd61cf536
Fix duplicate declaration of pathbias_count_valid_cells.
2018-09-16 13:45:43 -04:00
Nick Mathewson
991bec67ee
When Tor is compiled with NSS, don't claim support for LinkAuth=1
...
Closes ticket 27288
2018-09-16 13:28:29 -04:00
Alexander Færøy
3477a73af9
Add proxy headers as early as possible.
...
This patch moves the logic that adds the proxy headers to an earlier
point in the exit connection lifetime, which ensures that the
application data cannot be written to the outbuf before the proxy header
is added.
See: https://bugs.torproject.org/4700
2018-09-15 22:17:57 +02:00
Alexander Færøy
9b511dc5d6
Change HiddenServiceExportCircuitID to take a string parameter: the protocol.
...
This patch changes HiddenServiceExportCircuitID so instead of being a
boolean it takes a string, which is the protocol. Currently only the
'haproxy' protocol is defined.
See: https://bugs.torproject.org/4700
2018-09-15 16:52:36 +03:00
Alexander Færøy
8f085841ef
Encode the 32-bit Global Identifier as 2 x 16-bit in the IPv6 address.
...
Without this patch we would encode the IPv6 address' last part as
::ffffffff instead of ::ffff:ffff when the GID is UINT32_MAX.
See: https://bugs.torproject.org/4700
2018-09-15 16:52:36 +03:00
George Kadianakis
b2092f1ced
Add unittest for HiddenServiceExportCircuitID.
...
Had to move a function to test helpers.
2018-09-15 16:52:32 +03:00
Nick Mathewson
6e5e1be737
Make circuitmux ewma timing test more tolerant on 32bit osx
...
Since we use a 32-bit approximation for millisecond conversion here,
we can't expect so much precision.
Fixes part of bug 27139; bugfix on 0.3.4.1-alpha.
2018-09-14 08:40:12 -04:00
cypherpunks
e24195c7c1
protover: reject invalid protocol names
...
The spec only allows the characters [A-Za-z0-9-].
Fix on b2b2e1c7f2
.
Fixes #27316 ; bugfix on 0.2.9.4-alpha.
2018-09-14 02:18:04 +00:00
Nick Mathewson
7a0ff5beb2
In conditionvar_timeout test, wait for threads to timeout
...
Previously we just waited 200msec, which was not enough on slow/busy
systems.
Fixes bug 27073; bugfix on 0.2.6.3-alpha when the test was introduced.
2018-09-13 20:47:41 -04:00
Nick Mathewson
b943721b2a
Merge branch 'bug27224_take2_squashed'
2018-09-13 16:43:06 -04:00
Nick Mathewson
874eca6a8c
Add a test case with a matching ip but mismatched identity.
2018-09-13 16:38:33 -04:00
rl1987
9741921094
Unit tests for ticket 27224.
...
Since this is a refactoring ticket, these tests should pass before
and after the changes are made.
2018-09-13 16:25:14 -04:00
Nick Mathewson
e8b81d7dc5
Merge branches 'bug27684' and 'bug27685'
2018-09-13 13:09:57 -04:00
Nick Mathewson
15596f6c0c
Fix a memory leak in tortls/openssl/try_to_extract_certs_from_tls
...
Since this is an "intrusive" test, it only shows up for openssl <1.1
This is a bugfix on 0.3.5.x; bug not in any released Tor.
2018-09-13 12:47:42 -04:00
Nick Mathewson
d28018ea1e
Fix a memory leak in tortls/openssl/context_new test.
...
Bugfix on 0.3.5.x; bugfix not on any released Tor.
2018-09-13 12:43:37 -04:00
Nick Mathewson
f308e81fa7
Merge branch 'maint-0.3.4'
2018-09-12 17:25:40 -04:00
Nick Mathewson
f8d5fb42a3
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-09-12 17:24:41 -04:00
Nick Mathewson
19dbc385d5
Merge remote-tracking branch 'tor-github/pr/298'
2018-09-12 09:38:52 -04:00
Nick Mathewson
62743912bc
Merge branch 'pr278_squashed'
2018-09-12 09:06:35 -04:00
rl1987
7b27d98eae
Actually, just disable test_rebind.sh on Appveyor
2018-09-12 09:06:16 -04:00
rl1987
d30e47fd4e
Disable test_rebind.sh on Windows
2018-09-12 09:06:16 -04:00
rl1987
5a11670fca
Update/fix CI build
...
Update integration test to Python 3
2018-09-12 09:06:16 -04:00
rl1987
4811869d7a
Pick random ports in test_rebind.py
2018-09-12 09:06:16 -04:00
rl1987
3f34fc921c
Tweak test_rebind.py for future-proofness
2018-09-12 09:06:16 -04:00
rl1987
762c27b907
Integration test for socket rebinding
...
squash! Integration test for socket rebinding
2018-09-12 09:06:16 -04:00
Nick Mathewson
8294c40c96
Merge remote-tracking branch 'tor-github/pr/318'
2018-09-12 08:12:19 -04:00
cypherpunks
e9ef7d5ab4
test/protover: remove version zero from tests
...
This isn't legal according to dir-spec.txt.
We can write separate tests for it if the spec
is changed to make it legal.
2018-09-12 02:47:29 +00:00
Nick Mathewson
5a2374b074
Merge remote-tracking branch 'tor-github/pr/315'
2018-09-11 15:55:30 -04:00
Nick Mathewson
75ad1a1f2f
Merge remote-tracking branch 'onionk/doublevote1'
2018-09-11 13:16:49 -04:00
Taylor Yu
617160895c
Defer reporting directory bootstrap progress
...
Existing cached directory information can cause misleadingly high
bootstrap percentages. To improve user experience, defer reporting of
directory information progress until at least one connection has
succeeded to a relay or bridge.
Closes ticket 27169.
2018-09-10 15:20:50 -05:00
David Goulet
7ff67d0e90
test: Fix coverity CID 1439129
...
One HSv3 unit test used "tor_memeq()" without checking the return value. This
commit changes that to use "tt_mem_op()" to actually make the test validate
something :).
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-10 10:28:35 -04:00
David Goulet
064d3e7497
test: Fix coverity CID 1439130
...
Trivial fix of removing an uneeded NULL check in an HS v3 unit test.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-10 10:22:31 -04:00
David Goulet
58d74ad943
test: Fix coverity CID 1439131
...
Simple uninitialized object that we could free in an HS v3 unit test.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-10 10:20:58 -04:00
Nick Mathewson
9ca1af9a87
Merge remote-tracking branch 'dgoulet/ticket20700_035_03'
2018-09-07 15:03:32 -04:00
George Kadianakis
3695ef6343
HSv3: Don't assert when reading bad client-side privkeys.
2018-09-07 14:05:07 -04:00
George Kadianakis
1e9428dc61
HSv3: Add subcredential in client auth KDF on the service-side.
...
Also update some client auth test vectors that broke...
2018-09-07 14:05:07 -04:00
David Goulet
c76d00abfa
hs-v3: Make hs_desc_build_fake_authorized_client() return an object
...
Return a newly allocated fake client authorization object instead of taking
the object as a parameter.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-07 14:03:55 -04:00
Suphanat Chunhapanya
5e1d36c7db
bug: Use PATH_SEPARATOR instead of slash
...
In function get_fname_suffix, previously it uses /, but in fact it
should use PATH_SEPARATOR.
2018-09-07 14:03:55 -04:00
Suphanat Chunhapanya
83c8419e73
hs-v3: Rename client_pk to client_auth_pk
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-07 14:03:08 -04:00
Suphanat Chunhapanya
9f975e9995
hs-v3: Rename client_sk to client_auth_sk
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-07 14:03:07 -04:00
Suphanat Chunhapanya
b61403c787
test: HS v3 client auth is config equal function
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-07 14:02:43 -04:00
Suphanat Chunhapanya
3b08b23997
hs-v3: Make all descriptor content free functions public
...
Series of functions that we now need in hs_service.c.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-07 14:02:43 -04:00
Suphanat Chunhapanya
69fb25b0f6
test: HS v3 descriptor decoding with client authorization
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-07 14:02:43 -04:00
Suphanat Chunhapanya
63576b0166
hs-v3: Refactor the descriptor decryption/decoding
...
This commit refactors the existing decryption code to make it compatible with
a new logic for when the client authorization is enabled.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-07 13:59:22 -04:00
Suphanat Chunhapanya
9c36219236
test: HS v3 client authorization loading secret key
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-07 13:59:22 -04:00
Suphanat Chunhapanya
fd6bec923c
test: HS v3 descriptor encoding with client authorization
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-07 13:59:22 -04:00
Suphanat Chunhapanya
fa50aee366
hs-v3: Encrypt the descriptor using a cookie
...
Previously, we encrypted the descriptor without the descriptor cookie. This
commit, when the client auth is enabled, the descriptor cookie is always used.
I also removed the code that is used to generate fake auth clients because it
will not be used anymore.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-07 13:59:22 -04:00
Suphanat Chunhapanya
10f4c46e50
test: Build an HSv3 descriptor with authorized client
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-07 13:59:22 -04:00
Suphanat Chunhapanya
0dab4ac2dd
test: HS v3 building a descriptor with client auth
...
This commit tests that the descriptor building result, when the client
authorization is enabled, includes everything that is needed.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-07 13:59:22 -04:00