Crates.io | vrf-rfc9381 |
lib.rs | vrf-rfc9381 |
version | 0.0.3 |
created_at | 2025-07-04 17:01:10.691186+00 |
updated_at | 2025-07-05 10:06:22.957659+00 |
description | Rust implementation of VRFs (Verifiable Random Functions) as described in RFC9381 |
homepage | |
repository | https://github.com/OtaK/vrf-rfc9381 |
max_upload_size | |
id | 1738218 |
size | 84,975 |
Rust implementation of VRFs (Verifiable Random Functions) as described in RFC9381.
Compatible with WASM (wasm32-unknown-unknown
target). Uses RustCrypto primitives.
Only ECVRF support is baked in as of now, and passes the spec test vectors for it.
If there's enough interest, I can bake in RSA-FDH-VRF support.
As usual, it has not been audited, might be insecure, proceed with caution.
Note: This library uses the curve-25519-dalek fork at https://github.com/iquerejeta/curve25519-dalek for its support of Hash2Curve w/ Elligator encoding (See RFC9380 Section 3-4.2.1), which is needed for VRFs. If you're unhappy with this situation, hold on a bit until this gets merged.
edwards25519
: Enables support for ECVRF-EDWARDS25519-SHA512-TAI
and ECVRF-EDWARDS25519-SHA512-ELL2
p256
: Enables support for ECVRF-P256-SHA256-TAI
and ECVRF-P256-SHA256-SSWU
Here: https://docs.rs/vrf-rfc9381
It's still a work in progress when it comes to documentation, so you're basically on your own (or look at the tests) until then.
Licensed under either of these: