From d585fd2cc9195196078f516b69daff6744ef5e84 Mon Sep 17 00:00:00 2001 From: Andrew Ekstedt Date: Fri, 15 Dec 2017 20:08:15 -0800 Subject: [PATCH] pbkdf2: add benchmarks Add benchmarks for PBKDF2-HMAC-SHA1 and PBKDF2-HMAC-SHA256. This is to help measure the crypto/hmac changes in CL 27458. Change-Id: I17ef12f3a4641ba44f7bb917a9d87a3ed7c97c67 Reviewed-on: https://go-review.googlesource.com/84380 Reviewed-by: Filippo Valsorda --- pbkdf2/pbkdf2_test.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pbkdf2/pbkdf2_test.go b/pbkdf2/pbkdf2_test.go index 1379240..f83cb69 100644 --- a/pbkdf2/pbkdf2_test.go +++ b/pbkdf2/pbkdf2_test.go @@ -155,3 +155,22 @@ func TestWithHMACSHA1(t *testing.T) { func TestWithHMACSHA256(t *testing.T) { testHash(t, sha256.New, "SHA256", sha256TestVectors) } + +var sink uint8 + +func benchmark(b *testing.B, h func() hash.Hash) { + password := make([]byte, h().Size()) + salt := make([]byte, 8) + for i := 0; i < b.N; i++ { + password = Key(password, salt, 4096, len(password), h) + } + sink += password[0] +} + +func BenchmarkHMACSHA1(b *testing.B) { + benchmark(b, sha1.New) +} + +func BenchmarkHMACSHA256(b *testing.B) { + benchmark(b, sha256.New) +}