From 5a3894077e3778a47a3daa8efc75f78fc268461b Mon Sep 17 00:00:00 2001 From: "J. Lowell Wofford" Date: Tue, 1 Dec 2020 11:29:01 -0700 Subject: [PATCH] add quality option for addentropy --- cmd/entropy/entropy.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/cmd/entropy/entropy.go b/cmd/entropy/entropy.go index 0f1dfd4..76b238e 100644 --- a/cmd/entropy/entropy.go +++ b/cmd/entropy/entropy.go @@ -71,14 +71,26 @@ func main() { case "add": fallthrough case "addentropy": - if len(os.Args) != 3 { + if len(os.Args) < 3 || len(os.Args) > 4 { usageFatal("addtoentcnt requires a file path as an option") } + var quality = 1.0 + if len(os.Args) == 4 { + quality, err = strconv.ParseFloat(os.Args[3], 32) + if err != nil { + fatal("couldn't parse quality option, must be a float from 0.0 - 1.0: %v", err) + } + if quality < 0 || quality > 1 { + fatal("quality must be in the range of 0.0 - 1.0") + } + } var buf []byte if buf, err = ioutil.ReadFile(os.Args[2]); err != nil { fatal("could not read file %s: %v", os.Args[2], err) } - if err = entropy.AddEntropy(len(buf), buf); err != nil { + bits := int(float64(len(buf)) * 8 * quality) + fmt.Printf("adding %d bytes with %d bits of entropy\n", len(buf), bits) + if err = entropy.AddEntropy(bits, buf); err != nil { fatal("failed to add entropy: %v", err) } case "zap":