26 #define MILENAGE_KI_SIZE 16
27 #define MILENAGE_OP_SIZE 16
28 #define MILENAGE_OPC_SIZE 16
29 #define MILENAGE_AMF_SIZE 2
30 #define MILENAGE_SQN_SIZE 6
31 #define MILENAGE_RAND_SIZE 16
36 #define MILENAGE_AK_SIZE 6
37 #define MILENAGE_AUTN_SIZE 16
38 #define MILENAGE_IK_SIZE 16
39 #define MILENAGE_CK_SIZE 16
40 #define MILENAGE_RES_SIZE 8
41 #define MILENAGE_AUTS_SIZE 14
46 #define MILENAGE_SRES_SIZE 4
47 #define MILENAGE_KC_SIZE 8
#define MILENAGE_AK_SIZE
Anonymisation key.
int milenage_umts_generate(uint8_t autn[MILENAGE_AUTN_SIZE], uint8_t ik[MILENAGE_IK_SIZE], uint8_t ck[MILENAGE_CK_SIZE], uint8_t ak[MILENAGE_AK_SIZE], uint8_t res[MILENAGE_RES_SIZE], uint8_t const opc[MILENAGE_OPC_SIZE], uint8_t const amf[MILENAGE_AMF_SIZE], uint8_t const ki[MILENAGE_KI_SIZE], uint64_t sqn, uint8_t const rand[MILENAGE_RAND_SIZE])
Generate AKA AUTN, IK, CK, RES.
#define MILENAGE_AMF_SIZE
Authentication management field.
#define MILENAGE_KI_SIZE
Subscriber key.
#define MILENAGE_RAND_SIZE
Random challenge.
int milenage_check(uint8_t ik[MILENAGE_IK_SIZE], uint8_t ck[MILENAGE_CK_SIZE], uint8_t res[MILENAGE_RES_SIZE], uint8_t auts[MILENAGE_AUTS_SIZE], uint8_t const opc[MILENAGE_OPC_SIZE], uint8_t const ki[MILENAGE_KI_SIZE], uint64_t sqn, uint8_t const rand[MILENAGE_RAND_SIZE], uint8_t const autn[MILENAGE_AUTN_SIZE])
Milenage check.
#define MILENAGE_AUTN_SIZE
Network authentication key.
#define MILENAGE_SRES_SIZE
#define MILENAGE_CK_SIZE
Ciphering key.
#define MILENAGE_OP_SIZE
Operator code (unique to the operator)
#define MILENAGE_IK_SIZE
Integrity key.
#define MILENAGE_AUTS_SIZE
int milenage_auts(uint64_t *sqn, uint8_t const opc[MILENAGE_OPC_SIZE], uint8_t const ki[MILENAGE_KI_SIZE], uint8_t const rand[MILENAGE_RAND_SIZE], uint8_t const auts[MILENAGE_AUTS_SIZE])
Milenage AUTS validation.
void milenage_gsm_from_umts(uint8_t sres[MILENAGE_SRES_SIZE], uint8_t kc[MILENAGE_KC_SIZE], uint8_t const ik[MILENAGE_IK_SIZE], uint8_t const ck[MILENAGE_CK_SIZE], uint8_t const res[MILENAGE_RES_SIZE])
Generate GSM-Milenage (3GPP TS 55.205) authentication triplet from a quintuplet.
#define MILENAGE_OPC_SIZE
Derived operator code (unique to the operator and subscriber).
int milenage_gsm_generate(uint8_t sres[MILENAGE_SRES_SIZE], uint8_t kc[MILENAGE_KC_SIZE], uint8_t const opc[MILENAGE_OPC_SIZE], uint8_t const ki[MILENAGE_KI_SIZE], uint8_t const rand[MILENAGE_RAND_SIZE])
Generate GSM-Milenage (3GPP TS 55.205) authentication triplet.
int milenage_opc_generate(uint8_t opc[MILENAGE_OPC_SIZE], uint8_t const op[MILENAGE_OP_SIZE], uint8_t const ki[MILENAGE_KI_SIZE])
Derive OPc from OP and Ki.
#define MILENAGE_RES_SIZE