zitadel/internal/crypto/bcrypt.go

28 lines
476 B
Go
Raw Normal View History

2020-03-23 06:06:44 +00:00
package crypto
import (
"golang.org/x/crypto/bcrypt"
)
2020-03-30 07:28:00 +00:00
var _ HashAlgorithm = (*BCrypt)(nil)
2020-03-23 06:06:44 +00:00
type BCrypt struct {
cost int
}
func NewBCrypt(cost int) *BCrypt {
return &BCrypt{cost: cost}
}
func (b *BCrypt) Algorithm() string {
return "bcrypt"
}
func (b *BCrypt) Hash(value []byte) ([]byte, error) {
return bcrypt.GenerateFromPassword(value, b.cost)
}
func (b *BCrypt) CompareHash(hashed, value []byte) error {
return bcrypt.CompareHashAndPassword(hashed, value)
}