Trait wedpr_l_utils::traits::Vrf[][src]

pub trait Vrf {
    fn encode_proof(&self) -> Vec<u8>;
fn decode_proof<T: ?Sized + AsRef<[u8]>>(
        proof: &T
    ) -> Result<Self, WedprError>
    where
        Self: Sized
;
fn prove<T: ?Sized + AsRef<[u8]>>(
        private_key: &T,
        message: &T
    ) -> Result<Self, WedprError>
    where
        Self: Sized
;
fn prove_fast<T: ?Sized + AsRef<[u8]>>(
        private_key: &T,
        public_key: &T,
        message: &T
    ) -> Result<Self, WedprError>
    where
        Self: Sized
;
fn verify<T: ?Sized + AsRef<[u8]>>(
        &self,
        public_key: &T,
        message: &T
    ) -> bool;
fn derive_public_key<T: ?Sized + AsRef<[u8]>>(private_key: &T) -> Vec<u8>;
fn proof_to_hash(&self) -> Result<Vec<u8>, WedprError>;
fn is_valid_public_key<T: ?Sized + AsRef<[u8]>>(public_key: &T) -> bool; }

Trait of a replaceable verifiable random function (VRF) algorithm, which is the public-key version of a keyed cryptographic hash.

Required methods

fn encode_proof(&self) -> Vec<u8>[src]

Encodes a VRF proof to bytes.

fn decode_proof<T: ?Sized + AsRef<[u8]>>(proof: &T) -> Result<Self, WedprError> where
    Self: Sized
[src]

Decode a VRF proof from bytes.

fn prove<T: ?Sized + AsRef<[u8]>>(
    private_key: &T,
    message: &T
) -> Result<Self, WedprError> where
    Self: Sized
[src]

Proves a keyed VRF hash with a message and a private key.

fn prove_fast<T: ?Sized + AsRef<[u8]>>(
    private_key: &T,
    public_key: &T,
    message: &T
) -> Result<Self, WedprError> where
    Self: Sized
[src]

Proves a keyed VRF hash with a message faster with both the private and public keys.

fn verify<T: ?Sized + AsRef<[u8]>>(&self, public_key: &T, message: &T) -> bool[src]

Verifies a keyed VRF hash with a message and its public key.

fn derive_public_key<T: ?Sized + AsRef<[u8]>>(private_key: &T) -> Vec<u8>[src]

Derives a VRF public key from a private key.

fn proof_to_hash(&self) -> Result<Vec<u8>, WedprError>[src]

Hashes a VRF proof to bytes.

fn is_valid_public_key<T: ?Sized + AsRef<[u8]>>(public_key: &T) -> bool[src]

Checks the validity of a VRF public key.

Loading content...

Implementors

Loading content...