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

Go to the source code of this file.

Data Structures

struct  osmo_sub_auth_data2
 permanent (secret) subscriber auth data More...
 
struct  osmo_sub_auth_data
 
struct  osmo_auth_vector
 
struct  osmo_auth_impl
 

Macros

#define OSMO_A5_MAX_KEY_LEN_BYTES   (128/8)
 
#define OSMO_MILENAGE_IND_BITLEN_MAX   28
 
#define OSMO_AUTH_ALG_XOR   OSMO_AUTH_ALG_XOR_3G
 

Enumerations

enum  osmo_sub_auth_type {
  OSMO_AUTH_TYPE_NONE = 0x00 ,
  OSMO_AUTH_TYPE_GSM = 0x01 ,
  OSMO_AUTH_TYPE_UMTS = 0x02
}
 Authentication Type (GSM/UMTS) More...
 
enum  osmo_auth_algo {
  OSMO_AUTH_ALG_NONE ,
  OSMO_AUTH_ALG_COMP128v1 ,
  OSMO_AUTH_ALG_COMP128v2 ,
  OSMO_AUTH_ALG_COMP128v3 ,
  OSMO_AUTH_ALG_XOR_3G ,
  OSMO_AUTH_ALG_MILENAGE ,
  OSMO_AUTH_ALG_XOR_2G ,
  OSMO_AUTH_ALG_TUAK ,
  _OSMO_AUTH_ALG_NUM
}
 Authentication Algorithm. More...
 

Functions

static const char * osmo_sub_auth_type_name (enum osmo_sub_auth_type val)
 
int osmo_auth_gen_vec (struct osmo_auth_vector *vec, struct osmo_sub_auth_data *aud, const uint8_t *_rand)
 Generate authentication vector. More...
 
int osmo_auth_gen_vec2 (struct osmo_auth_vector *vec, struct osmo_sub_auth_data2 *aud, const uint8_t *_rand)
 Generate authentication vector. More...
 
int osmo_auth_gen_vec_auts (struct osmo_auth_vector *vec, struct osmo_sub_auth_data *aud, const uint8_t *auts, const uint8_t *rand_auts, const uint8_t *_rand)
 Generate authentication vector and re-sync sequence. More...
 
int osmo_auth_gen_vec_auts2 (struct osmo_auth_vector *vec, struct osmo_sub_auth_data2 *aud, const uint8_t *auts, const uint8_t *rand_auts, const uint8_t *_rand)
 Generate authentication vector and re-sync sequence. More...
 
int osmo_auth_register (struct osmo_auth_impl *impl)
 Register an authentication algorithm implementation with the core. More...
 
int osmo_auth_load (const char *path)
 Load all available authentication plugins from the given path. More...
 
int osmo_auth_supported (enum osmo_auth_algo algo)
 Determine if a given authentication algorithm is supported. More...
 
void osmo_c4 (uint8_t *ck, const uint8_t *kc)
 
const char * osmo_auth_alg_name (enum osmo_auth_algo alg)
 Get human-readable name of authentication algorithm. More...
 
enum osmo_auth_algo osmo_auth_alg_parse (const char *name)
 Parse human-readable name of authentication algorithm. More...
 
void osmo_auth_c3 (uint8_t kc[], const uint8_t ck[], const uint8_t ik[])
 
void osmo_auth_c2 (uint8_t sres[4], const uint8_t *res, size_t res_len, uint8_t sres_deriv_func)
 Derive GSM SRES from UMTS [X]RES (auth function c2 from 3GPP TS 33.103 Section 6.8.1.2. More...
 

Variables

const struct value_string osmo_sub_auth_type_names []