4a1898db92
There is now a script src/regression-tests/regression-test.py that should in the future be the default for running regression tests instead of the ad-hoc approach we are currently using. The goal is to ultimately have more reliable and consistent regression testing. The script takes as input "tests.txt" and tries to perform tests from that. This is effectively a collection of inputs to the scyther-linux binary. The results are writting to the 'results' directory, as test-X.out and test-X.err, where those correspond to stdout and stderr, respectively. Additionally, a measurement of wall-clock time in seconds is written to test-X.time. For now, we are using the timer to ensure all tests terminate. It would be nicer to use a less environment-dependent way of enforcing termination. |
||
---|---|---|
design | ||
dist | ||
gui | ||
scripts | ||
src | ||
testing | ||
commit-template | ||
Makefile | ||
protocols | ||
README.md |
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.