xs/vendor/git.schwanenlied.me/yawning/chacha20.git
Russ Magee caac02a77b 1/2 Updated Makefile to allow VENDOR flag (adds -vendor to version string)
2/2 Added vendor/ dir to lock down dependent pkg versions.
The author of git.schwanenlied.me/yawning/{chacha20,newhope,kyber}.git has copied
their repos to gitlab.com/yawning/ but some imports of chacha20 from newhope still
inconsistently refer to git.schwanenlied.me/, breaking build.
Licenses for chacha20 also changed from CC0 to AGPL, which may or may not be an
issue. Until the two aforementioned issues are resolved, locking to last-good
versions is probably the best way forward for now.

To build with vendored deps, use make VENDOR=1 clean all
2020-01-29 13:55:38 -08:00
..
LICENSE 1/2 Updated Makefile to allow VENDOR flag (adds -vendor to version string) 2020-01-29 13:55:38 -08:00
README.md 1/2 Updated Makefile to allow VENDOR flag (adds -vendor to version string) 2020-01-29 13:55:38 -08:00
chacha20.go 1/2 Updated Makefile to allow VENDOR flag (adds -vendor to version string) 2020-01-29 13:55:38 -08:00
chacha20_amd64.go 1/2 Updated Makefile to allow VENDOR flag (adds -vendor to version string) 2020-01-29 13:55:38 -08:00
chacha20_amd64.py 1/2 Updated Makefile to allow VENDOR flag (adds -vendor to version string) 2020-01-29 13:55:38 -08:00
chacha20_amd64.s 1/2 Updated Makefile to allow VENDOR flag (adds -vendor to version string) 2020-01-29 13:55:38 -08:00
chacha20_ref.go 1/2 Updated Makefile to allow VENDOR flag (adds -vendor to version string) 2020-01-29 13:55:38 -08:00
chacha20_ref_go19.go 1/2 Updated Makefile to allow VENDOR flag (adds -vendor to version string) 2020-01-29 13:55:38 -08:00

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.
  • SSE2 and AVX2 support on amd64 targets.
  • Incremental encrypt/decrypt support, unlike golang.org/x/crypto/salsa20.