1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//! # Nazgul
//! A library that implements [Ring Signatures](https://en.wikipedia.org/wiki/Ring_signature). The following schemes have been implemented based on [Chapter 3 of Zero to Monero 2.0 (Z2M2)](https://www.getmonero.org/library/Zero-to-Monero-2-0-0.pdf):
//!
//!  - Spontaneous Anonymous Group (SAG) signatures
//!  - Back’s Linkable Spontaneous Anonymous Group (bLSAG) signatures
//!  - Multilayer Linkable Spontaneous Anonymous Group (MLSAG) signatures
//!  - Concise Linkable Spontaneous Anonymous Group (CLSAG) signatures
//!
//! The following scheme has also been implemented from outside [Z2M2](https://www.getmonero.org/library/Zero-to-Monero-2-0-0.pdf):
//!
//!  - [DLSAG: Non-Interactive Refund Transactions For Interoperable Payment Channels in Monero](https://eprint.iacr.org/2019/595.pdf)
//!  - Multilayer DLSAG
//!
//! > All blockquotes (except this one) in this documentation are from [Z2M2](https://www.getmonero.org/library/Zero-to-Monero-2-0-0.pdf)
//!
//! This library is designed to work with any 512-bit (64 byte output) hashing function. It uses the
//! [Ristretto elliptic curve](https://doc.dalek.rs/curve25519_dalek/ristretto/) for ease of use and better security.
//!
//! This library is `#![no_std]` by default so it is possible to compile this library for embedded devices and WebAssembly but we haven't tried.

#![no_std]
#[macro_use]
extern crate alloc;
extern crate curve25519_dalek;
extern crate digest;
extern crate rand_core;

pub mod blsag;
pub mod clsag;
pub mod dlsag;
pub mod mdlsag;
pub mod mlsag;
pub mod sag;
pub mod traits;