Scyther with my modifications
Go to file
Cas Cremers 5c2eded8f9 Weakagree and Alive claims now also allow for a role parameter + BUGFIX.
Previously, weak agreement and aliveness claims would enforce a requirement for all agents in the range
of the rho of the claim run.

For some three-party protocols this was stronger than needed. We now allow an
optional role name parameter for these claims; if such a parameter is used, the claim
is only evaluated for the agents performing that role.

En passant fixed a potential bug: aliveness and weak agreement require a run for each
agent, but previously we didn't check if these were helper protocols. Clearly they
should not be.
2013-05-24 11:27:14 +02:00
design Removed huge file; unclear why this was in here anyway. 2010-05-11 10:58:38 +02:00
dist Fixed release scripts to work with new git conventions. 2008-09-10 11:20:50 +02:00
gui BUGFIX: Invoking Scyther scripts from non-standard directories or using symlinks should work consistently now. 2013-05-01 14:16:12 +02:00
scripts Added loop script which I had always wanted before. 2008-08-21 21:55:55 +02:00
src Weakagree and Alive claims now also allow for a role parameter + BUGFIX. 2013-05-24 11:27:14 +02:00
testing Cleanup and restructuring of testing directory setup. 2012-11-15 16:47:08 +01:00
commit-template Added template for commits. 2011-04-06 10:50:43 +02:00
Makefile Minor synchronisation updates. 2012-12-17 10:14:31 +01:00
protocols Added softlink to protocols directory. 2012-11-15 13:41:02 +01:00
README.md Fixing path. 2012-12-17 11:33:48 +01:00

The Scyther tool repository

This README describes the organization of the repository of the Scyther tool for security protocol analysis. Its intended audience are interested users and future developers of the Scyther tool, as well as protocol modelers. For installation and usage instructions of the Scyther tool see: http://people.inf.ethz.ch/cremersc/scyther/index.html.

Installing from source

We use Linux during the development of Scyther, but development on Windows and MAC OS X should be equally feasible. Note that the below instructions are written from a Linux/Ubuntu perspective, and probably need modifications for other platforms.

Scyther is written partly in Python (for the GUI, using wxPython) and partly in C (for the backend).

In order to run the tool from a repository checkout, it is required to compile the C sources into a working binary for the backend. The simplest way to achieve this is to run the build.sh script in the ./src directory. This script compiles a binary version of the tool on the native platform. Thus, in the Linux case, it should produce ./src/scyther-linux. This file is automatically copied to the related directory under ./gui, and if successful you can attempt to run ./gui/scyther-gui.py to use the graphical user interface.

The build process depends on the following (Debian/Ubuntu) packages:

  • cmake
  • build-essential
  • flex
  • bison

If you are using Ubuntu, installing these may be as simple as running

sudo apt-get install cmake build-essential flex bison

In case you also want to be able to compile Windows binaries from Linux, you also need:

  • mingw32

Note that welcome all contributions, e.g., further protocol models. Just send us a pull request.

Manual

We are currently rewriting the manual. The current (incomplete) snapshot of the manual can be found here:

  • ./gui/scyther-manual.pdf

Protocol Models

The protocol models have the extension .spdl and can be found in the following directories:

  • ./gui/Protocols, containing the officially released models, and
  • ./testing, containing models currently under development.

License

Currently these Scyther sources are licensed under the GPL 2, as indicated in the source code. Contact Cas Cremers if you have any questions.