Skip to main content

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};