mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-25 09:39:25 +01:00
unit: Add basic test for ECC PWE-from-PT derivation
This commit is contained in:
parent
993a934803
commit
0815b85f22
@ -628,17 +628,6 @@ static void test_end_to_end(const void *arg)
|
|||||||
l_free(td2);
|
l_free(td2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static enum l_checksum_type ecc_hash_from_prime_len(size_t prime_len)
|
|
||||||
{
|
|
||||||
if (prime_len <= 256 / 8)
|
|
||||||
return L_CHECKSUM_SHA256;
|
|
||||||
|
|
||||||
if (prime_len <= 384 / 8)
|
|
||||||
return L_CHECKSUM_SHA384;
|
|
||||||
|
|
||||||
return L_CHECKSUM_SHA512;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void test_pt_pwe(const void *data)
|
static void test_pt_pwe(const void *data)
|
||||||
{
|
{
|
||||||
static const char *ssid = "byteme";
|
static const char *ssid = "byteme";
|
||||||
@ -757,7 +746,8 @@ static void test_pt_pwe(const void *data)
|
|||||||
curve = l_ecc_curve_from_ike_group(19);
|
curve = l_ecc_curve_from_ike_group(19);
|
||||||
assert(curve);
|
assert(curve);
|
||||||
|
|
||||||
hash = ecc_hash_from_prime_len(l_ecc_curve_get_scalar_bytes(curve));
|
hash = crypto_sae_hash_from_ecc_prime_len(CRYPTO_SAE_HASH_TO_ELEMENT,
|
||||||
|
l_ecc_curve_get_scalar_bytes(curve));
|
||||||
hash_len = l_checksum_digest_length(hash);
|
hash_len = l_checksum_digest_length(hash);
|
||||||
|
|
||||||
assert(hash_len == 32);
|
assert(hash_len == 32);
|
||||||
@ -866,9 +856,15 @@ static void test_pt_pwe(const void *data)
|
|||||||
assert(l_ecc_point_get_y(pwe, num, sizeof(num)) > 0);
|
assert(l_ecc_point_get_y(pwe, num, sizeof(num)) > 0);
|
||||||
assert(!memcmp(num, pwey_data, sizeof(pwey_data)));
|
assert(!memcmp(num, pwey_data, sizeof(pwey_data)));
|
||||||
|
|
||||||
l_ecc_point_free(pt);
|
|
||||||
l_ecc_scalar_free(val);
|
l_ecc_scalar_free(val);
|
||||||
|
|
||||||
|
p1 = crypto_derive_sae_pwe_from_pt_ecc(mac1, mac2, pt);
|
||||||
|
assert(p1);
|
||||||
|
assert(l_ecc_points_are_equal(p1, pwe));
|
||||||
|
l_ecc_point_free(p1);
|
||||||
|
|
||||||
l_ecc_point_free(pwe);
|
l_ecc_point_free(pwe);
|
||||||
|
l_ecc_point_free(pt);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
|
Loading…
Reference in New Issue
Block a user