The password contains the @ symbol, USES the shadowsocks-windows generated server configuration, and imports it on the android phone, indicating that the configuration access key is invalid.
The android client is downloaded from shadowsocks.org.
https://github.com/Jigsaw-Code/outline-releases/blob/master/client/Outline.apk?raw=true
Can confirm this bug. The example on shadowsocks.org suggests that @ is valid inside a password, even unescaped in the URI:
ss://bf-cfb:test/!@#:@192.168.100.1:8888
Therefore I think we should extract everything before the _last_ @, to separate the method+password from the host+port.
In shadowsocks_config.ts we could change:
- const atSignIndex = b64DecodedData.indexOf('@');
+ const atSignIndex = b64DecodedData.lastIndexOf('@');
Presumably that would fix it.
@whg517, thanks for reporting this issue.
@joeytwiddle, the fix looks reasonable to me - would you be amenable to making the change in outline-shadowsocksconfig?
Fixed by that merge. Can be closed!
@joeytwiddle Apologies, we never updated the dependency lists to pull in this fix.
I just created this release:
https://github.com/Jigsaw-Code/outline-shadowsocksconfig/releases/tag/v0.0.9
And two PRs to pull it in:
The fix will go out in the next release. Many thanks again for the fix!
Most helpful comment
Can confirm this bug. The example on shadowsocks.org suggests that
@is valid inside a password, even unescaped in the URI:Therefore I think we should extract everything before the _last_
@, to separate the method+password from the host+port.In
shadowsocks_config.tswe could change:Presumably that would fix it.