Trait schnorr_fun::nonce::NonceGen[][src]

pub trait NonceGen {
    type Hash: Digest;
    fn begin_derivation(&self, secret: &Scalar<Secret, NonZero>) -> Self::Hash;
}
Expand description

A trait for hash based nonce gneration.

A NonceGen is a type that can repeatadly be asked to inititalize a hash state with begin_derivation that appear random for anyone who doesn’t know the secret.

There are two main implementations of this trait:

  • Deterministic: just adds the secret to the hash and returns it.
  • Synthetic: adds randomness into the secret before hashing it.

In general it’s better to use the [derive_nonce] macro than to call begin_derivation directly.

Associated Types

The type of hash that begin_derivation will return.

Required methods

Takes a secret Scalar and outputs a hash. Before turining this hash into the nonce, you must add a secret input and all the public inputs from the scheme into the hash. So for a signature scheme for example you would add your secret key, the message and the public key.

Implementors