diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2017-12-18 02:06:44 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2017-12-18 05:18:11 +0100 |
commit | e3d72d782799700a0544b4fdd7b0bcb3d4a210cd (patch) | |
tree | 47fe09329f7800d48ca34ef3da2ec3efe5933e83 /src/libvlr/vlr.c | |
parent | 703638e79a7c78c5794acf6d1c15885e314354b2 (diff) |
cosmetic prep: publish vlr_use_umts_aka() decision
During Set Ciphering Mode on GERAN, it is required to know whether UMTS AKA is
used to decide which Kc to pick. Change static function is_umts_auth() into
public vlr_use_umts_aka(), so future patches can re-use it.
Prepares: If04e405426c55a81341747a9b450a69188525d5c
Change-Id: I85d784c62ecbabdb6186a3dae4dcd554e7921041
Diffstat (limited to 'src/libvlr/vlr.c')
-rw-r--r-- | src/libvlr/vlr.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index 16f365eba..55b8de006 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -1122,6 +1122,23 @@ int vlr_set_ciph_mode(struct vlr_instance *vlr, } } +/* Decide whether UMTS AKA should be used. + * UTRAN networks are by definition R99 capable, and the auth vector is required to contain UMTS AKA + * tokens. This is expected to be verified by the caller. On GERAN, UMTS AKA must be used iff MS and + * GERAN are R99 capable and UMTS AKA tokens are available. + * \param[in] vec Auth tokens (received from the HLR). + * \param[in] is_r99 True when BTS and GERAN are R99 capable. + * \returns true to use UMTS AKA, false to use pre-R99 GSM AKA. + */ +bool vlr_use_umts_aka(struct osmo_auth_vector *vec, bool is_r99) +{ + if (!is_r99) + return false; + if (!(vec->auth_types & OSMO_AUTH_TYPE_UMTS)) + return false; + return true; +} + void log_set_filter_vlr_subscr(struct log_target *target, struct vlr_subscr *vlr_subscr) { |