www.pudn.com > agsm2-1.2_src.zip > aka.h


/* aka.h */ 
/* header for SHA based AKA functions */ 
 
#ifndef AKA_H 
#define AKA_H 
 
#include "sha.h" 
typedef unsigned char		uchar; 
typedef unsigned short		word16; 
typedef unsigned long int	word32; 
 
#define L_KEY    16    /*128      bits 3G TS 33.105.v.3.0(2000-03)*/ 
#define L_RAND   16    /*128      bits 3G TS 33.105.v.3.0(2000-03)*/ 
#define L_FMK     4    /*32       bits */ 
#define L_SQN     6    /*48       bits 3G TS 33.105.v.3.0(2000-03)*/ 
#define L_AMF     2    /*16       bits 3G TS 33.105.v.3.0(2000-03)*/ 
#define L_MACA    8    /*64       bits 3G TS 33.105.v.3.0(2000-03)*/ 
#define L_MACS    8    /*64       bits 3G TS 33.105.v.3.0(2000-03)*/ 
#define L_RES    16    /*32<->128 bits 3G TS 33.105.v.3.0(2000-03)*/ 
#define L_CK     16    /*128      bits 3G TS 33.105.v.3.0(2000-03)*/ 
#define L_IK     16    /*128      bits 3G TS 33.105.v.3.0(2000-03)*/ 
#define L_AK      6    /*48       bits 3G TS 33.105.v.3.0(2000-03)*/ 
#define L_AKS     6    /*48       bits 3G TS 33.105.v.3.0(2000-03)*/ 
#define L_UAK    16 
 
/* function definitions */ 
 
void f0(uchar seed[],uchar fi,uchar Fmk[],uchar buff[]); 
void f1(uchar K[],uchar fi,uchar *RAND,uchar Fmk[],uchar SQN[],uchar AMF[],uchar MACA[]); 
void f1star(uchar K[],uchar fi,uchar *RAND,uchar Fmk[],uchar SQN[],uchar AMF[],uchar MACS[]); 
void f2(uchar K[],uchar fi,uchar *RAND,uchar Fmk[],uchar RES[],int l_res); 
void f3(uchar K[],uchar fi,uchar *RAND,uchar Fmk[],uchar *CK); 
void f4(uchar K[],uchar fi,uchar *RAND,uchar Fmk[],uchar *IK); 
void f5(uchar K[],uchar fi,uchar *RAND,uchar Fmk[],uchar AK[]);	 
void f5star(uchar K[],uchar fi,uchar *RAND,uchar Fmk[],uchar AKS[]); 
void f11(uchar K[],uchar fi,uchar *RAND,uchar Fmk[],uchar *UAK); 
 
#endif