Changelog for cpsa-3.6.10
2022-03-20 John D. Ramsdell <ramsdell@mitre.org>
* cpsa.cabal (Version): Tagged as 3.6.10
2022-03-17 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/SExpr.hs: Allow double quote and backslash in
strings so that S-expressions can contain Windows file names.
2022-01-04 John D. Ramsdell <ramsdell@mitre.org>
* cpsa.cabal (Version): Tagged as 3.6.9
2021-12-08 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Strand.hs (origUgenDiffStrand): Expunge skeletons
that have a value that is both uniq orig and uniq gen, and start
on different strands.
2021-11-12 John D. Ramsdell <ramsdell@mitre.org>
* cpsa.cabal (Version): Tagged as 3.6.8
2021-11-05 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Strand.hs (addBaseListener): Added a stronger
method for solving some Diffie-Hellman authentication tests. The
method handles the special case in which the critical term has the
form (exp (gen) (mul ...)) and all of variables in the exponent
are random exponents (rndx). It uses baseRndx to add listeners.
* src/CPSA/DiffieHellman/Algebra.hs (baseRndx): When all of the
factors in a group use rndx variables, baseRndx returns a list of
concatenations of each variable with the base term exponentiated
with the group without the variable.
2021-11-02 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Graph/ExpandedView.hs (tdrawer): Added POV link in
tree.
2021-09-10 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/lib/Expand.hs (macroExpand): Made it an error to apply
a macro to the wrong number of arguments.
2021-04-27 John D. Ramsdell <ramsdell@mitre.org>
* cpsa.cabal (Version): Tagged as 3.6.7
2021-04-27 Joshua D. Guttman <guttman@mitre.org>
* cpsa.cabal: Clarified package description (deorigination)
2021-04-14 John D. Ramsdell <ramsdell@mitre.org>
* Makefile: Vastly simplified.
2020-10-27 John D. Ramsdell <ramsdell@mitre.org>
* cpsa.cabal (Data-Files): Added missing examples to Data-files.
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
* src/CPSA/Lib/Strand.hs (tryPermProb): Rewrote tryPermProb so
that it uses tryPerm.
2019-11-08 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Strand.hs (tryPermProb): Added missing invperm to
the third line of tryPermProb, and reenabled multistrand thinning.
2019-10-21 John D. Ramsdell <ramsdell@gootoo.mitre.org>
* cpsa.cabal (Version): Tagged as 3.6.4
2019-10-21 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Utilities.hs: Used the C preprocessor to allow
compilation using older versions of GHC.
2019-10-15 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Utilities.hs: Updated code to support the removal
of fail from Monad as implemented in base-4.13.0.0.
2019-09-16 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Strand.hs (thinManyStrands): Replaced isomorphic
check with probIsomorphic check so that strands in the
point-of-view remain unmodified.
2019-08-26 John D. Ramsdell <ramsdell@mitre.org>
* cpsa.cabal (Version): Tagged as 3.6.3
2019-08-22 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Strand.hs (doRewritesLoop): Fixed the code that
counts rewrite rules applied so it is accurate. This allows the
rewrite rule limit to be correctly enforced.
2019-08-21 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Strand.hs (runiqAt): Ensured that rewriting with
uniq-at fails when the index is greater than the strand length.
2019-08-19 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Init/Main.hs (main): Added program cpsainit. The
programs copies the files Makefile, cpsa4.mk, Make4.hs, and
template.lisp from the CPSA data directory to the current
directory, thereby easing the task of starting a CPSA project.
2019-07-15 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/State.hs: Removed the label field in a transition.
The field was always ignored, and it causes confusion on input.
2019-06-26 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Strand.hs (multiset): Used multisets of trace
briefs to reduce the number of full permutation isomorphism
checks.
2019-06-21 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Strand.hs (brief): Added a summary of trace that
reduces the need for matching during isomorphism checking.
2019-06-04 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Reduction.hs (begin): Reversed todo list after
running rules so as to get the output order correct.
2019-05-20 Joshua D. Guttman <guttman@mitre.org>
* src/CPSA/Lib/Strand.hs (tryPerm): Fixed bug in isomorphism
checking. Checking of facts used wrong environment.
2019-05-17 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/SAS/SAS.hs (leadstoKey): Added support for leadsto in
shape analysis sentences.
* src/CPSA/Lib/Strand.hs (kfactVars): Allow message variables in
facts that occur nowhere else.
(useFactVars): Add flag that disables message variable in facts
that occur nowhere else and disable it, because isomorphism
checking is broken.
* src/CPSA/Strand.hs (doRewriteOne): Values associated with
existential variables in rules are freshly generated so that
parameter terms can be compound.
2019-04-03 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Strand.hs (verbosePreskelWellFormed): Added a check
that ensures the every variable that occurs in a fact also occurs
in some strand.
2019-03-18 John D. Ramsdell <ramsdell@mitre.org>
* cpsa.cabal (Version): Tagged as 3.6.2
2019-02-22 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Reduction.hs (addAnnoKey): Added structured
annotations to skeleton output to facilitate post processing
programs besides cpsagraph. The new keys are (aborted),
(satisfied-all), and (dead).
2019-02-04 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Reduction.hs (step): Changed default depth bound
to zero representing no bound and ignored the check when the bound
is not positive. This matches what is documented in the manual.
2019-01-31 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Loader.hs (badKey): Added checks for bad keys in
alists for skeletons ("defstrand" and "deflistener") and protocols
("defrole" and "defrule").
2018-11-28 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Protocol.hs (AForm): Added the leads-to predicate
to the goal language.
2018-11-19 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Printer.hs (formula): Added special pretty
printing rules for formulas in defgoal and defrule.
2018-11-09 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/SAS/SAS.hs (loadPOV): Use a preskeleton as a POV
instead of insisting on using a skeleton.
2018-08-29 John D. Ramsdell <ramsdell@mitre.org>
* cpsa.cabal (Version): Tagged as 3.6.1
2018-08-22 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Strand.hs (doRewrites): Added a limit on the number of
rules that can be applied after solving an authentication test.
2018-08-20 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Strand.hs (cleansPreskel): Cleansed facts from a
skeleton purged of a strand. This changes fixes a nasty display
bug that occurred when a variable in a fact did not occur in any
strand.
2018-08-06 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Loader.hs (loadConclusion): Removed mode flag as
this routine should always be using mode RoleSpec. This resolves
a bug in which CPSA could not load a Shape Analysis Sentence as
rule because equality was before the protocol specific formulas.
* src/CPSA/Lib/Strand.hs (newPreskel): Changed newPreskel so that
it removed duplicates in the leadsto field when creating a new
preskeleton. This resolved a bug in which CPSA produced to shapes
that appeared to be isomorphic, but instead, one shape had
duplicates in its leadsto field.
2018-06-25 John D. Ramsdell <ramsdell@mitre.org>
* cpsa.cabal (Version): Tagged as 3.6.0
2018-06-18 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Strand.hs (gparam): Added support for binding the
strand variable in gparam as opposed to relying on it being bound
by a role length predicate.
2018-06-11 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/*.hs: Implemented geometric formulas as rewrite
rules. The rules are applied after each cohort step.
2018-06-05 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/*.hs: Converted the goal language to be
strand-oriented. The goal language in incompatible with the
previous, node-oriented language.
2018-05-22 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Cohort.hs (unrealizedInNode, nextNodeA): Lifted to
top-level to satisfy new ambiguity check in GHC 8.4.2.
2018-04-17 John D. Ramsdell <ramsdell@mitre.org>
* cpsa.cabal (Version): Tagged as 3.5.0.
2018-03-20 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/DiffieHellman/Algebra.hs (displayVar, mkVar): Changed
sort names. expn -> rndx and expr -> expt.
2018-02-12 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/SAS/SAS.hs (disjoin): Changed output to (false) on an
empty disjunction instead of (or).
2018-01-12 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Loader.hs (mkListenerRole): Changed do pattern to
be irrefutable.
2017-09-15 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/DiffieHellman/Algebra.hs (unifyTerms): Added calls to
chase before calling unifyBase which prevents a failure in the
occurs check.
2017-09-14 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Strand.hs (tryPerm): Add missing inverse
permutation to second checkOrigs in tryPerm.
2017-09-12 John D. Ramsdell <ramsdell@mitre.org>
* cpsa.cabal: Removed CPSA.Lib.CPSA globally and removed
unnecessary dependencies.
2017-08-30 John D. Ramsdell <ramsdell@mitre.org>
* cpsa.cabal: Added missing modules and source repository
location.
* src/CPSA/Lib/DebugLibrary.hs (zi): Fixed erroneous parameters in
Instance.
2017-08-28 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Cohort.hs (solved): Fixed condition 5. It was
using ct instead of ct'.
2017-06-30 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Cohort.hs (transformingNode, maybeAug, nextNode):
Rewrote code so that it no longer fails the ambiguity check.
2017-05-26 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/DiffieHellman/Algebra.hs (mkInitMatchDecis): Ensure
initial distinctions to not include fresh variables.
(partition): Do not move variables of sort expn to lhs, even if
they are freshly generated.
2017-05-16 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/DiffieHellman/Algebra.hs (displaySubst): Removed
erroneous substitution to fix substitution displaying.
2017-05-10 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Strand.hs (findReplacement, permutations): Merge
generators so that no variable in a term has an identifier that is
greater than or equal to the generator.
2017-02-02 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Basic/Algebra.hs (loadInvk): Added support for reading
(invk (privk ...)) and (invk (invk ...)).
2017-01-17 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/SAS/SAS.hs (strandForm): Remove conjoin and use
concatMap when creating a characteristic skeleton.
2017-01-09 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Loader.hs (loadPrimary): Removed generator
parameter that was not used.
2016-12-21 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Cohort.hs (solved): In Condition 4, applied
substitutions to the encryption keys before testing for
derivability.
2016-10-04 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Basic/Algebra.hs (matchRenaming): Make isomorphism
check work in presence of asymmetric keys.
2016-09-30 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Algebra.hs: Added isObtainedVar for variables of
sort expr in the Diffie-Hellman algebra.
2016-08-12 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/SAS/SAS.hs (form): Changed "defsas" to "defgoal" as the
keyword for a generated shape analysis sentence. This makes the
program compatible with its documentation.
2016-06-22 John D. Ramsdell <ramsdell@mitre.org>
* cpsa.cabal (Extension): Add allow ambiguous types when compiling
with GHC 8.0.0 or later.
2016-06-21 Moses D. Liskov <mliskov@mitre.org>
* src/CPSA/DiffieHellman/Algebra.hs: Added code to implement the
"tag" sort, which quoted string tags belong to.
2016-06-03 Moses D. Liskov <mliskov@mitre.org>
* doc/examples/IKE_variants.tar.gz: Added this compressed archive
of IKEv1 and IKEv2 variant input files.
2016-03-30 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/SAS/SAS.hs: Added support for fringe skeletons so that
cpassas makes use of depth limited output. When a tree depth
limit is exceeded, a fringe labeled skeleton is printed. cpsasas
produces a sentence with a right-hand-side that encodes both the
shapes and the fringe. Thus, when cpsa is running the a tree
depth limit of one, cpsasas computes a cohort analysis sentence.
2016-03-29 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Reduction.hs (LPreskel): Added a depth field, so
that CPSA aborts when the depth of one branch exceeds a bound.
* src/CPSA/Lib/Algebra.hs: Added escapeSet to Term class and remove
protectors, thus computing the escape set in a more
straightforward way.
2015-11-23 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/SAS/Main.hs (main): Changed start up so that the herald
is read and used to find the correct algebra for further
processing.
2015-10-02 John D. Ramsdell <ramsdell@mitre.org>
* doc/{index,cpsauser}.html: Added width limit of 48em.
2015-07-09 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Graph/ExpandedView.hs (purgeTraces): By default, the
graph program now does not show traces in skeletons. Added
--show-traces option to the graph program, which restores the
previous behavior and traces are displayed in skeletons.
2015-07-02 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Algebra.hs: Added constituent to the algebra
interface and the algebras. An atom is a constituent of a term if
the atom is among the set of atoms required to construct the term.
Changed occursIn so that it just applies to variables.
2015-07-01 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/{Basic,DiffieHellman}/Algebra.hs (occursIn): Restricted
first argument of occursIn to variables and atoms and corrected
the implementation.
2015-06-30 John D. Ramsdell <ramsdell@mitre.org>
* cpsa3.cabal (Version): Tagged as 3.2.2.
2015-06-25 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Strand.hs (geq): Removed dynamic role specific test
because it erroneously reports violations. The existing static
role specific test correctly does the job.
2015-05-26 John D. Ramsdell <ramsdell@mitre.org>
* cpsa3.cabal (Version): Tagged as 3.2.1.
* src/CPSA/DiffieHellman/Algebra.hs (displayTerm): Made it so
that CPSA prints each bltk atoms in a canonical form so that the
graph program draws solid arrows when it should.
2015-04-27 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Loader.hs (ReturnFail): Added ReturnFail Monad so
that fail is correctly handled. Added Functor and Applicative
instance to support GHC 7.10 base library.
2015-04-20 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Characteristic.hs (mkDcls): Fixed tag for non-orig
and pen-non-orig.
2015-04-10 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Strand.hs (mkListener): The role used for listener
strands is now the one stored in the protocol. It has a single
variable x of sort mesg as its set of variables. This change
enables satisfaction checking on skeleton that include listeners.
2015-04-07 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Strand.hs (toSkeleton): Removed hulling to the
process of converting an input preskeleton into a skeleton as it
causes bugs in printing.
* Imported CPSA2's implementation of goals and expunged support
for subgoals.
2015-03-27 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Strand.hs (toSkeleton): Added hulling to the
process of converting an input preskeleton into a skeleton.
2015-03-25 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Goal.hs: Added uniq to goal language.
2015-03-17 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/SAS/SAS.hs (form): Generate a defsas form rather than a
naked sentence.
* src/CPSA/Lib/Loader.hs (loadPrimary): Renamed equals function
symbol to =.
2015-03-05 John D. Ramsdell <ramsdell@mitre.org>
* cpsa3.cabal (Version): Tagged as 3.2.0.
2015-02-20 John D. Ramsdell <ramsdell@mitre.org>
* Added support for subgoals within point-of-view skeletons. The
subgoals are evaluated for each shape, and (satisfies-a-subgoal)
is added to a shape when it satisfies one of the subgoals.
2014-12-11 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Entry.hs (defaultOptions): Changed the default
strand bound to 12.
2014-11-15 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/SAS/SAS.hs: Changed the language used for a shape
analysis sentence to be node-oriented.
2014-11-07 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Loader.hs (loadPriorities): Allowed priority
declarations on state synchronization nodes other than
initiatizers.
2014-11-07 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Cohort.hs (explainable): Added the nodes reachable
by strand succession so that a transition can be explained by a
previous transition within a strand.
2014-10-31 John D. Ramsdell <ramsdell@mitre.org>
* Changed the name of the logic producing program to cpsa3sas.
2014-09-01 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/Strand.hs (noStateSplit): An observer node should have
at most one transition node after it too.
2014-08-31 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/State.hs: Made labels optional. Use "tran" for
state synchronization events with labels, and "sync" for ones
without.
2014-08-29 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/Lib/*.hs: Added support for analyzing protocols with
state. A state synchronization event sync was added to the events
that can occur in a trace, along with a new method for state-based
augmentation. An example using sync events is in
tst/envelope.scm.
2014-08-26 John D. Ramsdell <ramsdell@mitre.org>
* cpsa3.cabal: Removed cpsaparameters program.
2014-08-25 John D. Ramsdell <ramsdell@mitre.org>
* src/split.py: Added the skeleton split program that copies the
skeletons in a CPSA source file into separate files.
2014-08-23 John D. Ramsdell <ramsdell@mitre.org>
* src/cpsajson.py (load): Added a reader in Python for JSON
produced by CPSA's pretty printer program cpsa3pp -j.
2014-08-22 John D. Ramsdell <ramsdell@mitre.org>
* src/CPSA/JSON/Main.hs: Added the program cpsa3json that
translates JSON encoded CPSA into CPSA S-Expressions. It expects
the JSON input to follow the conventions of the JSON produced by
the cpsapp program when given the -j option.
* src/CPSA/Lib/SExpr.hs (numOrSym): Enabled parsing a number with
a plus sign by removing the sign before translating the string of
digits into a number.
2014-06-12 John D. Ramsdell <ramsdell@mitre.org>
* cpsa3.cabal (Version): Tagged as 3.0.3.
2014-02-06 John D. Ramsdell <ramsdell@mitre.org>
* cpsa3.cabal (Version): Tagged as 3.0.2.
2013-12-14 John D. Ramsdell <ramsdell@mitre.org>
* cpsa3.cabal (Version): Tagged as 3.0.1.
* cpsa3.cabal (Extra-Source-Files): Added more DH tests
2013-03-12 John D. Ramsdell <ramsdell@mitre.org>
* src/CPET/Annotations/Annotations.hs (obligation): Replaced an
irrefutable pattern that raised an exception with a maybeToList.
2013-02-21 John D. Ramsdell <ramsdell@mitre.org>
* src/CPET/DiffieHellman/Algebra.hs: Added the Diffie-Hellman
algebra based on Abelian groups.
* src/CPET/Basic/Algebra.hs: Removed support for GHC 6.x.
2013-02-06 John D. Ramsdell <ramsdell@mitre.org>
* cpet.cabal (Version): Tagged as 0.0.0.