aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2010-03-13 16:28:15 (GMT)
committerJouni Malinen <j@w1.fi>2010-03-13 16:28:15 (GMT)
commit2a7e7f4e4a310823d4a0fc5252f39679a6b5d6b8 (patch)
tree1ff90fde6704d11219866186f717868ea7e72196 /src
parentfe1919856c3e564748c4601f27b0953d897beaee (diff)
downloadhostap-2a7e7f4e4a310823d4a0fc5252f39679a6b5d6b8.zip
hostap-2a7e7f4e4a310823d4a0fc5252f39679a6b5d6b8.tar.gz
hostap-2a7e7f4e4a310823d4a0fc5252f39679a6b5d6b8.tar.bz2
FT: Add driver op for marking a STA authenticated
This can be used with FT-over-DS where FT Action frame exchange triggers transition to State 2 (authenticated) without Authentication frame exchange.
Diffstat (limited to 'src')
-rw-r--r--src/drivers/driver.h1
-rw-r--r--src/rsn_supp/wpa.h1
-rw-r--r--src/rsn_supp/wpa_ft.c1
-rw-r--r--src/rsn_supp/wpa_i.h8
4 files changed, 11 insertions, 0 deletions
diff --git a/src/drivers/driver.h b/src/drivers/driver.h
index df35e5f..00ca97f 100644
--- a/src/drivers/driver.h
+++ b/src/drivers/driver.h
@@ -278,6 +278,7 @@ struct wpa_driver_auth_params {
const u8 *wep_key[4];
size_t wep_key_len[4];
int wep_tx_keyidx;
+ int local_state_change;
};
/**
diff --git a/src/rsn_supp/wpa.h b/src/rsn_supp/wpa.h
index 4dddee0..727e591 100644
--- a/src/rsn_supp/wpa.h
+++ b/src/rsn_supp/wpa.h
@@ -54,6 +54,7 @@ struct wpa_sm_ctx {
size_t ies_len);
int (*send_ft_action)(void *ctx, u8 action, const u8 *target_ap,
const u8 *ies, size_t ies_len);
+ int (*mark_authenticated)(void *ctx, const u8 *target_ap);
};
diff --git a/src/rsn_supp/wpa_ft.c b/src/rsn_supp/wpa_ft.c
index 556838b..2840d7a 100644
--- a/src/rsn_supp/wpa_ft.c
+++ b/src/rsn_supp/wpa_ft.c
@@ -628,6 +628,7 @@ int wpa_ft_process_response(struct wpa_sm *sm, const u8 *ies, size_t ies_len,
os_free(ft_ies);
}
+ wpa_sm_mark_authenticated(sm, bssid);
ret = wpa_ft_install_ptk(sm, bssid);
if (ret) {
/*
diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h
index bb774f9..fb80afd 100644
--- a/src/rsn_supp/wpa_i.h
+++ b/src/rsn_supp/wpa_i.h
@@ -225,6 +225,14 @@ static inline int wpa_sm_send_ft_action(struct wpa_sm *sm, u8 action,
return -1;
}
+static inline int wpa_sm_mark_authenticated(struct wpa_sm *sm,
+ const u8 *target_ap)
+{
+ if (sm->ctx->mark_authenticated)
+ return sm->ctx->mark_authenticated(sm->ctx->ctx, target_ap);
+ return -1;
+}
+
void wpa_eapol_key_send(struct wpa_sm *sm, const u8 *kck,
int ver, const u8 *dest, u16 proto,