Skip to content
This repository has been archived by the owner on Mar 15, 2018. It is now read-only.
/ chacha20 Public archive

An AVX/AVX2/x64/pure-Go implementation of the ChaCha20 stream cipher for Golang. [Deprecated].

License

Notifications You must be signed in to change notification settings

tmthrgd/chacha20

Repository files navigation

chacha20

GoDoc Build Status

Deprecated: This is a legacy implementation. New users should use aead/chacha20 instead.

An AVX/AVX2/x64/pure-Go implementation of the ChaCha20 stream cipher for Golang.

The AVX and AVX2 ChaCha20 implementations were taken from cloudflare/sslconfig.

The x64 ChaCha20 implementations was taken from the public domain sources in SUPERCOP.

The pure Go ChaCha20 implementation was taken from codahale/chacha20.

Benchmark

BenchmarkChaCha20Codahale/1M-8	     200	   5951390 ns/op	 176.19 MB/s	[codahale/chacha20]
BenchmarkChaCha20AEAD/1M-8    	    2000	    771361 ns/op	1359.38 MB/s	[aead/chacha20]
BenchmarkChaCha20Go/1M-8      	     300	   5638541 ns/op	 185.97 MB/s	[tmthrgd/chacha20/internal/ref]
BenchmarkChaCha20x64/1M-8     	    2000	    927749 ns/op	1130.24 MB/s	[tmthrgd/chacha20]
BenchmarkChaCha20AVX/1M-8     	    2000	    730687 ns/op	1435.05 MB/s	[tmthrgd/chacha20]
BenchmarkAESCTR/1M-8          	     500	   2600296 ns/op	 403.25 MB/s	[crypto/aes crypto/cipher]
BenchmarkAESGCM/1M-8          	    2000	    864448 ns/op	1213.00 MB/s	[crypto/aes crypto/cipher]
BenchmarkRC4/1M-8             	    1000	   1332092 ns/op	 787.16 MB/s	[crypto/rc4]

License

Unless otherwise noted, the chacha20 source files are distributed under the Modified BSD License found in the LICENSE file.

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)

About

An AVX/AVX2/x64/pure-Go implementation of the ChaCha20 stream cipher for Golang. [Deprecated].

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published