Conversation
kssim
requested a deployment
to
workflow-approval
September 15, 2026 21:13 — with
GitHub Actions
Waiting
kssim
requested a deployment
to
workflow-approval
September 15, 2026 21:13 — with
GitHub Actions
Waiting
kssim
requested a deployment
to
workflow-approval
September 15, 2026 21:13 — with
GitHub Actions
Waiting
Add SHA-256, SHA-384, and SHA-512 support across the public API, daemon, OpenSSL, and PKCS#11 providers. Preserve empty-input, streaming, reset, digest-size, and actionable error behavior. Complete explicit and preferred provider selection, enforce stable wire values and request shapes, and keep provider validation failures retryable. Add known-answer, binary-input, provider, IPC/SHM, and integration coverage. Document the QM boundary and the Baselibs consumer migration mapping. Refs: eclipse-score#125
kssim
force-pushed
the
feat/migrate_hash_features
branch
from
September 15, 2026 21:13
61a2976 to
1f202a0
Compare
kssim
requested a deployment
to
workflow-approval
September 15, 2026 21:13 — with
GitHub Actions
Waiting
kssim
requested a deployment
to
workflow-approval
September 15, 2026 21:13 — with
GitHub Actions
Waiting
kssim
requested a deployment
to
workflow-approval
September 15, 2026 21:13 — with
GitHub Actions
Waiting
Contributor
License Check Results🚀 The license check job ran with the Bazel command: bazel run --lockfile_mode=error //:license-checkStatus: Click to expand output |
Contributor
|
Documentation preview for this pull request is available at: |
kssim
requested a deployment
to
workflow-approval
September 15, 2026 22:35 — with
GitHub Actions
Waiting
kssim
requested a deployment
to
workflow-approval
September 15, 2026 22:35 — with
GitHub Actions
Waiting
kssim
requested a deployment
to
workflow-approval
September 15, 2026 22:35 — with
GitHub Actions
Waiting
kssim
marked this pull request as ready for review
September 16, 2026 01:13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add SHA-256, SHA-384, and SHA-512 support across the public API, daemon, OpenSSL, and PKCS#11 providers. Preserve empty-input, streaming, reset, digest-size, and actionable error behavior.
Complete explicit and preferred provider selection, enforce stable wire values and request shapes, and keep provider validation failures retryable. Add known-answer, binary-input, provider, IPC/SHM, and integration coverage.
Document the QM boundary and the Baselibs consumer migration mapping.
Refs: #125
Key design decisions
Preserve
SHA256,SHA384, andSHA512as canonical API identifiers.These identifiers were already used by the existing Crypto handlers and tests. Standard names such as SHA-256 remain in documentation, while changing the API identifiers would introduce unnecessary compatibility risks.
Define a strict hash operation contract.
Hash operations now use:
Init()Update()callsFinalize(output)orSingleShot(input, output)Hash-specific IPC parameters that had no clear meaning, such as IVs and optional data on
Init()orFinalize(), were removed.Align streaming state behavior across providers.
Calling
Init()on an active context restarts the stream,Reset()returns it to idle, andSingleShot()is accepted only while idle. PKCS#11 explicitly aborts the previous token operation when restarting.Reject unknown algorithms instead of assuming a digest size.
The previous fallback to 64 bytes was removed because it could hide configuration errors and result in incorrect buffer allocation.
Apply provider preference using actual capabilities.
HardwarePreferredandSoftwarePreferredmay fall back when the preferred provider is unavailable or does not support the requested algorithm. Exact or explicitly selected providers do not silently fall back.Validate PKCS#11 token capabilities before context creation.
A hash mechanism is accepted only when the selected token exposes the corresponding mechanism with the
CKF_DIGESTcapability.Do not reuse PKCS#11 sessions with uncertain state.
If an active digest operation cannot be cleaned up, the session is discarded instead of being returned to the session pool.