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