Conversation
Signed-off-by: 0rlych1kk4 <orlychikka@gmail.com>
|
hi @baentsch I investigated the remaining CI failure. The wrapper now builds successfully against the updated liboqs submodule, including the HQC and SLH-DSA renamed constants. The remaining failure appears to be Windows-specific and runtime-only:
So this no longer looks like a Rust wrapper constant/feature mapping issue. It may be related to the latest liboqs SLH-DSA SHA2 implementation on Windows. I’m checking whether the Rust wrapper should temporarily gate/skip these SHA2 signing tests on Windows, or whether this should be handled upstream in liboqs. |
Signed-off-by: 0rlych1kk4 <orlychikka@gmail.com>
|
I added a targeted Windows-only skip for the SLH-DSA SHA2 signing runtime tests. The algorithms remain listed and enabled. This only skips the signing/context-string runtime tests for the SLH-DSA SHA2 variants on Windows, where latest liboqs currently returns a generic error. SHAKE variants and the rest of the signature suite continue to run. Validated locally with:
|
Signed-off-by: 0rlych1kk4 <orlychikka@gmail.com>
|
I investigated the macOS stable failure. The failure occurred in the non_portable test path on macOS arm64 while compiling liboqs SHA2 ARMv8 code. With OQS_DIST_BUILD=No, liboqs attempted to compile sha2_armv8.c without the required sha2 compiler target feature. I added a targeted build.rs guard so macOS/aarch64 keeps OQS_DIST_BUILD=Yes even when the Rust non_portable feature is enabled. Other platforms keep the existing non_portable behavior. Validated locally with:
|
|
Hi @baentsch all CI checks are now passing. This PR now addresses:
Ready for maintainer review. |
baentsch
left a comment
There was a problem hiding this comment.
Thanks @0rlych1kk4 for taking this on! Please remove Sphincs completely as per comment(s). Also asking @xuganyu96 for review of the reported liboqs problems. After that, I'd suggest approving this PR. As I don't have the right (nor knowledge) to approve anything in this project, asking @RodriM11 and @dstebila how to handle this (see open-quantum-safe/tsc#221).
Signed-off-by: 0rlych1kk4 <orlychikka@gmail.com>
|
Thanks @baentsch for the review. I updated the PR to remove the remaining SPHINCS naming from the wrapper API and feature set. Changes made:
Local validation passes:
|
|
@baentsch after removing the macOS/aarch64 The failing job is:
The failure happens while building liboqs with:
and fails in So I agree this looks like a liboqs-side build issue rather than a wrapper naming issue. Would you prefer that I:
Happy to follow the maintainers’ preferred direction. |
|
Hi @0rlych1kk4 , thanks for updating the Rust wrapper! I currently have a few other PR's to go through but will get to this one as soon as I can. |
|
Thanks @xuganyu96 . The failing job is
It fails while building liboqs with I’ll wait for maintainer guidance on whether this should be handled in this PR or separately in liboqs. |
Signed-off-by: 0rlych1kk4 <orlychikka@gmail.com>
|
@xuganyu96 @baentsch Current status after 40c20cc:
I will wait for maintainer guidance before reintroducing any macOS-specific guard, since that changes the behavior of |
|
@0rlych1kk4 When looking at the failing job, I see this line:
That confuses me: Shouldn't liboqs be at 0.16.0? How can this then build against alg names only introduced in 0.16.? Or is the output wrong/hard-coded? Anyway, I think the best way forward is to create a reproducer bug report in liboqs as that project is a bit more actively maintained than this one. |
|
Hi @baentsch I checked the branch locally. The liboqs submodule is at b5df1810314b69ac6a2e59712701be73c5081f9d, which reports 0.16.0-rc1-1-gb5df18103. |
|
@baentsch Follow-up: I verified the generated bindings from the same submodule revision. liboqs defines OQS_KEM_alg_hqc_1, OQS_KEM_alg_hqc_3, and OQS_KEM_alg_hqc_5, and cargo build -p oqs-sys generates those same constants. The old SPHINCS+ identifiers are not present. |
Thanks for the update @0rlych1kk4 -- but please remember: I have zero knowledge of Rust. I'm just chiming in here to help move this forward in the absence of a true maintainer. In simple terms: Can you fix the "stale package metadata" issue? Can you reproduce a real macos build flaw in |
@baentsch Understood. For the stale metadata, I can prepare an update, but changing oqs-sys v0.11.0+liboqs-0.13.0 may need to be coordinated with the crate’s next version because it is part of the published package version. It also would only correct the displayed metadata; it would not change which liboqs revision is compiled or fix CI by itself. |
@baentsch I ran the exact failing Cargo command locally on an ARM64 Mac with Apple Clang 21:
It completed successfully with all 615 unit tests and 5 doctests passing, so I could not reproduce the native failure locally. I’ll report this upstream as a GitHub Actions macOS ARM64 reproducer, including the exact CMake flags and Apple Clang error, while clearly noting that it does not reproduce on my local ARM64 setup. |
@baentsch I opened open-quantum-safe/liboqs#2506 with the GitHub Actions macOS ARM64 failure, including the exact CMake flags, Apple Clang diagnostics, and the successful local comparison. |
@baentsch For the stale oqs-sys v0.11.0+liboqs-0.13.0 metadata, should I update it as part of #309, or would you prefer it in a separate follow-up change? |
I'm personally a big fan of less work; in this case, fewer PRs -- if the scope creep isn't too big (say a few lines of code), i.e., the former. |
Signed-off-by: 0rlych1kk4 <orlychikka@gmail.com>
@baentsch I updated the bundled liboqs version metadata in #309. cargo check --workspace --all-features passes, and the targeted feature test completed with 615 unit tests and 5 doctests passing locally. |
|
Can you update the PR description to reflect the change of not transparently mapping SPHINCS+ to SLH-DSA? |
Claude suggests to me that maybe it's a stack exhaustion issue, and could be resolved by increasing this line: liboqs-rust/.github/workflows/ci.yml Line 36 in a40e1d3 |
|
liboqs-0.16.0 has more algorithms than are exposed in this wrapper. Do you want include that in this PR or a later one? |
Signed-off-by: 0rlych1kk4 <orlychikka@gmail.com>
Updated the PR description to clarify that the removed SPHINCS+ identifiers are not transparently mapped to SLH-DSA. Callers must migrate explicitly to the new SLH-DSA names. |
I did not increase the Windows stack size because the failure only returned a generic signing error and did not provide evidence of stack exhaustion. Instead, I changed the affected Windows tests to be explicitly reported as ignored rather than returning Ok(()). The ignore is limited to the three signing tests for the six SLH-DSA SHA-2 variants; SHAKE and unrelated signature tests still run normally. |
I suggest handling the additional liboqs algorithms in a follow-up PR. This PR is already focused on the HQC and SLH-DSA renames, build compatibility, and the required submodule update. I’d be happy to take on the additional algorithm coverage separately. |
|
@dstebila Thank you for the review and approval. |
baentsch
left a comment
There was a problem hiding this comment.
Thanks for the effort and bearing with me non-Rust-ite, @0rlych1kk4 !
Are you sure about this @dstebila ? Just for the fun of it, I added a 2nd approval again but to no avail: Looks like there's no way this can be merged... :-/ Little reminder: open-quantum-safe/tsc#221 and open-quantum-safe/tsc#316 didn't really conclude... so tagging @RodriM11 with another case in point (or meeting agenda topic -- or just plain formulation of procedure to approve: Discussions already happened... :). |
Thank you, @baentsch . I really appreciate your review, suggestions, and patience throughout the process. Your feedback helped make the PR stronger. |
|
@dstebila Thank you as well for the detailed review and approval. I appreciate the guidance and would be glad to help with follow-up liboqs-rust work. |
I can merge this, but before doing so I want to diagnose what's going on with you not being able to merge. liboqs-rust is slightly different from other repositories in that it uses the merge queue feature. Here's the screenshot of what I currently see; do you see similar?
|
The Settings for liboqs-rust restricts who can push to main to maintainers & release-managers. I've added oqs-committers, which you are in. Does this now work for you? |
|
@dstebila @baentsch Just following up on #309. The PR still has two approvals and all 21 checks passing, but GitHub continues to show the merge as blocked. Is there anything further needed from my side, or is this only waiting on the repository merge-permission configuration? Thanks again for your help. |
|
@0rlych1kk4 Apologies, as far as I was concerned, this was a permissions problem (I simply couldn't merge) -- that had been resolved by now apparently... But if I'm not tagged, I typically don't get to see things regarding this project. So this is now merged: Thanks for your contribution and perseverance! This project clearly is in need of a knowledgeable person taking care of it. Would you be willing to take a look at open-quantum-safe/tsc#333, possibly comment from the perspective of someone affected by this? Maybe even possibly state your interest to become a Committer here? |
|
@baentsch Thank you very much for the encouragement and for getting #309 merged. I’d be happy to take a look at open-quantum-safe/tsc#333 and comment from the perspective of someone affected by the current maintenance situation. I’m also interested in becoming a Committer for liboqs-rust and helping with its ongoing maintenance. I am continuing with #310 and would be glad to take on additional wrapper, CI, and algorithm-support work as needed. |
Much appreciated @0rlych1kk4 ! Are you aware of the regular OQS status meetings (https://pqca.org/calendar/: Typically Tuesday afternoon CET)? Participation helps to better understand current project status, people and needs/limitations. |
|
@baentsch Thank you. I wasn’t aware of the regular OQS status meetings. I’d be glad to join and participate so I can better understand the current project status, priorities, and maintenance needs. I’ll check the calendar and plan to attend the next meeting. |
|
Great @0rlych1kk4 ! fwiw, you may want to consider attending the meeting in a week's time then: The next meeting (15.9.) is no OQS status meeting but a steering committee meeting. Also open to everyone to attend, but different topics. Also, you may want to pick one that suits your time zone best. |
|
Thanks @baentsch , that makes sense. I’ll aim for the regular OQS status meeting the following week and choose the session that works best for my time zone. |


Summary
This PR updates the Rust wrapper for the current liboqs algorithm names.
Changes
Hqc1,Hqc3, andHqc5.slh_dsaRust feature andOQS_ENABLE_SIG_SLH_DSACMake option.