This is a byte-for-byte compatible implementation of chiapos' ChaCha8 in Rust. It has been manually verified in a custom implementation of chiapos in Rust to produce identical output.
On top of producing identical output, this implementation is also multi-threaded using Rayon producing data extremely fast.
This crate has some strict expectations that match the original use-case:
```rust // Randomize this key however you would like let mut key = [0u8; 32]; let chacha8 = ChaCha8::newfrom256bit_key(&key);
// Output data goes in this vec, note that 64 * 8 = 512bits let numblocks = 128; let mut chachablocks = vec![0u8; 64 * num_blocks];
// pos is the offset in the output keystream let pos = 0; chacha8.getkeystream(pos, &mut chachablocks); ```
This crate generates pseudorandom data extremely fast in 512bit blocks. The output is also deterministic for the same inputs.
This crate makes no guarantees about: