packages feed

cpsa-3.6.8: tst/ugen_test.tst

(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))

(comment "CPSA 3.6.8")
(comment "All input read from tst/ugen_test.scm")

(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))))))

(defskeleton uof
  (vars (a b name) (x2 rndx) (x1 expt))
  (defstrand resp 3 (b b) (a a) (x2 x2) (x1 x1))
  (non-orig (ltk a b))
  (uniq-gen x2)
  (comment "Responder point-of-view")
  (traces
    ((recv (exp (gen) x1)) (send (exp (gen) x2))
      (recv
        (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b)))))
  (label 0)
  (unrealized (0 2))
  (origs)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton uof
  (vars (a b name) (x1 rndx))
  (defstrand resp 3 (b b) (a a) (x2 x1) (x1 x1))
  (defstrand init 3 (a a) (b b) (x1 x1) (x2 x1))
  (precedes ((1 0) (0 0)) ((1 2) (0 2)))
  (non-orig (ltk a b))
  (uniq-gen x1)
  (operation encryption-test (added-strand init 3)
    (enc (exp (gen) x1) (exp (gen) x1) (exp (gen) x1) (ltk a b)) (0 2))
  (traces
    ((recv (exp (gen) x1)) (send (exp (gen) x1))
      (recv
        (enc (exp (gen) x1) (exp (gen) x1) (exp (gen) x1) (ltk a b))))
    ((send (exp (gen) x1)) (recv (exp (gen) x1))
      (send
        (enc (exp (gen) x1) (exp (gen) x1) (exp (gen) x1) (ltk a b)))))
  (label 1)
  (parent 0)
  (unrealized)
  (shape)
  (maps ((0) ((a a) (b b) (x2 x1) (x1 x1))))
  (origs))

(comment "Nothing left to do")

(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))))))

(defskeleton uof
  (vars (a b name) (x2 rndx) (x1 expt))
  (defstrand resp 3 (b b) (a a) (x2 x2) (x1 x1))
  (absent (x2 (exp (gen) x1)))
  (non-orig (ltk a b))
  (uniq-gen x2)
  (comment "Responder point-of-view")
  (traces
    ((recv (exp (gen) x1)) (send (exp (gen) x2))
      (recv
        (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b)))))
  (label 2)
  (unrealized (0 2))
  (dead)
  (origs)
  (comment "empty cohort"))

(comment "Nothing left to do")

(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)
    (absent (x2 (exp (gen) x1)))))

(defskeleton uof2
  (vars (a b name) (x2 rndx) (x1 expt))
  (defstrand resp 3 (b b) (a a) (x2 x2) (x1 x1))
  (absent (x2 (exp (gen) x1)))
  (non-orig (ltk a b))
  (uniq-gen x2)
  (comment "Responder point-of-view")
  (traces
    ((recv (exp (gen) x1)) (send (exp (gen) x2))
      (recv
        (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b)))))
  (label 3)
  (unrealized (0 2))
  (dead)
  (origs)
  (comment "empty cohort"))

(comment "Nothing left to do")