8 releases
0.2.5 | Mar 14, 2023 |
---|---|
0.2.4 | Mar 25, 2022 |
0.2.3 | Jan 3, 2022 |
0.2.1 | Oct 8, 2021 |
0.1.0 | Jan 21, 2021 |
#1955 in Cryptography
312 downloads per month
Used in 2 crates
240KB
4K
SLoC
Tink-Rust: Deterministic Authenticated Encryption with Additional Data
This crate provides deterministic authenticated encryption with additional data (DAEAD) functionality, as described in the upstream Tink documentation.
Usage
fn main() -> Result<(), Box<dyn Error>> {
tink_daead::init();
let kh = tink_core::keyset::Handle::new(&tink_daead::aes_siv_key_template())?;
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
Disclaimer
This is not an officially supported Google product.
Dependencies
~3.5–5.5MB
~100K SLoC