]> Cypherpunks repositories - gostls13.git/commit
crypto/subtle: simplify and speed up constant-time primitives
authorBryan A Ford <brynosaurus@gmail.com>
Sat, 10 Jun 2017 07:34:40 +0000 (09:34 +0200)
committerBrad Fitzpatrick <bradfitz@golang.org>
Fri, 10 Nov 2017 03:47:57 +0000 (03:47 +0000)
commitd58bf64d5acbcad1ae5b605228ce51038d4df631
tree4e5a2fba8cec6466027d2920e90511464be97381
parenta10884838aabb854e3a6595791c663bb16ca32ca
crypto/subtle: simplify and speed up constant-time primitives

This changes improves the ConstantTimeByteEq and ConstantTimeEq
primitives to both simplify them and improve their performance.

Also, since there were no benchmarks for this package before,
this change adds benchmarks for ConstantTimeByteEq,
ConstantTimeEq, and ConstantTimeLessOrEq.

benchmarks on darwin/amd64, 10 runs on old vs new code:

name                    old time/op  new time/op  delta
ConstantTimeByteEq-4    2.28ns ±16%  1.53ns ± 2%  -33.09%  (p=0.000 n=10+9)
ConstantTimeEq-4        2.77ns ±10%  1.51ns ± 2%  -45.59%  (p=0.000 n=10+9)
ConstantTimeLessOrEq-4  1.52ns ± 8%  1.50ns ± 2%     ~     (p=0.866 n=9+9)

Change-Id: I29b8cbcf158e1f30411720db82d38b4ecd166b15
Reviewed-on: https://go-review.googlesource.com/45310
Reviewed-by: Adam Langley <agl@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Adam Langley <agl@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/crypto/subtle/constant_time.go
src/crypto/subtle/constant_time_test.go