cpsa-4.4.1: tst/doorsep.scm
(herald doorsep (comment "Door Simple Example Protocol"))
(defprotocol doorsep basic
(defrole person
(vars (d p akey) (k skey) (t text))
(trace
(send (enc (enc k (invk p)) d))
(recv (enc t k))
(send t))
(uniq-orig k))
(defrole door
(vars (d p akey) (k skey) (t text))
(trace
(recv (enc (enc k (invk p)) d))
(send (enc t k))
(recv t))
(uniq-orig t))
(defrule trust
(forall ((z strd) (p d akey))
(implies
(and (p "person" z 1)
(p "person" "p" z p)
(p "person" "d" z d)
(non (invk p)))
(non (invk d))))
(comment "The trust rule"))
(comment "Doorsep protocol using unnamed asymmetric keys"))
(defskeleton doorsep
(vars (p akey))
(defstrand door 3 (p p))
(non-orig (invk p))
(comment "Analyze from the doors's perspective"))