libosmogsm
0.11.0-dirty
Osmocom GSM library
|
Functions | |
static | LLIST_HEAD (gprs_ciphers) |
int | gprs_cipher_register (struct gprs_cipher_impl *ciph) |
int | gprs_cipher_load (const char *path) |
int | gprs_cipher_run (uint8_t *out, uint16_t len, enum gprs_ciph_algo algo, uint8_t *kc, uint32_t iv, enum gprs_cipher_direction dir) |
unsigned | gprs_cipher_key_length (enum gprs_ciph_algo algo) |
Obtain key lenght for given GPRS cipher. | |
int | gprs_cipher_supported (enum gprs_ciph_algo algo) |
uint32_t | gprs_cipher_gen_input_ui (uint32_t iov_ui, uint8_t sapi, uint32_t lfn, uint32_t oc) |
uint32_t | gprs_cipher_gen_input_i (uint32_t iov_i, uint32_t lfn, uint32_t oc) |
static | __attribute__ ((constructor)) |
Variables | |
static struct gprs_cipher_impl * | selected_ciphers [_GPRS_ALGO_NUM] |
struct value_string | gprs_cipher_names [] |
static struct gprs_cipher_impl | gea3_impl |
static struct gprs_cipher_impl | gea4_impl |
static __attribute__ | ( | (constructor) | ) | [static] |
References gprs_cipher_register().
uint32_t gprs_cipher_gen_input_i | ( | uint32_t | iov_i, |
uint32_t | lfn, | ||
uint32_t | oc | ||
) |
uint32_t gprs_cipher_gen_input_ui | ( | uint32_t | iov_ui, |
uint8_t | sapi, | ||
uint32_t | lfn, | ||
uint32_t | oc | ||
) |
unsigned gprs_cipher_key_length | ( | enum gprs_ciph_algo | algo | ) |
Obtain key lenght for given GPRS cipher.
[in] | algo | Enum representive GPRS cipher |
References GPRS_ALGO_GEA0, GPRS_ALGO_GEA1, GPRS_ALGO_GEA2, GPRS_ALGO_GEA3, and GPRS_ALGO_GEA4.
Referenced by gea3().
int gprs_cipher_load | ( | const char * | path | ) |
References osmo_plugin_load_all().
int gprs_cipher_register | ( | struct gprs_cipher_impl * | ciph | ) |
References gprs_cipher_impl::algo, ARRAY_SIZE, gprs_cipher_impl::list, llist_add_tail(), and gprs_cipher_impl::priority.
Referenced by __attribute__().
int gprs_cipher_run | ( | uint8_t * | out, |
uint16_t | len, | ||
enum gprs_ciph_algo | algo, | ||
uint8_t * | kc, | ||
uint32_t | iv, | ||
enum gprs_cipher_direction | dir | ||
) |
References ARRAY_SIZE, GSM0464_CIPH_MAX_BLOCK, and gprs_cipher_impl::run.
int gprs_cipher_supported | ( | enum gprs_ciph_algo | algo | ) |
References ARRAY_SIZE.
static LLIST_HEAD | ( | gprs_ciphers | ) | [static] |
struct gprs_cipher_impl gea3_impl [static] |
{ .algo = GPRS_ALGO_GEA3, .name = "GEA3 (libosmogsm built-in)", .priority = 100, .run = &gea3, }
struct gprs_cipher_impl gea4_impl [static] |
{ .algo = GPRS_ALGO_GEA4, .name = "GEA4 (libosmogsm built-in)", .priority = 100, .run = &gea4, }
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 }, }
struct gprs_cipher_impl* selected_ciphers[_GPRS_ALGO_NUM] [static] |