A tool that can be used to learn state machines from implementations.
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 15 commits ahead, 3 commits behind jderuiter:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
src/main/java/nl/cypherpunk/statelearner
tls
util
LICENSE
README.md
pom.xml

README.md

StateLearner

StateLearner is a tool that can learn state machines from implementations using a black-box approach. It makes use of LearnLib for the learning specific algorithms.

This tool can be used for TLS implementations, smart cards and can be extended using its socket module.

An overview of different security protocols where state machine learning has been applied can be found here.

Requirements

  • graphviz

Build

Build a self-contained jar file using the following command:

mvn package shade:shade

Usage

java -jar stateLearner-0.0.1-SNAPSHOT.jar <configuration file>

Example configurations can be found in the 'examples' directory. To run the OpenSSL example:

cd examples/openssl
java -jar ../../target/stateLearner-0.0.1-SNAPSHOT.jar server.properties

Publications

StateLearner (or one of its predecessors) has been used in the following publications: