Crates.io | rust_chacha20 |
lib.rs | rust_chacha20 |
version | 0.3.0 |
source | src |
created_at | 2024-03-04 21:19:13.004769 |
updated_at | 2024-03-12 21:11:09.147322 |
description | ChaCha20 stream cipher. |
homepage | |
repository | https://github.com/rustaceanrob/chacha20 |
max_upload_size | |
id | 1162274 |
size | 20,305 |
A Rust implementation of the ChaCha20 stream cipher. Complete with simple, auditable code.
use chacha20::ChaCha20;
let key = hex::decode("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f").unwrap();
let key: [u8; 32] = key.try_into().unwrap();
let nonce = hex::decode("000000000000004a00000000").unwrap();
let nonce: [u8; 12] = nonce.try_into().unwrap();
let seek = 42; // start the cipher at the 42nd index
let mut chacha = ChaCha20::new(key, nonce, seek);
let mut binding = *b"Ladies and Gentlemen of the class of '99: If I could offer you only one tip for the future, sunscreen would be it.";
let to = binding.as_mut_slice();
chacha.apply_keystream(to);
chacha.seek(seek); // move the keystream index back to 42