package crypt
import "github.com/tredoe/osutil/user/crypt"
Package crypt provides interface for password crypt functions and collects common constants.
Index ¶
Variables ¶
Functions ¶
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.
const ( APR1 Crypt = iota + 1 // import "github.com/tredoe/osutil/user/crypt/apr1_crypt" MD5 // import "github.com/tredoe/osutil/user/crypt/md5_crypt" SHA256 // import "github.com/tredoe/osutil/user/crypt/sha256_crypt" SHA512 // import "github.com/tredoe/osutil/user/crypt/sha512_crypt" )
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 New ¶
New returns a new crypter.
func NewFromHash ¶
NewFromHash returns a new Crypter using the prefix in the given hashed key.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
user/crypt/apr1_crypt | Package apr1_crypt implements the standard Unix MD5-crypt algorithm created by Poul-Henning Kamp for FreeBSD, and modified by the Apache project. |
user/crypt/common | Package common contains routines used by multiple password hashing algorithms. |
user/crypt/md5_crypt | Package md5_crypt implements the standard Unix MD5-crypt algorithm created by Poul-Henning Kamp for FreeBSD. |
user/crypt/sha256_crypt | Package sha256_crypt implements Ulrich Drepper's SHA256-crypt password hashing algorithm. |
user/crypt/sha512_crypt | Package sha512_crypt implements Ulrich Drepper's SHA512-crypt password hashing algorithm. |
- Version
- v1.5.0 (latest)
- Published
- Jun 4, 2024
- Platform
- linux/amd64
- Imports
- 3 packages
- Last checked
- 1 day ago –
Tools for package owners.