auth

package
v0.0.0-...-cbf8c9c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 10, 2025 License: BSD-3-Clause Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultParams = &Argon2idParams{
	Memory:      64 * 1024,
	Iterations:  3,
	Parallelism: 2,
	SaltLength:  16,
	KeyLength:   32,
}

DefaultParams son los parámetros por defecto y recomendados para Argon2id.

Functions

func CheckPasswordHash

func CheckPasswordHash(password, encodedHash string) (match bool, err error)

CheckPasswordHash verifica una contraseña en texto plano contra un hash Argon2id almacenado.

func GenerateJWT

func GenerateJWT(userID uint, username string, role models.Role) (string, error)

GenerateJWT genera un nuevo token JWT para un usuario.

func HashPassword

func HashPassword(password string, p *Argon2idParams) (string, error)

HashPassword genera un hash Argon2id para la contraseña dada. El formato del hash devuelto es: $argon2id$v=19$m=<memory>,t=<iterations>,p=<parallelism>$<salt_base64>$<hash_base64>

func InitJWT

func InitJWT() error

InitJWT inicializa la clave secreta JWT desde las variables de entorno. Debe llamarse una vez al inicio de la aplicación.

Types

type Argon2idParams

type Argon2idParams struct {
	Memory      uint32 // Memoria en KiB
	Iterations  uint32 // Número de iteraciones
	Parallelism uint8  // Grado de paralelismo (número de hilos)
	SaltLength  uint32 // Longitud del salt en bytes
	KeyLength   uint32 // Longitud de la clave derivada (hash) en bytes
}

Argon2idParams define los parámetros para el hashing Argon2id. Estos son valores recomendados por OWASP. Ajusta según tus necesidades y pruebas de rendimiento.

func DecodeHash

func DecodeHash(encodedHash string) (p *Argon2idParams, salt, hash []byte, err error)

DecodeHash parsea una cadena de hash Argon2id y extrae los parámetros, salt y hash.

type Claims

type Claims struct {
	UserID   uint        `json:"user_id"`
	Username string      `json:"username"`
	Role     models.Role `json:"role"`
	jwt.RegisteredClaims
}

Claims define la estructura de los claims para el token JWT.

func ValidateJWT

func ValidateJWT(tokenString string) (*Claims, error)

ValidateJWT valida un token JWT y devuelve los claims si es válido.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL