Disable terminal echo using tcgetattr() and tcsetattr() when reading passphrase from stdin. Signed-off-by: Abhiram V <abhi.raa.man.v@xxxxxxxxx> --- wpa_supplicant/wpa_passphrase.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/wpa_supplicant/wpa_passphrase.c b/wpa_supplicant/wpa_passphrase.c index d9c07e673..4f185da5b 100644 --- a/wpa_supplicant/wpa_passphrase.c +++ b/wpa_supplicant/wpa_passphrase.c @@ -10,10 +10,12 @@ #include "common.h" #include "crypto/sha1.h" +#include <termios.h> int main(int argc, char *argv[]) { + struct termios term; unsigned char psk[32]; int i; char *ssid, *passphrase, buf[64], *pos; @@ -32,10 +34,24 @@ int main(int argc, char *argv[]) passphrase = argv[2]; } else { fprintf(stderr, "# reading passphrase from stdin\n"); + if (tcgetattr(STDIN_FILENO, &term) < 0) { + perror("tcgetattr"); + return 1; + } + term.c_lflag &= ~ECHO; + if (tcsetattr(STDIN_FILENO, TCSANOW, &term) < 0) { + perror("tcsetattr:error disabling echo"); + return 1; + } if (fgets(buf, sizeof(buf), stdin) == NULL) { fprintf(stderr, "Failed to read passphrase\n"); return 1; } + term.c_cflag |= ECHO; + if (tcsetattr(STDIN_FILENO, TCSANOW, &term) < 0) { + perror("tcsetattr:error enabling echo"); + return 1; + } buf[sizeof(buf) - 1] = '\0'; pos = buf; while (*pos != '\0') { -- 2.38.1 _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap