Golang (X)ChaCha20 stream cipher.

Yawning Angel 6d1cb28dc7 Use the internal key stream buffer as the XChaCha temp key 11 months ago
internal 6d1cb28dc7 Use the internal key stream buffer as the XChaCha temp key 11 months ago
LICENSE 644b09ac4e Bring this up to date 11 months ago
README.md 644b09ac4e Bring this up to date 11 months ago
chacha20.go 6d1cb28dc7 Use the internal key stream buffer as the XChaCha temp key 11 months ago
chacha20_test.go 644b09ac4e Bring this up to date 11 months ago
go.mod 644b09ac4e Bring this up to date 11 months ago
go.sum 644b09ac4e Bring this up to date 11 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.