diff --git a/unit/test-wsc.c b/unit/test-wsc.c index 01420d47..983570e2 100644 --- a/unit/test-wsc.c +++ b/unit/test-wsc.c @@ -1736,17 +1736,17 @@ static void wsc_test_build_m8(const void *data) } static const unsigned char m8_encrypted_settings[] = { - 0x10, 0x0e, 0x00, 0x6f, 0x10, 0x26, 0x00, 0x01, 0x00, 0x10, 0x45, 0x00, + 0x10, 0x0e, 0x00, 0x6a, 0x10, 0x26, 0x00, 0x01, 0x01, 0x10, 0x45, 0x00, 0x07, 0x54, 0x65, 0x73, 0x74, 0x57, 0x50, 0x41, 0x10, 0x03, 0x00, 0x02, - 0x00, 0x20, 0x10, 0x0f, 0x00, 0x02, 0x00, 0x08, 0x10, 0x28, 0x00, 0x01, - 0x00, 0x10, 0x27, 0x00, 0x40, 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, 0x10, 0x20, 0x00, - 0x06, 0xa0, 0xa8, 0xcd, 0x1c, 0x7e, 0xc9, 0x10, 0x1e, 0x00, 0x08, 0xe8, - 0x3b, 0x3b, 0xe7, 0x9e, 0x72, 0x06, 0x46, + 0x00, 0x20, 0x10, 0x0f, 0x00, 0x02, 0x00, 0x08, 0x10, 0x27, 0x00, 0x40, + 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, 0x10, 0x20, 0x00, 0x06, 0xa0, 0xa8, 0xcd, 0x1c, + 0x7e, 0xc9, 0x10, 0x1e, 0x00, 0x08, 0xe8, 0x3b, 0x3b, 0xe7, 0x9e, 0x72, + 0x06, 0x46, }; struct wsc_credential creds_1[1] = { @@ -1831,6 +1831,22 @@ static void wsc_test_parse_m8_encrypted_settings(const void *data) assert(!memcmp(expected->authenticator, m8es.authenticator, 8)); } +static void wsc_test_build_m8_encrypted_settings(const void *data) +{ + const struct m8_encrypted_settings_data *test = data; + uint8_t *out; + size_t out_len; + + out = wsc_build_m8_encrypted_settings(&test->expected, test->creds, + test->n_creds, &out_len); + assert(out); + + assert(out_len == test->len); + assert(!memcmp(test->pdu, out, test->len)); + + l_free(out); +} + static const unsigned char eap_wsc_done[] = { 0x01, 0x00, 0x00, 0x4a, 0x02, 0xab, 0x00, 0x4a, 0xfe, 0x00, 0x37, 0x2a, 0x00, 0x00, 0x00, 0x01, 0x05, 0x00, 0x10, 0x4a, 0x00, 0x01, 0x10, 0x10, @@ -2330,6 +2346,9 @@ int main(int argc, char *argv[]) l_test_add("/wsc/parse/m8 encrypted settings 1", wsc_test_parse_m8_encrypted_settings, &m8_encrypted_settings_data_1); + l_test_add("/wsc/build/m8 encrypted settings 1", + wsc_test_build_m8_encrypted_settings, + &m8_encrypted_settings_data_1); l_test_add("/wsc/parse/wsc_done 1", wsc_test_parse_wsc_done, &wsc_done_data_1);