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