Documentation
¶
Index ¶
- Variables
- func Encode(password string, opt *Option) (string, error)
- func EncodeFromKDF(password string, kdf KDF, salt string, hashLength uint32) (string, error)
- func GenerateRandomSalt(saltLength uint32) ([]byte, error)
- func KDFName(kdf KDF) (string, error)
- func ListKDFAlgorithms() []string
- func RegisterKDF(algorithm string, kdf KDF)
- func Verify(password, encoded string) (bool, error)
- type Argon2
- type Argon2i
- type Argon2id
- type HKDF
- type KDF
- type Option
- type PBKDF2
- type Scrypt
Constants ¶
This section is empty.
Variables ¶
var ( // ErrInvalidEncoding indicates that an encoded password is malformed. ErrInvalidEncoding = errors.New("invalid password encoding") // ErrInvalidParameter indicates that an option or KDF parameter is invalid. ErrInvalidParameter = errors.New("invalid KDF parameter") // ErrUnsupportedAlgorithm indicates that a KDF algorithm is not registered. ErrUnsupportedAlgorithm = errors.New("unsupported KDF algorithm") )
Functions ¶
func EncodeFromKDF ¶ added in v1.0.0
EncodeFromKDF encodes a password with the given KDF and salt.
func GenerateRandomSalt ¶ added in v1.0.0
GenerateRandomSalt generates random salt.
func ListKDFAlgorithms ¶ added in v1.1.0
func ListKDFAlgorithms() []string
ListKDFAlgorithms lists all registered KDF algorithms in sorted order.
func RegisterKDF ¶ added in v1.0.0
RegisterKDF registers a KDF type with an algorithm name.
Types ¶
type Argon2 ¶ added in v1.0.0
type Argon2 struct {
Version uint8 `param:"v"`
Memory uint32 `param:"m"`
Iteration uint32 `param:"t"`
Parallelism uint8 `param:"p"`
}
Argon2 contains parameters shared by Argon2 variants.
func (*Argon2) SetDefaultParam ¶ added in v1.0.0
func (kdf *Argon2) SetDefaultParam()
SetDefaultParam sets the default parameters for Argon2i.
type Argon2id ¶
type Argon2id struct {
Argon2
}
Argon2id implements the Argon2id KDF.
func (*Argon2id) SetDefaultParam ¶ added in v1.6.0
func (kdf *Argon2id) SetDefaultParam()
SetDefaultParam sets the default parameters for Argon2id.
type HKDF ¶ added in v1.0.0
HKDF contains HKDF parameters.
func (*HKDF) SetDefaultParam ¶ added in v1.0.0
func (kdf *HKDF) SetDefaultParam()
SetDefaultParam sets the default HKDF parameters.
type KDF ¶
type KDF interface {
SetDefaultParam()
Derive(password, salt []byte, hashLength uint32) ([]byte, error)
}
KDF is implemented by key derivation functions registered with this package.
type Option ¶ added in v1.0.0
type Option struct {
Algorithm string
Param string
RandomSaltLength uint32
Salt string
HashLength uint32
}
Option configures Encode.
type PBKDF2 ¶
PBKDF2 contains PBKDF2 parameters.
func (*PBKDF2) SetDefaultParam ¶ added in v1.0.0
func (kdf *PBKDF2) SetDefaultParam()
SetDefaultParam sets the default PBKDF2 parameters.
type Scrypt ¶ added in v1.0.0
type Scrypt struct {
Cost int `param:"N"`
BlockSize int `param:"r"`
Parallelization int `param:"p"`
}
Scrypt contains scrypt parameters.
func (*Scrypt) SetDefaultParam ¶ added in v1.0.0
func (kdf *Scrypt) SetDefaultParam()
SetDefaultParam sets the default scrypt parameters.