prefer_openssl: add amd64 constraint

Optimized assembly versions for Go GCM are only available
on amd64.
This commit is contained in:
Jakob Unterwurzacher 2016-05-12 09:50:36 +02:00
parent 49b597f07c
commit 4ad9d4e444
3 changed files with 9 additions and 7 deletions

View File

@ -97,7 +97,7 @@ used internally for daemonization.
**-openssl bool** **-openssl bool**
: Use OpenSSL instead of built-in Go crypto (default "auto"). Using : Use OpenSSL instead of built-in Go crypto (default "auto"). Using
built-in crypto is 4x slower unless you CPU has AES instructions and built-in crypto is 4x slower unless your CPU has AES instructions and
you are using Go 1.6+. In mode "auto", gocrypts chooses the faster you are using Go 1.6+. In mode "auto", gocrypts chooses the faster
option. option.

View File

@ -1,9 +1,10 @@
// +build !go1.6 // +build !go1.6 !amd64
// = go 1.5 or lower // not go1.6+ OR not amd64
package prefer_openssl package prefer_openssl
func PreferOpenSSL() bool { func PreferOpenSSL() bool {
// OpenSSL is always faster than Go GCM on old Go versions. // OpenSSL is always faster than Go GCM on old Go versions or on anything
// other than amd64
return true return true
} }

View File

@ -1,10 +1,11 @@
// +build go1.6 // +build go1.6,amd64
// = go 1.6 or higher // go1.6+ AND amd64
package prefer_openssl package prefer_openssl
// PreferOpenSSL tells us if OpenSSL is faster than Go GCM on this machine. // PreferOpenSSL tells us if OpenSSL is faster than Go GCM on this machine.
// Go GCM is fastern when the CPU has AES instructions and Go is v1.6 or higher. // Go GCM is faster when the CPU has AES instructions and Go is v1.6 or higher
// on amd64.
// //
// See https://github.com/rfjakob/gocryptfs/issues/23#issuecomment-218286502 // See https://github.com/rfjakob/gocryptfs/issues/23#issuecomment-218286502
// for benchmarks. // for benchmarks.