pub struct Ecvrf;Expand description
Classical ECVRF-edwards25519-SHA512-TAI (RFC 9381 ciphersuite 0x03),
the default CONIKS VRF.
This is a thin adapter over metamorphic_crypto’s audited vrf primitive
(which is itself built on the in-tree curve25519-dalek backend and locked
to RFC 9381’s official test vectors). No cryptography lives here — only the
opaque-byte ↔ primitive plumbing.
RFC 9381’s sibling suite ECVRF-edwards25519-SHA512-ELL2 (0x04,
constant-time Elligator2 hash-to-curve) is a designed-in future addition: it
lands when the released curve backend exposes a conformant hash-to-curve
(curve25519-dalek 5.x). Because Vrf::suite_id is bound into CONIKS domain
separation, adding it is purely additive and never invalidates a 0x03
proof. The two suites are interchangeable behind this trait; index privacy as
observed by a verifier is identical.
Trait Implementations§
impl Copy for Ecvrf
Source§impl Vrf for Ecvrf
impl Vrf for Ecvrf
Source§fn suite_id(&self) -> u8
fn suite_id(&self) -> u8
0x03 for ECVRF-edwards25519-SHA512-TAI); a
future composite/hybrid construction uses its own reserved identifier.
It is mixed into CONIKS domain separation so proofs are bound to the
exact VRF construction and cannot be reinterpreted under another.Source§fn generate_keypair(&self) -> (VrfSecretKey, VrfPublicKey)
fn generate_keypair(&self) -> (VrfSecretKey, VrfPublicKey)
(secret, public).Source§fn derive_public_key(&self, secret_key: &VrfSecretKey) -> Result<VrfPublicKey>
fn derive_public_key(&self, secret_key: &VrfSecretKey) -> Result<VrfPublicKey>
Source§fn verify(
&self,
public_key: &VrfPublicKey,
alpha: &[u8],
proof: &VrfProof,
) -> Result<Option<VrfOutput>>
fn verify( &self, public_key: &VrfPublicKey, alpha: &[u8], proof: &VrfProof, ) -> Result<Option<VrfOutput>>
Source§fn proof_to_output(&self, proof: &VrfProof) -> Result<VrfOutput>
fn proof_to_output(&self, proof: &VrfProof) -> Result<VrfOutput>
Vrf::verify (which returns the
output directly) or whose provenance is independently trusted. Read more