Skip to content

iav_primula: add first integration dummy - #199

Open
HeHa112 wants to merge 31 commits into
eclipse-score:mainfrom
iavofficial:main
Open

HeHa112 wants to merge 31 commits into
eclipse-score:mainfrom
iavofficial:main

Conversation

@HeHa112

@HeHa112 HeHa112 commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

PR for Task #80.

Motivation

Integrate the IAV-Primula post-quantum cryptography interface into the crypto daemon so that ML-DSA and ML-KEM can be used through the existing S-CORE provider.

Changes

  • Added the IAV-Primula C ABI/FFI with stable status and algorithm values.
  • Registered Primula as a specialized S-CORE provider.
  • Added support for ML-DSA-44/65/87 and ML-KEM-512/768/1024.
  • Added generic SIGN, VERIFY, and KEM handlers.
  • Added key management, algorithm metadata, and provider factories.
  • Added Rust and C++ unit and integration tests.
  • Removed the obsolete Hello World files.

Behavior

The provider and handler structure is integrated and validates algorithms, key types, buffer sizes, and operations.
The actual Primula cryptographic implementation is not yet connected. The FFI operations currently return IavStatusUnsupportedAlgorithm. Therefore, real key-generation, signature, and KEM operations fail with the corresponding daemon error.

Testing

The following test targets are included:

  • //score/iav_primula/tests:ffi_test
  • Primula key-management, SIGN, VERIFY, and KEM unit tests
  • iav_primula_application_integration_test

Scope

This PR is limited to:

  • the Primula FFI,
  • integration with the crypto daemon,
  • the S-CORE provider and its handlers,
  • algorithm metadata,
  • build configuration and tests.

A concrete PQC implementation and production-ready key, signature, or KEM results are not part of this PR.

HeHa112 and others added 29 commits July 7, 2026 09:02
* Added component template for IAV_Primula

* Add "Hello World"

* test fix

* renamed lib to main

* Changed documentation part from template to IAV_Primula

* Add gitattributes for LF in iav_primula Rust files

* Enforce LF for iav_primula BUILD file to satisfy buildifier

* Format iav_primula test BUILD for buildifier

* copyright header changed

* Update BUILD in tests

---------

Co-authored-by: cpelka <carolina.pelka@iav.de>
* "Build Documentation" fix
Bumps [openssl](https://github.com/rust-openssl/rust-openssl) from 0.10.68 to 0.10.80.
- [Release notes](https://github.com/rust-openssl/rust-openssl/releases)
- [Commits](rust-openssl/rust-openssl@openssl-v0.10.68...openssl-v0.10.80)

---
updated-dependencies:
- dependency-name: openssl
  dependency-version: 0.10.80
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
…i/openssl-0.10.80

Bump openssl from 0.10.68 to 0.10.80 in /score/cryptoki
iav_primula: update MODULE.bazel.lock
* git commit -m "iav_primula: add Rust FFI API stubs"

* git commit -m "iav_primula: remove obsolete hello-world sources"

* crypto-daemon: add PQC algorithm metadata

* crypto-daemon: align PQC metadata with OS source layout

Remove incorrectly introduced internal-repository paths and integrate
the PQC algorithm metadata into the existing OS repository structure.

* crypto-daemon: add PQC operation identifiers

* score-provider: add generic signature operations

* score-provider: add generic verification operations

* score-provider: add generic kem operations

* score-provider: extend handler factory for PQC

* iav_primula: add provider and backend registration

* feat: add iav_primula key management to score provider

Add Primula key factory and key handler implementations and integrate
them into the score provider library with the required FFI dependencies.

* iav_primula: add signature handler

* iav_primula: add verification handler

Add the iav_primula verification handler and register its sources and
headers in the score provider library.

* iav_primula: add KEM handler

* iav_primula: Add the iav_primula signature handler

* iav_primula: add verification, KEM and integration tests

* iav_primula: enable CI tests and fix backend integration

* iav_primula: enable backend by default

* iav_primula: set provider_type: to SPECIALIZED

* iav_primula: update MODULE.bazel

* iav_primula: MODULE.bazel roll back

* iav_primula: clarify crypto-daemon documentation

* iav_primula: document signature and verification handlers

* iav_primula: document generic KEM handlers

* iav_primula: comment generic sign and verify handlers

* iav_primula: comment IAV-Primula test cases

* Applied formatting to iav_* files

* iav_primula: comment FFI interface and tests

* iav_primula: refactor include guard names

* iav_primula: add file documentation

* Housekeeping tasks.

* iav_primula: review findings fixed

* fixed review findings.

* fixed derp

---------

Co-authored-by: Markus Mergner <markus.mergner@iav.de>
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

License Check Results

🚀 The license check job ran with the Bazel command:

bazel run --lockfile_mode=error //:license-check

Status: ⚠️ Needs Review

Click to expand output
[License Check Output]
Extracting Bazel installation...
Starting local Bazel server (8.6.0) and connecting to it...
INFO: Invocation ID: 5bf151c7-1556-46a0-a6db-25081dbaf905
Computing main repo mapping: 
Computing main repo mapping: 
DEBUG: Rule 'score_baselibs_rust+' indicated that a canonical reproducible form can be obtained by modifying arguments integrity = "sha256-4kzcXcvGi9xBEEnrPOiSEvteITZMPKmK3MNgJXQIGtY="
DEBUG: Repository score_baselibs_rust+ instantiated at:
  <builtin>: in <toplevel>
Repository rule http_archive defined at:
  /home/runner/.bazel/external/bazel_tools/tools/build_defs/repo/http.bzl:431:31: in <toplevel>
DEBUG: Rule 'score_logging+' indicated that a canonical reproducible form can be obtained by modifying arguments integrity = "sha256-/Q5+YfLkbMpz5PfvOkNS7qA3ehzth4emFhTcsk4q3zQ="
DEBUG: Repository score_logging+ instantiated at:
  <builtin>: in <toplevel>
Repository rule http_archive defined at:
  /home/runner/.bazel/external/bazel_tools/tools/build_defs/repo/http.bzl:431:31: in <toplevel>
DEBUG: Rule 'abseil-cpp+' indicated that a canonical reproducible form can be obtained by modifying arguments integrity = "sha256-m3oGQwXp/ZTRJP+mzDWFkutCtdpYj7TgfQklSqQAhts="
DEBUG: Repository abseil-cpp+ instantiated at:
  <builtin>: in <toplevel>
Repository rule http_archive defined at:
  /home/runner/.bazel/external/bazel_tools/tools/build_defs/repo/http.bzl:431:31: in <toplevel>
Computing main repo mapping: 
DEBUG: Rule 'protobuf+' indicated that a canonical reproducible form can be obtained by modifying arguments integrity = "sha256-w6Cp7OiTLjHDtzbi2xixxC5wcM2biBOIsm0BqnHiTKI="
DEBUG: Repository protobuf+ instantiated at:
  <builtin>: in <toplevel>
Repository rule http_archive defined at:
  /home/runner/.bazel/external/bazel_tools/tools/build_defs/repo/http.bzl:431:31: in <toplevel>
Computing main repo mapping: 
DEBUG: Rule 'grpc+' indicated that a canonical reproducible form can be obtained by modifying arguments integrity = "sha256-CvN7gAlTEwtHwHW1ZoPuYL3D7aPDf8YAQZP1tWl1ggQ="
DEBUG: Repository grpc+ instantiated at:
  <builtin>: in <toplevel>
Repository rule http_archive defined at:
  /home/runner/.bazel/external/bazel_tools/tools/build_defs/repo/http.bzl:431:31: in <toplevel>
Computing main repo mapping: 
WARNING: For repository 'score_docs_as_code', the root module requires module version score_docs_as_code@6.0.0, but got score_docs_as_code@8.0.0 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'score_devcontainer', the root module requires module version score_devcontainer@1.10.0, but got score_devcontainer@1.11.0 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
Computing main repo mapping: 
Loading: 
Loading: 1 packages loaded
Loading: 1 packages loaded
    currently loading: 
Loading: 1 packages loaded
    currently loading: 
Loading: 1 packages loaded
    currently loading: 
Loading: 2 packages loaded
WARNING: Target pattern parsing failed.
ERROR: Skipping '//:license-check': no such target '//:license-check': target 'license-check' not declared in package '' defined by /home/runner/work/inc_security_crypto/inc_security_crypto/BUILD
ERROR: no such target '//:license-check': target 'license-check' not declared in package '' defined by /home/runner/work/inc_security_crypto/inc_security_crypto/BUILD
INFO: Elapsed time: 12.567s
INFO: 0 processes.
ERROR: Build did NOT complete successfully
ERROR: Build failed. Not running target

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Documentation preview for this pull request is available at:
pr-199: https://eclipse-score.github.io/inc_security_crypto/pr-199/

* Dependabot openssl adjustment cancelled

* update bazel.lock
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants