PortAllocator: Generate crypto random string as secret
Change-Id: Icbeaa14e39c19507107444d1a358287819525696
diff --git a/core/port-allocator/main.go b/core/port-allocator/main.go
index d99550b..6b4fd47 100644
--- a/core/port-allocator/main.go
+++ b/core/port-allocator/main.go
@@ -20,6 +20,10 @@
"golang.org/x/crypto/ssh"
)
+const (
+ secretLength = 20
+)
+
var port = flag.Int("port", 8080, "Port to listen on")
var repoAddr = flag.String("repo-addr", "", "Git repository address where Helm releases are stored")
var sshKey = flag.String("ssh-key", "", "Path to SHH key used to connect with Git repository")
@@ -280,7 +284,11 @@
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
- secret := generateSecret()
+ secret, err := generateSecret()
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
s.reserve[port] = secret
go func() {
time.Sleep(30 * time.Minute)
@@ -360,9 +368,13 @@
return soft.NewRepoIO(repo, signer)
}
-func generateSecret() string {
- // TODO(gio): implement
- return "foo"
+func generateSecret() (string, error) {
+ b := make([]byte, secretLength)
+ _, err := rand.Read(b)
+ if err != nil {
+ return "", fmt.Errorf("error generating secret: %v", err)
+ }
+ return string(b), nil
}
func main() {