1 个不稳定版本
0.1.2 | 2022年10月14日 |
---|---|
0.1.1 |
|
0.1.0 |
|
#1018 in 异步
38KB
528 行
async_io_crypto
处理带加密/解密功能的异步读取的 Rust 库。它结合了 aeadcrate 与 tokio IO 特性
lib.rs
:
提供围绕 AsyncRead
的包装
#[tokio::main]
let key = b"my very super super secret key!!";
let plaintext = b"hello world!";
let mut csprng = rand_chacha::ChaCha20Rng::from_entropy();
let cipher: ChaCha20Poly1305 = ChaCha20Poly1305::new(Key::from_slice(key));
let (mut ci_reader, nonce) = CipherRead::new(&plaintext[..], cipher.clone(), &mut csprng);
let mut ciphered = Vec::new();
ci_reader.read_to_end(&mut ciphered).await.unwrap();
let mut deci_reader = DecipherRead::new(&ciphered[..], cipher, nonce.as_slice());
let mut deciphered = Vec::new();
deci_reader.read_to_end(&mut deciphered).await.unwrap();
assert_eq!(deciphered, plaintext);
依赖项
~3.5–5MB
~81K SLoC