1e28a4053SRui Paulo /* 2e28a4053SRui Paulo * UMTS AKA - Milenage algorithm (3GPP TS 35.205, .206, .207, .208) 3e28a4053SRui Paulo * Copyright (c) 2006-2007 <j@w1.fi> 4e28a4053SRui Paulo * 5*f05cddf9SRui Paulo * This software may be distributed under the terms of the BSD license. 6*f05cddf9SRui Paulo * See README for more details. 7e28a4053SRui Paulo */ 8e28a4053SRui Paulo 9e28a4053SRui Paulo #ifndef MILENAGE_H 10e28a4053SRui Paulo #define MILENAGE_H 11e28a4053SRui Paulo 12e28a4053SRui Paulo void milenage_generate(const u8 *opc, const u8 *amf, const u8 *k, 13e28a4053SRui Paulo const u8 *sqn, const u8 *_rand, u8 *autn, u8 *ik, 14e28a4053SRui Paulo u8 *ck, u8 *res, size_t *res_len); 15e28a4053SRui Paulo int milenage_auts(const u8 *opc, const u8 *k, const u8 *_rand, const u8 *auts, 16e28a4053SRui Paulo u8 *sqn); 17e28a4053SRui Paulo int gsm_milenage(const u8 *opc, const u8 *k, const u8 *_rand, u8 *sres, 18e28a4053SRui Paulo u8 *kc); 19e28a4053SRui Paulo int milenage_check(const u8 *opc, const u8 *k, const u8 *sqn, const u8 *_rand, 20e28a4053SRui Paulo const u8 *autn, u8 *ik, u8 *ck, u8 *res, size_t *res_len, 21e28a4053SRui Paulo u8 *auts); 22e28a4053SRui Paulo int milenage_f1(const u8 *opc, const u8 *k, const u8 *_rand, 23e28a4053SRui Paulo const u8 *sqn, const u8 *amf, u8 *mac_a, u8 *mac_s); 24e28a4053SRui Paulo int milenage_f2345(const u8 *opc, const u8 *k, const u8 *_rand, 25e28a4053SRui Paulo u8 *res, u8 *ck, u8 *ik, u8 *ak, u8 *akstar); 26e28a4053SRui Paulo 27e28a4053SRui Paulo #endif /* MILENAGE_H */ 28