cpsa-2.0.4: cpsa.cabal
Name: cpsa
Version: 2.0.4
Maintainer: ramsdell@mitre.org
Cabal-Version: >= 1.2
License: BSD3
License-File: license.txt
Synopsis: Symbolic cryptographic protocol analyzer
Description:
The Cryptographic Protocol Shapes Analyzer (CPSA) attempts to
enumerate all essentially different executions possible for a
cryptographic protocol. We call them the shapes of the protocol.
Naturally occurring protocols have only finitely many, indeed very
few shapes. Authentication and secrecy properties are easy to
determine from them, as are attacks and anomalies.
.
For each input problem, the CPSA program is given some initial
behavior, and it discovers what shapes are compatible with it.
Normally, the initial behavior is from the point of view of one
participant. The analysis reveals what the other participants must
have done, given the participant's view.
.
We are working towards a version of CPSA with the property that
whenever it successfully terminates, every possible execution is
described by its output. However, the current implementation
occasionally fails to find some executions.
.
The package contains a set of programs used to perform and display
the analysis. Program documentation is in the doc directory in the
source distribution, and installed in the package's data directory.
You can locate the package's data directory by searching for the
file cpsauser.html. New users should study the documentation and
the sample inputs in the data directory. The source distribution
includes a test suite with an expanded set of input files and
program design documentation.
.
The theory and algorithm used by CPSA was developed with the help of
Joshua D. Guttman, John D. Ramsdell, Jon C. Herzog, Shaddin
F. Doghmi, F. Javier Thayer, and Paul D. Rowe. John D. Ramsdell
implemented the algorithm in Haskell.
Category: Cryptography
Build-Type: Simple
Data-Files:
doc/index.html doc/cpsauser.html doc/cpsa.mk doc/Make.hs
doc/cpsaprimer.pdf doc/cpsaoverview.pdf doc/ffgg.scm doc/ns.scm
doc/or.scm doc/woolam.scm doc/yahalom.scm
-- In cabal 1.6, use this:
-- Data-Files:
-- index.html cpsauser.html cpsa.mk Make.hs cpsaprimer.pdf cpsaoverview.pdf
-- ffgg.scm ns.scm or.scm woolam.scm yahalom.scm
-- Data-Dir: doc
Extra-Source-Files:
Makefile ChangeLog README NEWS ghci cpsatst doc/README doc/Makefile
doc/macros.tex doc/cpsaprimer.tex doc/bcasyntax.tex doc/cpsaspec.tex
doc/cpsadesign.tex doc/cpsaoverview.tex doc/cpsadiagrams.mp
doc/strands.mp doc/cmstrands.mp doc/carriers.mp doc/termtree.mp
doc/cpsa.bib doc/SDAG.lhs src/index.html src/cpsacgi src/cpsacgi.py
src/cpsa2svg src/cpsa.el src/httpd_allow_execmem.te src/cpsaops.scm
src/preskel src/cpsa.pl src/pp.pl src/sexpr.pl
tst/README tst/Makefile tst/Make.hs tst/checktst tst/cpsagraphall
tst/cpsashapesall tst/dass.lisp tst/completeness-test.scm
tst/completeness-test.tst tst/missing-contraction.scm
tst/missing-contraction.tst tst/dass-mod.lisp tst/dass_simple.scm
tst/dass_simple.tst tst/denning-sacco.scm tst/denning-sacco.tst
tst/dh.sch tst/dh.tst tst/ds-short.lisp tst/dy.lsp tst/dy.tst
tst/epmo_acctnum.lsp tst/epmo_acctnum.tst tst/epmo.scm
tst/encsig.scm tst/encsig.tst tst/epmo.tst tst/ffgg.scm tst/ffgg.tst
tst/isoreject.scm tst/isoreject.tst tst/kelly1.scm tst/kelly1.tst
tst/kelly64.lisp tst/kerb5.lisp tst/kerberos.scm tst/kerberos.tst
tst/neuman-stubblebine-alt.lisp tst/neuman-stubblebine-reauth.lisp
tst/neuman-stubblebine-reauth.lsp tst/neuman-stubblebine-reauth.tst
tst/neuman-stubblebine.scm tst/neuman-stubblebine.tst tst/nsl3.scm
tst/nsl3.tst tst/nsl4.lisp tst/nsl5i.lisp tst/nsl5.lisp
tst/nslsk.scm tst/nslsk.tst tst/ns.scm tst/ns.tst tst/or.scm
tst/or.tst tst/pca.lsp tst/pca.tst tst/tnsl5.lisp tst/updatetst
tst/sigenc.scm tst/sigenc.tst tst/weird.scm tst/weird.tst
tst/wmf.lsp tst/wmf.tst tst/woolam.scm tst/woolam.tst
tst/yahalom.scm tst/yahalom.tst tst/sorted_epmo_acctnum.scm
tst/sorted_epmo_acctnum.tst tst/nsl4cm1.lsp tst/nsl4cm1.tst
-- Disable with -f-par option during configuration.
Flag Par
Description: Enable use of the parallel construct par
Default: True
Flag Old
Description: Enable support for cabal < 1.6
Default: False
-- Algebra implementations must import CPSA.Lib.CPSA.
-- Tools may additionally import CPSA.Lib.Entry.
-- No other modules in CPSA.Lib should be imported by applications.
Executable cpsa
Main-Is: CPSA/Lib/Main.hs
Build-Depends: base >= 3 &&< 5, containers
GHC-Options:
-Wall -fno-warn-name-shadowing -fwarn-unused-imports
Hs-Source-Dirs: src
--Hackage if flag(old)
--Hackage Hs-Source-Dirs: dist/build/autogen
Other-Modules:
Paths_cpsa CPSA.Lib.Vector CPSA.Lib.Utilities CPSA.Lib.Pretty
CPSA.Lib.SExpr CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra
CPSA.Lib.Protocol CPSA.Lib.Strand CPSA.Lib.Loader
CPSA.Lib.Displayer CPSA.Lib.Cohort CPSA.Lib.Expand CPSA.Lib.CPSA
CPSA.Basic.Algebra CPSA.DiffieHellman.Algebra
CPSA.DiffieHellman.IntLinEq
if flag(par)
Cpp-Options: -DHAVE_PAR
GHC-Options: -threaded
Build-Depends: parallel
Executable cpsagraph
Main-Is: CPSA/Graph/Main.hs
Build-Depends: base >= 3 && < 5, containers
GHC-Options:
-Wall -fno-warn-name-shadowing -fwarn-unused-imports
Hs-Source-Dirs: src
--Hackage if flag(old)
--Hackage Hs-Source-Dirs: dist/build/autogen
Other-Modules:
Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr
CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra CPSA.Lib.Protocol
CPSA.Lib.Strand CPSA.Lib.Loader CPSA.Lib.Displayer CPSA.Lib.Cohort
CPSA.Lib.CPSA CPSA.Graph.XMLOutput CPSA.Graph.Config
CPSA.Graph.SVG CPSA.Graph.Loader CPSA.Graph.Preskeleton
CPSA.Graph.Layout CPSA.Graph.Tree CPSA.Graph.CompactView
CPSA.Graph.ExpandedView CPSA.Graph.LaTeXView
Executable cpsashapes
Main-Is: CPSA/Shapes/Main.hs
Build-Depends: base >= 3 && < 5, containers
GHC-Options:
-Wall -fno-warn-name-shadowing -fwarn-unused-imports
Hs-Source-Dirs: src
--Hackage if flag(old)
--Hackage Hs-Source-Dirs: dist/build/autogen
Other-Modules:
Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr
CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra CPSA.Lib.Protocol
CPSA.Lib.Strand CPSA.Lib.Loader CPSA.Lib.Displayer CPSA.Lib.Cohort
CPSA.Lib.CPSA CPSA.Shapes.Shapes
Executable cpsaannotations
Main-Is: CPSA/Annotations/Main.hs
Build-Depends: base >= 3 && < 5, containers
GHC-Options:
-Wall -fno-warn-name-shadowing -fwarn-unused-imports
Hs-Source-Dirs: src
--Hackage if flag(old)
--Hackage Hs-Source-Dirs: dist/build/autogen
Other-Modules:
Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr
CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra CPSA.Lib.Protocol
CPSA.Lib.Strand CPSA.Lib.Loader CPSA.Lib.Displayer CPSA.Lib.Cohort
CPSA.Lib.CPSA CPSA.Annotations.Formulas
CPSA.Annotations.Annotations CPSA.Basic.Algebra
CPSA.DiffieHellman.Algebra CPSA.DiffieHellman.IntLinEq
Executable cpsaparameters
Main-Is: CPSA/Parameters/Main.hs
Build-Depends: base >= 3 && < 5, containers
GHC-Options:
-Wall -fno-warn-name-shadowing -fwarn-unused-imports
Hs-Source-Dirs: src
--Hackage if flag(old)
--Hackage Hs-Source-Dirs: dist/build/autogen
Other-Modules:
Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr
CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra CPSA.Lib.Protocol
CPSA.Lib.Strand CPSA.Lib.Loader CPSA.Lib.Displayer CPSA.Lib.Cohort
CPSA.Lib.CPSA CPSA.Parameters.Flow
Executable cpsapp
Main-Is: CPSA/Pretty/Main.hs
Build-Depends: base >= 3 && < 5, containers
GHC-Options:
-Wall -fno-warn-name-shadowing -fwarn-unused-imports
Hs-Source-Dirs: src
--Hackage if flag(old)
--Hackage Hs-Source-Dirs: dist/build/autogen
Other-Modules:
Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr
CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra CPSA.Lib.Protocol
CPSA.Lib.Strand CPSA.Lib.Loader CPSA.Lib.Displayer CPSA.Lib.Cohort
CPSA.Lib.CPSA