diff options
author | Gabriel A. Giovanini <mail@gabrielgio.me> | 2024-10-02 15:55:38 +0200 |
---|---|---|
committer | Gabriel A. Giovanini <mail@gabrielgio.me> | 2024-10-02 15:55:38 +0200 |
commit | 3a1359b3ad03b2fdb3b9dc0df8629834f7419a08 (patch) | |
tree | 1cf4e1730677fa74cbfaa8199747a624901dac91 /main.go | |
parent | 0991b46a360f40c833142bd0153253ec54f90c2a (diff) | |
download | cerrado-3a1359b3ad03b2fdb3b9dc0df8629834f7419a08.tar.gz cerrado-3a1359b3ad03b2fdb3b9dc0df8629834f7419a08.tar.bz2 cerrado-3a1359b3ad03b2fdb3b9dc0df8629834f7419a08.zip |
feat: Add command to generate user passphrase
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -3,11 +3,14 @@ package main import ( "context" "flag" + "fmt" "log/slog" "os" "os/signal" "time" + "golang.org/x/crypto/bcrypt" + "git.gabrielgio.me/cerrado/pkg/config" "git.gabrielgio.me/cerrado/pkg/handler" "git.gabrielgio.me/cerrado/pkg/service" @@ -17,12 +20,32 @@ import ( func main() { ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, os.Kill) defer stop() + + if len(os.Args) == 4 && os.Args[1] == "hash" { + err := hash(os.Args[2], os.Args[3]) + if err != nil { + slog.Error("Error", "error", err) + os.Exit(1) + } + return + } + if err := run(ctx); err != nil { slog.Error("Error", "error", err) os.Exit(1) } } +func hash(username string, password string) error { + passphrase := fmt.Sprintf("%s:%s", username, password) + bytes, err := bcrypt.GenerateFromPassword([]byte(passphrase), 14) + if err != nil { + return err + } + fmt.Println(string(bytes)) + return nil +} + func run(ctx context.Context) error { var ( configPath = flag.String("config", "/etc/cerrado.scfg", "File path for the configuration file") |