diff --git a/pbkdf2_test.go b/pbkdf2_test.go index 0ae0c007..b61a0afa 100644 --- a/pbkdf2_test.go +++ b/pbkdf2_test.go @@ -34,10 +34,14 @@ type pbkdf2Suite struct{} var _ = Suite(&pbkdf2Suite{}) func (s *pbkdf2Suite) TestKDFParamsDefault(c *C) { + var expectedTime int restore := MockPBKDF2Benchmark(func(targetDuration time.Duration, hashAlg crypto.Hash) (uint, error) { c.Check(targetDuration, Equals, 2*time.Second) c.Check(hashAlg, Equals, crypto.SHA256) - return pbkdf2.Benchmark(targetDuration, hashAlg) + iter, err := pbkdf2.Benchmark(targetDuration, hashAlg) + c.Check(err, IsNil) + expectedTime = int(iter) + return iter, err }) defer restore() @@ -45,16 +49,21 @@ func (s *pbkdf2Suite) TestKDFParamsDefault(c *C) { params, err := opts.KdfParams(32) c.Assert(err, IsNil) c.Check(params.Type, Equals, "pbkdf2") + c.Check(params.Time, Equals, expectedTime) c.Check(params.Hash, Equals, HashAlg(crypto.SHA256)) c.Check(params.Memory, Equals, 0) c.Check(params.CPUs, Equals, 0) } func (s *pbkdf2Suite) TestKDFParamsDefault48(c *C) { + var expectedTime int restore := MockPBKDF2Benchmark(func(targetDuration time.Duration, hashAlg crypto.Hash) (uint, error) { c.Check(targetDuration, Equals, 2*time.Second) c.Check(hashAlg, Equals, crypto.SHA384) - return pbkdf2.Benchmark(targetDuration, hashAlg) + iter, err := pbkdf2.Benchmark(targetDuration, hashAlg) + c.Check(err, IsNil) + expectedTime = int(iter) + return iter, err }) defer restore() @@ -62,16 +71,21 @@ func (s *pbkdf2Suite) TestKDFParamsDefault48(c *C) { params, err := opts.KdfParams(48) c.Assert(err, IsNil) c.Check(params.Type, Equals, "pbkdf2") + c.Check(params.Time, Equals, expectedTime) c.Check(params.Hash, Equals, HashAlg(crypto.SHA384)) c.Check(params.Memory, Equals, 0) c.Check(params.CPUs, Equals, 0) } func (s *pbkdf2Suite) TestKDFParamsDefault64(c *C) { + var expectedTime int restore := MockPBKDF2Benchmark(func(targetDuration time.Duration, hashAlg crypto.Hash) (uint, error) { c.Check(targetDuration, Equals, 2*time.Second) c.Check(hashAlg, Equals, crypto.SHA512) - return pbkdf2.Benchmark(targetDuration, hashAlg) + iter, err := pbkdf2.Benchmark(targetDuration, hashAlg) + c.Check(err, IsNil) + expectedTime = int(iter) + return iter, err }) defer restore() @@ -79,20 +93,21 @@ func (s *pbkdf2Suite) TestKDFParamsDefault64(c *C) { params, err := opts.KdfParams(64) c.Assert(err, IsNil) c.Check(params.Type, Equals, "pbkdf2") + c.Check(params.Time, Equals, expectedTime) c.Check(params.Hash, Equals, HashAlg(crypto.SHA512)) c.Check(params.Memory, Equals, 0) c.Check(params.CPUs, Equals, 0) } func (s *pbkdf2Suite) TestKDFParamsTargetDuration(c *C) { + var expectedTime int restore := MockPBKDF2Benchmark(func(targetDuration time.Duration, hashAlg crypto.Hash) (uint, error) { - c.Logf("benchmarking (%d)", targetDuration) - if targetDuration != 200*time.Millisecond { - panic("") - } c.Check(targetDuration, Equals, 200*time.Millisecond) c.Check(hashAlg, Equals, crypto.SHA256) - return pbkdf2.Benchmark(targetDuration, hashAlg) + iter, err := pbkdf2.Benchmark(targetDuration, hashAlg) + c.Check(err, IsNil) + expectedTime = int(iter) + return iter, err }) defer restore() @@ -101,6 +116,7 @@ func (s *pbkdf2Suite) TestKDFParamsTargetDuration(c *C) { params, err := opts.KdfParams(32) c.Assert(err, IsNil) c.Check(params.Type, Equals, "pbkdf2") + c.Check(params.Time, Equals, expectedTime) c.Check(params.Hash, Equals, HashAlg(crypto.SHA256)) c.Check(params.Memory, Equals, 0) c.Check(params.CPUs, Equals, 0) @@ -119,10 +135,14 @@ func (s *pbkdf2Suite) TestKDFParamsForceIterations(c *C) { } func (s *pbkdf2Suite) TestKDFParamsCustomHash(c *C) { + var expectedTime int restore := MockPBKDF2Benchmark(func(targetDuration time.Duration, hashAlg crypto.Hash) (uint, error) { c.Check(targetDuration, Equals, 2*time.Second) c.Check(hashAlg, Equals, crypto.SHA512) - return pbkdf2.Benchmark(targetDuration, hashAlg) + iter, err := pbkdf2.Benchmark(targetDuration, hashAlg) + c.Check(err, IsNil) + expectedTime = int(iter) + return iter, err }) defer restore() @@ -131,6 +151,7 @@ func (s *pbkdf2Suite) TestKDFParamsCustomHash(c *C) { params, err := opts.KdfParams(32) c.Assert(err, IsNil) c.Check(params.Type, Equals, "pbkdf2") + c.Check(params.Time, Equals, expectedTime) c.Check(params.Hash, Equals, HashAlg(crypto.SHA512)) c.Check(params.Memory, Equals, 0) c.Check(params.CPUs, Equals, 0)