Skip to content

Latest commit

 

History

History
36 lines (27 loc) · 1.49 KB

README.md

File metadata and controls

36 lines (27 loc) · 1.49 KB

alg Build Status GoDoc Go Report Card

Package alg provides access to Linux AF_ALG sockets for communication with the Linux kernel crypto API. MIT Licensed.

This package should be considered experimental, and should almost certainly not be used in place of Go's built-in cryptographic cipher and hash packages.

The benefit of AF_ALG sockets is that they enable access to the Linux kernel's cryptography API, and may be able to use hardware acceleration to perform certain transformations. On systems with dedicated cryptography processing hardware (or systems without assembly implementations of certain transformations), using this package may result in a performance boost.

If this package does end up being useful for you, please do reach out! I'd love to hear what you're doing with it.

Benchmarking

To benchmark AF_ALG transformations vs. the Go standard library equivalents on a given system, run the following commands:

$ go test -c
$ ./alg.test -bench.std -test.bench . | tee std.txt
$ ./alg.test -bench.alg -test.bench . | tee alg.txt
$ benchcmp std.txt alg.txt

The benchcmp utility can be installed using:

$ go get golang.org/x/tools/cmd/benchcmp