Loading...
Searching...
No Matches
auth_core.c File Reference
GSM/GPRS/3G Authentication
`#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.
int | osmo_auth_load (const char *path)
| Load all available authentication plugins from the given path.
int | osmo_auth_supported (enum osmo_auth_algo algo)
| Determine if a given authentication algorithm is supported.
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.
int | osmo_auth_gen_vec2 (struct osmo_auth_vector *vec, struct osmo_sub_auth_data2 *aud, const uint8_t *_rand)
| Generate authentication vector.
int | osmo_auth_gen_vec (struct osmo_auth_vector *vec, struct osmo_sub_auth_data *aud, const uint8_t *_rand)
| Generate authentication vector.
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.
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.
const char * | osmo_auth_alg_name (enum osmo_auth_algo alg)
| Get human-readable name of authentication algorithm.
enum osmo_auth_algo | osmo_auth_alg_parse (const char *name)
| Parse human-readable name of authentication algorithm.
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.

## Variables

static struct osmo_auth_impl * | selected_auths [_OSMO_AUTH_ALG_NUM]
static const struct value_string | auth_alg_vals []
const struct value_string | osmo_sub_auth_type_names []