NAN: Store PMK from sta_preset_testparameters

This is needed for following NAN operations.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
diff --git a/nan.c b/nan.c
index 5ce3937..6249580 100644
--- a/nan.c
+++ b/nan.c
@@ -191,6 +191,7 @@
 				      struct sigma_cmd *cmd)
 {
 	const char *oper_chan = get_param(cmd, "oper_chn");
+	const char *pmk = get_param(cmd, "PMK");
 
 	if (oper_chan) {
 		sigma_dut_print(dut, DUT_MSG_INFO, "Operating Channel: %s",
@@ -198,6 +199,22 @@
 		dut->sta_channel = atoi(oper_chan);
 	}
 
+	if (pmk) {
+		int pmk_len;
+
+		sigma_dut_print(dut, DUT_MSG_INFO, "%s given string pmk: %s",
+				__func__, pmk);
+		memset(dut->nan_pmk, 0, NAN_PMK_INFO_LEN);
+		dut->nan_pmk_len = 0;
+		pmk_len = NAN_PMK_INFO_LEN;
+		nan_parse_hex_string(dut, &pmk[2], &dut->nan_pmk[0], &pmk_len);
+		dut->nan_pmk_len = pmk_len;
+		sigma_dut_print(dut, DUT_MSG_INFO, "%s: pmk len = %d",
+				__func__, dut->nan_pmk_len);
+		sigma_dut_print(dut, DUT_MSG_INFO, "%s:hex pmk", __func__);
+		nan_hex_dump(dut, &dut->nan_pmk[0], dut->nan_pmk_len);
+	}
+
 	send_resp(dut, conn, SIGMA_COMPLETE, NULL);
 	return 0;
 }
@@ -1174,6 +1191,8 @@
 	is_fam = 0;
 	event_anyresponse = 0;
 	global_dut = dut;
+	memset(&dut->nan_pmk[0], 0, NAN_PMK_INFO_LEN);
+	dut->nan_pmk_len = 0;
 	dut->sta_channel = 0;
 	memset(global_event_resp_buf, 0, sizeof(global_event_resp_buf));