# Summary

[About these specifications](./README.md)

# Introduction

- [A short introduction to Tor](./intro/index.md)
  - [Notation and conventions](./intro/conventions.md)

# The core Tor protocol

- [`Tor Protocol Specification`](./tor-spec/index.md)
  - [Preliminaries](./tor-spec/preliminaries.md)
  - [Relay keys and identities](./tor-spec/relay-keys.md)
  - [Channels](./tor-spec/channels.md)
    - [Negotiating and initializing channels](./tor-spec/negotiating-channels.md)
      - [Obsolete channel negotiation handshakes](./tor-spec/obsolete-channels.md)
    - [Cells (messages on channels)](./tor-spec/cell-packet-format.md)
  - [Circuit management](./tor-spec/circuit-management.md)
    - [CREATE and CREATED cells](./tor-spec/create-created-cells.md)
    - [Setting circuit keys](./tor-spec/setting-circuit-keys.md)
    - [Creating circuits](./tor-spec/creating-circuits.md)
    - [Tearing down circuits](./tor-spec/tearing-down-circuits.md)
    - [Routing relay cells](./tor-spec/routing-relay-cells.md)
    - [Handling relay_early cells](./tor-spec/relay-early.md)
  - [Application connections and stream management](./tor-spec/streams.md)
    - [Relay cells](./tor-spec/relay-cells.md)
    - [Opening streams and transferring data](./tor-spec/opening-streams.md)
    - [Closing streams](./tor-spec/closing-streams.md)
    - [Remote hostname lookup](./tor-spec/remote-hostname-lookup.md)
  - [Flow control](./tor-spec/flow-control.md)
  - [Subprotocol versioning](./tor-spec/subprotocol-versioning.md)
  - [Certificates in Tor](./cert-spec.md)
- [`Tor directory protocol, version 3`](./dir-spec/index.md)
  - [Outline](./dir-spec/outline.md)
  - [Router operation and formats](./dir-spec/router-operation-formats.md)
    - [Uploading server descriptors and extra-info documents](./dir-spec/uploading-relay-documents.md)
      - [Server descriptor format](./dir-spec/server-descriptor-format.md)
      - [Extra-info document format](./dir-spec/extra-info-document-format.md)
      - [Nonterminals in server descriptors](./dir-spec/nonterminals-server-descriptors.md)
  - [Directory authority operation and formats](./dir-spec/directory-authority-operation-formats.md)
    - [Creating key certificates](./dir-spec/creating-key-certificates.md)
    - [Accepting server descriptor and extra-info document uploads](./dir-spec/accepting-relay-documents.md)
    - [Computing microdescriptors](./dir-spec/computing-microdescriptors.md)
    - [Exchanging votes](./dir-spec/exchanging-votes.md)
      - [Vote and consensus status document formats](./dir-spec/consensus-formats.md)
      - [Assigning flags in a vote](./dir-spec/assigning-flags-vote.md)
      - [Serving bandwidth list files](./dir-spec/serving-bandwidth-list-files.md)
    - [Downloading information from other directory authorities](./dir-spec/downloading-from-other-auths.md)
    - [Computing a consensus from a set of votes](./dir-spec/computing-consensus.md)
    - [Exchanging detached signatures](./dir-spec/exchanging-detached-signatures.md)
    - [Publishing the signed consensus](./dir-spec/publishing-consensus.md)
  - [Directory cache operation](./dir-spec/directory-cache-operation.md)
  - [Client operation](./dir-spec/client-operation.md)
  - [Standards compliance](./dir-spec/standards-compliance.md)
  - [Consensus-negotiation timeline.](./dir-spec/consensus-negotiation-timeline.md)
  - [General-use HTTP URLs](./dir-spec/general-use-http-urls.md)
  - [Converting a curve25519 public key to an ed25519 public key](./dir-spec/converting-to-ed25519.md)
  - [Inferring missing proto lines.](./dir-spec/inferring-missing-proto-lines.md)
  - [Limited ed diff format](./dir-spec/limited-ed-diff-format.md)
  - [`Tor Shared Random Subsystem Specification`](./srv-spec/index.md)
    - [Introduction](./srv-spec/introduction.md)
    - [Overview](./srv-spec/overview.md)
    - [Protocol](./srv-spec/protocol.md)
    - [Specification \[SPEC\]](./srv-spec/specification.md)
    - [Security Analysis](./srv-spec/security-analysis.md)
    - [Discussion](./srv-spec/discussion.md)
    - [Acknowledgements](./srv-spec/acknowledgements.md)
- [`Tor Path Specification`](./path-spec/index.md)
  - [General operation](./path-spec/general-operation.md)
  - [Building circuits](./path-spec/building-circuits.md)
    - [When we build](./path-spec/when-we-build.md)
    - [Path selection and constraints](./path-spec/path-selection-constraints.md)
    - [Cannibalizing circuits](./path-spec/cannibalizing-circuits.md)
    - [Learning when to give up ("timeout") on circuit construction](./path-spec/learning-timeouts.md)
    - [Handling failure](./path-spec/handling-failure.md)
  - [Attaching streams to circuits](./path-spec/attaching-streams-to-circuits.md)
  - [Hidden-service related circuits](./path-spec/hidden-service-related-circuits.md)
  - [Guard nodes](./path-spec/guard-nodes.md)
  - [Server descriptor purposes](./path-spec/server-descriptor-purposes.md)
  - [Detecting route manipulation by Guard nodes (Path Bias)](./path-spec/detecting-route-manipulation.md)
- [`Tor Guard Specification`](./guard-spec/index.md)
  - [State instances](./guard-spec/state-instances.md)
  - [Circuit Creation, Entry Guard Selection (1000 foot view)](./guard-spec/guard-selection/index.md)
  - [The algorithm.](./guard-spec/algorithm.md)
  - [Appendices](./guard-spec/appendices.md)
- [`Tor Vanguards Specification`](./vanguards-spec/index.md)
  - [Full Vanguards](./vanguards-spec/full-vanguards.md)
  - [Vanguards-Lite](./vanguards-spec/vanguards-lite.md)
  - [Path Construction](./vanguards-spec/path-construction.md)
  - [Statistical Analysis](./vanguards-spec/vanguards-stats.md)
- [`Tor Padding Specification`](./padding-spec/index.md)
  - [Overview](./padding-spec/overview.md)
  - [Connection-level padding](./padding-spec/connection-level-padding.md)
  - [Circuit-level padding](./padding-spec/circuit-level-padding.md)
  - [Acknowledgments](./padding-spec/acknowledgments.md)
- [`Preventing Denial-Of-Service`](./dos-spec/index.md)
  - [Overview](./dos-spec/overview.md)
  - [Memory exhaustion](./dos-spec/memory-exhaustion.md)

# Additional behaviors for clients

- [`Tor's extensions to the SOCKS protocol`](./socks-extensions.md)
- [`Special Hostnames in Tor`](./address-spec.md)

# Onion services

- [`Tor Rendezvous Specification - Version 3`](./rend-spec/index.md)
  - [Hidden services: overview and preliminaries.](./rend-spec/overview.md)
  - [Protocol overview](./rend-spec/protocol-overview.md)
  - [Generating and publishing hidden service descriptors \[HSDIR\]](./rend-spec/hsdesc.md)
    - [Deriving blinded keys and subcredentials \[SUBCRED\]](./rend-spec/deriving-keys.md)
    - [Publishing shared random values \[PUB-SHAREDRANDOM\]](./rend-spec/shared-random.md)
    - [Hidden service descriptors: outer wrapper \[DESC-OUTER\]](./rend-spec/hsdesc-outer.md)
    - [Hidden service descriptors: encryption format \[HS-DESC-ENC\]](./rend-spec/hsdesc-encrypt.md)
  - [The introduction protocol \[INTRO-PROTOCOL\]](./rend-spec/introduction-protocol.md)
  - [The rendezvous protocol](./rend-spec/rendezvous-protocol.md)
  - [Encrypting data between client and host](./rend-spec/encrypting-user-data.md)
  - [Encoding onion addresses \[ONIONADDRESS\]](./rend-spec/encoding-onion-addresses.md)
  - [Managing streams](./rend-spec/managing-streams.md)
  - [References](./rend-spec/references.md)
  - [Appendix A: Signature scheme with key blinding \[KEYBLIND\]](./rend-spec/keyblinding-scheme.md)
  - [Appendix B: Selecting nodes \[PICKNODES\]](./rend-spec/selecting-nodes-picknodes.md)
  - [Appendix C: Recommendations for searching for vanity .onions \[VANITY\]](./rend-spec/vanity-onions.md)
  - [Appendix D: (removed)]()
  - [Appendix E: Reserved numbers](./rend-spec/reserved-numbers.md)
  - [Appendix F: Hidden service directory format \[HIDSERVDIR-FORMAT\]](./rend-spec/fs-contents.md)
  - [Appendix G: Managing authorized client data \[CLIENT-AUTH-MGMT\]](./rend-spec/client-authorization.md)
  - [Appendix F: Two methods for managing revision counters.](./rend-spec/revision-counter-mgt.md)
  - [Appendix G: Test vectors](./rend-spec/test-vectors.md)
- [`Proof of Work for onion service introduction`](./hspow-spec/index.md)
  - [Motivation](./hspow-spec/motivation.md)
  - [Common protocol](./hspow-spec/common-protocol.md)
  - [Version 1, Equi-X and Blake2b](./hspow-spec/v1-equix.md)
  - [Analysis and discussion](./hspow-spec/analysis-discussion.md)

# Anticensorship tools and protocols

- [`BridgeDB specification`](./bridgedb-spec.md)
- [`Extended ORPort for pluggable transports`](./ext-orport-spec.md)
- [`Pluggable Transport Specification (Version 1)`](./pt-spec/index.md)
  - [Introduction](./pt-spec/introduction.md)
  - [Architecture Overview](./pt-spec/architecture-overview.md)
  - [Specification](./pt-spec/specification.md)
    - [Pluggable Transport Naming](./pt-spec/naming.md)
    - [Pluggable Transport Configuration Environment Variables](./pt-spec/configuration-environment.md)
    - [Pluggable Transport To Parent Process Communication](./pt-spec/ipc.md)
    - [Pluggable Transport Shutdown](./pt-spec/shutdown.md)
    - [Pluggable Transport Client Per-Connection Arguments](./pt-spec/per-connection-args.md)
  - [Anonymity Considerations](./pt-spec/anonymity-considerations.md)
  - [References](./pt-spec/references.md)
  - [Acknowledgments](./pt-spec/acknowledgments.md)
  - [Appendix A: Example Client Pluggable Transport Session](./pt-spec/example-client-session.md)
  - [Appendix B: Example Server Pluggable Transport Session](./pt-spec/example-server-session.md)

# For C Tor only

- [`The Tor Control Protocol`](./control-spec/index.md)
  - [Protocol outline](./control-spec/protocol-outline.md)
  - [Message format](./control-spec/message-format.md)
  - [Commands](./control-spec/commands.md)
  - [Replies](./control-spec/replies.md)
  - [Implementation notes](./control-spec/implementation-notes.md)
- [`How Tor Version Numbers Work`](./version-spec.md)

# Less commonly needed file formats

- [`Tor Bandwidth File Format`](./bandwidth-file-spec/index.md)
  - [Scope and preliminaries](./bandwidth-file-spec/scope-preliminaries.md)
  - [Format details](./bandwidth-file-spec/format-details.md)
    - [Definitions](./bandwidth-file-spec/definitions.md)
    - [Header List format](./bandwidth-file-spec/header-list-format.md)
    - [Relay Line format](./bandwidth-file-spec/relay-line-format.md)
    - [Implementation details](./bandwidth-file-spec/implementation-details.md)
  - [Sample data](./bandwidth-file-spec/sample-data.md)
  - [Scaling bandwidths](./bandwidth-file-spec/scaling-bandwidths.md)

# Implementation details

- [`Tor Directory List Format`](./dir-list-spec.md)

# Reserved names and numbers

- [`Tor network parameters`](./param-spec.md)
- [`SSH protocol extensions`](./ssh-protocols.md)

# Unfinished

- [`Glossary`](./glossary.md)

# Maintenance and and editing of the Tor Specifications

- [`About the Tor Specifications documents`](./back-matter.md)
- [`Style guide`](./STYLE.md)
- [`Permalinks`](./permalinks.md)
