# The ChaCha family of stream ciphers ## Features - pure Rust implementation - supports the RustCrypto API - builds on stable Rust - portable - fast: within 15% of throughput of a hand-optimized ASM SIMD implementation (floodberry/chacha-opt) on my machine (a Xeon X5650, using ppv-lite86) - no-std compatible (std required only for runtime algorithm selection) ## Supported Variants ChaCha20: used in chacha20-poly1305 in TLS, OpenSSH; arc4random in the BSDs, Linux /dev/urandom since 4.8. Ietf: IETF RFC 7539. Longer nonce, short block counter. XChaCha20: constructed analogously to XSalsa20; a mixing step during initialization allows using a long nonce and along with a full-sized block counter. ChaCha12, ChaCha8: faster; lower security margin of safety.