# Ovunto Security Ovunto Security is a Rust library for secure end-to-end communication between clients through a server. It provides functionality for encrypting and decrypting messages, managing keys, and constructing cryptographic chains. ## Features - **Encryption:** Encrypt and decrypt messages using AES-GCM encryption. - **Key Management:** Derive keys from passwords and salts, manage keyrings, and generate random keys. **Chain Construction:** Build cryptographic chains for secure communication between clients. ## Installation Add this crate to your `Cargo.toml` ```toml [dependencies] ovunto-security = "0.1.0" ``` ## Usage ```rust use ovunto_security::{Error, Keyring, Salt}; fn main() -> Result<(), Error> { let (username, password) = form().map_err(|_| Error)?; let salt = Salt::random(); let keyring = Keyring::derive_from(password, &salt)?; let mut sender_chain = keyring.into_chain(); let cipher1 = sender_chain.add(format!("{username} initiated a chain"))?; let cipher2 = sender_chain.add("Some cookies!".to_owned())?; let mut receiver_chain = keyring.into_chain(); let change1 = receiver_chain.decrypt(cipher1.clone())?; let change2 = receiver_chain.decrypt(cipher2.clone())?; println!("{:?}", (cipher1, cipher2)); println!("{:?}", (change1, change2)); Ok(()) } ``` ## Documentation API documentation for this crate can be found on [docs.rs](https://docs.rs/ovunto-security). ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.