From 6d5a1fdf604c376a2e6bcde0ec3b0a77682db768 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 30 Apr 2017 23:45:20 +0200 Subject: Extract ask --- ask.go | 51 --------------------------------------------------- 1 file changed, 51 deletions(-) delete mode 100644 ask.go (limited to 'ask.go') diff --git a/ask.go b/ask.go deleted file mode 100644 index 574a645..0000000 --- a/ask.go +++ /dev/null @@ -1,51 +0,0 @@ -package signify - -import ( - "errors" - "os" - - "golang.org/x/crypto/ssh/terminal" -) - -var ( - ErrNoPassword = errors.New("please provide a password") - ErrNoMatch = errors.New("passwords don't match") -) - -func AskConfirmed() (string, error) { - pass, err := askPassword(os.Stdin, "passphrase: ") - if err != nil { - return "", err - } - pass2, err := askPassword(os.Stdin, "confirm passphrase: ") - if err != nil { - return "", err - } - if pass != pass2 { - return "", ErrNoMatch - } - return pass, nil -} - -func AskPassword() (string, error) { - return askPassword(os.Stdin, "passphrase: ") -} - -func askPassword(f *os.File, q string) (string, error) { - oldState, err := terminal.MakeRaw(int(f.Fd())) - if err != nil { - return "", err - } - defer terminal.Restore(int(f.Fd()), oldState) - - term := terminal.NewTerminal(f, "") - pass, err := term.ReadPassword(q) - if err != nil { - return "", err - } - if len(pass) == 0 { - return "", ErrNoPassword - } - - return pass, nil -} -- cgit v1.2.3