aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auc
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2023-05-30 17:27:32 +0200
committerHarald Welte <laforge@osmocom.org>2023-06-14 14:53:04 +0200
commita854b487620f2916c891da2d01245cb8b2624907 (patch)
tree096b04515d3ca6fd82275c19c4820b021d2472b8 /tests/auc
parent91150802f83aabbb701aced555bd02f5c8c9f8ee (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.c58
-rw-r--r--tests/auc/gen_ts_55_205_test_sets/func_template.c11
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");