#encryption #aead #ocb

无std ocb3

Rust对RFC7253中描述的偏移代码本模式v3(OCB3)认证加密(AEAD)密码的纯Rust实现

2个不稳定版本

0.1.0 2024年3月27日
0.0.0 2021年5月5日

#2521 in 密码学

Download history 129/week @ 2024-04-23 166/week @ 2024-04-30 596/week @ 2024-05-07 428/week @ 2024-05-14 222/week @ 2024-05-21 572/week @ 2024-05-28 1068/week @ 2024-06-04 1235/week @ 2024-06-11 1278/week @ 2024-06-18 667/week @ 2024-06-25 1337/week @ 2024-07-02 1183/week @ 2024-07-09 1389/week @ 2024-07-16 1602/week @ 2024-07-23 2662/week @ 2024-07-30 2155/week @ 2024-08-06

8,026 monthly downloads
12 个crate中使用 (2 directly)

Apache-2.0 OR MIT

29KB
452

RustCrypto: OCB3

crate Docs Apache2/MIT licensed Rust Version Project Chat Build Status

Rust对RFC7253中描述的偏移代码本模式v3(OCB3)认证加密与关联数据(AEAD)密码的纯Rust实现。

文档

示例

use aes::Aes128;
use ocb3::{
    aead::{Aead, AeadCore, KeyInit, OsRng, generic_array::GenericArray},
    consts::U12,
    Ocb3,
};

type Aes128Ocb3 = Ocb3<Aes128, U12>;

let key = Aes128::generate_key(&mut OsRng);
let cipher = Aes128Ocb3::new(&key);
let nonce = Aes128Ocb3::generate_nonce(&mut OsRng);
let ciphertext = cipher.encrypt(&nonce, b"plaintext message".as_ref()).unwrap();
let plaintext = cipher.decrypt(&nonce, ciphertext.as_ref()).unwrap();

assert_eq!(&plaintext, b"plaintext message");

安全注意事项

此crate从未进行过安全审计,并且未彻底评估以确保它在常见CPU架构上操作为恒时。

自行承担风险!

许可

根据您的选择,许可方式为

贡献

除非您明确表示,否则根据Apache-2.0许可证定义的,您提交给工作的任何有意贡献将按上述方式双许可,不附加任何额外条款或条件。

依赖关系

~410–720KB
~15K SLoC