From 70112ee9de1e1d40e39d78498084fbc647f93a67 Mon Sep 17 00:00:00 2001
From: libby kent <viskovitzzz@gmail.com>
Date: Mon, 8 Jun 2020 18:55:51 +0900
Subject: [PATCH] cmd/ethkey: support --passwordfile in generate command
 (#21183)

---
 cmd/ethkey/changepassword.go | 2 +-
 cmd/ethkey/generate.go       | 2 +-
 cmd/ethkey/inspect.go        | 2 +-
 cmd/ethkey/message.go        | 2 +-
 cmd/ethkey/utils.go          | 4 ++--
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/cmd/ethkey/changepassword.go b/cmd/ethkey/changepassword.go
index 97a3047c6f..16b88ae6e5 100644
--- a/cmd/ethkey/changepassword.go
+++ b/cmd/ethkey/changepassword.go
@@ -51,7 +51,7 @@ Change the password of a keyfile.`,
 		}
 
 		// Decrypt key with passphrase.
-		passphrase := getPassphrase(ctx)
+		passphrase := getPassphrase(ctx, false)
 		key, err := keystore.DecryptKey(keyjson, passphrase)
 		if err != nil {
 			utils.Fatalf("Error decrypting key: %v", err)
diff --git a/cmd/ethkey/generate.go b/cmd/ethkey/generate.go
index 2b648b14a9..8a2038dd73 100644
--- a/cmd/ethkey/generate.go
+++ b/cmd/ethkey/generate.go
@@ -94,7 +94,7 @@ If you want to encrypt an existing private key, it can be specified by setting
 		}
 
 		// Encrypt key with passphrase.
-		passphrase := promptPassphrase(true)
+		passphrase := getPassphrase(ctx, true)
 		scryptN, scryptP := keystore.StandardScryptN, keystore.StandardScryptP
 		if ctx.Bool("lightkdf") {
 			scryptN, scryptP = keystore.LightScryptN, keystore.LightScryptP
diff --git a/cmd/ethkey/inspect.go b/cmd/ethkey/inspect.go
index 4cf7e8f011..63ebf1d6f8 100644
--- a/cmd/ethkey/inspect.go
+++ b/cmd/ethkey/inspect.go
@@ -60,7 +60,7 @@ make sure to use this feature with great caution!`,
 		}
 
 		// Decrypt key with passphrase.
-		passphrase := getPassphrase(ctx)
+		passphrase := getPassphrase(ctx, false)
 		key, err := keystore.DecryptKey(keyjson, passphrase)
 		if err != nil {
 			utils.Fatalf("Error decrypting key: %v", err)
diff --git a/cmd/ethkey/message.go b/cmd/ethkey/message.go
index 2d85e8edeb..3429fa9313 100644
--- a/cmd/ethkey/message.go
+++ b/cmd/ethkey/message.go
@@ -62,7 +62,7 @@ To sign a message contained in a file, use the --msgfile flag.
 		}
 
 		// Decrypt key with passphrase.
-		passphrase := getPassphrase(ctx)
+		passphrase := getPassphrase(ctx, false)
 		key, err := keystore.DecryptKey(keyjson, passphrase)
 		if err != nil {
 			utils.Fatalf("Error decrypting key: %v", err)
diff --git a/cmd/ethkey/utils.go b/cmd/ethkey/utils.go
index bc46b71b63..0f3c39c298 100644
--- a/cmd/ethkey/utils.go
+++ b/cmd/ethkey/utils.go
@@ -52,7 +52,7 @@ func promptPassphrase(confirmation bool) string {
 // getPassphrase obtains a passphrase given by the user.  It first checks the
 // --passfile command line flag and ultimately prompts the user for a
 // passphrase.
-func getPassphrase(ctx *cli.Context) string {
+func getPassphrase(ctx *cli.Context, confirmation bool) string {
 	// Look for the --passwordfile flag.
 	passphraseFile := ctx.String(passphraseFlag.Name)
 	if passphraseFile != "" {
@@ -65,7 +65,7 @@ func getPassphrase(ctx *cli.Context) string {
 	}
 
 	// Otherwise prompt the user for the passphrase.
-	return promptPassphrase(false)
+	return promptPassphrase(confirmation)
 }
 
 // signHash is a helper function that calculates a hash for the given message
-- 
GitLab