Skip to main content

nox_crypto/
lib.rs

1//! Sphinx mix format and cryptographic protocols for the NOX mixnet.
2//! Based on Danezis & Goldberg, "Sphinx: A Compact and Provably Secure Mix Format" (IEEE S&P 2009).
3
4pub mod sphinx;
5
6pub use sphinx::{
7    build_multi_hop_packet, derive_keys, PathHop, ProcessResult, SphinxError, SphinxHeader,
8};
9
10pub use sphinx::{HEADER_SIZE, MAC_SIZE, NONCE_SIZE, ROUTING_INFO_SIZE, SHIFT_SIZE};
11
12pub use sphinx::packet::{PacketError, SphinxPacket};
13pub use sphinx::packet::{
14    HEADER_SIZE as PACKET_HEADER_SIZE, MAX_PAYLOAD_SIZE, NONCE_SIZE as PACKET_NONCE_SIZE,
15    PACKET_SIZE, PAYLOAD_OVERHEAD, POLY1305_TAG_SIZE,
16};
17
18pub use sphinx::surb::{Surb, SurbError, SurbRecovery, DEFAULT_POW_DIFFICULTY};
19
20pub use sphinx::pow::{
21    count_leading_zeros, default_solver, fast_solver, meets_difficulty, Blake3Pow, PowAlgorithm,
22    PowError, PowSolver, Sha256Pow, DEFAULT_THREADS, MAX_DIFFICULTY, MIN_DIFFICULTY,
23};