diff options
| author | Jakob Unterwurzacher | 2015-09-06 11:54:50 +0200 | 
|---|---|---|
| committer | Jakob Unterwurzacher | 2015-09-06 11:54:50 +0200 | 
| commit | 0a35d0970e86efbc5ed494395de7b448d3e337d0 (patch) | |
| tree | 2c1fbfa766ad1546d45ad3b1b93a11fd6d0665a9 /benchmark/openssl_test.go | |
| parent | 5f4c9240ca1092b47553fe34b9cc1b7836222b6a (diff) | |
Add openssl_benchmark.bash script
Diffstat (limited to 'benchmark/openssl_test.go')
| -rw-r--r-- | benchmark/openssl_test.go | 140 | 
1 files changed, 0 insertions, 140 deletions
| diff --git a/benchmark/openssl_test.go b/benchmark/openssl_test.go deleted file mode 100644 index f0b7bc5..0000000 --- a/benchmark/openssl_test.go +++ /dev/null @@ -1,140 +0,0 @@ -package benchmark - -// Benchmark go built-int GCM against spacemonkey openssl bindings -// -// Run benchmark: -// go test -bench=. - -import ( -	"bytes" -	"testing" -	"github.com/spacemonkeygo/openssl" -	"crypto/aes" -	"crypto/cipher" -) - -func BenchmarkAESGCMSeal4K(b *testing.B) { -	buf := make([]byte, 1024*4) -	b.SetBytes(int64(len(buf))) - -	var key [16]byte -	var nonce [12]byte -	aes, _ := aes.NewCipher(key[:]) -	aesgcm, _ := cipher.NewGCM(aes) -	var out []byte - -	b.ResetTimer() -	for i := 0; i < b.N; i++ { -		out = aesgcm.Seal(out[:0], nonce[:], buf, nil) -	} -} - -func BenchmarkAESGCMOpen4K(b *testing.B) { -	buf := make([]byte, 1024*4) -	b.SetBytes(int64(len(buf))) - -	var key [16]byte -	var nonce [12]byte -	aes, _ := aes.NewCipher(key[:]) -	aesgcm, _ := cipher.NewGCM(aes) -	var out []byte -	out = aesgcm.Seal(out[:0], nonce[:], buf, nil) - -	b.ResetTimer() -	for i := 0; i < b.N; i++ { -		_, err := aesgcm.Open(buf[:0], nonce[:], out, nil) -		if err != nil { -			b.Errorf("Open: %v", err) -		} -	} -} - -func BenchmarkOpensslGCMenc4K(b *testing.B) { -	buf := make([]byte, 1024*4) -	b.SetBytes(int64(len(buf))) - -	var key [16]byte -	var nonce [12]byte - -	var ciphertext bytes.Buffer -	var part []byte - -	b.ResetTimer() -	for i := 0; i < b.N; i++ { -		ciphertext.Reset() -		ectx, err := openssl.NewGCMEncryptionCipherCtx(128, nil, key[:], nonce[:]) -		if err != nil { -			b.FailNow() -		} -		part, err = ectx.EncryptUpdate(buf) -		if err != nil { -			b.FailNow() -		} -		ciphertext.Write(part) -		part, err = ectx.EncryptFinal() -		if err != nil { -			b.FailNow() -		} -		ciphertext.Write(part) -		part, err = ectx.GetTag() -		if err != nil { -			b.FailNow() -		} -		ciphertext.Write(part) -	} -} - -func BenchmarkOpensslGCMdec4K(b *testing.B) { -	buf := makeOpensslCiphertext() -	b.SetBytes(int64(1024*4)) - -	tag := buf[4096:] -	buf = buf[0:4096] - -	var key [16]byte -	var nonce [12]byte - -	var plaintext bytes.Buffer -	var part []byte - -	b.ResetTimer() -	for i := 0; i < b.N; i++ { -		plaintext.Reset() -		dctx, err := openssl.NewGCMDecryptionCipherCtx(128, nil, key[:], nonce[:]) -		if err != nil { -			b.FailNow() -		} -		part, err = dctx.DecryptUpdate(buf) -		if err != nil { -			b.FailNow() -		} -		plaintext.Write(part) -		err = dctx.SetTag(tag) -		if err != nil { -			b.FailNow() -		} -		part, err = dctx.DecryptFinal() -		if err != nil { -			b.FailNow() -		} -		plaintext.Write(part) -	} -} - -func makeOpensslCiphertext() []byte { -	buf := make([]byte, 1024*4) -	var key [16]byte -	var nonce [12]byte -	var ciphertext bytes.Buffer -	var part []byte - -	ectx, _ := openssl.NewGCMEncryptionCipherCtx(128, nil, key[:], nonce[:]) -	part, _ = ectx.EncryptUpdate(buf) -	ciphertext.Write(part) -	part, _ = ectx.EncryptFinal() -	ciphertext.Write(part) -	part, _ = ectx.GetTag() -	ciphertext.Write(part) - -	return ciphertext.Bytes() -} | 
