package main
import (
"fmt"
"golang.org/x/crypto/argon2"
)
type argon2idStruct struct {}
func newArgon2id() *argon2idStruct {
argon2id := &argon2idStruct{}
return argon2id
}
func (argon2id *argon2idStruct) Id() string {
return "argon2id.65536.3.1.32"
}
func (*argon2idStruct) SaltSize() int {
return 16
}
func (argon2id *argon2idStruct) Hash(password string, salt []byte) ([]byte, error) {
key := argon2.IDKey([]byte(password), salt, 3, 65536, 1, 32)
return key, nil
}