GNU Radio's GSM Package
|
Files | |
file | auth.h |
Classes | |
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 |
Enumerations | |
enum | osmo_sub_auth_type { OSMO_AUTH_TYPE_NONE = 0x00, OSMO_AUTH_TYPE_GSM = 0x01, OSMO_AUTH_TYPE_UMTS = 0x02 } |
enum | osmo_auth_algo { OSMO_AUTH_ALG_NONE, OSMO_AUTH_ALG_COMP128v1, OSMO_AUTH_ALG_COMP128v2, OSMO_AUTH_ALG_COMP128v3, OSMO_AUTH_ALG_XOR, OSMO_AUTH_ALG_MILENAGE, _OSMO_AUTH_ALG_NUM } |
Functions | |
int | osmo_auth_gen_vec (struct osmo_auth_vector *vec, struct osmo_sub_auth_data *aud, const uint8_t *_rand) |
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) |
int | osmo_auth_register (struct osmo_auth_impl *impl) |
int | osmo_auth_load (const char *path) |
int | osmo_auth_supported (enum osmo_auth_algo algo) |
void | osmo_c4 (uint8_t *ck, const uint8_t *kc) |
const char * | osmo_auth_alg_name (enum osmo_auth_algo alg) |
void | osmo_auth_c3 (uint8_t kc[], const uint8_t ck[], const uint8_t ik[]) |
#define OSMO_A5_MAX_KEY_LEN_BYTES (128/8) |
#define OSMO_MILENAGE_IND_BITLEN_MAX 28 |
enum osmo_auth_algo |
Authentication Algorithm. See also osmo_auth_alg_name() and osmo_auth_alg_parse().
Enumerator | |
---|---|
OSMO_AUTH_ALG_NONE | |
OSMO_AUTH_ALG_COMP128v1 | |
OSMO_AUTH_ALG_COMP128v2 | |
OSMO_AUTH_ALG_COMP128v3 | |
OSMO_AUTH_ALG_XOR | |
OSMO_AUTH_ALG_MILENAGE | |
_OSMO_AUTH_ALG_NUM |
enum osmo_sub_auth_type |
const char* osmo_auth_alg_name | ( | enum osmo_auth_algo | alg | ) |
void osmo_auth_c3 | ( | uint8_t | kc[], |
const uint8_t | ck[], | ||
const uint8_t | ik[] | ||
) |
int osmo_auth_gen_vec | ( | struct osmo_auth_vector * | vec, |
struct osmo_sub_auth_data * | aud, | ||
const uint8_t * | _rand | ||
) |
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 | ||
) |
int osmo_auth_load | ( | const char * | path | ) |
int osmo_auth_register | ( | struct osmo_auth_impl * | impl | ) |
int osmo_auth_supported | ( | enum osmo_auth_algo | algo | ) |
void osmo_c4 | ( | uint8_t * | ck, |
const uint8_t * | kc | ||
) |
enum osmo_auth_algo osmo_auth_impl::algo |
algorithm we implement
enum osmo_auth_algo osmo_sub_auth_data::algo |
uint8_t osmo_sub_auth_data::amf[2] |
uint8_t { ... } ::amf[2] |
uint32_t osmo_auth_vector::auth_types |
bitmask of OSMO_AUTH_TYPE_*
uint8_t osmo_auth_vector::autn[16] |
authentication nonce
uint8_t osmo_auth_vector::ck[16] |
ciphering key
int(* osmo_auth_impl::gen_vec) (struct osmo_auth_vector *vec, struct osmo_sub_auth_data *aud, const uint8_t *_rand) |
callback for generate authentication vectors
int(* osmo_auth_impl::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) |
struct { ... } ::gsm |
struct { ... } osmo_sub_auth_data::gsm |
uint8_t osmo_auth_vector::ik[16] |
integrity key
unsigned int osmo_sub_auth_data::ind |
which IND slot to use an SQN from
unsigned { ... } ::ind |
which IND slot to use an SQN from
unsigned int osmo_sub_auth_data::ind_bitlen |
nr of bits not in SEQ, only SQN
unsigned { ... } ::ind_bitlen |
nr of bits not in SEQ, only SQN
uint8_t { ... } ::k[16] |
secret key of the subscriber
uint8_t osmo_sub_auth_data::k[16] |
secret key of the subscriber
uint8_t osmo_auth_vector::kc[8] |
Kc for GSM encryption (A5)
uint8_t osmo_sub_auth_data::ki[OSMO_A5_MAX_KEY_LEN_BYTES] |
secret key
uint8_t { ... } ::ki[OSMO_A5_MAX_KEY_LEN_BYTES] |
secret key
struct llist_head osmo_auth_impl::list |
const char* osmo_auth_impl::name |
name of the implementation
uint8_t osmo_sub_auth_data::opc[16] |
operator invariant value
uint8_t { ... } ::opc[16] |
operator invariant value
int osmo_sub_auth_data::opc_is_op |
is the OPC field OPC (0) or OP (1) ?
int { ... } ::opc_is_op |
is the OPC field OPC (0) or OP (1) ?
|
extern |
unsigned int osmo_auth_impl::priority |
priority value (resp. othe implementations
uint8_t osmo_auth_vector::rand[16] |
random challenge
uint8_t osmo_auth_vector::res[16] |
authentication result
uint8_t osmo_auth_vector::res_len |
length (in bytes) of res
uint64_t { ... } ::sqn |
sequence number (in: prev sqn; out: used sqn)
uint64_t osmo_sub_auth_data::sqn |
sequence number (in: prev sqn; out: used sqn)
uint64_t { ... } ::sqn_ms |
sqn from AUTS (output value only)
uint64_t osmo_sub_auth_data::sqn_ms |
sqn from AUTS (output value only)
uint8_t osmo_auth_vector::sres[4] |
authentication result for GSM
enum osmo_sub_auth_type osmo_sub_auth_data::type |
union { ... } osmo_sub_auth_data::u |
struct { ... } ::umts |
struct { ... } osmo_sub_auth_data::umts |