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
This commit is contained in:
Jakob Unterwurzacher 2016-09-25 20:04:33 +02:00
parent 32e35adcad
commit 0e277ba19e

View File

@ -14,6 +14,8 @@ import (
"crypto/rand" "crypto/rand"
"encoding/hex" "encoding/hex"
"testing" "testing"
"github.com/rfjakob/gcmsiv"
) )
// Get "n" random bytes from /dev/urandom or panic // Get "n" random bytes from /dev/urandom or panic
@ -159,3 +161,19 @@ func Benchmark4kEncGoGCM(b *testing.B) {
gGCM.Seal(iv, iv, in, authData) 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)
}
}