[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-bugs] #7822 [Pluggable transport]: Create an ezpt pluggable transports wrapper
#7822: Create an ezpt pluggable transports wrapper
---------------------------------+------------------------------------------
Reporter: dcf | Owner: asn
Type: project | Status: new
Priority: normal | Milestone:
Component: Pluggable transport | Version:
Keywords: | Parent:
Points: | Actualpoints:
---------------------------------+------------------------------------------
There should be a program that is a managed-transport wrapper: it
understands pt environment variables, has a SOCKS listener, and forks a
command of your choice to transform input to output and vice versa. For
example,
{{{
ezpt -m rot13 'tr "[a-zA-Z]" "[n-za-mN-ZA-M]"'
ezpt -m xor255 "perl -e '$|=1;while(read(STDIN,$_,1)){print
chr(ord^0xff);}'"
ezpt -m double "perl -e '$|=1;while(read(STDIN,$_,1)){print "$_$_";}'"
"perl -e '$|=1;while(read(STDIN,$_,2)){print chop;}'"
}}}
If one command is given, the same command is used for encoding and
decoding. If two commands are given, one is used for encoding and one is
used for decoding. `-m` gives the method name.
Use in `torrc`:
{{{
ClientTransportPlugin rot13 exec ezpt -m rot13 'tr "[a-zA-Z]" "[n-za-mN-
Za-M]"'
ServerTransportPlugin rot13 exec ezpt -m rot13 'tr "[a-zA-Z]" "[n-za-mN-
Za-M]"'
}}}
Invoked subprograms may need to always flush their buffers to prevent
deadlock; that's their problem. (That's what the `$|=1` does in Perl.)
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/7822>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs