packages feed

cpsa-3.6.8: tst/ugen_test.scm

(herald "Ugen test"
	(comment This protocol demonstrates a bug in CPSA: points of
origination are not always preserved for skeleton uniq-orig
assumptions) (algebra diffie-hellman)) 

(defprotocol uof diffie-hellman
  (defrole init
    (vars (a b name) (x1 rndx) (x2 expt))
    (trace
     (send (exp (gen) x1))
     (recv (exp (gen) x2))
     (send (enc (exp (gen) x1) (exp (gen) x2) (exp (gen) x1) (ltk a b)))))
  (defrole resp
    (vars (b a name) (x2 rndx) (x1 expt))
    (trace
     (recv (exp (gen) x1))
     (send (exp (gen) x2))
     (recv (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b)))))
)

;;; The responder point-of-view
(defskeleton uof 
  (vars (a b name) (x2 rndx))
  (defstrand resp 3 (a a) (b b) (x2 x2))
  (non-orig (ltk a b))
  (uniq-gen x2)
  (comment "Responder point-of-view"))

;;; The responder point-of-view
(defskeleton uof 
  (vars (a b name) (x2 rndx) (x1 expt))
  (defstrand resp 3 (a a) (b b) (x2 x2) (x1 x1))
  (non-orig (ltk a b))
  (uniq-gen x2)
  (absent (x2 (exp (gen) x1)))
  (comment "Responder point-of-view"))

(defprotocol uof2 diffie-hellman
  (defrole init
    (vars (a b name) (x1 rndx) (x2 expt))
    (trace
     (send (exp (gen) x1))
     (recv (exp (gen) x2))
     (send (enc (exp (gen) x1) (exp (gen) x2) (exp (gen) x1) (ltk a b)))))
  (defrole resp
    (vars (b a name) (x2 rndx) (x1 expt))
    (trace
     (recv (exp (gen) x1))
     (send (exp (gen) x2))
     (recv (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b))))
    (uniq-gen x2)
    )
)
;;; The responder point-of-view
(defskeleton uof2
  (vars (a b name) (x2 rndx))
  (defstrand resp 3 (a a) (b b) (x2 x2))
  (non-orig (ltk a b))
  (comment "Responder point-of-view"))