usertype SessionKey; secret k: Function; protocol unknown2(I,R,S) { role I { fresh ni: Nonce; var nr: Nonce; var kir: SessionKey; var T; send_1(I,R, ni ); recv_3(S,I, { I,R,kir,ni,nr }k(I,S), T ); send_4(I,R, T, {nr}kir ); claim_i1(I,Nisynch); claim_i2(I,Niagree); claim_i3(I,Secret, kir); } role R { fresh nr: Nonce; var ni: Nonce; var kir: SessionKey; recv_1(I,R, ni ); send_2(R,S, { I,R,ni,nr }k(R,S) ); recv_4(I,R, { I,R,kir,ni,nr }k(R,S), {nr}kir ); claim_r1(R,Nisynch); claim_r2(R,Niagree); claim_r3(R,Secret, kir); } role S { fresh kir: SessionKey; var ni,nr: Nonce; recv_2(R,S, { I,R,ni,nr }k(R,S) ); send_3(S,I, { I,R,kir,ni,nr }k(I,S), { I,R,kir,ni,nr }k(R,S) ); /* claim_s1(S,Nisynch); claim_s2(S,Niagree); claim_s3(S,Secret, kir); */ } } const kee: SessionKey;