RustCrypto / RustCrypto/elliptic-curves

`hash2curve`: configurable mapping function

Open
#1,422 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
874
Forks
299
Avg merge
1d 4h
Merged PRs (30d)
12

Description

If we want to eventually extend hash2curve to curve25519-dalek, it seems we might want to consider making the mapping function configurable. While I'm not aware of any alternative mapping functions for our curves in this repo, Edwards25519 has the alternative Lizard mapping and is in the works of being added to curve25519-dalek: https://github.com/dalek-cryptography/curve25519-dalek/pull/826.

With https://github.com/RustCrypto/elliptic-curves/pull/1389 the change should be quite straightforward: adding another generic to the standalone functions for MapToCurve. MapToCurve itself needs to be split up into a new trait just containing the parameters like SecurityLevel and just the mapping itself.

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 reading the hash2curve standalone functions and the MapToCurve trait, including its SecurityLevel parameters, then review the referenced elliptic-curves pull request 1389 and curve25519-dalek pull request 826. Done means the mapping function is configurable and MapToCurve is split so its parameters and mapping behavior are represented separately.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cryptography
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.