@@ -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') {
Disable terminal echo using tcgetattr() and tcsetattr() when reading passphrase from stdin. Signed-off-by: Abhiram V <abhi.raa.man.v@gmail.com> --- wpa_supplicant/wpa_passphrase.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)