Trait secp256kfun::nonce::NonceGen
source · [−]pub trait NonceGen {
type Hash: Digest<OutputSize = U32>;
fn begin_derivation(&self, secret: &Scalar) -> 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.
Required Associated Types
Required Methods
fn begin_derivation(&self, secret: &Scalar) -> Self::Hash
fn begin_derivation(&self, secret: &Scalar) -> Self::Hash
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.