Jelajahi Sumber

Rename insecure command to invented; minor improvements

Dennis Rodewyk 5 tahun lalu
induk
melakukan
07b41b05d2
1 mengubah file dengan 33 tambahan dan 13 penghapusan
  1. 33 13
      app.go

+ 33 - 13
app.go

@@ -22,7 +22,7 @@ func myUsage() {
 	fmt.Println("Available commands are: ")
 	fmt.Println(" diceware   Calculate entropy of a diceware passphrase")
 	fmt.Println(" random     Calculate entropy of a random string")
-	fmt.Println(" insecure   Calculate entropy of an invented passphrase")
+	fmt.Println(" invented   Calculate entropy of an invented passphrase")
 }
 
 func main() {
@@ -30,6 +30,9 @@ func main() {
 	var usedCharsets[] string
 	var possibleSymbols int = 0
 
+	var passphrase string
+	var err error
+
 	charsets = make(map[string]string)
 	charsets["Numbers"] = "0123456789"
 	charsets["Lowercase"] = "abcdefghijklmnopqrstuvwxyz"
@@ -39,15 +42,17 @@ func main() {
 	charsets["Extended ASCII"] = "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
 
 	dicewareCommand := flag.NewFlagSet("diceware", flag.ExitOnError)
-	dicewarePassphraseFlag := dicewareCommand.String("passphrase", "", "the passphrase")
+	dicewarePassphraseFlag := dicewareCommand.String("password", "", "the password")
 	wordsFlag := dicewareCommand.Int("words", 0, "number of words in passphrase")
 	dictSizeFlag := dicewareCommand.Int("dictSize", 0, "number of words in dictionary")
+	delimiterFlag := dicewareCommand.String("delimiter", "", "delimiter used")
 
 	randomCommand := flag.NewFlagSet("random", flag.ExitOnError)
 	randomPassphraseFlag := randomCommand.String("password", "", "the password")
 
-	insecureCommand := flag.NewFlagSet("insecure", flag.ExitOnError)
-	insecureWords := insecureCommand.Int("words", 0, "number of words in invented passphrase")
+	inventedCommand := flag.NewFlagSet("invented", flag.ExitOnError)
+	inventedPassphraseFlag := inventedCommand.String("password", "", "the password")
+	inventedWords := inventedCommand.Int("words", 0, "number of words in invented passphrase")
 
 	if len(os.Args) == 1 {
 		myUsage()
@@ -59,19 +64,23 @@ func main() {
 		dicewareCommand.Parse(os.Args[2:])
 	case "random":
 		randomCommand.Parse(os.Args[2:])
-	case "insecure":
-		insecureCommand.Parse(os.Args[2:])
+	case "invented":
+		inventedCommand.Parse(os.Args[2:])
 	default:
 		myUsage()
 		fmt.Printf("\n%q is not valid command.\n", os.Args[1])
 		os.Exit(2)
 	}
 
+	if *inventedPassphraseFlag != "" {
+		passphrase = *inventedPassphraseFlag
+	} else if *randomPassphraseFlag != "" {
+		passphrase = *randomPassphraseFlag
+	} else {
+		passphrase = *dicewarePassphraseFlag
+	}
+
 	if dicewareCommand.Parsed() {
-		if *dicewarePassphraseFlag == "" {
-			dicewareCommand.Usage()
-			return
-		}
 		if *wordsFlag == 0 {
 			dicewareCommand.Usage()
 			return
@@ -80,6 +89,14 @@ func main() {
 			dicewareCommand.Usage()
 			return
 		}
+		if *delimiterFlag != "" {
+			for key, value := range charsets {
+				if strings.ContainsAny(*delimiterFlag, value) {
+					*dictSizeFlag += len(value)
+					usedCharsets = append(usedCharsets, key)
+				}
+			}
+		}
 		entropy := math.Log2(math.Pow(float64(*dictSizeFlag), float64(*wordsFlag)))
 		fmt.Println("\nPassphrase entropy:", entropy)
 	}
@@ -89,6 +106,7 @@ func main() {
 			randomCommand.Usage()
 			return
 		}
+
 		passphraseLength := len(*randomPassphraseFlag)
 
 		for key, value := range charsets {
@@ -105,10 +123,12 @@ func main() {
 		fmt.Println("\nPassphrase entropy:", entropy)
 	}
 
-	if insecureCommand.Parsed() {
-		if *insecureWords != 0 {
-			insecureCommand.Usage()
+	if inventedCommand.Parsed() {
+
+		if *inventedWords != 0 {
+			inventedCommand.Usage()
 			return
 		}
+		fmt.Println("Calc entropy here")
 	}
 }