packages feed

cpsa-2.2.2: tst/tor.scm

(herald "Tor Circuit-Level Handshake Protocol" (algebra diffie-hellman)
  (comment "Achieves unilateral authentication"))

;; Hashing--no one can extract a key from an encryption

(defmacro (hash x)
  (enc "hash" x))

(defprotocol tor diffie-hellman
  (defrole init
    (vars (x y expn) (b name) (n text) (kh akey))
    (trace 
     (send (enc (exp (gen) x) (pubk b)))
     (recv (cat (exp (gen) y) (hash (cat (exp (exp (gen) x) y)))))
     (send (enc n (exp (exp (gen) y) x))))
    (uniq-orig x n))
  (defrole resp
    (vars (x y expn) (b name) (n text) (kh akey))
    (trace 
     (recv (enc (exp (gen) x) (pubk b)))
     (send (cat (exp (gen) y) (hash (cat (exp (exp (gen) x) y)))))
     (recv (enc n (exp (exp (gen) x) y))))
    (uniq-orig y)))

(defskeleton tor
  (vars (b name) (n text))
  (defstrand init 2 (b b))
  (non-orig (privk b)))

(defskeleton tor
  (vars (b name) (n text))
  (defstrand resp 3 (b b))
  (non-orig (privk b)))

(defskeleton tor
  (vars (b name) (n text))
  (defstrand init 3 (b b) (n n))
  (deflistener n)
  (non-orig (privk b)))