Skip to main content

eyvara/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3#![warn(clippy::all)]
4#![warn(clippy::pedantic)]
5#![allow(clippy::bool_to_int_with_if)]
6#![allow(clippy::assign_op_pattern)]
7#![allow(clippy::cast_lossless)]
8#![allow(clippy::cast_possible_truncation)]
9#![allow(clippy::cast_possible_wrap)]
10#![allow(clippy::cast_sign_loss)]
11#![allow(clippy::doc_markdown)]
12#![allow(clippy::explicit_iter_loop)]
13#![allow(clippy::if_not_else)]
14#![allow(clippy::inline_always)]
15#![allow(clippy::many_single_char_names)]
16#![allow(clippy::must_use_candidate)]
17#![allow(clippy::needless_range_loop)]
18#![allow(clippy::redundant_closure)]
19#![allow(clippy::unreadable_literal)]
20#![allow(dead_code)]
21#![allow(clippy::module_name_repetitions)]
22#![allow(clippy::similar_names)]
23
24//!
25//! ```rust
26//! use eyvara::{eyvara_eval, eyvara_keygen, eyvara_verify, EyvaraError, EYVARA_128};
27//! use rand::rngs::OsRng;
28//!
29//! fn main() -> Result<(), EyvaraError> {
30//!     let mut rng = OsRng;
31//!     let (pk, sk) = eyvara_keygen(&EYVARA_128, &mut rng);
32//!     let msg = b"example input";
33//!     let (out, proof) = eyvara_eval(&EYVARA_128, &sk, msg)?;
34//!     assert!(eyvara_verify(&EYVARA_128, &pk, msg, &out, &proof)?);
35//!     Ok(())
36//! }
37//! ```
38//!
39
40pub(crate) mod challenge;
41pub mod error;
42pub mod eval;
43pub mod keygen;
44pub(crate) mod ntt;
45pub mod params;
46pub(crate) mod poly;
47pub mod verify;
48
49pub use error::EyvaraError;
50pub use eval::{eyvara_eval, EyvaraOutput, EyvaraProof, VrfOutput, VrfProof};
51pub use keygen::{eyvara_keygen, PublicKey, SecretKey};
52pub use params::{Params, EYVARA_128, EYVARA_192};
53pub use verify::eyvara_verify;
54
55#[cfg(test)]
56mod tests;