diff --git a/include/osmocom/crypt/auth.h b/include/osmocom/crypt/auth.h index 2f2a8d33e..7064c9991 100644 --- a/include/osmocom/crypt/auth.h +++ b/include/osmocom/crypt/auth.h @@ -7,6 +7,7 @@ #include #include +#include #define OSMO_A5_MAX_KEY_LEN_BYTES (128/8) @@ -17,7 +18,12 @@ enum osmo_sub_auth_type { OSMO_AUTH_TYPE_UMTS = 0x02, }; -/*! Authentication Algorithm */ +extern const struct value_string osmo_sub_auth_type_names[]; +static inline const char *osmo_sub_auth_type_name(enum osmo_sub_auth_type val) +{ return get_value_string(osmo_sub_auth_type_names, val); } + +/*! Authentication Algorithm. + * See also osmo_auth_alg_name() and osmo_auth_alg_parse(). */ enum osmo_auth_algo { OSMO_AUTH_ALG_NONE, OSMO_AUTH_ALG_COMP128v1, diff --git a/src/gsm/auth_core.c b/src/gsm/auth_core.c index 415669599..738e86090 100644 --- a/src/gsm/auth_core.c +++ b/src/gsm/auth_core.c @@ -221,4 +221,11 @@ enum osmo_auth_algo osmo_auth_alg_parse(const char *name) return get_string_value(auth_alg_vals, name); } +const struct value_string osmo_sub_auth_type_names[] = { + { OSMO_AUTH_TYPE_NONE, "None" }, + { OSMO_AUTH_TYPE_GSM, "GSM" }, + { OSMO_AUTH_TYPE_UMTS, "UMTS" }, + { 0, NULL } +}; + /*! @} */ diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 5598859a9..a72db524b 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -339,6 +339,7 @@ osmo_auth_3g_from_2g; osmo_auth_load; osmo_auth_register; osmo_auth_supported; +osmo_sub_auth_type_names; osmo_rsl2sitype; osmo_sitype2rsl;