tamarin-prover

Main source code repository of the Tamarin prover for security protocol verification.

https://github.com/tamarin-prover/tamarin-prover

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    29 of 93 committers (31.2%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.5%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

Main source code repository of the Tamarin prover for security protocol verification.

Basic Info
  • Host: GitHub
  • Owner: tamarin-prover
  • License: gpl-3.0
  • Language: Haskell
  • Default Branch: develop
  • Homepage: https://tamarin-prover.com/
  • Size: 49.9 MB
Statistics
  • Stars: 469
  • Watchers: 23
  • Forks: 144
  • Open Issues: 134
  • Releases: 10
Created almost 14 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Citation Authors

README.md

The Tamarin prover repository

master branch build-status

This README describes the organization of the repository of the Tamarin prover for security protocol verification. Its intended audience are interested users and future developers of the Tamarin prover. For installation and usage instructions of the Tamarin prover see chapter 2 of the manual: https://tamarin-prover.github.io/manual/master/book/002_installation.html

Developing and contributing

See contributing instructions for instructions on how to develop, test and release changes to the Tamarin prover source code.

Version Numbering Policy

We use version numbers with four components.

  • The first component is the major version number. It indicates complete rewrites of the codebase.
  • The second component is the minor version number. We use odd minor version numbers to denote development releases intended for early adopters. We use even minor version numbers to denote public releases, which are also published.
  • The third component indicates bugfix releases.
  • The fourth component indicates documentation and meta-data changes.

We ensure that the external interface of a version of the Tamarin prover is backwards compatible with the external interface of all versions that agree on the major and minor version number.

We announce all releases of the Tamarin prover on: http://tamarin-prover.github.io

Manual

The manual is available as PDF or HTML at https://tamarin-prover.github.io/manual/index.html

Experimental improved graph output

You can use our experimental improved graph output which may be helpful for very large graphs that can be created for complicated protocols. To enable this feature read the instructions about improved graphs.

Spthy code editors

The project contains support for spthy syntax highlighting and support in the etc directory. This includes support for Sublime Text, VIM and Notepad++.

External tools

External tools may use the Tree-sitter grammar in the tree-sitter/ directory.

Example Protocol Models

All example protocol models are found in the directory

./examples/

All models that we consider stable are part of every installation of the Tamarin prover. See tamarin-prover.cabal for the list of installed protocols. We use the following sub-directories to organize the models.

~~~~ accountability/ case studies using the accountability implementation presented in the "Verifying Accountability for Unbounded Sets of Participants" paper csf12/ the AKE case studies from our CSF'12 paper. classic/ classic security protocols like the ones from SPORE loops/ experiments for testing loop-invariants and protocols with non-monotonic state related_work/ examples from related work on protocols with loops or non-monotonic state experiments/ all other experiments ake/ more AKE examples including ID-based and tripartite group KE protocols based on bilinear pairing features/ (small) models that demonstrate a given feature ccs15/ the observational equivalence case studies from our CCS'15 paper csf-18/ the XOR case studies from the CSF'18 paper ~~~~

Feel free to add more sub-directories and describe them here.

In general, we try use descriptive names for files containing the models. We also document all our findings as comments in the protocol model. Moreover, we use the following header in all files to make their context more explicit.

~~~~ /* Protocol: Example Modeler: Simon Meier, Benedikt Schmidt Date: January 2012

Status: working

Description of protocol.

*/ ~~~~

Owner

  • Name: Tamarin prover
  • Login: tamarin-prover
  • Kind: organization
  • Location: Zurich, Switzerland; Saarbruecken, Germany; Nancy, France

GitHub Events

Total
  • Create event: 2
  • Release event: 1
  • Issues event: 42
  • Watch event: 49
  • Issue comment event: 138
  • Push event: 45
  • Pull request review comment event: 12
  • Pull request review event: 9
  • Pull request event: 58
  • Fork event: 10
Last Year
  • Create event: 2
  • Release event: 1
  • Issues event: 42
  • Watch event: 49
  • Issue comment event: 138
  • Push event: 45
  • Pull request review comment event: 12
  • Pull request review event: 9
  • Pull request event: 58
  • Fork event: 10

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 2,811
  • Total Committers: 93
  • Avg Commits per committer: 30.226
  • Development Distribution Score (DDS): 0.866
Top Committers
Name Email Commits
Ralf Sasse r****e@g****m 378
Simon Meier i****e@g****m 360
Robert Künnemann r****n@c****e 298
Robert Künnemann r****n@c****d 283
Charlie Jacomme j****e@c****g 246
Jannik Dreier j****r@l****r 193
Cas Cremers c****s@g****m 159
Benedikt Schmidt b****i@g****m 140
Jannik Dreier j****r@i****h 105
Charles Dumenil c****l@i****r 68
Cas Cremers c****s@i****h 37
Lucca Hirschi l****i@i****h 35
Sasa Radomirovic s****c@d****k 31
Ilkan Esiyok i****k@e****e 31
Kevin Morio k****n@m****e 25
HongThai s****u@s****e 23
Kevin Milner k****r@c****k 20
Yavor Ivanov s****n@s****e 19
Hizbullah Abdul Aziz a****g@g****m 18
Niklas Medinger s****i@s****e 17
Kevin Morio k****o@c****d 17
alexander.dax a****x@c****d 15
Kevin Milner k****r@k****a 15
Kevin Morio k****o@c****e 15
Benedikt Schmidt b****i@b****h 14
Felix Yan f****s@a****g 12
Simon Meier s****r@e****m 12
Robert K k****n@l****r 11
Jorden Whitefield j****d@s****k 10
Yavor Ivanov s****n@s****e 10
and 63 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 50
  • Total pull requests: 87
  • Average time to close issues: 8 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 28
  • Total pull request authors: 21
  • Average comments per issue: 0.74
  • Average comments per pull request: 1.92
  • Merged pull requests: 65
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 27
  • Pull requests: 43
  • Average time to close issues: 3 months
  • Average time to close pull requests: 7 days
  • Issue authors: 13
  • Pull request authors: 13
  • Average comments per issue: 0.48
  • Average comments per pull request: 1.09
  • Merged pull requests: 31
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • rkunnema (6)
  • jdreier (5)
  • dmzimmerman (4)
  • huahuaLover (3)
  • niklasmedinger (3)
  • Vekhir (2)
  • thgoebel (2)
  • BTom-GH (2)
  • Danyc0 (2)
  • felixlinker (2)
  • kevinmorio (2)
  • o11k (1)
  • JakeGinesin (1)
  • cascremers (1)
  • rsasse (1)
Pull Request Authors
  • felixlinker (13)
  • rkunnema (10)
  • addap (8)
  • cascremers (8)
  • arcz (7)
  • kevinmorio (7)
  • jdreier (6)
  • BTom-GH (5)
  • niklasmedinger (5)
  • Mathias-AURAND (4)
  • yavivanov (3)
  • nikstuckenbrock (2)
  • gilcu3 (1)
  • thomwiggers (1)
  • racoucho1u (1)
Top Labels
Issue Labels
SAPIC (3) export (3) documentation (2) feature-request (2) help-wanted (2) long-term (1) regression-tests (1) prover (1) critical (1)
Pull Request Labels
gui (3) documentation (2) SAPIC (2)

Dependencies

.github/workflows/tamarin-integration-test.yaml actions
  • actions/cache v2 composite
  • actions/checkout v3 composite
etc/docker/Dockerfile docker
  • debian bullseye-slim build
examples/usenix23-ens/docker/Dockerfile docker
  • debian bullseye-slim build
  • fpco/stack-build-small lts-19.19 build
lib/accountability/tamarin-prover-accountability.cabal hackage
  • aeson *
  • aeson-pretty *
  • base *
  • binary *
  • bytestring *
  • containers *
  • deepseq *
  • dlist *
  • exceptions *
  • fclabels *
  • mtl *
  • parallel *
  • parsec *
  • process *
  • raw-strings-qq *
  • safe *
  • tamarin-prover-term *
  • tamarin-prover-theory *
  • tamarin-prover-utils *
  • text *
  • transformers *
  • uniplate *
lib/export/tamarin-prover-export.cabal hackage
  • HStringTemplate *
  • aeson *
  • aeson-pretty *
  • base *
  • binary *
  • bytestring *
  • containers *
  • deepseq *
  • dlist *
  • exceptions *
  • fclabels *
  • mtl *
  • parallel *
  • parsec *
  • process *
  • raw-strings-qq *
  • safe *
  • tamarin-prover-sapic *
  • tamarin-prover-term *
  • tamarin-prover-theory *
  • tamarin-prover-utils *
  • text *
  • transformers *
  • uniplate *
lib/sapic/tamarin-prover-sapic.cabal hackage
  • aeson *
  • aeson-pretty *
  • base *
  • binary *
  • bytestring *
  • containers *
  • deepseq *
  • dlist *
  • exceptions *
  • fclabels *
  • mtl *
  • parallel *
  • parsec *
  • process *
  • raw-strings-qq *
  • safe *
  • tamarin-prover-term *
  • tamarin-prover-theory *
  • tamarin-prover-utils *
  • text *
  • transformers *
  • uniplate *
lib/theory/tamarin-prover-theory.cabal hackage
  • aeson *
  • aeson-pretty *
  • base *
  • binary *
  • bytestring *
  • containers *
  • deepseq *
  • dlist *
  • exceptions *
  • fclabels *
  • filepath *
  • mtl *
  • parallel *
  • parsec *
  • process *
  • safe *
  • tamarin-prover-term *
  • tamarin-prover-utils *
  • text *
  • transformers *
  • uniplate *
lib/utils/tamarin-prover-utils.cabal hackage
  • SHA *
  • base *
  • base64-bytestring *
  • binary *
  • blaze-builder *
  • bytestring *
  • containers *
  • deepseq *
  • dlist *
  • exceptions *
  • fclabels *
  • mtl *
  • pretty *
  • safe *
  • syb *
  • time *
  • transformers *
tamarin-prover.cabal hackage
  • HUnit *
  • base *
  • binary *
  • binary-instances *
  • binary-orphans *
  • blaze-builder *
  • blaze-html *
  • bytestring *
  • cmdargs *
  • conduit *
  • containers *
  • deepseq *
  • directory *
  • exceptions *
  • fclabels *
  • file-embed *
  • filepath *
  • gitrev *
  • http-types *
  • mtl *
  • parsec *
  • process *
  • resourcet *
  • safe *
  • shakespeare *
  • tamarin-prover-accountability ==1.7.1
  • tamarin-prover-export ==1.7.1
  • tamarin-prover-sapic ==1.7.1
  • tamarin-prover-term ==1.7.1
  • tamarin-prover-theory ==1.7.1
  • tamarin-prover-utils ==1.7.1
  • template-haskell *
  • text *
  • threads *
  • time *
  • wai *
  • warp *
  • yesod-core *
  • yesod-static *
lib/term/tamarin-prover-term.cabal hackage
  • HUnit *
  • attoparsec *
  • base *
  • binary *
  • bytestring *
  • containers *
  • deepseq *
  • dlist *
  • mtl *
  • process *
  • safe *
  • tamarin-prover-utils *
.github/workflows/deploy.yml actions
  • actions/checkout v3 composite
tree-sitter/tree-sitter-spthy/Cargo.toml cargo
tree-sitter/tree-sitter-spthy/go.mod go
  • github.com/tree-sitter/go-tree-sitter v0.23
manual/grammar/package-lock.json npm
  • acorn 8.12.0
  • acorn-walk 8.3.3
manual/grammar/package.json npm
  • acorn ^8.12.0
  • acorn-walk ^8.3.3
tree-sitter/tree-sitter-spthy/package.json npm
  • prebuildify ^6.0.0 development
  • tree-sitter-cli ^0.22.6 development
  • node-addon-api ^7.1.0
  • node-gyp-build ^4.8.0
tree-sitter/tree-sitter-spthy/pyproject.toml pypi
tree-sitter/tree-sitter-spthy/setup.py pypi
tree-sitter/tree-sitter-spthy/Package.swift swiftpm