libosmogsm 1.9.0.196-9975
Osmocom GSM library
auth_core.c File Reference
#include "config.h"
#include <errno.h>
#include <stdint.h>
#include <string.h>
#include <osmocom/core/utils.h>
#include <osmocom/core/linuxlist.h>
#include <osmocom/core/plugin.h>
#include <osmocom/crypt/auth.h>

Functions

static LLIST_HEAD (osmo_auths)
 
static int auth_data2auth_data2 (struct osmo_sub_auth_data2 *out, const struct osmo_sub_auth_data *in)
 
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...
 
static void c5_function (uint8_t *ik, const uint8_t *kc)
 
void osmo_c4 (uint8_t *ck, const uint8_t *kc)
 
int osmo_auth_3g_from_2g (struct osmo_auth_vector *vec)
 Generate 3G CK + IK from 2G 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 (struct osmo_auth_vector *vec, struct osmo_sub_auth_data *aud, const uint8_t *_rand)
 Generate authentication vector. 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_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...
 
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

static struct osmo_auth_implselected_auths [_OSMO_AUTH_ALG_NUM]
 
static const struct value_string auth_alg_vals []
 
const struct value_string osmo_sub_auth_type_names []