Commit Graph

1707 Commits

Author SHA1 Message Date
Cas Cremers
bfbd57aede Merge branch 'master' of /home/cas/Dropbox/repos/scyther
Conflicts:
	src/arachne.c
2014-12-09 22:47:31 +00:00
Cas Cremers
ba513ea45d Fixing small wxPython error. 2014-07-14 16:56:48 +01:00
Cas Cremers
6374683d17 Visualisation improvement: role variables get priority in assigning concrete values.
Previously, if a local (non-role) variable would have (implicit) agent type,
it would be assigned a concrete term before the roles. This would lead to
non-optimal choices, since we care more about the role instantiations than about other variables.

However, when making traces concrete, we use the run's 'locals' list. Because of
the way this is constructed (in reverse), non-role variables precede the role variables.
We therefore choose to traverse the list in reverse.
2014-07-06 21:31:20 +01:00
Cas Cremers
277bb0a256 BUGFIX: Use name as reference point, not after deVar.
This is not a real bug but only in the sense that the heuristic didn't always work as intended for choosing names.
2014-06-30 23:22:11 +01:00
Cas Cremers
b0e5128e23 Attack output improvement: better choice of agent names.
When an attack pattern is displayed, Scyther instantiates open variables with concrete names.
This is often more intuitive for humans.

In the case of instantiating role names, we often ended up assigning Alice to the B role and
Bob to the A role. This patch provides a more clever heuristic to find agent names
that start with the same letter as the role (variable) name. In case this fails, we
still try to map Alice to roles starting with 'I' and Bob to 'R', and otherwise we just pick something.

Also added "Simon" and "Pete" to cover some common role names.

Conflicts:
	src/arachne.c
2014-06-30 17:06:23 +01:00
Cas Cremers
e966bc88dd BUGFIX: --one-role-per-agent switch had a bug that made it cut too many patterns. 2014-06-20 17:30:13 +01:00
Cas Cremers
4f252d55a7 Bugfix in case commandline text is empty. 2014-06-10 14:55:13 +01:00
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