3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-12-21 03:22:51 +01:00

unit: Add parsing of wsc_credential

This commit is contained in:
Denis Kenzior 2016-08-31 22:36:50 -05:00
parent b67e3f26b5
commit 70d3a01bda

View File

@ -1720,8 +1720,28 @@ static const unsigned char m8_encrypted_settings[] = {
0x3b, 0x3b, 0xe7, 0x9e, 0x72, 0x06, 0x46, 0x3b, 0x3b, 0xe7, 0x9e, 0x72, 0x06, 0x46,
}; };
struct wsc_credential creds_1[1] = {
{
.ssid = "TestWPA",
.ssid_len = 7,
.auth_type = WSC_AUTHENTICATION_TYPE_WPA2_PERSONAL,
.encryption_type = WSC_ENCRYPTION_TYPE_AES,
.network_key = { 0x34, 0x36, 0x30, 0x34, 0x44, 0x30, 0x31, 0x46,
0x46, 0x44, 0x42, 0x30, 0x42, 0x32, 0x39, 0x32, 0x45,
0x33, 0x37, 0x37, 0x33, 0x32, 0x44, 0x44, 0x34, 0x45,
0x31, 0x31, 0x43, 0x32, 0x34, 0x30, 0x31, 0x31, 0x35,
0x34, 0x32, 0x38, 0x39, 0x41, 0x30, 0x39, 0x41, 0x33,
0x33, 0x41, 0x44, 0x37, 0x30, 0x34, 0x31, 0x37, 0x37,
0x41, 0x42, 0x30, 0x44, 0x31, 0x42, 0x37, 0x35, 0x38,
0x44, 0x30 },
.network_key_len = 64,
.addr = { 0xa0, 0xa8, 0xcd, 0x1c, 0x7e, 0xc9 },
},
};
struct m8_encrypted_settings_data { struct m8_encrypted_settings_data {
struct wsc_m8_encrypted_settings expected; struct wsc_m8_encrypted_settings expected;
struct wsc_credential *creds;
unsigned int n_creds; unsigned int n_creds;
const void *pdu; const void *pdu;
unsigned int len; unsigned int len;
@ -1730,6 +1750,7 @@ struct m8_encrypted_settings_data {
static const struct m8_encrypted_settings_data m8_encrypted_settings_data_1 = { static const struct m8_encrypted_settings_data m8_encrypted_settings_data_1 = {
.pdu = m8_encrypted_settings, .pdu = m8_encrypted_settings,
.len = sizeof(m8_encrypted_settings), .len = sizeof(m8_encrypted_settings),
.creds = creds_1,
.n_creds = 1, .n_creds = 1,
.expected = { .expected = {
.authenticator = { 0xe8, 0x3b, 0x3b, 0xe7, 0x9e, 0x72, .authenticator = { 0xe8, 0x3b, 0x3b, 0xe7, 0x9e, 0x72,
@ -1744,6 +1765,7 @@ static void wsc_test_parse_m8_encrypted_settings(const void *data)
const struct wsc_m8_encrypted_settings *expected = &test->expected; const struct wsc_m8_encrypted_settings *expected = &test->expected;
struct iovec creds[10]; struct iovec creds[10];
size_t n_creds = 10; size_t n_creds = 10;
size_t i;
int r; int r;
r = wsc_parse_m8_encrypted_settings(test->pdu, test->len, &m8es, r = wsc_parse_m8_encrypted_settings(test->pdu, test->len, &m8es,
@ -1760,6 +1782,23 @@ static void wsc_test_parse_m8_encrypted_settings(const void *data)
assert(n_creds == test->n_creds); assert(n_creds == test->n_creds);
for (i = 0; i < n_creds; i++) {
struct wsc_credential cred;
assert(!wsc_parse_credential(creds[i].iov_base,
creds[i].iov_len,
&cred));
assert(test->creds[i].ssid_len == cred.ssid_len);
assert(!memcmp(test->creds[i].ssid, cred.ssid, cred.ssid_len));
assert(test->creds[i].auth_type == cred.auth_type);
assert(test->creds[i].encryption_type == cred.encryption_type);
assert(test->creds[i].network_key_len == cred.network_key_len);
assert(!memcmp(test->creds[i].network_key, cred.network_key,
cred.network_key_len));
assert(!memcmp(test->creds[i].addr, cred.addr, 6));
}
assert(!memcmp(expected->authenticator, m8es.authenticator, 8)); assert(!memcmp(expected->authenticator, m8es.authenticator, 8));
} }