Joint codebase for SIFIS-HOME including ACE, EDHOC, OSCORE, Group OSCORE, and Group Joining (plus associated things).
-
Run the
config.sh
script -
Start Eclipse, then import the following projects:
- californium-extended
- ace
- group-applications
- edhoc-applications
-
To "ace" add the following folders to the build path:
- californium-core
- cf-oscore
- element-connector
- scandium
-
To "group-applications" add the following folders to the build path:
- ace
- californium-core
- cf-oscore
- element-connector
- scandium
-
To "edhoc-applications" add the following folders to the build path:
- californium-core
- cf-edhoc
- cf-oscore
- element-connector
To add dependencies:
Right click project->Properties->Java Build Path->Add...
If you are developing in Eclipse (and possibly other IDEs) choose the "eclipse" Maven profile for ACE:
Right click on "ace"->Maven->Select Maven Profile... (CTRL+Alt+P)
Deactive the "default" profile, and activate the "eclipse" profile.
Right click on "group-applications->Maven->Select Maven Profile... (CTRL+Alt+P)
Deactive the "default" profile, and activate the "eclipse" profile.
Right click on "edhoc-applications"->Maven->Select Maven Profile... (CTRL+Alt+P)
Deactive the "default" profile, and activate the "eclipse" profile.
Note that MySQL is needed for the ACE parts to run correctly. To install it use:
sudo apt-get install mysql-server
Then place a file under ace/db.pwd and group-applications/db.pwd with the database root password.
If some of the JUnit tests fail due to "invalid key size" you may need to update the JCE. In such case follow these instructions:
-
config.sh
- Configure and prepare projects for import in Eclipse
-
test-californium.sh
- Execute JUnit tests for Californium and save as Jacoco test reports
-
test-ace.sh
- Execute JUnit tests for ACE and save as Jacoco test reports
- Specify the flag --with-mysql to also perform install and setup of MySQL server
-
build-group-apps.sh
- Builds DHT-enabled standalone Jar files for the Group Applications
-
build-edhoc-apps.sh
- Builds DHT-enabled standalone Jar files for the EDHOC Applications
-
build-for-docker.sh
- Prepares Docker Dockerfiles and Contexts for the Group & EDHOC Applications
- If the flag --build-images is specified, it also builds the Docker images
-
code-coverage.sh
- Relocate Jacoco code coverage reports for deployment to gh-pages
-
dht_rest_client.py
- Allows sending volatile message to the DHT for triggering Group & EDHOC Applications
- Run pip install -r python_requirements.txt to install required dependencies
-
dht_ws_client.py
- Allows sending volatile message to the DHT for triggering Group & EDHOC Applications
- Also prints messages received back from the DHT
- Run pip install websockets to install required dependencies
-
californium-extended/
- Modified version of the Californium CoAP library with support for EDHOC and Group OSCORE
-
ace/
- Implementation of ACE with support for Group Managers and the Group Joining procedure
-
group-applications/
-
The Group Applications including:
-
OscoreAsServer: ACE Authorization Server
-
OscoreRsServer: Group Manager (ACE Resource Server)
-
OscoreAsRsClient: Group OSCORE Server/Client which will join the group(s)
-
Adversary: Adversary for testing attacks against the group(s)
See separate README under group-applications/ for more detailed information
-
-
edhoc-applications/
-
The EDHOC Applications including:
-
Phase0Client: CoAP-only client
-
Phase1Server: EDHOC server using method 0 and no optimized request
-
Phase1Client: EDHOC client using method 0 and no optimized request
-
Phase2Server: EDHOC server using method 3 and no optimized request
-
Phase2Client: EDHOC client using method 3 and no optimized request
-
Phase3Server: EDHOC server using method 0 and the optimized request
-
Phase3Client: EDHOC client using method 0 and the optimized request
-
Phase4Server: EDHOC server using method 3 and the optimized request
-
Phase4Client: EDHOC client using method 3 and the optimized request
See separate README under edhoc-applications/ for more detailed information
-
Docker Images for the Group & EDHOC Applications are automatically pushed to ghcr.io.
Available images are listed in the Packages section of the repository here.
Docker Images are available for all the applications listed above. Additionally, Docker Compose files for various deployments, using a selection of images, are available in the folder docker-compose in the root folder of the repository.
Automatic code coverage reports are generated with Jacoco and can be found at the following links:
EDHOC (californium-extended/cf-edhoc)
OSCORE & Group OSCORE (californium-extended/cf-oscore)
ACE & Group Joining (ace)