blob: a91e946a764bb51ae4653cd5aac30128155a0a6c [file] [log] [blame]
Harald Welte781bd5d2011-12-06 22:23:52 +01001/*
2 * UMTS AKA - Milenage algorithm (3GPP TS 35.205, .206, .207, .208)
3 * Copyright (c) 2006-2007 <j@w1.fi>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 *
9 * Alternatively, this software may be distributed under the terms of BSD
10 * license.
11 *
12 * See README and COPYING for more details.
13 */
14
15#ifndef MILENAGE_H
16#define MILENAGE_H
17
18void milenage_generate(const u8 *opc, const u8 *amf, const u8 *k,
19 const u8 *sqn, const u8 *_rand, u8 *autn, u8 *ik,
20 u8 *ck, u8 *res, size_t *res_len);
21int milenage_auts(const u8 *opc, const u8 *k, const u8 *_rand, const u8 *auts,
22 u8 *sqn);
23int gsm_milenage(const u8 *opc, const u8 *k, const u8 *_rand, u8 *sres,
24 u8 *kc);
25int milenage_check(const u8 *opc, const u8 *k, const u8 *sqn, const u8 *_rand,
26 const u8 *autn, u8 *ik, u8 *ck, u8 *res, size_t *res_len,
27 u8 *auts);
28int milenage_f1(const u8 *opc, const u8 *k, const u8 *_rand,
29 const u8 *sqn, const u8 *amf, u8 *mac_a, u8 *mac_s);
30int milenage_f2345(const u8 *opc, const u8 *k, const u8 *_rand,
31 u8 *res, u8 *ck, u8 *ik, u8 *ak, u8 *akstar);
32
Harald Welte042afe72012-03-21 08:19:47 +010033int milenage_opc_gen(u8 *opc, const u8 *k, const u8 *op);
34
Harald Welte781bd5d2011-12-06 22:23:52 +010035#endif /* MILENAGE_H */