# Functions
AddPasswordAlgorithm method is add password algorithm to encoders list.
AESDecrypt method decrypts a given value with the given key block in CTR mode.
AESDecryptString is convenient method to do AES decryption.
AESEncrypt method encrypts a given value with given key block in CTR mode.
AESEncryptString is convenient method to do AES encryption.
InitPasswordEncoders method initializes the password encoders based defined configuration in `security.password_encoder { ..
PasswordAlgorithm method returns the password encoder for given algorithm, Otherwise nil.
Sign method signs a given value using HMAC and given SHA name.
SignString method signs the given text using provided key with HMAC SHA.
Verify method verifies given key, value and mac is valid.
VerifyString method verifies the signed text and text using provide key with HMAC SHA.
# Variables
ErrPasswordEncoderIsNil returned when given password encoder instance is nil.
ErrUnableToDecrypt returned for decrypt errors.
# Structs
BcryptEncoder struct implements `PasswordEncoder` interface for `bcrypt` hashing.
Pbkdf2Encoder struct implements `PasswordEncoder` interface for `pbkdf2` hashing.
ScryptEncoder struct implements `PasswordEncoder` interface for `scrypt` hashing.
# Interfaces
PasswordEncoder interface is used to implement generate password hash and compare given hash & password based chosen hashing type.