package common
import "github.com/tredoe/osutil/user/crypt/common"
Package common contains routines used by multiple password hashing algorithms.
Generally, you will never import this package directly. Many of the *_crypt packages will import this package if they require it.
Index ¶
Variables ¶
var ( ErrSaltPrefix = errors.New("invalid magic prefix") ErrSaltFormat = errors.New("invalid salt format") ErrSaltRounds = errors.New("invalid rounds") )
Functions ¶
func Base64_24Bit ¶
Base64_24Bit is a variant of Base64 encoding, commonly used with password hashing algorithms to encode the result of their checksum output.
The algorithm operates on up to 3 bytes at a time, encoding the following 6-bit sequences into up to 4 hash64 ASCII bytes.
- Bottom 6 bits of the first byte
- Top 2 bits of the first byte, and bottom 4 bits of the second byte.
- Top 4 bits of the second byte, and bottom 2 bits of the third byte.
- Top 6 bits of the third byte.
This encoding method does not emit padding bytes as Base64 does.
Types ¶
type Salt ¶
type Salt struct { MagicPrefix []byte SaltLenMin int SaltLenMax int RoundsMin int RoundsMax int RoundsDefault int }
Salt represents a salt.
func (*Salt) Generate ¶
Generate generates a random salt of a given length.
The length is set thus:
length > SaltLenMax: length = SaltLenMax length < SaltLenMin: length = SaltLenMin
func (*Salt) GenerateWRounds ¶
GenerateWRounds creates a random salt with the random bytes being of the length provided, and the rounds parameter set as specified.
The parameters are set thus:
length > SaltLenMax: length = SaltLenMax length < SaltLenMin: length = SaltLenMin rounds < 0: rounds = RoundsDefault rounds < RoundsMin: rounds = RoundsMin rounds > RoundsMax: rounds = RoundsMax
If rounds is equal to RoundsDefault, then the "rounds=" part of the salt is removed.
Source Files ¶
- Version
- v1.5.0 (latest)
- Published
- Jun 4, 2024
- Platform
- linux/amd64
- Imports
- 3 packages
- Last checked
- 1 day ago –
Tools for package owners.