libosmogsm 1.9.0.196-9975
Osmocom GSM library
gprs_cipher.h File Reference
#include <osmocom/core/linuxlist.h>
#include <osmocom/core/utils.h>
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  gprs_cipher_impl
 

Macros

#define GSM0464_CIPH_MAX_BLOCK   1523
 

Enumerations

enum  gprs_ciph_algo {
  GPRS_ALGO_GEA0 = 0 ,
  GPRS_ALGO_GEA1 = 1 ,
  GPRS_ALGO_GEA2 = 2 ,
  GPRS_ALGO_GEA3 = 3 ,
  GPRS_ALGO_GEA4 = 4 ,
  _GPRS_ALGO_NUM
}
 
enum  gprs_cipher_direction {
  GPRS_CIPH_MS2SGSN = 0 ,
  GPRS_CIPH_SGSN2MS = 1
}
 

Functions

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)
 
int gprs_cipher_supported (enum gprs_ciph_algo algo)
 
unsigned gprs_cipher_key_length (enum gprs_ciph_algo algo)
 Obtain key lenght for given GPRS cipher. More...
 
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)
 

Variables

const struct value_string gprs_cipher_names []
 

Macro Definition Documentation

◆ GSM0464_CIPH_MAX_BLOCK

#define GSM0464_CIPH_MAX_BLOCK   1523

Enumeration Type Documentation

◆ gprs_ciph_algo

Enumerator
GPRS_ALGO_GEA0 
GPRS_ALGO_GEA1 
GPRS_ALGO_GEA2 
GPRS_ALGO_GEA3 
GPRS_ALGO_GEA4 
_GPRS_ALGO_NUM 

◆ gprs_cipher_direction

Enumerator
GPRS_CIPH_MS2SGSN 
GPRS_CIPH_SGSN2MS