Documentation
¶
Index ¶
Constants ¶
const ( // LowercaseCharacters defines lowercase characters LowercaseCharacters = "abcdefghijklmnopqrstuvwxyz" // NumericCharacters defines numerical characters NumericCharacters = "1234567890" // SpecialCharacters defines special characters SpecialCharacters = "~`!@#$%^&*()_-=+[{]}\\|;:'\"<>./?" // UppercaseCharacters defines uppercase characters UppercaseCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" )
const ( // DefaultPasswordCustomSpecial defines the default character set // that is used to define special characters DefaultPasswordCustomSpecial string = SpecialCharacters // DefaultPasswordMinimumLowercaseCount defines the default for // the number of lower-cased characters required DefaultPasswordMinimumLowercaseCount int = 0 // DefaultPasswordMinimumUppercaseCount defines the default for // the number of upper-cased characters required DefaultPasswordMinimumUppercaseCount int = 0 // DefaultPasswordMaximumLength defines the default for the length // of the password DefaultPasswordMaximumLength int = 64 // DefaultPasswordMinimumLength defines the default for the minimum // length of the password DefaultPasswordMinimumLength int = 8 // DefaultPasswordMinimumNumericCount defines the default // number of numeric characters in the password DefaultPasswordMinimumNumericCount int = 0 // DefaultPasswordMinimumSpecialCount defines the default // number of special characters in the password DefaultPasswordMinimumSpecialCount int = 0 )
const ( // StringTypeNumeric defines a numeric character type StringTypeNumeric = "NUMERIC" // StringTypeSpecial defines a special character type StringTypeSpecial = "SPECIAL" // StringTypeLowercase defines a lowercase character type StringTypeLowercase = "LOWERCASE" // StringTypeUppercase defines a uppercase character type StringTypeUppercase = "UPPERCASE" // StringTypeUnknown defines an unknown character type StringTypeUnknown = "UNKNOWN" )
const VariableArgon2RequiredMemory uint64 = 64 * 1024
VariableArgon2RequiredMemory defines the recommended memory in bytes to use to generate an Argon2id hashed password
const VariableMemoryTolerance float64 = 0.5
VariableMemoryTolerance defines the maximum amount of the available heap to use for hashing passwords
Variables ¶
This section is empty.
Functions ¶
func Hash ¶
Hash hashes and salts the given plaintext string and returns the result as a base64-encoded hash and salt
Types ¶
type Policy ¶
type Policy struct { MaximumLength int MinimumLength int MinimumLowercaseCount int MinimumUppercaseCount int MinimumNumericCount int MinimumSpecialCount int CustomSpecial []byte }
Policy defines possible configurations for password requirements
func GetDefaultPolicy ¶
func GetDefaultPolicy() Policy
GetDefaultPolicy returns a Policy with its values set to the default
type StringMetadata ¶
type StringMetadata struct { Length int Lowercases strings.Builder Uppercases strings.Builder Numerics strings.Builder Specials strings.Builder Unknowns strings.Builder PrefixType string SuffixType string }
StringMetadata provides metadata about a string, use GetStringMetadata to generate the metadata
func GetStringMetadata ¶
func GetStringMetadata(plaintext string, customSpecial ...[]byte) StringMetadata
GetStringMetadata returns a populated StringMetadata structure that provides meta-data about the provided plaintext string for further processing by validators