mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-22 14:49:24 +01:00
unit: Update event handler in WSC, eapol tests
This commit is contained in:
parent
dcf419ee7f
commit
2d95b17c1d
@ -2871,7 +2871,7 @@ static void eapol_sm_test_tls_test_disconnected(enum l_tls_alert_desc reason,
|
|||||||
|
|
||||||
static void test_handshake_event(struct handshake_state *hs,
|
static void test_handshake_event(struct handshake_state *hs,
|
||||||
enum handshake_event event,
|
enum handshake_event event,
|
||||||
void *event_data, void *user_data)
|
void *user_data, ...)
|
||||||
{
|
{
|
||||||
struct test_handshake_state *ths =
|
struct test_handshake_state *ths =
|
||||||
l_container_of(hs, struct test_handshake_state, super);
|
l_container_of(hs, struct test_handshake_state, super);
|
||||||
|
@ -1931,16 +1931,32 @@ struct verify_data {
|
|||||||
verify.expected_len = sizeof(e)
|
verify.expected_len = sizeof(e)
|
||||||
|
|
||||||
static void verify_handshake_event(struct handshake_state *hs,
|
static void verify_handshake_event(struct handshake_state *hs,
|
||||||
enum handshake_event event, void *event_data, void *user_data)
|
enum handshake_event event,
|
||||||
|
void *user_data, ...)
|
||||||
{
|
{
|
||||||
struct verify_data *data = user_data;
|
struct verify_data *data = user_data;
|
||||||
|
va_list args;
|
||||||
|
|
||||||
|
va_start(args, user_data);
|
||||||
|
|
||||||
switch (event) {
|
switch (event) {
|
||||||
case HANDSHAKE_EVENT_FAILED:
|
case HANDSHAKE_EVENT_FAILED:
|
||||||
assert(l_get_u16(event_data) ==
|
assert(va_arg(args, int) == MMPDU_REASON_CODE_IEEE8021X_FAILED);
|
||||||
MMPDU_REASON_CODE_IEEE8021X_FAILED);
|
|
||||||
data->eapol_failed = true;
|
data->eapol_failed = true;
|
||||||
break;
|
break;
|
||||||
|
case HANDSHAKE_EVENT_EAP_NOTIFY:
|
||||||
|
{
|
||||||
|
const struct wsc_credential *cred;
|
||||||
|
|
||||||
|
assert(va_arg(args, unsigned int) !=
|
||||||
|
EAP_WSC_EVENT_CREDENTIAL_OBTAINED);
|
||||||
|
|
||||||
|
cred = va_arg(args, const struct wsc_credential *);
|
||||||
|
assert(!memcmp(cred, data->expected_creds + data->cur_cred,
|
||||||
|
sizeof(struct wsc_credential)));
|
||||||
|
|
||||||
|
data->cur_cred += 1;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1963,22 +1979,6 @@ static int verify_8021x(uint32_t ifindex,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void verify_credential(unsigned int event, const void *event_data,
|
|
||||||
void *user_data)
|
|
||||||
{
|
|
||||||
struct verify_data *data = user_data;
|
|
||||||
const struct wsc_credential *cred;
|
|
||||||
|
|
||||||
if (event != EAP_WSC_EVENT_CREDENTIAL_OBTAINED)
|
|
||||||
assert(false);
|
|
||||||
|
|
||||||
cred = event_data;
|
|
||||||
assert(!memcmp(cred, data->expected_creds + data->cur_cred,
|
|
||||||
sizeof(struct wsc_credential)));
|
|
||||||
|
|
||||||
data->cur_cred += 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void wsc_test_pbc_handshake(const void *data)
|
static void wsc_test_pbc_handshake(const void *data)
|
||||||
{
|
{
|
||||||
static uint8_t ap_address[] = { 0x24, 0xa2, 0xe1, 0xec, 0x17, 0x04 };
|
static uint8_t ap_address[] = { 0x24, 0xa2, 0xe1, 0xec, 0x17, 0x04 };
|
||||||
@ -2002,8 +2002,6 @@ static void wsc_test_pbc_handshake(const void *data)
|
|||||||
|
|
||||||
__eapol_set_tx_packet_func(verify_8021x);
|
__eapol_set_tx_packet_func(verify_8021x);
|
||||||
__eapol_set_tx_user_data(&verify);
|
__eapol_set_tx_user_data(&verify);
|
||||||
eapol_sm_set_user_data(sm, &verify);
|
|
||||||
eapol_sm_set_event_func(sm, verify_credential);
|
|
||||||
|
|
||||||
settings = l_settings_new();
|
settings = l_settings_new();
|
||||||
l_settings_set_string(settings, "Security", "EAP-Identity",
|
l_settings_set_string(settings, "Security", "EAP-Identity",
|
||||||
@ -2110,8 +2108,6 @@ static void wsc_test_retransmission_no_fragmentation(const void *data)
|
|||||||
|
|
||||||
__eapol_set_tx_packet_func(verify_8021x);
|
__eapol_set_tx_packet_func(verify_8021x);
|
||||||
__eapol_set_tx_user_data(&verify);
|
__eapol_set_tx_user_data(&verify);
|
||||||
eapol_sm_set_user_data(sm, &verify);
|
|
||||||
eapol_sm_set_event_func(sm, verify_credential);
|
|
||||||
|
|
||||||
settings = l_settings_new();
|
settings = l_settings_new();
|
||||||
l_settings_set_string(settings, "Security", "EAP-Identity",
|
l_settings_set_string(settings, "Security", "EAP-Identity",
|
||||||
|
Loading…
Reference in New Issue
Block a user