The Tor Project issueshttps://gitlab.torproject.org/groups/tpo/-/issues2023-11-30T16:16:40Zhttps://gitlab.torproject.org/tpo/community/hackweek/-/issues/23Fix missing documentation in network-health land2023-11-30T16:16:40ZGeorg KoppenFix missing documentation in network-health land# About the project
* Contact: @gk
* Chat: #tor-dev> on `irc.oftc.net`
* Video room: non yet
# Participants
- @gk
- @juga
- etc
# Summary
Fix missing documentation in network-health land
## Project A
We'll go over the open ti...# About the project
* Contact: @gk
* Chat: #tor-dev> on `irc.oftc.net`
* Video room: non yet
# Participants
- @gk
- @juga
- etc
# Summary
Fix missing documentation in network-health land
## Project A
We'll go over the open tickets with the `Documentation` label in network health land try to prioritize them and then fix as many of them as possible (starting with the most important ones). Alternatively, it's fine if folks just pick up any of those tickets and fix them. :smile:
# Skills
No special skillz
https://gitlab.torproject.org/tpo/network-health/team/-/issues/201 might be related to https://gitlab.torproject.org/tpo/community/hackweek/-/issues/19
https://gitlab.torproject.org/tpo/network-health/bandwidth-authorities/-/issues/2 is related to other security guidelines
# Links
https://gitlab.torproject.org/groups/tpo/network-health/-/issues/?sort=created_date&state=opened&label_name%5B%5D=Documentation&first_page_size=20
https://gitlab.torproject.org/groups/tpo/network-health/-/issues/?sort=created_date&state=opened&label_name%5B%5D=Docshackathon&assignee_username%5B%5D=juga&first_page_size=100
Update: added juga, tentative issues and other teams' related issuesHackweek 2023Georg KoppenGeorg Koppenhttps://gitlab.torproject.org/tpo/core/tor/-/issues/30112Fix outdated comments in dirserv_read_measured_bandwidths()2021-09-16T14:19:58ZteorFix outdated comments in dirserv_read_measured_bandwidths()We refactored the function to use tor_getdelim(), but didn't remove the comments about fgets().We refactored the function to use tor_getdelim(), but didn't remove the comments about fgets().Tor: 0.4.1.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/31418Fix some typos in the man page2021-07-22T16:19:44ZteorFix some typos in the man pageTor: 0.4.2.x-finalteorteorhttps://gitlab.torproject.org/tpo/community/l10n/-/issues/40120Fix text direction for commands in RTL pages2023-11-09T19:11:36ZemmapeelFix text direction for commands in RTL pagesWhen we add latin characters for commands in RTL pages, they are identified as being LTR and displayed almost correctly.
Almost, because when they have neutral-direction characters, those are still layered as RTL, and so, many commands ...When we add latin characters for commands in RTL pages, they are identified as being LTR and displayed almost correctly.
Almost, because when they have neutral-direction characters, those are still layered as RTL, and so, many commands are broken and will not work if copied by the users:
![Screenshot_from_2023-10-13_10-57-49](/uploads/4993334ae16eaa0e064423d9e2e6947d/Screenshot_from_2023-10-13_10-57-49.png) ![Screenshot_from_2023-10-13_10-57-21](/uploads/d78dd206ff6c4730e9d55fb5d8b90069/Screenshot_from_2023-10-13_10-57-21.png)
If we insert UTF-8 embedded direction characters, many times they are removed because they are fishy (for example, they will be removed from the page if you edit it in the gitlab editor).
So I think we can try to solve this by giving the `<code>` style a forced LTR direction. This will probably make sense to do in lego, but I will try on one lektor before to see if it works.Jérôme Charaouilavamind@torproject.orgJérôme Charaouilavamind@torproject.orghttps://gitlab.torproject.org/tpo/core/tor/-/issues/28221Fix typo in ReleasingTor.md2021-07-22T16:20:37ZteorFix typo in ReleasingTor.mdTor: 0.3.5.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/16457Fix typos in rend-spec-ng.txt and tor-spec.txt2021-07-22T16:25:32ZteorFix typos in rend-spec-ng.txt and tor-spec.txtThere are a number of typos and inconsistencies in in `torspec/proposals/224-rend-spec-ng.txt`. I've created a branch to fix them:
**Branch:** typos-rend-spec-ng
**Repository:** https://github.com/teor2345/torspec.git
**Changes:**
* Fix...There are a number of typos and inconsistencies in in `torspec/proposals/224-rend-spec-ng.txt`. I've created a branch to fix them:
**Branch:** typos-rend-spec-ng
**Repository:** https://github.com/teor2345/torspec.git
**Changes:**
* Fix misspellings, inconsistent field names, and missing INT_8() specifiers. (Inferred from context.)
* Consistently use _LEN rather than _LENGTH for field lengths in 224-rend-spec-ng.txt. (8 replacements made.)
There is also a typo in `torspec/tor-spec.txt` that is fixed in:
**Branch:** typos-tor-spec
**Repository:** https://github.com/teor2345/torspec.git
**Changes:**
* Fix typo where "yes" is clearly intended to be "yet"Tor: 0.2.7.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/11634fix warnings from "make check-docs"2021-07-22T16:26:02ZNick Mathewsonfix warnings from "make check-docs"It looks like tor.1.txt has gotten out of sync with tor again; better fix that.It looks like tor.1.txt has gotten out of sync with tor again; better fix that.Tor: 0.2.5.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/20631Fixup comment in rend_service_parse_port_config()2021-07-22T16:22:54ZtwimFixup comment in rend_service_parse_port_config()Tor: 0.3.0.x-finalhttps://gitlab.torproject.org/tpo/tpa/team/-/issues/40999followup on TPA-RFC-27: Python 2 removal in bookworm2023-07-05T14:42:44Zanarcatfollowup on TPA-RFC-27: Python 2 removal in bookwormin #33949, we decided to EOL Python 2 inside TPA. The actual [proposal](https://gitlab.torproject.org/tpo/tpa/team/-/wikis/policy/tpa-rfc-27-python2-eol) [timeline](https://gitlab.torproject.org/tpo/tpa/team/-/wikis/policy/tpa-rfc-27-pyt...in #33949, we decided to EOL Python 2 inside TPA. The actual [proposal](https://gitlab.torproject.org/tpo/tpa/team/-/wikis/policy/tpa-rfc-27-python2-eol) [timeline](https://gitlab.torproject.org/tpo/tpa/team/-/wikis/policy/tpa-rfc-27-python2-eol#timeline) said:
> Debian 12 bookworm upgrades are currently scheduled to begin some time in 2023 and should be completed before July 2024. An actual schedule will be proposed in a future announcement. When this change will be deployed, Python 2 will be gone from TPA servers.
This ticket is to followup on that step, when we upgrade all servers to bookworm and Python 2 is definitely removed from our servers. It's possible (though unlikely) that some Python 2 programs remain on the upgraded bullseye servers, so this ticket will make sure we make proper announcements and porting if we encounter those.Debian 12 bookworm upgradeanarcatanarcathttps://gitlab.torproject.org/tpo/core/tor/-/issues/22827Formalise CollecTor spec for sanitised bridge descriptors and put in torspec2021-07-22T16:22:39ZIsis LovecruftFormalise CollecTor spec for sanitised bridge descriptors and put in torspecPerhaps we should make https://collector.torproject.org/#type-bridge-network-status a bit more formal and put it into the torspec repo somewhere?
See [this comment by iwakeh on #22207](https://trac.torproject.org/projects/tor/ticket/222...Perhaps we should make https://collector.torproject.org/#type-bridge-network-status a bit more formal and put it into the torspec repo somewhere?
See [this comment by iwakeh on #22207](https://trac.torproject.org/projects/tor/ticket/22207#comment:10) and [this comment by karsten on #18797](https://trac.torproject.org/projects/tor/ticket/18797#comment:7) and [karsten's ANTLR 4 grammar for bridge networkstatuses](https://trac.torproject.org/projects/tor/attachment/ticket/18797/BridgeNetworkStatus.g4) (note that the grammar will work for both sanitised and unsanitised bridge networkstatuses).
The related ticket, for making a spec for unsanitised bridge descriptors, is legacy/trac#22826.Tor: unspecifiedKarsten LoesingKarsten Loesinghttps://gitlab.torproject.org/tpo/anti-censorship/team/-/issues/38Formalize and document what it takes for a PT to get deployed.2022-03-01T17:19:09ZYawning AngelFormalize and document what it takes for a PT to get deployed.It would be good to formalize what it takes to get a PT to be considered for deployment beyond the rough guidelines we have as part of our Sponsor S/T draft. I have some ideas here about things that should be considered that aren't, tha...It would be good to formalize what it takes to get a PT to be considered for deployment beyond the rough guidelines we have as part of our Sponsor S/T draft. I have some ideas here about things that should be considered that aren't, that other people are likely to disagree about, so discussion is needed.
The last 3 PTs that got deployed were FTE, ScrambleSuit and obfs4.
* What did we do?
* Out of what we did, what was right?
* Out of what we did, what was wrong?
* What did we consider that we should ignore in the future?
* What did we not consider that we should in the future?
* Who's going to do all the evaluation work?https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/trac/-/issues/16756Formalize and document what it takes for a PT to get deployed.2021-11-15T18:57:13ZYawning AngelFormalize and document what it takes for a PT to get deployed.It would be good to formalize what it takes to get a PT to be considered for deployment beyond the rough guidelines we have as part of our Sponsor S/T draft. I have some ideas here about things that should be considered that aren't, tha...It would be good to formalize what it takes to get a PT to be considered for deployment beyond the rough guidelines we have as part of our Sponsor S/T draft. I have some ideas here about things that should be considered that aren't, that other people are likely to disagree about, so discussion is needed.
The last 3 PTs that got deployed were FTE, ScrambleSuit and obfs4.
* What did we do?
* Out of what we did, what was right?
* Out of what we did, what was wrong?
* What did we consider that we should ignore in the future?
* What did we not consider that we should in the future?
* Who's going to do all the evaluation work?https://gitlab.torproject.org/tpo/core/tor/-/issues/33741Format code blocks inside markdown files (documentation)2021-07-22T16:18:20ZGhost UserFormat code blocks inside markdown files (documentation)There are issues with code blocks inside some *.md files (some files use code blocks syntax, some do not). First of all, it's not consistent but what's really bad is when *.md file is being displayed incorrectly. You can find an example ...There are issues with code blocks inside some *.md files (some files use code blocks syntax, some do not). First of all, it's not consistent but what's really bad is when *.md file is being displayed incorrectly. You can find an example of what I'm saying in CodingStandards.md under How we log changes section.
https://github.com/torproject/tor/blob/master/doc/HACKING/CodingStandards.md#how-we-log-changes
Part of the git log output is still displayed as a regular text rather than a formatted code block.
Goal of this ticket is to go through all *.md files under `doc` and `doc/HACKING` directories and format code snippets accordingly.
```
```c
// code snippet
// written in
// C language
```
```
```
```bash
// command to be run
// inside bash
```
```
This should fix the issues described above and enable syntax highlighting on supported websites and editors.Tor: unspecifiedGuinnessGuinnesshttps://gitlab.torproject.org/tpo/core/tor/-/issues/28954fuzz-descriptor aborts with a crash2021-07-22T16:20:05Ztoralffuzz-descriptor aborts with a crashWith recent Tor (tor-0.3.5.3-alpha-727-g99713b176) the command
```
/usr/bin/afl-fuzz -i /home/torproject/tor-fuzz-corpora/descriptor -o tmp/ -m 45 -- /home/torproject/tor/src/test/fuzz/fuzz-descriptor
```
gives an
```
[-] Oops, the progr...With recent Tor (tor-0.3.5.3-alpha-727-g99713b176) the command
```
/usr/bin/afl-fuzz -i /home/torproject/tor-fuzz-corpora/descriptor -o tmp/ -m 45 -- /home/torproject/tor/src/test/fuzz/fuzz-descriptor
```
gives an
```
[-] Oops, the program crashed with one of the test cases provided. There are
several possible explanations:
- The test case causes known crashes under normal working conditions. If
so, please remove it. The fuzzer should be seeded with interesting
inputs - but not ones that cause an outright crash.
- The current memory limit (45.0 MB) is too low for this program, causing
it to die due to OOM when parsing valid files. To fix this, try
bumping it up with the -m setting in the command line. If in doubt,
try something along the lines of:
( ulimit -Sv $[44 << 10]; /path/to/binary [...] <testcase )
Tip: you can use http://jwilk.net/software/recidivm to quickly
estimate the required amount of virtual memory for the binary. Also,
if you are using ASAN, see /usr/share/doc/afl-2.52b/notes_for_asan.txt.
- Least likely, there is a horrible bug in the fuzzer. If other options
fail, poke <lcamtuf@coredump.cx> for troubleshooting tips.
[-] PROGRAM ABORT : Test case 'id:000153,orig:2136185e394ee1b2b4b9336ec365ac0c0dd5f2ac53065272591d3bb31375d568' results in a crash
Location : perform_dry_run(), afl-fuzz.c:2852
```
despite that recidivm marks a value of "45" as ok:
```
$ ../recidivm/recidivm -v -u M ./src/test/fuzz/fuzz-descriptor
recidivm: 35184372088832 -> ok
recidivm: 17592186044416 -> ok
recidivm: 8796093022208 -> ok
recidivm: 4398046511104 -> ok
recidivm: 2199023255552 -> ok
recidivm: 1099511627776 -> ok
recidivm: 549755813888 -> ok
recidivm: 274877906944 -> ok
recidivm: 137438953472 -> ok
recidivm: 68719476736 -> ok
recidivm: 34359738368 -> ok
recidivm: 17179869184 -> ok
recidivm: 8589934592 -> ok
recidivm: 4294967296 -> ok
recidivm: 2147483648 -> ok
recidivm: 1073741824 -> ok
recidivm: 536870912 -> ok
recidivm: 268435456 -> ok
recidivm: 134217728 -> ok
recidivm: 67108864 -> ok
recidivm: 33554432 -> exit status 127
recidivm: 50331648 -> ok
recidivm: 41943040 -> exit status 127
recidivm: 46137344 -> exit status 127
recidivm: 48234496 -> ok
recidivm: 47185920 -> ok
45
```
With "55" the fuzzer proceeds.
FWIW:
```
~/recidivm $ git describe
0.1.4-30-g844edc0
torproject@mr-fox ~/recidivm $
```
and
```
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/7.3.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /var/tmp/portage/sys-devel/gcc-7.3.0-r3/work/gcc-7.3.0/configure --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/7.3.0 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/7.3.0 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/7.3.0/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/7.3.0/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/g++-v7 --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/7.3.0/python --enable-languages=c,c++ --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo Hardened 7.3.0-r3 p1.4' --enable-esp --enable-libstdcxx-time --disable-libstdcxx-pch --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --disable-multilib --with-multilib-list=m64 --disable-altivec --disable-fixed-point --enable-targets=all --enable-libgomp --disable-libmudflap --disable-libssp --disable-libcilkrts --disable-libmpx --enable-vtable-verify --enable-libvtv --disable-libquadmath --enable-lto --without-isl --disable-libsanitizer --enable-default-pie --enable-default-ssp
Thread model: posix
gcc version 7.3.0 (Gentoo Hardened 7.3.0-r3 p1.4)
```Tor: unspecifiedhttps://gitlab.torproject.org/tpo/core/tor/-/issues/21475Fuzzing on macOS requires afl-clang-fast2021-07-22T16:22:56ZteorFuzzing on macOS requires afl-clang-fastFuzzing.md mistakenly says it needs 'afl-clang'.Fuzzing.md mistakenly says it needs 'afl-clang'.Tor: unspecifiedhttps://gitlab.torproject.org/tpo/onion-services/onion-support/-/issues/99General policy on how the Onion Support team should respond to Onionprobe alerts2022-09-27T09:49:18ZSilvio RhattoGeneral policy on how the Onion Support team should respond to Onionprobe alertsWrite a small quick policy in what to do when an incident happen and are detected/notified by Onionprobe, including:
* Inform the interested parties (like Sponsors and/or users) of the issue, if needed.
* Check agreement when/where admi...Write a small quick policy in what to do when an incident happen and are detected/notified by Onionprobe, including:
* Inform the interested parties (like Sponsors and/or users) of the issue, if needed.
* Check agreement when/where admins allow to be notified.
* Then check if admins online (or on shift) can work on it (depends on agreed channels and current time):
* Ping on IRC.
* Ping on email.
* Ping on Signal.
* Ping on X.
This policy should be available at the Onion Support wiki.Sponsor 123: Tor Secure Access Package for USAGM [First Phase]Silvio RhattoSilvio Rhatto2022-08-31https://gitlab.torproject.org/tpo/core/tor/-/issues/32101Generate and publish doxygen output automatically2021-07-22T16:19:26ZNick MathewsonGenerate and publish doxygen output automaticallyWe should have a cron job or a jenkins process or something that runs "doxygen" in our codebase and publishes it at some official location.We should have a cron job or a jenkins process or something that runs "doxygen" in our codebase and publishes it at some official location.Tor: 0.4.3.x-finalhttps://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/34051Generate list of all dependencies and additional files2023-11-07T12:36:49ZMatthew FinkelGenerate list of all dependencies and additional filesExternal Tor Browser packages (for other platforms) would find it helpful if we produce a list of all dependencies used for building Tor Browser for a platform and if those dependencies were built using custom patches. This list should i...External Tor Browser packages (for other platforms) would find it helpful if we produce a list of all dependencies used for building Tor Browser for a platform and if those dependencies were built using custom patches. This list should include any additional files we inject into the final packages (such as licenses, start script, fonts, etc.).https://gitlab.torproject.org/tpo/onion-services/onion-support/-/issues/202Get domains for some Onion Service projects2024-03-15T16:32:57ZSilvio RhattoGet domains for some Onion Service projects# Goals
* Get shorter URLs for some Onion Service related projects, pointing to their GitLab Pages.
# Why
* The current URLs are hard to remember and take a lot to type.
# Approaches
## Per-project domains
This approach consists in...# Goals
* Get shorter URLs for some Onion Service related projects, pointing to their GitLab Pages.
# Why
* The current URLs are hard to remember and take a lot to type.
# Approaches
## Per-project domains
This approach consists in having one domain per project:
* [ ] `onionplan.torproject.org` (for [The Onion Plan](https://tpo.pages.torproject.net/onion-services/onionplan/)).
* [ ] `onionbalance.torproject.org` (for [Onionbalance](https://tpo.pages.torproject.net/onion-services/onionbalance/)).
* [ ] `onionprobe.torproject.org` (for [Onionprobe](https://tpo.pages.torproject.net/onion-services/onionprobe/)).
* [ ] `oniongroove.torproject.org` (for [Oniongroove](https://tpo.pages.torproject.net/onion-services/oniongroove/)).
* [ ] `onion-launchpad.torproject.org` (for [Onion Launchpad](https://tpo.pages.torproject.net/onion-services/onion-launchpad/)).
* [ ] `onionspray.torproject.org` (for [Onionspray](https://gitlab.torproject.org/tpo/onion-services/onionspray)) (see [this issue about rebranding the EOTK fork](tpo/onion-services/eotk#13)).
* [ ] `onionmine.torproject.org` (for [Onionmine](https://gitlab.torproject.org/tpo/onion-services/onionmine), check tpo/onion-services/onionmine#26).
Pros:
* Tend to produce shorter URLs.
Cons:
* Involves more work to setup.
## Single Onion Service documentation site
This approach consists in having a single `onionservices.torproject.org` domain, and allocating a subpath for each project:
* [ ] `onionservices.torproject.org/onionplan` (for [The Onion Plan](https://tpo.pages.torproject.net/onion-services/onionplan/)).
* [ ] `onionservices.torproject.org/onionbalance` (for [Onionbalance](https://tpo.pages.torproject.net/onion-services/onionbalance/), check tpo/onion-services/onionbalance#28).
* [ ] `onionservices.torproject.org/onionprobe` (for [Onionprobe](https://tpo.pages.torproject.net/onion-services/onionprobe/)).
* [ ] `onionservices.torproject.org/oniongroove` (for [Oniongroove](https://tpo.pages.torproject.net/onion-services/oniongroove/)).
* [ ] `onionservices.torproject.org/onion-launchpad` (for [Onion Launchpad](https://tpo.pages.torproject.net/onion-services/onion-launchpad/)).
* [ ] `onionservices.torproject.org/onionspray` (for [Onionspray](https://gitlab.torproject.org/tpo/onion-services/onionspray)) (see [this issue about rebranding the EOTK fork](tpo/onion-services/eotk#13)).
* [ ] `onionservices.torproject.org/onionmine` (for [Onionmine](https://gitlab.torproject.org/tpo/onion-services/onionmine), check tpo/onion-services/onionmine#26).
Pros:
* Can be easier for a sysadmin point of view.
* It's self-explanatory.
* May have integrated search across all these projects by leveraging these configurations:
* [mkdocs-multirepo-plugin · PyPI](https://pypi.org/project/mkdocs-multirepo-plugin/)
* [Built-in projects plugin - Material for MkDocs](https://squidfunk.github.io/mkdocs-material/plugins/projects/)
* Could be release as part of the [Onion Services 20th Years Anniversary (2024 edition)](https://gitlab.torproject.org/tpo/onion-services/onionplan/-/issues/14#note_2933136).
Cons:
* May conflict/duplicate efforts with the upcoming [Tor Developer Portal](https://gitlab.torproject.org/groups/tpo/-/milestones/23).
* Requires an additional home page.
## Deployment options
1. Have a static hosting endpoint with changes pushed by GitLab CI jobs, possibly the [static shim][] deploying to the [static component].
2. A reverse proxy setup.
3. Or it may happen that only a redirect/alias is supported (like was done at tpo/tpa/team#40294).
## Bonus
* [ ] Onion Services endpoint and Onion-Location for each site. The Onion Service itself could be one for the entire GitLab pages (and that would also help with tpo/onion-services/onion-launchpad#32, related to tpo/tpa/team#40379).
[static shim]: https://gitlab.torproject.org/tpo/tpa/team/-/wikis/service/static-shim
[static component]: https://gitlab.torproject.org/tpo/tpa/team/-/wikis/howto/static-componentSilvio RhattoSilvio Rhatto2024-02-29https://gitlab.torproject.org/tpo/anti-censorship/team/-/issues/22Get more private bridges2023-08-07T11:18:19ZCecylia BocovichGet more private bridgesWe maintain a list of private bridges that we distribute to NGOs and individuals in places that block most of our other distribution methods. BridgeDB sets aside some bridges for private distribution in the "unallocated" or "reserved" po...We maintain a list of private bridges that we distribute to NGOs and individuals in places that block most of our other distribution methods. BridgeDB sets aside some bridges for private distribution in the "unallocated" or "reserved" pool.
At the end of March we are losing some private bridges that volunteers run so we need a few actions to get more private (stable if possible) bridges:
- [ ] Create and document a pipeline for distributing "unallocated" bridges as private bridges. We should document a pipeline for taking bridges the reserved this pool and getting them into the hands of users. (meskio)
- [x] Ask organizations to run obfs4 bridges (gus)
- [x] Check with the donated hw we may get (gaba)
_Update on October 12th: Documentation is the only issue missing here._Sponsor 96: Rapid Expansion of Access to the Uncensored Internet through Tor in China, Hong Kong, & Tibetmeskiomeskio@torproject.orgmeskiomeskio@torproject.org