Someone, somewhere needs to unescape pluggable transport "SMETHOD ARGS" arguments.
Per pt-spec.txt:
- ARGS:K=V,K=V,K=V
If this option is set, the K=V arguments are added to Tor's
extrainfo document. Equal signs and commas must be escaped
with a backslash.
All of obfs4's server (extra info) document arguments end with a number of equal signs because they are Base64 strings.
goptlib does the right thing here and escapes the args, so the trailing Base64 padding passed to tor as part of SMETHOD ARGS ends with \\=
. The fun here is that, tor does not unescape the ARGS line, so \\=
is what ends up in the extrainfo document on BridgeDB.
The arguments that appear on obfs4 bridge lines should not be escaped, so someone, somewhere between little-t tor, and the place where the arguments appear on whatever BridgeDB frontend the end user sees, needs to unescape the arguments.