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