Skip to content

Shared storage infrastructure and provider capability routing for certificate management - #160

Merged
PandaeDo merged 34 commits into
eclipse-score:mainfrom
etas-contrib:feature/cert_api_and_common_refactor
Sep 30, 2026
Merged

PandaeDo merged 34 commits into
eclipse-score:mainfrom
etas-contrib:feature/cert_api_and_common_refactor

Conversation

@ChansAlive

@ChansAlive ChansAlive commented Aug 13, 2026 •

Copy link
Copy Markdown
Contributor

Foundational groundwork for the certificate management daemon component.

  • Shared deployment storage (daemon/common/storage/) extracted from key_management — reusable KV loader/writer and atomic file I/O primitives backed by score::filesystem baselibs.
  • Provider capability selection extended to route certificate context types to the correct provider (software-first for kCertManagement).
  • Certificate API types and contexts promoted from api/future/ to stable namespaces.

Closes #162

@github-actions

github-actions Bot commented Aug 13, 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: 0a333bf3-cf6d-42d6-a45e-ed281fcd7e0b
Computing main repo mapping: 
Computing main repo mapping: 
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>
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>
WARNING: For repository 'score_bazel_platforms', the root module requires module version score_bazel_platforms@0.1.2, but got score_bazel_platforms@1.1.0 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'score_process_description', the root module requires module version score_process_description@2.1.1, but got score_process_description@2.1.2 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: 
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: 20.032s
INFO: 0 processes.
ERROR: Build did NOT complete successfully
ERROR: Build failed. Not running target

@github-actions

Copy link
Copy Markdown
Contributor

The created documentation from the pull request is available at: docu-html

@ChansAlive
ChansAlive force-pushed the feature/cert_api_and_common_refactor branch from d8c0760 to 3806c91 Compare August 13, 2026 20:40
@ChansAlive
ChansAlive marked this pull request as ready for review August 14, 2026 10:24
@ChansAlive
ChansAlive requested a review from sunildevda August 14, 2026 10:25
@ChansAlive
ChansAlive force-pushed the feature/cert_api_and_common_refactor branch from a425c7b to 60c98d8 Compare August 19, 2026 07:31
@ChansAlive
ChansAlive force-pushed the feature/cert_api_and_common_refactor branch from a0b9c2c to 186e256 Compare August 24, 2026 21:10
@ChansAlive
ChansAlive force-pushed the feature/cert_api_and_common_refactor branch from 03e9354 to 9d4bc98 Compare August 25, 2026 11:08
@ChansAlive
ChansAlive force-pushed the feature/cert_api_and_common_refactor branch from 9d4bc98 to cee8b32 Compare August 25, 2026 11:27

@OliverHeilwagen OliverHeilwagen left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approve with suggestions.

Comment thread tools/coverage/BUILD
"//score/crypto/src/api/objects:cert_objects",
"//score/crypto/src/api/future/common:future_common",

"//score/crypto/src/backend:active_pkcs11_backend",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not changed by this PR but i would assume we can simply have //score/crypto/src/daemon:crypto_daemon and do not specify subcomponents or selected backends, these should come automatic.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can try it in #197

/// @param sha256_fingerprint 32-byte SHA-256 fingerprint of the certificate to remove
virtual score::Result<std::monostate> RemoveCertificateFromTrustStore(
const CryptoResourceId& trust_store,
score::cpp::span<const uint8_t> sha256_fingerprint) = 0;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not const std::array<uint8_t, kSha256FingerprintSize>&? This way we should be able to skip some validity checks, same applies to other APIs which use fingerprint.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will explore in the implementation PR #251

@ChansAlive

ChansAlive commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor Author

@masc2023 or @PandaeDo :
The PR is reviewed already, could you kindly approve and if possible merge the same?
Thanks in advance.

cc: @OliverHeilwagen @ugeshmunirjulu @sunildevda

This branch was successfully deployed

1 active deployment
workflow-approval — 72e4cf55 Deployed Sep 29, 2026 by ChansAlive via Build and Test x86_64-qnx-itf / approval #489
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.

Cert API and Daemon refactoring for cert management

4 participants