summaryrefslogtreecommitdiffstats
path: root/contrib/wpa_supplicant/wpa_passphrase.c
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2006-03-07 05:26:33 +0000
committersam <sam@FreeBSD.org>2006-03-07 05:26:33 +0000
commit840099f34d8de1ca769f02fae379c4d8e5d6688a (patch)
tree0c0ff34569d807e7bceb062a6210ce68490a8764 /contrib/wpa_supplicant/wpa_passphrase.c
parent34dbcde8dfa5b3d152d250b6d69965e001238e49 (diff)
downloadFreeBSD-src-840099f34d8de1ca769f02fae379c4d8e5d6688a.zip
FreeBSD-src-840099f34d8de1ca769f02fae379c4d8e5d6688a.tar.gz
Import of WPA supplicant 0.4.8
Diffstat (limited to 'contrib/wpa_supplicant/wpa_passphrase.c')
-rw-r--r--contrib/wpa_supplicant/wpa_passphrase.c31
1 files changed, 26 insertions, 5 deletions
diff --git a/contrib/wpa_supplicant/wpa_passphrase.c b/contrib/wpa_supplicant/wpa_passphrase.c
index 5a8203b..2a68cb5 100644
--- a/contrib/wpa_supplicant/wpa_passphrase.c
+++ b/contrib/wpa_supplicant/wpa_passphrase.c
@@ -1,6 +1,6 @@
/*
* WPA Supplicant - ASCII passphrase to WPA PSK tool
- * Copyright (c) 2003-2004, Jouni Malinen <jkmaline@cc.hut.fi>
+ * Copyright (c) 2003-2005, Jouni Malinen <jkmaline@cc.hut.fi>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -23,15 +23,36 @@ int main(int argc, char *argv[])
{
unsigned char psk[32];
int i;
- char *ssid, *passphrase;
+ char *ssid, *passphrase, buf[64], *pos;
- if (argc != 3) {
- printf("usage: wpa_passphrase <ssid> <passphrase>\n");
+ if (argc < 2) {
+ printf("usage: wpa_passphrase <ssid> [passphrase]\n"
+ "\nIf passphrase is left out, it will be read from "
+ "stdin\n");
return 1;
}
ssid = argv[1];
- passphrase = argv[2];
+
+ if (argc > 2) {
+ passphrase = argv[2];
+ } else {
+ printf("# reading passphrase from stdin\n");
+ if (fgets(buf, sizeof(buf), stdin) == NULL) {
+ printf("Failed to read passphrase\n");
+ return 1;
+ }
+ buf[sizeof(buf) - 1] = '\0';
+ pos = buf;
+ while (*pos != '\0') {
+ if (*pos == '\r' || *pos == '\n') {
+ *pos = '\0';
+ break;
+ }
+ pos++;
+ }
+ passphrase = buf;
+ }
if (strlen(passphrase) < 8 || strlen(passphrase) > 63) {
printf("Passphrase must be 8..63 characters\n");
OpenPOWER on IntegriCloud