Use better randomness

This commit is contained in:
Alex 2020-01-27 17:01:32 +01:00
parent e7ded9d6b5
commit 3edaad9317
2 changed files with 12 additions and 5 deletions

View file

@ -12,7 +12,7 @@ import (
"fmt"
"io/ioutil"
"log"
"math/rand"
"crypto/rand"
"os"
"os/signal"
"syscall"
@ -264,7 +264,10 @@ func (server *Server) init() error {
}
admin_pass := make([]byte, 8)
rand.Read(admin_pass)
_, err = rand.Read(admin_pass)
if err != nil {
return err
}
admin_pass_str := base64.RawURLEncoding.EncodeToString(admin_pass)
admin_pass_hash := SSHAEncode([]byte(admin_pass_str))
@ -286,7 +289,7 @@ func (server *Server) init() error {
}
server.logger.Printf(
"It seems to be a new installation, we created a default user for you:\n\n dn: %s\n password: %s\n\nWe didn't use true random, you should replace it as soon as possible.",
"It seems to be a new installation, we created a default user for you:\n\n dn: %s\n password: %s\n\nWe recommend replacing it as soon as possible.",
admin_dn,
admin_pass_str,
)

View file

@ -1,11 +1,12 @@
package main
import (
"log"
"bytes"
"crypto/sha1"
"encoding/base64"
"fmt"
"math/rand"
"crypto/rand"
)
// Encode encodes the []byte of raw password
@ -38,7 +39,10 @@ func SSHAMatches(encodedPassPhrase string, rawPassPhrase []byte) bool {
// makeSalt make a 32 byte array containing random bytes.
func makeSalt() []byte {
sbytes := make([]byte, 32)
rand.Read(sbytes)
_, err := rand.Read(sbytes)
if err != nil {
log.Panicf("Could not read random bytes: %s", err)
}
return sbytes
}