Files
coder/coderd/userpassword/hashing_bench_test.go
Kyle Carberry 22e781eced chore: add /v2 to import module path (#9072)
* chore: add /v2 to import module path

go mod requires semantic versioning with versions greater than 1.x

This was a mechanical update by running:
```
go install github.com/marwan-at-work/mod/cmd/mod@latest
mod upgrade
```

Migrate generated files to import /v2

* Fix gen
2023-08-18 18:55:43 +00:00

72 lines
1.1 KiB
Go

package userpassword_test
import (
"crypto/sha256"
"testing"
"golang.org/x/crypto/bcrypt"
"golang.org/x/crypto/pbkdf2"
"github.com/coder/coder/v2/cryptorand"
)
var (
salt = []byte(must(cryptorand.String(16)))
secret = []byte(must(cryptorand.String(24)))
resBcrypt []byte
resPbkdf2 []byte
)
func BenchmarkBcryptMinCost(b *testing.B) {
var r []byte
b.ReportAllocs()
for i := 0; i < b.N; i++ {
r, _ = bcrypt.GenerateFromPassword(secret, bcrypt.MinCost)
}
resBcrypt = r
}
func BenchmarkPbkdf2MinCost(b *testing.B) {
var r []byte
b.ReportAllocs()
for i := 0; i < b.N; i++ {
r = pbkdf2.Key(secret, salt, 1024, 64, sha256.New)
}
resPbkdf2 = r
}
func BenchmarkBcryptDefaultCost(b *testing.B) {
var r []byte
b.ReportAllocs()
for i := 0; i < b.N; i++ {
r, _ = bcrypt.GenerateFromPassword(secret, bcrypt.DefaultCost)
}
resBcrypt = r
}
func BenchmarkPbkdf2(b *testing.B) {
var r []byte
b.ReportAllocs()
for i := 0; i < b.N; i++ {
r = pbkdf2.Key(secret, salt, 65536, 64, sha256.New)
}
resPbkdf2 = r
}
func must(s string, err error) string {
if err != nil {
panic(err)
}
return s
}