shadowsocks / shadowsocks/shadowsocks-org
Define encoding of "password" to UTF-8
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 1k
- Forks
- 694
- PR merge metrics
- No merged PRs in 30d
Description
Problem
The "password" could be passed in various ways, basic configration file, SIP008 online configuration, command line options, and other customized ways. Currently, the encoding of "password" is defined by implementations, for example
shadowsocks-libev: UTF-8 in basic configuration file, but undefined in command line optionsshadowsocks-rust: UTF-8go-shadowsocks2: Undefined,os.Argsin Go is astring[], which is an array of byte arrays of input arguments
So it is possible that if user uses libev with command line options and specifies "password" in UTF-16BE, and it shouldn't work with the rust version, because the "password"s are not the same in byte level.
Proposal
- The
"password"is a "string" in UTF-8 encoding - Implementations are allowed to accept
"password"in other encoding, but they have to convert it to UTF-8 before set to ciphers
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the proposal in this issue and review the described password-handling behavior in shadowsocks-libev, shadowsocks-rust, and go-shadowsocks2. Check the existing five-comment discussion before changing the specification; done means the accepted encoding rule and conversion requirement are clearly documented for implementations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, rust
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100