oasisprotocol / oasisprotocol/oasis-sdk
Use a consistent definition of Ed25519
Open
Nobody has claimed this yet.
c:client-sdk/go
c:client-sdk/typescript
c:runtime-sdk
- Dominant language
- Rust
- Stars
- 90
- Forks
- 35
- Avg merge
- 5d 9h
- Merged PRs (30d)
- 5
Description
aka "Just use Ristretto"
- Go:
- Use
github.com/oasisprotocol/curve25519-voi/primitives/x25519for X25519 (#140). - Use
github.com/oasisprotocol/oasis-core/go/common/crypto/signaturefor Ed25519. - Fix the replace directives under
client-sdk/go/go.mod, though nothing in this code-base should import the stdlib's X2551/Ed25519 code (#140). - Third parties that chose to use
crypto/ed25519instead of what we provide, are causing issues for themselves, so this should be documented.
- Use
- Rust:
- Don't import ed25519-dalek, use
common::crypto::signaturefromgithub.com/oasisprotocol/oasis-core/runtime(Requires https://github.com/oasisprotocol/oasis-core/pull/3946) (#140).
- Don't import ed25519-dalek, use
- Typescript/JS:
- Someone that can stomach writing TypeScript/JS needs to implement Ed25519 signature verification with our semantics.
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 checklist entries for client-sdk/go/go.mod, common::crypto::signature, and the Oasis runtime signature module, then review the existing Go and Rust changes referenced in the issue. The remaining work is to document why third parties should avoid crypto/ed25519 and to implement Ed25519 verification in TypeScript/JavaScript with the project's semantics; done means both unchecked items are addressed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, javascript, rust, typescript
- Domain
- cryptography
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100