rose-squared-sdk 0.1.0

Privacy-preserving encrypted search SDK implementing the SWiSSSE protocol with forward/backward security and volume-hiding, compilable to WebAssembly
Documentation
// rose-squared-sdk  —  Privacy-Preserving Search SDK
//
// Implements:
//   • RO(SE)²  (IEEE Trans. Computers, Jan 2025) — O(1) search, Forward +
//               Backward Security Type-II, crash-robust trapdoor generation.
//   • SWiSSSE  (PoPETS 2024) — system-wide volume leakage suppression via
//               padded read/write batches of constant size N_max.
//
// Crate layout:
//   crypto/       — primitives, KDF (Argon2id+HKDF), AEAD (AES-256-GCM)
//   client/       — KeywordState, TrapdoorEngine, UpdateEngine
//   server/       — EncryptedStore trait + in-memory MockStore
//   protocol/     — SearchProtocol, SWiSSSE volume padding
//   vault.rs      — PrivacyVault: the public API
//
// WASM notes:
//   Build with:  wasm-pack build --target web --features wasm
//   The `wasm` feature gates wasm-bindgen glue in src/wasm/bindings.rs.

#![forbid(unsafe_code)]
#![warn(missing_docs, clippy::unwrap_used)]

//! # Rose Squared SDK
//!
//! A privacy-preserving search SDK implementing RO(SE)² and SWiSSSE.

/// Cryptographic primitives and AEAD wrappers.
pub mod crypto;
/// Client-side state management and update engines.
pub mod client;
/// Server-side EDB abstractions and mock stores.
pub mod server;
/// Protocol implementations for search and volume padding.
pub mod protocol;
/// Error types for the SDK.
pub mod error;
/// High-level PrivacyVault API.
pub mod vault;

// Conditionally compile the wasm module.
#[cfg(feature = "wasm")]
pub mod wasm;

// Re-export the primary entry point.
pub use vault::PrivacyVault;
pub use error::VaultError;
pub use protocol::swissse::VolumeConfig;
pub use server::edb::{EncryptedStore, MockStore, RawEdbEntry};