netd: softap: Add passphrase to hex conversion
Change-Id: Ia9b141cb436336deec6d94af701e6d807baa2f99
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
diff --git a/SoftapController.cpp b/SoftapController.cpp
index b5a68e0..352c353 100644
--- a/SoftapController.cpp
+++ b/SoftapController.cpp
@@ -32,6 +32,7 @@
#include <cutils/log.h>
#include "SoftapController.h"
+#include "sha1.h"
SoftapController::SoftapController() {
mPid = 0;
@@ -175,8 +176,11 @@
* argv[9] - Max SCB
*/
int SoftapController::setSoftap(int argc, char *argv[]) {
+ unsigned char psk[MAX_SHA1_LEN];
+ char psk_str[2*MAX_SHA1_LEN+1];
struct iwreq wrq;
int fnum, ret, i = 0;
+ char *ssid;
if (mSock < 0) {
LOGE("Softap set - failed to open socket");
@@ -199,17 +203,24 @@
/* Create command line */
i = addParam(i, "ASCII_CMD", "AP_CFG");
if (argc > 4) {
- i = addParam(i, "SSID", argv[4]);
+ ssid = argv[4];
} else {
- i = addParam(i, "SSID", "AndroidAP");
+ ssid = (char *)"AndroidAP";
}
+ i = addParam(i, "SSID", ssid);
if (argc > 5) {
i = addParam(i, "SEC", argv[5]);
} else {
i = addParam(i, "SEC", "open");
}
if (argc > 6) {
- i = addParam(i, "KEY", argv[6]);
+ int j;
+ pbkdf2_sha1(argv[6], ssid, strlen(ssid), 4096, psk, MAX_SHA1_LEN);
+ for(j=0;(j < MAX_SHA1_LEN);j++) {
+ sprintf(&psk_str[j<<1], "%02x", psk[j]);
+ }
+ psk_str[j<<1] = '\0';
+ i = addParam(i, "KEY", psk_str);
} else {
i = addParam(i, "KEY", "12345678");
}