shadowsocks / shadowsocks/shadowsocks-org

Interest in a new, smaller crypto backend?

Open
#135 0 comments 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.