Commit Graph

21 Commits

Author SHA1 Message Date
Cas Cremers
fedd729ab2 Added support for inequality tests.
There is a new event:

  not match(t1,t2)

where t1,t2 are terms.

They are implemented by using a special claim that simply stores the
intended inequality. The pruning theorems (prune_theorems.c) ensure that
these terms never become equal. If there are equal, the constraint is
violated. As long as they are not equal, there exists a solution using
groung terms such that their instantiation is not equal.

Currently not very efficient implemented and the graph out output is
also ugly for now.

Conflicts:
	gui/Scyther/Trace.py
	src/compiler.c
	src/scanner.l
2012-11-21 13:40:15 +01:00
Cas Cremers
d4faeacd1e Implemented equality/pattern matching support.
Introduced a new event:

  match(pattern,groundterm)

This event can only be executed if pattern can be matched to groundterm.
Variable substitutions are persistent with respect to later events in
the same role.

Currently implemented as syntactic sugar, essentially unfolded in role R to:

  fresh x;
  send ( R,R, { groundterm }x );
  recv ( R,R, { pattern }x );

This work is not complete yet in the send that the output still contains
the unfolding. Ideally, the graph rendered detects this syntactic sugar
and renders a simplified event. This should be possible on the basis of
the label name prefix.

Conflicts:
	src/compiler.c
	src/parser.y
	src/scanner.l
	src/tac.h
2012-11-21 13:34:56 +01:00
Cas Cremers
1cbe9826ac Updated dates. 2012-04-24 13:56:51 +02:00
Cas Cremers
6d9d89eca2 Introduced 'fresh' for fresh value generation and added deprecation warning for 'const' usage. 2010-11-10 10:37:57 +01:00
Cas Cremers
aaf27779a3 Allow for use of RECV instead of READ.
Read will become deprecated later on.
2008-08-21 16:58:53 +02:00
Cas Cremers
7d584cca1e Added GPL 2 License to the C sources.
A first step towards releasing Scyther completely to the public.
2007-06-11 14:01:04 +02:00
ccremers
460c087cf2 - Some work towards moving stderror output for non-linux things out of
the way.
2006-08-02 10:29:40 +00:00
ccremers
18d4b94b1e - Reverted to manual flex push/pup structure for include files. 2006-08-01 09:09:44 +00:00
ccremers
6dff931dbc - Term identifiers can now contain primes (SM)
- If labels start with a bang (!), they are ignored in synch/agree
  claims.
2006-04-25 13:58:14 +00:00
ccremers
974e5f7315 - Reset encryption level issue. 2006-04-13 12:43:13 +00:00
ccremers
08f705234b - Added `include "dinges";' command, that is aware of Scytherdirs. 2006-04-12 12:42:04 +00:00
ccremers
5487d3ae90 - From this version onwards, Scyther no longer supports the modelchecker
method. A big cleanup has been started, but is not finished yet, so
  minor artefacts might still remain. These are to be cleaned up later.
2006-03-08 13:58:46 +00:00
ccremers
baf1856943 - Added some tokens for future usage: 'function', 'hashfunction',
'knows', 'trusted'.
2006-01-09 09:38:17 +00:00
ccremers
e21627442a - Added 'singular' directive for roles. Syntax:
protocol ns3 (I,R)
  {
    singular role I:
    {
    }
  }
2006-01-02 16:05:53 +00:00
ccremers
5276630007 - FIX: DOS newlines are now also accepted. 2005-11-28 08:27:05 +00:00
gijs
998e4852ba - Allow ^ and - in identifies which will be used in protocol names
in future naming conventions
2005-08-15 11:27:46 +00:00
gijs
c8d2222c58 - Allow identifiers to start with @ so that internal protocols
such as key compromise and swapkey can be prefixed with @ to indicate
  that they should be ignored by the classification tool.
2005-08-11 12:24:36 +00:00
ccremers
ff178f46a5 - The yywrap solution was wrong; it should return 1. Fixed now. 2004-07-17 19:52:07 +00:00
ccremers
570933612f - Fixed the yywrap dependency warning in scanner.l 2004-07-17 19:35:54 +00:00
ccremers
abd8ad3998 - Still two flags missing for complete scanner/parser support.
BUILT_SOURCES was necessary to have the dependencies right.
2004-05-21 19:31:42 +00:00
ccremers
6c69baeeb9 - Fixed the lex/yacc problems. 2004-05-21 19:18:47 +00:00