mirror of
https://github.com/GaloisInc/cryptol.git
synced 2024-11-28 09:23:04 +03:00
polishing
This commit is contained in:
parent
e937d172d3
commit
4f57c0a93f
46
README.md
46
README.md
@ -105,6 +105,32 @@ binary at `.cabal-sandbox/bin/cryptol` in your source directory. You
|
||||
can either use that binary directly, or use the results of `tarball`
|
||||
or `dist` to install Cryptol in a location of your choice.
|
||||
|
||||
## Verifying your Installation
|
||||
|
||||
Run Cryptol, and at the prompt type:
|
||||
|
||||
_ _
|
||||
___ _ __ _ _ _ __ | |_ ___ | |
|
||||
/ __| '__| | | | '_ \| __/ _ \| |
|
||||
| (__| | | |_| | |_) | || (_) | |
|
||||
\___|_| \__, | .__/ \__\___/|_|
|
||||
|___/|_| version 2.0.424
|
||||
|
||||
Loading module Cryptol
|
||||
Cryptol> :prove True
|
||||
|
||||
If Cryptol responds
|
||||
|
||||
Q.E.D.
|
||||
|
||||
then your installation is correct. If it prints something like
|
||||
|
||||
*** An error occurred.
|
||||
*** Unable to locate executable for cvc4
|
||||
*** Executable specified: "cvc4"
|
||||
|
||||
then make sure you've installed CVC4, and that the binary is on your `PATH`.
|
||||
|
||||
# Contributing
|
||||
|
||||
We believe that anyone who uses Cryptol is making an important
|
||||
@ -113,10 +139,18 @@ to get involved.
|
||||
|
||||
## Users
|
||||
|
||||
If you run into a bug in Cryptol, if something doesn't make sense in
|
||||
the documentation, if you think something could be better, or if you
|
||||
just have a cool use of Cryptol that you'd like to share with us, use
|
||||
the issues page on [GitHub](https://github.com/GaloisInc/cryptol), or
|
||||
If you write Cryptol programs that you think would benefit the community, fork the GitHub repository, and
|
||||
add them to the `examples/contrib` directory and submit
|
||||
a pull request.
|
||||
|
||||
We host a Cryptol mailing list, which
|
||||
you can [join here](http://community.galois.com/mailman/listinfo/cryptol-users).
|
||||
|
||||
If you run into a bug in Cryptol, if something
|
||||
doesn't make sense in the documentation, if you
|
||||
think something could be better, or if you
|
||||
just have a cool use of Cryptol that you'd like to share with us, use the issues page on
|
||||
[GitHub](https://github.com/GaloisInc/cryptol), or
|
||||
send email to <cryptol@galois.com>.
|
||||
|
||||
## Developers
|
||||
@ -149,9 +183,7 @@ incorprate your changes.
|
||||
|
||||
The `docs` directory of the installation package contains an
|
||||
introductory book, the `examples` directory contains a number of
|
||||
algorithms specified in Cryptol. We host a Cryptol mailing list, which
|
||||
you can join (TODO). If you find bugs, or would like to submit a
|
||||
patch, please use GitHub to report an issue or send us a pull request.
|
||||
algorithms specified in Cryptol.
|
||||
|
||||
If you are familiar with version 1 of Cryptol, you should read the
|
||||
`Version2Changes` document in the `docs` directory.
|
||||
|
@ -38,13 +38,12 @@ pad : {msgLen,contentLen,chunks,padding}
|
||||
pad msg = split (msg # [True] # (zero:[padding]) # (`msgLen:[64]))
|
||||
|
||||
f : ([8], [32], [32], [32]) -> [32]
|
||||
f (t, B, C, D) =
|
||||
if (0 <= t) && (t <= 19) then (B && C) || (~B && D)
|
||||
else if (20 <= t) && (t <= 39) then B ^ C ^ D
|
||||
else if (40 <= t) && (t <= 59) then (B && C) || (B && D) || (C && D)
|
||||
else if (60 <= t) && (t <= 80) then B ^ C ^ D
|
||||
else error "f: t out of range"
|
||||
|
||||
f (t, x, y, z) =
|
||||
if (0 <= t) && (t <= 19) then (x && y) || (~x && z)
|
||||
| (20 <= t) && (t <= 39) then x ^ y ^ z
|
||||
| (40 <= t) && (t <= 59) then (x && y) || (x && z) || (y && z)
|
||||
| (60 <= t) && (t <= 80) then x ^ y ^ z
|
||||
else error "f: t out of range"
|
||||
|
||||
Ks : [80][32]
|
||||
Ks = [ 0x5a827999 | t <- [0..19] ]
|
||||
|
Loading…
Reference in New Issue
Block a user