packages feed

cpsa-2.5.3: tst/nsl4cm1.lisp

(herald "Four Party Needham-Schroeder-Lowe Protocol")

(defprotocol nsl4cm basic
   (defrole init
      (vars (a b c d name) (na nb nc nd text))
      (trace
         (send (enc a c d na (pubk b)))
	 (recv (enc b c d na nb nc nd (pubk a)))
	 (send (enc nb nc nd (pubk b)))))
   (defrole resp1
      (vars (a b c d name) (na nb nc nd text))
      (trace
         (recv (enc a c d na (pubk b)))
	 (send (enc a b d na nb (pubk c)))
	 (recv (enc nb nc nd (pubk b)))
	 (send (enc nc nd (pubk c)))))
   (defrole resp2
      (vars (a b c d name) (na nb nc nd text))
      (trace
         (recv (enc a b d na nb (pubk c)))
	 (send (enc a b c na nb nc (pubk d)))
	 (recv (enc nc nd (pubk c)))
	 (send (enc nd (pubk d)))))
   (defrole resp3
      (vars (a b c d name) (na nb nc nd text))
      (trace
         (recv (enc a b c na nb nc (pubk d)))
	 (send (enc b c d na nb nc nd (pubk a)))
	 (recv (enc nd (pubk d))))))

(defskeleton nsl4cm (vars (a b c d name) (na text))
  (defstrand init 3 (a a) (b b) (c c) (d d) (na na))
   (non-orig (privk a) (privk b) (privk c) (privk d))
   (uniq-orig na))

(comment (defskeleton nsl4cm (vars (a b c d name) (nb text))
   (defstrand resp1 4 (a a) (b b) (c c) (d d) (nb nb))
   (non-orig (privk a) (privk b) (privk c) (privk d))
   (uniq-orig nb))

(defskeleton nsl4cm (vars (a b c d name) (nc text))
   (defstrand resp2 4 (a a) (b b) (c c) (d d) (nc nc))
   (non-orig (privk a) (privk b) (privk c) (privk d))
   (uniq-orig nc))

(defskeleton nsl4cm (vars (a b c d name) (nd text))
   (defstrand resp3 3 (a a) (b b) (c c) (d d) (nd nd))
   (non-orig (privk a) (privk b) (privk c) (privk d))
   (uniq-orig nd)))