#async-io #io #aead #async #ciphering

async_io_crypto

处理带加密/解密功能的异步读取的 Rust 库

1 个不稳定版本

0.1.2 2022年10月14日
0.1.1 2022年10月14日
0.1.0 2022年10月14日

#1018 in 异步

MIT 许可证

38KB
528

async_io_crypto

处理带加密/解密功能的异步读取的 Rust 库。它结合了 aeadcrate 与 tokio IO 特性

Build status Rust


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