#tink #daead

tink-daead

为 Google 的 Tink 加密库 Rust 版本提供的确定性 AEAD 功能

8 个版本

0.2.5 2023 年 3 月 14 日
0.2.4 2022 年 3 月 25 日
0.2.3 2022 年 1 月 3 日
0.2.1 2021 年 10 月 8 日
0.1.0 2021 年 1 月 21 日

1597密码学

Download history 37/week @ 2024-04-20 34/week @ 2024-04-27 50/week @ 2024-05-04 108/week @ 2024-05-11 67/week @ 2024-05-18 52/week @ 2024-05-25 25/week @ 2024-06-01 68/week @ 2024-06-08 72/week @ 2024-06-15 52/week @ 2024-06-22 96/week @ 2024-06-29 38/week @ 2024-07-06 31/week @ 2024-07-13 47/week @ 2024-07-20 29/week @ 2024-07-27 23/week @ 2024-08-03

137 每月下载次数
用于 2 crates

Apache-2.0

240KB
4K SLoC

Tink-Rust: 带附加数据的确定性认证加密

Docs MSRV

此crate提供如上游Tink 文档中描述的带附加数据的确定性认证加密(DAEAD)功能。

使用方法

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(())
}

许可

Apache 许可证,版本 2.0

免责声明

这不是一个官方支持的 Google 产品。

依赖项

~3–5.5MB
~97K SLoC