Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/the10thwiz/eliptic-curves
My implementation of eliptic curves in Rust, primarily for me to learn eliptic curves.
https://github.com/the10thwiz/eliptic-curves
Last synced: about 2 months ago
JSON representation
My implementation of eliptic curves in Rust, primarily for me to learn eliptic curves.
- Host: GitHub
- URL: https://github.com/the10thwiz/eliptic-curves
- Owner: the10thWiz
- License: mit
- Created: 2022-03-05T17:19:29.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-01-30T17:06:55.000Z (12 months ago)
- Last Synced: 2024-10-15T10:03:34.150Z (3 months ago)
- Language: Rust
- Size: 15.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# eliptic-curves
My implementation of eliptic curves in Rust, primarily for me to learn eliptic curves.
See the tests in lib.rs for an example on how this should be used. One goal of this
repository is to be entirely safe, and easy to use. The library should be written
in, and used with idiomatic Rust, which has lead to a few iteresting design decisions.Specifically, I've chosen to create a `ModN` struct, which holds a BigUint, mod a
specific modulus. The modulus is a generic parameter, which provides a convient way
to enforce that operations can only be preformed between numbers using the same modulus.
The other advantage to having a `ModN` struct is that they are automatically reduced
as often as possible. The process for declaring a modulus is non-trivial, so I have
written a macro to make it easier. Similarly, points on the eliptic curves use a
generic parameter to specify which curve they are on, and there is a macro to create
the eliptic curve implementation.## Features
- [x] Weierstrass form of eliptic curve
- [ ] Montgomery form
- [ ] Points with only the X parameter