Parcourir la source

WPS: Moved mac_addr and uuid configuration into wps_context

There is no need to complicate EAPOL and EAP interfaces with WPS
specific parameters now that wps_context is passed through.
Jouni Malinen il y a 16 ans
Parent
commit
398cfbf6be

+ 0 - 4
src/eap_peer/eap.c

@@ -1178,10 +1178,6 @@ struct eap_sm * eap_peer_sm_init(void *eapol_ctx,
 	sm->eapol_cb = eapol_cb;
 	sm->msg_ctx = msg_ctx;
 	sm->ClientTimeout = 60;
-	if (conf->mac_addr)
-		os_memcpy(sm->mac_addr, conf->mac_addr, ETH_ALEN);
-	if (conf->uuid)
-		os_memcpy(sm->uuid, conf->uuid, 16);
 	sm->wps = conf->wps;
 
 	os_memset(&tlsconf, 0, sizeof(tlsconf));

+ 0 - 12
src/eap_peer/eap.h

@@ -245,18 +245,6 @@ struct eap_config {
 	 * Usually, path to opensc-pkcs11.so.
 	 */
 	const char *pkcs11_module_path;
-	/**
-	 * mac_addr - MAC address of the peer
-	 *
-	 * This is only used by EAP-WSC and can be left %NULL if not available.
-	 */
-	const u8 *mac_addr;
-	/**
-	 * uuid - Device UUID
-	 *
-	 * This is only used by EAP-WSC and can be left %NULL if not available.
-	 */
-	const u8 *uuid;
 	/**
 	 * wps - WPS context data
 	 *

+ 0 - 2
src/eap_peer/eap_i.h

@@ -333,8 +333,6 @@ struct eap_sm {
 	int num_rounds;
 	int force_disabled;
 
-	u8 mac_addr[ETH_ALEN];
-	u8 uuid[16];
 	struct wps_context *wps;
 };
 

+ 2 - 5
src/eap_peer/eap_wsc.c

@@ -162,7 +162,7 @@ static void * eap_wsc_init(struct eap_sm *sm)
 	cfg.authenticator = 0;
 	cfg.wps = wps;
 	cfg.registrar = registrar ? data->wps_ctx->registrar : NULL;
-	cfg.enrollee_mac_addr = sm->mac_addr;
+	cfg.enrollee_mac_addr = registrar ? NULL : wps->dev.mac_addr;
 
 	phase1 = eap_get_config_phase1(sm);
 	if (phase1 == NULL) {
@@ -192,10 +192,7 @@ static void * eap_wsc_init(struct eap_sm *sm)
 		return NULL;
 	}
 
-	if (registrar && wps)
-		os_memcpy(wps->uuid, sm->uuid, UUID_LEN);
-	else
-		cfg.uuid = sm->uuid;
+	cfg.uuid = registrar ? NULL : wps->uuid;
 	data->wps = wps_init(&cfg);
 	if (data->wps == NULL) {
 		os_free(data);

+ 0 - 2
src/eapol_supp/eapol_supp_sm.c

@@ -1804,8 +1804,6 @@ struct eapol_sm *eapol_sm_init(struct eapol_ctx *ctx)
 	conf.pkcs11_engine_path = ctx->pkcs11_engine_path;
 	conf.pkcs11_module_path = ctx->pkcs11_module_path;
 #endif /* EAP_TLS_OPENSSL */
-	conf.mac_addr = ctx->mac_addr;
-	conf.uuid = ctx->uuid;
 	conf.wps = ctx->wps;
 
 	sm->eap = eap_peer_sm_init(sm, &eapol_cb, sm->ctx->msg_ctx, &conf);

+ 0 - 13
src/eapol_supp/eapol_supp_sm.h

@@ -199,19 +199,6 @@ struct eapol_ctx {
 	 */
 	const char *pkcs11_module_path;
 #endif /* EAP_TLS_OPENSSL */
-	/**
-	 * mac_addr - MAC address of the peer
-	 *
-	 * This is only used by EAP-WSC and can be left %NULL if not available.
-	 */
-	const u8 *mac_addr;
-
-	/**
-	 * uuid - Device UUID
-	 *
-	 * This is only used by EAP-WSC and can be left %NULL if not available.
-	 */
-	const u8 *uuid;
 
 	/**
 	 * wps - WPS context data

+ 0 - 1
src/rsn_supp/preauth.c

@@ -223,7 +223,6 @@ int rsn_preauth_init(struct wpa_sm *sm, const u8 *dst,
 	ctx->eapol_send_ctx = sm;
 	ctx->set_config_blob = sm->ctx->set_config_blob;
 	ctx->get_config_blob = sm->ctx->get_config_blob;
-	ctx->mac_addr = sm->own_addr;
 
 	sm->preauth_eapol = eapol_sm_init(ctx);
 	if (sm->preauth_eapol == NULL) {

+ 0 - 2
wpa_supplicant/wpas_glue.c

@@ -558,8 +558,6 @@ int wpa_supplicant_init_eapol(struct wpa_supplicant *wpa_s)
 	ctx->pkcs11_engine_path = wpa_s->conf->pkcs11_engine_path;
 	ctx->pkcs11_module_path = wpa_s->conf->pkcs11_module_path;
 #endif /* EAP_TLS_OPENSSL */
-	ctx->mac_addr = wpa_s->own_addr;
-	ctx->uuid = wpa_s->conf->uuid;
 	ctx->wps = wpa_s->wps;
 	ctx->eap_param_needed = wpa_supplicant_eap_param_needed;
 	ctx->cb = wpa_supplicant_eapol_cb;

+ 2 - 0
wpa_supplicant/wps_supplicant.c

@@ -197,6 +197,8 @@ int wpas_wps_init(struct wpa_supplicant *wpa_s)
 	wps->dev.categ = WPS_DEV_COMPUTER;
 	wps->dev.oui = WPS_DEV_OUI_WFA;
 	wps->dev.sub_categ = WPS_DEV_COMPUTER_PC;
+	os_memcpy(wps->dev.mac_addr, wpa_s->own_addr, ETH_ALEN);
+	os_memcpy(wps->uuid, wpa_s->conf->uuid, 16);
 
 	wpa_s->wps = wps;