18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/*
28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * UMTS AKA - Milenage algorithm (3GPP TS 35.205, .206, .207, .208)
38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2006-2007 <j@w1.fi>
48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license.
6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details.
78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */
88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef MILENAGE_H
108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define MILENAGE_H
118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid milenage_generate(const u8 *opc, const u8 *amf, const u8 *k,
138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		       const u8 *sqn, const u8 *_rand, u8 *autn, u8 *ik,
148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		       u8 *ck, u8 *res, size_t *res_len);
158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint milenage_auts(const u8 *opc, const u8 *k, const u8 *_rand, const u8 *auts,
168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		  u8 *sqn);
178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint gsm_milenage(const u8 *opc, const u8 *k, const u8 *_rand, u8 *sres,
188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		 u8 *kc);
198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint milenage_check(const u8 *opc, const u8 *k, const u8 *sqn, const u8 *_rand,
208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		   const u8 *autn, u8 *ik, u8 *ck, u8 *res, size_t *res_len,
218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		   u8 *auts);
228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint milenage_f1(const u8 *opc, const u8 *k, const u8 *_rand,
238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		const u8 *sqn, const u8 *amf, u8 *mac_a, u8 *mac_s);
248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint milenage_f2345(const u8 *opc, const u8 *k, const u8 *_rand,
258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		   u8 *res, u8 *ck, u8 *ik, u8 *ak, u8 *akstar);
268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* MILENAGE_H */
28