[mirror] Go supplementary cryptography libraries
Перейти к файлу
Meng Zhuo 74369b46fc internal/chacha20: add SIMD implementation on arm64
Inspired by Vectorization of ChaCha Stream Cipher
https://eprint.iacr.org/2013/759.pdf

name            old time/op    new time/op    delta
ChaCha20/32        690ns ± 0%     872ns ± 0%   +26.38%  (p=0.000 n=10+10)
ChaCha20/63        750ns ± 0%     987ns ± 0%   +31.53%  (p=0.000 n=10+10)
ChaCha20/64        674ns ± 0%     879ns ± 0%   +30.42%  (p=0.000 n=8+10)
ChaCha20/256      2.28µs ± 0%    0.82µs ± 0%   -64.13%  (p=0.000 n=10+10)
ChaCha20/1024     8.64µs ± 0%    2.92µs ± 0%   -66.15%  (p=0.000 n=9+9)
ChaCha20/1350     11.9µs ± 0%     4.5µs ± 0%   -62.51%  (p=0.000 n=10+8)
ChaCha20/65536     554µs ± 0%     181µs ± 0%   -67.33%  (p=0.000 n=10+10)

name            old speed      new speed      delta
ChaCha20/32     46.3MB/s ± 0%  36.7MB/s ± 0%   -20.87%  (p=0.000 n=10+9)
ChaCha20/63     83.9MB/s ± 0%  63.8MB/s ± 0%   -23.97%  (p=0.000 n=10+10)
ChaCha20/64     94.9MB/s ± 0%  72.8MB/s ± 0%   -23.31%  (p=0.000 n=10+10)
ChaCha20/256     112MB/s ± 0%   312MB/s ± 0%  +178.74%  (p=0.000 n=10+10)
ChaCha20/1024    119MB/s ± 0%   350MB/s ± 0%  +195.31%  (p=0.000 n=10+9)
ChaCha20/1350    114MB/s ± 0%   303MB/s ± 0%  +166.73%  (p=0.000 n=8+8)
ChaCha20/65536   118MB/s ± 0%   362MB/s ± 0%  +206.12%  (p=0.000 n=10+10)

Updates golang/go#22809
Change-Id: I487487faa2ae4ff29de6fd8eb1317740c2939c10
Reviewed-on: https://go-review.googlesource.com/c/107628
Reviewed-by: Filippo Valsorda <filippo@golang.org>
2019-02-11 18:28:17 +00:00
acme acme: support IP address authorization type 2019-01-30 09:05:50 +00:00
argon2 crypto/{blake2b,blake2s,argon2,chacha20poly1305}: replace CPU feature detection 2018-04-30 18:12:35 +00:00
bcrypt bcrypt: benchmark defaults 2018-10-30 02:28:21 +00:00
blake2b blake2b: fix comments in grammar 2019-01-22 01:37:13 +00:00
blake2s all: fix typos 2018-10-29 02:12:03 +00:00
blowfish all: use HTTPS for links that support it 2017-06-29 04:21:55 +00:00
bn256 bn256: fix gfp12 MulScalar 2019-01-02 17:18:10 +00:00
cast5 crypto: add import comments. 2014-12-09 23:26:36 +00:00
chacha20poly1305 chacha20poly1305: use x/sys/cpu feature variables directly 2018-08-20 15:07:26 +00:00
cryptobyte cryptobyte: fix typo in test 2018-11-26 14:41:56 +00:00
curve25519 curve25519: mask high bit when loading group point 2019-02-08 16:22:36 +00:00
ed25519 ed25519: actually be compatible with RFC 8032 2018-05-31 19:11:17 +00:00
hkdf hkdf: add Extract and Expand 2018-10-25 21:37:31 +00:00
internal internal/chacha20: add SIMD implementation on arm64 2019-02-11 18:28:17 +00:00
md4 md4: move the example to the right directory 2017-07-20 17:59:35 +00:00
nacl all: fix ineffectual assignments 2019-01-31 18:25:04 +00:00
ocsp all: fix ineffectual assignments 2019-01-31 18:25:04 +00:00
openpgp all: fix ineffectual assignments 2019-01-31 18:25:04 +00:00
otr all: fix ineffectual assignments 2019-01-31 18:25:04 +00:00
pbkdf2 pbkdf2: add benchmarks 2017-12-19 04:11:29 +00:00
pkcs12 pkcs12: add a note suggesting ToPEM for multiple certificates/keys 2019-01-31 18:23:23 +00:00
poly1305 poly1305: add additional test cases 2018-05-14 23:09:06 +00:00
ripemd160 all: fix typos 2018-10-29 02:12:03 +00:00
salsa20 internal/subtle: add Any/InexactOverlap (new package) and apply them across packages 2018-06-13 22:47:33 +00:00
scrypt all: fix typos 2018-10-29 02:12:03 +00:00
sha3 sha3: add support for Keccak-512 2019-01-03 21:31:33 +00:00
ssh all: fix ineffectual assignments 2019-01-31 18:25:04 +00:00
tea all: fix errors reported by vet, golint 2017-11-28 17:48:09 +00:00
twofish all: use HTTPS for links that support it 2017-06-29 04:21:55 +00:00
xtea xtea: comment cleanup 2018-03-22 17:52:30 +00:00
xts internal/subtle: add Any/InexactOverlap (new package) and apply them across packages 2018-06-13 22:47:33 +00:00
.gitattributes crypto: copying .gitattributes to all subrepositories 2014-12-23 06:54:52 +00:00
.gitignore convert .hgignore to .gitignore. 2014-12-08 10:41:13 +11:00
AUTHORS all: use HTTPS for links that support it 2017-06-29 04:21:55 +00:00
CONTRIBUTING.md CONTRIBUTING.md: remove note about not accepting Pull Requests 2018-03-14 18:02:59 +00:00
CONTRIBUTORS all: use HTTPS for links that support it 2017-06-29 04:21:55 +00:00
LICENSE LICENSE: add 2012-03-17 15:19:30 +11:00
PATENTS go.crypto: add PATENTS file to the subrepo. 2012-04-16 11:25:08 +10:00
README.md README: add improvements 2017-07-19 14:12:01 +00:00
codereview.cfg crypto: add codereview.cfg 2015-03-18 17:04:25 +00:00

README.md

Go Cryptography

This repository holds supplementary Go cryptography libraries.

Download/Install

The easiest way to install is to run go get -u golang.org/x/crypto/.... You can also manually git clone the repository to $GOPATH/src/golang.org/x/crypto.

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html.

The main issue tracker for the crypto repository is located at https://github.com/golang/go/issues. Prefix your issue with "x/crypto:" in the subject line, so it is easy to find.

Note that contributions to the cryptography package receive additional scrutiny due to their sensitive nature. Patches may take longer than normal to receive feedback.