#29285: Improve the PT spec and how PTs interface with Tor -------------------------------------------------+------------------------- Reporter: cohosh | Owner: phw Type: project | Status: | assigned Priority: High | Milestone: Component: Circumvention/Pluggable transport | Version: Severity: Normal | Resolution: Keywords: network-team-roadmap-2019-Q1Q2, | Actual Points: anti-censorship-roadmap | Parent ID: | Points: 15 Reviewer: | Sponsor: | Sponsor28-must -------------------------------------------------+-------------------------
Comment (by dcf): Replying to [comment:5 phw]: > And here's an incomplete list of existing library implementations: Really there are two types of PT implementations, or three if you count PT 2.0 additions. There aren't really standard names for these. 1. IPC manager/dispatcher. As far as I know, tor and [https://github.com/twisteroidambassador/ptadapter] are the only two implementations of this. This is the thing that sets e.g. `TOR_PT_MANAGED_TRANSPORT_VER` and manages subprocesses of type (2). 2. IPC transport/plugin. This is goptlib and pyptlib. It's a subprocess managed by an implementation of type (1). This is the thing that writes e.g. `CMETHOD` to stdout. 3. From PT 2.0, there are also plugin/transport implementations that you are meant to link with directly in the same executable, without going through the IPC interface. There are [https://github.com/Pluggable- Transports/Pluggable-Transports- spec/blob/master/releases/PTSpecV2.1Draft1/Pluggable%20Transport%20Specification%20v2.1%20-%20Go%20Transport%20API%20v2.1%2C%20Draft%201.pdf Go] and [https://github.com/Pluggable-Transports/Pluggable-Transports- spec/blob/master/releases/PTSpecV2.1Draft1/Pluggable%20Transport%20Specification%20v2.1%20-%20Swift%20Transport%20API%20v1.0%2C%20Draft%201.pdf Swift] API spec. From talking to Brandon Wiley, my understanding is that everything that uses PT other than tor and ptadapter uses such an API, or something like it, not the IPC model. [https://github.com/OperatorFoundation/shapeshifter-dispatcher shapeshifter-dispatcher] converts implementations of type (3) into type (2). The [https://github.com/Pluggable-Transports/Pluggable-Transports- spec/blob/master/releases/PTSpecV2.1Draft1/Pluggable%20Transport%20Specification%20v2.1%20-%20Base%20Specification%20v2.1%2C%20Draft%201.pdf Pluggable Transports Base Spec v2.1] calls types (1) and (2) "IPC" and type (3) "API". -- Ticket URL: <https://trac.torproject.org/projects/tor/ticket/29285#comment:7> Tor Bug Tracker & Wiki <https://trac.torproject.org/> The Tor Project: anonymity online
_______________________________________________ tor-bugs mailing list tor-bugs@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs