rose_squared_sdk/lib.rs
1// rose-squared-sdk — Privacy-Preserving Search SDK
2//
3// Implements:
4// • RO(SE)² (IEEE Trans. Computers, Jan 2025) — O(1) search, Forward +
5// Backward Security Type-II, crash-robust trapdoor generation.
6// • SWiSSSE (PoPETS 2024) — system-wide volume leakage suppression via
7// padded read/write batches of constant size N_max.
8//
9// Crate layout:
10// crypto/ — primitives, KDF (Argon2id+HKDF), AEAD (AES-256-GCM)
11// client/ — KeywordState, TrapdoorEngine, UpdateEngine
12// server/ — EncryptedStore trait + in-memory MockStore
13// protocol/ — SearchProtocol, SWiSSSE volume padding
14// vault.rs — PrivacyVault: the public API
15//
16// WASM notes:
17// Build with: wasm-pack build --target web --features wasm
18// The `wasm` feature gates wasm-bindgen glue in src/wasm/bindings.rs.
19
20#![forbid(unsafe_code)]
21#![warn(missing_docs, clippy::unwrap_used)]
22
23//! # Rose Squared SDK
24//!
25//! A privacy-preserving search SDK implementing RO(SE)² and SWiSSSE.
26
27/// Cryptographic primitives and AEAD wrappers.
28pub mod crypto;
29/// Client-side state management and update engines.
30pub mod client;
31/// Server-side EDB abstractions and mock stores.
32pub mod server;
33/// Protocol implementations for search and volume padding.
34pub mod protocol;
35/// Error types for the SDK.
36pub mod error;
37/// High-level PrivacyVault API.
38pub mod vault;
39
40// Conditionally compile the wasm module.
41#[cfg(feature = "wasm")]
42pub mod wasm;
43
44// Re-export the primary entry point.
45pub use vault::PrivacyVault;
46pub use error::VaultError;
47pub use protocol::swissse::VolumeConfig;
48pub use server::edb::{EncryptedStore, MockStore, RawEdbEntry};