Commit Graph

1126 Commits

Author SHA1 Message Date
Dylan McNamee
86c3d0ffe2 Module documentation 2016-02-25 15:14:00 -08:00
Brian Huffman
5e5184d5ee Add alternative implementations of bivium and trivium ciphers 2016-02-19 14:24:07 -08:00
Brian Huffman
ab82097033 Fix bug/typo in Trivium example implementation
See also the Trivium specification:
http://www.ecrypt.eu.org/stream/ciphers/trivium/trivium.pdf
2016-02-19 14:04:52 -08:00
Brian Huffman
1953223e9f Add test case for issue #312. 2016-02-19 11:53:33 -08:00
Brian Huffman
1322156d28 Remove trailing whitespace 2016-02-19 10:08:20 -08:00
Aaron Tomb
9809e176eb Add examples from Alexander Semenov
A new Cryptol user! Alexander Semenov from the Russian Academy of
Sciences is the developer of the Transalg tool, which can also translate
cryptographic algorithms (written in imperative form) into SAT problems.
He recently started experimenting with Cryptol, and wrote up
implementations of several stream ciphers, included in this commit.
2016-02-18 15:08:17 -08:00
Robert Dockins
8be10f62bf Update the symbolic simulator to use SBV's svSelect operation when possible.
This can lead to significant improvements, especially in cases where SBV recognizes
that you are selecting from a table of constant values.
2016-02-15 15:00:02 -08:00
Brian Huffman
6def46da69 Add (failing) test for issue #2. 2016-02-12 14:46:06 -08:00
Adam C. Foltzer
9912c17e6c add instance for Maps keyed by Names
This instance throws away a lot of the information in a `Name`, but
since we're not roundtripping that will probably be okay for now. A more
robust future interface should be able to roundtrip, however.
2016-02-09 16:55:20 -08:00
Iavor S. Diatchki
f7823544cf Add a test for ticket #308 2016-02-09 11:56:44 -08:00
Iavor S. Diatchki
a6f83302f0 Fix nested comments.
Fixes #308

Don't eat the forward slashes, as they may be starting a new nested
comment.
2016-02-09 11:52:01 -08:00
Brian Huffman
ab4f113084 Add regression test for issue #256. 2016-02-08 15:09:34 -08:00
Brian Huffman
b2021f8bc2 REPL completion uses names from NamingEnv
Tab can now also be used to complete qualified names.

Fixes #295.
2016-01-27 15:10:38 -08:00
Brian Huffman
9538c59d23 Fix shift/rotate by amounts greater than 2^63 in evaluator
Also added regression tests. This should fix issue #306.
2016-01-27 10:37:55 -08:00
Adam C. Foltzer
feb9d22a88 version bump & housekeeping
Bumped to version 2.4.0 and dropped the minor version from the GHC710
etc variables
2016-01-26 12:09:54 -08:00
Iavor S. Diatchki
b395265fe4 When lifting selectors, remember to look through type synonyms. 2016-01-22 11:56:49 -08:00
Thomas M. DuBuisson
9b8d153692 Import ::Extras in minilock modules. 2016-01-20 09:45:13 -08:00
Adam C. Foltzer
c776c6896f renamed/updated HACKING so it shows up in PRs 2016-01-19 18:19:35 -08:00
Adam C. Foltzer
bf294a60b8 integrate MiniLock example 2016-01-19 18:19:35 -08:00
Thomas M. DuBuisson
a4e42b8429 Example: miniLock in Cryptol 2016-01-19 18:19:35 -08:00
Adam C. Foltzer
58a605e8ff update examples and documentation 2016-01-19 18:19:35 -08:00
Adam C. Foltzer
fdfb94c120 fix warnings and update stackage snapshot 2016-01-19 18:19:35 -08:00
Adam C. Foltzer
4d3fc9a413 Update copyright dates and add missing headers 2016-01-19 18:19:35 -08:00
Adam C. Foltzer
da6916702b split new Prelude definitions into Extras module
The definitions added in #299 cause a regression in Prelude typechecking
performance. Until we sort out the performance, we'll keep these
definitions in the module `Cryptol::Extras`.
2016-01-19 18:19:24 -08:00
Adam C. Foltzer
31176993e0 add lower bound for optparse-applicative
With the newer `transformers-compat` release, cabal was resolving this
dependency all the way back to `0.0.1`
2016-01-19 18:18:03 -08:00
Adam C. Foltzer
1b1cdebdd3 set user path with Windows installer
Closes #198
2016-01-19 18:18:03 -08:00
Adam C. Foltzer
321a9e6f6e allow user to change install location in msi 2016-01-19 18:18:03 -08:00
Adam C. Foltzer
ee99873e43 fix FoxChickenCorn example
The new type signature for popCount is simpler, and more importantly
passes the typechecker. The old one really _ought_ to typecheck, though,
so a shrunken version of it is now in the test suite for #126
2016-01-19 18:18:03 -08:00
Adam C. Foltzer
4029b6c15c add a test for #126 2016-01-19 18:18:03 -08:00
Adam C. Foltzer
07da2018b7 switch to more portable seeding for random
The `random` primitive previously took a `[32]` seed, but this causes
inconsistency between 32-bit and 64-bit platforms when the seed is large
enough to wrap around in GHC's representation of an `Int`. This patch
switches to an API that seeds directly with four 64-bit words, and so
should behave the same way on our supported platforms.
2016-01-19 18:17:34 -08:00
Thomas M. DuBuisson
68f71ed3b3 Add some Haskell-like prelude functions.
Implication  (==>), not, and, or, all, any, map, foldl, sum, scanl, extend,
extendSigned, foldr, scanr, zip, zipWith, repeat, curry, uncurry, and elem.

Rationale:

I've had to implement these functions several times for different problems.
While my problems were admittedly toy, not cryptographic, the functions are
generally applicable and unlikely to clash with many, if any, preexisting
operations of different semantic meaning.
2016-01-19 18:15:49 -08:00
Thomas M. DuBuisson
46599a03b5 make SHA1 typecheck with Cryptol 2.3
There were some spurious constraints to help the previous typechecker figure
things out that now confuse the new one... ugh.
2016-01-12 17:22:22 -08:00
Thomas M. DuBuisson
fc04e415d7 Don't expose internal type in the Function API.
I've found that exposing helper types that are only of internal concern to the
function to be bad form.  These values should be in where clauses both to help
the type checker not get distracted and to keep the user-facing API as clean as
possible.
2016-01-12 16:52:40 -08:00
Adam C. Foltzer
ac85cec175 update test with counterexample that z3 produces
These sorts of tests are inherently unstable, but since Z3 seems to
agree across our platforms on this one, this should help make tests quieter.
2016-01-12 16:50:22 -08:00
Adam C. Foltzer
9e179d14bc finally add Even-Mansour example; closes #124 2016-01-12 16:49:47 -08:00
Adam C. Foltzer
1d2a135e44 spawn fewer solver instances during typechecking
This appears to increase performance of the test and benchmark suites
substantially, but there may be more opportunities to cut down on the
number of solver instances.
2016-01-11 15:50:14 -08:00
Adam C. Foltzer
5c80fc2e1c temporary upper bound for deepseq-generics
We're only using this package for 7.8 compatibility, which will end when
GHC 8.0 is released soon. For now, just limit to the older version to
avoid import errors.
2016-01-08 11:53:01 -08:00
Joseph Kiniry
357905934b Merge branch 'master' of github.com:GaloisInc/cryptol 2016-01-03 23:46:52 -08:00
Brian Huffman
e87d0469ab Fix incorrect docstrings for polynomial operations
pmult, pdiv, and pmod are not specific to GF(2^^8);
they work on polynomials of arbitrary size with
elements drawn from GF(2).
2015-12-31 09:46:13 -08:00
Adam C. Foltzer
a0bc860c78 Merge branch 'TomMD-writeFile' 2015-12-28 15:29:55 -08:00
Adam C. Foltzer
4439daf344 style tweaks 2015-12-28 15:10:33 -08:00
Thomas M. DuBuisson
752310cd0d Merge branch 'master' into writeFile 2015-12-25 21:39:01 -08:00
Adam C. Foltzer
3c524e2cb3 fix import collision for GHCs 7.8 2015-12-24 17:30:21 -08:00
Adam C. Foltzer
f712a17a0d expose the new check API through the server 2015-12-24 15:45:42 -08:00
Adam C. Foltzer
9c07fe1006 merge in the 2.2.6 changes, including z3 switch 2015-12-23 16:10:56 -08:00
Adam C. Foltzer
f1828ca3d4 update stackage files for multiple GHCs 2015-12-23 15:11:24 -08:00
Adam C. Foltzer
3ae0dda7ac switch to Z3 for typechecking and proving
Note: the hardcoding in this patch is only for the 2.2 hotfix branch; in
the 2.3 branch we will only have to change the default setting for the
typechecker.
2015-12-23 14:59:10 -08:00
Thomas M. DuBuisson
1c36537d78 Update for SBV 5.7
Conflicts:
	cryptol.cabal
	src/Cryptol/Symbolic.hs
	src/Cryptol/Symbolic/Prims.hs
2015-12-23 14:13:59 -08:00
Adam C. Foltzer
579ccc96a0 backport prover command interface
Conflicts:
	src/Cryptol/REPL/Command.hs
	src/Cryptol/Symbolic.hs
2015-12-23 14:03:59 -08:00
Adam C. Foltzer
917cc27145 version bump to 2.2.6 2015-12-23 11:33:36 -08:00