Macro secp256kfun::derive_nonce_rng[][src]

macro_rules! derive_nonce_rng {
    (nonce_gen => $nonce_gen : expr, secret => $secret : expr, public =>
 [$($public : expr), +], seedable_rng => $rng : ty) => { ... };
}
Expand description

Macro to derive a rng for producing multiple nonces.

This works like derive_nonce except that it produces an rng with the output rather than a scalar.

Examples

use secp256kfun::{Scalar, derive_nonce_rng, nonce::AddTag, nonce::{NonceGen,Deterministic}};
use sha2::Sha256;
let secret_scalar = Scalar::random(&mut rand::thread_rng());
let nonce_gen = Deterministic::<Sha256>::default().add_tag("my-protocol");
let mut rng = derive_nonce_rng!(
    nonce_gen => nonce_gen,
    secret => &secret_scalar,
    public => [b"public-inputs-to-the-algorithm".as_ref()],
    seedable_rng => rand::rngs::StdRng
);
let r1 = Scalar::random(&mut rng);
let r2 = Scalar::random(&mut rng);