]> Cypherpunks.ru repositories - balloon.git/commitdiff
Do not require salt passing, generate it
authorSergey Matveev <stargrave@stargrave.org>
Sat, 5 Oct 2019 08:03:44 +0000 (11:03 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 6 Oct 2019 09:58:51 +0000 (12:58 +0300)
cmd/balloon/main.go

index 7ba57af5b83d9b80bc878f6a4c395170efcc7a03..0c737c9dd794dfe9e6b5e095328e519e71fa4f5a 100644 (file)
@@ -1,10 +1,12 @@
 package main
 
 import (
+       "crypto/rand"
        "crypto/sha512"
        "encoding/hex"
        "flag"
        "fmt"
+       "io"
 
        "go.cypherpunks.ru/balloon"
 )
@@ -13,10 +15,17 @@ func main() {
        s := flag.Int("s", 1<<18, "Space cost, number of hash-sized blocks")
        t := flag.Int("t", 2, "Time cost, rounds")
        p := flag.Int("p", 4, "Number of threads")
-       saltHex := flag.String("salt", "deadbabe", "Salt, hexadecimal")
+       saltHex := flag.String("salt", "", "Salt, hexadecimal, optional")
        passwd := flag.String("passwd", "", "Password")
        flag.Parse()
-       salt, err := hex.DecodeString(*saltHex)
+       var salt []byte
+       var err error
+       if len(*saltHex) == 0 {
+               salt = make([]byte, 8)
+               _, err = io.ReadFull(rand.Reader, salt)
+       } else {
+               salt, err = hex.DecodeString(*saltHex)
+       }
        if err != nil {
                panic(err)
        }