usertype SesKey, Server; secret fresh k : Function; /* Version from the Brutus reports */ protocol wmfbrutus(A,B,S) { role A { fresh kab : SesKey; send_1(A,S, A, { B,kab }k(A,S) ); } role B { var kab : SesKey; recv_2(S,B, { A, kab }k(B,S) ); claim_3(B, Secret,kab); } role S { var kab : SesKey; recv_1(A,S, A, { B,kab }k(A,S) ); send_2(S,B, { A, kab }k(B,S) ); } } const Alice, Bob, Eve: Agent; const Simon: Server;