mirror of
https://github.com/saymrwulf/curve25519-dalek-source.git
synced 2026-09-03 20:13:48 +00:00
Patched source for Aeneas/Charon formal verification transpilation
Pure refactor, semantics identical (cargo check green): - from_bytes_wide_parts(bytes) -> (Scalar52, Scalar52): the byte-unpack loops + the 52-bit lo/hi split, as a named prefix - split_words_lo / split_words_hi: the two split halves, built with Scalar52([...]) struct literals instead of per-index mutation - from_bytes_wide: parts -> montgomery_mul(lo, R) -> montgomery_mul(hi, RR) -> add Why: the verification side measured that (a) a WP walk whose motives contain a montgomery_mul call replays its whole body at every kernel step, and (b) straight-line chains of IndexMut closure back-functions make kernel defeq exponential in chain depth. Named prefix functions fix (a); struct-literal construction eliminates the closures and fixes (b). With this shape the full from_bytes_wide certificate kernel-checks in 77 seconds (was: aborted after 30+ minutes). |
||
|---|---|---|
| curve25519-dalek | ||
| curve25519-dalek-derive | ||
| docs/assets | ||
| ed25519-dalek | ||
| x25519-dalek | ||
| .gitignore | ||
| .typos.toml | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CONTRIBUTING.md | ||
| README.md | ||
Dalek elliptic curve cryptography
This repo contains pure-Rust crates for elliptic curve cryptography:
| Crate | Description | Crates.io | Docs | CI |
|---|---|---|---|---|
curve25519‑dalek |
A library for arithmetic over the Curve25519 and Ristretto elliptic curves and their associated scalars. | |||
ed25519‑dalek |
An implementation of the EdDSA digital signature scheme over Curve25519. | |||
x25519‑dalek |
An implementation of elliptic curve Diffie-Hellman key exchange over Curve25519. |
There is also the curve25519-dalek-derive crate, which is just a helper crate with some macros that make curve25519-dalek easier to write.
Contributing
Please see CONTRIBUTING.md.
Code of Conduct
We follow the Rust Code of Conduct, with the following additional clauses:
- We respect the rights to privacy and anonymity for contributors and people in the community. If someone wishes to contribute under a pseudonym different to their primary identity, that wish is to be respected by all contributors.