role mme(MTCD,GW,MME: agent, | Kg1_1, Gkg1: symmetric_key, | IMSIg1_1, GIDg1:text, | HMAC: function, | F1,F2,F3,F4,F5,F6,KDF:function, | SQN:text, | SND,RCV:channel(dy)) | played_by MME def= | local | State:nat, | SNID,Aggmacg1,Aggres,Rhss, Macg1:text, | GTKg1,Kasmeg1_1:symmetric_key, | Authhss:text, | Akg1_1,Ckg1_1,Ikg1_1,Xresg1_1, Rmme,Rg1_1,Macmme:text, | init | State:=3 | transition | State=3 RCV(IMSIg1_1.Rg1_1'.GIDg1.(xor(Aggmacg1,(IMSIg1_1.Rg1_1'_Gkg1)).SNID) =|> | State':=5 Rhss':=new() GTKg1':=(Rhss'.SNID_Gkg1 secret(GTKg1',gtkg1,,) | Macg1':=(Rhss'.GIDg1_GTKg1' Authhss':= Rhss'.Macg1' Akg1_1':= (Rhss'_Kg1_1 Ckg1_1':= | (Rhss'_Kg1_1 Ikg1_1':= (Rhss'_Kg1_1 Kasmeg1_1':=KDF(xor(SQN,Akg1_1'),Ckg1_1',Ikg1_1',SNID) | secret(Kasmeg1_1',kasme,,) Xresg1_1':= (Rhss'.Rg1_1'_Kg1_1 Rmme':= new() Macmme':= | (Rmme'.Authhss'_GTKg1' SND(Authhss'.Rmme'.Macmme') witness(MME,MTCD,mtcd_mme_rmme,Rmme) | witness(MME,MTCD,mtcd_mme_rhss,Rhss) | State=5 RCV(xor(Aggres,(Rhss.Rg1_1'_Kg1_1)) =|> | State':=6 request(MTCD,MME,mme_mtcd_rg11,Rg1_1') | end role |
|