Browse Source

Add support to wpa_supplicant configuring eap_peer for client cert and CA
cert on smartcard, plus handling phase2 auth with smartcard same as phase1.

David Smith 17 years ago
parent
commit
61ee0f71bb
3 changed files with 20 additions and 0 deletions
  1. 10 0
      wpa_supplicant/config.c
  2. 5 0
      wpa_supplicant/config_file.c
  3. 5 0
      wpa_supplicant/config_winreg.c

+ 10 - 0
wpa_supplicant/config.c

@@ -1296,6 +1296,11 @@ static const struct parse_data ssid_fields[] = {
 	{ STR_KEYe(pin) },
 	{ STR_KEYe(pin) },
 	{ STRe(engine_id) },
 	{ STRe(engine_id) },
 	{ STRe(key_id) },
 	{ STRe(key_id) },
+	{ STRe(cert_id) },
+	{ STRe(ca_cert_id) },
+	{ STRe(key2_id) },
+	{ STRe(cert2_id) },
+	{ STRe(ca_cert2_id) },
 	{ INTe(engine) },
 	{ INTe(engine) },
 	{ INT(eapol_flags) },
 	{ INT(eapol_flags) },
 #endif /* IEEE8021X_EAPOL */
 #endif /* IEEE8021X_EAPOL */
@@ -1453,6 +1458,11 @@ static void eap_peer_config_free(struct eap_peer_config *eap)
 	os_free(eap->pin);
 	os_free(eap->pin);
 	os_free(eap->engine_id);
 	os_free(eap->engine_id);
 	os_free(eap->key_id);
 	os_free(eap->key_id);
+	os_free(eap->cert_id);
+	os_free(eap->ca_cert_id);
+	os_free(eap->key2_id);
+	os_free(eap->cert2_id);
+	os_free(eap->ca_cert2_id);
 	os_free(eap->otp);
 	os_free(eap->otp);
 	os_free(eap->pending_req_otp);
 	os_free(eap->pending_req_otp);
 	os_free(eap->pac_file);
 	os_free(eap->pac_file);

+ 5 - 0
wpa_supplicant/config_file.c

@@ -754,6 +754,11 @@ static void wpa_config_write_network(FILE *f, struct wpa_ssid *ssid)
 	STR(pin);
 	STR(pin);
 	STR(engine_id);
 	STR(engine_id);
 	STR(key_id);
 	STR(key_id);
+	STR(cert_id);
+	STR(ca_cert_id);
+	STR(key2_id);
+	STR(cert2_id);
+	STR(ca_cert2_id);
 	INTe(engine);
 	INTe(engine);
 	INT_DEF(eapol_flags, DEFAULT_EAPOL_FLAGS);
 	INT_DEF(eapol_flags, DEFAULT_EAPOL_FLAGS);
 #endif /* IEEE8021X_EAPOL */
 #endif /* IEEE8021X_EAPOL */

+ 5 - 0
wpa_supplicant/config_winreg.c

@@ -766,6 +766,11 @@ static int wpa_config_write_network(HKEY hk, struct wpa_ssid *ssid, int id)
 	STR(pin);
 	STR(pin);
 	STR(engine_id);
 	STR(engine_id);
 	STR(key_id);
 	STR(key_id);
+	STR(cert_id);
+	STR(ca_cert_id);
+	STR(key2_id);
+	STR(cert2_id);
+	STR(ca_cert2_id);
 	INTe(engine);
 	INTe(engine);
 	INT_DEF(eapol_flags, DEFAULT_EAPOL_FLAGS);
 	INT_DEF(eapol_flags, DEFAULT_EAPOL_FLAGS);
 #endif /* IEEE8021X_EAPOL */
 #endif /* IEEE8021X_EAPOL */