packages feed

cpsa-3.6.6: tst/blanchet_doorsep.prot

(defprot blanchet basic
  (vars (a b akey) (s skey) (d data))
  (msg init resp (enc (enc s (invk a)) b))
  (msg resp init (enc d s))
  (assume init (uniq-orig s))
  (assume resp (uniq_orig d))
  (comment "Blanchet's protocol"))

(defskeleton blanchet
  (vars (a b akey) (s skey) (d data))
  (defstrand init 2 (a a) (b b) (s s) (d d))
  (non-orig (invk b))
  (comment "Analyze from the initiator's perspective"))

(defprot doorsep basic
  (vars (p d akey) (k skey) (t text))
  (msg person door (enc (enc k (invk p)) d))
  (msg door person (enc t k))
  (msg person door t)
  (assume person (uniq-orig k))
  (defrule trust
    (forall ((z strd) (p d akey) (k skey))
	    (implies
	     (and (p "person" z 1)
		  (p "person" "p" z p)
		  (p "person" "d" z d)
		  (p "person" "k" z k)
		  (fact trust p))
	     (and (non (invk d))
		  (uniq k))))))

(defskeleton doorsep
  (vars (p akey) (t text))
  (defstrand door 3 (p p) (t t))
  (non-orig (invk p))
  (uniq-orig t)
  (facts (trust p))
  (comment "Analyze from the door's perspective"))

(defskeleton doorsep
  (vars (p akey) (t text))
  (defstrand door 3 (p p) (t t))
  (non-orig (invk p))
  (uniq-orig t)
  (comment "Analyze from the door's perspective when we don't trust p"))