use rgp::{
Components, Decrypt, Encrypt, decrypt, encrypt, extract_components_mut, generate_fingerprint,
};
pub fn main() -> anyhow::Result<()> {
let (fingerprint, verifier) = generate_fingerprint();
let session_key = [0u8; 32];
let content = vec![0u8; 5_000_000];
let (mut encrypted_content, content_key) = encrypt(
fingerprint,
content.clone(),
Encrypt::Session(session_key, true),
)?;
if let Components::Session(encrypted_key) = extract_components_mut(0, &mut encrypted_content)? {
let (decrypted_content, decrypted_key) = decrypt(
Some(&verifier),
&encrypted_content,
Decrypt::Session(session_key, encrypted_key),
)?;
assert_eq!(decrypted_content, content);
assert_eq!(decrypted_key, content_key);
};
Ok(())
}