Commit Graph

1650 Commits

Author SHA1 Message Date
Cas Cremers
f1f2f28f61 Rewriting option parser wrapper to ensure memory is not lost.
The option parser wrapper allocated memory in an incorrect way, which
could lead to problems especially with --xml-output, since it would
access the memory at a later point in the execution. This could then
propagate to GUI problems, since the GUI uses the --xml-output switch.
Rewrote the code to be more readable and less incorrect.
2014-06-10 14:37:40 +01:00
Cas Cremers
9cc323004c Cleanup: Refactoring XML output code to facilitate introduction of protocol xml output. 2014-04-15 22:12:43 +01:00
Cas Cremers
dc4432a18f Cleanup: Removing unused variables. 2014-04-15 22:12:12 +01:00
Cas Cremers
7e43c4d06f Cleanup: Update notes for experimental directory to point to the correct protocols directory. 2014-03-19 09:35:26 +00:00
Cas Cremers
4fa48239a5 Cleanup: added missing header files. 2014-03-18 13:53:51 +00:00
Cas Cremers
7dcbec07a0 Cleanup: removing unused variables. 2014-03-18 13:53:33 +00:00
Cas Cremers
7f64250e97 Updated version of the manual. 2014-02-18 12:32:24 +00:00
Cas Cremers
d16263dac1 Propagating compilation requirements to readme. 2014-02-18 12:21:04 +00:00
Cas Cremers
3df93c42e4 Bugfix: compilation was not working on recent 64-bit Ubuntu versions.
This patch addresses two 64-bit platform compilation issues:
- Force 32-bit mode for gcc using '-m32'
- Recent library modifications broke the 32-bit compilation on 64-bit machines: updated
  'compile.txt' to include the need for the 'gcc-multilib' package.
2014-02-18 10:53:24 +00:00
Cas Cremers
b6517dd41e BUGFIX: Fixing font selection commands for wxPython.
The previous way of selecting fonts was an obsolete hack. Some recent versions of wxPython
ran into problems. Now updated to reflect the correct wxPython font selection conventions.

Bug report and fix suggestion by S. Dismore.
2014-01-31 11:31:41 +00:00
Cas Cremers
f9a34f4de5 BUGFIX: Updating hashfunction usage in protocol files to new conventions.
After the new function implementation, the 'Function' type is no longer one-way by default.
However, many protocol description files relied on this implicit assumption.
The solution is to use 'hashfunction' declarations instead to model one-wayness.

Original bug report by Binh Thanh Nguyen.
2014-01-08 15:13:16 +00:00
Cas Cremers
1a9a8714a6 Merge branch 'master' of /home/cas/Dropbox/repos/scyther 2013-12-23 13:12:03 +00:00
Cas Cremers
a20f3760e7 Updating URLs. 2013-12-23 13:11:48 +00:00
Cas Cremers
52ec943b76 Updating markdown with relative links. 2013-12-13 23:02:27 +00:00
Cas Cremers
18b35a3bac Added further information. 2013-12-13 22:58:26 +00:00
Cas Cremers
5a7ed5be4c Further fixes to markdown of installation file. 2013-12-13 22:55:09 +00:00
Cas Cremers
04f4ee6b53 Further minor fixes. 2013-12-13 22:49:41 +00:00
Cas Cremers
d79135fd06 Updated installation markdown file. 2013-12-13 22:47:47 +00:00
Cas Cremers
28c7c12db5 More experiments with Markdown. 2013-12-13 22:33:10 +00:00
Cas Cremers
f4d9ea0042 Experiment with relative links in markdown, enabling better use of README. 2013-12-13 22:26:16 +00:00
Cas Cremers
0ccbe7ce06 Updated changelog. 2013-12-12 10:01:22 +00:00
Cas Cremers
6fc0335f05 Updated manual. 2013-12-12 09:43:55 +00:00
Cas Cremers
6f0a72750e Removing obsolete manual copy commands from release scripts, since we copy the manual in now periodically by hand. 2013-12-12 09:02:30 +00:00
Cas Cremers
1a9d088aa8 Updated installation and compilation notes. 2013-12-11 16:48:20 +00:00
Cas Cremers
a7230702cb Cleanup of obsolete module import. 2013-12-09 14:25:11 +00:00
Cas Cremers
c9b1d08f4f Hack for Windows users to compensate for Graphviz "feature".
Recent versions of Graphviz no longer set the PATH variable on Windows.
Hence Scyther can fail to find dot.exe even though Graphviz was appropriately
installed.

This patch is a hack to try and locate dot.exe in the more common locations.
We currently have a hardcoded search through:

  C:\Program Files\Graphviz*
  C:\Program Files (x86)\Graphviz*

This is clearly fragile. Obviously, nobody should be solving Graphviz' problem
in such an ugly way. Change drives or languages and it stops working.

Until Graphviz provides at least an alternative environment variable (GVPATH?)
this hack will help the bulk of our users to get things up and running smoothly.
2013-12-09 14:24:57 +00:00
Cas Cremers
7e3f0ed73b BUGFIX: Reverted use of shlex.
Shlex is only intended to work for Unix-like shells, and using it on
Windows causes problems. We now resort to simply always using the shell
on Unix-like platforms (as our command input is always a string, and not
an array). On Windows, the string input is always okay, even when not
using the shell.

This is a follow-up to a bug report by M. Kammerer on failing Windows
installs.
2013-12-09 09:07:47 +00:00
Cas Cremers
1a9b494f85 Updating the protocol generator for the ffgg family.
- Removed obsolete declarations, updating syntax conventions.
- Added a more useful origin comment.
2013-11-18 16:59:11 +00:00
Cas Cremers
1b04bf9274 Updated changelog. 2013-10-13 10:34:49 +01:00
Cas Cremers
8f9dc0cb83 Updated manual. 2013-10-12 20:12:01 +01:00
Cas Cremers
d06247fcfe Updating time stamps for next release. 2013-10-05 23:56:12 +01:00
Cas Cremers
4e78a1d3fa Removing obsolete file. 2013-10-05 23:49:13 +01:00
Cas Cremers
2ee202b1ae Updated Denning-Sacco-Lowe note. 2013-08-23 15:15:19 +02:00
Cas Cremers
fe364fbe9d GUI: Canceling verification now also kills back-end thread.
Previously, pressing 'cancel' in the verification window would leave a dangling scyther backend process.
Now the process gets correctly killed.

The following changes enable this:
- External processes are no longer invoked through the shell (otherwise they are subprocesses of the shell and cannot be reliably killed cross-platform).
- The 'safeCommand' procedure now has a hook for passing opened Popen objects.
- The GUI stores and kills the Popen objects on cancel or window close.

To do: an alternative interface for this in 'safeCommand' could expose a 'killMe' method through a callback; this might be cleaner in the long term.
2013-06-30 23:14:28 +02:00
Cas Cremers
6473aba398 Misc: improving output of generate-attack-graphs.py script. 2013-06-20 10:32:16 +02:00
Cas Cremers
c11a4268b0 Misc: note in attack graphs script on how to produce time/memory consumption output as well (on Linux) 2013-06-20 09:54:56 +02:00
Cas Cremers
2004a0f4aa Misc: Added Python script to dump attack outputs for large sets of files.
For now, some parameters are hardcoded.

In the long term this functionality should be incorporated into the Scyther library directly, as
a method of Claim objects.
2013-06-19 23:03:46 +02:00
Cas Cremers
6134b46557 Backend DOT graph generation: Removing redundant ';' which seems to confuse more recent versions of Graphviz (>2.26) 2013-06-19 23:03:36 +02:00
Cas Cremers
45d5cb0a3a Cleanup: Cleanup of some spacing, conform coding conventions.
This is simply the result from running reindent.sh again.
2013-06-19 23:03:26 +02:00
Cas Cremers
c6280d745e Backend DOT graph generation: Removing debugging reporting of 'cost' in attack graphs.
This was confusing to casual users.
2013-06-19 23:02:58 +02:00
Cas Cremers
4263c81e52 Removing obsolete design files. 2013-06-10 16:21:09 +02:00
Cas Cremers
486633fecd Updating INSTALL file. 2013-05-24 12:32:04 +02:00
Cas Cremers
fe25a53232 Regression-fix: Reintroduced option for alternative PKI.
Changes:

1. Reverted restricted use of 'hashfunction': 'function' can now be used as an alternative (but they are identical).
2. Functions can be specified to be secret, as we had before.

Together with the newer 'inversekeyfunctions' declaration, this allows for the clean definition of alternative key infrastructures.

Example usage:

  secret function sk2;
  function pk2;
  inversekeyfunctions (sk2,pk2);

Conflicts:
	src/compiler.c
2013-05-24 11:27:14 +02:00
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
Cas Cremers
9e13d07b6e BUGFIX: Invoking Scyther scripts from non-standard directories or using symlinks should work consistently now.
Before, we were using both __file__ as well as sys.argv[0] to determine the base directory
for Scyther, and we were not taking symlinks into account.

By using the inspect module, we can consistently pick the current frame and derive
the file from that, then use realpath to strip symlinks.
2013-05-01 14:16:12 +02:00
Cas Cremers
7658644295 Rati Gelashvili reported a rare but annoying bug in the hash function handling.
The fix requires a significant reworking of the function handling. This
is a first attempt.

Conflicts:
	src/knowledge.c
	src/knowledge.h

Regression test suggests that the Hashfunction fix works.
2013-04-26 14:47:27 +02:00
Cas Cremers
4a1898db92 src/regression-tests: Consistent regression testing.
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.
2013-04-26 14:29:22 +02:00
Cas Cremers
b92c097b38 BUGFIX: Windows version had a compilation problem.
The use of 'strndup' in scanner.l caused problems for non-gnu modes of gcc, which
was being invoked for the mingw32 compilation. Replaced now by the more portable
strncpy + malloc version.
2012-12-17 20:51:42 +01:00
Cas Cremers
49097852d9 Fixing path. 2012-12-17 11:33:48 +01:00
Cas Cremers
6dc3b21859 Added current manual snapshot. 2012-12-17 11:32:58 +01:00