Documentation
¶
Overview ¶
Package security provides cryptographic primitives including AES-GCM encryption, password hashing with bcrypt, HMAC hashing, secure key generation, PKCE generation, and environment variable parsing utilities.
Index ¶
- func Decrypt(ciphertext []byte, key [32]byte) ([]byte, error)
- func Encrypt(plaintext []byte, key [32]byte) []byte
- func GenerateID() string
- func GenerateKey() [32]byte
- func GeneratePKCE() (string, string)
- func Getenv(key string) [32]byte
- func Hash(tag string, data []byte) []byte
- func IsPasswordValid(ciphertext, plaintext []byte) bool
- func ParseBoolOrDefault(key string, def bool) bool
- func ParseDurationOrDefault(key string, def time.Duration) time.Duration
- func ParseFloatOrDefault(key string, def float64) float64
- func ParseIntOrDefault(key string, def int) int
- func ParseStringOrDefault(key string, def string) string
- func Password(plaintext []byte) ([]byte, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Decrypt ¶
Decrypt takes an encrypted byte slice (ciphertext) and a 256-bit AES key, and decrypts the ciphertext using AES-GCM.
func Encrypt ¶
Encrypt takes an input byte slice (plaintext) and encrypts it using AES-GCM. It returns the encrypted data (ciphertext) and the key used for encryption.
func GenerateID ¶ added in v0.1.71
func GenerateID() string
GenerateID generates a unique ID using a secure random key.
func GenerateKey ¶
func GenerateKey() [32]byte
GenerateKey generates a 256-bit (32-byte) random key for AES encryption. It uses a cryptographically secure random number generator.
func GeneratePKCE ¶ added in v0.1.87
GeneratePKCE generates a OAuth 2.0 PKCE challenge by using a random string.
func Getenv ¶ added in v0.1.7
Getenv retrieves an environment variable by the given key, interprets its value as a hexadecimal string, and decodes it into a 32-byte array. If the environment variable is not set, the value is not a valid hex string, or the decoded byte length is not 32, the function returns an empty array.
func IsPasswordValid ¶
IsPasswordValid checks if a given plaintext password matches a hashed password.
func ParseBoolOrDefault ¶ added in v0.2.37
ParseBoolOrDefault parses the value of the environment variable with the given key as a boolean. If the value is not set or cannot be parsed, the default boolean is returned.
func ParseDurationOrDefault ¶ added in v0.2.36
ParseDurationOrDefault parses the value of the environment variable with the given key as a duration. If the value is not set or cannot be parsed, the default duration is returned.
func ParseFloatOrDefault ¶ added in v0.2.37
ParseFloatOrDefault parses the value of the environment variable with the given key as a float. If the value is not set or cannot be parsed, the default float is returned.
func ParseIntOrDefault ¶ added in v0.2.36
ParseIntOrDefault parses the value of the environment variable with the given key as an integer. If the value is not set or cannot be parsed, the default integer is returned.
func ParseStringOrDefault ¶ added in v0.2.37
ParseStringOrDefault parses the value of the environment variable with the given key as a string. If the value is not set or cannot be parsed, the default string is returned.
Types ¶
This section is empty.