|
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 |