diff --git a/include/osmocom/crypt/gprs_cipher.h b/include/osmocom/crypt/gprs_cipher.h index d6edefaf4..9d98f88ac 100644 --- a/include/osmocom/crypt/gprs_cipher.h +++ b/include/osmocom/crypt/gprs_cipher.h @@ -1,6 +1,7 @@ #pragma once #include +#include #define GSM0464_CIPH_MAX_BLOCK 1523 @@ -18,6 +19,8 @@ enum gprs_cipher_direction { GPRS_CIPH_SGSN2MS, }; +extern const struct value_string gprs_cipher_names[]; + /* An implementation of a GPRS cipher */ struct gprs_cipher_impl { struct llist_head list; diff --git a/src/gsm/gprs_cipher_core.c b/src/gsm/gprs_cipher_core.c index e4fac04bc..8f020b388 100644 --- a/src/gsm/gprs_cipher_core.c +++ b/src/gsm/gprs_cipher_core.c @@ -33,6 +33,15 @@ static LLIST_HEAD(gprs_ciphers); static struct gprs_cipher_impl *selected_ciphers[_GPRS_ALGO_NUM]; +const struct value_string gprs_cipher_names[] = { + { GPRS_ALGO_GEA0, "GEA0" }, + { GPRS_ALGO_GEA1, "GEA1" }, + { GPRS_ALGO_GEA2, "GEA2" }, + { GPRS_ALGO_GEA3, "GEA3" }, + { GPRS_ALGO_GEA4, "GEA4" }, + { 0, NULL }, +}; + /* register a cipher with the core */ int gprs_cipher_register(struct gprs_cipher_impl *ciph) { diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index ea2101c9a..ebeabcdcd 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -39,6 +39,7 @@ gprs_cipher_gen_input_ui; gprs_cipher_load; gprs_cipher_register; gprs_cipher_run; +gprs_cipher_names; gprs_cipher_supported; gprs_cipher_key_length; gprs_tlli_type;