Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • P pluggable transports
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Issues 5
    • Issues 5
    • List
    • Boards
    • Service Desk
    • Milestones
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
  • Wiki
    • Wiki
  • Activity
  • Create a new issue
  • Jobs
  • Issue Boards
Collapse sidebar
  • The Tor Project
  • Anti-censorship
  • Pluggable Transports
  • pluggable transports
  • Issues
  • #22088
Closed (moved) (moved)
Open
Created Apr 27, 2017 by Taylor Yu@catalyst

pluggable transport specs need to be more consistent about quoting

There's some inconsistency among the specs (and code doesn't necessarily match the specs either) about how pluggable transports quote or escape special characters in transport arguments. See legacy/trac#12930 (moved) for additional background.

Proposal:

  • Explicitly disallow whitespace (or control characters for that matter) in keys or values of PT arguments. (No PT does this now that I know of, and people with Unix-ish backgrounds are likely to avoid using whitespace in this context anyway.)
  • Explicitly disallow = and \ in keys of PT arguments. (I'm assuming PT designers have more flexibility in choosing keys than value encodings, but if this poses a problem for someone please speak up.)
  • Allow but discourage = in values of PT arguments. (If you encode something in base64 or base32, try to truncate the trailing padding.)
  • Allow but discourage \ in values of PT arguments.
  • Require \ to be escaped by \ (in addition to escaping ,, which is already required) in SMETHOD ARGS and transport lines of extra-info documents. (Almost everywhere else I've seen that uses \ for escaping also requires that \ itself be escaped, and it's closer to what people already expect. goptlib already implemented this despite it not being specified in pt-spec.txt)
  • Do not require = to be escaped by \ in SMETHOD ARGS and transport lines of extra-info documents.
  • Do not require any PT argument characters to be escaped in BridgeDB output or Bridge lines in torrc. (Any \ characters stand for themselves. This requires the fewest changes to existing tor code.)
Assignee
Assign to
Time tracking