cerrado @ 5fb240326bba79f6963f5d042dea824cdb9e8e45

feat: Add command to generate hash and aes key

This makes easier for an user to setup those value later.
 1diff --git a/main.go b/main.go
 2index b891c8820f0c8bfd61b4d58dbaa6460d2531796e..8bf5141a4094b15d635a968f715a10123e618bc6 100644
 3--- a/main.go
 4+++ b/main.go
 5@@ -2,6 +2,8 @@ package main
 6 
 7 import (
 8 	"context"
 9+	"crypto/rand"
10+	"encoding/base64"
11 	"flag"
12 	"fmt"
13 	"log/slog"
14@@ -24,14 +26,23 @@
15 	if len(os.Args) == 4 && os.Args[1] == "hash" {
16 		err := hash(os.Args[2], os.Args[3])
17 		if err != nil {
18-			slog.Error("Error", "error", err)
19+			slog.Error("Hash", "error", err)
20+			os.Exit(1)
21+		}
22+		return
23+	}
24+
25+	if len(os.Args) == 2 && os.Args[1] == "key" {
26+		err := key()
27+		if err != nil {
28+			slog.Error("Key", "error", err)
29 			os.Exit(1)
30 		}
31 		return
32 	}
33 
34 	if err := run(ctx); err != nil {
35-		slog.Error("Error", "error", err)
36+		slog.Error("Server", "error", err)
37 		os.Exit(1)
38 	}
39 }
40@@ -43,6 +54,19 @@ 	if err != nil {
41 		return err
42 	}
43 	fmt.Println(string(bytes))
44+	return nil
45+}
46+
47+func key() error {
48+	key := make([]byte, 64)
49+
50+	_, err := rand.Read(key)
51+	if err != nil {
52+		return err
53+	}
54+
55+	en := base64.StdEncoding.EncodeToString(key)
56+	fmt.Println(en)
57 	return nil
58 }
59