cpsa 3.6.5 → 3.6.6
raw patch · 89 files changed
+12065/−8137 lines, 89 filesdep ~basenew-component:exe:cpsa2latexnew-component:exe:cpsagoalsatnew-component:exe:cpsaprot
Dependency ranges changed: base
Files
- ChangeLog +66/−0
- Makefile +10/−6
- NEWS +11/−0
- README.txt +22/−35
- cpsa.cabal +53/−5
- cpsatst +44/−5
- doc/cpsa.mk +4/−0
- doc/cpsamanual.pdf binary
- doc/init/Makefile +5/−5
- ghci +0/−5
- mkghci +9/−0
- src/CPSA/GoalSat/Main.hs +179/−0
- src/CPSA/Latex/Main.hs +252/−0
- src/CPSA/Lib/Declaration.hs +3/−1
- src/CPSA/Lib/Expand.hs +12/−1
- src/CPSA/Lib/Loader.hs +21/−7
- src/CPSA/Lib/Main.hs +2/−2
- src/CPSA/Lib/Reduction.hs +20/−20
- src/CPSA/Lib/Strand.hs +36/−14
- src/CPSA/Pretty/Main.hs +0/−1
- src/CPSA/Prot/Main.hs +257/−0
- src/CPSA/SAS/SAS.hs +9/−0
- src/ocaml/cpsa.mllib +1/−1
- src/ocaml/cpsa.mltop +1/−1
- src/ocaml/cpsa.odocl +0/−1
- src/ocaml/expand.ml +0/−1
- src/ocaml/main.mli +1/−1
- src/ocaml/reader.ml +0/−58
- src/ocaml/reader.mli +0/−24
- src/ocaml/scanner.mll +2/−2
- src/ocaml/sexpr.ml +49/−3
- src/ocaml/sexpr.mli +8/−2
- src/ocaml/token.ml +16/−0
- src/ocaml/token.mli +16/−0
- tst/Makefile +7/−47
- tst/aik.tst +2/−2
- tst/attest.tst +2/−2
- tst/axiom2.tst +2/−2
- tst/blanchet.tst +2/−2
- tst/blanchet_doorsep.prot +45/−0
- tst/blanchet_doorsep.tst +224/−0
- tst/bltk_test.tst +2/−2
- tst/comp_test.tst +2/−2
- tst/dh-ca.tst +2/−2
- tst/dh_mim.tst +2/−2
- tst/dh_mim2.tst +2/−2
- tst/dh_sig.tst +2/−2
- tst/dh_test.tst +2/−2
- tst/dhnsl_basic.tst +2/−2
- tst/dhnsl_use.tst +2/−2
- tst/enrich.tst +2/−2
- tst/envelope.scm +15/−2
- tst/envelope.tst +10565/−7787
- tst/ffgg.tst +2/−2
- tst/fluffy_draft03_gske.tst +2/−2
- tst/fnof_or.tst +2/−2
- tst/fnof_test.tst +2/−2
- tst/fnof_woolam.tst +2/−2
- tst/fnof_yahalom.tst +2/−2
- tst/goals.tst +4/−4
- tst/iadh_um.tst too large to diff
- tst/injection.tst +2/−2
- tst/kerb.tst +2/−2
- tst/kerberos++.tst +2/−2
- tst/lt_test.tst +2/−2
- tst/neq_test.tst +2/−2
- tst/ns.tst +2/−2
- tst/or.tst +2/−2
- tst/ordered.tst +2/−2
- tst/owang.tst +2/−2
- tst/owat.tst +2/−2
- tst/pkinit.tst +2/−2
- tst/plaindh.tst +2/−2
- tst/priority_test.tst +2/−2
- tst/prottrans.tst +2/−2
- tst/reflect.tst +2/−2
- tst/role_uniq.tst +2/−2
- tst/rule-order.tst +2/−2
- tst/staticdh.tst +2/−2
- tst/station.tst +2/−2
- tst/station2.tst +2/−2
- tst/subsort_test.tst +2/−2
- tst/test_small.tst +2/−2
- tst/trust-anchor.tst +2/−2
- tst/unilateral.tst +2/−2
- tst/uniq-gen-test.tst +2/−2
- tst/woolam.tst +2/−2
- tst/wrap_decrypt.tst +2/−2
- tst/yahalom.tst +2/−2
ChangeLog view
@@ -1,3 +1,69 @@+2020-05-21 John D. Ramsdell <ramsdell@mitre.org>++ * cpsa.cabal (Version): Tagged as 3.6.6++2020-05-15 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/Lib/Strand.hs (rlugen): Replaced an incorrect call to+ originationNodes to be a call to generationNodes. This fixes a+ bug when using the ugen predicate in the conclusion of a rule.++2020-05-15 Moses D. Liskov <mliskov@mitre.org>++ * src/CPSA/Lib/Strand.hs (preskelWellFormed): Added a check that+ all variables used in any terms in any declarations are used in+ the terms of the traces.+ * src/CPSA/Lib/Strand.hs (verbosePreskelWellFormed): Made a similar+ change, but without removing existing more specific messages that+ may be informative for users.++2020-04-15 Joshua D. Guttman <guttman@mitre.org>++ * src/CPSA/Lib/Strand.hs (graphCloseAll): Added a procedure to+ generate a transitive closure that includes pairs on the same+ strand. Adapted gprec to use it.++2020-04-02 Ian D. Kretz <ikretz@mitre.org>++ * src/CPSA/Latex/Main.hs (main): Remove number from pubk, privk+ newcommand++2020-03-31 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/SAS/SAS.hs (Preskel): Added support for unique+ generation assertions.++2020-03-20 John D. Ramsdell <ramsdell@mitre.org>++ * cpsa.cabal (Version): Update version number as 3.6.6++2020-03-04 Moses D. Liskov <mliskov@mitre.org>++ * src/CPSA/Prot/Main.hs (main): Added support for state to+ cpsaprot.++2020-02-27 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/Lib/Strand.hs (probIsomorphic): Added quick checks for+ thinning isomorphism check.++2020-02-20 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/Prot/Main.hs (main): Improved error messages and added+ (chmsg TERM) form for channel messages and clone for roles.++2020-02-13 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/Prot/Main.hs (main): Added cpsaprot program.++2020-02-11 Kretz, Ian D <ikretz@mitre.org>++ * src/CPSA/LaTeX/Main.hs (main): Added cpsa2latex program.++2019-11-26 John D. Ramsdell <ramsdell@mitre.org>++ * src/CPSA/GoalSat/Main.hs: Added cpsagoalsat program.+ 2019-11-12 John D. Ramsdell <ramsdell@mitre.org> * cpsa.cabal (Version): Tagged as 3.6.5
Makefile view
@@ -3,11 +3,10 @@ # The all target creates a default configuration if need be. PACKAGE := $(wildcard *.cabal)-CONFIG = dist/setup-config-SETUP = runhaskell Setup.hs+CONFIG = configured all: $(CONFIG)- $(SETUP) build+ cabal build Makefile: @echo make $@@@ -16,9 +15,14 @@ @echo make $@ $(CONFIG): $(PACKAGE)- $(SETUP) configure $(CABALFLAGS) --ghc --user --prefix="${HOME}"+ cabal configure+ touch $(CONFIG) +clean:+ -rm $(CONFIG)+ cabal clean+ %: force- $(SETUP) $@+ cabal $@ -.PHONY: all force+.PHONY: all clean force
NEWS view
@@ -1,5 +1,16 @@ CPSA NEWS + May 2020:++* Release 3.6.6 adds a powerful feature: the cpsaprot preprocessing+ tool. This allows you to specify protocols in cpsa via a more+ intuitive "Alice and Bob" notation where you specify messages being+ sent from one role to another. The cpsaprot tool builds the+ standard defprotocol from this specification, which can then be run+ through the main CPSA tool. This helps to reduce duplications in+ the input files actually created by humans and thus reduces the+ occurrence of accidental errors in input.+ November 2019: * Release 3.6.5 is a bug fix release. There are no user visible
README.txt view
@@ -39,42 +39,28 @@ INSTALLING FROM A TARBALL -QUICK START (Linux)+Build and install with: -: To build and install CPSA type:-$ make-$ make install+$ cabal configure+$ cabal build+$ cabal install+: To find the directory containing documentation and samples, type:+$ cpsa4 -h +QUICK START (Linux)+ : To analyze a protocol you have put in prob.scm type: $ cpsa -o prob.txt prob.scm $ cpsagraph -o prob.xhtml prob.txt $ firefox -remote "openFile(`pwd`/prob.xhtml)" -: Documentation and samples are in the directory given by-$ cpsa -h--: To view the user guide:-$ firefox -remote "openFile($HOME/share/cpsa-X.Y.Z/doc/cpsauser.html)"-: where X.Y.Z is the CPSA version number.- QUICK START (Mac) -: To build and install CPSA type:-$ make-$ make install- : To analyze a protocol you have put in prob.scm type: $ cpsa -o prob.txt prob.scm $ cpsagraph -o prob.xhtml prob.txt $ open prob.xhtml -: Documentation and samples are in the directory given by-$ cpsa -h--: To view the user guide:-$ open $HOME/share/cpsa-X.Y.Z/doc/cpsauser.html-: where X.Y.Z is the CPSA version number.- QUICK START (Windows) With Cygwin or MinGW, the installation is similar to the Linux@@ -98,19 +84,20 @@ MAKEFILE -The file $HOME/share/cpsa-X.Y.Z/doc/cpsa.mk contains useful GNU Make-rules for inclusion, where X.Y.Z is CPSA version number.+To start your own project, create a fresh directory and then type: -Alternatively, copy the file Make.hs in the same directory into the-directory containing your CPSA problem statements. The source file-has usage instructions.+$ cpsainit +This will create a Makefile that automates the analysis process. For+Windows, it will also create Make4.hs, a cpsa build script written in+Haskell.+ PARALLELISM CPSA is built so it can make use of multiple processors. To make use-of more than one processor, start CPSA with a runtime flag that-specifies the number of processors to be used, such as "+RTS -N4--RTS". The GHC documentation describes the -N option in detail.+of more than one processor, start CPSA with the -N runtime flag, as in+"+RTS -N -RTS". The GHC documentation describes the -N option in+detail. TEST SUITE @@ -128,11 +115,11 @@ ADDITIONAL PROGRAMS The src directory of the source distributions includes programs-written in Scheme, Prolog, and Elisp for performing tasks. Use them-as templates for your special purpose CPSA analysis and transformation-needs. Also, when given the --json option, the CPSA pretty printer-cpsapp will transform CPSA S-expressions into JavaScript Object-Notation (JSON).+written in Scheme, Prolog, Elisp, and OCaml for performing tasks. Use+them as templates for your special purpose CPSA analysis and+transformation needs. Also, when given the --json option, the CPSA+pretty printer cpsapp will transform CPSA S-expressions into+JavaScript Object Notation (JSON). On Linux, the GHC runtime can request so much memory that thrashing results. The script in src/ghcmemlimit sets an environment variable
cpsa.cabal view
@@ -1,7 +1,7 @@ Name: cpsa-Version: 3.6.5+Version: 3.6.6 Maintainer: mliskov@mitre.org-Cabal-Version: >= 1.6+Cabal-Version: >= 1.10 License: BSD3 License-File: license.txt Synopsis: Symbolic cryptographic protocol analyzer@@ -75,14 +75,14 @@ examples/eq_test.xhtml Data-Dir: doc Extra-Source-Files:- Makefile ChangeLog README.txt NEWS ghci cpsatst setup.bat+ Makefile ChangeLog README.txt NEWS mkghci cpsatst setup.bat src/cpsa.el src/cpsaops.scm src/cpsa.pl src/pp.pl src/sexpr.pl src/ghcmemlimit src/cpsajson.py src/split.py src/ocaml/Makefile src/ocaml/README src/ocaml/cpsa.d.itarget src/ocaml/cpsa.itarget src/ocaml/cpsa.mllib src/ocaml/cpsa.mltop src/ocaml/cpsa.odocl src/ocaml/expand.ml src/ocaml/main.ml- src/ocaml/main.mli src/ocaml/pp.ml src/ocaml/reader.ml- src/ocaml/reader.mli src/ocaml/scanner.mll src/ocaml/sexpr.ml+ src/ocaml/main.mli src/ocaml/pp.ml src/ocaml/token.ml+ src/ocaml/token.mli src/ocaml/scanner.mll src/ocaml/sexpr.ml src/ocaml/sexpr.mli src/ocaml/sexpr_type.ml tst/checktst tst/updatetst tst/graphtst tst/Makefile tst/Make.hs tst/README@@ -117,6 +117,7 @@ tst/ordered.scm tst/ordered.tst tst/prottrans.scm tst/prottrans.tst tst/role_uniq.scm tst/role_uniq.tst tst/rule-order.scm tst/rule-order.tst tst/trust-anchor.scm tst/trust-anchor.tst+ tst/blanchet_doorsep.prot tst/blanchet_doorsep.tst Source-Repository head Type: git@@ -124,6 +125,7 @@ Executable cpsa Main-Is: CPSA/Lib/Main.hs+ Default-Language: Haskell2010 Build-Depends: base >= 4 && < 5, containers, parallel GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports -threaded -rtsopts@@ -139,6 +141,7 @@ Executable cpsagraph Main-Is: CPSA/Graph/Main.hs+ Default-Language: Haskell2010 Build-Depends: base >= 4 && < 5, containers GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -153,6 +156,7 @@ Executable cpsashapes Main-Is: CPSA/Shapes/Main.hs+ Default-Language: Haskell2010 Build-Depends: base >= 4 && < 5, containers GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -164,6 +168,7 @@ Executable cpsaannotations Main-Is: CPSA/Annotations/Main.hs+ Default-Language: Haskell2010 Build-Depends: base >= 4 && < 5, containers GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -176,6 +181,7 @@ Executable cpsadiff Main-Is: CPSA/Diff/Main.hs+ Default-Language: Haskell2010 Build-Depends: base >= 3 && < 5, containers GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -187,6 +193,7 @@ Executable cpsasas Main-Is: CPSA/SAS/Main.hs+ Default-Language: Haskell2010 Build-Depends: base >= 4 && < 5, containers GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -196,8 +203,21 @@ CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra CPSA.SAS.SAS CPSA.Basic.Algebra CPSA.DiffieHellman.Algebra +Executable cpsaprot+ Main-Is: CPSA/Prot/Main.hs+ Default-Language: Haskell2010+ Build-Depends: base >= 3 && < 5, containers+ GHC-Options:+ -Wall -fno-warn-name-shadowing -fwarn-unused-imports+ Hs-Source-Dirs: src+ Other-Modules:+ Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr+ CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra+ CPSA.Basic.Algebra CPSA.Lib.Expand+ Executable cpsapp Main-Is: CPSA/Pretty/Main.hs+ Default-Language: Haskell2010 Build-Depends: base >= 3 && < 5, containers GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -209,6 +229,7 @@ Executable cpsajson Main-Is: CPSA/JSON/Main.hs+ Default-Language: Haskell2010 Build-Depends: base >= 3 && < 5, containers GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -220,6 +241,7 @@ Executable cpsadebase Main-Is: CPSA/Debase/Main.hs+ Default-Language: Haskell2010 Build-Depends: base >= 3 && < 5, containers GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -231,6 +253,7 @@ Executable cpsamatch Main-Is: CPSA/Match/Main.hs+ Default-Language: Haskell2010 Build-Depends: base >= 4 && < 5, containers GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports@@ -242,9 +265,34 @@ Executable cpsainit Main-Is: CPSA/Init/Main.hs+ Default-Language: Haskell2010 Build-Depends: base, directory GHC-Options: -Wall -fno-warn-name-shadowing -fwarn-unused-imports Hs-Source-Dirs: src Other-Modules: Paths_cpsa++Executable cpsagoalsat+ Main-Is: CPSA/GoalSat/Main.hs+ Default-Language: Haskell2010+ Build-Depends: base >= 3 && < 5, containers+ GHC-Options:+ -Wall -fno-warn-name-shadowing -fwarn-unused-imports+ Hs-Source-Dirs: src+ Other-Modules:+ Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr+ CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra+ CPSA.Basic.Algebra++Executable cpsa2latex+ Main-Is: CPSA/Latex/Main.hs+ Default-Language: Haskell2010+ Build-Depends: base >= 3 && < 5, containers+ GHC-Options:+ -Wall -fno-warn-name-shadowing -fwarn-unused-imports+ Hs-Source-Dirs: src+ Other-Modules:+ Paths_cpsa CPSA.Lib.SExpr CPSA.Lib.Expand CPSA.Lib.Entry+ CPSA.Basic.Algebra CPSA.Lib.Algebra CPSA.Lib.Pretty+ CPSA.Lib.Printer CPSA.Lib.Utilities
cpsatst view
@@ -1,13 +1,52 @@ #! /bin/sh # This script runs the test suite, and then reduces the data for-# inspection. If make fails, something is very wrong. If differences-# appear in the output, there might be a problem.+# inspection. If you see "cpsa failed", something is very wrong. If+# differences appear in the output, there might be a problem. # The following scripts in the tst directory might also serve as a # template for your needs, but probably not. Look at doc/cpsa.mk # first. -cd tst-make clean-make "$@"+# ./cpsashapesall+# ./cpsagraphall++CPSAFLAGS="+RTS -M512m -N -RTS"++# Analyze the results of a CPSA run.+analyze () {+ echo cpsadiff "$1.tst" "$1.txt"+ cabal run cpsadiff -v0 -- "$1.tst" "$1.txt"+ echo cpsagraph -o "$1.xhtml" "$1.txt"+ cabal run cpsagraph -v0 -- -o "$1.xhtml" "$1.txt"+ echo cpsashapes -o "${1}_shapes.txt" "$1.txt"+ cabal run cpsashapes -v0 -- -o "${1}_shapes.txt" "$1.txt"+ echo cpsagraph -o "${1}_shapes.xhtml" "${1}_shapes.txt"+ cabal run cpsagraph -v0 -- -o "${1}_shapes.xhtml" "${1}_shapes.txt"+}++for i in tst/*.scm+do+ b=tst/`basename "$i" .scm`+ echo cpsa ${CPSAFLAGS} -o "$b.txt" "$i"+ cabal run cpsa -v0 -- ${CPSAFLAGS} -o "$b.txt" "$i" || echo cpsa failed.+ analyze "$b"+done++for i in tst/*.prot+do+ b=tst/`basename "$i" .prot`+ echo cpsaprot "$i" '|' cpsa ${CPSAFLAGS} -o "$b.txt"+ cabal run cpsaprot -v0 -- "$i" | \+ cabal run cpsa -v0 -- ${CPSAFLAGS} -o "$b.txt" || \+ echo cpsa failed.+ analyze "$b"+done++for i in tst/*.lsp+do+ b=tst/`basename "$i" .lsp`+ echo cpsa ${CPSAFLAGS} -o "$b.txt" "$i"+ cabal run cpsa -v0 -- ${CPSAFLAGS} -o "$b.txt" "$i"+ analyze "$b"+done
doc/cpsa.mk view
@@ -7,6 +7,10 @@ %.txt: %.scm $(CPSATIME) cpsa $(CPSAFLAGS) -o $@ $< +# Preprocess by transforming defprot forms into defprotocol+%.scm: %.prot+ cpsaprot $(CPSAPROTFLAGS) -o $@ $<+ # Analyze protocols for shapes, but don't fail when CPSA does %.txt: %.lsp -$(CPSATIME) cpsa $(CPSAFLAGS) -o $@ $<
doc/cpsamanual.pdf view
binary file changed (1025619 → 1032704 bytes)
doc/init/Makefile view
@@ -1,12 +1,12 @@-CPSAFLAGS = +RTS -M512m -N1 -RTS-CPSATIME = time+CPSAFLAGS = +RTS -M512m -N -RTS -SRCS := $(wildcard *.scm) $(wildcard *.lsp)+SRCS := $(wildcard *.scm) $(wildcard *.prot) $(wildcard *.lsp) include cpsa.mk -all: $(SRCS:%.scm=%_shapes.xhtml) $(SRCS:%.scm=%.xhtml) \- $(SRCS:%.lsp=%_shapes.xhtml) $(SRCS:%.lsp=%.xhtml)+all: $(SRCS:%.scm=%_shapes.xhtml) $(SRCS:%.scm=%.xhtml) \+ $(SRCS:%.prot=%_shapes.xhtml) $(SRCS:%.prot=%.xhtml) \+ $(SRCS:%.lsp=%_shapes.xhtml) $(SRCS:%.lsp=%.xhtml) clean: -rm *.txt *.xhtml
− ghci
@@ -1,5 +0,0 @@-:set -isrc:dist/build/autogen:dist/build/cpsa/autogen-:set -fbreak-on-error-:set args tst/dh_mim.scm--- ghci src/CPSA/Lib/Main.hs--- :trace main
+ mkghci view
@@ -0,0 +1,9 @@+#! /bin/sh+autogen=`find . -name autogen -type d | grep '/cpsa/'`++echo ':set' "-isrc:$autogen"+echo ':set -fbreak-on-error'+echo ':set' args ${1:-bug.scm}+echo '-- ghci src/CPSA/Main.hs'+echo '-- :trace main'+
+ src/CPSA/GoalSat/Main.hs view
@@ -0,0 +1,179 @@+-- Identify unsatisfied skeletons++-- Copyright (c) 2009 The MITRE Corporation+--+-- This program is free software: you can redistribute it and/or+-- modify it under the terms of the BSD License as published by the+-- University of California.++module Main (main) where++import Numeric+import System.IO+import System.Console.GetOpt+import CPSA.Lib.SExpr+import CPSA.Lib.Printer (pp)+import CPSA.Lib.Entry++-- Runtime parameters++data Params = Params+ { file :: Maybe FilePath, -- Nothing specifies standard output+ margin :: Int } -- Output line length+ deriving Show++defaultIndent :: Int+defaultIndent = optIndent defaultOptions++defaultMargin :: Int+defaultMargin = optMargin defaultOptions++main :: IO ()+main =+ do+ (p, params) <- start options interp+ h <- outputHandle $ file params+ go (writeCpsaLn (pp (margin params) defaultIndent) h) p+ hClose h++writeCpsaLn :: (SExpr a -> String) -> Handle -> SExpr a -> IO ()+writeCpsaLn printer h sexpr =+ hPutStrLn h $ printer sexpr++-- Command line option flags+data Flag+ = Help -- Help+ | Info -- Version information+ | Margin String -- Output line length+ | Output String -- Output file name+ deriving Show++options :: [OptDescr Flag]+options =+ [ Option ['o'] ["output"] (ReqArg Output "FILE") "output FILE",+ Option ['m'] ["margin"] (ReqArg Margin "INT")+ ("set output margin (default " ++ show defaultMargin ++ ")"),+ Option ['h'] ["help"] (NoArg Help) "show help message",+ Option ['v'] ["version"] (NoArg Info) "show version number" ]++-- Interpret option flags+interp :: [Flag] -> IO Params+interp flags =+ loop flags (Params { file = Nothing, -- By default, no output file+ margin = defaultMargin })+ where+ loop [] params = return params+ loop (Output name : flags) params+ | file params == Nothing =+ loop flags $ params { file = Just name }+ loop (Margin value : flags) params =+ case readDec value of+ [(margin, "")] ->+ loop flags $ params { margin = margin }+ _ ->+ do+ msg <- usage options ["Bad value for margin\n"]+ abort msg+ loop (Info : _) _ =+ success cpsaVersion+ loop (Help : _) _ =+ do -- Show help then exit with success+ msg <- usage options []+ success msg+ loop _ _ =+ do -- Show help then exit with failure+ msg <- usage options ["Bad option combination\n"]+ abort msg++-- Entry point for finding unsatisfied skeletons+go :: (SExpr () -> IO ()) -> PosHandle -> IO ()+go pp p =+ pov pp p++-- Look for a point of view that contains a goal.+pov :: (SExpr () -> IO ()) -> PosHandle -> IO ()+pov pp p =+ do+ x <- gentlyReadSExpr p+ case x of+ Nothing ->+ return ()+ Just sexpr ->+ case sexpr of+ L _ (S _ "defskeleton" : _ : xs) ->+ case label xs of -- Get laber+ Nothing ->+ abort "Skeleton without a label"+ Just lab -> -- See if it has goals+ if hasKey "goals" xs then+ skel pp p [lab] -- Has a goal+ else+ prot pp p -- Else skip this problem+ _ ->+ pov pp p++-- Get the label number of a skeleton+label :: [SExpr a] -> Maybe Int+label xs =+ case assoc "label" xs of+ [N _ lab] ->+ Just lab+ _ ->+ Nothing++-- Search for next protocol definition+prot :: (SExpr () -> IO ()) -> PosHandle -> IO ()+prot pp p =+ do+ x <- gentlyReadSExpr p+ case x of+ Nothing ->+ return ()+ Just sexpr ->+ case sexpr of+ L _ (S _ "defprotocol" : _ ) ->+ pov pp p+ _ ->+ prot pp p++-- Look for skeleton that are unsatisfied.+skel :: (SExpr () -> IO ()) -> PosHandle -> [Int] -> IO ()+skel pp p sats =+ do+ x <- gentlyReadSExpr p+ case x of+ Nothing ->+ return ()+ Just sexpr ->+ case sexpr of+ L _ (S _ "defskeleton" : _ : xs) ->+ if unsat xs then -- If skeleton is unsatisfied+ case label xs of+ Nothing ->+ abort "Skeleton without a label"+ Just lab -> -- Then add its label to the list+ skel pp p (lab : sats)+ else -- Skeleton okay+ skel pp p sats+ _ -> -- Not a skeleton+ do -- Print results+ pp (L () (map (N ()) (reverse sats)))+ pov pp p -- And then search for POV++-- Is skeleton unsatisfied?+unsat :: [SExpr a] -> Bool+unsat xs = -- Satisfies entry has at least+ hasKey "no" $ assoc "satisfies" xs -- one no++-- Lookup value in alist, appending values with the same key+assoc :: String -> [SExpr a] -> [SExpr a]+assoc key alist =+ concat [ rest | L _ (S _ head : rest) <- alist, key == head ]++-- See if alist has a key+hasKey :: String -> [SExpr a] -> Bool+hasKey key alist =+ any f alist+ where+ f (L _ (S _ head : _)) = head == key+ f _ = False
+ src/CPSA/Latex/Main.hs view
@@ -0,0 +1,252 @@+-- Convert macros into LaTeX macros++-- Copyright (c) 2020 The MITRE Corporation+--+-- This program is free software: you can redistribute it and/or+-- modify it under the terms of the BSD License as published by the+-- University of California.++module Main (main) where++import Data.List+import System.Environment+import System.IO+import System.Console.GetOpt+import Control.Monad+import CPSA.Lib.SExpr+import CPSA.Lib.Expand+import CPSA.Lib.Entry hiding (defaultOptions, Options, optFile)++main :: IO ()+main =+ do+ argv <- getArgs+ (flags, files) <- opts options argv+ opts <- interp defaultOptions flags+ p <- openInput files+ sexprs <- readSExprs p+ macros <- macroExtract sexprs+ let filtered = macroFilter macros+ outputResults opts (reverse $ map translateMacro filtered)++-- Command line option flags+data Flag+ = Output String+ | Help+ | Info+ deriving Show++data Options = Options {+ optFile :: Maybe FilePath+ }+ deriving Show++defaultOptions :: Options+defaultOptions = Options {+ optFile = Nothing+ }++options :: [OptDescr Flag]+options =+ [ Option ['o'] ["output"] (ReqArg Output "FILE") "output FILE",+ Option ['h'] ["help"] (NoArg Help) "show help message",+ Option ['v'] ["version"] (NoArg Info) "show version number" ]++opts :: [OptDescr a] -> [String] -> IO ([a], [String])+opts options argv =+ case getOpt RequireOrder options argv of+ (o, n, []) -> return (o, n)+ (_, _, errs) ->+ do+ msg <- usage options errs+ abort msg++-- Interpret option flags+interp :: Options -> [Flag] -> IO Options+interp opts flags =+ loop flags opts+ where+ loop [] opts = return opts+ loop (Output name : flags) opts+ | optFile opts == Nothing =+ loop flags $ opts { optFile = Just name }+ loop (Help : _) _ =+ do -- Show help then exit with success+ msg <- usage options []+ success msg+ loop (Info : _) _ =+ success cpsaVersion+ loop _ _ =+ do -- Show help then exit with failure+ msg <- usage options ["Bad option combination\n"]+ abort msg++openInput :: [String] -> IO PosHandle+openInput [file] =+ do -- Input from named file+ input <- openFile file ReadMode+ posHandle file input+openInput [] =+ posHandle "" stdin -- Input from the standard input+openInput _ =+ do+ msg <- usage options ["too many input files\n"]+ abort msg++-- Write results to specified output location+outputResults :: Options -> [String] -> IO ()+outputResults opts rs =+ do+ h <- outputHandle (optFile opts)+ mapM_ (hPutStrLn h) rs+ hClose h+ return ()++-- The mechanisms for translating from CPSA to LaTeX are below++-- Extract the macros from a list of SExprs+macroExtract :: [SExpr Pos] -> IO [Macro]+macroExtract sexprs = do+ (mList, _) <- foldM (expandSExpr bound) ([], []) sexprs+ return mList++-- Get rid of splices+macroRemoveSplices :: [Macro] -> [Macro]+macroRemoveSplices [] = []+macroRemoveSplices (m:ms) =+ case (getMacroBody m) of+ L _ (S _ "^":_) -> macroRemoveSplices ms+ _ -> m:(macroRemoveSplices ms)++-- Get rid of defprotocols+macroRemoveDefprotocols :: [Macro] -> [Macro]+macroRemoveDefprotocols [] = []+macroRemoveDefprotocols (m:ms) =+ case (getMacroBody m) of+ L _ (S _ "defprotocol":_) -> macroRemoveDefprotocols ms+ _ -> m:(macroRemoveDefprotocols ms)++-- Get rid of defroles+macroRemoveDefroles :: [Macro] -> [Macro]+macroRemoveDefroles [] = []+macroRemoveDefroles (m:ms) =+ case (getMacroBody m) of+ L _ (S _ "defrole":_) -> macroRemoveDefroles ms+ _ -> m:(macroRemoveDefroles ms)++-- Get rid of rules+macroRemoveRules :: [Macro] -> [Macro]+macroRemoveRules [] = []+macroRemoveRules (m:ms) =+ case (getMacroBody m) of+ L _ (S _ "defrule":_) -> macroRemoveRules ms+ _ -> m:(macroRemoveRules ms)++-- Get rid of goals+macroRemoveGoals :: [Macro] -> [Macro]+macroRemoveGoals [] = []+macroRemoveGoals (m:ms) =+ case (getMacroBody m) of+ L _ (S _ "defgoal":_) -> macroRemoveGoals ms+ _ -> m:(macroRemoveGoals ms)++-- Composition of the preceding three functions+macroFilter :: [Macro] -> [Macro]+macroFilter = macroRemoveDefroles .+ macroRemoveDefprotocols .+ macroRemoveGoals .+ macroRemoveRules .+ macroRemoveSplices++-- Given a macro, return the count of its args+macroArgsCount :: Macro -> Int+macroArgsCount = length . getMacroArgs++-- Translate an SExpr into a String and a final translation+-- environment given some initial environment+translateSExpr :: [(String, String)] -> SExpr a -> (String, [(String, String)])+translateSExpr e (S _ s) =+ case (lookup s e) of+ Nothing -> let t = (translateSymbol s) in (t, (s,t):e)+ Just t -> (t, e)+translateSExpr e (Q _ s) = let t = translateQuotedStr s in (t, (s,t):e)+translateSExpr e (N _ n) = (translateInt n, e)+translateSExpr e (L _ []) = ("", e)+translateSExpr e (L _ (S _ "cat":ys)) =+ (intercalate "\\cat " xs, e1)+ where+ (xs, e1) = translateSExprFold e ys+translateSExpr e (L p (S q "enc":ys)) =+ ("\\enc{" ++ s1 ++ "}{" ++ s2 ++ "}", e2)+ where+ (s2, e1) = translateSExpr e (last ys)+ (s1, e2) = translateSExpr e1 (L p (S q "cat":init ys))+translateSExpr e (L p (S q "hash":ys)) =+ ("\\hash{" ++ s ++ "}", e')+ where+ (s, e') = translateSExpr e (L p (S q "cat":ys))+translateSExpr e (L _ [S _ "pubk", y1, y2]) =+ case translateSExprFold e [y1, y2] of+ ([s1, s2], e1) ->+ ("\\pubktwo{" ++ s1 ++ "}{" ++ s2 ++ "}", e1)+ _ ->+ error "translateSExpr: bad fold for pubktwo"+translateSExpr e (L _ [S _ "privk", y1, y2]) =+ case translateSExprFold e [y1, y2] of+ ([s1, s2], e1) ->+ ("\\privktwo{" ++ s1 ++ "}{" ++ s2 ++ "}", e1)+ _ ->+ error "translateSExpr: bad fold for privktwo"+translateSExpr e (L _ ys) =+ (concat xs, e1)+ where+ (xs, e1) = translateSExprFold e ys++translateSExprFold :: [(String, String)] -> [SExpr a] ->+ ([String], [(String, String)])+translateSExprFold e ys = (xs, e')+ where+ (xs, e') = foldr f ([], e) ys+ f y (acc, env) = (x:acc, e'')+ where (x, e'') = translateSExpr env y++-- Translate a CPSA macro into an equivalent LaTeX macro+translateMacro :: Macro -> String+translateMacro m =+ let name = toMathMode $ getMacroName m+ args = getMacroArgs m+ argc = macroArgsCount m+ body = getMacroBody m+ env = zip args ["{#" ++ (show i) ++ "}" | i <- [(1::Int)..]]+ prelude = "\\newcommand{\\"+ l = "}["+ r = "]{"+ in prelude++name++l++(show argc)++r++(fst $ translateSExpr env body)++"}"++-- Symbol to String translation rules+translateSymbol :: String -> String+translateSymbol s = "\\" ++ (toMathMode s)++-- Quoted string to String translation rules+translateQuotedStr :: String -> String+translateQuotedStr s = "\\tag{" ++ s' ++ "}"+ where s' = toMathModeSpaced s++-- Delete chars LaTeX math mode doesn't like+toMathMode :: String -> String+toMathMode s = [c | c<-s, not (c `elem` badChars)]+ where badChars = " -"++-- Int to String translation rules+translateInt :: Int -> String+translateInt n = show n++-- Replace chars LaTeX math mode doesn't like with "\\ "+toMathModeSpaced :: String -> String+toMathModeSpaced s = intercalate "\\ " (f s)+ where badChars = " -"+ f :: String -> [String]+ f s = case dropWhile (`elem` badChars) s of+ "" -> []+ s' -> w : f s''+ where (w, s'') = break (`elem` badChars) s'
src/CPSA/Lib/Declaration.hs view
@@ -13,7 +13,7 @@ dterms, dlocs, daux, declInst, declInstAux, DeclInst, dkugenFull, dkabsent, declsTerms, addDeclInst, declMember, nsdecls, DeclInstList, Declaration, DeclInFormat(..), DeclOutFormat(..),- DeclList, declarationRoleTags,+ DeclList, declarationRoleTags, -- BasicOutFmt, MultiTermOutFmt, NullOutFmt, BasicRoleOutFmt, GeneralOutFmt, -- BasicInFmt, MultiTermInFmt, NullInFmt, TwoTermInFmt, declCheck, Loc, avoidTerms,@@ -460,3 +460,5 @@ where failures = [t1 | (tag1,t1) <- pairs, (tag2,t2) <- pairs, t1 == t2, tag1 /= tag2] pairs = map (\ di -> (daux di, head $ dterms di)) $ tagDecls "subsort" decls++
src/CPSA/Lib/Expand.hs view
@@ -12,7 +12,9 @@ #define MonadFail Monad #endif -module CPSA.Lib.Expand (expand, readSExprs) where+module CPSA.Lib.Expand (expand, readSExprs, Macro,+ expandSExpr, bound, getMacroName,+ getMacroArgs, getMacroBody) where import Control.Monad import System.IO (openFile, IOMode (ReadMode))@@ -87,6 +89,15 @@ { name :: String, args :: [String], body :: SExpr Pos }++getMacroName :: Macro -> String+getMacroName (Macro {name=n, args=_, body=_}) = n++getMacroArgs :: Macro -> [String]+getMacroArgs (Macro {name=_, args=a, body=_}) = a++getMacroBody :: Macro -> SExpr Pos+getMacroBody (Macro {name=_, args=_, body=b}) = b defmacro :: MonadFail m => Pos -> [SExpr Pos] -> m Macro defmacro _ [L _ (name : args), body] =
src/CPSA/Lib/Loader.hs view
@@ -558,10 +558,22 @@ case x of S _ role : N _ height : env -> do- (gen, i) <- loadInst pos p kvars gen role height env+ (gen, i) <- loadInst pos p kvars gen role height env False loadInsts top p kvars gen (i : insts) xs _ -> fail (shows pos "Malformed defstrand")+loadInsts top p kvars gen insts (L pos (S _ "defstrandmax" : x) : xs) =+ case x of+ S _ role : N _ height : env ->+ do+ (gen, i) <- loadInst pos p kvars gen role height env True+ loadInsts top p kvars gen (i : insts) xs+ S _ role : env ->+ do+ (gen, i) <- loadInst pos p kvars gen role 0 env True+ loadInsts top p kvars gen (i : insts) xs+ _ ->+ fail (shows pos "Malformed defstrandmax") loadInsts top p kvars gen insts (L pos (S _ "deflistener" : x) : xs) = case x of [term] ->@@ -572,7 +584,7 @@ fail (shows pos "Malformed deflistener") loadInsts top p kvars gen insts xs = do- badKey ["defstrand", "deflistener"] xs+ badKey ["defstrand", "deflistener", "defstrandmax"] xs _ <- alist [] xs -- Check syntax of xs others <- loadGenSkelDecls heights kvars (assocDecls xs) predefs <- loadAllPredefSkelDecls heights kvars xs@@ -589,7 +601,7 @@ goals = assoc "goals" xs pov = assoc "pov" xs kcomment =- loadComment "subgoals" goals +++ loadComment "goals" goals ++ loadComment "comment" (assoc "comment" xs) loadComment :: String -> [SExpr Pos] -> [SExpr ()]@@ -624,17 +636,19 @@ loadInst :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g -> [t] -> g -> String -> Int ->- [SExpr Pos] -> m (g, Instance t e)-loadInst pos p kvars gen role height env =+ [SExpr Pos] -> Bool -> m (g, Instance t e)+loadInst pos p kvars gen role height env count_from_max = do r <- lookupRole pos p role- case height < 1 || height > length (rtrace r) of+ let height' = if count_from_max then ((length (rtrace r)) - height)+ else height+ case height' < 1 || height' > length (rtrace r) of True -> fail (shows pos "Bad height") False -> do let vars = rvars r (gen', env') <- foldM (loadMaplet kvars vars) (gen, emptyEnv) env- return (mkInstance gen' r env' height)+ return (mkInstance gen' r env' height') lookupRole :: MonadFail m => Pos -> Prot t g -> String -> m (Role t) lookupRole _ p role | role == "" =
src/CPSA/Lib/Main.hs view
@@ -218,8 +218,8 @@ Option ['m'] ["margin"] (ReqArg Margin "INT") ("set output margin (default " ++ show (optMargin defaultOptions) ++ ")"), Option ['e'] ["expand"] (NoArg Expand)- "expand macros only; don't analyze",- Option ['z'] ["noanalyze"] (NoArg NoAnalyze) "don't analyze",+ "expand macros only; don't load or analyze",+ Option ['z'] ["noanalyze"] (NoArg NoAnalyze) "load but don't analyze", Option ['n'] ["noisochk"] (NoArg NoIsoChk) "disable isomorphism checks", Option ['c'] ["check-nonces"] (NoArg CheckNoncesFirst)
src/CPSA/Lib/Reduction.hs view
@@ -7,7 +7,7 @@ -- University of California. -- Provides the top-level search loop, which implements term reduction--- on skeletos.+-- on skeletons. module CPSA.Lib.Reduction (solve) where @@ -214,20 +214,20 @@ -- n is the current step count -- seen holds the gists of seen skeletons -- todo holds unreduced skeletons--- tobig holds skeletons that have exceed the strand bound.+-- toobig holds skeletons that have exceed the strand bound. breadth :: Algebra t p g s e c => Options -> Handle -> [Preskel t g s e] -> Int -> Int -> Seen t g s e -> [LPreskel t g s e] -> [LPreskel t g s e] -> IO ()-breadth p h ks _ n _ [] [] = -- Empty todo list and tobig list+breadth p h ks _ n _ [] [] = -- Empty todo list and toobig list do wrt p h (comment "Nothing left to do") solve p h ks n -- Solve next problem-breadth p h _ _ _ _ [] tobig = -- Empty todo list and non-null tobig list+breadth p h _ _ _ _ [] toobig = -- Empty todo list and non-null toobig list do wrt p h (comment "Strand bound exceeded--aborting run")- dump p h (reverse tobig) "Strand bound exceeded"-breadth p h ks m n seen todo tobig =- step p h ks m seen n void [] tobig (parMap (branch p seen) todo)+ dump p h (reverse toobig) "Strand bound exceeded"+breadth p h ks m n seen todo toobig =+ step p h ks m seen n void [] toobig (parMap (branch p seen) todo) -- Returns the nodes in a preskeleton that are not realized and are at or -- above the minimum priority.@@ -241,23 +241,23 @@ [Preskel t g s e] -> Int -> Seen t g s e -> Int -> Seen t g s e -> [LPreskel t g s e] -> [LPreskel t g s e] -> [Reduct t g s e] -> IO ()-step p h ks m oseen n seen todo tobig [] = -- Empty reducts- breadth p h ks m n (merge seen oseen) (reverse todo) tobig-step p h _ m _ n _ todo tobig reducts+step p h ks m oseen n seen todo toobig [] = -- Empty reducts+ breadth p h ks m n (merge seen oseen) (reverse todo) toobig+step p h _ m _ n _ todo toobig reducts | n > m = -- Check step count do wrt p h (comment "Step limit exceeded--aborting run")- dump p h (mktodo reducts todo tobig) "Step limit exceeded"-step p h ks m oseen n seen todo tobig (Reduct lk _ _ _ : reducts)+ dump p h (mktodo reducts todo toobig) "Step limit exceeded"+step p h ks m oseen n seen todo toobig (Reduct lk _ _ _ : reducts) | nstrands (content lk) >= optBound p = -- Check strand count- step p h ks m oseen n seen todo (lk : tobig) reducts-step p h ks m oseen n seen todo tobig (Reduct lk size kids dups : reducts)+ step p h ks m oseen n seen todo (lk : toobig) reducts+step p h ks m oseen n seen todo toobig (Reduct lk size kids dups : reducts) | optGoalsSat p && satCheck lk = -- Stop if goals satisfied mode? do let ns = unrealized (content lk) let shape = if null ns then Shape else Fringe wrt p h (commentPreskel lk [] ns shape SatisfiesAll "satisfies all")- step p h ks m oseen n seen todo tobig reducts+ step p h ks m oseen n seen todo toobig reducts | size <= 0 = -- Interpret empty reducts do let ns = unrealized (content lk)@@ -266,12 +266,12 @@ wrt p h (commentPreskel lk [] ns shape (if live then Nada else Dead) (if live then "" else "empty cohort"))- step p h ks m oseen n seen todo tobig reducts+ step p h ks m oseen n seen todo toobig reducts | optDepth p > 0 && depth lk >= optDepth p = do let ns = unrealized (content lk) wrt p h (commentPreskel lk [] ns Fringe Nada "")- step p h ks m oseen n seen todo tobig reducts+ step p h ks m oseen n seen todo toobig reducts | otherwise = do let (n', seen', todo', dups') =@@ -281,7 +281,7 @@ let msg = shows size $ showString " in cohort - " $ shows u " not yet seen" wrt p h (commentPreskel lk (reverse dups') ns Ordinary Nada msg)- step p h ks m oseen n' seen' todo' tobig reducts+ step p h ks m oseen n' seen' todo' toobig reducts -- Expands one branch in the derivation tree. branch :: Algebra t p g s e c => Options -> Seen t g s e ->@@ -313,8 +313,8 @@ mktodo :: [Reduct t g s e] -> [LPreskel t g s e] -> [LPreskel t g s e] -> [LPreskel t g s e]-mktodo reducts todo tobig =- map (\(Reduct lk _ _ _) -> lk) reducts ++ reverse todo ++ reverse tobig+mktodo reducts todo toobig =+ map (\(Reduct lk _ _ _) -> lk) reducts ++ reverse todo ++ reverse toobig type Next t p g s e c = (Int, Seen t g s e, [LPreskel t g s e], [Int])
src/CPSA/Lib/Strand.hs view
@@ -314,13 +314,25 @@ | elem n seen = loop dst ns seen | otherwise = loop dst (preds n ++ ns) (n : seen) --- Compute the transitive closure+-- Compute the transitive closure,+-- omitting pairs on the same strand. -- This routine returns pairs that are not well ordered. -- Deal with it! graphClose :: [GraphEdge e i] -> [GraphEdge e i] graphClose orderings =- filter (not . sameStrands) (loop orderings False orderings)+ filter (not . sameStrands) (graphCloseAll orderings) where+ sameStrands (n0, n1) = strand n0 == strand n1++-- Compute the transitive closure+-- including pairs on the same strand. ++-- This routine returns pairs that are not well ordered.+-- Deal with it!+graphCloseAll :: [GraphEdge e i] -> [GraphEdge e i]+graphCloseAll orderings =+ loop orderings False orderings+ where loop orderings False [] = orderings loop orderings True [] = loop orderings False orderings -- restart loop@@ -331,8 +343,8 @@ inner orderings repeat pairs (p : rest) | elem p orderings = inner orderings repeat pairs rest | otherwise = inner (p : orderings) True pairs rest- sameStrands (n0, n1) = strand n0 == strand n1 + {- -- The nodes that preceed node n via strand succession spreds :: GraphNode e i -> [GraphNode e i]@@ -798,6 +810,14 @@ probIsomorphic :: Algebra t p g s e c => Preskel t g s e -> Preskel t g s e -> Bool probIsomorphic k k' =+-- nvars g == nvars g' && -- Wrong in DH+ ntraces g == ntraces g' &&+ briefs g == briefs g' &&+ norderings g == norderings g' &&+ gpatterns g == gpatterns g' &&+ nleadsto g == nleadsto g' &&+ nsndecls g == nsndecls g' &&+ nfacts g == nfacts g' && any (tryPermProb g g' pr pr') (permutations g g') where g = gist k@@ -2108,18 +2128,16 @@ -- A preskeleton is well formed if the ordering relation is acyclic, -- each atom declared to be uniquely-originating is carried in some--- preskeleton term, and every variable that occurs in each base term--- declared to be non-originating or pen-non-originating occurs in--- some preskeleton term, and the atom must never be carried by any--- term, and every uniquely originating role term mapped by an--- instance is mapped to a term that originates on the instance's--- strand.+-- preskeleton term, and every variable that occurs in any declaration+-- occurs in some preskeleton term, and none of the declaration-based+-- constraints are violated, and furthermore, every uniquely+-- originating role term mapped by an instance is mapped to a term+-- that originates on that instance's strand. -- Exported preskelWellFormed :: Algebra t p g s e c => Preskel t g s e -> Bool preskelWellFormed k =- varSubset (knon k) terms &&- varSubset (kpnon k) terms &&+ varSubset (declsTerms (decls k)) terms && all nonCheck (knon k) && all uniqueCheck (kunique k) && all factCheck (kfacts k) &&@@ -2154,6 +2172,10 @@ $ varSubset (knon k) terms failwith "a variable in pen-non-orig is not in some trace" $ varSubset (kpnon k) terms+ failwith "a variable in uniq-gen is not in some trace"+ $ varSubset (dkuniqgen (decls k)) terms+ failwith "a variable in a declaration is not in some trace"+ $ varSubset (declsTerms (decls k)) terms mapM_ nonCheck $ knon k mapM_ uniqueCheck $ kunique k mapM_ factCheck $ kfacts k@@ -2651,7 +2673,7 @@ f k v | elem v (kvars k) = k | otherwise = error (s ++ ": Bad var in fact " ++ show v)- -- ++ "\n\n" ++ show k)+ -- ++ "\n\n" ++ show k --} {-@@ -2822,7 +2844,7 @@ (g, e) <- nodeMatch n p (g, e) nodeMatch n' p' (g, e) where- tc = map graphPair $ graphClose $ graphEdges $ strands k+ tc = map graphPair $ graphCloseAll $ graphEdges $ strands k -- Node leads to gleadsTo :: Algebra t p g s e c => NodeTerm t -> NodeTerm t -> Sem t g s e@@ -3306,7 +3328,7 @@ | elem t' (dkuniqgen $ decls k) -> [(k, (g, e))] | not $ isAtom t' -> [] | otherwise ->- case originationNodes (strands k) t' of+ case generationNodes (strands k) t' of (_, []) -> [] (_, n : _) -> [(k', (g, e))]
src/CPSA/Pretty/Main.hs view
@@ -65,7 +65,6 @@ = Help -- Help | Info -- Version information | Margin String -- Output line length- | Infix -- Select output notation | Json -- Select output format | Output String -- Output file name deriving Show
+ src/CPSA/Prot/Main.hs view
@@ -0,0 +1,257 @@+-- Translate protocols in Alice and Bob notation into defprotocol syntax++-- Copyright (c) 2020 The MITRE Corporation+--+-- This program is free software: you can redistribute it and/or+-- modify it under the terms of the BSD License as published by the+-- University of California.++{-+This program translates a protocol expressed in Alice and Bob notation+into defprotocol syntax. It translates defprot forms, and passes all+else through unchanged. The syntax of a defprot form is:++PROT ::= (defprot NAME ALGEBRA (vars DECLS) NOTATION* RULE* PROT-ALIST)+NOTATION ::= (msg ROLE ROLE CHMSG)+ | (msg ROLE ROLE CHMSG CHMSG)+ | (from ROLE CHMSG)+ | (to ROLE CHMSG)+ | (clone ROLE ROLE)+ | (assume ROLE ASSUMPTION*)+CHMSG ::= (chmsg CHAN TERM) | (chmsg TERM) | TERM+ASSUMPTION ::= (uniq-orig ...) | (non-orig ...) | ...+RULE ::= (defrule ...)++The form (msg A B M) says role A sends M, and role B receives M.+The form (msg A B M N) says role A sends M, and role B receives N.+The form (from A M) says role A sends M.+The form (to A M) says role A receives M.+The form (clone A B) says make role B have the same messages as A up+to this point in the specification.+-}++{-# LANGUAGE CPP #-}++#if !(MIN_VERSION_base(4,13,0))+#define MonadFail Monad+#endif++module Main (main) where++import Numeric+import System.IO+import System.Console.GetOpt+import Control.Monad (foldM)+import CPSA.Lib.SExpr+import CPSA.Lib.Printer (pp)+import CPSA.Lib.Entry+import CPSA.Lib.Expand (readSExprs, expand)++-- Runtime parameters++data Params = Params+ { file :: Maybe FilePath, -- Nothing specifies standard output+ margin :: Int, -- Output line length+ doExpand :: Bool} -- Expand macros first?+ deriving Show++defaultIndent :: Int+defaultIndent = optIndent defaultOptions++defaultMargin :: Int+defaultMargin = optMargin defaultOptions++main :: IO ()+main =+ do+ (p, params) <- start options interp+ sexprs <- readSExprs p+ -- Could expand macros here+ sexprs <- tryAbort (maybeExpand (doExpand params) sexprs)+ sexprs <- tryAbort (mapM translate sexprs)+ h <- outputHandle $ file params+ mapM_ (display (margin params) h) sexprs+ hClose h++maybeExpand :: Bool -> [SExpr Pos] -> IO [SExpr Pos]+maybeExpand False sexprs = return sexprs+maybeExpand True sexprs = expand sexprs++tryAbort :: IO a -> IO a+tryAbort x =+ do+ a <- tryIO x+ case a of+ Left err -> abort err+ Right a -> return a++display :: Int -> Handle -> SExpr a -> IO ()+display margin h x =+ do+ hPutStrLn h $ pp margin defaultIndent x+ hPutStrLn h ""++-- Command line option flags+data Flag+ = Help -- Help+ | Info -- Version information+ | Margin String -- Output line length+ | Output String -- Output file name+ | Expand -- Expand macros+ deriving Show++options :: [OptDescr Flag]+options =+ [ Option ['o'] ["output"] (ReqArg Output "FILE") "output FILE",+ Option ['m'] ["margin"] (ReqArg Margin "INT")+ ("set output margin (default " ++ show defaultMargin ++ ")"),+ Option ['e'] ["expand"] (NoArg Expand) "expand macros first",+ Option ['h'] ["help"] (NoArg Help) "show help message",+ Option ['v'] ["version"] (NoArg Info) "show version number"]++-- Interpret option flags+interp :: [Flag] -> IO Params+interp flags =+ loop flags (Params { file = Nothing, -- By default, no output file+ margin = defaultMargin, doExpand = False})+ where+ loop [] params = return params+ loop (Expand : flags) params =+ loop flags $ params { doExpand = True }+ loop (Output name : flags) params+ | file params == Nothing =+ loop flags $ params { file = Just name }+ loop (Margin value : flags) params =+ case readDec value of+ [(margin, "")] ->+ loop flags $ params { margin = margin }+ _ ->+ do+ msg <- usage options ["Bad value for margin\n"]+ abort msg+ loop (Info : _) _ =+ success cpsaVersion+ loop (Help : _) _ =+ do -- Show help then exit with success+ msg <- usage options []+ success msg+ loop _ _ =+ do -- Show help then exit with failure+ msg <- usage options ["Bad option combination\n"]+ abort msg++-- Translate one S-expression+translate :: MonadFail m => SExpr Pos -> m (SExpr ())+translate (L pos (S _ "defprot" : xs)) =+ prot pos xs+translate x = return $ strip x++strip :: SExpr a -> SExpr ()+strip (S _ s) = S () s+strip (Q _ s) = Q () s+strip (N _ n) = N () n+strip (L _ l) = L () (map strip l)++prot :: MonadFail m => Pos -> [SExpr Pos] -> m (SExpr ())+prot _ (S _ name : S _ alg : L _ (S _ "vars" : vs) : body) =+ do+ let vars = L () (S () "vars" : map strip vs)+ rs <- roles vars body+ return+ (L () (S () "defprotocol" : S () name :+ S () alg : rs ++ filter scrub (map strip body)))+prot p _ = fail (shows p "Malformed defprot")++roles :: MonadFail m => SExpr () -> [SExpr Pos] -> m [SExpr ()]+roles vars body =+ do+ env <- foldM msg [] body+ assumes <- foldM assume [] body+ return $ map (makeRole vars assumes) env++makeRole :: SExpr () -> Env -> (String, [SExpr ()]) -> SExpr ()+makeRole vars assumes (name, trace) =+ L () (S () "defrole" : S () name : vars :+ L () (S () "trace" : reverse trace) :+ case lookup name assumes of+ Nothing -> []+ Just xs -> reverse xs)++type Env = [(String, [SExpr ()])]++msg :: MonadFail m => Env -> SExpr Pos -> m Env+msg env (L _ [S _ "msg", S _ from, S _ to, term]) =+ return (update to (L () (S () "recv" : chmsg term))+ (update from (L () (S () "send" : chmsg term)) env))+msg env (L _ [S _ "msg", S _ from, S _ to, fromTerm, toTerm]) =+ return (update to (L () (S () "recv" : chmsg toTerm))+ (update from (L () (S () "send" : chmsg fromTerm)) env))+msg _ (L p (S _ "msg" : _)) =+ fail (shows p "Malformed msg")+msg env (L _ [S _ "from", S _ from, term]) =+ return (update from (L () (S () "send" : chmsg term)) env)+msg _ (L p (S _ "from" : _)) =+ fail (shows p "Malformed from")+msg env (L _ [S _ "init", S _ from, term]) =+ return (update from (L () (S () "init" : chmsg term)) env)+msg _ (L p (S _ "init" : _)) =+ fail (shows p "Malformed init")+msg env (L _ [S _ "obsv", S _ from, term]) =+ return (update from (L () (S () "obsv" : chmsg term)) env)+msg _ (L p (S _ "obsv" : _)) =+ fail (shows p "Malformed obsv")+msg env (L _ [S _ "tran", S _ from, term1, term2]) =+ return (update from (L () (S () "tran" : [strip term1, strip term2])) env)+msg _ (L p (S _ "tran" : _)) =+ fail (shows p "Malformed tran")+msg env (L _ [S _ "to", S _ to, term]) =+ return (update to (L () (S () "recv" : chmsg term)) env)+msg _ (L p (S _ "to" : _)) =+ fail (shows p "Malformed to")+msg env (L _ [S _ "clone", S p1 from, S p2 to]) =+ case lookup to env of+ Just _ -> fail (shows p2 ("Role " ++ to ++ " already defined"))+ Nothing ->+ case lookup from env of+ Nothing -> fail (shows p1 ("Role " ++ from ++ " not defined yet"))+ Just trace -> return $ (to, trace) : env+msg _ (L p (S _ "clone" : _)) =+ fail (shows p "Malformed clone")+msg env _ = return env++chmsg :: SExpr a -> [SExpr ()]+chmsg (L _ [S _ "chmsg", S _ chan, term]) =+ [S () chan, strip term]+chmsg (L _ [S _ "chmsg", term]) = [strip term]+chmsg term = [strip term]+++update :: String -> SExpr () -> Env -> Env+update role msg [] = [(role, [msg])]+update role msg ((name, trace) : rest)+ | role == name = (name, msg : trace) : rest+ | otherwise = (name, trace) : update role msg rest++assume :: MonadFail m => Env -> SExpr Pos -> m Env+assume env (L _ (S _ "assume" : S _ role : xs)) =+ return $ augment role (map strip xs) env+assume _ (L p (S _ "assume" : _)) =+ fail (shows p "Malformed assume")+assume env _ = return env++augment :: String -> [SExpr ()] -> Env -> Env+augment role assumes [] = [(role, reverse assumes)]+augment role assumes ((name, a) : rest)+ | role == name = (name, reverse assumes ++ a) : rest+ | otherwise = (name, a) : augment role assumes rest++scrub :: SExpr () -> Bool+scrub (L () (S () "msg" : _)) = False+scrub (L () (S () "from" : _)) = False+scrub (L () (S () "to" : _)) = False+scrub (L () (S () "clone" : _)) = False+scrub (L () (S () "assume" : _)) = False+scrub (L () (S () "init" : _)) = False+scrub (L () (S () "obsv" : _)) = False+scrub (L () (S () "tran" : _)) = False+scrub _ = True
src/CPSA/SAS/SAS.hs view
@@ -267,6 +267,7 @@ leadsto :: [((t, Int), (t, Int))], nons :: [t], pnons :: [t],+ ugens :: [t], uniqs :: [t], origs :: [(t, (t, Int))], -- ugen, ugenAt missing!@@ -286,6 +287,7 @@ leadsto <- loadOrderings heights (assoc leadstoKey xs) nons <- loadBaseTerms kvars (assoc nonOrigKey xs) pnons <- loadBaseTerms kvars (assoc pnonOrigKey xs)+ ugens <- loadBaseTerms kvars (assoc ugenOrigKey xs) uniqs <- loadBaseTerms kvars (assoc uniqOrigKey xs) origs <- loadOrigs kvars heights (assoc origsKey xs) (gen, varmap) <- makeVarmap pos gen [0..(length insts)-1]@@ -302,6 +304,7 @@ leadsto = map f leadsto, nons = nons, pnons = pnons,+ ugens = ugens, uniqs = uniqs, origs = map g origs, facts = facts,@@ -546,6 +549,10 @@ pnonOrigKey :: String pnonOrigKey = "pen-non-orig" +-- The key used in preskeletons for penetrator non-originating atoms+ugenOrigKey :: String+ugenOrigKey = "uniq-gen"+ -- The key used in preskeletons for uniquely originating atoms uniqOrigKey :: String uniqOrigKey = "uniq-orig"@@ -636,6 +643,7 @@ leadsto = mapPair (instantiate env) (leadsto k), nons = map (instantiate env) (nons k), pnons = map (instantiate env) (pnons k),+ ugens = map (instantiate env) (ugens k), uniqs = map (instantiate env) (uniqs k), origs = mapOrig (instantiate env) (origs k), facts = mapFact (instantiate env) (facts k),@@ -685,6 +693,7 @@ map (leadsToForm kctx) (leadsto k) ++ map (unary "non" kctx) (nons k) ++ map (unary "pnon" kctx) (pnons k) +++ map (unary "ugen" kctx) (ugens k) ++ -- Not possible map (unary "uniq" kctx) (noOrigUniqs k) ++ map (uniqAtForm kctx) (origs k) ++ map (factForm kctx) (facts k))
src/ocaml/cpsa.mllib view
@@ -1,5 +1,5 @@ Sexpr_type-Reader+Token Scanner Sexpr Main
src/ocaml/cpsa.mltop view
@@ -1,4 +1,4 @@ Sexpr_type-Reader+Token Scanner Sexpr
src/ocaml/cpsa.odocl view
@@ -1,3 +1,2 @@ Sexpr-Reader Main
src/ocaml/expand.ml view
@@ -2,7 +2,6 @@ open Lexing open Sexpr-open Reader open Main (* The macro expand loop limit *)
src/ocaml/main.mli view
@@ -18,7 +18,7 @@ Function [f] is invoked in a context that catches {!exception:Failure} exceptions, prints the failure message to standard error, and then-exits with error code 1. Function {!val:Reader.failwith_msg} raises+exits with error code 1. Function {!val:Sexpr.failwith_msg} raises {!exception:Failure} exceptions after adding position information to an error message. *) val main : (out_channel -> Lexing.position Sexpr.sexpr list -> unit) -> unit
− src/ocaml/reader.ml
@@ -1,58 +0,0 @@-open Sexpr_type-open Lexing--type token =- | SYM of string- | STR of string- | NUM of int- | LPAR- | RPAR- | EOF--let error_msg pos msg =- Printf.sprintf "%s:%d:%d: %s\n" pos.pos_fname pos.pos_lnum- (pos.pos_cnum - pos.pos_bol + 1) msg--let failwith_msg pos msg =- failwith (error_msg pos msg)--let parse_err = failwith_msg--let rec parse_list lexfun lexbuf lpos list =- let tok = lexfun lexbuf in- let pos = lexeme_start_p lexbuf in- match tok with- | SYM s -> parse_list lexfun lexbuf lpos (S (pos, s) :: list)- | STR s -> parse_list lexfun lexbuf lpos (Q (pos, s) :: list)- | NUM n -> parse_list lexfun lexbuf lpos (N (pos, n) :: list)- | LPAR ->- let x = parse_list lexfun lexbuf pos [] in- parse_list lexfun lexbuf lpos (x :: list)- | RPAR -> L (lpos, List.rev list)- | EOF -> parse_err pos "End of file in list"--let top lexfun lexbuf =- let tok = lexfun lexbuf in- let pos = lexeme_start_p lexbuf in- match tok with- | SYM s -> S (pos, s)- | STR s -> Q (pos, s)- | NUM n -> N (pos, n)- | LPAR -> parse_list lexfun lexbuf pos []- | RPAR -> parse_err pos "Unmatched right parenthesis"- | EOF -> raise End_of_file--let one lexfun lexbuf =- let tok = lexfun lexbuf in- let pos = lexeme_start_p lexbuf in- let x =- match tok with- | SYM s -> S (pos, s)- | STR s -> Q (pos, s)- | NUM n -> N (pos, n)- | LPAR -> parse_list lexfun lexbuf pos []- | RPAR -> parse_err pos "Unmatched right parenthesis"- | EOF -> parse_err pos "Nothing in string" in- match lexfun lexbuf with- | EOF -> x- | _ -> parse_err (lexeme_start_p lexbuf) "Trailing garbage in string"
− src/ocaml/reader.mli
@@ -1,24 +0,0 @@-(** Operations on positions produced by {!val:Sexpr.read_sexpr} *)--open Sexpr_type-open Lexing--(**/**)--type token = SYM of string | STR of string | NUM of int | LPAR | RPAR | EOF--(**/**)--(** Add position information to a message. *)-val error_msg : position -> string -> string--(** Add position information to a message and fail.- @raise Failure always *)-val failwith_msg : position -> string -> 'a--(**/**)--val parse_err : position -> string -> 'a--val top : (lexbuf -> token) -> lexbuf -> position sexpr-val one : (lexbuf -> token) -> lexbuf -> position sexpr
src/ocaml/scanner.mll view
@@ -1,9 +1,9 @@ {-open Reader open Lexing+open Token let parse_error pos =- parse_err pos "Bad token"+ failwith_msg pos "Bad token" } let special = ['*' '/' '<' '=' '>' '!' '?' ':' '$' '%' '_' '&' '~' '^'] let start = ['a' - 'z' 'A' - 'Z'] | special
src/ocaml/sexpr.ml view
@@ -1,6 +1,7 @@-include Sexpr_type open Lexing open Format+open Token+include Sexpr_type let annotation = function | S (a, _) -> a@@ -13,12 +14,57 @@ lexbuf.lex_curr_p <- { lexbuf.lex_curr_p with pos_fname = fname }; lexbuf +let error_msg = error_msg++let failwith_msg = failwith_msg++let parse_err = failwith_msg++let rec parse_list lexfun lexbuf lpos list =+ let tok = lexfun lexbuf in+ let pos = lexeme_start_p lexbuf in+ match tok with+ | SYM s -> parse_list lexfun lexbuf lpos (S (pos, s) :: list)+ | STR s -> parse_list lexfun lexbuf lpos (Q (pos, s) :: list)+ | NUM n -> parse_list lexfun lexbuf lpos (N (pos, n) :: list)+ | LPAR ->+ let x = parse_list lexfun lexbuf pos [] in+ parse_list lexfun lexbuf lpos (x :: list)+ | RPAR -> L (lpos, List.rev list)+ | EOF -> parse_err pos "End of file in list"++let top lexfun lexbuf =+ let tok = lexfun lexbuf in+ let pos = lexeme_start_p lexbuf in+ match tok with+ | SYM s -> S (pos, s)+ | STR s -> Q (pos, s)+ | NUM n -> N (pos, n)+ | LPAR -> parse_list lexfun lexbuf pos []+ | RPAR -> parse_err pos "Unmatched right parenthesis"+ | EOF -> raise End_of_file++let one lexfun lexbuf =+ let tok = lexfun lexbuf in+ let pos = lexeme_start_p lexbuf in+ let x =+ match tok with+ | SYM s -> S (pos, s)+ | STR s -> Q (pos, s)+ | NUM n -> N (pos, n)+ | LPAR -> parse_list lexfun lexbuf pos []+ | RPAR -> parse_err pos "Unmatched right parenthesis"+ | EOF -> parse_err pos "Nothing in string" in+ match lexfun lexbuf with+ | EOF -> x+ | _ -> parse_err (lexeme_start_p lexbuf) "Trailing garbage in string"+ let read_sexpr lexbuf =- Reader.top Scanner.token lexbuf+ top Scanner.token lexbuf let read_sexpr_from_string ch = let lexbuf = Lexing.from_string ch in- Reader.one Scanner.token lexbuf+ one Scanner.token lexbuf let rec sexpr_printer f x = match x with
src/ocaml/sexpr.mli view
@@ -40,8 +40,7 @@ val read_lexbuf : string -> in_channel -> lexbuf (** Read an S-expression from a file annotated with the position of- the datum in the file. See module {!module:Reader} for functions- that use positions to construct informative error messages.+ the datum in the file. @raise End_of_file on end of file @raise Failure on malformed input *)@@ -50,6 +49,13 @@ (** Read an S-expression from a string annotated with the position of the datum in the string. *) val read_sexpr_from_string : string -> position sexpr++(** Add position information to a message. *)+val error_msg : position -> string -> string++(** Add position information to a message and fail.+ @raise Failure always *)+val failwith_msg : position -> string -> 'a (** {1 Output} *)
+ src/ocaml/token.ml view
@@ -0,0 +1,16 @@+open Lexing++type token =+ | SYM of string+ | STR of string+ | NUM of int+ | LPAR+ | RPAR+ | EOF++let error_msg pos msg =+ Printf.sprintf "%s:%d:%d: %s\n" pos.pos_fname pos.pos_lnum+ (pos.pos_cnum - pos.pos_bol + 1) msg++let failwith_msg pos msg =+ failwith (error_msg pos msg)
+ src/ocaml/token.mli view
@@ -0,0 +1,16 @@+(** Operations on positions produced by {!val:Sexpr.read_sexpr} *)++open Lexing++(**/**)++type token = SYM of string | STR of string | NUM of int | LPAR | RPAR | EOF++(**/**)++(** Add position information to a message. *)+val error_msg : position -> string -> string++(** Add position information to a message and fail.+ @raise Failure always *)+val failwith_msg : position -> string -> 'a
tst/Makefile view
@@ -1,53 +1,13 @@-# When the binary changes, run the test suite, and look for changes in-# the output. The changes are not fatal errors, but for a *.scm input-# file, an error produced by the binary is fatal.--TSTS := $(patsubst %.scm,%.txt,$(wildcard *.scm)) \- $(patsubst %.lsp,%.txt,$(wildcard *.lsp))-CPSA = ../dist/build/cpsa/cpsa$(EXE)-DIFF = ../dist/build/cpsadiff/cpsadiff$(EXE)-SHAPES = ../dist/build/cpsashapes/cpsashapes$(EXE)-SAS = ../dist/build/cpsasas/cpsasas$(EXE)-ANNOTATIONS = ../dist/build/cpsaannotations/cpsaannotations$(EXE)-GRAPH = ../dist/build/cpsagraph/cpsagraph$(EXE)-CPSAFLAGS = +RTS -M512m -N8 -RTS--# The expected answers are in files with the .tst extension.--# Analyze protocols for shapes expecting success-%.txt: %.scm $(CPSA)- time $(CPSA) $(CPSAFLAGS) -o $@ $*.scm- -$(DIFF) $(DIFFFLAGS) $*.tst $*.txt--# Analyze protocols for shapes expecting failure-%.txt: %.lsp $(CPSA)- -time $(CPSA) $(CPSAFLAGS) -o $@ $*.lsp- -$(DIFF) $(DIFFFLAGS) $*.tst $*.txt--# Extract shapes-%_shapes.txt: %.txt- $(SHAPES) $(SHAPESFLAGS) -o $@ $<--# Extract shape analysis sentences-%_sas.text: %.txt- $(SAS) $(SASFLAGS) -o $@ $<--# Annotate shapes-%_annotations.txt: %_shapes.txt- $(ANNOTATIONS) $(ANNOTATIONSFLAGS) -o $@ $<--# Visualize output-%.svg: %.txt- $(GRAPH) -c -o $@ $<+CPSAFLAGS = +RTS -M512m -N -RTS+CPSATIME = time -# Visualize output using the expanded format-%.xhtml: %.txt- $(GRAPH) $(GRAPHFLAGS) -o $@ $<+SRCS := $(wildcard *.scm) $(wildcard *.prot) $(wildcard *.lsp) -.PRECIOUS: %.txt %_shapes.txt %_annotations.txt+include ../doc/cpsa.mk -all: $(patsubst %.txt,%.xhtml,$(TSTS)) \- $(patsubst %.txt,%_shapes.xhtml,$(TSTS))+all: $(SRCS:%.scm=%_shapes.xhtml) $(SRCS:%.scm=%.xhtml) \+ $(SRCS:%.prot=%_shapes.xhtml) $(SRCS:%.prot=%.xhtml) \+ $(SRCS:%.lsp=%_shapes.xhtml) $(SRCS:%.lsp=%.xhtml) clean: -rm *.txt *.xhtml
tst/aik.tst view
@@ -1,7 +1,7 @@ (herald "Anonymous identity protocol from TCG") -(comment "CPSA 3.6.5")-(comment "All input read from aik.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/aik.scm") (defprotocol aikprot basic (defrole ca
tst/attest.tst view
@@ -1,7 +1,7 @@ (herald attest-door) -(comment "CPSA 3.6.5")-(comment "All input read from attest.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/attest.scm") (defprotocol attest-door basic (defrole appraise
tst/axiom2.tst view
@@ -1,7 +1,7 @@ (herald "Axiom 2 Protocol" (bound 20)) -(comment "CPSA 3.6.5")-(comment "All input read from axiom2.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/axiom2.scm") (comment "Strand count bounded at 20") (defprotocol ax2 basic
tst/blanchet.tst view
@@ -1,8 +1,8 @@ (herald "Blanchet's Simple Example Protocol" (comment "There is a flaw in this protocol by design")) -(comment "CPSA 3.6.5")-(comment "All input read from blanchet.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/blanchet.scm") (defprotocol blanchet basic (defrole init
+ tst/blanchet_doorsep.prot view
@@ -0,0 +1,45 @@+(defprot blanchet basic+ (vars (a b akey) (s skey) (d data))+ (msg init resp (enc (enc s (invk a)) b))+ (msg resp init (enc d s))+ (assume init (uniq-orig s))+ (assume resp (uniq_orig d))+ (comment "Blanchet's protocol"))++(defskeleton blanchet+ (vars (a b akey) (s skey) (d data))+ (defstrand init 2 (a a) (b b) (s s) (d d))+ (non-orig (invk b))+ (comment "Analyze from the initiator's perspective"))++(defprot doorsep basic+ (vars (p d akey) (k skey) (t text))+ (msg person door (enc (enc k (invk p)) d))+ (msg door person (enc t k))+ (msg person door t)+ (assume person (uniq-orig k))+ (defrule trust+ (forall ((z strd) (p d akey) (k skey))+ (implies+ (and (p "person" z 1)+ (p "person" "p" z p)+ (p "person" "d" z d)+ (p "person" "k" z k)+ (fact trust p))+ (and (non (invk d))+ (uniq k))))))++(defskeleton doorsep+ (vars (p akey) (t text))+ (defstrand door 3 (p p) (t t))+ (non-orig (invk p))+ (uniq-orig t)+ (facts (trust p))+ (comment "Analyze from the door's perspective"))++(defskeleton doorsep+ (vars (p akey) (t text))+ (defstrand door 3 (p p) (t t))+ (non-orig (invk p))+ (uniq-orig t)+ (comment "Analyze from the door's perspective when we don't trust p"))
+ tst/blanchet_doorsep.tst view
@@ -0,0 +1,224 @@+(comment "CPSA 3.6.5")+(comment "All input read from blanchet_doorsep.scm")++(defprotocol blanchet basic+ (defrole init+ (vars (a b akey) (s skey) (d data))+ (trace (send (enc (enc s (invk a)) b)) (recv (enc d s)))+ (uniq-orig s))+ (defrole resp+ (vars (a b akey) (s skey) (d data))+ (trace (recv (enc (enc s (invk a)) b)) (send (enc d s)))+ (uniq_orig d))+ (comment "Blanchet's protocol"))++(defskeleton blanchet+ (vars (d data) (s skey) (a b akey))+ (defstrand init 2 (d d) (s s) (a a) (b b))+ (non-orig (invk b))+ (uniq-orig s)+ (comment "Analyze from the initiator's perspective")+ (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s))))+ (label 0)+ (unrealized (0 1))+ (origs (s (0 0)))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton blanchet+ (vars (d data) (s skey) (a b a-0 b-0 akey))+ (defstrand init 2 (d d) (s s) (a a) (b b))+ (defstrand resp 2 (d d) (s s) (a a-0) (b b-0))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (invk b))+ (uniq-orig s)+ (operation encryption-test (added-strand resp 2) (enc d s) (0 1))+ (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))+ ((recv (enc (enc s (invk a-0)) b-0)) (send (enc d s))))+ (label 1)+ (parent 0)+ (unrealized (1 0))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton blanchet+ (vars (d data) (s skey) (a b akey))+ (defstrand init 2 (d d) (s s) (a a) (b b))+ (deflistener s)+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (invk b))+ (uniq-orig s)+ (operation encryption-test (added-listener s) (enc d s) (0 1))+ (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))+ ((recv s) (send s)))+ (label 2)+ (parent 0)+ (unrealized (1 0))+ (dead)+ (comment "empty cohort"))++(defskeleton blanchet+ (vars (d data) (s skey) (a b akey))+ (defstrand init 2 (d d) (s s) (a a) (b b))+ (defstrand resp 2 (d d) (s s) (a a) (b b))+ (precedes ((0 0) (1 0)) ((1 1) (0 1)))+ (non-orig (invk b))+ (uniq-orig s)+ (operation nonce-test (contracted (a-0 a) (b-0 b)) s (1 0)+ (enc (enc s (invk a)) b))+ (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))+ ((recv (enc (enc s (invk a)) b)) (send (enc d s))))+ (label 3)+ (parent 1)+ (unrealized)+ (shape)+ (maps ((0) ((a a) (b b) (s s) (d d))))+ (origs (s (0 0))))++(comment "Nothing left to do")++(defprotocol doorsep basic+ (defrole person+ (vars (p d akey) (k skey) (t text))+ (trace (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))+ (uniq-orig k))+ (defrole door+ (vars (p d akey) (k skey) (t text))+ (trace (recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t)))+ (defrule trust+ (forall ((z strd) (p d akey) (k skey))+ (implies+ (and (p "person" z 1) (p "person" "p" z p) (p "person" "d" z d)+ (p "person" "k" z k) (fact trust p))+ (and (non (invk d)) (uniq k))))))++(defskeleton doorsep+ (vars (t text) (k skey) (p d akey))+ (defstrand door 3 (t t) (k k) (p p) (d d))+ (non-orig (invk p))+ (uniq-orig t)+ (facts (trust p))+ (comment "Analyze from the door's perspective")+ (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t)))+ (label 4)+ (unrealized (0 0))+ (origs (t (0 1)))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton doorsep+ (vars (t text) (k skey) (p d d-0 akey))+ (defstrand door 3 (t t) (k k) (p p) (d d))+ (defstrand person 1 (k k) (p p) (d d-0))+ (precedes ((1 0) (0 0)))+ (non-orig (invk p) (invk d-0))+ (uniq-orig t k)+ (facts (trust p))+ (rule trust)+ (operation encryption-test (added-strand person 1) (enc k (invk p))+ (0 0))+ (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))+ ((send (enc (enc k (invk p)) d-0))))+ (label 5)+ (parent 4)+ (unrealized (0 0) (0 2))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton doorsep+ (vars (t text) (k skey) (p d akey))+ (defstrand door 3 (t t) (k k) (p p) (d d))+ (defstrand person 1 (k k) (p p) (d d))+ (precedes ((1 0) (0 0)))+ (non-orig (invk p) (invk d))+ (uniq-orig t k)+ (facts (trust p))+ (operation encryption-test (contracted (d-0 d)) (enc k (invk p)) (0 0)+ (enc (enc k (invk p)) d))+ (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))+ ((send (enc (enc k (invk p)) d))))+ (label 6)+ (parent 5)+ (unrealized (0 2))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton doorsep+ (vars (t text) (k skey) (p d akey))+ (defstrand door 3 (t t) (k k) (p p) (d d))+ (defstrand person 3 (t t) (k k) (p p) (d d))+ (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))+ (non-orig (invk p) (invk d))+ (uniq-orig t k)+ (facts (trust p))+ (operation nonce-test (displaced 1 2 person 3) t (0 2) (enc t k))+ (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))+ ((send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t)))+ (label 7)+ (parent 6)+ (unrealized)+ (shape)+ (maps ((0) ((p p) (t t) (d d) (k k))))+ (origs (k (1 0)) (t (0 1))))++(defskeleton doorsep+ (vars (t text) (k skey) (p d akey))+ (defstrand door 3 (t t) (k k) (p p) (d d))+ (defstrand person 1 (k k) (p p) (d d))+ (deflistener k)+ (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 2)))+ (non-orig (invk p) (invk d))+ (uniq-orig t k)+ (facts (trust p))+ (operation nonce-test (added-listener k) t (0 2) (enc t k))+ (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))+ ((send (enc (enc k (invk p)) d))) ((recv k) (send k)))+ (label 8)+ (parent 6)+ (unrealized (2 0))+ (dead)+ (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol doorsep basic+ (defrole person+ (vars (p d akey) (k skey) (t text))+ (trace (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))+ (uniq-orig k))+ (defrole door+ (vars (p d akey) (k skey) (t text))+ (trace (recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t)))+ (defrule trust+ (forall ((z strd) (p d akey) (k skey))+ (implies+ (and (p "person" z 1) (p "person" "p" z p) (p "person" "d" z d)+ (p "person" "k" z k) (fact trust p))+ (and (non (invk d)) (uniq k))))))++(defskeleton doorsep+ (vars (t text) (k skey) (p d akey))+ (defstrand door 3 (t t) (k k) (p p) (d d))+ (non-orig (invk p))+ (uniq-orig t)+ (comment "Analyze from the door's perspective when we don't trust p")+ (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t)))+ (label 9)+ (unrealized (0 0))+ (origs (t (0 1)))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton doorsep+ (vars (t text) (k skey) (p d d-0 akey))+ (defstrand door 3 (t t) (k k) (p p) (d d))+ (defstrand person 1 (k k) (p p) (d d-0))+ (precedes ((1 0) (0 0)))+ (non-orig (invk p))+ (uniq-orig t k)+ (operation encryption-test (added-strand person 1) (enc k (invk p))+ (0 0))+ (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))+ ((send (enc (enc k (invk p)) d-0))))+ (label 10)+ (parent 9)+ (unrealized)+ (shape)+ (maps ((0) ((p p) (t t) (d d) (k k))))+ (origs (k (1 0)) (t (0 1))))++(comment "Nothing left to do")
tst/bltk_test.tst view
@@ -1,7 +1,7 @@ (herald "bltk Test File" (algebra diffie-hellman) (bound 12)) -(comment "CPSA 3.6.5")-(comment "All input read from bltk_test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/bltk_test.scm") (defprotocol test diffie-hellman (defrole r
tst/comp_test.tst view
@@ -1,7 +1,7 @@ (herald "Main Example") -(comment "CPSA 3.6.5")-(comment "All input read from comp_test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/comp_test.scm") (defprotocol main-ex-src basic (defrole qn
tst/dh-ca.tst view
@@ -1,7 +1,7 @@ (herald dhca (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from dh-ca.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/dh-ca.scm") (defprotocol dhca diffie-hellman (defrole init
tst/dh_mim.tst view
@@ -1,8 +1,8 @@ (herald "Diffie-Hellman protocol, man-in-the-middle attack" (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from dh_mim.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/dh_mim.scm") (defprotocol dh_mim diffie-hellman (defrole init
tst/dh_mim2.tst view
@@ -1,8 +1,8 @@ (herald "Diffie-Hellman protocol, man-in-the-middle attack" (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from dh_mim2.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/dh_mim2.scm") (defprotocol dh_mim diffie-hellman (defrole init
tst/dh_sig.tst view
@@ -1,7 +1,7 @@ (herald "Signed DH exchange" (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from dh_sig.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/dh_sig.scm") (defprotocol dh_sig diffie-hellman (defrole init
tst/dh_test.tst view
@@ -1,8 +1,8 @@ (herald "Diffie-Hellman protocol, man-in-the-middle attack" (algebra diffie-hellman) (bound 20)) -(comment "CPSA 3.6.5")-(comment "All input read from dh_test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/dh_test.scm") (comment "Strand count bounded at 20") (defprotocol foo3 diffie-hellman
tst/dhnsl_basic.tst view
@@ -1,8 +1,8 @@ (herald "Diffie-Hellman enhanced Needham-Schroeder-Lowe Protocol" (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from dhnsl_basic.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/dhnsl_basic.scm") (defprotocol dhnsl diffie-hellman (defrole resp
tst/dhnsl_use.tst view
@@ -1,8 +1,8 @@ (herald "Diffie-Hellman enhanced Needham-Schroeder-Lowe Protocol" (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from dhnsl_use.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/dhnsl_use.scm") (defprotocol dhnsl diffie-hellman (defrole resp
tst/enrich.tst view
@@ -1,7 +1,7 @@ (herald enrich) -(comment "CPSA 3.6.5")-(comment "All input read from enrich.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/enrich.scm") (defprotocol enrich basic (defrole extend
tst/envelope.scm view
@@ -61,7 +61,8 @@ tne tno "false"))) (tran state (extend value state))) (uniq-orig tne)- (non-orig (invk tpmkey)))+ ;; (non-orig (invk tpmkey)) ; JDG: This assumption irrelevant + ) ;; This role creates a key whose use is restricted to a requested ;; pcr value (since we only model one pcr). It doesn't create or@@ -113,10 +114,16 @@ (send (enc v k))) (uniq-orig n v tno esk) (neq (tno n))- (non-orig aik esk1 (invk tpmkey))))+ (non-orig aik esk1 (invk tpmkey) ; JDG: This assumption important + ))) ;;; Initial skeleton (defskeleton envelope+ (vars (v n data) (esk skey) (k aik tpmkey akey) (pcr mesg))+ (deflistener esk)+ (defstrand alice 7 (esk esk) (n n) (pcr pcr) (v v) (k k) (aik aik)))++(defskeleton envelope (vars (v n data) (k aik akey) (pcr mesg)) (deflistener (refuse n pcr v k aik)) (deflistener v)@@ -126,3 +133,9 @@ (vars (v data)) (deflistener v) (defstrand alice 7 (v v)))++(defskeleton envelope+ (vars (v n data) (k aik akey) (pcr mesg))+ (deflistener (refuse n pcr v k aik))+ ;; (deflistener v)+ (defstrand alice 7 (n n) (pcr pcr) (v v) (k k) (aik aik)))
tst/envelope.tst view
@@ -1,7792 +1,10570 @@ (herald "Envelope Protocol" (bound 20)) -(comment "CPSA 3.6.5")-(comment "All input read from envelope.scm")-(comment "Strand count bounded at 20")--(defprotocol envelope basic- (defrole tpm-power-on (vars) (trace (init "0")))- (defrole tpm-quote- (vars (nonce pcr mesg) (aik akey))- (trace (recv (cat "quote" nonce)) (obsv pcr)- (send (enc "quote" pcr nonce aik)))- (non-orig aik))- (defrole tpm-extend-enc- (vars (value state mesg) (esk skey) (tne tno data) (tpmkey akey))- (trace (recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc value esk)) tno- "false"- (hash esk- (hash "execute transport" (hash "extend" (enc value esk)))- tne tno "false"))) (tran state (hash value state)))- (non-orig (invk tpmkey))- (uniq-orig tne))- (defrole tpm-create-key- (vars (k aik akey) (pcr mesg) (esk skey))- (trace (recv (enc "create key" pcr esk))- (send (enc "created" k pcr aik)))- (non-orig (invk k) aik esk)- (uniq-orig k))- (defrole tpm-decrypt- (vars (m pcr mesg) (k aik akey))- (trace (recv (cat "decrypt" (enc m k)))- (recv (enc "created" k pcr aik)) (obsv pcr) (send m))- (non-orig aik))- (defrole alice- (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)- (pcr mesg))- (trace (send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- (non-orig aik esk1 (invk tpmkey))- (uniq-orig v n tno esk)- (neq (tno n))))--(defskeleton envelope- (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)- (k aik tpmkey akey))- (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (neq (tno n))- (non-orig esk1 aik (invk tpmkey))- (uniq-orig v n tno esk)- (traces- ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k))))- (label 0)- (unrealized (0 0) (1 0) (2 5))- (preskeleton)- (origs (esk (2 0)) (n (2 2)) (tno (2 2)) (v (2 6)))- (comment "Not a skeleton"))--(defskeleton envelope- (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)- (k aik tpmkey akey))- (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (precedes ((2 6) (0 0)) ((2 6) (1 0)))- (neq (tno n))- (non-orig esk1 aik (invk tpmkey))- (uniq-orig v n tno esk)- (traces- ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k))))- (label 1)- (parent 0)- (unrealized (0 0) (2 5))- (origs (esk (2 0)) (n (2 2)) (tno (2 2)) (v (2 6)))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)- (k aik tpmkey aik-0 akey))- (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (enc "created" k (hash "obtain" (hash n pcr)) aik))- (aik aik-0))- (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 2) (2 5)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk tpmkey))- (uniq-orig v n tno esk)- (operation encryption-test (added-strand tpm-quote 3)- (enc "created" k (hash "obtain" (hash n pcr)) aik) (2 5))- (traces- ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (cat "quote" nonce))- (obsv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send- (enc "quote" (enc "created" k (hash "obtain" (hash n pcr)) aik)- nonce aik-0))))- (label 2)- (parent 1)- (unrealized (0 0) (3 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (pcr mesg) (v n tne tno data) (esk1 esk esk-0 skey)- (k aik tpmkey akey))- (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))- (esk esk-0) (k k) (aik aik))- (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)))- (neq (tno n))- (non-orig esk1 esk-0 aik (invk k) (invk tpmkey))- (uniq-orig v n tno esk k)- (operation encryption-test (added-strand tpm-create-key 2)- (enc "created" k (hash "obtain" (hash n pcr)) aik) (2 5))- (traces- ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))- (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))- (label 3)- (parent 1)- (unrealized (0 0) (1 0) (3 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk esk-0 skey)- (k aik tpmkey aik-0 akey))- (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))- (esk esk-0) (k k) (aik aik))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (enc "create key" (hash "obtain" (hash n pcr)) esk-0))- (aik aik-0))- (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)) ((4 2) (3 0)))- (neq (tno n))- (non-orig esk1 esk-0 aik aik-0 (invk k) (invk tpmkey))- (uniq-orig v n tno esk k)- (operation encryption-test (added-strand tpm-quote 3)- (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (3 0))- (traces- ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))- (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))- ((recv (cat "quote" nonce))- (obsv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))- (send- (enc "quote"- (enc "create key" (hash "obtain" (hash n pcr)) esk-0) nonce- aik-0))))- (label 4)- (parent 3)- (unrealized (0 0) (1 0) (4 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)- (k aik tpmkey akey))- (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))- (esk esk1) (k k) (aik aik))- (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey))- (uniq-orig v n tno esk k)- (operation encryption-test (displaced 4 2 alice 5)- (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (3 0))- (traces- ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))- (label 5)- (parent 3)- (unrealized (0 0) (1 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)- (k aik tpmkey aik-0 akey))- (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-quote 3 (nonce nonce) (pcr v) (aik aik-0))- (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 1)) ((3 1) (2 5))- ((4 2) (1 0)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))- (uniq-orig v n tno esk k)- (operation nonce-test (added-strand tpm-quote 3) v (1 0) (enc v k))- (traces- ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))- ((recv (cat "quote" nonce)) (obsv v)- (send (enc "quote" v nonce aik-0))))- (label 6)- (parent 5)- (unrealized (0 0) (4 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (pcr pcr-0 mesg) (v n tne tno data) (esk1 esk skey)- (k aik tpmkey aik-0 akey))- (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))- (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))- ((4 3) (1 0)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))- (uniq-orig v n tno esk k)- (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))- (traces- ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v)))- (label 7)- (parent 5)- (unrealized (0 0) (4 1))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (pcr pcr-0 nonce mesg) (v n tne tno data) (esk1 esk skey)- (k aik tpmkey aik-0 aik-1 akey))- (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (enc "created" k pcr-0 aik-0)) (aik aik-1))- (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))- ((3 1) (5 1)) ((4 3) (1 0)) ((5 2) (4 1)))- (neq (tno n))- (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))- (uniq-orig v n tno esk k)- (operation encryption-test (added-strand tpm-quote 3)- (enc "created" k pcr-0 aik-0) (4 1))- (traces- ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v))- ((recv (cat "quote" nonce)) (obsv (enc "created" k pcr-0 aik-0))- (send (enc "quote" (enc "created" k pcr-0 aik-0) nonce aik-1))))- (label 8)- (parent 7)- (unrealized (0 0) (5 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)- (k aik tpmkey akey))- (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))- (k k) (aik aik))- (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))- ((4 3) (1 0)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey))- (uniq-orig v n tno esk k)- (operation encryption-test (displaced 5 3 tpm-create-key 2)- (enc "created" k pcr-0 aik-0) (4 1))- (traces- ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (obsv (hash "obtain" (hash n pcr))) (send v)))- (label 9)- (parent 7)- (unrealized (0 0) (4 2))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (pcr mesg) (v n tne tno tne-0 tno-0 data) (esk1 esk esk-0 skey)- (k aik tpmkey tpmkey-0 akey))- (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n pcr))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))- ((4 3) (1 0)) ((5 3) (4 2)))- (leadsto ((5 3) (4 2)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))- (uniq-orig v n tno tne-0 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash "obtain" (hash n pcr)) (4 2))- (traces- ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (obsv (hash "obtain" (hash n pcr))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n pcr) (hash "obtain" (hash n pcr)))))- (label 10)- (parent 9)- (unrealized (0 0) (5 3))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))- ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 3) (5 3)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash n state) (5 3))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state))))- (label 11)- (parent 10)- (unrealized (0 0) (6 2))- (comment "3 in cohort - 3 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-quote 3 (nonce nonce)- (pcr- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")) (aik aik-0))- (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))- ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 3) (5 3))- ((7 2) (6 2)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false") (6 2))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv (cat "quote" nonce))- (obsv- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (enc "quote"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false") nonce aik-0))))- (label 12)- (parent 11)- (unrealized (0 0) (6 2) (7 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 data)- (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey-1))- (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))- ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))- ((6 1) (2 1)) ((6 3) (5 3)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tne tno tne-0 esk k)- (operation encryption-test (displaced 7 2 alice 3)- (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false") (6 2))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state))))- (label 13)- (parent 11)- (unrealized (0 0) (6 0))- (comment "3 in cohort - 3 not yet seen"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))- ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))- ((6 3) (5 3)) ((7 1) (6 2)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation encryption-test- (added-listener- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false") (6 2))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))))- (label 14)- (parent 11)- (unrealized (0 0) (6 2) (7 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-quote 3 (nonce nonce)- (pcr- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")) (aik aik-0))- (defstrand tpm-extend-enc 4 (value esk-1)- (state- (cat (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false")) (tne tne-2) (tno tno-2) (esk esk-2)- (tpmkey tpmkey-2))- (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))- ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (8 3))- ((6 3) (5 3)) ((7 2) (6 2)) ((8 3) (7 1)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false") (7 1))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv (cat "quote" nonce))- (obsv- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (enc "quote"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false") nonce aik-0)))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc esk-1 esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc esk-1 esk-2)))- tne-2 tno-2 "false")))- (tran- (cat (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false")- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))))- (label 15)- (parent 12)- (unrealized (0 0) (6 2) (8 3))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 data)- (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))- ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))- ((6 1) (2 1)) ((6 3) (5 3)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))- (uniq-orig v n tne tno tne-0 esk k)- (operation nonce-test (contracted (tpmkey-1 tpmkey)) esk (6 0)- (enc esk tpmkey))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state))))- (label 16)- (parent 13)- (unrealized (0 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)- (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey-1))- (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))- (precedes ((2 0) (7 1)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))- ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))- ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (6 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tne tno tne-0 esk k)- (operation nonce-test (added-strand tpm-quote 3) esk (6 0)- (enc esk tpmkey))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" nonce)) (obsv esk)- (send (enc "quote" esk nonce aik-0))))- (label 17)- (parent 13)- (unrealized (0 0) (7 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state pcr mesg) (v n tne tno tne-0 tno-0 data)- (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey-1))- (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))- (precedes ((2 0) (7 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))- ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))- ((6 1) (2 1)) ((6 3) (5 3)) ((7 3) (6 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tne tno tne-0 esk k)- (operation nonce-test (added-strand tpm-decrypt 4) esk (6 0)- (enc esk tpmkey))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "decrypt" (enc esk tpmkey)))- (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))- (label 18)- (parent 13)- (unrealized (0 0) (7 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))- (aik aik-0))- (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))- ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))- ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (hash "execute transport" (hash "extend" (enc n esk-1))) (7 0))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "quote" nonce))- (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))- (send- (enc "quote"- (hash "execute transport" (hash "extend" (enc n esk-1))) nonce- aik-0))))- (label 19)- (parent 14)- (unrealized (0 0) (6 2) (8 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))- ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))- ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation encryption-test- (added-listener- (cat "execute transport" (hash "extend" (enc n esk-1))))- (hash "execute transport" (hash "extend" (enc n esk-1))) (7 0))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1))))))- (label 20)- (parent 14)- (unrealized (0 0) (6 2) (8 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 data)- (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))- ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))- ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))- (uniq-orig v n tne tno tne-0 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik) (0 0))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))))- (label 21)- (parent 16)- (unrealized (7 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)- (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (aik aik-0))- (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))- ((2 6) (7 1)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))- ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0))- (uniq-orig v n tne tno tne-0 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik) (0 0))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" nonce))- (obsv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send- (enc "quote"- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)- nonce aik-0))))- (label 22)- (parent 16)- (unrealized (7 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state pcr nonce mesg) (v n tne tno tne-0 tno-0 data)- (esk1 esk esk-0 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey-1))- (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))- (precedes ((2 0) (7 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))- ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))- ((6 1) (2 1)) ((6 3) (5 3)) ((7 3) (6 0)) ((8 2) (7 1)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tne tno tne-0 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (enc "created" tpmkey pcr aik-0) (7 1))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "decrypt" (enc esk tpmkey)))- (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))- ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))- (send- (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))- (label 23)- (parent 18)- (unrealized (0 0) (8 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))- (aik aik-0))- (defstrand tpm-extend-enc 4 (value "execute transport")- (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)- (esk esk-2) (tpmkey tpmkey-2))- (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))- ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))- ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)) ((9 3) (8 1)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((9 3) (8 1)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash "execute transport" (hash "extend" (enc n esk-1))) (8 1))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "quote" nonce))- (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))- (send- (enc "quote"- (hash "execute transport" (hash "extend" (enc n esk-1))) nonce- aik-0)))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport"- (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"- (hash esk-2- (hash "execute transport"- (hash "extend" (enc "execute transport" esk-2))) tne-2- tno-2 "false")))- (tran (hash "extend" (enc n esk-1))- (hash "execute transport" (hash "extend" (enc n esk-1))))))- (label 24)- (parent 19)- (unrealized (0 0) (6 2) (9 3))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (hash "extend" (enc n esk-1))) (aik aik-0))- (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))- ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))- ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 2) (8 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (hash "extend" (enc n esk-1)) (8 0))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))- (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0))))- (label 25)- (parent 20)- (unrealized (0 0) (6 2) (9 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (deflistener (cat "extend" (enc n esk-1)))- (precedes ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))- ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))- ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 1) (8 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation encryption-test- (added-listener (cat "extend" (enc n esk-1)))- (hash "extend" (enc n esk-1)) (8 0))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "extend" (enc n esk-1)))- (send (cat "extend" (enc n esk-1)))))- (label 26)- (parent 20)- (unrealized (0 0) (9 0))- (comment "3 in cohort - 3 not yet seen"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))- ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))- ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tne tno tne-0 tne-1 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash "refuse" (hash n state)) (7 1))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state)))))- (label 27)- (parent 21)- (unrealized (8 3))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)- (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 tpmkey-3 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))- (aik aik-0))- (defstrand tpm-extend-enc 4 (value "execute transport")- (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)- (esk esk-2) (tpmkey tpmkey-2))- (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))- (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))- (precedes ((2 2) (10 3)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))- ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))- ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)) ((9 3) (8 1))- ((10 3) (9 3)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((9 3) (8 1)) ((10 3) (9 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))- (uniq-orig v n tno tne-0 tne-1 tne-2 tne-3 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash "extend" (enc n esk-1)) (9 3))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "quote" nonce))- (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))- (send- (enc "quote"- (hash "execute transport" (hash "extend" (enc n esk-1))) nonce- aik-0)))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport"- (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"- (hash esk-2- (hash "execute transport"- (hash "extend" (enc "execute transport" esk-2))) tne-2- tno-2 "false")))- (tran (hash "extend" (enc n esk-1))- (hash "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))- (send (cat "establish transport" tne-3))- (recv- (cat "execute transport" (cat "extend" (enc "extend" esk-3))- tno-3 "false"- (hash esk-3- (hash "execute transport"- (hash "extend" (enc "extend" esk-3))) tne-3 tno-3- "false")))- (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))- (label 28)- (parent 24)- (unrealized (0 0) (6 2) (10 3))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (hash "extend" (enc n esk-1))) (aik aik-0))- (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))- (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (precedes ((2 2) (10 3)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))- ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))- ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 2) (8 0))- ((10 3) (9 1)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((10 3) (9 1)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash "extend" (enc n esk-1)) (9 1))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))- (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0)))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc "extend" esk-2))- tno-2 "false"- (hash esk-2- (hash "execute transport"- (hash "extend" (enc "extend" esk-2))) tne-2 tno-2- "false")))- (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))- (label 29)- (parent 25)- (unrealized (0 0) (6 2) (10 3))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk) (tpmkey tpmkey-1))- (deflistener- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk))))- (deflistener (cat "extend" (enc n esk)))- (precedes ((2 0) (6 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))- ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))- ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))- ((9 1) (8 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation nonce-test (contracted (esk-1 esk)) n (9 0) (enc n esk))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno-1- "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne-1- tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false"))- (send- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk))))- (send (cat "execute transport" (hash "extend" (enc n esk)))))- ((recv (cat "extend" (enc n esk)))- (send (cat "extend" (enc n esk)))))- (label 30)- (parent 26)- (unrealized (0 0) (6 0) (7 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (deflistener (cat "extend" (enc n esk-1)))- (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))- (precedes ((2 2) (10 1)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))- ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))- ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 1) (8 0))- ((10 2) (9 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation nonce-test (added-strand tpm-quote 3) n (9 0) (enc n esk))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "extend" (enc n esk-1)))- (send (cat "extend" (enc n esk-1))))- ((recv (cat "quote" nonce)) (obsv n)- (send (enc "quote" n nonce aik-0))))- (label 31)- (parent 26)- (unrealized (0 0) (10 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (deflistener (cat "extend" (enc n esk-1)))- (deflistener esk)- (precedes ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))- ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))- ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))- ((9 1) (8 0)) ((10 1) (9 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation nonce-test (added-listener esk) n (9 0) (enc n esk))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "extend" (enc n esk-1)))- (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk)))- (label 32)- (parent 26)- (unrealized (0 0) (10 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (state mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))- ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))- ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))- ((8 3) (7 1)) ((9 3) (8 3)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash n state) (8 3))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))) (tran state (hash n state))))- (label 33)- (parent 27)- (unrealized (9 2))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk) (tpmkey tpmkey-1))- (deflistener- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk))))- (deflistener (cat "extend" (enc n esk)))- (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))- (precedes ((2 0) (6 0)) ((2 0) (10 1)) ((2 2) (9 0)) ((2 4) (3 0))- ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))- ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))- ((8 1) (7 0)) ((9 1) (8 0)) ((10 2) (7 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation nonce-test (added-strand tpm-quote 3) esk (7 0)- (enc esk tpmkey))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno-1- "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne-1- tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false"))- (send- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk))))- (send (cat "execute transport" (hash "extend" (enc n esk)))))- ((recv (cat "extend" (enc n esk)))- (send (cat "extend" (enc n esk))))- ((recv (cat "quote" nonce)) (obsv esk)- (send (enc "quote" esk nonce aik-0))))- (label 34)- (parent 30)- (unrealized (0 0) (6 0) (10 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk) (tpmkey tpmkey-1))- (deflistener- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk))))- (deflistener (cat "extend" (enc n esk)))- (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))- (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0))- ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))- ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))- ((8 1) (7 0)) ((9 1) (8 0)) ((10 3) (7 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation nonce-test (added-strand tpm-decrypt 4) esk (7 0)- (enc esk tpmkey))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno-1- "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne-1- tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false"))- (send- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk))))- (send (cat "execute transport" (hash "extend" (enc n esk)))))- ((recv (cat "extend" (enc n esk)))- (send (cat "extend" (enc n esk))))- ((recv (cat "decrypt" (enc esk tpmkey)))- (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))- (label 35)- (parent 30)- (unrealized (0 0) (6 0) (10 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (deflistener (cat "extend" (enc n esk-1)))- (deflistener esk)- (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))- (precedes ((2 0) (11 1)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))- ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))- ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))- ((9 1) (8 0)) ((10 1) (9 0)) ((11 2) (10 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation nonce-test (added-strand tpm-quote 3) esk (10 0)- (enc esk tpmkey))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "extend" (enc n esk-1)))- (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))- ((recv (cat "quote" nonce)) (obsv esk)- (send (enc "quote" esk nonce aik-0))))- (label 36)- (parent 32)- (unrealized (0 0) (11 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (deflistener (cat "extend" (enc n esk-1)))- (deflistener esk)- (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))- (precedes ((2 0) (11 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))- ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))- ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))- ((9 1) (8 0)) ((10 1) (9 0)) ((11 3) (10 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation nonce-test (added-strand tpm-decrypt 4) esk (10 0)- (enc esk tpmkey))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "extend" (enc n esk-1)))- (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))- ((recv (cat "decrypt" (enc esk tpmkey)))- (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))- (label 37)- (parent 32)- (unrealized (0 0) (11 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (defstrand tpm-quote 3 (nonce nonce)- (pcr- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false")) (aik aik-0))- (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))- ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))- ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))- ((8 3) (7 1)) ((9 3) (8 3)) ((10 2) (9 2)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (hash esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false") (9 2))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))) (tran state (hash n state)))- ((recv (cat "quote" nonce))- (obsv- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))- (send- (enc "quote"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false") nonce aik-0))))- (label 38)- (parent 33)- (unrealized (9 2) (10 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (deflistener- (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))- (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))- ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))- ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))- ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)- (operation encryption-test- (added-listener- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))- (hash esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false") (9 2))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))) (tran state (hash n state)))- ((recv- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))- (send- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))))- (label 39)- (parent 33)- (unrealized (9 2) (10 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (state pcr nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 data) (esk1 esk esk-0 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk) (tpmkey tpmkey-1))- (deflistener- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk))))- (deflistener (cat "extend" (enc n esk)))- (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))- (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0))- ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))- ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))- ((8 1) (7 0)) ((9 1) (8 0)) ((10 3) (7 0)) ((11 2) (10 1)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (enc "created" tpmkey pcr aik-0) (10 1))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno-1- "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne-1- tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false"))- (send- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk))))- (send (cat "execute transport" (hash "extend" (enc n esk)))))- ((recv (cat "extend" (enc n esk)))- (send (cat "extend" (enc n esk))))- ((recv (cat "decrypt" (enc esk tpmkey)))- (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))- ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))- (send- (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))- (label 40)- (parent 35)- (unrealized (0 0) (6 0) (11 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state pcr nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (deflistener (cat "extend" (enc n esk-1)))- (deflistener esk)- (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))- (precedes ((2 0) (11 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))- ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))- ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))- ((9 1) (8 0)) ((10 1) (9 0)) ((11 3) (10 0)) ((12 2) (11 1)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (enc "created" tpmkey pcr aik-0) (11 1))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "extend" (enc n esk-1)))- (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))- ((recv (cat "decrypt" (enc esk tpmkey)))- (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))- ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))- (send- (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))- (label 41)- (parent 37)- (unrealized (0 0) (12 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)- (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (defstrand tpm-quote 3 (nonce nonce)- (pcr- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false")) (aik aik-0))- (defstrand tpm-extend-enc 4 (value esk-2)- (state- (cat (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false")) (tne tne-3) (tno tno-3) (esk esk-3)- (tpmkey tpmkey-3))- (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))- ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))- ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))- ((8 3) (7 1)) ((9 1) (11 3)) ((9 3) (8 3)) ((10 2) (9 2))- ((11 3) (10 1)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))- ((11 3) (10 1)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false") (10 1))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))) (tran state (hash n state)))- ((recv (cat "quote" nonce))- (obsv- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))- (send- (enc "quote"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false") nonce aik-0)))- ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))- (send (cat "establish transport" tne-3))- (recv- (cat "execute transport" (cat "extend" (enc esk-2 esk-3)) tno-3- "false"- (hash esk-3- (hash "execute transport" (hash "extend" (enc esk-2 esk-3)))- tne-3 tno-3 "false")))- (tran- (cat (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false")- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))))- (label 42)- (parent 38)- (unrealized (9 2) (11 3))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (deflistener- (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (hash "execute transport" (hash "extend" (enc n esk-2))))- (aik aik-0))- (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))- ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))- ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))- ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))- ((11 2) (10 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (hash "execute transport" (hash "extend" (enc n esk-2))) (10 0))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))) (tran state (hash n state)))- ((recv- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))- (send- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false")))- ((recv (cat "quote" nonce))- (obsv (hash "execute transport" (hash "extend" (enc n esk-2))))- (send- (enc "quote"- (hash "execute transport" (hash "extend" (enc n esk-2))) nonce- aik-0))))- (label 43)- (parent 39)- (unrealized (9 2) (11 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (deflistener- (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))- (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))- ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))- ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))- ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))- ((11 1) (10 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)- (operation encryption-test- (added-listener- (cat "execute transport" (hash "extend" (enc n esk-2))))- (hash "execute transport" (hash "extend" (enc n esk-2))) (10 0))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))) (tran state (hash n state)))- ((recv- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))- (send- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))- (send (cat "execute transport" (hash "extend" (enc n esk-2))))))- (label 44)- (parent 39)- (unrealized (9 2) (11 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)- (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (deflistener- (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (hash "execute transport" (hash "extend" (enc n esk-2))))- (aik aik-0))- (defstrand tpm-extend-enc 4 (value "execute transport")- (state (hash "extend" (enc n esk-2))) (tne tne-3) (tno tno-3)- (esk esk-3) (tpmkey tpmkey-3))- (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))- ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))- ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))- ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))- ((11 2) (10 0)) ((12 3) (11 1)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))- ((12 3) (11 1)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash "execute transport" (hash "extend" (enc n esk-2))) (11 1))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))) (tran state (hash n state)))- ((recv- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))- (send- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false")))- ((recv (cat "quote" nonce))- (obsv (hash "execute transport" (hash "extend" (enc n esk-2))))- (send- (enc "quote"- (hash "execute transport" (hash "extend" (enc n esk-2))) nonce- aik-0)))- ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))- (send (cat "establish transport" tne-3))- (recv- (cat "execute transport"- (cat "extend" (enc "execute transport" esk-3)) tno-3 "false"- (hash esk-3- (hash "execute transport"- (hash "extend" (enc "execute transport" esk-3))) tne-3- tno-3 "false")))- (tran (hash "extend" (enc n esk-2))- (hash "execute transport" (hash "extend" (enc n esk-2))))))- (label 45)- (parent 43)- (unrealized (9 2) (12 3))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (deflistener- (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (hash "extend" (enc n esk-2))) (aik aik-0))- (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))- ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))- ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))- ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))- ((11 1) (10 0)) ((12 2) (11 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (hash "extend" (enc n esk-2)) (11 0))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))) (tran state (hash n state)))- ((recv- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))- (send- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))- (send (cat "execute transport" (hash "extend" (enc n esk-2)))))- ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-2)))- (send (enc "quote" (hash "extend" (enc n esk-2)) nonce aik-0))))- (label 46)- (parent 44)- (unrealized (9 2) (12 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (deflistener- (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))- (deflistener (cat "extend" (enc n esk-2)))- (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (12 0)) ((2 4) (3 0))- ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))- ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))- ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))- ((11 1) (10 0)) ((12 1) (11 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)- (operation encryption-test- (added-listener (cat "extend" (enc n esk-2)))- (hash "extend" (enc n esk-2)) (11 0))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))) (tran state (hash n state)))- ((recv- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))- (send- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))- (send (cat "execute transport" (hash "extend" (enc n esk-2)))))- ((recv (cat "extend" (enc n esk-2)))- (send (cat "extend" (enc n esk-2)))))- (label 47)- (parent 44)- (unrealized (12 0))- (comment "3 in cohort - 3 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 tne-4- tno-4 data) (esk1 esk esk-0 esk-1 esk-2 esk-3 esk-4 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 tpmkey-4- akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (deflistener- (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (hash "execute transport" (hash "extend" (enc n esk-2))))- (aik aik-0))- (defstrand tpm-extend-enc 4 (value "execute transport")- (state (hash "extend" (enc n esk-2))) (tne tne-3) (tno tno-3)- (esk esk-3) (tpmkey tpmkey-3))- (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-2))- (tne tne-4) (tno tno-4) (esk esk-4) (tpmkey tpmkey-4))- (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 3)) ((2 4) (3 0))- ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))- ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))- ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))- ((11 2) (10 0)) ((12 3) (11 1)) ((13 3) (12 3)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))- ((12 3) (11 1)) ((13 3) (12 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3) (invk tpmkey-4))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 tne-4 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash "extend" (enc n esk-2)) (12 3))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))) (tran state (hash n state)))- ((recv- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))- (send- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false")))- ((recv (cat "quote" nonce))- (obsv (hash "execute transport" (hash "extend" (enc n esk-2))))- (send- (enc "quote"- (hash "execute transport" (hash "extend" (enc n esk-2))) nonce- aik-0)))- ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))- (send (cat "establish transport" tne-3))- (recv- (cat "execute transport"- (cat "extend" (enc "execute transport" esk-3)) tno-3 "false"- (hash esk-3- (hash "execute transport"- (hash "extend" (enc "execute transport" esk-3))) tne-3- tno-3 "false")))- (tran (hash "extend" (enc n esk-2))- (hash "execute transport" (hash "extend" (enc n esk-2)))))- ((recv (cat "establish transport" tpmkey-4 (enc esk-4 tpmkey-4)))- (send (cat "establish transport" tne-4))- (recv- (cat "execute transport" (cat "extend" (enc "extend" esk-4))- tno-4 "false"- (hash esk-4- (hash "execute transport"- (hash "extend" (enc "extend" esk-4))) tne-4 tno-4- "false")))- (tran (enc n esk-2) (hash "extend" (enc n esk-2)))))- (label 48)- (parent 45)- (unrealized (9 2) (13 3))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)- (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (deflistener- (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (hash "extend" (enc n esk-2))) (aik aik-0))- (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-2))- (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))- (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 3)) ((2 4) (3 0))- ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))- ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))- ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))- ((11 1) (10 0)) ((12 2) (11 0)) ((13 3) (12 1)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))- ((13 3) (12 1)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash "extend" (enc n esk-2)) (12 1))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))) (tran state (hash n state)))- ((recv- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))- (send- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))- (send (cat "execute transport" (hash "extend" (enc n esk-2)))))- ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-2)))- (send (enc "quote" (hash "extend" (enc n esk-2)) nonce aik-0)))- ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))- (send (cat "establish transport" tne-3))- (recv- (cat "execute transport" (cat "extend" (enc "extend" esk-3))- tno-3 "false"- (hash esk-3- (hash "execute transport"- (hash "extend" (enc "extend" esk-3))) tne-3 tno-3- "false")))- (tran (enc n esk-2) (hash "extend" (enc n esk-2)))))- (label 49)- (parent 46)- (unrealized (9 2) (13 3))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk) (tpmkey tpmkey-2))- (deflistener- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-2 tno-2 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk))))- (deflistener (cat "extend" (enc n esk)))- (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 2) (6 2)) ((2 2) (12 0))- ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))- ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))- ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))- ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)- (operation nonce-test (contracted (esk-2 esk)) n (12 0) (enc n esk))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno-2- "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne-2- tno-2 "false"))) (tran state (hash n state)))- ((recv- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-2 tno-2 "false"))- (send- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-2 tno-2 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk))))- (send (cat "execute transport" (hash "extend" (enc n esk)))))- ((recv (cat "extend" (enc n esk)))- (send (cat "extend" (enc n esk)))))- (label 50)- (parent 47)- (unrealized (9 0) (10 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (deflistener- (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))- (deflistener (cat "extend" (enc n esk-2)))- (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))- (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 1)) ((2 4) (3 0))- ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))- ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))- ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))- ((11 1) (10 0)) ((12 1) (11 0)) ((13 2) (12 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)- (operation nonce-test (added-strand tpm-quote 3) n (12 0) (enc n esk))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))) (tran state (hash n state)))- ((recv- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))- (send- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))- (send (cat "execute transport" (hash "extend" (enc n esk-2)))))- ((recv (cat "extend" (enc n esk-2)))- (send (cat "extend" (enc n esk-2))))- ((recv (cat "quote" nonce)) (obsv n)- (send (enc "quote" n nonce aik-0))))- (label 51)- (parent 47)- (unrealized (13 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (deflistener- (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))- (deflistener (cat "extend" (enc n esk-2)))- (deflistener esk)- (precedes ((2 0) (6 0)) ((2 0) (13 0)) ((2 2) (6 2)) ((2 2) (12 0))- ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))- ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))- ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))- ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)- (operation nonce-test (added-listener esk) n (12 0) (enc n esk))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))) (tran state (hash n state)))- ((recv- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))- (send- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))- (send (cat "execute transport" (hash "extend" (enc n esk-2)))))- ((recv (cat "extend" (enc n esk-2)))- (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk)))- (label 52)- (parent 47)- (unrealized (13 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk) (tpmkey tpmkey-2))- (deflistener- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-2 tno-2 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk))))- (deflistener (cat "extend" (enc n esk)))- (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))- (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 1)) ((2 2) (6 2))- ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))- ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))- ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))- ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))- ((13 2) (10 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)- (operation nonce-test (added-strand tpm-quote 3) esk (10 0)- (enc esk tpmkey))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno-2- "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne-2- tno-2 "false"))) (tran state (hash n state)))- ((recv- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-2 tno-2 "false"))- (send- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-2 tno-2 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk))))- (send (cat "execute transport" (hash "extend" (enc n esk)))))- ((recv (cat "extend" (enc n esk)))- (send (cat "extend" (enc n esk))))- ((recv (cat "quote" nonce)) (obsv esk)- (send (enc "quote" esk nonce aik-0))))- (label 53)- (parent 50)- (unrealized (9 0) (13 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state pcr mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk) (tpmkey tpmkey-2))- (deflistener- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-2 tno-2 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk))))- (deflistener (cat "extend" (enc n esk)))- (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))- (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 0)) ((2 2) (6 2))- ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))- ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))- ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))- ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))- ((13 3) (10 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)- (operation nonce-test (added-strand tpm-decrypt 4) esk (10 0)- (enc esk tpmkey))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno-2- "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne-2- tno-2 "false"))) (tran state (hash n state)))- ((recv- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-2 tno-2 "false"))- (send- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-2 tno-2 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk))))- (send (cat "execute transport" (hash "extend" (enc n esk)))))- ((recv (cat "extend" (enc n esk)))- (send (cat "extend" (enc n esk))))- ((recv (cat "decrypt" (enc esk tpmkey)))- (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))- (label 54)- (parent 50)- (unrealized (9 0) (13 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (deflistener- (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))- (deflistener (cat "extend" (enc n esk-2)))- (deflistener esk)- (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))- (precedes ((2 0) (6 0)) ((2 0) (14 1)) ((2 2) (6 2)) ((2 2) (12 0))- ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))- ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))- ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))- ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))- ((14 2) (13 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)- (operation nonce-test (added-strand tpm-quote 3) esk (13 0)- (enc esk tpmkey))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))) (tran state (hash n state)))- ((recv- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))- (send- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))- (send (cat "execute transport" (hash "extend" (enc n esk-2)))))- ((recv (cat "extend" (enc n esk-2)))- (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk))- ((recv (cat "quote" nonce)) (obsv esk)- (send (enc "quote" esk nonce aik-0))))- (label 55)- (parent 52)- (unrealized (14 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state pcr mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (deflistener- (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))- (deflistener (cat "extend" (enc n esk-2)))- (deflistener esk)- (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))- (precedes ((2 0) (6 0)) ((2 0) (14 0)) ((2 2) (6 2)) ((2 2) (12 0))- ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))- ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))- ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))- ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))- ((14 3) (13 0)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)- (operation nonce-test (added-strand tpm-decrypt 4) esk (13 0)- (enc esk tpmkey))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))) (tran state (hash n state)))- ((recv- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))- (send- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))- (send (cat "execute transport" (hash "extend" (enc n esk-2)))))- ((recv (cat "extend" (enc n esk-2)))- (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk))- ((recv (cat "decrypt" (enc esk tpmkey)))- (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))- (label 56)- (parent 52)- (unrealized (14 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state pcr nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 aik-1 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk) (tpmkey tpmkey-2))- (deflistener- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-2 tno-2 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk))))- (deflistener (cat "extend" (enc n esk)))- (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))- (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 0)) ((2 2) (6 2))- ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))- ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))- ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))- ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))- ((13 3) (10 0)) ((14 2) (13 1)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (enc "created" tpmkey pcr aik-0) (13 1))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno-2- "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne-2- tno-2 "false"))) (tran state (hash n state)))- ((recv- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-2 tno-2 "false"))- (send- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-2 tno-2 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk))))- (send (cat "execute transport" (hash "extend" (enc n esk)))))- ((recv (cat "extend" (enc n esk)))- (send (cat "extend" (enc n esk))))- ((recv (cat "decrypt" (enc esk tpmkey)))- (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))- ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))- (send- (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))- (label 57)- (parent 54)- (unrealized (9 0) (14 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state pcr nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 aik-1 akey))- (deflistener- (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce (enc v k))- (pcr (hash "refuse" (hash n state))) (aik aik))- (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))- (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)- (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (deflistener- (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))- (deflistener (cat "extend" (enc n esk-2)))- (deflistener esk)- (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))- (precedes ((2 0) (6 0)) ((2 0) (14 0)) ((2 2) (6 2)) ((2 2) (12 0))- ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))- ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))- ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))- ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))- ((14 3) (13 0)) ((15 2) (14 1)))- (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (enc "created" tpmkey pcr aik-0) (14 1))- (traces- ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" (enc v k)))- (obsv (hash "refuse" (hash n state)))- (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc "refuse" esk-1))- tno-1 "false"- (hash esk-1- (hash "execute transport"- (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1- "false")))- (tran (hash n state) (hash "refuse" (hash n state))))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc n esk-2)))- tne-2 tno-2 "false"))) (tran state (hash n state)))- ((recv- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false"))- (send- (cat esk-2- (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2- tno-2 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))- (send (cat "execute transport" (hash "extend" (enc n esk-2)))))- ((recv (cat "extend" (enc n esk-2)))- (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk))- ((recv (cat "decrypt" (enc esk tpmkey)))- (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))- ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))- (send- (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))- (label 58)- (parent 56)- (unrealized (15 1))- (dead)- (comment "empty cohort"))--(comment "Nothing left to do")--(defprotocol envelope basic- (defrole tpm-power-on (vars) (trace (init "0")))- (defrole tpm-quote- (vars (nonce pcr mesg) (aik akey))- (trace (recv (cat "quote" nonce)) (obsv pcr)- (send (enc "quote" pcr nonce aik)))- (non-orig aik))- (defrole tpm-extend-enc- (vars (value state mesg) (esk skey) (tne tno data) (tpmkey akey))- (trace (recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc value esk)) tno- "false"- (hash esk- (hash "execute transport" (hash "extend" (enc value esk)))- tne tno "false"))) (tran state (hash value state)))- (non-orig (invk tpmkey))- (uniq-orig tne))- (defrole tpm-create-key- (vars (k aik akey) (pcr mesg) (esk skey))- (trace (recv (enc "create key" pcr esk))- (send (enc "created" k pcr aik)))- (non-orig (invk k) aik esk)- (uniq-orig k))- (defrole tpm-decrypt- (vars (m pcr mesg) (k aik akey))- (trace (recv (cat "decrypt" (enc m k)))- (recv (enc "created" k pcr aik)) (obsv pcr) (send m))- (non-orig aik))- (defrole alice- (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)- (pcr mesg))- (trace (send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- (non-orig aik esk1 (invk tpmkey))- (uniq-orig v n tno esk)- (neq (tno n))))--(defskeleton envelope- (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)- (k aik tpmkey akey))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (neq (tno n))- (non-orig esk1 aik (invk tpmkey))- (uniq-orig v n tno esk)- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k))))- (label 59)- (unrealized (0 0) (1 5))- (preskeleton)- (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))- (comment "Not a skeleton"))--(defskeleton envelope- (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)- (k aik tpmkey akey))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (precedes ((1 6) (0 0)))- (neq (tno n))- (non-orig esk1 aik (invk tpmkey))- (uniq-orig v n tno esk)- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k))))- (label 60)- (parent 59)- (unrealized (1 5))- (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)- (k aik tpmkey aik-0 akey))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (enc "created" k (hash "obtain" (hash n pcr)) aik))- (aik aik-0))- (precedes ((1 6) (0 0)) ((2 2) (1 5)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk tpmkey))- (uniq-orig v n tno esk)- (operation encryption-test (added-strand tpm-quote 3)- (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (cat "quote" nonce))- (obsv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send- (enc "quote" (enc "created" k (hash "obtain" (hash n pcr)) aik)- nonce aik-0))))- (label 61)- (parent 60)- (unrealized (2 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (pcr mesg) (v n tne tno data) (esk1 esk esk-0 skey)- (k aik tpmkey akey))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))- (esk esk-0) (k k) (aik aik))- (precedes ((1 6) (0 0)) ((2 1) (1 5)))- (neq (tno n))- (non-orig esk1 esk-0 aik (invk k) (invk tpmkey))- (uniq-orig v n tno esk k)- (operation encryption-test (added-strand tpm-create-key 2)- (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))- (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))- (label 62)- (parent 60)- (unrealized (0 0) (2 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk esk-0 skey)- (k aik tpmkey aik-0 akey))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))- (esk esk-0) (k k) (aik aik))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (enc "create key" (hash "obtain" (hash n pcr)) esk-0))- (aik aik-0))- (precedes ((1 6) (0 0)) ((2 1) (1 5)) ((3 2) (2 0)))- (neq (tno n))- (non-orig esk1 esk-0 aik aik-0 (invk k) (invk tpmkey))- (uniq-orig v n tno esk k)- (operation encryption-test (added-strand tpm-quote 3)- (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))- (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))- ((recv (cat "quote" nonce))- (obsv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))- (send- (enc "quote"- (enc "create key" (hash "obtain" (hash n pcr)) esk-0) nonce- aik-0))))- (label 63)- (parent 62)- (unrealized (0 0) (3 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)- (k aik tpmkey akey))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))- (esk esk1) (k k) (aik aik))- (precedes ((1 4) (2 0)) ((1 6) (0 0)) ((2 1) (1 5)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey))- (uniq-orig v n tno esk k)- (operation encryption-test (displaced 3 1 alice 5)- (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))- (label 64)- (parent 62)- (unrealized (0 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)- (k aik tpmkey aik-0 akey))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-quote 3 (nonce nonce) (pcr v) (aik aik-0))- (precedes ((1 4) (2 0)) ((1 6) (3 1)) ((2 1) (1 5)) ((3 2) (0 0)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))- (uniq-orig v n tno esk k)- (operation nonce-test (added-strand tpm-quote 3) v (0 0) (enc v k))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))- ((recv (cat "quote" nonce)) (obsv v)- (send (enc "quote" v nonce aik-0))))- (label 65)- (parent 64)- (unrealized (3 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (pcr pcr-0 mesg) (v n tne tno data) (esk1 esk skey)- (k aik tpmkey aik-0 akey))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))- (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))- (uniq-orig v n tno esk k)- (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v)))- (label 66)- (parent 64)- (unrealized (3 1))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (pcr pcr-0 nonce mesg) (v n tne tno data) (esk1 esk skey)- (k aik tpmkey aik-0 aik-1 akey))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (enc "created" k pcr-0 aik-0)) (aik aik-1))- (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((2 1) (4 1))- ((3 3) (0 0)) ((4 2) (3 1)))- (neq (tno n))- (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))- (uniq-orig v n tno esk k)- (operation encryption-test (added-strand tpm-quote 3)- (enc "created" k pcr-0 aik-0) (3 1))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v))- ((recv (cat "quote" nonce)) (obsv (enc "created" k pcr-0 aik-0))- (send (enc "quote" (enc "created" k pcr-0 aik-0) nonce aik-1))))- (label 67)- (parent 66)- (unrealized (4 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)- (k aik tpmkey akey))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))- (k k) (aik aik))- (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey))- (uniq-orig v n tno esk k)- (operation encryption-test (displaced 4 2 tpm-create-key 2)- (enc "created" k pcr-0 aik-0) (3 1))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (obsv (hash "obtain" (hash n pcr))) (send v)))- (label 68)- (parent 66)- (unrealized (3 2))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (pcr mesg) (v n tne tno tne-0 tno-0 data) (esk1 esk esk-0 skey)- (k aik tpmkey tpmkey-0 akey))- (deflistener v)- (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n pcr))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0))- ((4 3) (3 2)))- (leadsto ((4 3) (3 2)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))- (uniq-orig v n tno tne-0 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash "obtain" (hash n pcr)) (3 2))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv pcr)- (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))- (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))- (obsv (hash "obtain" (hash n pcr))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n pcr) (hash "obtain" (hash n pcr)))))- (label 69)- (parent 68)- (unrealized (4 3))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))- ((3 3) (0 0)) ((4 3) (3 2)) ((5 3) (4 3)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash n state) (4 3))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state))))- (label 70)- (parent 69)- (unrealized (5 2))- (comment "3 in cohort - 3 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-quote 3 (nonce nonce)- (pcr- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")) (aik aik-0))- (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))- ((3 3) (0 0)) ((4 3) (3 2)) ((5 3) (4 3)) ((6 2) (5 2)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false") (5 2))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv (cat "quote" nonce))- (obsv- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (enc "quote"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false") nonce aik-0))))- (label 71)- (parent 70)- (unrealized (5 2) (6 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 data)- (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey-1))- (precedes ((1 0) (5 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))- ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))- ((5 3) (4 3)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tne tno tne-0 esk k)- (operation encryption-test (displaced 6 1 alice 3)- (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false") (5 2))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state))))- (label 72)- (parent 70)- (unrealized (5 0))- (comment "3 in cohort - 3 not yet seen"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))- ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))- ((6 1) (5 2)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation encryption-test- (added-listener- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false") (5 2))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))))- (label 73)- (parent 70)- (unrealized (5 2) (6 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (defstrand tpm-quote 3 (nonce nonce)- (pcr- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")) (aik aik-0))- (defstrand tpm-extend-enc 4 (value esk-1)- (state- (cat (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false")) (tne tne-2) (tno tno-2) (esk esk-2)- (tpmkey tpmkey-2))- (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))- ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (7 3)) ((5 3) (4 3))- ((6 2) (5 2)) ((7 3) (6 1)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((7 3) (6 1)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false") (6 1))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv (cat "quote" nonce))- (obsv- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (enc "quote"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false") nonce aik-0)))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc esk-1 esk-2)) tno-2- "false"- (hash esk-2- (hash "execute transport" (hash "extend" (enc esk-1 esk-2)))- tne-2 tno-2 "false")))- (tran- (cat (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false")- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))))- (label 74)- (parent 71)- (unrealized (5 2) (7 3))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 data)- (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey))- (precedes ((1 0) (5 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))- ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))- ((5 3) (4 3)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))- (uniq-orig v n tne tno tne-0 esk k)- (operation nonce-test (contracted (tpmkey-1 tpmkey)) esk (5 0)- (enc esk tpmkey))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state))))- (label 75)- (parent 72)- (unrealized)- (shape)- (maps- ((0 1)- ((v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k)- (aik aik) (tpmkey tpmkey) (pcr state))))- (origs (n (1 2)) (tno (1 2)) (esk (1 0)) (tne (5 1)) (tne-0 (4 1))- (k (2 1)) (v (1 6))))--(defskeleton envelope- (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)- (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey-1))- (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))- (precedes ((1 0) (6 1)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))- ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))- ((5 3) (4 3)) ((6 2) (5 0)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tne tno tne-0 esk k)- (operation nonce-test (added-strand tpm-quote 3) esk (5 0)- (enc esk tpmkey))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "quote" nonce)) (obsv esk)- (send (enc "quote" esk nonce aik-0))))- (label 76)- (parent 72)- (unrealized (6 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state pcr mesg) (v n tne tno tne-0 tno-0 data)- (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey-1))- (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))- (precedes ((1 0) (6 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))- ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))- ((5 3) (4 3)) ((6 3) (5 0)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tne tno tne-0 esk k)- (operation nonce-test (added-strand tpm-decrypt 4) esk (5 0)- (enc esk tpmkey))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "decrypt" (enc esk tpmkey)))- (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))- (label 77)- (parent 72)- (unrealized (6 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))- (aik aik-0))- (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))- ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))- ((6 1) (5 2)) ((7 2) (6 0)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (hash "execute transport" (hash "extend" (enc n esk-1))) (6 0))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "quote" nonce))- (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))- (send- (enc "quote"- (hash "execute transport" (hash "extend" (enc n esk-1))) nonce- aik-0))))- (label 78)- (parent 73)- (unrealized (5 2) (7 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))- ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))- ((6 1) (5 2)) ((7 1) (6 0)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation encryption-test- (added-listener- (cat "execute transport" (hash "extend" (enc n esk-1))))- (hash "execute transport" (hash "extend" (enc n esk-1))) (6 0))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1))))))- (label 79)- (parent 73)- (unrealized (5 2) (7 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (state pcr nonce mesg) (v n tne tno tne-0 tno-0 data)- (esk1 esk esk-0 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)- (tno tno) (esk esk) (tpmkey tpmkey-1))- (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))- (precedes ((1 0) (6 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))- ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))- ((5 3) (4 3)) ((6 3) (5 0)) ((7 2) (6 1)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tne tno tne-0 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (enc "created" tpmkey pcr aik-0) (6 1))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))- (send (cat "establish transport" tne))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (tran state (hash n state)))- ((recv (cat "decrypt" (enc esk tpmkey)))- (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))- ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))- (send- (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))- (label 80)- (parent 77)- (unrealized (7 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))- (aik aik-0))- (defstrand tpm-extend-enc 4 (value "execute transport")- (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)- (esk esk-2) (tpmkey tpmkey-2))- (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))- ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))- ((6 1) (5 2)) ((7 2) (6 0)) ((8 3) (7 1)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((8 3) (7 1)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash "execute transport" (hash "extend" (enc n esk-1))) (7 1))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "quote" nonce))- (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))- (send- (enc "quote"- (hash "execute transport" (hash "extend" (enc n esk-1))) nonce- aik-0)))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport"- (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"- (hash esk-2- (hash "execute transport"- (hash "extend" (enc "execute transport" esk-2))) tne-2- tno-2 "false")))- (tran (hash "extend" (enc n esk-1))- (hash "execute transport" (hash "extend" (enc n esk-1))))))- (label 81)- (parent 78)- (unrealized (5 2) (8 3))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (hash "extend" (enc n esk-1))) (aik aik-0))- (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))- ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))- ((6 1) (5 2)) ((7 1) (6 0)) ((8 2) (7 0)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (hash "extend" (enc n esk-1)) (7 0))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))- (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0))))- (label 82)- (parent 79)- (unrealized (5 2) (8 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (deflistener (cat "extend" (enc n esk-1)))- (precedes ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))- ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))- ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation encryption-test- (added-listener (cat "extend" (enc n esk-1)))- (hash "extend" (enc n esk-1)) (7 0))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "extend" (enc n esk-1)))- (send (cat "extend" (enc n esk-1)))))- (label 83)- (parent 79)- (unrealized (8 0))- (comment "3 in cohort - 3 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)- (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 tpmkey-3 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))- (aik aik-0))- (defstrand tpm-extend-enc 4 (value "execute transport")- (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)- (esk esk-2) (tpmkey tpmkey-2))- (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))- (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))- (precedes ((1 2) (9 3)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))- ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))- ((6 1) (5 2)) ((7 2) (6 0)) ((8 3) (7 1)) ((9 3) (8 3)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((8 3) (7 1)) ((9 3) (8 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))- (uniq-orig v n tno tne-0 tne-1 tne-2 tne-3 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash "extend" (enc n esk-1)) (8 3))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "quote" nonce))- (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))- (send- (enc "quote"- (hash "execute transport" (hash "extend" (enc n esk-1))) nonce- aik-0)))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport"- (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"- (hash esk-2- (hash "execute transport"- (hash "extend" (enc "execute transport" esk-2))) tne-2- tno-2 "false")))- (tran (hash "extend" (enc n esk-1))- (hash "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))- (send (cat "establish transport" tne-3))- (recv- (cat "execute transport" (cat "extend" (enc "extend" esk-3))- tno-3 "false"- (hash esk-3- (hash "execute transport"- (hash "extend" (enc "extend" esk-3))) tne-3 tno-3- "false")))- (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))- (label 84)- (parent 81)- (unrealized (5 2) (9 3))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)- (esk1 esk esk-0 esk-1 esk-2 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (hash "extend" (enc n esk-1))) (aik aik-0))- (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))- (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))- (precedes ((1 2) (9 3)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))- ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))- ((6 1) (5 2)) ((7 1) (6 0)) ((8 2) (7 0)) ((9 3) (8 1)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((9 3) (8 1)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1) (invk tpmkey-2))- (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)- (operation state-passing-test (added-strand tpm-extend-enc 4)- (hash "extend" (enc n esk-1)) (8 1))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))- (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0)))- ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))- (send (cat "establish transport" tne-2))- (recv- (cat "execute transport" (cat "extend" (enc "extend" esk-2))- tno-2 "false"- (hash esk-2- (hash "execute transport"- (hash "extend" (enc "extend" esk-2))) tne-2 tno-2- "false")))- (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))- (label 85)- (parent 82)- (unrealized (5 2) (9 3))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk) (tpmkey tpmkey-1))- (deflistener- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk))))- (deflistener (cat "extend" (enc n esk)))- (precedes ((1 0) (5 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))- ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))- ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation nonce-test (contracted (esk-1 esk)) n (8 0) (enc n esk))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno-1- "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne-1- tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false"))- (send- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk))))- (send (cat "execute transport" (hash "extend" (enc n esk)))))- ((recv (cat "extend" (enc n esk)))- (send (cat "extend" (enc n esk)))))- (label 86)- (parent 83)- (unrealized (5 0) (6 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (deflistener (cat "extend" (enc n esk-1)))- (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))- (precedes ((1 2) (9 1)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))- ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))- ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)) ((9 2) (8 0)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation nonce-test (added-strand tpm-quote 3) n (8 0) (enc n esk))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "extend" (enc n esk-1)))- (send (cat "extend" (enc n esk-1))))- ((recv (cat "quote" nonce)) (obsv n)- (send (enc "quote" n nonce aik-0))))- (label 87)- (parent 83)- (unrealized (9 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (deflistener (cat "extend" (enc n esk-1)))- (deflistener esk)- (precedes ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))- ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))- ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))- ((9 1) (8 0)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation nonce-test (added-listener esk) n (8 0) (enc n esk))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "extend" (enc n esk-1)))- (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk)))- (label 88)- (parent 83)- (unrealized (9 0))- (comment "2 in cohort - 2 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk) (tpmkey tpmkey-1))- (deflistener- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk))))- (deflistener (cat "extend" (enc n esk)))- (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))- (precedes ((1 0) (5 0)) ((1 0) (9 1)) ((1 2) (8 0)) ((1 4) (2 0))- ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))- ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))- ((8 1) (7 0)) ((9 2) (6 0)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation nonce-test (added-strand tpm-quote 3) esk (6 0)- (enc esk tpmkey))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno-1- "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne-1- tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false"))- (send- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk))))- (send (cat "execute transport" (hash "extend" (enc n esk)))))- ((recv (cat "extend" (enc n esk)))- (send (cat "extend" (enc n esk))))- ((recv (cat "quote" nonce)) (obsv esk)- (send (enc "quote" esk nonce aik-0))))- (label 89)- (parent 86)- (unrealized (5 0) (9 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk) (tpmkey tpmkey-1))- (deflistener- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk))))- (deflistener (cat "extend" (enc n esk)))- (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))- (precedes ((1 0) (5 0)) ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0))- ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))- ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))- ((8 1) (7 0)) ((9 3) (6 0)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation nonce-test (added-strand tpm-decrypt 4) esk (6 0)- (enc esk tpmkey))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno-1- "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne-1- tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false"))- (send- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk))))- (send (cat "execute transport" (hash "extend" (enc n esk)))))- ((recv (cat "extend" (enc n esk)))- (send (cat "extend" (enc n esk))))- ((recv (cat "decrypt" (enc esk tpmkey)))- (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))- (label 90)- (parent 86)- (unrealized (5 0) (9 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (deflistener (cat "extend" (enc n esk-1)))- (deflistener esk)- (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))- (precedes ((1 0) (10 1)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))- ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))- ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))- ((9 1) (8 0)) ((10 2) (9 0)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation nonce-test (added-strand tpm-quote 3) esk (9 0)- (enc esk tpmkey))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "extend" (enc n esk-1)))- (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))- ((recv (cat "quote" nonce)) (obsv esk)- (send (enc "quote" esk nonce aik-0))))- (label 91)- (parent 88)- (unrealized (10 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (deflistener (cat "extend" (enc n esk-1)))- (deflistener esk)- (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))- (precedes ((1 0) (10 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))- ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))- ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))- ((9 1) (8 0)) ((10 3) (9 0)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation nonce-test (added-strand tpm-decrypt 4) esk (9 0)- (enc esk tpmkey))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "extend" (enc n esk-1)))- (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))- ((recv (cat "decrypt" (enc esk tpmkey)))- (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))- (label 92)- (parent 88)- (unrealized (10 1))- (comment "1 in cohort - 1 not yet seen"))--(defskeleton envelope- (vars (state pcr nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 data) (esk1 esk esk-0 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk) (tpmkey tpmkey-1))- (deflistener- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk))))- (deflistener (cat "extend" (enc n esk)))- (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))- (precedes ((1 0) (5 0)) ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0))- ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))- ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))- ((8 1) (7 0)) ((9 3) (6 0)) ((10 2) (9 1)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (enc "created" tpmkey pcr aik-0) (9 1))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk)) tno-1- "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne-1- tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false"))- (send- (cat esk (hash "execute transport" (hash "extend" (enc n esk)))- tne-1 tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk))))- (send (cat "execute transport" (hash "extend" (enc n esk)))))- ((recv (cat "extend" (enc n esk)))- (send (cat "extend" (enc n esk))))- ((recv (cat "decrypt" (enc esk tpmkey)))- (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))- ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))- (send- (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))- (label 93)- (parent 90)- (unrealized (5 0) (10 1))- (dead)- (comment "empty cohort"))--(defskeleton envelope- (vars (state pcr nonce mesg)- (v n tne tno tne-0 tno-0 tne-1 tno-1 data)- (esk1 esk esk-0 esk-1 skey)- (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))- (deflistener v)- (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)- (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))- (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))- (esk esk1) (k k) (aik aik))- (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))- (k k) (aik aik))- (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))- (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))- (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)- (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))- (deflistener- (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))- (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))- (deflistener (cat "extend" (enc n esk-1)))- (deflistener esk)- (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))- (defstrand tpm-quote 3 (nonce nonce)- (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))- (precedes ((1 0) (10 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))- ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))- ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))- ((9 1) (8 0)) ((10 3) (9 0)) ((11 2) (10 1)))- (leadsto ((4 3) (3 2)) ((5 3) (4 3)))- (neq (tno n))- (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)- (invk tpmkey-1))- (uniq-orig v n tno tne-0 tne-1 esk k)- (operation encryption-test (added-strand tpm-quote 3)- (enc "created" tpmkey pcr aik-0) (10 1))- (traces ((recv v) (send v))- ((send (cat "establish transport" tpmkey (enc esk tpmkey)))- (recv (cat "establish transport" tne))- (send- (cat "execute transport" (cat "extend" (enc n esk)) tno "false"- (hash esk- (hash "execute transport" (hash "extend" (enc n esk))) tne- tno "false"))) (recv state)- (send (enc "create key" (hash "obtain" (hash n state)) esk1))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (send (enc v k)))- ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))- (send (enc "created" k (hash "obtain" (hash n state)) aik)))- ((recv (cat "decrypt" (enc v k)))- (recv (enc "created" k (hash "obtain" (hash n state)) aik))- (obsv (hash "obtain" (hash n state))) (send v))- ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))- (send (cat "establish transport" tne-0))- (recv- (cat "execute transport" (cat "extend" (enc "obtain" esk-0))- tno-0 "false"- (hash esk-0- (hash "execute transport"- (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0- "false")))- (tran (hash n state) (hash "obtain" (hash n state))))- ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))- (send (cat "establish transport" tne-1))- (recv- (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1- "false"- (hash esk-1- (hash "execute transport" (hash "extend" (enc n esk-1)))- tne-1 tno-1 "false"))) (tran state (hash n state)))- ((recv- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false"))- (send- (cat esk-1- (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1- tno-1 "false")))- ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))- (send (cat "execute transport" (hash "extend" (enc n esk-1)))))- ((recv (cat "extend" (enc n esk-1)))- (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))- ((recv (cat "decrypt" (enc esk tpmkey)))- (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))- ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))- (send- (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))- (label 94)- (parent 92)+(comment "CPSA 3.6.6")+(comment "All input read from tst/envelope.scm")+(comment "Strand count bounded at 20")++(defprotocol envelope basic+ (defrole tpm-power-on (vars) (trace (init "0")))+ (defrole tpm-quote+ (vars (nonce pcr mesg) (aik akey))+ (trace (recv (cat "quote" nonce)) (obsv pcr)+ (send (enc "quote" pcr nonce aik)))+ (non-orig aik))+ (defrole tpm-extend-enc+ (vars (value state mesg) (esk skey) (tne tno data) (tpmkey akey))+ (trace (recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc value esk)) tno+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc value esk)))+ tne tno "false"))) (tran state (hash value state)))+ (uniq-orig tne))+ (defrole tpm-create-key+ (vars (k aik akey) (pcr mesg) (esk skey))+ (trace (recv (enc "create key" pcr esk))+ (send (enc "created" k pcr aik)))+ (non-orig (invk k) aik esk)+ (uniq-orig k))+ (defrole tpm-decrypt+ (vars (m pcr mesg) (k aik akey))+ (trace (recv (cat "decrypt" (enc m k)))+ (recv (enc "created" k pcr aik)) (obsv pcr) (send m))+ (non-orig aik))+ (defrole alice+ (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)+ (pcr mesg))+ (trace (send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ (non-orig aik esk1 (invk tpmkey))+ (uniq-orig v n tno esk)+ (neq (tno n))))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk esk1 skey)+ (k aik tpmkey akey))+ (deflistener esk)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (neq (tno n))+ (non-orig esk1 aik (invk tpmkey))+ (uniq-orig v n tno esk)+ (traces ((recv esk) (send esk))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k))))+ (label 0)+ (unrealized (0 0) (1 5))+ (preskeleton)+ (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))+ (comment "Not a skeleton"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk esk1 skey)+ (k aik tpmkey akey))+ (deflistener esk)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (precedes ((1 0) (0 0)))+ (neq (tno n))+ (non-orig esk1 aik (invk tpmkey))+ (uniq-orig v n tno esk)+ (traces ((recv esk) (send esk))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k))))+ (label 1)+ (parent 0)+ (unrealized (0 0) (1 5))+ (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (pcr nonce mesg) (v n tne tno data) (esk esk1 skey)+ (k aik tpmkey aik-0 akey))+ (deflistener esk)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (aik aik-0))+ (precedes ((1 0) (0 0)) ((2 2) (1 5)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk tpmkey))+ (uniq-orig v n tno esk)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))+ (traces ((recv esk) (send esk))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (cat "quote" nonce))+ (obsv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send+ (enc "quote" (enc "created" k (hash "obtain" (hash n pcr)) aik)+ nonce aik-0))))+ (label 2)+ (parent 1)+ (unrealized (0 0) (2 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk esk1 esk-0 skey)+ (k aik tpmkey akey))+ (deflistener esk)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk-0) (k k) (aik aik))+ (precedes ((1 0) (0 0)) ((2 1) (1 5)))+ (neq (tno n))+ (non-orig esk1 esk-0 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (added-strand tpm-create-key 2)+ (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))+ (traces ((recv esk) (send esk))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))+ (label 3)+ (parent 1)+ (unrealized (0 0) (2 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (pcr nonce mesg) (v n tne tno data) (esk esk1 esk-0 skey)+ (k aik tpmkey aik-0 akey))+ (deflistener esk)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk-0) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+ (aik aik-0))+ (precedes ((1 0) (0 0)) ((2 1) (1 5)) ((3 2) (2 0)))+ (neq (tno n))+ (non-orig esk1 esk-0 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))+ (traces ((recv esk) (send esk))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "quote" nonce))+ (obsv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+ (send+ (enc "quote"+ (enc "create key" (hash "obtain" (hash n pcr)) esk-0) nonce+ aik-0))))+ (label 4)+ (parent 3)+ (unrealized (0 0) (3 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk esk1 skey)+ (k aik tpmkey akey))+ (deflistener esk)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (precedes ((1 0) (0 0)) ((1 4) (2 0)) ((2 1) (1 5)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (displaced 3 1 alice 5)+ (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))+ (traces ((recv esk) (send esk))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))+ (label 5)+ (parent 3)+ (unrealized (0 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (pcr nonce mesg) (v n tne tno data) (esk esk1 skey)+ (k aik tpmkey aik-0 akey))+ (deflistener esk)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+ (precedes ((1 0) (3 1)) ((1 4) (2 0)) ((2 1) (1 5)) ((3 2) (0 0)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation nonce-test (added-strand tpm-quote 3) esk (0 0)+ (enc esk tpmkey))+ (traces ((recv esk) (send esk))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "quote" nonce)) (obsv esk)+ (send (enc "quote" esk nonce aik-0))))+ (label 6)+ (parent 5)+ (unrealized (3 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (pcr pcr-0 mesg) (v n tne tno data) (esk esk1 skey)+ (k aik tpmkey aik-0 akey))+ (deflistener esk)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr-0) (k tpmkey) (aik aik-0))+ (precedes ((1 0) (3 0)) ((1 4) (2 0)) ((2 1) (1 5)) ((3 3) (0 0)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation nonce-test (added-strand tpm-decrypt 4) esk (0 0)+ (enc esk tpmkey))+ (traces ((recv esk) (send esk))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr-0 aik-0)) (obsv pcr-0)+ (send esk)))+ (label 7)+ (parent 5)+ (unrealized (3 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (pcr pcr-0 nonce mesg) (v n tne tno data) (esk esk1 skey)+ (k aik tpmkey aik-0 aik-1 akey))+ (deflistener esk)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr-0) (k tpmkey) (aik aik-0))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" tpmkey pcr-0 aik-0)) (aik aik-1))+ (precedes ((1 0) (3 0)) ((1 4) (2 0)) ((2 1) (1 5)) ((3 3) (0 0))+ ((4 2) (3 1)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" tpmkey pcr-0 aik-0) (3 1))+ (traces ((recv esk) (send esk))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr-0 aik-0)) (obsv pcr-0) (send esk))+ ((recv (cat "quote" nonce))+ (obsv (enc "created" tpmkey pcr-0 aik-0))+ (send+ (enc "quote" (enc "created" tpmkey pcr-0 aik-0) nonce aik-1))))+ (label 8)+ (parent 7)+ (unrealized (4 1))+ (dead)+ (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol envelope basic+ (defrole tpm-power-on (vars) (trace (init "0")))+ (defrole tpm-quote+ (vars (nonce pcr mesg) (aik akey))+ (trace (recv (cat "quote" nonce)) (obsv pcr)+ (send (enc "quote" pcr nonce aik)))+ (non-orig aik))+ (defrole tpm-extend-enc+ (vars (value state mesg) (esk skey) (tne tno data) (tpmkey akey))+ (trace (recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc value esk)) tno+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc value esk)))+ tne tno "false"))) (tran state (hash value state)))+ (uniq-orig tne))+ (defrole tpm-create-key+ (vars (k aik akey) (pcr mesg) (esk skey))+ (trace (recv (enc "create key" pcr esk))+ (send (enc "created" k pcr aik)))+ (non-orig (invk k) aik esk)+ (uniq-orig k))+ (defrole tpm-decrypt+ (vars (m pcr mesg) (k aik akey))+ (trace (recv (cat "decrypt" (enc m k)))+ (recv (enc "created" k pcr aik)) (obsv pcr) (send m))+ (non-orig aik))+ (defrole alice+ (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)+ (pcr mesg))+ (trace (send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ (non-orig aik esk1 (invk tpmkey))+ (uniq-orig v n tno esk)+ (neq (tno n))))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (neq (tno n))+ (non-orig esk1 aik (invk tpmkey))+ (uniq-orig v n tno esk)+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k))))+ (label 9)+ (unrealized (0 0) (1 0) (2 5))+ (preskeleton)+ (origs (esk (2 0)) (n (2 2)) (tno (2 2)) (v (2 6)))+ (comment "Not a skeleton"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (precedes ((2 6) (0 0)) ((2 6) (1 0)))+ (neq (tno n))+ (non-orig esk1 aik (invk tpmkey))+ (uniq-orig v n tno esk)+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k))))+ (label 10)+ (parent 9)+ (unrealized (0 0) (2 5))+ (origs (esk (2 0)) (n (2 2)) (tno (2 2)) (v (2 6)))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey aik-0 akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (aik aik-0))+ (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 2) (2 5)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk tpmkey))+ (uniq-orig v n tno esk)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" k (hash "obtain" (hash n pcr)) aik) (2 5))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (cat "quote" nonce))+ (obsv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send+ (enc "quote" (enc "created" k (hash "obtain" (hash n pcr)) aik)+ nonce aik-0))))+ (label 11)+ (parent 10)+ (unrealized (0 0) (3 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk1 esk esk-0 skey)+ (k aik tpmkey akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk-0) (k k) (aik aik))+ (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)))+ (neq (tno n))+ (non-orig esk1 esk-0 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (added-strand tpm-create-key 2)+ (enc "created" k (hash "obtain" (hash n pcr)) aik) (2 5))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))+ (label 12)+ (parent 10)+ (unrealized (0 0) (1 0) (3 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk esk-0 skey)+ (k aik tpmkey aik-0 akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk-0) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+ (aik aik-0))+ (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)) ((4 2) (3 0)))+ (neq (tno n))+ (non-orig esk1 esk-0 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (3 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "quote" nonce))+ (obsv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+ (send+ (enc "quote"+ (enc "create key" (hash "obtain" (hash n pcr)) esk-0) nonce+ aik-0))))+ (label 13)+ (parent 12)+ (unrealized (0 0) (1 0) (4 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (displaced 4 2 alice 5)+ (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (3 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))+ (label 14)+ (parent 12)+ (unrealized (0 0) (1 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey aik-0 akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce nonce) (pcr v) (aik aik-0))+ (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 1)) ((3 1) (2 5))+ ((4 2) (1 0)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation nonce-test (added-strand tpm-quote 3) v (1 0) (enc v k))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "quote" nonce)) (obsv v)+ (send (enc "quote" v nonce aik-0))))+ (label 15)+ (parent 14)+ (unrealized (0 0) (4 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (pcr pcr-0 mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey aik-0 akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))+ (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))+ ((4 3) (1 0)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v)))+ (label 16)+ (parent 14)+ (unrealized (0 0) (4 1))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (pcr pcr-0 nonce mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey aik-0 aik-1 akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" k pcr-0 aik-0)) (aik aik-1))+ (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))+ ((3 1) (5 1)) ((4 3) (1 0)) ((5 2) (4 1)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" k pcr-0 aik-0) (4 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v))+ ((recv (cat "quote" nonce)) (obsv (enc "created" k pcr-0 aik-0))+ (send (enc "quote" (enc "created" k pcr-0 aik-0) nonce aik-1))))+ (label 17)+ (parent 16)+ (unrealized (0 0) (5 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))+ (k k) (aik aik))+ (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))+ ((4 3) (1 0)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (displaced 5 3 tpm-create-key 2)+ (enc "created" k pcr-0 aik-0) (4 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (obsv (hash "obtain" (hash n pcr))) (send v)))+ (label 18)+ (parent 16)+ (unrealized (0 0) (4 2))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno tne-0 tno-0 data) (esk1 esk esk-0 skey)+ (k aik tpmkey tpmkey-0 akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n pcr))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))+ ((4 3) (1 0)) ((5 3) (4 2)))+ (leadsto ((5 3) (4 2)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash "obtain" (hash n pcr)) (4 2))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (obsv (hash "obtain" (hash n pcr))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n pcr) (hash "obtain" (hash n pcr)))))+ (label 19)+ (parent 18)+ (unrealized (0 0) (5 3))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+ ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 3) (5 3)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash n state) (5 3))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state))))+ (label 20)+ (parent 19)+ (unrealized (0 0) (6 2))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")) (aik aik-0))+ (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+ ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 3) (5 3))+ ((7 2) (6 2)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") (6 2))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv (cat "quote" nonce))+ (obsv+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (enc "quote"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") nonce aik-0))))+ (label 21)+ (parent 20)+ (unrealized (0 0) (6 2) (7 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey-1))+ (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))+ ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+ ((6 1) (2 1)) ((6 3) (5 3)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 esk k)+ (operation encryption-test (displaced 7 2 alice 3)+ (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") (6 2))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state))))+ (label 22)+ (parent 20)+ (unrealized (0 0) (6 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+ ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+ ((6 3) (5 3)) ((7 1) (6 2)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test+ (added-listener+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") (6 2))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))))+ (label 23)+ (parent 20)+ (unrealized (0 0) (6 2) (7 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")) (aik aik-0))+ (defstrand tpm-extend-enc 4 (value esk-1)+ (state+ (cat (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false")) (tne tne-2) (tno tno-2) (esk esk-2)+ (tpmkey tpmkey-2))+ (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+ ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (8 3))+ ((6 3) (5 3)) ((7 2) (6 2)) ((8 3) (7 1)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") (7 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv (cat "quote" nonce))+ (obsv+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (enc "quote"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") nonce aik-0)))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc esk-1 esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc esk-1 esk-2)))+ tne-2 tno-2 "false")))+ (tran+ (cat (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false")+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))))+ (label 24)+ (parent 21)+ (unrealized (0 0) (6 2) (8 3))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))+ ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+ ((6 1) (2 1)) ((6 3) (5 3)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 esk k)+ (operation nonce-test (contracted (tpmkey-1 tpmkey)) esk (6 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state))))+ (label 25)+ (parent 22)+ (unrealized (0 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey-1))+ (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+ (precedes ((2 0) (7 1)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))+ ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+ ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (6 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 esk k)+ (operation nonce-test (added-strand tpm-quote 3) esk (6 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" nonce)) (obsv esk)+ (send (enc "quote" esk nonce aik-0))))+ (label 26)+ (parent 22)+ (unrealized (0 0) (7 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state pcr mesg) (v n tne tno tne-0 tno-0 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey-1))+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (precedes ((2 0) (7 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))+ ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+ ((6 1) (2 1)) ((6 3) (5 3)) ((7 3) (6 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 esk k)+ (operation nonce-test (added-strand tpm-decrypt 4) esk (6 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+ (label 27)+ (parent 22)+ (unrealized (0 0) (7 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))+ (aik aik-0))+ (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+ ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+ ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (hash "execute transport" (hash "extend" (enc n esk-1))) (7 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "quote" nonce))+ (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))+ (send+ (enc "quote"+ (hash "execute transport" (hash "extend" (enc n esk-1))) nonce+ aik-0))))+ (label 28)+ (parent 23)+ (unrealized (0 0) (6 2) (8 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+ ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+ ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test+ (added-listener+ (cat "execute transport" (hash "extend" (enc n esk-1))))+ (hash "execute transport" (hash "extend" (enc n esk-1))) (7 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1))))))+ (label 29)+ (parent 23)+ (unrealized (0 0) (6 2) (8 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))+ ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+ ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik) (0 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))))+ (label 30)+ (parent 25)+ (unrealized (7 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (aik aik-0))+ (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))+ ((2 6) (7 1)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+ ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik) (0 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" nonce))+ (obsv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send+ (enc "quote"+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)+ nonce aik-0))))+ (label 31)+ (parent 25)+ (unrealized (7 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state pcr nonce mesg) (v n tne tno tne-0 tno-0 data)+ (esk1 esk esk-0 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey-1))+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+ (precedes ((2 0) (7 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))+ ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+ ((6 1) (2 1)) ((6 3) (5 3)) ((7 3) (6 0)) ((8 2) (7 1)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" tpmkey pcr aik-0) (7 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+ ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+ (send+ (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+ (label 32)+ (parent 27)+ (unrealized (0 0) (8 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))+ (aik aik-0))+ (defstrand tpm-extend-enc 4 (value "execute transport")+ (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)+ (esk esk-2) (tpmkey tpmkey-2))+ (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+ ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+ ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)) ((9 3) (8 1)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((9 3) (8 1)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash "execute transport" (hash "extend" (enc n esk-1))) (8 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "quote" nonce))+ (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))+ (send+ (enc "quote"+ (hash "execute transport" (hash "extend" (enc n esk-1))) nonce+ aik-0)))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport"+ (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"+ (hash esk-2+ (hash "execute transport"+ (hash "extend" (enc "execute transport" esk-2))) tne-2+ tno-2 "false")))+ (tran (hash "extend" (enc n esk-1))+ (hash "execute transport" (hash "extend" (enc n esk-1))))))+ (label 33)+ (parent 28)+ (unrealized (0 0) (6 2) (9 3))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "extend" (enc n esk-1))) (aik aik-0))+ (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+ ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+ ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 2) (8 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (hash "extend" (enc n esk-1)) (8 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))+ (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0))))+ (label 34)+ (parent 29)+ (unrealized (0 0) (6 2) (9 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (precedes ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+ ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+ ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 1) (8 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test+ (added-listener (cat "extend" (enc n esk-1)))+ (hash "extend" (enc n esk-1)) (8 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1)))))+ (label 35)+ (parent 29)+ (unrealized (0 0) (9 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))+ ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+ ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash "refuse" (hash n state)) (7 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state)))))+ (label 36)+ (parent 30)+ (unrealized (8 3))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)+ (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 tpmkey-3 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))+ (aik aik-0))+ (defstrand tpm-extend-enc 4 (value "execute transport")+ (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)+ (esk esk-2) (tpmkey tpmkey-2))+ (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))+ (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))+ (precedes ((2 2) (10 3)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+ ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+ ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)) ((9 3) (8 1))+ ((10 3) (9 3)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((9 3) (8 1)) ((10 3) (9 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 tne-2 tne-3 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash "extend" (enc n esk-1)) (9 3))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "quote" nonce))+ (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))+ (send+ (enc "quote"+ (hash "execute transport" (hash "extend" (enc n esk-1))) nonce+ aik-0)))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport"+ (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"+ (hash esk-2+ (hash "execute transport"+ (hash "extend" (enc "execute transport" esk-2))) tne-2+ tno-2 "false")))+ (tran (hash "extend" (enc n esk-1))+ (hash "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))+ (send (cat "establish transport" tne-3))+ (recv+ (cat "execute transport" (cat "extend" (enc "extend" esk-3))+ tno-3 "false"+ (hash esk-3+ (hash "execute transport"+ (hash "extend" (enc "extend" esk-3))) tne-3 tno-3+ "false")))+ (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))+ (label 37)+ (parent 33)+ (unrealized (0 0) (6 2) (10 3))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "extend" (enc n esk-1))) (aik aik-0))+ (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))+ (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (precedes ((2 2) (10 3)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+ ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+ ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 2) (8 0))+ ((10 3) (9 1)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((10 3) (9 1)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash "extend" (enc n esk-1)) (9 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))+ (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0)))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc "extend" esk-2))+ tno-2 "false"+ (hash esk-2+ (hash "execute transport"+ (hash "extend" (enc "extend" esk-2))) tne-2 tno-2+ "false")))+ (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))+ (label 38)+ (parent 34)+ (unrealized (0 0) (6 2) (10 3))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk) (tpmkey tpmkey-1))+ (deflistener+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+ (deflistener (cat "extend" (enc n esk)))+ (precedes ((2 0) (6 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))+ ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+ ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))+ ((9 1) (8 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (contracted (esk-1 esk)) n (9 0) (enc n esk))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno-1+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne-1+ tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (send+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk))))+ (send (cat "execute transport" (hash "extend" (enc n esk)))))+ ((recv (cat "extend" (enc n esk)))+ (send (cat "extend" (enc n esk)))))+ (label 39)+ (parent 35)+ (unrealized (0 0) (6 0) (7 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))+ (precedes ((2 2) (10 1)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+ ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+ ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 1) (8 0))+ ((10 2) (9 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-strand tpm-quote 3) n (9 0) (enc n esk))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1))))+ ((recv (cat "quote" nonce)) (obsv n)+ (send (enc "quote" n nonce aik-0))))+ (label 40)+ (parent 35)+ (unrealized (0 0) (10 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (deflistener esk)+ (precedes ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))+ ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+ ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))+ ((9 1) (8 0)) ((10 1) (9 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-listener esk) n (9 0) (enc n esk))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk)))+ (label 41)+ (parent 35)+ (unrealized (0 0) (10 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))+ ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+ ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+ ((8 3) (7 1)) ((9 3) (8 3)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash n state) (8 3))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))) (tran state (hash n state))))+ (label 42)+ (parent 36)+ (unrealized (9 2))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk) (tpmkey tpmkey-1))+ (deflistener+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+ (deflistener (cat "extend" (enc n esk)))+ (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+ (precedes ((2 0) (6 0)) ((2 0) (10 1)) ((2 2) (9 0)) ((2 4) (3 0))+ ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))+ ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))+ ((8 1) (7 0)) ((9 1) (8 0)) ((10 2) (7 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-strand tpm-quote 3) esk (7 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno-1+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne-1+ tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (send+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk))))+ (send (cat "execute transport" (hash "extend" (enc n esk)))))+ ((recv (cat "extend" (enc n esk)))+ (send (cat "extend" (enc n esk))))+ ((recv (cat "quote" nonce)) (obsv esk)+ (send (enc "quote" esk nonce aik-0))))+ (label 43)+ (parent 39)+ (unrealized (0 0) (6 0) (10 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk) (tpmkey tpmkey-1))+ (deflistener+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+ (deflistener (cat "extend" (enc n esk)))+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0))+ ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))+ ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))+ ((8 1) (7 0)) ((9 1) (8 0)) ((10 3) (7 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-strand tpm-decrypt 4) esk (7 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno-1+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne-1+ tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (send+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk))))+ (send (cat "execute transport" (hash "extend" (enc n esk)))))+ ((recv (cat "extend" (enc n esk)))+ (send (cat "extend" (enc n esk))))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+ (label 44)+ (parent 39)+ (unrealized (0 0) (6 0) (10 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (deflistener esk)+ (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+ (precedes ((2 0) (11 1)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))+ ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+ ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))+ ((9 1) (8 0)) ((10 1) (9 0)) ((11 2) (10 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-strand tpm-quote 3) esk (10 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))+ ((recv (cat "quote" nonce)) (obsv esk)+ (send (enc "quote" esk nonce aik-0))))+ (label 45)+ (parent 41)+ (unrealized (0 0) (11 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (deflistener esk)+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (precedes ((2 0) (11 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))+ ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+ ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))+ ((9 1) (8 0)) ((10 1) (9 0)) ((11 3) (10 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-strand tpm-decrypt 4) esk (10 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+ (label 46)+ (parent 41)+ (unrealized (0 0) (11 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false")) (aik aik-0))+ (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))+ ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+ ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+ ((8 3) (7 1)) ((9 3) (8 3)) ((10 2) (9 2)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (hash esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false") (9 2))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))) (tran state (hash n state)))+ ((recv (cat "quote" nonce))+ (obsv+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))+ (send+ (enc "quote"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false") nonce aik-0))))+ (label 47)+ (parent 42)+ (unrealized (9 2) (10 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (deflistener+ (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))+ (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))+ ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+ ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+ ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+ (operation encryption-test+ (added-listener+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))+ (hash esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false") (9 2))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))+ (send+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))))+ (label 48)+ (parent 42)+ (unrealized (9 2) (10 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state pcr nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 data) (esk1 esk esk-0 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk) (tpmkey tpmkey-1))+ (deflistener+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+ (deflistener (cat "extend" (enc n esk)))+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+ (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0))+ ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))+ ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))+ ((8 1) (7 0)) ((9 1) (8 0)) ((10 3) (7 0)) ((11 2) (10 1)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" tpmkey pcr aik-0) (10 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno-1+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne-1+ tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (send+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk))))+ (send (cat "execute transport" (hash "extend" (enc n esk)))))+ ((recv (cat "extend" (enc n esk)))+ (send (cat "extend" (enc n esk))))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+ ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+ (send+ (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+ (label 49)+ (parent 44)+ (unrealized (0 0) (6 0) (11 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state pcr nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (deflistener esk)+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+ (precedes ((2 0) (11 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))+ ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+ ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))+ ((9 1) (8 0)) ((10 1) (9 0)) ((11 3) (10 0)) ((12 2) (11 1)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" tpmkey pcr aik-0) (11 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+ ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+ (send+ (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+ (label 50)+ (parent 46)+ (unrealized (0 0) (12 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)+ (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false")) (aik aik-0))+ (defstrand tpm-extend-enc 4 (value esk-2)+ (state+ (cat (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false")) (tne tne-3) (tno tno-3) (esk esk-3)+ (tpmkey tpmkey-3))+ (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))+ ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+ ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+ ((8 3) (7 1)) ((9 1) (11 3)) ((9 3) (8 3)) ((10 2) (9 2))+ ((11 3) (10 1)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))+ ((11 3) (10 1)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false") (10 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))) (tran state (hash n state)))+ ((recv (cat "quote" nonce))+ (obsv+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))+ (send+ (enc "quote"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false") nonce aik-0)))+ ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))+ (send (cat "establish transport" tne-3))+ (recv+ (cat "execute transport" (cat "extend" (enc esk-2 esk-3)) tno-3+ "false"+ (hash esk-3+ (hash "execute transport" (hash "extend" (enc esk-2 esk-3)))+ tne-3 tno-3 "false")))+ (tran+ (cat (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false")+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))))+ (label 51)+ (parent 47)+ (unrealized (9 2) (11 3))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (deflistener+ (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "execute transport" (hash "extend" (enc n esk-2))))+ (aik aik-0))+ (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))+ ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+ ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+ ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))+ ((11 2) (10 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (hash "execute transport" (hash "extend" (enc n esk-2))) (10 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))+ (send+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false")))+ ((recv (cat "quote" nonce))+ (obsv (hash "execute transport" (hash "extend" (enc n esk-2))))+ (send+ (enc "quote"+ (hash "execute transport" (hash "extend" (enc n esk-2))) nonce+ aik-0))))+ (label 52)+ (parent 48)+ (unrealized (9 2) (11 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (deflistener+ (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+ (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))+ ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+ ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+ ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))+ ((11 1) (10 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+ (operation encryption-test+ (added-listener+ (cat "execute transport" (hash "extend" (enc n esk-2))))+ (hash "execute transport" (hash "extend" (enc n esk-2))) (10 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))+ (send+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+ (send (cat "execute transport" (hash "extend" (enc n esk-2))))))+ (label 53)+ (parent 48)+ (unrealized (9 2) (11 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)+ (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (deflistener+ (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "execute transport" (hash "extend" (enc n esk-2))))+ (aik aik-0))+ (defstrand tpm-extend-enc 4 (value "execute transport")+ (state (hash "extend" (enc n esk-2))) (tne tne-3) (tno tno-3)+ (esk esk-3) (tpmkey tpmkey-3))+ (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))+ ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+ ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+ ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))+ ((11 2) (10 0)) ((12 3) (11 1)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))+ ((12 3) (11 1)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash "execute transport" (hash "extend" (enc n esk-2))) (11 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))+ (send+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false")))+ ((recv (cat "quote" nonce))+ (obsv (hash "execute transport" (hash "extend" (enc n esk-2))))+ (send+ (enc "quote"+ (hash "execute transport" (hash "extend" (enc n esk-2))) nonce+ aik-0)))+ ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))+ (send (cat "establish transport" tne-3))+ (recv+ (cat "execute transport"+ (cat "extend" (enc "execute transport" esk-3)) tno-3 "false"+ (hash esk-3+ (hash "execute transport"+ (hash "extend" (enc "execute transport" esk-3))) tne-3+ tno-3 "false")))+ (tran (hash "extend" (enc n esk-2))+ (hash "execute transport" (hash "extend" (enc n esk-2))))))+ (label 54)+ (parent 52)+ (unrealized (9 2) (12 3))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (deflistener+ (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "extend" (enc n esk-2))) (aik aik-0))+ (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))+ ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+ ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+ ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))+ ((11 1) (10 0)) ((12 2) (11 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (hash "extend" (enc n esk-2)) (11 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))+ (send+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+ (send (cat "execute transport" (hash "extend" (enc n esk-2)))))+ ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-2)))+ (send (enc "quote" (hash "extend" (enc n esk-2)) nonce aik-0))))+ (label 55)+ (parent 53)+ (unrealized (9 2) (12 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (deflistener+ (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+ (deflistener (cat "extend" (enc n esk-2)))+ (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (12 0)) ((2 4) (3 0))+ ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+ ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+ ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))+ ((11 1) (10 0)) ((12 1) (11 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+ (operation encryption-test+ (added-listener (cat "extend" (enc n esk-2)))+ (hash "extend" (enc n esk-2)) (11 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))+ (send+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+ (send (cat "execute transport" (hash "extend" (enc n esk-2)))))+ ((recv (cat "extend" (enc n esk-2)))+ (send (cat "extend" (enc n esk-2)))))+ (label 56)+ (parent 53)+ (unrealized (12 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 tne-4+ tno-4 data) (esk1 esk esk-0 esk-1 esk-2 esk-3 esk-4 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 tpmkey-4+ akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (deflistener+ (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "execute transport" (hash "extend" (enc n esk-2))))+ (aik aik-0))+ (defstrand tpm-extend-enc 4 (value "execute transport")+ (state (hash "extend" (enc n esk-2))) (tne tne-3) (tno tno-3)+ (esk esk-3) (tpmkey tpmkey-3))+ (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-2))+ (tne tne-4) (tno tno-4) (esk esk-4) (tpmkey tpmkey-4))+ (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 3)) ((2 4) (3 0))+ ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+ ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+ ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))+ ((11 2) (10 0)) ((12 3) (11 1)) ((13 3) (12 3)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))+ ((12 3) (11 1)) ((13 3) (12 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 tne-4 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash "extend" (enc n esk-2)) (12 3))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))+ (send+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false")))+ ((recv (cat "quote" nonce))+ (obsv (hash "execute transport" (hash "extend" (enc n esk-2))))+ (send+ (enc "quote"+ (hash "execute transport" (hash "extend" (enc n esk-2))) nonce+ aik-0)))+ ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))+ (send (cat "establish transport" tne-3))+ (recv+ (cat "execute transport"+ (cat "extend" (enc "execute transport" esk-3)) tno-3 "false"+ (hash esk-3+ (hash "execute transport"+ (hash "extend" (enc "execute transport" esk-3))) tne-3+ tno-3 "false")))+ (tran (hash "extend" (enc n esk-2))+ (hash "execute transport" (hash "extend" (enc n esk-2)))))+ ((recv (cat "establish transport" tpmkey-4 (enc esk-4 tpmkey-4)))+ (send (cat "establish transport" tne-4))+ (recv+ (cat "execute transport" (cat "extend" (enc "extend" esk-4))+ tno-4 "false"+ (hash esk-4+ (hash "execute transport"+ (hash "extend" (enc "extend" esk-4))) tne-4 tno-4+ "false")))+ (tran (enc n esk-2) (hash "extend" (enc n esk-2)))))+ (label 57)+ (parent 54)+ (unrealized (9 2) (13 3))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)+ (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (deflistener+ (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "extend" (enc n esk-2))) (aik aik-0))+ (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-2))+ (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))+ (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 3)) ((2 4) (3 0))+ ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+ ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+ ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))+ ((11 1) (10 0)) ((12 2) (11 0)) ((13 3) (12 1)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))+ ((13 3) (12 1)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash "extend" (enc n esk-2)) (12 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))+ (send+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+ (send (cat "execute transport" (hash "extend" (enc n esk-2)))))+ ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-2)))+ (send (enc "quote" (hash "extend" (enc n esk-2)) nonce aik-0)))+ ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))+ (send (cat "establish transport" tne-3))+ (recv+ (cat "execute transport" (cat "extend" (enc "extend" esk-3))+ tno-3 "false"+ (hash esk-3+ (hash "execute transport"+ (hash "extend" (enc "extend" esk-3))) tne-3 tno-3+ "false")))+ (tran (enc n esk-2) (hash "extend" (enc n esk-2)))))+ (label 58)+ (parent 55)+ (unrealized (9 2) (13 3))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk) (tpmkey tpmkey-2))+ (deflistener+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-2 tno-2 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+ (deflistener (cat "extend" (enc n esk)))+ (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 2) (6 2)) ((2 2) (12 0))+ ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))+ ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))+ ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))+ ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+ (operation nonce-test (contracted (esk-2 esk)) n (12 0) (enc n esk))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno-2+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne-2+ tno-2 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-2 tno-2 "false"))+ (send+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-2 tno-2 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk))))+ (send (cat "execute transport" (hash "extend" (enc n esk)))))+ ((recv (cat "extend" (enc n esk)))+ (send (cat "extend" (enc n esk)))))+ (label 59)+ (parent 56)+ (unrealized (9 0) (10 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (deflistener+ (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+ (deflistener (cat "extend" (enc n esk-2)))+ (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))+ (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 1)) ((2 4) (3 0))+ ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+ ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+ ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))+ ((11 1) (10 0)) ((12 1) (11 0)) ((13 2) (12 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+ (operation nonce-test (added-strand tpm-quote 3) n (12 0) (enc n esk))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))+ (send+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+ (send (cat "execute transport" (hash "extend" (enc n esk-2)))))+ ((recv (cat "extend" (enc n esk-2)))+ (send (cat "extend" (enc n esk-2))))+ ((recv (cat "quote" nonce)) (obsv n)+ (send (enc "quote" n nonce aik-0))))+ (label 60)+ (parent 56)+ (unrealized (13 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (deflistener+ (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+ (deflistener (cat "extend" (enc n esk-2)))+ (deflistener esk)+ (precedes ((2 0) (6 0)) ((2 0) (13 0)) ((2 2) (6 2)) ((2 2) (12 0))+ ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))+ ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))+ ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))+ ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+ (operation nonce-test (added-listener esk) n (12 0) (enc n esk))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))+ (send+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+ (send (cat "execute transport" (hash "extend" (enc n esk-2)))))+ ((recv (cat "extend" (enc n esk-2)))+ (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk)))+ (label 61)+ (parent 56)+ (unrealized (13 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk) (tpmkey tpmkey-2))+ (deflistener+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-2 tno-2 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+ (deflistener (cat "extend" (enc n esk)))+ (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+ (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 1)) ((2 2) (6 2))+ ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))+ ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))+ ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))+ ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))+ ((13 2) (10 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+ (operation nonce-test (added-strand tpm-quote 3) esk (10 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno-2+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne-2+ tno-2 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-2 tno-2 "false"))+ (send+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-2 tno-2 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk))))+ (send (cat "execute transport" (hash "extend" (enc n esk)))))+ ((recv (cat "extend" (enc n esk)))+ (send (cat "extend" (enc n esk))))+ ((recv (cat "quote" nonce)) (obsv esk)+ (send (enc "quote" esk nonce aik-0))))+ (label 62)+ (parent 59)+ (unrealized (9 0) (13 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state pcr mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk) (tpmkey tpmkey-2))+ (deflistener+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-2 tno-2 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+ (deflistener (cat "extend" (enc n esk)))+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 0)) ((2 2) (6 2))+ ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))+ ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))+ ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))+ ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))+ ((13 3) (10 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+ (operation nonce-test (added-strand tpm-decrypt 4) esk (10 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno-2+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne-2+ tno-2 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-2 tno-2 "false"))+ (send+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-2 tno-2 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk))))+ (send (cat "execute transport" (hash "extend" (enc n esk)))))+ ((recv (cat "extend" (enc n esk)))+ (send (cat "extend" (enc n esk))))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+ (label 63)+ (parent 59)+ (unrealized (9 0) (13 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (deflistener+ (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+ (deflistener (cat "extend" (enc n esk-2)))+ (deflistener esk)+ (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+ (precedes ((2 0) (6 0)) ((2 0) (14 1)) ((2 2) (6 2)) ((2 2) (12 0))+ ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))+ ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))+ ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))+ ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))+ ((14 2) (13 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+ (operation nonce-test (added-strand tpm-quote 3) esk (13 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))+ (send+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+ (send (cat "execute transport" (hash "extend" (enc n esk-2)))))+ ((recv (cat "extend" (enc n esk-2)))+ (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk))+ ((recv (cat "quote" nonce)) (obsv esk)+ (send (enc "quote" esk nonce aik-0))))+ (label 64)+ (parent 61)+ (unrealized (14 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state pcr mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (deflistener+ (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+ (deflistener (cat "extend" (enc n esk-2)))+ (deflistener esk)+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (precedes ((2 0) (6 0)) ((2 0) (14 0)) ((2 2) (6 2)) ((2 2) (12 0))+ ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))+ ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))+ ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))+ ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))+ ((14 3) (13 0)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+ (operation nonce-test (added-strand tpm-decrypt 4) esk (13 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))+ (send+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+ (send (cat "execute transport" (hash "extend" (enc n esk-2)))))+ ((recv (cat "extend" (enc n esk-2)))+ (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+ (label 65)+ (parent 61)+ (unrealized (14 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state pcr nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 aik-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk) (tpmkey tpmkey-2))+ (deflistener+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-2 tno-2 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+ (deflistener (cat "extend" (enc n esk)))+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+ (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 0)) ((2 2) (6 2))+ ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))+ ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))+ ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))+ ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))+ ((13 3) (10 0)) ((14 2) (13 1)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" tpmkey pcr aik-0) (13 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno-2+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne-2+ tno-2 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-2 tno-2 "false"))+ (send+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-2 tno-2 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk))))+ (send (cat "execute transport" (hash "extend" (enc n esk)))))+ ((recv (cat "extend" (enc n esk)))+ (send (cat "extend" (enc n esk))))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+ ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+ (send+ (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+ (label 66)+ (parent 63)+ (unrealized (9 0) (14 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state pcr nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 aik-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+ (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (deflistener+ (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+ (deflistener (cat "extend" (enc n esk-2)))+ (deflistener esk)+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+ (precedes ((2 0) (6 0)) ((2 0) (14 0)) ((2 2) (6 2)) ((2 2) (12 0))+ ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))+ ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))+ ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))+ ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))+ ((14 3) (13 0)) ((15 2) (14 1)))+ (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" tpmkey pcr aik-0) (14 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+ tno-1 "false"+ (hash esk-1+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2)))+ tne-2 tno-2 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false"))+ (send+ (cat esk-2+ (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+ tno-2 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+ (send (cat "execute transport" (hash "extend" (enc n esk-2)))))+ ((recv (cat "extend" (enc n esk-2)))+ (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+ ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+ (send+ (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+ (label 67)+ (parent 65)+ (unrealized (15 1))+ (dead)+ (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol envelope basic+ (defrole tpm-power-on (vars) (trace (init "0")))+ (defrole tpm-quote+ (vars (nonce pcr mesg) (aik akey))+ (trace (recv (cat "quote" nonce)) (obsv pcr)+ (send (enc "quote" pcr nonce aik)))+ (non-orig aik))+ (defrole tpm-extend-enc+ (vars (value state mesg) (esk skey) (tne tno data) (tpmkey akey))+ (trace (recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc value esk)) tno+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc value esk)))+ tne tno "false"))) (tran state (hash value state)))+ (uniq-orig tne))+ (defrole tpm-create-key+ (vars (k aik akey) (pcr mesg) (esk skey))+ (trace (recv (enc "create key" pcr esk))+ (send (enc "created" k pcr aik)))+ (non-orig (invk k) aik esk)+ (uniq-orig k))+ (defrole tpm-decrypt+ (vars (m pcr mesg) (k aik akey))+ (trace (recv (cat "decrypt" (enc m k)))+ (recv (enc "created" k pcr aik)) (obsv pcr) (send m))+ (non-orig aik))+ (defrole alice+ (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)+ (pcr mesg))+ (trace (send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ (non-orig aik esk1 (invk tpmkey))+ (uniq-orig v n tno esk)+ (neq (tno n))))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey akey))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (neq (tno n))+ (non-orig esk1 aik (invk tpmkey))+ (uniq-orig v n tno esk)+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k))))+ (label 68)+ (unrealized (0 0) (1 5))+ (preskeleton)+ (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))+ (comment "Not a skeleton"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey akey))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (precedes ((1 6) (0 0)))+ (neq (tno n))+ (non-orig esk1 aik (invk tpmkey))+ (uniq-orig v n tno esk)+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k))))+ (label 69)+ (parent 68)+ (unrealized (1 5))+ (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey aik-0 akey))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (aik aik-0))+ (precedes ((1 6) (0 0)) ((2 2) (1 5)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk tpmkey))+ (uniq-orig v n tno esk)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (cat "quote" nonce))+ (obsv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send+ (enc "quote" (enc "created" k (hash "obtain" (hash n pcr)) aik)+ nonce aik-0))))+ (label 70)+ (parent 69)+ (unrealized (2 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk1 esk esk-0 skey)+ (k aik tpmkey akey))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk-0) (k k) (aik aik))+ (precedes ((1 6) (0 0)) ((2 1) (1 5)))+ (neq (tno n))+ (non-orig esk1 esk-0 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (added-strand tpm-create-key 2)+ (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))+ (label 71)+ (parent 69)+ (unrealized (0 0) (2 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk esk-0 skey)+ (k aik tpmkey aik-0 akey))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk-0) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+ (aik aik-0))+ (precedes ((1 6) (0 0)) ((2 1) (1 5)) ((3 2) (2 0)))+ (neq (tno n))+ (non-orig esk1 esk-0 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "quote" nonce))+ (obsv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+ (send+ (enc "quote"+ (enc "create key" (hash "obtain" (hash n pcr)) esk-0) nonce+ aik-0))))+ (label 72)+ (parent 71)+ (unrealized (0 0) (3 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey akey))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (precedes ((1 4) (2 0)) ((1 6) (0 0)) ((2 1) (1 5)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (displaced 3 1 alice 5)+ (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))+ (label 73)+ (parent 71)+ (unrealized (0 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey aik-0 akey))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce nonce) (pcr v) (aik aik-0))+ (precedes ((1 4) (2 0)) ((1 6) (3 1)) ((2 1) (1 5)) ((3 2) (0 0)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation nonce-test (added-strand tpm-quote 3) v (0 0) (enc v k))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "quote" nonce)) (obsv v)+ (send (enc "quote" v nonce aik-0))))+ (label 74)+ (parent 73)+ (unrealized (3 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (pcr pcr-0 mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey aik-0 akey))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))+ (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v)))+ (label 75)+ (parent 73)+ (unrealized (3 1))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (pcr pcr-0 nonce mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey aik-0 aik-1 akey))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" k pcr-0 aik-0)) (aik aik-1))+ (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((2 1) (4 1))+ ((3 3) (0 0)) ((4 2) (3 1)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" k pcr-0 aik-0) (3 1))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v))+ ((recv (cat "quote" nonce)) (obsv (enc "created" k pcr-0 aik-0))+ (send (enc "quote" (enc "created" k pcr-0 aik-0) nonce aik-1))))+ (label 76)+ (parent 75)+ (unrealized (4 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey akey))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))+ (k k) (aik aik))+ (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (displaced 4 2 tpm-create-key 2)+ (enc "created" k pcr-0 aik-0) (3 1))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (obsv (hash "obtain" (hash n pcr))) (send v)))+ (label 77)+ (parent 75)+ (unrealized (3 2))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno tne-0 tno-0 data) (esk1 esk esk-0 skey)+ (k aik tpmkey tpmkey-0 akey))+ (deflistener v)+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n pcr))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0))+ ((4 3) (3 2)))+ (leadsto ((4 3) (3 2)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash "obtain" (hash n pcr)) (3 2))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (obsv (hash "obtain" (hash n pcr))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n pcr) (hash "obtain" (hash n pcr)))))+ (label 78)+ (parent 77)+ (unrealized (4 3))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 3) (0 0)) ((4 3) (3 2)) ((5 3) (4 3)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash n state) (4 3))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state))))+ (label 79)+ (parent 78)+ (unrealized (5 2))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")) (aik aik-0))+ (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 3) (0 0)) ((4 3) (3 2)) ((5 3) (4 3)) ((6 2) (5 2)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") (5 2))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv (cat "quote" nonce))+ (obsv+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (enc "quote"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") nonce aik-0))))+ (label 80)+ (parent 79)+ (unrealized (5 2) (6 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey-1))+ (precedes ((1 0) (5 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))+ ((5 3) (4 3)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 esk k)+ (operation encryption-test (displaced 6 1 alice 3)+ (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") (5 2))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state))))+ (label 81)+ (parent 79)+ (unrealized (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test+ (added-listener+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") (5 2))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))))+ (label 82)+ (parent 79)+ (unrealized (5 2) (6 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")) (aik aik-0))+ (defstrand tpm-extend-enc 4 (value esk-1)+ (state+ (cat (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false")) (tne tne-2) (tno tno-2) (esk esk-2)+ (tpmkey tpmkey-2))+ (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (7 3)) ((5 3) (4 3))+ ((6 2) (5 2)) ((7 3) (6 1)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((7 3) (6 1)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") (6 1))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv (cat "quote" nonce))+ (obsv+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (enc "quote"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") nonce aik-0)))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc esk-1 esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc esk-1 esk-2)))+ tne-2 tno-2 "false")))+ (tran+ (cat (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false")+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))))+ (label 83)+ (parent 80)+ (unrealized (5 2) (7 3))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (precedes ((1 0) (5 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))+ ((5 3) (4 3)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 esk k)+ (operation nonce-test (contracted (tpmkey-1 tpmkey)) esk (5 0)+ (enc esk tpmkey))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state))))+ (label 84)+ (parent 81)+ (unrealized)+ (shape)+ (maps+ ((0 1)+ ((v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k)+ (aik aik) (tpmkey tpmkey) (pcr state))))+ (origs (n (1 2)) (tno (1 2)) (esk (1 0)) (tne (5 1)) (tne-0 (4 1))+ (k (2 1)) (v (1 6))))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey-1))+ (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+ (precedes ((1 0) (6 1)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))+ ((5 3) (4 3)) ((6 2) (5 0)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 esk k)+ (operation nonce-test (added-strand tpm-quote 3) esk (5 0)+ (enc esk tpmkey))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" nonce)) (obsv esk)+ (send (enc "quote" esk nonce aik-0))))+ (label 85)+ (parent 81)+ (unrealized (6 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state pcr mesg) (v n tne tno tne-0 tno-0 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey-1))+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (precedes ((1 0) (6 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))+ ((5 3) (4 3)) ((6 3) (5 0)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 esk k)+ (operation nonce-test (added-strand tpm-decrypt 4) esk (5 0)+ (enc esk tpmkey))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+ (label 86)+ (parent 81)+ (unrealized (6 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))+ (aik aik-0))+ (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)) ((7 2) (6 0)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (hash "execute transport" (hash "extend" (enc n esk-1))) (6 0))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "quote" nonce))+ (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))+ (send+ (enc "quote"+ (hash "execute transport" (hash "extend" (enc n esk-1))) nonce+ aik-0))))+ (label 87)+ (parent 82)+ (unrealized (5 2) (7 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)) ((7 1) (6 0)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test+ (added-listener+ (cat "execute transport" (hash "extend" (enc n esk-1))))+ (hash "execute transport" (hash "extend" (enc n esk-1))) (6 0))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1))))))+ (label 88)+ (parent 82)+ (unrealized (5 2) (7 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state pcr nonce mesg) (v n tne tno tne-0 tno-0 data)+ (esk1 esk esk-0 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey-1))+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+ (precedes ((1 0) (6 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))+ ((5 3) (4 3)) ((6 3) (5 0)) ((7 2) (6 1)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" tpmkey pcr aik-0) (6 1))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+ ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+ (send+ (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+ (label 89)+ (parent 86)+ (unrealized (7 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))+ (aik aik-0))+ (defstrand tpm-extend-enc 4 (value "execute transport")+ (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)+ (esk esk-2) (tpmkey tpmkey-2))+ (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)) ((7 2) (6 0)) ((8 3) (7 1)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((8 3) (7 1)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash "execute transport" (hash "extend" (enc n esk-1))) (7 1))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "quote" nonce))+ (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))+ (send+ (enc "quote"+ (hash "execute transport" (hash "extend" (enc n esk-1))) nonce+ aik-0)))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport"+ (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"+ (hash esk-2+ (hash "execute transport"+ (hash "extend" (enc "execute transport" esk-2))) tne-2+ tno-2 "false")))+ (tran (hash "extend" (enc n esk-1))+ (hash "execute transport" (hash "extend" (enc n esk-1))))))+ (label 90)+ (parent 87)+ (unrealized (5 2) (8 3))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "extend" (enc n esk-1))) (aik aik-0))+ (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)) ((7 1) (6 0)) ((8 2) (7 0)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (hash "extend" (enc n esk-1)) (7 0))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))+ (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0))))+ (label 91)+ (parent 88)+ (unrealized (5 2) (8 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (precedes ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test+ (added-listener (cat "extend" (enc n esk-1)))+ (hash "extend" (enc n esk-1)) (7 0))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1)))))+ (label 92)+ (parent 88)+ (unrealized (8 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)+ (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 tpmkey-3 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))+ (aik aik-0))+ (defstrand tpm-extend-enc 4 (value "execute transport")+ (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)+ (esk esk-2) (tpmkey tpmkey-2))+ (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))+ (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))+ (precedes ((1 2) (9 3)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)) ((7 2) (6 0)) ((8 3) (7 1)) ((9 3) (8 3)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 tne-2 tne-3 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash "extend" (enc n esk-1)) (8 3))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "quote" nonce))+ (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))+ (send+ (enc "quote"+ (hash "execute transport" (hash "extend" (enc n esk-1))) nonce+ aik-0)))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport"+ (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"+ (hash esk-2+ (hash "execute transport"+ (hash "extend" (enc "execute transport" esk-2))) tne-2+ tno-2 "false")))+ (tran (hash "extend" (enc n esk-1))+ (hash "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))+ (send (cat "establish transport" tne-3))+ (recv+ (cat "execute transport" (cat "extend" (enc "extend" esk-3))+ tno-3 "false"+ (hash esk-3+ (hash "execute transport"+ (hash "extend" (enc "extend" esk-3))) tne-3 tno-3+ "false")))+ (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))+ (label 93)+ (parent 90)+ (unrealized (5 2) (9 3))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "extend" (enc n esk-1))) (aik aik-0))+ (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))+ (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (precedes ((1 2) (9 3)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)) ((7 1) (6 0)) ((8 2) (7 0)) ((9 3) (8 1)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((9 3) (8 1)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash "extend" (enc n esk-1)) (8 1))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))+ (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0)))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc "extend" esk-2))+ tno-2 "false"+ (hash esk-2+ (hash "execute transport"+ (hash "extend" (enc "extend" esk-2))) tne-2 tno-2+ "false")))+ (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))+ (label 94)+ (parent 91)+ (unrealized (5 2) (9 3))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk) (tpmkey tpmkey-1))+ (deflistener+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+ (deflistener (cat "extend" (enc n esk)))+ (precedes ((1 0) (5 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))+ ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (contracted (esk-1 esk)) n (8 0) (enc n esk))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno-1+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne-1+ tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (send+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk))))+ (send (cat "execute transport" (hash "extend" (enc n esk)))))+ ((recv (cat "extend" (enc n esk)))+ (send (cat "extend" (enc n esk)))))+ (label 95)+ (parent 92)+ (unrealized (5 0) (6 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))+ (precedes ((1 2) (9 1)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)) ((9 2) (8 0)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-strand tpm-quote 3) n (8 0) (enc n esk))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1))))+ ((recv (cat "quote" nonce)) (obsv n)+ (send (enc "quote" n nonce aik-0))))+ (label 96)+ (parent 92)+ (unrealized (9 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (deflistener esk)+ (precedes ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))+ ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))+ ((9 1) (8 0)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-listener esk) n (8 0) (enc n esk))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk)))+ (label 97)+ (parent 92)+ (unrealized (9 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk) (tpmkey tpmkey-1))+ (deflistener+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+ (deflistener (cat "extend" (enc n esk)))+ (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+ (precedes ((1 0) (5 0)) ((1 0) (9 1)) ((1 2) (8 0)) ((1 4) (2 0))+ ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))+ ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))+ ((8 1) (7 0)) ((9 2) (6 0)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-strand tpm-quote 3) esk (6 0)+ (enc esk tpmkey))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno-1+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne-1+ tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (send+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk))))+ (send (cat "execute transport" (hash "extend" (enc n esk)))))+ ((recv (cat "extend" (enc n esk)))+ (send (cat "extend" (enc n esk))))+ ((recv (cat "quote" nonce)) (obsv esk)+ (send (enc "quote" esk nonce aik-0))))+ (label 98)+ (parent 95)+ (unrealized (5 0) (9 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk) (tpmkey tpmkey-1))+ (deflistener+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+ (deflistener (cat "extend" (enc n esk)))+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (precedes ((1 0) (5 0)) ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0))+ ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))+ ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))+ ((8 1) (7 0)) ((9 3) (6 0)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-strand tpm-decrypt 4) esk (6 0)+ (enc esk tpmkey))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno-1+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne-1+ tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (send+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk))))+ (send (cat "execute transport" (hash "extend" (enc n esk)))))+ ((recv (cat "extend" (enc n esk)))+ (send (cat "extend" (enc n esk))))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+ (label 99)+ (parent 95)+ (unrealized (5 0) (9 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (deflistener esk)+ (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+ (precedes ((1 0) (10 1)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))+ ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))+ ((9 1) (8 0)) ((10 2) (9 0)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-strand tpm-quote 3) esk (9 0)+ (enc esk tpmkey))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))+ ((recv (cat "quote" nonce)) (obsv esk)+ (send (enc "quote" esk nonce aik-0))))+ (label 100)+ (parent 97)+ (unrealized (10 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (deflistener esk)+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (precedes ((1 0) (10 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))+ ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))+ ((9 1) (8 0)) ((10 3) (9 0)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-strand tpm-decrypt 4) esk (9 0)+ (enc esk tpmkey))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+ (label 101)+ (parent 97)+ (unrealized (10 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state pcr nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 data) (esk1 esk esk-0 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk) (tpmkey tpmkey-1))+ (deflistener+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+ (deflistener (cat "extend" (enc n esk)))+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+ (precedes ((1 0) (5 0)) ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0))+ ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))+ ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))+ ((8 1) (7 0)) ((9 3) (6 0)) ((10 2) (9 1)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" tpmkey pcr aik-0) (9 1))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno-1+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne-1+ tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (send+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk))))+ (send (cat "execute transport" (hash "extend" (enc n esk)))))+ ((recv (cat "extend" (enc n esk)))+ (send (cat "extend" (enc n esk))))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+ ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+ (send+ (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+ (label 102)+ (parent 99)+ (unrealized (5 0) (10 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state pcr nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))+ (deflistener v)+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+ (k k) (aik aik))+ (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (deflistener esk)+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+ (precedes ((1 0) (10 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))+ ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))+ ((9 1) (8 0)) ((10 3) (9 0)) ((11 2) (10 1)))+ (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" tpmkey pcr aik-0) (10 1))+ (traces ((recv v) (send v))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "decrypt" (enc v k)))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (obsv (hash "obtain" (hash n state))) (send v))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "obtain" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+ ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+ (send+ (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+ (label 103)+ (parent 101)+ (unrealized (11 1))+ (dead)+ (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol envelope basic+ (defrole tpm-power-on (vars) (trace (init "0")))+ (defrole tpm-quote+ (vars (nonce pcr mesg) (aik akey))+ (trace (recv (cat "quote" nonce)) (obsv pcr)+ (send (enc "quote" pcr nonce aik)))+ (non-orig aik))+ (defrole tpm-extend-enc+ (vars (value state mesg) (esk skey) (tne tno data) (tpmkey akey))+ (trace (recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc value esk)) tno+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc value esk)))+ tne tno "false"))) (tran state (hash value state)))+ (uniq-orig tne))+ (defrole tpm-create-key+ (vars (k aik akey) (pcr mesg) (esk skey))+ (trace (recv (enc "create key" pcr esk))+ (send (enc "created" k pcr aik)))+ (non-orig (invk k) aik esk)+ (uniq-orig k))+ (defrole tpm-decrypt+ (vars (m pcr mesg) (k aik akey))+ (trace (recv (cat "decrypt" (enc m k)))+ (recv (enc "created" k pcr aik)) (obsv pcr) (send m))+ (non-orig aik))+ (defrole alice+ (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)+ (pcr mesg))+ (trace (send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ (non-orig aik esk1 (invk tpmkey))+ (uniq-orig v n tno esk)+ (neq (tno n))))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (neq (tno n))+ (non-orig esk1 aik (invk tpmkey))+ (uniq-orig v n tno esk)+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k))))+ (label 104)+ (unrealized (0 0) (1 5))+ (preskeleton)+ (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))+ (comment "Not a skeleton"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (precedes ((1 6) (0 0)))+ (neq (tno n))+ (non-orig esk1 aik (invk tpmkey))+ (uniq-orig v n tno esk)+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k))))+ (label 105)+ (parent 104)+ (unrealized (0 0) (1 5))+ (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey aik-0 akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (aik aik-0))+ (precedes ((1 6) (0 0)) ((2 2) (1 5)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk tpmkey))+ (uniq-orig v n tno esk)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (cat "quote" nonce))+ (obsv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send+ (enc "quote" (enc "created" k (hash "obtain" (hash n pcr)) aik)+ nonce aik-0))))+ (label 106)+ (parent 105)+ (unrealized (0 0) (2 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk1 esk esk-0 skey)+ (k aik tpmkey akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk-0) (k k) (aik aik))+ (precedes ((1 6) (0 0)) ((2 1) (1 5)))+ (neq (tno n))+ (non-orig esk1 esk-0 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (added-strand tpm-create-key 2)+ (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))+ (label 107)+ (parent 105)+ (unrealized (0 0) (2 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk esk-0 skey)+ (k aik tpmkey aik-0 akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk-0) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+ (aik aik-0))+ (precedes ((1 6) (0 0)) ((2 1) (1 5)) ((3 2) (2 0)))+ (neq (tno n))+ (non-orig esk1 esk-0 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "quote" nonce))+ (obsv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+ (send+ (enc "quote"+ (enc "create key" (hash "obtain" (hash n pcr)) esk-0) nonce+ aik-0))))+ (label 108)+ (parent 107)+ (unrealized (0 0) (3 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (precedes ((1 4) (2 0)) ((1 6) (0 0)) ((2 1) (1 5)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (displaced 3 1 alice 5)+ (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))+ (label 109)+ (parent 107)+ (unrealized (0 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n pcr))) (aik aik))+ (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 2) (0 0)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik) (0 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "quote" (enc v k))) (obsv (hash "refuse" (hash n pcr)))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))))+ (label 110)+ (parent 109)+ (unrealized (3 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)+ (k aik tpmkey aik-0 akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (aik aik-0))+ (precedes ((1 4) (2 0)) ((1 6) (3 1)) ((2 1) (1 5)) ((3 2) (0 0)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik) (0 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "quote" nonce))+ (obsv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send+ (enc "quote"+ (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik) nonce+ aik-0))))+ (label 111)+ (parent 109)+ (unrealized (3 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (pcr mesg) (v n tne tno tne-0 tno-0 data) (esk1 esk esk-0 skey)+ (k aik tpmkey tpmkey-0 akey))+ (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n pcr))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n pcr))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 2) (0 0))+ ((4 3) (3 1)))+ (leadsto ((4 3) (3 1)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash "refuse" (hash n pcr)) (3 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv pcr)+ (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+ (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+ ((recv (cat "quote" (enc v k))) (obsv (hash "refuse" (hash n pcr)))+ (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n pcr) (hash "refuse" (hash n pcr)))))+ (label 112)+ (parent 110)+ (unrealized (4 3))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 2) (0 0)) ((4 3) (3 1)) ((5 3) (4 3)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash n state) (4 3))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state))))+ (label 113)+ (parent 112)+ (unrealized (5 2))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")) (aik aik-0))+ (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 2) (0 0)) ((4 3) (3 1)) ((5 3) (4 3)) ((6 2) (5 2)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") (5 2))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv (cat "quote" nonce))+ (obsv+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (enc "quote"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") nonce aik-0))))+ (label 114)+ (parent 113)+ (unrealized (5 2) (6 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey-1))+ (precedes ((1 0) (5 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (1 1))+ ((5 3) (4 3)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 esk k)+ (operation encryption-test (displaced 6 1 alice 3)+ (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") (5 2))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state))))+ (label 115)+ (parent 113)+ (unrealized (5 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test+ (added-listener+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") (5 2))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))))+ (label 116)+ (parent 113)+ (unrealized (5 2) (6 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")) (aik aik-0))+ (defstrand tpm-extend-enc 4 (value esk-1)+ (state+ (cat (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false")) (tne tne-2) (tno tno-2) (esk esk-2)+ (tpmkey tpmkey-2))+ (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (7 3)) ((5 3) (4 3))+ ((6 2) (5 2)) ((7 3) (6 1)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)) ((7 3) (6 1)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") (6 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv (cat "quote" nonce))+ (obsv+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (enc "quote"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false") nonce aik-0)))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc esk-1 esk-2)) tno-2+ "false"+ (hash esk-2+ (hash "execute transport" (hash "extend" (enc esk-1 esk-2)))+ tne-2 tno-2 "false")))+ (tran+ (cat (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false")+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))))+ (label 117)+ (parent 114)+ (unrealized (5 2) (7 3))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey))+ (precedes ((1 0) (5 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (1 1))+ ((5 3) (4 3)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 esk k)+ (operation nonce-test (contracted (tpmkey-1 tpmkey)) esk (5 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state))))+ (label 118)+ (parent 115)+ (unrealized)+ (shape)+ (maps+ ((0 1)+ ((v v) (n n) (k k) (aik aik) (pcr state) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (tpmkey tpmkey))))+ (origs (n (1 2)) (tno (1 2)) (esk (1 0)) (tne (5 1)) (tne-0 (4 1))+ (k (2 1)) (v (1 6))))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey-1))+ (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+ (precedes ((1 0) (6 1)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (1 1))+ ((5 3) (4 3)) ((6 2) (5 0)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 esk k)+ (operation nonce-test (added-strand tpm-quote 3) esk (5 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "quote" nonce)) (obsv esk)+ (send (enc "quote" esk nonce aik-0))))+ (label 119)+ (parent 115)+ (unrealized (6 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state pcr mesg) (v n tne tno tne-0 tno-0 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey-1))+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (precedes ((1 0) (6 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (1 1))+ ((5 3) (4 3)) ((6 3) (5 0)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 esk k)+ (operation nonce-test (added-strand tpm-decrypt 4) esk (5 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+ (label 120)+ (parent 115)+ (unrealized (6 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))+ (aik aik-0))+ (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)) ((7 2) (6 0)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (hash "execute transport" (hash "extend" (enc n esk-1))) (6 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "quote" nonce))+ (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))+ (send+ (enc "quote"+ (hash "execute transport" (hash "extend" (enc n esk-1))) nonce+ aik-0))))+ (label 121)+ (parent 116)+ (unrealized (5 2) (7 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)) ((7 1) (6 0)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test+ (added-listener+ (cat "execute transport" (hash "extend" (enc n esk-1))))+ (hash "execute transport" (hash "extend" (enc n esk-1))) (6 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1))))))+ (label 122)+ (parent 116)+ (unrealized (5 2) (7 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state pcr nonce mesg) (v n tne tno tne-0 tno-0 data)+ (esk1 esk esk-0 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+ (tno tno) (esk esk) (tpmkey tpmkey-1))+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+ (precedes ((1 0) (6 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (1 1))+ ((5 3) (4 3)) ((6 3) (5 0)) ((7 2) (6 1)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+ (uniq-orig v n tne tno tne-0 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" tpmkey pcr aik-0) (6 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (tran state (hash n state)))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+ ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+ (send+ (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+ (label 123)+ (parent 120)+ (unrealized (7 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))+ (aik aik-0))+ (defstrand tpm-extend-enc 4 (value "execute transport")+ (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)+ (esk esk-2) (tpmkey tpmkey-2))+ (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)) ((7 2) (6 0)) ((8 3) (7 1)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)) ((8 3) (7 1)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash "execute transport" (hash "extend" (enc n esk-1))) (7 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "quote" nonce))+ (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))+ (send+ (enc "quote"+ (hash "execute transport" (hash "extend" (enc n esk-1))) nonce+ aik-0)))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport"+ (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"+ (hash esk-2+ (hash "execute transport"+ (hash "extend" (enc "execute transport" esk-2))) tne-2+ tno-2 "false")))+ (tran (hash "extend" (enc n esk-1))+ (hash "execute transport" (hash "extend" (enc n esk-1))))))+ (label 124)+ (parent 121)+ (unrealized (5 2) (8 3))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "extend" (enc n esk-1))) (aik aik-0))+ (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)) ((7 1) (6 0)) ((8 2) (7 0)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (hash "extend" (enc n esk-1)) (7 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))+ (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0))))+ (label 125)+ (parent 122)+ (unrealized (5 2) (8 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (precedes ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test+ (added-listener (cat "extend" (enc n esk-1)))+ (hash "extend" (enc n esk-1)) (7 0))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1)))))+ (label 126)+ (parent 122)+ (unrealized (8 0))+ (comment "3 in cohort - 3 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)+ (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 tpmkey-3 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))+ (aik aik-0))+ (defstrand tpm-extend-enc 4 (value "execute transport")+ (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)+ (esk esk-2) (tpmkey tpmkey-2))+ (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))+ (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))+ (precedes ((1 2) (9 3)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)) ((7 2) (6 0)) ((8 3) (7 1)) ((9 3) (8 3)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)) ((8 3) (7 1)) ((9 3) (8 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 tne-2 tne-3 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash "extend" (enc n esk-1)) (8 3))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "quote" nonce))+ (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))+ (send+ (enc "quote"+ (hash "execute transport" (hash "extend" (enc n esk-1))) nonce+ aik-0)))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport"+ (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"+ (hash esk-2+ (hash "execute transport"+ (hash "extend" (enc "execute transport" esk-2))) tne-2+ tno-2 "false")))+ (tran (hash "extend" (enc n esk-1))+ (hash "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))+ (send (cat "establish transport" tne-3))+ (recv+ (cat "execute transport" (cat "extend" (enc "extend" esk-3))+ tno-3 "false"+ (hash esk-3+ (hash "execute transport"+ (hash "extend" (enc "extend" esk-3))) tne-3 tno-3+ "false")))+ (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))+ (label 127)+ (parent 124)+ (unrealized (5 2) (9 3))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+ (esk1 esk esk-0 esk-1 esk-2 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (hash "extend" (enc n esk-1))) (aik aik-0))+ (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))+ (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+ (precedes ((1 2) (9 3)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)) ((7 1) (6 0)) ((8 2) (7 0)) ((9 3) (8 1)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)) ((9 3) (8 1)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)+ (operation state-passing-test (added-strand tpm-extend-enc 4)+ (hash "extend" (enc n esk-1)) (8 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))+ (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0)))+ ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+ (send (cat "establish transport" tne-2))+ (recv+ (cat "execute transport" (cat "extend" (enc "extend" esk-2))+ tno-2 "false"+ (hash esk-2+ (hash "execute transport"+ (hash "extend" (enc "extend" esk-2))) tne-2 tno-2+ "false")))+ (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))+ (label 128)+ (parent 125)+ (unrealized (5 2) (9 3))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk) (tpmkey tpmkey-1))+ (deflistener+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+ (deflistener (cat "extend" (enc n esk)))+ (precedes ((1 0) (5 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0))+ ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (contracted (esk-1 esk)) n (8 0) (enc n esk))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno-1+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne-1+ tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (send+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk))))+ (send (cat "execute transport" (hash "extend" (enc n esk)))))+ ((recv (cat "extend" (enc n esk)))+ (send (cat "extend" (enc n esk)))))+ (label 129)+ (parent 126)+ (unrealized (5 0) (6 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))+ (precedes ((1 2) (9 1)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+ ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))+ ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)) ((9 2) (8 0)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-strand tpm-quote 3) n (8 0) (enc n esk))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1))))+ ((recv (cat "quote" nonce)) (obsv n)+ (send (enc "quote" n nonce aik-0))))+ (label 130)+ (parent 126)+ (unrealized (9 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (deflistener esk)+ (precedes ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0))+ ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))+ ((9 1) (8 0)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-listener esk) n (8 0) (enc n esk))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk)))+ (label 131)+ (parent 126)+ (unrealized (9 0))+ (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk) (tpmkey tpmkey-1))+ (deflistener+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+ (deflistener (cat "extend" (enc n esk)))+ (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+ (precedes ((1 0) (5 0)) ((1 0) (9 1)) ((1 2) (8 0)) ((1 4) (2 0))+ ((1 6) (3 0)) ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1))+ ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))+ ((8 1) (7 0)) ((9 2) (6 0)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-strand tpm-quote 3) esk (6 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno-1+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne-1+ tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (send+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk))))+ (send (cat "execute transport" (hash "extend" (enc n esk)))))+ ((recv (cat "extend" (enc n esk)))+ (send (cat "extend" (enc n esk))))+ ((recv (cat "quote" nonce)) (obsv esk)+ (send (enc "quote" esk nonce aik-0))))+ (label 132)+ (parent 129)+ (unrealized (5 0) (9 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk) (tpmkey tpmkey-1))+ (deflistener+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+ (deflistener (cat "extend" (enc n esk)))+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (precedes ((1 0) (5 0)) ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0))+ ((1 6) (3 0)) ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1))+ ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))+ ((8 1) (7 0)) ((9 3) (6 0)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-strand tpm-decrypt 4) esk (6 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno-1+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne-1+ tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (send+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk))))+ (send (cat "execute transport" (hash "extend" (enc n esk)))))+ ((recv (cat "extend" (enc n esk)))+ (send (cat "extend" (enc n esk))))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+ (label 133)+ (parent 129)+ (unrealized (5 0) (9 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (deflistener esk)+ (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+ (precedes ((1 0) (10 1)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0))+ ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))+ ((9 1) (8 0)) ((10 2) (9 0)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-strand tpm-quote 3) esk (9 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))+ ((recv (cat "quote" nonce)) (obsv esk)+ (send (enc "quote" esk nonce aik-0))))+ (label 134)+ (parent 131)+ (unrealized (10 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (deflistener esk)+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (precedes ((1 0) (10 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0))+ ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))+ ((9 1) (8 0)) ((10 3) (9 0)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation nonce-test (added-strand tpm-decrypt 4) esk (9 0)+ (enc esk tpmkey))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+ (label 135)+ (parent 131)+ (unrealized (10 1))+ (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+ (vars (state pcr nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 data) (esk1 esk esk-0 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk) (tpmkey tpmkey-1))+ (deflistener+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+ (deflistener (cat "extend" (enc n esk)))+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+ (precedes ((1 0) (5 0)) ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0))+ ((1 6) (3 0)) ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1))+ ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))+ ((8 1) (7 0)) ((9 3) (6 0)) ((10 2) (9 1)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" tpmkey pcr aik-0) (9 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk)) tno-1+ "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne-1+ tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false"))+ (send+ (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+ tne-1 tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk))))+ (send (cat "execute transport" (hash "extend" (enc n esk)))))+ ((recv (cat "extend" (enc n esk)))+ (send (cat "extend" (enc n esk))))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+ ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+ (send+ (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+ (label 136)+ (parent 133)+ (unrealized (5 0) (10 1))+ (dead)+ (comment "empty cohort"))++(defskeleton envelope+ (vars (state pcr nonce mesg)+ (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+ (esk1 esk esk-0 esk-1 skey)+ (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))+ (deflistener+ (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+ (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+ (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+ (esk esk1) (k k) (aik aik))+ (defstrand tpm-quote 3 (nonce (enc v k))+ (pcr (hash "refuse" (hash n state))) (aik aik))+ (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+ (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+ (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+ (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+ (deflistener+ (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))+ (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+ (deflistener (cat "extend" (enc n esk-1)))+ (deflistener esk)+ (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+ (defstrand tpm-quote 3 (nonce nonce)+ (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+ (precedes ((1 0) (10 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))+ ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0))+ ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))+ ((9 1) (8 0)) ((10 3) (9 0)) ((11 2) (10 1)))+ (leadsto ((4 3) (3 1)) ((5 3) (4 3)))+ (neq (tno n))+ (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+ (uniq-orig v n tno tne-0 tne-1 esk k)+ (operation encryption-test (added-strand tpm-quote 3)+ (enc "created" tpmkey pcr aik-0) (10 1))+ (traces+ ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+ (recv (cat "establish transport" tne))+ (send+ (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+ (hash esk+ (hash "execute transport" (hash "extend" (enc n esk))) tne+ tno "false"))) (recv state)+ (send (enc "create key" (hash "obtain" (hash n state)) esk1))+ (recv (enc "created" k (hash "obtain" (hash n state)) aik))+ (send (enc v k)))+ ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+ (send (enc "created" k (hash "obtain" (hash n state)) aik)))+ ((recv (cat "quote" (enc v k)))+ (obsv (hash "refuse" (hash n state)))+ (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+ ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+ (send (cat "establish transport" tne-0))+ (recv+ (cat "execute transport" (cat "extend" (enc "refuse" esk-0))+ tno-0 "false"+ (hash esk-0+ (hash "execute transport"+ (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0+ "false")))+ (tran (hash n state) (hash "refuse" (hash n state))))+ ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+ (send (cat "establish transport" tne-1))+ (recv+ (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+ "false"+ (hash esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1)))+ tne-1 tno-1 "false"))) (tran state (hash n state)))+ ((recv+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false"))+ (send+ (cat esk-1+ (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+ tno-1 "false")))+ ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+ (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+ ((recv (cat "extend" (enc n esk-1)))+ (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))+ ((recv (cat "decrypt" (enc esk tpmkey)))+ (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+ ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+ (send+ (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+ (label 137)+ (parent 135) (unrealized (11 1)) (dead) (comment "empty cohort"))
tst/ffgg.tst view
@@ -1,8 +1,8 @@ (herald "The ffgg Protocol" (comment "From A Necessarily Parallel Attack by Jon K. Millen")) -(comment "CPSA 3.6.5")-(comment "All input read from ffgg.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/ffgg.scm") (defprotocol ffgg basic (defrole init
tst/fluffy_draft03_gske.tst view
@@ -3,8 +3,8 @@ (comment "Based on the Internet-Draft: https://www.ietf.org/archive/id/draft-hardjono-ace-fluffy-03.txt")) -(comment "CPSA 3.6.5")-(comment "All input read from fluffy_draft03_gske.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/fluffy_draft03_gske.scm") (defprotocol fluffy basic (defrole sp
tst/fnof_or.tst view
@@ -2,8 +2,8 @@ (comment "Version using variables of sort mesg, with ltk function emulated.")) -(comment "CPSA 3.6.5")-(comment "All input read from fnof_or.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/fnof_or.scm") (defprotocol or basic (defrole init
tst/fnof_test.tst view
@@ -1,8 +1,8 @@ (herald "Function constraint test protocol" (comment "Skeletons 2, 4, and 7 should have no shapes.")) -(comment "CPSA 3.6.5")-(comment "All input read from fnof_test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/fnof_test.scm") (defprotocol fnoftest basic (defrole init
tst/fnof_woolam.tst view
@@ -1,7 +1,7 @@ (herald "Woo-Lam Protocol, using fnof to emulate ltk function") -(comment "CPSA 3.6.5")-(comment "All input read from fnof_woolam.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/fnof_woolam.scm") (defprotocol woolam basic (defrole init
tst/fnof_yahalom.tst view
@@ -2,8 +2,8 @@ "Yahalom Protocol with Forwarding Removed, using fnof to emulate ltk function" (bound 12)) -(comment "CPSA 3.6.5")-(comment "All input read from fnof_yahalom.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/fnof_yahalom.scm") (defprotocol yahalom basic (defrole init
tst/goals.tst view
@@ -1,7 +1,7 @@ (herald goals) -(comment "CPSA 3.6.5")-(comment "All input read from goals.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/goals.scm") (defprotocol ns basic (defrole init@@ -871,7 +871,7 @@ (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b)) (non-orig (privk a) (privk b)) (uniq-orig n1 n1-0)- (subgoals+ (goals (forall ((n1 n1-0 n2 n2-0 text) (a b name) (z z-0 strd)) (implies (and (p "init" z 3) (p "init" z-0 3) (p "init" "n1" z n1)@@ -1057,7 +1057,7 @@ (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b)) (non-orig (privk a) (privk b)) (uniq-orig n1 n1-0)- (subgoals+ (goals (forall ((z z-0 strd)) (implies (and (p "init" z 3) (p "init" z-0 3)) (= z z-0)))) (comment "Double initiator point of view 2")
tst/iadh_um.tst view
file too large to diff
tst/injection.tst view
@@ -2,8 +2,8 @@ (comment "This protocol contains a man-in-the-middle" "attack discovered by Galvin Lowe.")) -(comment "CPSA 3.6.5")-(comment "All input read from injection.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/injection.scm") (defprotocol ns diffie-hellman (defrole init
tst/kerb.tst view
@@ -1,5 +1,5 @@-(comment "CPSA 3.6.5")-(comment "All input read from kerb.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/kerb.scm") (defprotocol kerb-flawed basic (defrole init
tst/kerberos++.tst view
@@ -1,5 +1,5 @@-(comment "CPSA 3.6.5")-(comment "All input read from kerberos++.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/kerberos++.scm") (defprotocol kerberos basic (defrole client
tst/lt_test.tst view
@@ -2,8 +2,8 @@ (comment "First and third skeletons should have a shape," "second and fourth should be dead.")) -(comment "CPSA 3.6.5")-(comment "All input read from lt_test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/lt_test.scm") (defprotocol lttest basic (defrole init
tst/neq_test.tst view
@@ -2,8 +2,8 @@ (comment "First skeleton should have a shape," "second, and hird should be dead.")) -(comment "CPSA 3.6.5")-(comment "All input read from neq_test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/neq_test.scm") (defprotocol neqtest basic (defrole init
tst/ns.tst view
@@ -2,8 +2,8 @@ (comment "This protocol contains a man-in-the-middle" "attack discovered by Galvin Lowe.")) -(comment "CPSA 3.6.5")-(comment "All input read from ns.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/ns.scm") (defprotocol ns basic (defrole init
tst/or.tst view
@@ -1,8 +1,8 @@ (herald "Otway-Rees Protocol" (comment "Standard version using variables of sort mesg")) -(comment "CPSA 3.6.5")-(comment "All input read from or.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/or.scm") (defprotocol or basic (defrole init
tst/ordered.tst view
@@ -1,7 +1,7 @@ (herald ordered) -(comment "CPSA 3.6.5")-(comment "All input read from ordered.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/ordered.scm") (defprotocol ordered basic (defrole dec
tst/owang.tst view
@@ -1,5 +1,5 @@-(comment "CPSA 3.6.5")-(comment "All input read from owang.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/owang.scm") (defprotocol wang basic (defrole init1
tst/owat.tst view
@@ -1,8 +1,8 @@ (herald "One-way Authentication Test with bltk keys" (algebra diffie-hellman) (bound 12)) -(comment "CPSA 3.6.5")-(comment "All input read from owat.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/owat.scm") (defprotocol owa diffie-hellman (defrole init
tst/pkinit.tst view
@@ -1,7 +1,7 @@ (herald "Kerberos PKINIT") -(comment "CPSA 3.6.5")-(comment "All input read from pkinit.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/pkinit.scm") (defprotocol pkinit-flawed basic (defrole client
tst/plaindh.tst view
@@ -1,8 +1,8 @@ (herald "Plain diffie-hellman protocol with challenge-response" (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from plaindh.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/plaindh.scm") (defprotocol plaindh diffie-hellman (defrole init
tst/priority_test.tst view
@@ -1,7 +1,7 @@ (herald "Receive priority test protocol") -(comment "CPSA 3.6.5")-(comment "All input read from priority_test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/priority_test.scm") (defprotocol priority_test basic (defrole init
tst/prottrans.tst view
@@ -1,7 +1,7 @@ (herald "Protocol Transformations With Rules") -(comment "CPSA 3.6.5")-(comment "All input read from prottrans.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/prottrans.scm") (defprotocol ns basic (defrole init
tst/reflect.tst view
@@ -1,7 +1,7 @@ (herald reflect) -(comment "CPSA 3.6.5")-(comment "All input read from reflect.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/reflect.scm") (defprotocol reflect basic (defrole init
tst/role_uniq.tst view
@@ -1,7 +1,7 @@ (herald "Role Unique Origination") -(comment "CPSA 3.6.5")-(comment "All input read from role_uniq.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/role_uniq.scm") (defprotocol blanchet basic (defrole init
tst/rule-order.tst view
@@ -1,7 +1,7 @@ (herald rule-order) -(comment "CPSA 3.6.5")-(comment "All input read from rule-order.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/rule-order.scm") (defprotocol rule-order basic (defrole init (vars (s t text)) (trace (send (cat s t))))
tst/staticdh.tst view
@@ -1,7 +1,7 @@ (herald "Static DH key exchange" (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from staticdh.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/staticdh.scm") (defprotocol staticdh1 diffie-hellman (defrole init
tst/station.tst view
@@ -1,7 +1,7 @@ (herald "Station-to-station protocol" (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from station.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/station.scm") (defprotocol station-to-station diffie-hellman (defrole init
tst/station2.tst view
@@ -1,7 +1,7 @@ (herald "Station-to-station protocol" (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from station2.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/station2.scm") (defprotocol station-to-station diffie-hellman (defrole init
tst/subsort_test.tst view
@@ -2,8 +2,8 @@ (comment "First, third, and fourth skeletons should have a shape," "second should be dead.")) -(comment "CPSA 3.6.5")-(comment "All input read from subsort_test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/subsort_test.scm") (defprotocol subsorttest basic (defrole init
tst/test_small.tst view
@@ -1,7 +1,7 @@ (herald "small test" (algebra diffie-hellman)) -(comment "CPSA 3.6.5")-(comment "All input read from test_small.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/test_small.scm") (defprotocol test diffie-hellman (defrole init
tst/trust-anchor.tst view
@@ -1,8 +1,8 @@ (herald trust-anchor (comment "Tests rule application on initial skeleton")) -(comment "CPSA 3.6.5")-(comment "All input read from trust-anchor.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/trust-anchor.scm") (defprotocol trust-anchor basic (defrule trust-anchor-inverse-is-non
tst/unilateral.tst view
@@ -1,7 +1,7 @@ (herald unilateral) -(comment "CPSA 3.6.5")-(comment "All input read from unilateral.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/unilateral.scm") (defprotocol unilateral basic (defrole init
tst/uniq-gen-test.tst view
@@ -1,8 +1,8 @@ (herald "Unique generation test protocols." (comment "Skeletons 2, 4, and 7 should have no shapes.")) -(comment "CPSA 3.6.5")-(comment "All input read from uniq-gen-test.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/uniq-gen-test.scm") (defprotocol uniqgentest basic (defrole init
tst/woolam.tst view
@@ -1,7 +1,7 @@ (herald "Woo-Lam Protocol") -(comment "CPSA 3.6.5")-(comment "All input read from woolam.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/woolam.scm") (defprotocol woolam basic (defrole init
tst/wrap_decrypt.tst view
@@ -1,7 +1,7 @@ (herald wrap-decrypt (bound 10)) -(comment "CPSA 3.6.5")-(comment "All input read from wrap_decrypt.lsp")+(comment "CPSA 3.6.6")+(comment "All input read from tst/wrap_decrypt.lsp") (comment "Strand count bounded at 10") (defprotocol wrap-decrypt basic
tst/yahalom.tst view
@@ -1,8 +1,8 @@ (herald "Yahalom Protocol with Forwarding Removed" (algebra diffie-hellman) (bound 12)) -(comment "CPSA 3.6.5")-(comment "All input read from yahalom.scm")+(comment "CPSA 3.6.6")+(comment "All input read from tst/yahalom.scm") (defprotocol yahalom diffie-hellman (defrole init