Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
166 changes: 91 additions & 75 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@ jobs:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'temurin'
java-version: "21"
distribution: "temurin"
- uses: ts-graphviz/setup-graphviz@v2
- name: Install pydot
run: pip3 install pydot
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0

- name: Setup venv
run: uv sync

- name: Setup EDHOC-Fuzzer
run: ./scripts/setup_fuzzer.sh -l
Expand All @@ -41,11 +43,13 @@ jobs:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'temurin'
java-version: "21"
distribution: "temurin"
- uses: ts-graphviz/setup-graphviz@v2
- name: Install pydot
run: pip3 install pydot
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0

- name: Setup venv
run: uv sync

- name: Setup EDHOC-Fuzzer
run: ./scripts/setup_fuzzer.sh -l
Expand All @@ -71,11 +75,13 @@ jobs:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'temurin'
java-version: "21"
distribution: "temurin"
- uses: ts-graphviz/setup-graphviz@v2
- name: Install pydot
run: pip3 install pydot
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0

- name: Setup venv
run: uv sync

- name: Setup EDHOC-Fuzzer
run: ./scripts/setup_fuzzer.sh -l
Expand All @@ -97,11 +103,13 @@ jobs:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'temurin'
java-version: "21"
distribution: "temurin"
- uses: ts-graphviz/setup-graphviz@v2
- name: Install pydot
run: pip3 install pydot
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0

- name: Setup venv
run: uv sync

- name: Setup EDHOC-Fuzzer
run: ./scripts/setup_fuzzer.sh -l
Expand All @@ -114,57 +122,61 @@ jobs:
java -jar edhoc-fuzzer.jar @experiments/args/rise/server_m4_app -roundLimit 5
./scripts/diff_hyps.sh experiments/saved_results/servers/rise_m4_app experiments/results/servers/rise_m4_app 5

# SIFIS-HOME-Client:
# if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
# runs-on: ubuntu-latest
# strategy:
# fail-fast: true
# steps:
# - uses: actions/checkout@v6
# - uses: actions/setup-java@v5
# with:
# java-version: '21'
# distribution: 'temurin'
# - uses: ts-graphviz/setup-graphviz@v2
# - name: Install pydot
# run: pip3 install pydot
#
# - name: Setup EDHOC-Fuzzer
# run: ./scripts/setup_fuzzer.sh -l
#
# - name: Setup SIFIS-HOME
# run: ./scripts/setup_sul.sh sifis-home
#
# - name: Test SIFIS-HOME Client (phase_1)
# run: |
# java -jar edhoc-fuzzer.jar @experiments/args/sifis-home/client_phase_1 -roundLimit 4
# ./scripts/diff_hyps.sh experiments/saved_results/clients/sifis-home_phase_1 experiments/results/clients/sifis-home_phase_1 4
#
# SIFIS-HOME-Server:
# if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
# runs-on: ubuntu-latest
# strategy:
# fail-fast: true
# steps:
# - uses: actions/checkout@v6
# - uses: actions/setup-java@v5
# with:
# java-version: '21'
# distribution: 'temurin'
# - uses: ts-graphviz/setup-graphviz@v2
# - name: Install pydot
# run: pip3 install pydot
#
# - name: Setup EDHOC-Fuzzer
# run: ./scripts/setup_fuzzer.sh -l
#
# - name: Setup SIFIS-HOME
# run: ./scripts/setup_sul.sh sifis-home
#
# - name: Test SIFIS-HOME Server (phase_1)
# run: |
# java -jar edhoc-fuzzer.jar @experiments/args/sifis-home/server_phase_1 -roundLimit 5
# ./scripts/diff_hyps.sh experiments/saved_results/servers/sifis-home_phase_1 experiments/results/servers/sifis-home_phase_1 5
# SIFIS-HOME-Client:
# if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
# runs-on: ubuntu-latest
# strategy:
# fail-fast: true
# steps:
# - uses: actions/checkout@v6
# - uses: actions/setup-java@v5
# with:
# java-version: '21'
# distribution: 'temurin'
# - uses: ts-graphviz/setup-graphviz@v2
# - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
#
# - name: Setup venv
# run: uv sync
#
# - name: Setup EDHOC-Fuzzer
# run: ./scripts/setup_fuzzer.sh -l
#
# - name: Setup SIFIS-HOME
# run: ./scripts/setup_sul.sh sifis-home
#
# - name: Test SIFIS-HOME Client (phase_1)
# run: |
# java -jar edhoc-fuzzer.jar @experiments/args/sifis-home/client_phase_1 -roundLimit 4
# ./scripts/diff_hyps.sh experiments/saved_results/clients/sifis-home_phase_1 experiments/results/clients/sifis-home_phase_1 4
#
# SIFIS-HOME-Server:
# if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
# runs-on: ubuntu-latest
# strategy:
# fail-fast: true
# steps:
# - uses: actions/checkout@v6
# - uses: actions/setup-java@v5
# with:
# java-version: '21'
# distribution: 'temurin'
# - uses: ts-graphviz/setup-graphviz@v2
# - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
#
# - name: Setup venv
# run: uv sync
#
# - name: Setup EDHOC-Fuzzer
# run: ./scripts/setup_fuzzer.sh -l
#
# - name: Setup SIFIS-HOME
# run: ./scripts/setup_sul.sh sifis-home
#
# - name: Test SIFIS-HOME Server (phase_1)
# run: |
# java -jar edhoc-fuzzer.jar @experiments/args/sifis-home/server_phase_1 -roundLimit 5
# ./scripts/diff_hyps.sh experiments/saved_results/servers/sifis-home_phase_1 experiments/results/servers/sifis-home_phase_1 5

uOSCORE-uEDHOC-Client:
if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
Expand All @@ -175,11 +187,13 @@ jobs:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'temurin'
java-version: "21"
distribution: "temurin"
- uses: ts-graphviz/setup-graphviz@v2
- name: Install pydot
run: pip3 install pydot
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0

- name: Setup venv
run: uv sync

- name: Setup EDHOC-Fuzzer
run: ./scripts/setup_fuzzer.sh -l
Expand All @@ -201,11 +215,13 @@ jobs:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'temurin'
java-version: "21"
distribution: "temurin"
- uses: ts-graphviz/setup-graphviz@v2
- name: Install pydot
run: pip3 install pydot
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0

- name: Setup venv
run: uv sync

- name: Setup EDHOC-Fuzzer
run: ./scripts/setup_fuzzer.sh -l
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codespell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ jobs:
- uses: codespell-project/actions-codespell@master
with:
ignore_words_list: errorprone,keypair,keypairs
skip: '*.patch,*.pdf'
skip: "*.patch,*.pdf"
20 changes: 12 additions & 8 deletions .github/workflows/concretization.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@ jobs:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'temurin'
java-version: "21"
distribution: "temurin"
- uses: ts-graphviz/setup-graphviz@v2
- name: Install pydot
run: pip3 install pydot
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0

- name: Setup venv
run: uv sync

- name: Setup EDHOC-Fuzzer
run: ./scripts/setup_fuzzer.sh -l
Expand All @@ -42,11 +44,13 @@ jobs:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'temurin'
java-version: "21"
distribution: "temurin"
- uses: ts-graphviz/setup-graphviz@v2
- name: Install pydot
run: pip3 install pydot
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0

- name: Setup venv
run: uv sync

- name: Setup EDHOC-Fuzzer
run: ./scripts/setup_fuzzer.sh -l
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/shellcheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ jobs:
- uses: actions/checkout@v6
- uses: ludeeus/action-shellcheck@master
with:
scandir: './scripts'
scandir: "./scripts"
4 changes: 2 additions & 2 deletions .github/workflows/spotless.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
- name: Set up JDK 21
uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'temurin'
java-version: "21"
distribution: "temurin"
- name: spotlessCheck
run: mvn spotless:check
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ hs_err_pid*

# project structure files
.idea/
.venv/

target/

Expand Down
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.13
24 changes: 15 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ published in the proceedings of ISSTA 2023.
* Java 21 JDK.
* maven correctly setup to point to Java 21 JDK.
* graphviz library, containing the dot utility, which should be located in the system's PATH.
* python >=3.6 and pydot interface >=1.4.2, in order to use the [beautify_model.sh](scripts/beautify_model.sh) script.
* [uv](https://docs.astral.sh/uv/) to use the [beautify_model.sh](scripts/beautify_model.sh), [beautify_model.py](scripts/beautify_model.py) scripts.
* (suggested) make utility, rust and cargo required by the setup of some SULs.
* (optional) openssl utility, required by the [gen_auth_hierarchy.sh](scripts/gen_auth_hierarchy.sh) script.

Expand All @@ -45,14 +45,20 @@ Assuming the commands are executed from the root directory:

1. To check the prerequisites use:
```bash
java -version
mvn -version
dot -V
python3 --version
pip3 show pydot
java --version
mvn --version
dot --version
uv --version
```

2. To set up EDHOC-Fuzzer use:
2. Setup python virtual environment
```bash
uv sync
```

The virtual environment `.venv` should have been created.

3. To set up EDHOC-Fuzzer use:
```bash
./scripts/setup_fuzzer.sh -l
```
Expand All @@ -61,7 +67,7 @@ The fetched source files are deleted after the installation. After the first ins
be used without the `-l` flag, in order to rebuild the project. After a successful build, the soft link `edhoc-fuzzer.jar`
is created in the root directory.

3. To set up a System Under Learning (SUL) use:
4. To set up a System Under Learning (SUL) use:
```bash
./scripts/setup_sul.sh
```
Expand Down Expand Up @@ -172,7 +178,7 @@ the client implementation sends to start the EDHOC protocol.

The above script is just a convenient wrapper of the following more customizable script:
```bash
python3 ./scripts/beautify_model.py -h
uv run ./scripts/beautify_model.py -h
```


Expand Down
1 change: 1 addition & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@
<excludes>
<exclude>experiments/models/sources/**</exclude>
<exclude>target/**</exclude>
<exclude>.venv/**</exclude>
</excludes>
<endWithNewline />
<trimTrailingWhitespace />
Expand Down
9 changes: 9 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[project]
name = "edhoc-fuzzer"
version = "0.0.0"
description = "A protocol state fuzzer of EDHOC clients and servers."
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"pydot>=4.0.1",
]
Loading
Loading