nazgul 2.1.0

A library that implements various ring signature schemes
Documentation
use digest::generic_array::typenum::U64;
use digest::Digest;
use rand_core::{CryptoRng, RngCore};

pub trait Sign<PrivateKey, Ring> {
    fn sign<
        Hash: Digest<OutputSize = U64> + Clone + Default,
        CSPRNG: CryptoRng + RngCore + Default,
    >(
        k: PrivateKey,
        ring: Ring,
        secret_index: usize,
        message: &[u8],
    ) -> Self;
}

pub trait Verify {
    fn verify<Hash: Digest<OutputSize = U64> + Clone + Default>(
        signature: Self,
        message: &[u8],
    ) -> bool;
}

pub trait Link {
    fn link(signature_1: Self, signature_2: Self) -> bool;
}

pub trait KeyImageGen<PrivateKey, KeyImages> {
    fn generate_key_image<Hash: Digest<OutputSize = U64> + Clone + Default>(
        k: PrivateKey,
    ) -> KeyImages;
}