Commit Graph

28201 Commits

Author SHA1 Message Date
Micah Elizabeth Scott 95bcd17705 Include a basic Rust wrapper for Equi-X and HashX
The idea behind this is that we may want to start exporting more pieces
of c-tor as Rust crates so that Arti can perform cross compatibility and
comparison testing using Rust tooling.

This turns the 'tor' repo into a Cargo workspace, and adds one crate to
start with: "tor-c-equix", rooted in src/ext/equix. This actually
includes both Equi-X itself and HashX, since there's less overall
duplication if we package these together instead of packaging HashX
separately.

This patch adds a basic safe Rust interface, but doesn't expose any
additional internals for testing purposes.

No changes to the C code here or the normal Tor build system.

Signed-off-by: Micah Elizabeth Scott <beth@torproject.org>
2023-07-26 12:27:15 -07:00
David Goulet 89b1e6568e Merge branch 'maint-0.4.7' 2023-07-26 10:13:21 -04:00
Tor CI Release fa40b0a122 fallbackdir: Update list generated on July 26, 2023 2023-07-26 10:12:30 -04:00
Tor CI Release e4308eb159 Update geoip files to match ipfire location db, 2023/07/26. 2023-07-26 10:12:24 -04:00
David Goulet 2234ecd491 fallback: Take file from main for our release CI
Signed-off-by: David Goulet <dgoulet@torproject.org>
2023-07-26 10:07:27 -04:00
David Goulet 47434fc81a geoip: Take the database from main
Signed-off-by: David Goulet <dgoulet@torproject.org>
2023-07-26 09:59:26 -04:00
David Goulet 28dfa07069 Merge branch 'maint-0.4.7' 2023-07-24 10:18:53 -04:00
David Goulet d6fd7d1035 Fix all -Werror=enum-int-mismatch warnings
Close #40824

Signed-off-by: David Goulet <dgoulet@torproject.org>
2023-07-24 09:44:42 -04:00
David Goulet e6a9e00690 Merge branch 'warn-bridge-exit' into 'main'
Warn when operating as bridge and exit

Closes #40819

See merge request tpo/core/tor!730
2023-07-20 14:40:13 +00:00
trinity-1686a 1901720fb9 Warn when operating as bridge and exit 2023-07-17 19:40:26 +02:00
trinity-1686a 9ea80b465f fix non-fatal assertion when rotate_onion_key fails 2023-07-16 22:29:23 +02:00
Tor CI Release 4b626a9c57 fallbackdir: Update list generated on July 12, 2023 2023-07-12 09:38:16 -04:00
Tor CI Release a7a3fbffe5 Update geoip files to match ipfire location db, 2023/07/12. 2023-07-12 09:38:10 -04:00
David Goulet e4a8a128b1 Merge branch 'maint-0.4.7' 2023-07-12 08:17:23 -04:00
Roger Dingledine 3335829347 replace L2 vanguards that aren't Fast or Stable
Rotate to a new L2 vanguard whenever an existing one loses the
Stable or Fast flag. Previously, we would leave these relays in the
L2 vanguard list but never use them, and if all of our vanguards
end up like this we wouldn't have any middle nodes left to choose
from so we would fail to make onion-related circuits.

Fixes bug 40805; bugfix on 0.4.7.1-alpha.
2023-07-05 23:00:38 -04:00
Roger Dingledine 294872a407 trivial typo fix in comment 2023-07-05 16:38:32 -04:00
Mike Perry 04d7f11086 Bug 40566: Remove unused BDP estimators 2023-06-27 19:27:10 +00:00
Mike Perry 7d85298b63 Bug 40566: Remove unused congestion control alg structs. 2023-06-27 16:44:07 +00:00
Mike Perry 641ed48e6d Bug 40566: Unhook unused congestion control algs 2023-06-27 16:44:07 +00:00
Mike Perry 99ad0de9f5 Bug 40566: Remove unused cc alg files 2023-06-27 14:52:56 +00:00
Mike Perry a945f3c506 Add congestion control tests to build. 2023-06-23 15:08:57 +00:00
Mike Perry 331b874e69 Add CWND test vectors 2023-06-23 15:08:57 +00:00
Mike Perry 06aa454c08 Add RTT Test Vectors 2023-06-23 15:08:57 +00:00
Mike Perry 3647b2f95a Add clock heuristic test vector for congestion control. 2023-06-23 15:08:57 +00:00
Mike Perry 53748705f7 Export variables and functions for CC unit tests. 2023-06-23 15:08:57 +00:00
Mike Perry 646212ce58 Bug 40709: Update and clean up tests for consensus params 2023-06-23 15:08:54 +00:00
Mike Perry 9d022be9fc Bug 40709: Update congestion control parameters
This brings us into sync with the consensus, and will be useful for test
vectors, to ensure behavior consistent with the consensus params.
2023-06-23 15:08:49 +00:00
Mike Perry 796e65e487 Bug 40569: Reduce accepted range for negotiated cc_sendme_inc 2023-06-22 23:12:34 +00:00
Mike Perry 27a0fee882 Bug 40808: Change KISTSchedRunInterval range and default; add KISTSchedRunIntervalClient 2023-06-20 16:29:48 +00:00
David Goulet 8286d88ed0 Merge branch 'ticket40773' into 'main'
Fix compilation error on older gcc versions and MSVC.

See merge request tpo/core/tor!717
2023-06-19 18:32:44 +00:00
David Goulet 94f4d0968b Change git.tpo URLs to gitlab.tpo
Signed-off-by: David Goulet <dgoulet@torproject.org>
2023-06-19 08:09:39 -04:00
David Goulet 7a83aa4f50 Merge branch 'tor-gitlab/mr/722' 2023-06-15 13:23:36 -04:00
David Goulet cdb270d55e Change git.tpo URLs to gitlab.tpo
Signed-off-by: David Goulet <dgoulet@torproject.org>
2023-06-15 13:00:11 -04:00
Mike Perry 44cd704636 Bug 40811: Count conflux leg launch attempts early.
Also, double check that the consensus has enough overall exits before
attempting conflux set launch.
2023-06-15 16:13:34 +00:00
David Goulet 44368a727a Merge branch 'tor-gitlab/mr/721' 2023-06-14 09:45:27 -04:00
Mike Perry 5d63842e86 Bug 40810: Avoid using 0 RTT legs 2023-06-13 18:18:46 +00:00
Mike Perry dbd37c0e7b Bug 40810: Improve validation checks to ignore 0-RTT legs
Also add calls to dump the legs of a conflux set if we have too many
2023-06-13 18:18:07 +00:00
David Goulet d5306e107f Merge branch 'tor-gitlab/mr/715' 2023-06-13 13:03:11 -04:00
Mike Perry 6a513e2ff5 Bug 40801: Do not change read state of marked conns 2023-06-09 16:29:10 +00:00
Mike Perry da50d21c42 Bug 40801: Send LINKED_ACK before attaching streams
Otherwise, the BEGIN cell arrives at the exit before it has an RTT,
and then it does not know which circuit to prefer in response.
2023-06-09 16:29:10 +00:00
Mike Perry ff59e2f490 Add BUG() macro to marked edge reads
This will give us a full stacktrace.
2023-06-09 16:24:03 +00:00
Mike Perry 176f0929bb Add conflux logs to diagnose cases where RTTs are absent/zero. 2023-06-09 16:24:03 +00:00
Neel Chauhan a91315f931 Fix the spacing in the 'Your Tor identity key fingerprint is' log line' 2023-06-07 10:02:33 -07:00
Mike Perry 03d63bc7bd Add a conflux helper to log conflux sets. 2023-06-06 15:15:20 +00:00
Micah Elizabeth Scott cfbf74352f More fixes for compile-time warnings in equix and hashx
This addresses issue #40800 and a couple other problems I noticed while
trying to reproduce that one.

The original issue is just a missing cast to void* on the args of
__builtin___clear_cache(), and clang is picky about the implicit cast
between what it considers to be char of different signedness. Original
report is from MacOS but it's also reproducible on other clang targets.

The cmake-based original build system for equix and hashx was a handy
way to run tests, but it suffered from some warnings due to incorrect
application of include_directories().

And lastly, there were some return codes from hashx_exec() that get
ignored on equix when asserts are disabled. It bugged me too much to
just silence this with a (void) cast, since even though this is in the
realm of low-likelyhood programming errors and not true runtime errors, I
don't want to make it easy for the hashx_exec() wrappers to return
values that are dangerously wrong if an error is ignored. I made sure
that even if asserts are disabled, we return values that will cause the
solver and verifier to both fail to validate a potential solution.

Signed-off-by: Micah Elizabeth Scott <beth@torproject.org>
2023-06-05 11:45:33 -07:00
Gabriela Moldovan 45ee8a10e2 Fix compilation error on older gcc versions and MSVC.
This fixes an "initializer is not a constant" compilation error that manifests
itself on gcc versions < 8.1 and MSVC (see
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69960#c18).

Fixes bug #40773

Signed-off-by: Gabriela Moldovan <gabi@torproject.org>
2023-06-05 15:03:39 +01:00
Tor CI Release 5e2f6d5433 fallbackdir: Update list generated on June 01, 2023 2023-06-01 09:47:36 -04:00
Tor CI Release c2c6c7a5e6 Update geoip files to match ipfire location db, 2023/06/01. 2023-06-01 09:47:22 -04:00
David Goulet 7f5355826b test: Really fix the mem leak from prior commit
Signed-off-by: David Goulet <dgoulet@torproject.org>
2023-06-01 09:07:43 -04:00
David Goulet faff592c3b test: Fix a mem leak reported by Coverity
Here is the report:

  *** CID 1531835:  Resource leaks  (RESOURCE_LEAK)
  /src/test/test_crypto_slow.c: 683 in test_crypto_equix()
  677
  678           /* Solve phase: Make sure the test vector matches */
  679           memset(&output, 0xa5, sizeof output);
  680           equix_result result;
  681           result = equix_solve(solve_ctx, challenge_literal,
  682                                challenge_len, &output);
  >>>     CID 1531835:  Resource leaks  (RESOURCE_LEAK)
  >>>     Variable "solve_ctx" going out of scope leaks the storage it points to.

Signed-off-by: David Goulet <dgoulet@torproject.org>
2023-06-01 08:35:08 -04:00