From 0e277ba19e3a18093c33d3927739031b76892de3 Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Sun, 25 Sep 2016 20:04:33 +0200 Subject: [PATCH] stupidgcm: add GCM-SIV benchmark On a CPU without AES-NI: $ go test -bench . Benchmark4kEncStupidGCM-2 50000 24155 ns/op 169.57 MB/s Benchmark4kEncGoGCM-2 20000 93965 ns/op 43.59 MB/s Benchmark4kEncGCMSIV-2 500 2576193 ns/op 1.59 MB/s --- internal/stupidgcm/stupidgcm_test.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/internal/stupidgcm/stupidgcm_test.go b/internal/stupidgcm/stupidgcm_test.go index b0e25ab..1dbfccb 100644 --- a/internal/stupidgcm/stupidgcm_test.go +++ b/internal/stupidgcm/stupidgcm_test.go @@ -14,6 +14,8 @@ import ( "crypto/rand" "encoding/hex" "testing" + + "github.com/rfjakob/gcmsiv" ) // Get "n" random bytes from /dev/urandom or panic @@ -159,3 +161,19 @@ func Benchmark4kEncGoGCM(b *testing.B) { gGCM.Seal(iv, iv, in, authData) } } + +func Benchmark4kEncGCMSIV(b *testing.B) { + key := randBytes(32) + authData := randBytes(24) + iv := randBytes(16) + in := make([]byte, 4096) + b.SetBytes(int64(len(in))) + gGCM, err := gcmsiv.NewGCMSIV(key) + if err != nil { + b.Fatal(err) + } + for i := 0; i < b.N; i++ { + // Encrypt and append to nonce + gGCM.Seal(iv, iv, in, authData) + } +}