scyther/gui/Protocols/ISO-9798/isoiec-9798-3-7.template
2012-11-15 12:10:06 +01:00

68 lines
1.1 KiB
Plaintext

/*
* Modeled from ISO standard
*
* signature
* ttp
* five-pass
* mutual
*
* B initiates and A communicates with T
*
* parameters:
*
* NAME
* IA
* IB
* ResA
* ResB
* TokenAB
* TokenBA (although identical in both cases)
* TokenTA
*
*/
protocol NAME(A,B,T)
{
role A
{
fresh Ra,Rpa: Nonce;
var Rb: Nonce;
var Text1,Text3,Text4,Text5,Text8,Text9: Ticket;
fresh Text2,Text6,Text7: Ticket;
recv_1(B,A, Rb,IB,Text1 );
send_2(A,T, Rpa,Rb,IA,Text2 );
recv_3(T,A, Text5, TokenTA );
claim(A,Running,B,Ra,Rb,Text6);
send_4(A,B, IA, TokenAB );
recv_5(B,A, TokenBA );
claim(A,Commit,B,Ra,Rb,Text8);
claim(A,Alive);
}
role B
{
fresh Text1,Text8,Text9: Ticket;
fresh Rb: Nonce;
var Text3,Text4,Text6,Text7: Ticket;
var Ra,Rpa: Nonce;
send_1(B,A, Rb,IB,Text1 );
recv_4(A,B, IA, TokenAB );
claim(B,Running,A,Ra,Rb,Text8);
send_5(B,A, TokenBA );
claim(B,Commit,A,Ra,Rb,Text6);
claim(B,Alive);
}
role T
{
var Rpa,Rb: Nonce;
var Text2: Ticket;
fresh Text3,Text4,Text5: Ticket;
recv_2(A,T, Rpa,Rb,IA,Text2 );
send_3(T,A, Text5, TokenTA );
}
}