diff options
author | Harald Welte <laforge@osmocom.org> | 2023-05-30 17:27:32 +0200 |
---|---|---|
committer | Harald Welte <laforge@osmocom.org> | 2023-06-14 14:53:04 +0200 |
commit | a854b487620f2916c891da2d01245cb8b2624907 (patch) | |
tree | 096b04515d3ca6fd82275c19c4820b021d2472b8 /tests/auc | |
parent | 91150802f83aabbb701aced555bd02f5c8c9f8ee (diff) |
Port to new libosmogsm 'struct osmo_sub_auth_data2'
libosmogsm has recently introdcued a 'struct osmo_sub_auth_data2' as
successor to 'struct osmo_sub_auth_data', together with updated
osmo_auth_gen_vec2/osmo_auth_gen_vec_auts2 API.
The rationale of this new API is to enable
* support for AKA algorithms which use K and/or OP[c] values of 256bit
(instead of the classic 128bit)
* support for RES length sizes of 4 and 16 bytes (instead of the classic
8 bytes)
This commit just jumps over to the new API without adding any related
functionality to osmo-hlr. The latter is left for subsequent commits.
Change-Id: I3207c7bfb73e9ff5471e5c26b66639549e4d48a2
Depends: libosmocore.git Ie775fedba4a3fa12314c0f7c8a369662ef6a40df
Diffstat (limited to 'tests/auc')
-rw-r--r-- | tests/auc/auc_test.c | 58 | ||||
-rw-r--r-- | tests/auc/gen_ts_55_205_test_sets/func_template.c | 11 |
2 files changed, 41 insertions, 28 deletions
diff --git a/tests/auc/auc_test.c b/tests/auc/auc_test.c index f39a5ad..5906720 100644 --- a/tests/auc/auc_test.c +++ b/tests/auc/auc_test.c @@ -116,14 +116,14 @@ int rand_get(uint8_t *rand, unsigned int len) /* Subscriber with 2G-only (COMP128v1) authentication data */ static void test_gen_vectors_2g_only(void) { - struct osmo_sub_auth_data aud2g; - struct osmo_sub_auth_data aud3g; + struct osmo_sub_auth_data2 aud2g; + struct osmo_sub_auth_data2 aud3g; struct osmo_auth_vector vec; int rc; comment_start(); - aud2g = (struct osmo_sub_auth_data){ + aud2g = (struct osmo_sub_auth_data2){ .type = OSMO_AUTH_TYPE_GSM, .algo = OSMO_AUTH_ALG_COMP128v1, }; @@ -131,7 +131,7 @@ static void test_gen_vectors_2g_only(void) osmo_hexparse("EB215756028D60E3275E613320AEC880", aud2g.u.gsm.ki, sizeof(aud2g.u.gsm.ki)); - aud3g = (struct osmo_sub_auth_data){ 0 }; + aud3g = (struct osmo_sub_auth_data2){ 0 }; next_rand("39fa2f4e3d523d8619a73b4f65c3e14d", true); @@ -179,14 +179,14 @@ static void test_gen_vectors_2g_only(void) * reflects the default configuration of sysmoUSIM-SJS1 */ static void test_gen_vectors_2g_plus_3g(void) { - struct osmo_sub_auth_data aud2g; - struct osmo_sub_auth_data aud3g; + struct osmo_sub_auth_data2 aud2g; + struct osmo_sub_auth_data2 aud3g; struct osmo_auth_vector vec; int rc; comment_start(); - aud2g = (struct osmo_sub_auth_data){ + aud2g = (struct osmo_sub_auth_data2){ .type = OSMO_AUTH_TYPE_GSM, .algo = OSMO_AUTH_ALG_COMP128v1, }; @@ -194,9 +194,11 @@ static void test_gen_vectors_2g_plus_3g(void) osmo_hexparse("EB215756028D60E3275E613320AEC880", aud2g.u.gsm.ki, sizeof(aud2g.u.gsm.ki)); - aud3g = (struct osmo_sub_auth_data){ + aud3g = (struct osmo_sub_auth_data2){ .type = OSMO_AUTH_TYPE_UMTS, .algo = OSMO_AUTH_ALG_MILENAGE, + .u.umts.k_len = 16, + .u.umts.opc_len = 16, .u.umts.sqn = 31, }; @@ -292,8 +294,8 @@ void _test_gen_vectors_3g_only__expect_vecs(struct osmo_auth_vector vecs[3]) * tuples are suitable for both 2G and 3G authentication */ static void test_gen_vectors_3g_only(void) { - struct osmo_sub_auth_data aud2g; - struct osmo_sub_auth_data aud3g; + struct osmo_sub_auth_data2 aud2g; + struct osmo_sub_auth_data2 aud3g; struct osmo_auth_vector vec; struct osmo_auth_vector vecs[3]; uint8_t auts[14]; @@ -302,11 +304,13 @@ static void test_gen_vectors_3g_only(void) comment_start(); - aud2g = (struct osmo_sub_auth_data){ 0 }; + aud2g = (struct osmo_sub_auth_data2){ 0 }; - aud3g = (struct osmo_sub_auth_data){ + aud3g = (struct osmo_sub_auth_data2){ .type = OSMO_AUTH_TYPE_UMTS, .algo = OSMO_AUTH_ALG_MILENAGE, + .u.umts.k_len = 16, + .u.umts.opc_len = 16, .u.umts.sqn = 31, }; @@ -466,18 +470,20 @@ static void test_gen_vectors_3g_only(void) * 2G and 3G authentication */ static void test_gen_vectors_3g_xor(void) { - struct osmo_sub_auth_data aud2g; - struct osmo_sub_auth_data aud3g; + struct osmo_sub_auth_data2 aud2g; + struct osmo_sub_auth_data2 aud3g; struct osmo_auth_vector vec; int rc; comment_start(); - aud2g = (struct osmo_sub_auth_data){ 0 }; + aud2g = (struct osmo_sub_auth_data2){ 0 }; - aud3g = (struct osmo_sub_auth_data){ + aud3g = (struct osmo_sub_auth_data2){ .type = OSMO_AUTH_TYPE_UMTS, .algo = OSMO_AUTH_ALG_XOR_3G, + .u.umts.k_len = 16, + .u.umts.opc_len = 16, .u.umts.sqn = 0, }; @@ -517,39 +523,43 @@ void test_gen_vectors_bad_args(void) int rc; int i; - struct osmo_sub_auth_data aud2g = { + struct osmo_sub_auth_data2 aud2g = { .type = OSMO_AUTH_TYPE_GSM, .algo = OSMO_AUTH_ALG_COMP128v1, }; - struct osmo_sub_auth_data aud3g = { + struct osmo_sub_auth_data2 aud3g = { .type = OSMO_AUTH_TYPE_UMTS, .algo = OSMO_AUTH_ALG_MILENAGE, + .u.umts.k_len = 16, + .u.umts.opc_len = 16, }; - struct osmo_sub_auth_data aud2g_noalg = { + struct osmo_sub_auth_data2 aud2g_noalg = { .type = OSMO_AUTH_TYPE_GSM, .algo = OSMO_AUTH_ALG_NONE, }; - struct osmo_sub_auth_data aud3g_noalg = { + struct osmo_sub_auth_data2 aud3g_noalg = { .type = OSMO_AUTH_TYPE_UMTS, .algo = OSMO_AUTH_ALG_NONE, + .u.umts.k_len = 16, + .u.umts.opc_len = 16, }; - struct osmo_sub_auth_data aud_notype = { + struct osmo_sub_auth_data2 aud_notype = { .type = OSMO_AUTH_TYPE_NONE, .algo = OSMO_AUTH_ALG_MILENAGE, }; - struct osmo_sub_auth_data no_aud = { + struct osmo_sub_auth_data2 no_aud = { .type = OSMO_AUTH_TYPE_NONE, .algo = OSMO_AUTH_ALG_NONE, }; struct { - struct osmo_sub_auth_data *aud2g; - struct osmo_sub_auth_data *aud3g; + struct osmo_sub_auth_data2 *aud2g; + struct osmo_sub_auth_data2 *aud3g; uint8_t *rand_auts; uint8_t *auts; const char *label; diff --git a/tests/auc/gen_ts_55_205_test_sets/func_template.c b/tests/auc/gen_ts_55_205_test_sets/func_template.c index c244dd8..f8b4097 100644 --- a/tests/auc/gen_ts_55_205_test_sets/func_template.c +++ b/tests/auc/gen_ts_55_205_test_sets/func_template.c @@ -24,18 +24,20 @@ static void {func_name}(void) {{ - struct osmo_sub_auth_data aud2g; - struct osmo_sub_auth_data aud3g; + struct osmo_sub_auth_data2 aud2g; + struct osmo_sub_auth_data2 aud3g; struct osmo_auth_vector vec; int rc; comment_start(); - aud2g = (struct osmo_sub_auth_data){{ 0 }}; + aud2g = (struct osmo_sub_auth_data2){{ 0 }}; - aud3g = (struct osmo_sub_auth_data){{ + aud3g = (struct osmo_sub_auth_data2){{ .type = OSMO_AUTH_TYPE_UMTS, .algo = OSMO_AUTH_ALG_MILENAGE, + .u.umts.k_len = 16, + .u.umts.opc_len = 16, .u.umts.sqn = 31, }}; @@ -48,6 +50,7 @@ static void {func_name}(void) fake_rand, sizeof(fake_rand)); vec = (struct osmo_auth_vector){{ {{0}} }}; + vec.res_len = 8; VERBOSE_ASSERT(aud3g.u.umts.sqn, == 31, "%"PRIu64); rc = auc_compute_vectors(&vec, 1, &aud2g, &aud3g, NULL, NULL); VERBOSE_ASSERT(rc, == 1, "%d"); |