Documentation
¶
Overview ¶
Package crypt provides interface for password crypt functions and collects common constants.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrKeyMismatch = errors.New("hashed value is not the hash of the given password")
Functions ¶
func IsHashSupported ¶
IsHashSupported returns true if hashedKey has a supported prefix. NewFromHash will not panic for this hashedKey
func RegisterCrypt ¶
RegisterCrypt registers a function that returns a new instance of the given crypt function. This is intended to be called from the init function in packages that implement crypt functions.
Types ¶
type Crypt ¶
type Crypt uint
Crypt identifies a crypt function that is implemented in another package.
type Crypter ¶
type Crypter interface {
// Generate performs the hashing algorithm, returning a full hash suitable
// for storage and later password verification.
//
// If the salt is empty, a randomly-generated salt will be generated with a
// length of SaltLenMax and number RoundsDefault of rounds.
//
// Any error only can be got when the salt argument is not empty.
Generate(key, salt []byte) (string, error)
// Verify compares a hashed key with its possible key equivalent.
// Returns nil on success, or an error on failure; if the hashed key is
// diffrent, the error is "ErrKeyMismatch".
Verify(hashedKey string, key []byte) error
// Cost returns the hashing cost (in rounds) used to create the given hashed
// key.
//
// When, in the future, the hashing cost of a key needs to be increased in
// order to adjust for greater computational power, this function allows one
// to establish which keys need to be updated.
//
// The algorithms based in MD5-crypt use a fixed value of rounds.
Cost(hashedKey string) (int, error)
// SetSalt sets a different salt. It is used to easily create derivated
// algorithms, i.e. "apr1_crypt" from "md5_crypt".
SetSalt(salt common.Salt)
}
Crypter is the common interface implemented by all crypt functions.
func NewFromHash ¶
NewFromHash returns a new Crypter using the prefix in the given hashed key.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package apr1_crypt implements the standard Unix MD5-crypt algorithm created by Poul-Henning Kamp for FreeBSD, and modified by the Apache project.
|
Package apr1_crypt implements the standard Unix MD5-crypt algorithm created by Poul-Henning Kamp for FreeBSD, and modified by the Apache project. |
|
Package common contains routines used by multiple password hashing algorithms.
|
Package common contains routines used by multiple password hashing algorithms. |
|
Package md5_crypt implements the standard Unix MD5-crypt algorithm created by Poul-Henning Kamp for FreeBSD.
|
Package md5_crypt implements the standard Unix MD5-crypt algorithm created by Poul-Henning Kamp for FreeBSD. |
|
Package sha256_crypt implements Ulrich Drepper's SHA256-crypt password hashing algorithm.
|
Package sha256_crypt implements Ulrich Drepper's SHA256-crypt password hashing algorithm. |
|
Package sha512_crypt implements Ulrich Drepper's SHA512-crypt password hashing algorithm.
|
Package sha512_crypt implements Ulrich Drepper's SHA512-crypt password hashing algorithm. |
Click to show internal directories.
Click to hide internal directories.