#nacl #libsodium #public-key #chacha20 #poly1305


Pure Rust implementation of libsodium’s crypto_secretstream secret-key using ChaCha20 and Poly1305

1 unstable release

0.0.1 Aug 30, 2021

#8 in #poly1305

48 downloads per month

Apache-2.0 OR MIT

405 lines

RustCrypto: crypto_secretstream

crate Docs Apache2/MIT licensed Rust Version CodeCov Status Project Chat Build Status

Pure Rust implementation of libsodium's crypto_secretstream primitive, providing an AEAD using ChaCha20 and Poly1305.

It is tested against sodiumoxide, a Rust libsodium bindings.



Licensed under either of:

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


  • auto-rekeying on counter overflow is not tested
  • Tag::Final doesn't actually do anything, as libsodium does but not sodiumoxide
  • Key and Nonce aren't zeroize, maybe it should
  • MAC check in PullStream is not constant time


~18K SLoC