diff --git a/main.go b/main.go
index b891c8820f0c8bfd61b4d58dbaa6460d2531796e..8bf5141a4094b15d635a968f715a10123e618bc6 100644
--- a/main.go
+++ b/main.go
@@ -2,6 +2,8 @@ package main
import (
"context"
+ "crypto/rand"
+ "encoding/base64"
"flag"
"fmt"
"log/slog"
@@ -24,14 +26,23 @@
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)
+ slog.Error("Hash", "error", err)
+ os.Exit(1)
+ }
+ return
+ }
+
+ if len(os.Args) == 2 && os.Args[1] == "key" {
+ err := key()
+ if err != nil {
+ slog.Error("Key", "error", err)
os.Exit(1)
}
return
}
if err := run(ctx); err != nil {
- slog.Error("Error", "error", err)
+ slog.Error("Server", "error", err)
os.Exit(1)
}
}
@@ -43,6 +54,19 @@ if err != nil {
return err
}
fmt.Println(string(bytes))
+ return nil
+}
+
+func key() error {
+ key := make([]byte, 64)
+
+ _, err := rand.Read(key)
+ if err != nil {
+ return err
+ }
+
+ en := base64.StdEncoding.EncodeToString(key)
+ fmt.Println(en)
return nil
}