The Tor Project issueshttps://gitlab.torproject.org/groups/tpo/-/issues2022-11-30T16:20:22Zhttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/40234Create wiki entry for developing mobile Tor Browser with Android Studio2022-11-30T16:20:22ZGeorg KoppenCreate wiki entry for developing mobile Tor Browser with Android StudioIt would be helpful for potential contributors to get some guidance on
how to set up an Andriod Studio build and hack environment for all
things needed for mobile Tor Browser development.It would be helpful for potential contributors to get some guidance on
how to set up an Andriod Studio build and hack environment for all
things needed for mobile Tor Browser development.https://gitlab.torproject.org/tpo/core/tor/-/issues/19537Cryptic description for download GETINFO options2021-07-22T16:23:16ZDamian JohnsonCryptic description for download GETINFO optionsHi there, descriptions for the recent [spec addition](https://gitweb.torproject.org/torspec.git/commit/?id=12d462f192209ec99221795193322b4d95ccfff3) are pretty cryptic...
```
"The serialized download status for the FLAV_MICRODESC consen...Hi there, descriptions for the recent [spec addition](https://gitweb.torproject.org/torspec.git/commit/?id=12d462f192209ec99221795193322b4d95ccfff3) are pretty cryptic...
```
"The serialized download status for the FLAV_MICRODESC consensus for whichever bootstrap state Tor is currently in."
```
I expect this description only makes sense to the feature's author. What is FLAV_MICRODESC? What does this 'serialized download status' mean? Since it discusses 'bootstrap state' I'm guessing this is only relevant when tor is first starting up (showing percentages complete)?Tor: 0.3.2.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/tpo/core/tor/-/issues/28979Current alpha manual typo authorized_clients2021-07-22T16:20:05ZTracCurrent alpha manual typo authorized_clientsManual text, key word `Client Authorization` mentions `public-key` vs `privkey` for service:
```
To configure client authorization on the service side, the "<HiddenServiceDir>/authorized_clients/" directory needs to exist. Each file in t...Manual text, key word `Client Authorization` mentions `public-key` vs `privkey` for service:
```
To configure client authorization on the service side, the "<HiddenServiceDir>/authorized_clients/" directory needs to exist. Each file in that directory should be suffixed with ".auth" (i.e. "alice.auth"; the file name is irrelevant) and its content format MUST be:
<auth-type>:<key-type>:<base32-encoded-public-key>
The supported <auth-type> are: "descriptor". The supported <key-type> are: "x25519". The <base32-encoded-privkey> is the base32 representation of the raw key bytes only (32 bytes for x25519).
```
rend-spec-v3.txt (4329f00194bdb7adff2c9daa1cf47b09ce4c2a9e) confirms `public-key` instead of `privkey`.
So `privkey` is wrong for service.
**Trac**:
**Username**: FelixixTor: 0.3.5.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/tpo/web/community/-/issues/260dead link in fedora bridge setup guide2022-06-03T17:58:29Ztrinity-1686adead link in fedora bridge setup guidesomeone on IRC reported [the link here](https://gitlab.torproject.org/tpo/web/community/-/blob/main/content/relay/setup/bridge/fedora/contents.lr#L12) points to [nothing](https://community.torproject.org/relay/setup/bridge/fedora/updates...someone on IRC reported [the link here](https://gitlab.torproject.org/tpo/web/community/-/blob/main/content/relay/setup/bridge/fedora/contents.lr#L12) points to [nothing](https://community.torproject.org/relay/setup/bridge/fedora/updates).
A correct target could be [`/relay/setup/guard/fedora/updates/`](https://community.torproject.org/relay/setup/guard/fedora/updates/)https://gitlab.torproject.org/tpo/web/support/-/issues/275Dead link on FAQ2022-01-13T18:10:35ZcypherpunksDead link on FAQOn main page of support website, in section named "Gmail warns me that my account may have been compromised", there is a link to fscked.org, which seems to be a long-dead mikeperry's website.On main page of support website, in section named "Gmail warns me that my account may have been compromised", there is a link to fscked.org, which seems to be a long-dead mikeperry's website.https://gitlab.torproject.org/tpo/web/support/-/issues/327Dead link to blog2023-11-06T19:25:02ZslrslrDead link to bloghttps://support.torproject.org/tbb/tbb-22/
contains 404 not found link to https://blog.torproject.org/why-tor-is-slow
It is not even on archive: https://web.archive.org/web/20220715000000*/https://blog.torproject.org/why-tor-is-slow
I a...https://support.torproject.org/tbb/tbb-22/
contains 404 not found link to https://blog.torproject.org/why-tor-is-slow
It is not even on archive: https://web.archive.org/web/20220715000000*/https://blog.torproject.org/why-tor-is-slow
I am unsure if the article is still present: https://www.ecosia.org/search?addon=firefox&q=tor+blog+why+tor+is+slow+site%3Ablog.torproject.org
Though the https://support.torproject.org/tbb/tbb-22/ should contain some more answer to the question in its title..https://gitlab.torproject.org/tpo/network-health/onbasca/-/issues/109Decide what labels to use for this project2022-03-16T07:03:55ZjugaDecide what labels to use for this projectonbasca: 1.0https://gitlab.torproject.org/tpo/core/arti/-/issues/283Declare a MSRV policy2022-01-20T13:59:37ZNick MathewsonDeclare a MSRV policyWe should have a policy about our minimum supported rust version, and how/if it changes going forward. Since this is part of our promise to users, it should go in the %"Arti 0.1.0 release: Okay for experimental embedding" milestone.
S...We should have a policy about our minimum supported rust version, and how/if it changes going forward. Since this is part of our promise to users, it should go in the %"Arti 0.1.0 release: Okay for experimental embedding" milestone.
Split from #208.Arti 0.1.0 release: Okay for experimental embeddingNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/tpo/core/tor/-/issues/13755Declare that Windows XP and earlier are not officially supported.2021-07-22T16:25:47ZYawning AngelDeclare that Windows XP and earlier are not officially supported.The actual cleanup parts of this are at legacy/trac#11444 and legacy/trac#11445.
To be specific, Windows XP and below are officially EOL and support for those targets may break in the future. This fact should be documented formally som...The actual cleanup parts of this are at legacy/trac#11444 and legacy/trac#11445.
To be specific, Windows XP and below are officially EOL and support for those targets may break in the future. This fact should be documented formally somewhere.Tor: unspecifiedhttps://gitlab.torproject.org/tpo/core/tor/-/issues/40088DeepCorr: Strong Flow Correlation Attacks on Tor Using Deep Learning2022-02-28T19:41:51ZForboDeepCorr: Strong Flow Correlation Attacks on Tor Using Deep LearningI found this paper and have been trying to find any kind of official response. The claims of 96% correlation accuracy in as little as 900KB is extremely disconcerting.
https://arxiv.org/pdf/1808.07285v1.pdf
An email to the tor-dev maili...I found this paper and have been trying to find any kind of official response. The claims of 96% correlation accuracy in as little as 900KB is extremely disconcerting.
https://arxiv.org/pdf/1808.07285v1.pdf
An email to the tor-dev mailing list seemed to have generated no discussion, so I'm hoping that this issue will be more successful.
https://www.mail-archive.com/tor-dev@lists.torproject.org/msg10854.html
Their GitHub repo is here: https://github.com/SPIN-UMass/DeepCorrMike PerryMike Perryhttps://gitlab.torproject.org/tpo/core/tor/-/issues/20545Default Value Incorrect in Tor Manual2021-07-22T16:22:54ZTracDefault Value Incorrect in Tor ManualAt https://www.torproject.org/docs/tor-manual.html.en :
"AutomapHostsOnResolve 0|1
When this option is enabled, and we get a request to resolve an address that ends with one of the suffixes in AutomapHostsSuffixes, we map an unuse...At https://www.torproject.org/docs/tor-manual.html.en :
"AutomapHostsOnResolve 0|1
When this option is enabled, and we get a request to resolve an address that ends with one of the suffixes in AutomapHostsSuffixes, we map an unused virtual address to that address, and return the new virtual address. This is handy for making ".onion" addresses work with applications that resolve an address and then connect to it. (Default: 0)"
The Default is actually 1. I know that because the value in my torrc file is 1 and I can access sigaintevyh2rzvw.onion. I'm running Tails 2.6 with the included Tor Browser (6.0.5), and the relevant torrc is at etc/tor/torrc .
I have left the options below at their defaults because I'd just be guessing.
It should be very simple to confirm and fix.
**Trac**:
**Username**: agdTor: unspecifiedhttps://gitlab.torproject.org/tpo/community/support/-/issues/40061Define a process to evaluate docs mirrors availability in China2022-10-26T20:47:50ZGusDefine a process to evaluate docs mirrors availability in ChinaAs part of S96 work, we want to track if/when a Tor documentation mirror is blocked in China, so we can advertise a new one.As part of S96 work, we want to track if/when a Tor documentation mirror is blocked in China, so we can advertise a new one.Sponsor 96: Rapid Expansion of Access to the Uncensored Internet through Tor in China, Hong Kong, & TibetGusGushttps://gitlab.torproject.org/tpo/network-health/team/-/issues/108Define guidelines for variable naming2021-08-24T09:56:55ZiwakehDefine guidelines for variable namingStarting with Java, but this should be extended to the other languages used in Metrics' products.
Two excerpts from comments from ticket legacy/trac#22983 that are concerned with variable naming and try to define some guidelines:
=== le...Starting with Java, but this should be extended to the other languages used in Metrics' products.
Two excerpts from comments from ticket legacy/trac#22983 that are concerned with variable naming and try to define some guidelines:
=== legacy/trac#22983 comment 44:
I'd say there are also very many non-issues here, which I know are different in the existing older code base, but seem to make the code less readable to me, when I started to become familiar with the old codebase. For example, there are almost line filling variable names (not in this patch) that differ only in one to five letters. And there is the word 'Descriptor' all over, which often feels like cluttering when reading the code for the first time. The following is an example:
(all following diffs are from the 664f540 commit)
```
- public static List<Descriptor> parse(byte[] raw, File file)
...
+ public static List<Descriptor> parse(byte[] rawDescriptorBytes,
+ File descriptorFile) ...
```
Maybe, 'raw' alone is too terse, but 'rawBytes' seems fine whereas in 'rawDescriptorBytes' the word part 'Descriptor' overwhelms the important information. The method 'parse' receives raw bytes and tries to find a descriptor.
Here some other examples from the current patch&fixup round (we could recycle them for the guide lines, so I try to be verbose):
Renaming of isValid, here:
```
- public boolean isValid(String line);
+ public boolean validateLine(String line);
```
makes the code less readable. For example:
```
- -> null != line && !line.isEmpty() && !validator.isValid(line))
...
+ -> null != line && !line.isEmpty() && !validator.validateLine(line))
```
validateLine doesn't say that the result of the validation is returned (as a boolean). In addition, isValid(line) is more 'readable' as it 'translates' (e.g., read aloud) to "is valid line", whereas validateLine(line) results in "validate line line", which even without the duplication of line doesn't hint what happens. Similarly, sanitizeLine(line) vs. sanitize(line) (where I had clean(line) initially, but I don't mind the renaming) and postProcessLines(lines) vs. postProcessing(lines).
Why rename logBytes to rawDescriptorBytes? logBytes seems fine in a log descriptor
implementation. If I read this code for a first time I would wonder if rawDescriptorBytes
is inherited because of its generic name.
(Instead of renaming 'extension' to 'fileExtension' I'd suggest 'fileType', because that's what it is, i.e., not only an extension, which could be mistaken to be a string.)
=== reply from comment 45
===== Variable names
Thanks for writing down your thinking about variable names in the given detail. It helps a lot, not only for this ticket but also as a guide for future tickets. Let's go through the examples:
- Leaving out the somewhat redundant "descriptor" from `rawDescriptorBytes` and `descriptorFile` is fine with me. It's indeed obvious what's meant here.
- I quite strongly disagree with `isValid(line)` as a name for a method that takes a line, tries to validate it, and returns whether that was successful. To me, `isX()` is the name for a getter, not the name for a method that does something with a given parameter. If this were a `Line` class with a method `isValid()` that returns whether the line is valid or not, that would be something different. But that's not the case here. For another example, consider `File.delete()` which deletes the file and returns whether that was successful. We wouldn't argue about renaming that method to `isDeleted()` just because it returns `true` or `false`. As a general rule I'd say that the name of a method that performs something should be the verb describing the action, whereas `is` is typically reserved for getters. Ah, and in this case it's up to the documentation to say what `validate(line)` returns, though that's relatively obvious.
- Leaving out "line" in `sanitizeLine(line)` and friends is okay, too.
- You're probably right about keeping `logBytes` rather than `rawDescriptorBytes`.https://gitlab.torproject.org/tpo/network-health/team/-/issues/103Define SQL coding guidelines for Metrics' products2022-02-28T14:18:15ZiwakehDefine SQL coding guidelines for Metrics' productsSome points with examples are stated in [#24218 comment 8](https://trac.torproject.org/projects/tor/ticket/24218#comment:8). We shouldn't re-invent the wheel here. Thus, for reference some [ideas from Oracle](https://oracle.readthedocs...Some points with examples are stated in [#24218 comment 8](https://trac.torproject.org/projects/tor/ticket/24218#comment:8). We shouldn't re-invent the wheel here. Thus, for reference some [ideas from Oracle](https://oracle.readthedocs.io/en/latest/sql/basics/style-guide.html) and another [reference](https://databaseline.bitbucket.io/guidelines.html) suggested there.
I wouldn't want to copy these entirely, especially the 'space before comma' rule is troublesome. We don't change sql often enough to justify that.
There are probably other nice references out there, which should be considered.https://gitlab.torproject.org/tpo/tpa/team/-/issues/41384Deploy community policies mkdocs build2023-11-08T23:50:58ZGusDeploy community policies mkdocs buildHi,
We're generating the Tor Community policies (https://tpo.pages.torproject.net/community/policies) pages using GitLab-CI + GitLab pages.
Please create `policies.torproject.org` subdomain and redirect to https://tpo.pages.torproject...Hi,
We're generating the Tor Community policies (https://tpo.pages.torproject.net/community/policies) pages using GitLab-CI + GitLab pages.
Please create `policies.torproject.org` subdomain and redirect to https://tpo.pages.torproject.net/community/policiesJérôme Charaouilavamind@torproject.orgJérôme Charaouilavamind@torproject.orghttps://gitlab.torproject.org/tpo/web/manual/-/issues/89Deploy Tor Browser User Manual on Gitlab.com2022-07-08T14:04:50ZGusDeploy Tor Browser User Manual on Gitlab.comAt the moment, the Tor Browser User Manual is only accessible on the subdomain: tb-manual.torproject.org. But, thinking about users living in countries that are blocking the torproject.org main domain, they can't access this documentatio...At the moment, the Tor Browser User Manual is only accessible on the subdomain: tb-manual.torproject.org. But, thinking about users living in countries that are blocking the torproject.org main domain, they can't access this documentation. Since Lektor is a static generator site, it's possible to host this documentation on gitlab.com, which isn't censored (in most cases).
Tasks
* [x] Write a CI/CD and deploy this manual on gitlab.com pages. See: https://gitlab.torproject.org/tpo/web/team/-/issues/4Sponsor 96: Rapid Expansion of Access to the Uncensored Internet through Tor in China, Hong Kong, & Tibethttps://gitlab.torproject.org/tpo/core/tor/-/issues/32627deploy torspec as HTML to GitLab Pages2021-07-22T16:19:07Zeighthavedeploy torspec as HTML to GitLab Pageshttps://github.com/torproject/torspec/pull/96 will deploy torspec in HTML to any GitLab fork setup with CI and Pages (default on gitlab.com). it only adds one file: _.gitlab-ci.yml_
Once merged, the site will show up automatically on ht...https://github.com/torproject/torspec/pull/96 will deploy torspec in HTML to any GitLab fork setup with CI and Pages (default on gitlab.com). it only adds one file: _.gitlab-ci.yml_
Once merged, the site will show up automatically on https://torproject.gitlab.io/torspec, and it'll sync every commit from the canonical repo and automatically rebuild the HTML.
The sed regexps in _.gitlab-ci.yml_ could be used as the beginnings of a conversion to Markdown format, as needed.Tor: 0.4.3.x-finalhttps://gitlab.torproject.org/tpo/core/arti-doc-project-2023/-/issues/83Deploying Arti Documentation2024-03-05T15:10:55ZpkafeiDeploying Arti DocumentationOur team is almost finished with the Arti documentation, and we are now in the process of deploying the site. We suggest deploying Arti in the current repo that it's located in using [Gitlab Pages](https://docs.gitlab.com/ee/user/project...Our team is almost finished with the Arti documentation, and we are now in the process of deploying the site. We suggest deploying Arti in the current repo that it's located in using [Gitlab Pages](https://docs.gitlab.com/ee/user/project/pages/).
We think this is the most convenient approach, but there are several issues we want to clear up before we proceed:
1. Is the [current documentation site](https://tpo.pages.torproject.net/core/arti/) repo located [here](https://gitlab.torproject.org/tpo/core/arti-doc-project-2023/-/tree/main/doc)? If so, is there a compelling reason for us to point the new docs to this new location and deploy them from the docs directory?
2. How do we handle the domain name? Will the new documentation have a new domain name?
Thanks, and let us know if we're missing anything! cc @gaba @oluchinwenyi @charlie-doc-writerAlexander Færøyahf@torproject.orgAlexander Færøyahf@torproject.orghttps://gitlab.torproject.org/tpo/onion-services/onion-launchpad/-/issues/24Deployment documentation for the Landing Page2024-03-27T21:42:12ZSilvio RhattoDeployment documentation for the Landing Page* [x] Include deployment documentation in the Landing Page's [README.md](https://gitlab.torproject.org/tpo/onion-services/sponsor123-landing-page/-/blob/main/README.md) and/or `docs/` folder.
* [ ] Document the simpler procedure (user fo...* [x] Include deployment documentation in the Landing Page's [README.md](https://gitlab.torproject.org/tpo/onion-services/sponsor123-landing-page/-/blob/main/README.md) and/or `docs/` folder.
* [ ] Document the simpler procedure (user forks Onion Launchpad's mirror on GitLab or GitHub, then configure and trigger a build).
* [ ] Document logo filename convention for automatic translations.
* [ ] Include a screenshot.
* [ ] Explain that it's useful both as a censorship circumvention tool
and as a landing portal for onion-only sites that needs to include
documentation for their users about how to get access.Onion Launchpad - 2024.Q2Silvio RhattoSilvio Rhatto2024-04-30https://gitlab.torproject.org/tpo/core/torspec/-/issues/23Describe consensus digest calculation2022-02-21T19:12:25ZDamian JohnsonDescribe consensus digest calculationHi lovely network team folks. No doubt I'm being blind but I'm having difficulty figuring out how to calculate network status document digests.
During the voting period (minutes 55-60 of the hour) I fetched the detached signatures and u...Hi lovely network team folks. No doubt I'm being blind but I'm having difficulty figuring out how to calculate network status document digests.
During the voting period (minutes 55-60 of the hour) I fetched the detached signatures and upcoming consensus. The detached signatures cite the digest...
```
% curl http://128.31.0.39:9131/tor/status-vote/next/consensus-signatures > sigs
% curl http://128.31.0.39:9131/tor/status-vote/next/consensus > next_consensus
% grep consensus-digest sigs
consensus-digest 296BA01987256A1C8EFB20E17667152DCFA50755
```
But in trying hex encoded sha1s of various ranges of the consensus I'm having difficulty getting a value that matches that. No doubt I'm missing something but the spec is unhelpfully vague saying simply 'this is the digest' without citing a section describing how it's calculated...
https://gitweb.torproject.org/torspec.git/tree/dir-spec.txt#n3309
It's probably buried in there somewhere but I've skimmed through the spec a few times and it's not jumping out at me. Mind clarifying in the spec how to calculate this?
Thanks!