diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2019-07-31 15:21:19 +0200 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2019-08-05 23:24:47 +0200 |
commit | a4d7a7681696723ce8128bc0f039a354d1f001ab (patch) | |
tree | a4a2f8da9da28ab6b272d8e398e0cba1fbfc9950 /tests | |
parent | 75bdbbf45d549183eb4c87a84d5600aca178ca03 (diff) |
do not force encryption on UTRAN
Remove the conditions that always enable encryption on UTRAN.
We so far lack an explicit configuration for UTRAN encryption, and this patch
does not add any either. Instead, whether UTRAN encryption is enabled is simply
triggered on whether GERAN has A5 encryption enabled (A5/n with n > 0). Though
GERAN and UTRAN encryption are not technically related at all, this makes UTRAN
behave like GERAN for now, until we implement a proper separate configuration
for UTRAN encryption.
Adjust the msc_vlr_test_* configuration by setting the net->a5_encryption_mask
such that the expected output remains unchanged. A subsequent patch
(I54227f1f08c38c0bf69b9c48924669c4829b04b9) will add more tests, particularly
cases of UTRAN without encryption.
Adjust manual and vty doc.
Related: OS#2783
Change-Id: I04ecd7a3b1cc603b2e3feb630e8c7c93fc36ccd7
Diffstat (limited to 'tests')
-rw-r--r-- | tests/msc_vlr/msc_vlr_test_authen_reuse.c | 12 | ||||
-rw-r--r-- | tests/msc_vlr/msc_vlr_test_call.c | 1 | ||||
-rw-r--r-- | tests/msc_vlr/msc_vlr_test_umts_authen.c | 20 | ||||
-rw-r--r-- | tests/msc_vlr/msc_vlr_tests.h | 3 |
4 files changed, 36 insertions, 0 deletions
diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.c b/tests/msc_vlr/msc_vlr_test_authen_reuse.c index d73a5f8c5..62ea6c7b5 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.c +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.c @@ -266,6 +266,8 @@ static void _test_auth_reuse(enum osmo_rat_type via_ran, static void test_auth_use_twice_geran() { comment_start(); + /* A5/0 = no encryption */ + net->a5_encryption_mask = A5_0; _test_auth_reuse(OSMO_RAT_GERAN_A, 1, 1, true); comment_end(); } @@ -273,6 +275,8 @@ static void test_auth_use_twice_geran() static void test_auth_use_twice_utran() { comment_start(); + /* A5/0 + A5/3 = encryption enabled; so far the A5 setting also triggers UTRAN encryption */ + net->a5_encryption_mask = A5_0_3; _test_auth_reuse(OSMO_RAT_UTRAN_IU, 1, 1, true); comment_end(); } @@ -280,6 +284,8 @@ static void test_auth_use_twice_utran() static void test_auth_use_infinitely_geran() { comment_start(); + /* A5/0 = no encryption */ + net->a5_encryption_mask = A5_0; _test_auth_reuse(OSMO_RAT_GERAN_A, -1, 3, false); comment_end(); } @@ -287,6 +293,8 @@ static void test_auth_use_infinitely_geran() static void test_auth_use_infinitely_utran() { comment_start(); + /* A5/0 + A5/3 = encryption enabled; so far the A5 setting also triggers UTRAN encryption */ + net->a5_encryption_mask = A5_0_3; _test_auth_reuse(OSMO_RAT_UTRAN_IU, -1, 3, false); comment_end(); } @@ -294,6 +302,8 @@ static void test_auth_use_infinitely_utran() static void test_no_auth_reuse_geran() { comment_start(); + /* A5/0 = no encryption */ + net->a5_encryption_mask = A5_0; _test_auth_reuse(OSMO_RAT_GERAN_A, 0, 0, true); comment_end(); } @@ -301,6 +311,8 @@ static void test_no_auth_reuse_geran() static void test_no_auth_reuse_utran() { comment_start(); + /* A5/0 + A5/3 = encryption enabled; so far the A5 setting also triggers UTRAN encryption */ + net->a5_encryption_mask = A5_0_3; _test_auth_reuse(OSMO_RAT_UTRAN_IU, 0, 0, true); comment_end(); } diff --git a/tests/msc_vlr/msc_vlr_test_call.c b/tests/msc_vlr/msc_vlr_test_call.c index 065af2555..cec2f8da0 100644 --- a/tests/msc_vlr/msc_vlr_test_call.c +++ b/tests/msc_vlr/msc_vlr_test_call.c @@ -46,6 +46,7 @@ static void standard_lu() struct vlr_subscr *vsub; net->authentication_required = true; + net->a5_encryption_mask = A5_0_3; net->vlr->cfg.assign_tmsi = true; rx_from_ran = OSMO_RAT_UTRAN_IU; diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.c b/tests/msc_vlr/msc_vlr_test_umts_authen.c index a89b0d1ab..6f8fa01c3 100644 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.c +++ b/tests/msc_vlr/msc_vlr_test_umts_authen.c @@ -306,6 +306,8 @@ static void _test_umts_authen(enum osmo_rat_type via_ran) static void test_umts_authen_geran() { comment_start(); + /* A5/0 = no encryption */ + net->a5_encryption_mask = A5_0; _test_umts_authen(OSMO_RAT_GERAN_A); comment_end(); } @@ -313,6 +315,8 @@ static void test_umts_authen_geran() static void test_umts_authen_utran() { comment_start(); + /* A5/0 + A5/3 = encryption enabled; so far the A5 setting also triggers UTRAN encryption */ + net->a5_encryption_mask = A5_0_3; _test_umts_authen(OSMO_RAT_UTRAN_IU); comment_end(); } @@ -544,6 +548,8 @@ static void _test_umts_authen_resync(enum osmo_rat_type via_ran) static void test_umts_authen_resync_geran() { comment_start(); + /* A5/0 = no encryption */ + net->a5_encryption_mask = A5_0; _test_umts_authen_resync(OSMO_RAT_GERAN_A); comment_end(); } @@ -551,6 +557,8 @@ static void test_umts_authen_resync_geran() static void test_umts_authen_resync_utran() { comment_start(); + /* A5/0 + A5/3 = encryption enabled; so far the A5 setting also triggers UTRAN encryption */ + net->a5_encryption_mask = A5_0_3; _test_umts_authen_resync(OSMO_RAT_UTRAN_IU); comment_end(); } @@ -644,6 +652,8 @@ static void _test_umts_authen_too_short_res(enum osmo_rat_type via_ran) static void test_umts_authen_too_short_res_geran() { comment_start(); + /* A5/0 = no encryption */ + net->a5_encryption_mask = A5_0; _test_umts_authen_too_short_res(OSMO_RAT_GERAN_A); comment_end(); } @@ -651,6 +661,8 @@ static void test_umts_authen_too_short_res_geran() static void test_umts_authen_too_short_res_utran() { comment_start(); + /* A5/0 + A5/3 = encryption enabled; so far the A5 setting also triggers UTRAN encryption */ + net->a5_encryption_mask = A5_0_3; _test_umts_authen_too_short_res(OSMO_RAT_UTRAN_IU); comment_end(); } @@ -744,6 +756,8 @@ static void _test_umts_authen_too_long_res(enum osmo_rat_type via_ran) static void test_umts_authen_too_long_res_geran() { comment_start(); + /* A5/0 = no encryption */ + net->a5_encryption_mask = A5_0; _test_umts_authen_too_long_res(OSMO_RAT_GERAN_A); comment_end(); } @@ -751,6 +765,8 @@ static void test_umts_authen_too_long_res_geran() static void test_umts_authen_too_long_res_utran() { comment_start(); + /* A5/0 + A5/3 = encryption enabled; so far the A5 setting also triggers UTRAN encryption */ + net->a5_encryption_mask = A5_0_3; _test_umts_authen_too_long_res(OSMO_RAT_UTRAN_IU); comment_end(); } @@ -849,6 +865,8 @@ static void _test_umts_authen_only_sres(enum osmo_rat_type via_ran) static void test_umts_authen_only_sres_geran() { comment_start(); + /* A5/0 = no encryption */ + net->a5_encryption_mask = A5_0; _test_umts_authen_only_sres(OSMO_RAT_GERAN_A); comment_end(); } @@ -856,6 +874,8 @@ static void test_umts_authen_only_sres_geran() static void test_umts_authen_only_sres_utran() { comment_start(); + /* A5/0 + A5/3 = encryption enabled; so far the A5 setting also triggers UTRAN encryption */ + net->a5_encryption_mask = A5_0_3; _test_umts_authen_only_sres(OSMO_RAT_UTRAN_IU); comment_end(); } diff --git a/tests/msc_vlr/msc_vlr_tests.h b/tests/msc_vlr/msc_vlr_tests.h index 9df9cf049..4330ea869 100644 --- a/tests/msc_vlr/msc_vlr_tests.h +++ b/tests/msc_vlr/msc_vlr_tests.h @@ -32,6 +32,9 @@ #include <osmocom/msc/msc_a.h> #include <osmocom/msc/mncc.h> +#define A5_0 (1 << 0) +#define A5_0_3 ((1 << 0) | (1 << 3)) + extern bool _log_lines; #define _log(fmt, args...) do { \ if (_log_lines) \ |