Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
174 commits
Select commit Hold shift + click to select a range
cbb6b1f
Merge pull request #8 from protocol-fuzzing/main
Kax-y May 8, 2025
02b427d
Merge branch 'protocol-fuzzing:main' into main
00oskpet Jan 14, 2026
f46272f
Updates inputs, outputs and add two new classes
actyp Feb 14, 2024
63296f9
Update mapper related classes
actyp Feb 14, 2024
da28243
Update sul related classes
actyp Feb 14, 2024
844d3d9
Update outer classes
actyp Feb 14, 2024
0032ca7
Update setup_fuzzer pointing to generics branch
actyp Feb 14, 2024
4ddf75d
Update according to generic machine model
actyp Feb 15, 2024
4bcecc6
Introduce EdhocMapperComposer and simplify some things
actyp Feb 17, 2024
9f2a494
Simplify EdhocSul
actyp Feb 17, 2024
f4a5ce6
Update mapper related classes
actyp Feb 14, 2024
f02ff73
Update sul related classes
actyp Feb 14, 2024
7547838
Update outer classes
actyp Feb 14, 2024
1311bb3
Update according to generic machine model
actyp Feb 15, 2024
ce02ac9
Introduce EdhocMapperComposer and simplify some things
actyp Feb 17, 2024
89aca2d
Simplify EdhocSul
actyp Feb 17, 2024
b0106e8
First draft of using RA components
00oskpet Feb 23, 2024
48bd92d
Added versions of various classes using RALib
Kax-y Feb 26, 2024
d3c223a
Change setup to clone our version of PSF
Kax-y Feb 26, 2024
2991b46
Try to make OutputMapper map C_I to a parameter
00oskpet Feb 28, 2024
9a30c0f
Co-authored-by: Linus Olofsson <Kax-y@users.noreply.github.com>
00oskpet Feb 28, 2024
83b2bbf
spotbugs + pom update
00oskpet Feb 28, 2024
5404eae
Remove pom packaging
Kax-y Feb 29, 2024
2cede5c
Update pom.xml
Kax-y Feb 29, 2024
e527211
Replace suppress rawtype warnings with <?>
Kax-y Feb 29, 2024
71c1998
Update EdhocSessionPersistent with generated DataValues from RALib le…
Kax-y Feb 29, 2024
33c7662
Implement AlphabetTransformer and use it
Kax-y Mar 6, 2024
3dba4c5
Spotless:apply
00oskpet Mar 6, 2024
dbbc281
Restructure and add getDataTypes
00oskpet Mar 6, 2024
7849514
Use the AlphabetTransformerRA in the creation of StateFuzzerRA, Timin…
00oskpet Mar 6, 2024
6f29063
Make XML-equivalent for DataType and use it in AlphabetTransformer an…
00oskpet Mar 11, 2024
3601012
Update PojoXML with InputSymbolXML class
00oskpet Mar 11, 2024
6af7b8f
Add RA configs and alphabet
00oskpet Mar 11, 2024
1a0f907
Adapt MultibuilderRA to StateFuzzerComposerRA changes
Kax-y Mar 13, 2024
bd0227d
Change CI for lakers to run the RA script
Kax-y Mar 13, 2024
0d2ec9c
Create and use EdhocInputConverter
00oskpet Mar 14, 2024
992e8c5
Update the californium commit hash
00oskpet Mar 14, 2024
493a8c5
pass the parameter values as well in EdhocInputConverter
00oskpet Mar 14, 2024
7f648ea
Update rise setup checkout commit hash
Kax-y Mar 14, 2024
a7ffa96
Update EdhocOutputRA to give empty datavalue arrays instead of null f…
00oskpet Mar 15, 2024
37b467f
Add a logging configuration for the RALib package and update SLF4J-im…
00oskpet Mar 22, 2024
2921bc5
Update own connection id instead of peer
00oskpet Mar 22, 2024
fcaaa0a
Rename InputSymbolXml to SymbolXml
00oskpet Mar 27, 2024
60c2eda
Add outputs to alphabet_ra and update the PojoXml
00oskpet Mar 27, 2024
7776381
Update the alphabetTransformer with the abillity to transform output …
00oskpet Mar 27, 2024
a9c87b5
Change the InputSymbolXml in multibuilder to SymbolXml
00oskpet Mar 27, 2024
01c4bc7
Logging & reformatting NOTE: might undo.
00oskpet Mar 27, 2024
5b1d10c
Update the alphabetTransformer to transform into RALib input/output s…
00oskpet Apr 3, 2024
1e209fb
Migrate mappers and SUL to use PSymbolInstance
00oskpet Apr 3, 2024
7d9ea40
Set max depth and enable IO mode
00oskpet Apr 3, 2024
ada8d51
Create a smaller test alphabet
00oskpet Apr 11, 2024
d9ee4f8
Update the log4j configuration with more info, log AutomatonBuilder a…
00oskpet Apr 11, 2024
f6b3e07
Update the OutputBuilder to build PSymbolInstances from MessageOutput…
00oskpet Apr 18, 2024
9e2d1d6
Add unique output types with names different from the MessageInputTypes
00oskpet Apr 18, 2024
dafe751
Change the alphabet to match MessageInputType and MessageOutputType
00oskpet Apr 18, 2024
a16e7b9
Update logging config
00oskpet Apr 18, 2024
9243cc1
Disable parameters and update OutputMapperRA to only PSymbolInstance
00oskpet Apr 18, 2024
57750a9
Change learning algorithm and add parameters
00oskpet Apr 18, 2024
4dfc2b2
Change ci.yml to use server_ra args file
Kax-y Apr 18, 2024
0414a4b
EnumAlphabet and enumerations to build from
00oskpet Apr 22, 2024
759b6d8
Change InputSymbolXml to SymbolXml in toTransformedInput default case
00oskpet Apr 22, 2024
ebcdd53
Update Input/Ouput mapper and OutputBuilder to use new enumerations
00oskpet Apr 22, 2024
3bed950
Create a dummy builder to be able to pass EnumAlphabet to PSF.
00oskpet Apr 22, 2024
14fd65b
Use EnumAlphabet and AlphabetDummyBuilder in MultiBuilderRA
00oskpet Apr 22, 2024
9c56a6c
Add temporary dependencies on automatalib to allow creation of enumal…
00oskpet Apr 22, 2024
bb313c9
Update loglevels
00oskpet Apr 22, 2024
c3d07de
Update the RISE configurations, currently with hardcoded filepaths wh…
00oskpet Apr 26, 2024
c268e2a
More fine-grained logging, keep only RaStar
00oskpet May 2, 2024
fd8fc59
Update EnumAlphabet to use a map for easy symbol retreival, add some …
00oskpet May 7, 2024
a7e2b9d
Add parameters and update the mappers with symbol retreival from the …
00oskpet May 7, 2024
967ee58
Update beautify model for register automata
00oskpet May 7, 2024
8612c63
Update the package path to MessageProcessorPersistant in the logger c…
00oskpet May 7, 2024
c519d4a
Add RA configurations for all implementations and update CI
00oskpet May 7, 2024
1f1c391
Move EnumAlphabet and related parts to PSF
00oskpet May 8, 2024
88d1a2b
Remove automatalib since it is no longer needed with EnumAlphabet in PSF
00oskpet May 21, 2024
fdffb5c
Add edhoc data types enumeration
00oskpet May 21, 2024
af01964
EnumAlphabet and DataTypeMap for working CI (test, remove this with a…
00oskpet May 21, 2024
5594e5e
Fix the output mapper for only C_I learning
00oskpet May 22, 2024
beda288
Allow the creation of a RA-jar and a Mealy-jar
00oskpet May 22, 2024
8bd3dfe
Remove unused files for RA input types.
00oskpet May 22, 2024
3026381
Update CI to run RA learning
00oskpet May 22, 2024
9cd0dad
Update timeouts in config files
00oskpet May 22, 2024
2d2bbb7
Update log levels
00oskpet May 22, 2024
c37a4b6
Update oscore context
00oskpet May 23, 2024
07b5794
Update argument files
00oskpet May 23, 2024
401ba45
Update the linking of jar-files in setup_fuzzer.sh
00oskpet May 24, 2024
3d20dbd
Run with tests because maven
00oskpet May 24, 2024
7d7209e
Update arguments and CI configurations
00oskpet May 29, 2024
f54625e
Add separate logging entry for PSF LoggingWrapper
00oskpet May 29, 2024
66131f1
Update client-testing functionallity
00oskpet May 29, 2024
986051f
Update all OSCORE Id:s
00oskpet May 29, 2024
5bca6e5
Update logging
00oskpet May 29, 2024
2f50f87
Adapted timeouts to CI run
Kax-y May 31, 2024
0d62de8
Remove round limits
Kax-y May 31, 2024
b2f09a9
Revert file paths for args
Kax-y May 31, 2024
806506d
Increase timeout for rise & m4 app ra
Kax-y May 31, 2024
44b3a92
Increase timeout on client m4 app ra
Kax-y May 31, 2024
ad52afb
Increase timeout args for lakers
Kax-y Jun 1, 2024
9f126ad
Set some logging from info to debug level
Kax-y Jun 1, 2024
4424ec7
Increase timeout for rise server CI test
Kax-y Jun 1, 2024
910b9ed
Change RA learning algorithm to RaLambda
Kax-y Jun 4, 2024
06a1955
Remove unnecessary logs ci skip
Kax-y Jun 4, 2024
0c177d6
Update log4j2 ci skip
Kax-y Jun 4, 2024
fb2e18f
Remove unused alphabet xml files and add dummy ci skip
Kax-y Jun 4, 2024
f8ec510
Remove unused enums ci skip
Kax-y Jun 4, 2024
83f1beb
Update CI to enable downloading results
Kax-y Jun 4, 2024
10ef57d
CI fix incorrect filepath
Kax-y Jun 4, 2024
da8c844
Decrease maxRuns for RISE server & uoscore-uedhoc
Kax-y Jun 4, 2024
c1c9dd1
Run CI with RaStar again
Kax-y Jun 4, 2024
d05b280
Run RISE & uOSCORE Server impl with time limit
Kax-y Jun 4, 2024
00d57be
Do the diffing last to not fail artifact upload before it can run.
00oskpet Jun 4, 2024
ed4b6ce
Fix arg files for lakers, rise and uoscore server (timelimit & filepath)
Kax-y Jun 5, 2024
f0760db
Update artifact upload with new paths and unique names.
00oskpet Jun 5, 2024
3348ae4
Run experiments with RaLambda
Kax-y Jun 5, 2024
bc5cad0
RaLambda -> RaStar & Depth 4 -> 10
Kax-y Jun 5, 2024
15fd3e1
Put depth back to 4 ci skip
Kax-y Jun 5, 2024
240cab2
Decrease timeLimit for RISE & uOSCORE server
Kax-y Jun 6, 2024
c38cf84
give SIFIS-HOME artifact proper name ci skip
00oskpet Jun 6, 2024
1543734
Run CI experiments with RaLambda
Kax-y Jun 6, 2024
7aa845c
Remove socket_closed from sifis-home client
Kax-y Jun 6, 2024
8e5d2ad
Update maxDepthRA to 10 for all arg files ci skip
Kax-y Jun 6, 2024
aac6d95
Add all RA results and setup RA Diff in CI
Kax-y Jun 6, 2024
94134c1
Run with RaStar instead
Kax-y Jun 6, 2024
cd8cb2d
Update saved results ci skip
Kax-y Jun 10, 2024
ed11055
Increase lakers server timeout and put timeLimit on sifis-home server
Kax-y Jun 10, 2024
28e02b5
Update CI diff for RISE server ci skip
Kax-y Jun 11, 2024
5ff6475
Put maxDepthRA back to 4 for sifis-home & lakers server
Kax-y Jun 11, 2024
293ba4b
Update saved results for lakers server
Kax-y Jun 11, 2024
f0cb770
Add pdfs with shortened names to saved results ci skip
Kax-y Jun 12, 2024
20b04c2
Run CI tests with RaLambda
Kax-y Jun 12, 2024
5f69add
use RaStar for experiments again to clear PR checks
Kax-y Feb 9, 2025
3f7b0bc
Updates inputs, outputs and add two new classes
actyp Feb 14, 2024
e177548
Update mapper related classes
actyp Feb 14, 2024
3e7f733
Update sul related classes
actyp Feb 14, 2024
7e52321
Update outer classes
actyp Feb 14, 2024
719c91e
Update setup_fuzzer pointing to generics branch
actyp Feb 14, 2024
5e17c8a
Update according to generic machine model
actyp Feb 15, 2024
b6ba1f9
Introduce EdhocMapperComposer and simplify some things
actyp Feb 17, 2024
b43d7ee
Simplify EdhocSul
actyp Feb 17, 2024
8ddf6b7
Update protocol-state-fuzzer setup
actyp Dec 29, 2024
bfe33fd
update from fork to real psf
Kax-y Feb 9, 2025
b03adc0
Update dependency hashes in setup_fuzzer.sh
00oskpet May 8, 2025
a54b2e7
Latest psf
00oskpet May 8, 2025
16a9298
install ralib with mvn install
00oskpet May 8, 2025
552b1b9
Fix
00oskpet May 8, 2025
16fad57
Update to new outputBuilder
00oskpet May 8, 2025
189987c
BuildOutputExact
00oskpet May 8, 2025
53420fc
sideprocessor
00oskpet May 8, 2025
8f7355b
Yeet!
00oskpet May 8, 2025
e0f8260
Build SulWrapper in EdhocSulBuilderRA
00oskpet Jan 15, 2026
0f586c7
Update protocol message switches to new best practice (fix warning)
00oskpet Jan 15, 2026
f017401
Temporarily suppress this-escape to allow compiling and testing
00oskpet Jan 15, 2026
94afd7a
mvn spotless:apply
00oskpet Jan 15, 2026
1017757
Update psf version to the same as mainline edhocfuzzer
00oskpet Jan 15, 2026
cdbb474
Actually remove sulWrapper
00oskpet Jan 15, 2026
155edb0
Use my psf fork with hotfixed AlphabetBuilderWrapper
00oskpet Jan 15, 2026
78a8bf2
Remove SIFIS-Home jobs
00oskpet Jan 30, 2026
7f70c73
Move RA-testing to a separate CI-workflow
00oskpet Jan 30, 2026
447a25a
Remove duplicate RA-workflows
00oskpet Jan 30, 2026
9b35808
add ra round limits
Kax-y Jan 30, 2026
c1eff81
update lakers saved results
Kax-y Jan 30, 2026
5714d1e
adjust rount limits for ra ci
Kax-y Jan 30, 2026
55332f9
time limits instead of round limits
Kax-y Jan 30, 2026
faab17c
Revert "time limits instead of round limits"
Kax-y Jan 30, 2026
3ec4c25
adjust round limits further
Kax-y Jan 30, 2026
81e3f2b
Merge branch 'main' into ci-args3
kostis Feb 2, 2026
9ca3a26
Update setup_fuzzer.sh
kostis Feb 2, 2026
f8bf137
re-add sifis-home in ci but commented out
Kax-y Feb 2, 2026
1f78095
Merge branch 'main' into ci-args3
Kax-y Feb 2, 2026
3ba85e7
Merge branch 'main' into ci-args3
Kax-y Feb 5, 2026
2102195
remove uploading artifacts step in ci
Kax-y Feb 5, 2026
58696fa
remove unnecessary steps in ci
Kax-y Feb 5, 2026
02f0dfd
combine a few diff steps
Kax-y Feb 5, 2026
b6eabcc
AlphabetBuilderWrapper rename to AlphabetBuilderEnum
Kax-y Feb 5, 2026
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
219 changes: 219 additions & 0 deletions .github/workflows/ci-ra.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,219 @@
name: CI RA-learning
on: [push, pull_request]

jobs:
Lakers-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 Lakers
run:
curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh -s -- -y
source "${HOME}/.cargo/env"
rustup toolchain install nightly-2025-05-10-x86_64-unknown-linux-gnu
./scripts/setup_sul.sh lakers

- name: Test Lakers Client (RA)
run: |
java -jar edhoc-fuzzerRA.jar @experiments/args/lakers/client_ra -roundLimit 3
./scripts/diff_hyps.sh experiments/saved_results/clients/ra/lakers experiments/results/clients/ra/lakers 2

Lakers-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 Lakers
run:
curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh -s -- -y
source "${HOME}/.cargo/env"
rustup toolchain install nightly-2025-05-10-x86_64-unknown-linux-gnu
./scripts/setup_sul.sh lakers

- name: Test Lakers Server (RA)
run: |
java -jar edhoc-fuzzerRA.jar @experiments/args/lakers/server_ra -roundLimit 5
./scripts/diff_hyps.sh experiments/saved_results/servers/ra/lakers experiments/results/servers/ra/lakers 3

RISE-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 RISE
run: ./scripts/setup_sul.sh rise

- name: Test RISE Client (m4_app, RA)
run: |
java -jar edhoc-fuzzerRA.jar @experiments/args/rise/client_m4_app_ra -roundLimit 5
./scripts/diff_hyps.sh experiments/saved_results/clients/ra/rise_m4_app experiments/results/clients/ra/rise_m4_app 3

RISE-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 RISE
run: ./scripts/setup_sul.sh rise

- name: Test RISE Server (m4_app, RA)
run: |
java -jar edhoc-fuzzerRA.jar @experiments/args/rise/server_m4_app_ra -roundLimit 2
./scripts/diff_hyps.sh experiments/saved_results/servers/ra/rise_m4_app experiments/results/servers/ra/rise_m4_app 2

uOSCORE-uEDHOC-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 uOSCORE-uEDHOC
run: ./scripts/setup_sul.sh uoscore-uedhoc

- name: Test uOSCORE-uEDHOC Client (linux_edhoc_oscore, RA)
run: |
java -jar edhoc-fuzzerRA.jar @experiments/args/uoscore-uedhoc/client_linux_edhoc_oscore_ra -roundLimit 5
./scripts/diff_hyps.sh experiments/saved_results/clients/ra/uoscore-uedhoc_linux_edhoc_oscore experiments/results/clients/ra/uoscore-uedhoc_linux_edhoc_oscore 3

uOSCORE-uEDHOC-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 uOSCORE-uEDHOC
run: ./scripts/setup_sul.sh uoscore-uedhoc

- name: Test uOSCORE-uEDHOC Server (linux_edhoc_oscore, RA)
run: |
java -jar edhoc-fuzzerRA.jar @experiments/args/uoscore-uedhoc/server_linux_edhoc_oscore_ra -roundLimit 4
./scripts/diff_hyps.sh experiments/saved_results/servers/ra/uoscore-uedhoc_linux_edhoc_oscore experiments/results/servers/ra/uoscore-uedhoc_linux_edhoc_oscore 3

# SIFIS-HOME-Client:
# if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
# runs-on: ubuntu-latest
# strategy:
# fail-fast: true
# steps:
# - uses: actions/checkout@v4
# - uses: actions/setup-java@v4
# with:
# java-version: '17'
# 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, RA)
# run: |
# java -jar edhoc-fuzzerRA.jar @experiments/args/sifis-home/client_phase_1_ra
# ./scripts/diff_hyps.sh experiments/saved_results/clients/ra/sifis-home_phase_1 experiments/results/clients/ra/sifis-home_phase_1 3

# SIFIS-HOME-Server:
# if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
# runs-on: ubuntu-latest
# strategy:
# fail-fast: true
# steps:
# - uses: actions/checkout@v4
# - uses: actions/setup-java@v4
# with:
# java-version: '17'
# 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, RA)
# run: |
# java -jar edhoc-fuzzerRA.jar @experiments/args/sifis-home/server_phase_1_ra
# ./scripts/diff_hyps.sh experiments/saved_results/servers/ra/sifis-home_phase_1 experiments/results/servers/ra/sifis-home_phase_1 16
Loading
Loading