libosmogsm  0.6.3
Osmocom GSM library
milenage.h
1 /*
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 
18 void 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);
21 int milenage_auts(const u8 *opc, const u8 *k, const u8 *_rand, const u8 *auts,
22  u8 *sqn);
23 int gsm_milenage(const u8 *opc, const u8 *k, const u8 *_rand, u8 *sres,
24  u8 *kc);
25 int 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);
28 int milenage_f1(const u8 *opc, const u8 *k, const u8 *_rand,
29  const u8 *sqn, const u8 *amf, u8 *mac_a, u8 *mac_s);
30 int milenage_f2345(const u8 *opc, const u8 *k, const u8 *_rand,
31  u8 *res, u8 *ck, u8 *ik, u8 *ak, u8 *akstar);
32 
33 int milenage_opc_gen(u8 *opc, const u8 *k, const u8 *op);
34 
35 #endif /* MILENAGE_H */