usertype SesKey, Server; /* 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; read_2(S,B, { A, kab }k(B,S) ); claim_3(B, Secret,kab); } role S { var kab : SesKey; read_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; untrusted Eve; compromised k(Eve,Simon);