unofficial git repo -- report bugs/issues/pull requests on https://gitlab.torproject.org/ -- discuss proposals on tor-dev@lists.torproject
Go to file
2021-09-30 08:33:39 -04:00
attic Move tor-fw-helper-spec.txt to attic. This feature is no longer supported. 2020-07-27 09:56:29 -04:00
proposals Merge branch 'tor-gitlab/mr/46' 2021-09-30 08:33:39 -04:00
.gitignore Ignore OS X's .DS_Store directory metadata files 2015-10-19 06:28:13 +11:00
.gitlab-ci.yml gitlab-ci: add header/footer blocks to generate complete HTML 2019-12-10 16:06:53 +01:00
address-spec.txt address-spec: Add 'Table of contents' 2021-09-22 14:42:40 +03:00
bandwidth-file-spec.txt bandwidth-file-spec: Add 'Table of contents' 2021-09-22 14:42:40 +03:00
bridgedb-spec.txt bridgedb-spec: Add 'Table of contents' 2021-09-22 16:13:32 +03:00
cert-spec.txt cert-spec: Add 'Table of contents' 2021-09-22 16:13:32 +03:00
control-spec.txt control-spec: Add 'Table of contents' 2021-09-22 14:42:40 +03:00
dir-list-spec.txt dir-list-spec: Add 'Table of contents' 2021-09-22 16:13:32 +03:00
dir-spec.txt dir-spec: Add 'Table of contents' 2021-09-22 14:42:40 +03:00
ext-orport-spec.txt ext-orport-spec: Add 'Table of contents' 2021-09-22 16:13:32 +03:00
gettor-spec.txt gettor-spec: Add 'Table of contents' 2021-09-22 16:13:32 +03:00
glossary.txt glossary: Add 'Table of contents' 2021-09-22 16:13:32 +03:00
guard-spec.txt guard-spec: Add 'Table of contents' 2021-09-22 16:13:32 +03:00
padding-spec.txt padding-spec: Add 'Table of contents' 2021-09-22 16:13:32 +03:00
param-spec.txt param-spec: Add 'Table of contents' 2021-09-22 16:13:37 +03:00
path-spec.txt path-spec: Add 'Table of contents' 2021-09-22 16:13:19 +03:00
pt-spec.txt Clearify loopback address for IPv6. 2020-10-06 09:32:28 -04:00
README.md Write a README.md for torspec. 2020-07-27 09:56:06 -04:00
rend-spec-v2.txt fix trivial typo / whitespace 2021-08-16 11:46:01 -04:00
rend-spec-v3.txt fix some logic errors and typos in specs+proposals 2021-06-23 04:35:49 -04:00
socks-extensions.txt socks-extensions: Add 'Table of contents' 2021-09-22 16:13:32 +03:00
srv-spec.txt convert text blocks into widely compatible "blockquote" syntax 2019-12-10 16:06:53 +01:00
tor-spec.txt tor-spec: Add 'Table of contents' 2021-09-22 16:13:32 +03:00
version-spec.txt version-spec: Add 'Table of contents' 2021-09-22 16:13:32 +03:00

Tor specifications

This repository holds the specifications that describe how Tor works. They try to present Tor's protocols in sufficient detail to allow the reader to implement a compatible implementation of Tor without ever having to read the Tor source code.

The proposals directory holds our design proposals. These include historical documents that have now been merged into . For more information on the proposal process, including an explanation of how to make new proposals, see, see 001-process.txt.

What you can find here

Tor's specification is pretty big, and we've broken it into a bunch of files.

  • General interest
    • tor-spec.txt contains the specification for the core Tor protocol itself; this is a good place to start reading.
    • cert-spec.txt describes a certificate format used in the other parts of the protocol.
    • dir-spec.txt specifies the operations and formats used to maintain a view of the network directory.
    • padding-spec.txt describes a set of padding mechanisms used to impede traffic analysis.
    • version-spec.txt explains how to parse Tor version numbers.
    • glossary.txt is a glossary of terms used in the other specifications.
  • Client operations
    • address-spec.txt lists a set of special addresses that Tor handles differently from the regular DNS system.
    • guard-spec.txt explains the "guard node" algorithm that Tor clients use to avoid sampling attacks.
    • path-spec.txt explains how clients choose their paths through the Tor network.
    • socks-extensions specifies Tor-specific extensions to the SOCKS protocol.
  • Onion services
  • Censorship resistance
    • bridgedb-spec.txt explains how the bridgedb server gives out bridges to censored clients.
    • gettor-spec.txt describes the gettor tool, which is used to download Tor in censored areas.
    • pt-spec.txt describes the protocol that Tor clients and relays use to communicate with pluggable transports used for traffic obfuscation.
  • Directory authorities
    • bandwidth-file-spec.txt specifies the file format used by bandwidth-measuring tools to report their observations to directory authorities.
    • srv-spec.txt specifies the protocol that directory authorities use to securely compute shared random values for the network.
  • Controller protocol
    • control-spec.txt explains the protocol used by controllers to communicate with a running Tor process.
  • Miscellaneous
    • dir-list-spec.txt explains the format used by tools like the fallback directory scripts to output a list of Tor directories for inclusion in the Tor source code.
    • The attic directory has obsolete or historical documents.