hashfunction hashed; hashfunction sharedkey; usertype Message; usertype SessionKey; protocol SessionKeys(Monitor,CloudServer) { role Monitor { fresh MonitorValue : Nonce; var CloudServerValue : Nonce; fresh info : Message; var info: Message; fresh sharedkey: SessionKey; send_1(Monitor,CloudServer,{Monitor,MonitorValue}pk(CloudServer)); recv_2(CloudServer,Monitor, {CloudServerValue,hashed(MonitorValue), CloudServer}pk(Monitor)); send_3(Monitor,CloudServer, {info} sharedkey); claim_Monitor1(Monitor,Alive); claim_Monitor2(Monitor,Secret, info); } role CloudServer { var MonitorValue: Nonce; fresh CloudServerValue: Nonce; var info: Message; fresh info: Message; fresh sharedkey: SessionKey; recv_1(Monitor,CloudServer,{Monitor,MonitorValue}pk(CloudServer)); send_2(CloudServer,Monitor, {CloudServerValue,hashed(MonitorValue), CloudServer}pk(Monitor)); recv_3(Monitor,CloudServer, {info} sharedkey); claim_CloudServer1(CloudServer,Niagree); claim_CloudServer2(CloudServer,Nisynch); claim_CloudServer3(CloudServer,Alive); claim_CloudServer4(CloudServer,Secret, info); } }