xref: /freebsd/contrib/wpa/src/crypto/milenage.h (revision 0bfd163f522701b486e066fa2e56624c02f5081a)
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