Cryptographic primitives for Cypherpunks that don't subscribe to "trust me bro" security assumptions.
Note: The implementations in this repo shouldn't be used in a production environment as they are neither optimized (e.g. to combat constant-time attacks), nor audited.
git clone <url>
asdf install
make test
- Stream Cipher
- ChaCha20 (RFC 8439)
- MAC
- Poly1305 (RFC 8439)
- AEAD
- ChaCha20-Poly1305 (RFC 8439)
- XChaCha20 (RFC draft-irtf-cfrg-xchacha-03)
- XChaCha20-Poly1305 (RFC draft-irtf-cfrg-xchacha-03)
- Hash
- Blake2 (RFC 7693)
- KDF
- Argon2 (RFC 9106)
- Key Exchange
- X25519 (RFC 7748)
- Digital Signatures
- EdDSA (Blake2b + edwards25519) (RFC 8032)
go run <package-path>
go build [<package-path>]
go test [<package-path>][/...] [-v] [-cover] [-race] [-parallel <number>]
go test -bench=. [<package-path>] [-count <number>] [-benchmem] [-benchtime 2s] [-memprofile <name>]
go test -coverprofile <name> [<package-path>]
go tool cover -html <name>
go tool cover -func <name>
go doc [<package-path>]
go fmt [<package-path>]
go vet [<package-path>]
go mod init [<module-path>]
go mod tidy
go mod vendor
go mod download
go work init [<module-path-1> [<module-path-2>] [...]]
go work use [<module-path-1> [<module-path-2>] [...]]
go work sync
# Adjust dependencies in `go.mod`.
go get <package-path>[@<version>]
# Build and install commands.
go install <package-path>[@<version>]
go list -m [all]