The Tor Project issueshttps://gitlab.torproject.org/groups/tpo/-/issues2020-07-28T22:39:06Zhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26997tor_api: Do we want an easier way to set options?2020-07-28T22:39:06ZNick Mathewsontor_api: Do we want an easier way to set options?In the parent ticket legacy/trac#25510, hellais reports:
> * Add API calls for making it easier to setup the configuration for tor
> This is more of usability issue, but it would be great if the tor_api.h has some function for setting co...In the parent ticket legacy/trac#25510, hellais reports:
> * Add API calls for making it easier to setup the configuration for tor
> This is more of usability issue, but it would be great if the tor_api.h has some function for setting configuration options for Tor, without having to rely on passing them as command line arguments.Tor: unspecifiedhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26994Solaris 10: test_bwmgt.c compile error with tor-0.3.4.5-rc2020-06-27T13:52:41ZTracSolaris 10: test_bwmgt.c compile error with tor-0.3.4.5-rcI'm running in the same compile error on all tor-0.3.4.* versions
when trying to build tor on Solaris 10
tor-0.3.3.9 builds and works without any issue.
The error looks like:
```
In file included from /usr/include/sys/select.h:23:0,
...I'm running in the same compile error on all tor-0.3.4.* versions
when trying to build tor on Solaris 10
tor-0.3.3.9 builds and works without any issue.
The error looks like:
```
In file included from /usr/include/sys/select.h:23:0,
from /usr/include/sys/types.h:616,
from /usr/include/unistd.h:20,
from ./src/or/or.h:18,
from src/test/test_bwmgt.c:11:
src/test/test_bwmgt.c: In function ‘test_bwmgt_token_buf_refill’:
src/test/test_bwmgt.c:127:18: error: expected identifier or ‘(’ before numeric constant
const uint32_t SEC =
^
gmake[1]: *** [src/test/src_test_test-test_bwmgt.o] Error 1
gmake[1]: Leaving directory `/usr/local/lib/tor-0.3.4.5-rc'
gmake: *** [all] Error 2
```
Any help is appreciated.
Thanks.
Knut
**Trac**:
**Username**: KnutTor: 0.3.5.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26992Add intro point IPv6 address to service descriptors2021-09-30T13:45:56ZteorAdd intro point IPv6 address to service descriptorsImplemented as a consequence of legacy/trac#23576, but I need a ticket number.Implemented as a consequence of legacy/trac#23576, but I need a ticket number.Tor: unspecifiedteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26987Tor seems to be reading from two different time sources in a macOS VM2020-06-27T13:52:42ZteorTor seems to be reading from two different time sources in a macOS VMI started chutney (and its tors) a few minutes after resuming from sleep, but Tor sometimes gets the time wrong by 15 hours. (Which is approximately the time the VM last slept.)
I wonder if we're using the wrong macOS time APIs?
Or it c...I started chutney (and its tors) a few minutes after resuming from sleep, but Tor sometimes gets the time wrong by 15 hours. (Which is approximately the time the VM last slept.)
I wonder if we're using the wrong macOS time APIs?
Or it could be a VM or macOS issue.
```
FAIL: ipv6-exit-min
Detail: chutney/tools/warnings.sh /Users/base/chutney/net/nodes.1532996702
Warning: Couldn't store my own vote! (I told myself, 'Bad valid-after time'.) Number: 2
Warning: Rejecting vote from 127.0.0.1 with valid-after time of 2018-07-31 00:26:05; we were expecting 2018-07-31 00:25:10 Number: 2
Warning: Your system clock just jumped 55189 seconds backward; assuming established circuits no longer work. Number: 3
Warning: Your system clock just jumped 55191 seconds forward; assuming established circuits no longer work. Number: 3
```Tor: 0.3.4.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26986Appveyor CI fails on master due to #195062020-06-27T13:52:42ZteorAppveyor CI fails on master due to #19506For some reason, Appveyor CI didn't run on the pull request for legacy/trac#19506:
https://github.com/torproject/tor/pull/216
When legacy/trac#19506 was merged to master, it failed Appveyor with:
```
../src/tools/tor-print-ed-signing-ce...For some reason, Appveyor CI didn't run on the pull request for legacy/trac#19506:
https://github.com/torproject/tor/pull/216
When legacy/trac#19506 was merged to master, it failed Appveyor with:
```
../src/tools/tor-print-ed-signing-cert.c:52:67: error: unknown conversion type character 'z' in format [-Werror=format=]
fprintf(stderr, "ed25519_cert_parse failed with return value %zd\n",
^
../src/tools/tor-print-ed-signing-cert.c:52:21: error: too many arguments for format [-Werror=format-extra-args]
fprintf(stderr, "ed25519_cert_parse failed with return value %zd\n",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/tools/tor-print-ed-signing-cert.c:52:67: error: unknown conversion type character 'z' in format [-Werror=format=]
fprintf(stderr, "ed25519_cert_parse failed with return value %zd\n",
^
../src/tools/tor-print-ed-signing-cert.c:52:21: error: too many arguments for format [-Werror=format-extra-args]
fprintf(stderr, "ed25519_cert_parse failed with return value %zd\n",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```Tor: 0.3.5.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26980HSv3 descriptors rejected because of bad SRV start time computation2021-09-30T13:45:56ZGeorge KadianakisHSv3 descriptors rejected because of bad SRV start time computationWhen we introduced legacy/trac#25552, we started OPE encrypting the time diff since the start of the SRV run. We also have some logic on which SRV period we should use to calculate the time diff:
```
if (is_current) {
srv_start = s...When we introduced legacy/trac#25552, we started OPE encrypting the time diff since the start of the SRV run. We also have some logic on which SRV period we should use to calculate the time diff:
```
if (is_current) {
srv_start = sr_state_get_start_time_of_previous_protocol_run();
} else {
srv_start = sr_state_get_start_time_of_current_protocol_run();
}
```
There is a bug here, because when we cross from the 23:00 consensus to the 01:00 consensus, the start of the SRV protocol changes and screws up the revision counter monotonicity.
This causes one descriptor batch upload to fail.Tor: 0.3.5.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26979Appveyor CI IRC shows the wrong branch for pull requests2020-06-27T13:52:42ZteorAppveyor CI IRC shows the wrong branch for pull requestsFor example, the branch that Neel opened a pull request for is b23588, based on master:
```
11:49 appveyor-ci: torproject/tor master 1752b17 - Neel Chauhan: Add changes file for Bug #23588
11:49 appveyor-ci: Build #1.0.450 failed. Detail...For example, the branch that Neel opened a pull request for is b23588, based on master:
```
11:49 appveyor-ci: torproject/tor master 1752b17 - Neel Chauhan: Add changes file for Bug #23588
11:49 appveyor-ci: Build #1.0.450 failed. Details: https://ci.appveyor.com/project/torproject/tor/build/1.0.450
```
If I can't fix this in a few minutes tomorrow, I'll leave it for later.Tor: 0.3.4.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26973Privcount blinding and encryption: add rustfmt CI check2020-06-27T13:52:42ZteorPrivcount blinding and encryption: add rustfmt CI checkWe should check that rustfmt has been run on the privcount_shamir code in our CI. See:
https://trac.torproject.org/projects/tor/ticket/26955?replyto=3#comment:3We should check that rustfmt has been run on the privcount_shamir code in our CI. See:
https://trac.torproject.org/projects/tor/ticket/26955?replyto=3#comment:3Tor: 0.4.0.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26972Create make target to ensure that all Rust files have been formatted with rus...2020-06-27T13:52:42ZChelsea KomloCreate make target to ensure that all Rust files have been formatted with rustfmtWe should have a CI task that ensures Rust files have been properly formatted- this will be helpful when reviewing PRs.
Other linting tooling can be added here in the future (for example, any clippy warnings we want to explicitly check...We should have a CI task that ensures Rust files have been properly formatted- this will be helpful when reviewing PRs.
Other linting tooling can be added here in the future (for example, any clippy warnings we want to explicitly check) but starting with rustfmt seems like a good first step.
It looks like running rustfmt with `--check` will be helpful here: https://github.com/rust-lang-nursery/rustfmt#runningTor: 0.3.5.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26971Add rendezvous point unrecognised link specifiers to client introduce cells2022-06-16T18:01:57ZteorAdd rendezvous point unrecognised link specifiers to client introduce cellsLike legacy/trac#24181, we need to take unrecognised link specifiers from onion service descriptors, and put them in client introduce cells.
https://gitweb.torproject.org/torspec.git/tree/rend-spec-v3.txt#n1346Like legacy/trac#24181, we need to take unrecognised link specifiers from onion service descriptors, and put them in client introduce cells.
https://gitweb.torproject.org/torspec.git/tree/rend-spec-v3.txt#n1346https://gitlab.torproject.org/tpo/core/tor/-/issues/26970Privcount: plan the modules and components2020-07-28T22:37:36ZteorPrivcount: plan the modules and componentsReplying to [26953#comment:3 chelseakomlo]:
> Is the idea that this project will remain external to core tor, or will this one day be merged into the core codebase? Definitely having CI in the short term seems wise either way.
That's a ...Replying to [26953#comment:3 chelseakomlo]:
> Is the idea that this project will remain external to core tor, or will this one day be merged into the core codebase? Definitely having CI in the short term seems wise either way.
That's a good question, nickm and I haven't discussed it yet. And I think we'd benefit from your advice.
For PrivCount in Tor, we need to produce the following components:
* a Rust "Data Collector" module in Tor that does blinding, encryption, and noise, based on a config
* a separate "Tally Reporter" binary that does unblinding, decryption, aggregation, and reporting, based on a config
* some tools for creating and validating configurations
One possible design is:
* Rust modules for blinding/encryption, noise, aggregation, reporting, and config
* Glue code and module imports for the Tor Data Collector
* Application code and module imports for the Tally Reporter
* Application code and module imports for the tools
Split off https://trac.torproject.org/projects/tor/ticket/26953?replyto=3#comment:3Tor: unspecifiedhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26958Privcount blinding and encryption: run clippy on travis rust nightly2020-07-28T22:37:33ZteorPrivcount blinding and encryption: run clippy on travis rust nightlyWe'll need to fix or disable a lot of warnings for clippy.We'll need to fix or disable a lot of warnings for clippy.Tor: unspecifiedhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26957Privcount blinding and encryption: Derive copy and debug where possible2020-07-28T22:37:29ZteorPrivcount blinding and encryption: Derive copy and debug where possibleThe privcount shamir structs are missing copy and debug implementations.
komlo: are these useful?
If they are, we should derive them, and then enable the missing_copy_implementations and missing_debug_implementations warnings.The privcount shamir structs are missing copy and debug implementations.
komlo: are these useful?
If they are, we should derive them, and then enable the missing_copy_implementations and missing_debug_implementations warnings.Tor: unspecifiedhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26956Privcount blinding and encryption: deny warnings2020-06-27T13:52:43ZteorPrivcount blinding and encryption: deny warningsLet's fail the Travis build on any warning.Let's fail the Travis build on any warning.Tor: 0.3.5.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26955Privcount blinding and encryption: rustfmt2020-06-27T13:52:43ZteorPrivcount blinding and encryption: rustfmtI'm going to rustfmt the entire codebase, so I don't have spurious changes when I edit particular files.I'm going to rustfmt the entire codebase, so I don't have spurious changes when I edit particular files.Tor: 0.3.5.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26954Appveyor: Add Rust builds on Windows2020-07-28T22:37:23ZteorAppveyor: Add Rust builds on WindowsThe Tor Browser team cross-compiles Tor with Rust for Windows.
It would be great if we had our own CI for Rust Windows builds.
There's a good thread with some scripts here:
https://users.rust-lang.org/t/rust-appveyor-windows-ci-scripts/...The Tor Browser team cross-compiles Tor with Rust for Windows.
It would be great if we had our own CI for Rust Windows builds.
There's a good thread with some scripts here:
https://users.rust-lang.org/t/rust-appveyor-windows-ci-scripts/4437Tor: unspecifiedhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26953Privcount blinding and encryption: add travis CI2020-06-27T13:52:43ZteorPrivcount blinding and encryption: add travis CIBecause I don't want to spend all my time running multiple builds.Because I don't want to spend all my time running multiple builds.Tor: 0.3.5.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26952Try enabling ccache on Travis2020-06-27T13:52:43ZteorTry enabling ccache on TravisBased on my branch in legacy/trac#24629.Based on my branch in legacy/trac#24629.Tor: 0.3.5.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26948tor_run_main crashes when called a second time with --version2020-06-27T13:52:43ZArturo Filastòtor_run_main crashes when called a second time with --versionI wrote a testing harness that uses python and cffi, to implement some basic smoke tests for libtor. This can be found here: https://gist.github.com/hellais/b56043d57eb5be885958e80b3665bfe2 (to run it do pip install cffi and change the ...I wrote a testing harness that uses python and cffi, to implement some basic smoke tests for libtor. This can be found here: https://gist.github.com/hellais/b56043d57eb5be885958e80b3665bfe2 (to run it do pip install cffi and change the LIB_PATH to the correct path).
In particular by adding the command line flag --version and starting tor, I am unable to re-start it due to the exception listed in the above gist.Tor: 0.3.5.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26947Add function for reporting the tor version in tor_api.h2020-06-27T13:52:44ZArturo FilastòAdd function for reporting the tor version in tor_api.hAs a user of libtor_api it would be useful for me to be able to obtain the version of tor without having to call it's main function.
The function could look something like:
```
const char * tor_version()
{
return tor_version_string...As a user of libtor_api it would be useful for me to be able to obtain the version of tor without having to call it's main function.
The function could look something like:
```
const char * tor_version()
{
return tor_version_string;
}
```
This would be very useful for a user of the library that wishes to check if they have linked to the right tor version (or implement some sanity checks) without having to start tor and then speak to it on the control port (therefore paying some significant overhead).Tor: 0.3.5.x-finalNick MathewsonNick Mathewson