diff options
-rw-r--r-- | internal/speed/speed.go | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/internal/speed/speed.go b/internal/speed/speed.go index 43fea5d..2f1e0f6 100644 --- a/internal/speed/speed.go +++ b/internal/speed/speed.go @@ -16,6 +16,12 @@ import ( "github.com/rfjakob/gocryptfs/internal/stupidgcm" ) +// 128-bit file ID + 64 bit block number = 192 bits = 24 bytes +const adLen = 24 + +// gocryptfs uses fixed-size 4 kiB blocks +const blockSize = 4096 + // Run - run the speed the test and print the results. func Run() { bTable := []struct { @@ -60,14 +66,13 @@ func randBytes(n int) []byte { return b } -const blockSize = 4096 - +// bStupidGCM benchmarks stupidgcm's openssl GCM func bStupidGCM(b *testing.B) { if stupidgcm.BuiltWithoutOpenssl { b.Skip("openssl has been disabled at compile-time") } key := randBytes(32) - authData := randBytes(24) + authData := randBytes(adLen) iv := randBytes(16) in := make([]byte, blockSize) b.SetBytes(int64(len(in))) @@ -81,9 +86,10 @@ func bStupidGCM(b *testing.B) { } } +// bGoGCM benchmarks Go stdlib GCM func bGoGCM(b *testing.B) { key := randBytes(32) - authData := randBytes(24) + authData := randBytes(adLen) iv := randBytes(16) in := make([]byte, blockSize) b.SetBytes(int64(len(in))) @@ -104,9 +110,10 @@ func bGoGCM(b *testing.B) { } } +// bAESSIV benchmarks AES-SIV from github.com/jacobsa/crypto/siv func bAESSIV(b *testing.B) { key := randBytes(64) - authData := randBytes(24) + authData := randBytes(adLen) iv := randBytes(16) in := make([]byte, blockSize) b.SetBytes(int64(len(in))) |