Skip to content

lordqwerty/easycrypt

Repository files navigation

Build Status

Installing requirements

EasyCrypt uses the following third-party tools/libraries:

On POSIX systems (GNU/Linux, *BSD, OS-X), we recommend people to install EasyCrypt and all its dependencies via opam.

Installing requirements using OPAM (POSIX systems)

Starting with opam 1.2.0, you can install all the needed dependencies via the opam OCaml packages manager.

  1. Optionally, switch to a dedicated compiler for EasyCrypt:

    $> opam switch -A $OVERSION easycrypt

    where $OVERSION is a valid OCaml version (e.g. 4.02.1)

  2. Add the EasyCrypt repository:

    $> opam repository add easycrypt git://github.com/EasyCrypt/opam.git $> opam update

  3. Optionally, select the EasyCrypt (git) branch you want to use:

    $> opam pin -n add easycrypt https://github.com/EasyCrypt/easycrypt.git#branch

    where branch is the branch name you want to use (e.g. aprhl).

    In that case, we advise you to create a dedicated opam switch (see first step above).

  4. Optionally, use opam to install the system dependencies:

    $> opam install depext $> opam depext easycrypt

  5. Add the EasyCrypt meta-packages:

    $> opam install --deps-only easycrypt $> opam install ec-provers

Opam can be easily installed from source or via your packages manager:

  • On Ubuntu and derivatives:

    $> add-apt-repository ppa:avsm/ppa
    $> apt-get update
    $> apt-get install ocaml ocaml-native-compilers camlp4-extra opam
    
  • On MacOSX using brew:

    $> brew install ocaml opam
    

See [https://opam.ocaml.org/doc/Install.html] for how to install opam.

See [https://opam.ocaml.org/doc/Usage.html] for how to initialize opam

Configuring Why3

Before running EasyCrypt and after the installation/removal/update of an SMT prover, you need to (re)configure Why3.

   $> why3 config --detect

By EasyCrypt is using the default Why3 location, i.e. ~/.why3.conf. If you have several versions of Why3 installed, it may be impossible to share the same configuration file among them. EasyCrypt via the option -why3, allows you to load a Why3 configuration file from a custom location. For instance:

   $> why3 config --detect -C $WHY3CONF.conf
   $> ./ec.native -why3 $WHY3CONF.conf

where $WHY3CONF must be replaced by some custom location.

Installing/Compiling EasyCrypt

If installing from source, running

   $> make
   $> make install

builds and install EasyCrypt (under the binary named easycrypt), assuming that all dependencies have been successfully installed. If you choose not to install EasyCrypt system wide, you can use the binary ec.native that is located at the root of the source tree.

It is possible to change the installation prefix by setting the environment variable PREFIX:

   $> make PREFIX=/my/prefix install

EasyCrypt comes also with an opam package. Running

   $> opam install easycrypt

installs EasyCrypt and its dependencies via opam. In that case, the EasyCrypt binary is named easycrypt.

Proof General Front-End

Installing using opam

If you installed the EasyCrypt dependencies using opam, you can install ProofGeneral via opam too. Running

  $> opam install proofgeneral

installs ProofGeneral along with its EasyCrypt mode. You still have to tweak your emacs configuration file (~/.emacs) to load ProofGeneral by adding the following line to it

    (load-file "$proof-general-home/generic/proof-site.el")

where $proof-general-home should be replaced by

    $prefix/share/proofgeneral

with $prefix being set to the output of

    $> opam config var prefix

Installing from sources

EasyCrypt mode has been integrated upstream. Please, go to https://github.com/ProofGeneral/PG and follow the instructions.

About

EasyCrypt: Computer-Aided Cryptographic Proofs

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • OCaml 73.2%
  • eC 24.2%
  • Shell 0.9%
  • Python 0.8%
  • C 0.5%
  • Makefile 0.3%
  • Other 0.1%