shadowsocks / shadowsocks/shadowsocks-org
Interest in a new, smaller crypto backend?
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 1k
- Forks
- 694
- PR merge metrics
- No merged PRs in 30d
Description
Hi there, awesome software thanks! discovered while traveling in .cn eheh. Handy.
Since I see this minimal C implementation I am curious if you are interested in a crypto-backend that is even smaller than libsodium and offers a lot more flexibility to design crypto schemes, I'm talking about https://Zenroom.dyne.org I'm the author and would be interested in making it useful also for shadowsocks if you can offer a bit of hand-holding on what needs to be wired up. But ok if you are happy with what you have is fine. Zenroom has also AEAD AES-GCM implemented and no external dependency (for crypto I use apache-milagro).
My proposal's assumption is also that adopting elliptic curve (EC) based cryptography with an open arithmetical system and pairing capable curves it will become easier to use steganography techniques. Also EC offers a growing choice of curves which may be hard to fingerprint. In Zenroom we have ed25519, goldilocks and secp256k1 interchangable with BLS383 and other pairing capable curves, plus a scripting framework which may facilitate ad-hoc hiding techniques.
At last: zenroom compiles fully static and unikernel as well, so this would lower your deps to a smaller codebase: has a payload of <2MB and runs in 64KB of RAM so this makes it suitable also for unikernel (on-chip) products. If anyone is interested I just need a bit of hand-holding to produce a prototype: point me out the API endpoints for initialisation, stream feeding and teardown in the most minimal C implementation.
Ciao!
(this issue was moved from https://github.com/shadowsocks/shadowsocks-libev/issues/2225)
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 by reviewing the original shadowsocks-libev issue 2225 and the minimal C implementation mentioned in the proposal. Identify the initialization, stream-feeding, and teardown API endpoints needed for a prototype crypto backend, then define done as a working Zenroom integration prototype.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- cryptography, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100