#![no_std] #![forbid(unsafe_code)] use ml_kem::{MlKem512, MlKem768}; pub use wharrgarbl_neko::{Neko128, Neko192, Neko256}; pub mod handshake; pub mod transport; extern crate alloc; /// Version of WHARRGARBL that this crate implements. pub static WHARRGHARBL_PROTO: &str = "WGBLv0.2"; #[derive(Debug, Clone, Copy, PartialEq, Eq)] #[repr(u8)] enum Role { Sender = 0, Receiver = 1, } impl core::ops::BitXor for Role { fn bitxor(self, rhs: Self) -> Self::Output { (self as u8) ^ (rhs as u8) } type Output = u8; } pub mod utils { pub use wharrgarbl_utils::{Buffer, BufferSlice}; } pub type NekoClientHandshake128 = handshake::ClientHandshake; pub type NekoServerHandshake128 = handshake::ServerHandshake; pub type NekoClientHandshake192 = handshake::ClientHandshake; pub type NekoServerHandshake192 = handshake::ServerHandshake; pub type NekoClientHandshake256 = handshake::ClientHandshake; pub type NekoServerHandshake256 = handshake::ServerHandshake;