oasisprotocol / oasisprotocol/oasis-sdk

Use a consistent definition of Ed25519

Open
#137 7 comments 0 reactions 0 assignees View on GitHub

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/x25519 for X25519 (#140).
    • Use github.com/oasisprotocol/oasis-core/go/common/crypto/signature for 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/ed25519 instead of what we provide, are causing issues for themselves, so this should be documented.
  • Rust:
  • 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

  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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.