Changeset 308 in code for trunk/cmd/sojuctl
- Timestamp:
- Jun 3, 2020, 1:51:56 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/cmd/sojuctl/main.go
r251 r308 2 2 3 3 import ( 4 "bufio" 4 5 "flag" 5 6 "fmt" … … 55 56 } 56 57 57 fmt.Printf("Password: ") 58 password, err := terminal.ReadPassword(int(os.Stdin.Fd())) 58 password, err := readPassword() 59 59 if err != nil { 60 60 log.Fatalf("failed to read password: %v", err) 61 61 } 62 fmt.Printf("\n")63 62 64 63 hashed, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost) … … 81 80 } 82 81 83 fmt.Printf("New password: ") 84 password, err := terminal.ReadPassword(int(os.Stdin.Fd())) 82 password, err := readPassword() 85 83 if err != nil { 86 log.Fatalf("failed to read newpassword: %v", err)84 log.Fatalf("failed to read password: %v", err) 87 85 } 88 fmt.Printf("\n")89 86 90 87 hashed, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost) … … 108 105 } 109 106 } 107 108 func readPassword() ([]byte, error) { 109 var password []byte 110 var err error 111 fd := int(os.Stdin.Fd()) 112 113 if terminal.IsTerminal(fd) { 114 fmt.Printf("Password: ") 115 password, err = terminal.ReadPassword(int(os.Stdin.Fd())) 116 if err != nil { 117 return nil, err 118 } 119 fmt.Printf("\n") 120 } else { 121 fmt.Fprintf(os.Stderr, "Warning: Reading password from stdin.\n") 122 scanner := bufio.NewScanner(os.Stdin) 123 scanner.Scan() 124 password = scanner.Bytes() 125 126 if len(password) == 0 { 127 return nil, fmt.Errorf("zero length password") 128 } 129 } 130 131 return password, nil 132 }
Note:
See TracChangeset
for help on using the changeset viewer.