Golang (X)ChaCha20 stream cipher.

Yawning Angel 6d1cb28dc7 Use the internal key stream buffer as the XChaCha temp key 2 months ago
internal 6d1cb28dc7 Use the internal key stream buffer as the XChaCha temp key 2 months ago
LICENSE 644b09ac4e Bring this up to date 2 months ago
README.md 644b09ac4e Bring this up to date 2 months ago
chacha20.go 6d1cb28dc7 Use the internal key stream buffer as the XChaCha temp key 2 months ago
chacha20_test.go 644b09ac4e Bring this up to date 2 months ago
go.mod 644b09ac4e Bring this up to date 2 months ago
go.sum 644b09ac4e Bring this up to date 2 months ago

README.md

chacha20 - ChaCha20

Yawning Angel (yawning at schwanenlied dot me)

Yet another Go ChaCha20 implementation. Everything else I found was slow, didn't support all the variants I need to use, or relied on cgo to go fast.

Features:

  • 20 round, 256 bit key only. Everything else is pointless and stupid.
  • IETF 96 bit nonce variant.
  • XChaCha 24 byte nonce variant.
  • SSSE3 and AVX2 support on amd64 targets.
  • Incremental encrypt/decrypt support, unlike golang.org/x/crypto/salsa20.