Tink-Rust: Deterministic Authenticated Encryption with Additional Data

Docs MSRV

This crate provides deterministic authenticated encryption with additional data (DAEAD) functionality, as described in the upstream Tink documentation.

Usage

```Rust fn main() -> Result<(), Box> { tinkdaead::init(); let kh = tinkcore::keyset::Handle::new(&tinkdaead::aessivkeytemplate())?; let d = tink_daead::new(&kh)?;

let pt = b"this data needs to be encrypted";
let ad = b"additional data";
let ct1 = d.encrypt_deterministically(pt, ad)?;
println!("'{}' => {}", String::from_utf8_lossy(pt), hex::encode(&ct1));

let ct2 = d.encrypt_deterministically(pt, ad)?;
assert_eq!(ct1, ct2, "cipher texts are not equal");
println!("Cipher texts are equal.");

let pt2 = d.decrypt_deterministically(&ct1, ad)?;
assert_eq!(&pt[..], pt2);
Ok(())

} ```

License

Apache License, Version 2.0

Disclaimer

This is not an officially supported Google product.