packages feed

cpsa-2.2.2: tst/kelly1.tst

(comment "CPSA 2.2.2")
(comment "All input read")

(defprotocol kelly1 basic
  (defrole client
    (vars (C A S name) (Ns request Check policy response text))
    (trace (send (cat C S request))
      (recv (cat S C (enc response Ns (privk S))))
      (send (cat C A Check (pubk S)))
      (recv (cat A C (enc policy (pubk S) Ns (privk A))))))
  (defrole appraiser
    (vars (C A S name) (N Ns hello Quote measurements Check policy text)
      (AIK name))
    (trace (recv (cat S A hello)) (send (cat A S N))
      (recv
        (cat S A (enc Quote measurements N Ns (pubk S) (privk AIK))
          (pubk S))) (recv (cat C A Check (pubk S)))
      (send (cat A C (enc policy (pubk S) Ns (privk A)))))
    (non-orig (privk A) (privk AIK))
    (uniq-orig N))
  (defrole server
    (vars (C A S name)
      (N Ns hello Quote measurements request response text) (AIK name))
    (trace (send (cat S A hello)) (recv (cat A S N))
      (send
        (cat S A (enc Quote measurements N Ns (pubk S) (privk AIK))
          (pubk S))) (recv (cat C S request))
      (send (cat S C (enc response Ns (privk S)))))
    (non-orig (privk S) (privk AIK))
    (uniq-orig Ns)))

(defskeleton kelly1
  (vars (Ns request Check policy response text) (A C S name))
  (defstrand client 4 (Ns Ns) (request request) (Check Check)
    (policy policy) (response response) (C C) (A A) (S S))
  (non-orig (privk A))
  (traces
    ((send (cat C S request))
      (recv (cat S C (enc response Ns (privk S))))
      (send (cat C A Check (pubk S)))
      (recv (cat A C (enc policy (pubk S) Ns (privk A))))))
  (label 0)
  (unrealized (0 3))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton kelly1
  (vars
    (Ns request Check policy response N hello Quote measurements Check-0
      text) (A C S C-0 AIK name))
  (defstrand client 4 (Ns Ns) (request request) (Check Check)
    (policy policy) (response response) (C C) (A A) (S S))
  (defstrand appraiser 5 (N N) (Ns Ns) (hello hello) (Quote Quote)
    (measurements measurements) (Check Check-0) (policy policy) (C C-0)
    (A A) (S S) (AIK AIK))
  (precedes ((1 4) (0 3)))
  (non-orig (privk A) (privk AIK))
  (uniq-orig N)
  (operation encryption-test (added-strand appraiser 5)
    (enc policy (pubk S) Ns (privk A)) (0 3))
  (traces
    ((send (cat C S request))
      (recv (cat S C (enc response Ns (privk S))))
      (send (cat C A Check (pubk S)))
      (recv (cat A C (enc policy (pubk S) Ns (privk A)))))
    ((recv (cat S A hello)) (send (cat A S N))
      (recv
        (cat S A (enc Quote measurements N Ns (pubk S) (privk AIK))
          (pubk S))) (recv (cat C-0 A Check-0 (pubk S)))
      (send (cat A C-0 (enc policy (pubk S) Ns (privk A))))))
  (label 1)
  (parent 0)
  (unrealized (1 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton kelly1
  (vars
    (Ns request Check policy response N hello Quote measurements Check-0
      hello-0 text) (A C S C-0 AIK A-0 name))
  (defstrand client 4 (Ns Ns) (request request) (Check Check)
    (policy policy) (response response) (C C) (A A) (S S))
  (defstrand appraiser 5 (N N) (Ns Ns) (hello hello) (Quote Quote)
    (measurements measurements) (Check Check-0) (policy policy) (C C-0)
    (A A) (S S) (AIK AIK))
  (defstrand server 3 (N N) (Ns Ns) (hello hello-0) (Quote Quote)
    (measurements measurements) (A A-0) (S S) (AIK AIK))
  (precedes ((1 1) (2 1)) ((1 4) (0 3)) ((2 2) (0 1)) ((2 2) (1 2)))
  (non-orig (privk A) (privk S) (privk AIK))
  (uniq-orig Ns N)
  (operation encryption-test (added-strand server 3)
    (enc Quote measurements N Ns (pubk S) (privk AIK)) (1 2))
  (traces
    ((send (cat C S request))
      (recv (cat S C (enc response Ns (privk S))))
      (send (cat C A Check (pubk S)))
      (recv (cat A C (enc policy (pubk S) Ns (privk A)))))
    ((recv (cat S A hello)) (send (cat A S N))
      (recv
        (cat S A (enc Quote measurements N Ns (pubk S) (privk AIK))
          (pubk S))) (recv (cat C-0 A Check-0 (pubk S)))
      (send (cat A C-0 (enc policy (pubk S) Ns (privk A)))))
    ((send (cat S A-0 hello-0)) (recv (cat A-0 S N))
      (send
        (cat S A-0 (enc Quote measurements N Ns (pubk S) (privk AIK))
          (pubk S)))))
  (label 2)
  (parent 1)
  (seen 3)
  (unrealized (0 1))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton kelly1
  (vars
    (Ns request Check policy response hello Check-0 N hello-0 Quote
      measurements request-0 text) (A C S C-0 C-1 A-0 AIK name))
  (defstrand client 4 (Ns Ns) (request request) (Check Check)
    (policy policy) (response response) (C C) (A A) (S S))
  (defstrand appraiser 5 (N N) (Ns Ns) (hello hello) (Quote Quote)
    (measurements measurements) (Check Check-0) (policy policy) (C C-0)
    (A A) (S S) (AIK AIK))
  (defstrand server 5 (N N) (Ns Ns) (hello hello-0) (Quote Quote)
    (measurements measurements) (request request-0) (response response)
    (C C-1) (A A-0) (S S) (AIK AIK))
  (precedes ((1 1) (2 1)) ((1 4) (0 3)) ((2 2) (1 2)) ((2 4) (0 1)))
  (non-orig (privk A) (privk S) (privk AIK))
  (uniq-orig Ns N)
  (operation encryption-test (added-strand server 5)
    (enc response Ns (privk S)) (0 1))
  (traces
    ((send (cat C S request))
      (recv (cat S C (enc response Ns (privk S))))
      (send (cat C A Check (pubk S)))
      (recv (cat A C (enc policy (pubk S) Ns (privk A)))))
    ((recv (cat S A hello)) (send (cat A S N))
      (recv
        (cat S A (enc Quote measurements N Ns (pubk S) (privk AIK))
          (pubk S))) (recv (cat C-0 A Check-0 (pubk S)))
      (send (cat A C-0 (enc policy (pubk S) Ns (privk A)))))
    ((send (cat S A-0 hello-0)) (recv (cat A-0 S N))
      (send
        (cat S A-0 (enc Quote measurements N Ns (pubk S) (privk AIK))
          (pubk S))) (recv (cat C-1 S request-0))
      (send (cat S C-1 (enc response Ns (privk S))))))
  (label 3)
  (parent 2)
  (unrealized)
  (shape))

(comment "Nothing left to do")