12 #define OSMO_A5_MAX_KEY_LEN_BYTES (128/8) 13 #define OSMO_MILENAGE_IND_BITLEN_MAX 28 41 #define OSMO_AUTH_ALG_XOR OSMO_AUTH_ALG_XOR_3G 111 const uint8_t *_rand);
116 const uint8_t *auts,
const uint8_t *rand_auts,
117 const uint8_t *_rand);
129 const uint8_t *auts,
const uint8_t *rand_auts,
130 const uint8_t *_rand)
135 const uint8_t *auts,
const uint8_t *rand_auts,
136 const uint8_t *_rand);
143 void osmo_c4(uint8_t *ck,
const uint8_t *kc);
147 void osmo_auth_c3(uint8_t kc[],
const uint8_t ck[],
const uint8_t ik[]);
148 void osmo_auth_c2(uint8_t
sres[4],
const uint8_t *res,
size_t res_len, uint8_t sres_deriv_func);
uint8_t amf[2]
Definition: auth.h:54
const char * name
name of the implementation
Definition: auth.h:105
uint8_t opc[32]
operator invariant value
Definition: auth.h:50
const char * get_value_string(const struct value_string *vs, uint32_t val)
uint8_t ki[OSMO_A5_MAX_KEY_LEN_BYTES]
secret key
Definition: auth.h:62
void osmo_auth_c3(uint8_t kc[], const uint8_t ck[], const uint8_t ik[])
Definition: auth_core.c:360
int opc_is_op
is the OPC field OPC (0) or OP (1) ?
Definition: auth.h:56
uint8_t k_len
K length (in bytes): 16 or 32.
Definition: auth.h:53
struct osmo_sub_auth_data2::@108::@109 umts
uint8_t k[32]
secret key of the subscriber
Definition: auth.h:52
uint64_t sqn_ms
sqn from AUTS (output value only)
Definition: auth.h:80
#define OSMO_A5_MAX_KEY_LEN_BYTES
Definition: auth.h:12
enum osmo_sub_auth_type type
Definition: auth.h:45
unsigned int ind_bitlen
nr of bits not in SEQ, only SQN
Definition: auth.h:78
int osmo_auth_gen_vec2(struct osmo_auth_vector *vec, struct osmo_sub_auth_data2 *aud, const uint8_t *_rand)
Generate authentication vector.
Definition: auth_core.c:186
unsigned int priority
priority value (resp.
Definition: auth.h:106
int osmo_auth_gen_vec(struct osmo_auth_vector *vec, struct osmo_sub_auth_data *aud, const uint8_t *_rand) OSMO_DEPRECATED_OUTSIDE("Use osmo_auth_gen_vec2 instead")
Generate authentication vector.
Definition: auth_core.c:217
uint8_t res_len
length (in bytes) of res: 4..16 bytes
Definition: auth.h:95
osmo_auth_algo
Authentication Algorithm.
Definition: auth.h:28
void osmo_c4(uint8_t *ck, const uint8_t *kc)
Definition: auth_core.c:139
uint32_t auth_types
bitmask of OSMO_AUTH_TYPE_*
Definition: auth.h:98
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.
Definition: auth_core.c:373
unsigned int ind
which IND slot to use an SQN from
Definition: auth.h:79
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) OSMO_DEPRECATED_OUTSIDE("Use osmo_auth_gen_vec_auts2 instead")
Generate authentication vector and re-sync sequence.
Definition: auth_core.c:296
union osmo_sub_auth_data2::@108 u
uint64_t sqn
sequence number (in: prev sqn; out: used sqn)
Definition: auth.h:55
enum osmo_auth_algo osmo_auth_alg_parse(const char *name)
Parse human-readable name of authentication algorithm.
Definition: auth_core.c:342
const char * osmo_auth_alg_name(enum osmo_auth_algo alg)
Get human-readable name of authentication algorithm.
Definition: auth_core.c:336
uint8_t opc_len
OPc length (in bytes): 16 or 32.
Definition: auth.h:51
#define OSMO_DEPRECATED_OUTSIDE(text)
int osmo_auth_load(const char *path)
Load all available authentication plugins from the given path.
Definition: auth_core.c:98
unsigned int ind_bitlen
nr of bits not in SEQ, only SQN
Definition: auth.h:57
permanent (secret) subscriber auth data
Definition: auth.h:44
uint8_t sres[4]
Definition: gsm_04_08.h:806
unsigned int ind
which IND slot to use an SQN from
Definition: auth.h:58
uint64_t sqn
sequence number (in: prev sqn; out: used sqn)
Definition: auth.h:76
int opc_is_op
is the OPC field OPC (0) or OP (1) ?
Definition: auth.h:77
static const char * osmo_sub_auth_type_name(enum osmo_sub_auth_type val)
Definition: auth.h:23
uint64_t sqn_ms
sqn from AUTS (output value only)
Definition: auth.h:59
enum osmo_auth_algo algo
Definition: auth.h:46
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.
Definition: auth_core.c:261
osmo_sub_auth_type
Authentication Type (GSM/UMTS)
Definition: auth.h:16
int osmo_auth_supported(enum osmo_auth_algo algo)
Determine if a given authentication algorithm is supported.
Definition: auth_core.c:115
struct osmo_sub_auth_data2::@108::@110 gsm
const struct value_string osmo_sub_auth_type_names[]
Definition: auth_core.c:347
int osmo_auth_register(struct osmo_auth_impl *impl)
Register an authentication algorithm implementation with the core.
Definition: auth_core.c:77