Collection of pure Rust elliptic curve implementations: NIST P-224, P-256, P-384, P-521, secp256k1, SM2
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-04-06 20:08:17 +02:00
.cargo .cargo/audit.toml: initial config with RUSTSEC-2021-0127 (#471) 2021-11-30 17:45:41 -07:00
bignp256 chore: sync dependencies (monorepo) 2026-04-06 15:19:21 +02:00
bp256 chore: sync dependencies (monorepo) 2026-04-06 15:19:21 +02:00
bp384 chore: sync dependencies (monorepo) 2026-04-06 15:19:21 +02:00
ed448-goldilocks chore: sync dependencies (monorepo) 2026-04-06 15:19:21 +02:00
hash2curve chore: sync dependencies (monorepo) 2026-04-06 15:19:21 +02:00
k256 chore: sync dependencies (monorepo) 2026-04-06 15:19:21 +02:00
p192 chore: sync dependencies (monorepo) 2026-04-06 15:19:21 +02:00
p224 chore: sync dependencies (monorepo) 2026-04-06 15:19:21 +02:00
p256 chore: sync dependencies (monorepo) 2026-04-06 15:19:21 +02:00
p384 chore: sync dependencies (monorepo) 2026-04-06 15:19:21 +02:00
p521 chore: sync dependencies (monorepo) 2026-04-06 15:19:21 +02:00
primefield chore: sync dependencies (monorepo) 2026-04-06 15:19:21 +02:00
primeorder chore: sync dependencies (monorepo) 2026-04-06 15:19:21 +02:00
sm2 chore: sync dependencies (monorepo) 2026-04-06 15:19:21 +02:00
x448 chore: sync dependencies (monorepo) 2026-04-06 15:19:21 +02:00
.gitignore Revert "p521: remove vaporware crate (#115)" (#606) 2022-06-12 13:01:15 -06:00
Cargo.lock Cargo.lock: bump crypto-bigint to v0.7.2 (#1697) 2026-03-24 11:57:56 -06:00
Cargo.toml chore: sync dependencies (monorepo) 2026-04-06 15:19:21 +02:00
clippy.toml p521: implement hash2curve (#964) 2023-11-11 09:05:33 -07:00
codecov.yml Add weierstrass::FixedBaseScalarMul trait (#49) 2020-06-20 10:44:54 -07:00
README.md fix: bignp256 links in README.md (#1488) 2025-10-20 06:42:56 -06:00

RustCrypto: Elliptic Curves Rust Version Project Chat dependency status

General purpose Elliptic Curve Cryptography (ECC) support, including types and traits for representing various elliptic curve forms, scalars, points, and public/secret keys composed thereof.

All curves reside in the separate crates and implemented using traits from the elliptic-curve crate.

Crates in this repo do not require the standard library (i.e. no_std capable) and can be easily used for bare-metal or WebAssembly programming.

Crates

Name Curve Crates.io Documentation Build Status
bignp256 bign-curve256v1 crates.io Documentation build
bp256 brainpoolP256r1/brainpoolP256t1 crates.io Documentation build
bp384 brainpoolP384r1/brainpoolP384t1 crates.io Documentation build
hash2curve crates.io Documentation build
k256 secp256k1 crates.io Documentation build
p192 NIST P-192 crates.io Documentation build
p224 NIST P-224 crates.io Documentation build
p256 NIST P-256 crates.io Documentation build
p384 NIST P-384 crates.io Documentation build
p521 NIST P-521 crates.io Documentation build
sm2 SM2 crates.io Documentation build

Please see our tracking issue for additional elliptic curves if you are interested in curves beyond the ones listed here.

Minimum Supported Rust Version

All crates in this repository support Rust 1.85 or higher.

Minimum supported Rust version can be changed in the future, but it will be done with a minor version bump.

License

All crates licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.