Repository navigation
Add liboqs integration support for QR-UOV - #1
0rlych1kk4 wants to merge 12 commits into
Conversation
Route QR-UOV SHAKE, AES and memory cleansing through liboqs when QRUOV_PRIM_OQS is enabled. Based on the liboqs adapter patch shared by GitHub contributor @paschal533.
Add namespaced ref, opt and AVX2 integration adapters and metadata for all 30 Round 3 QR-UOV parameter and PRG combinations.
Signed-off-by: 0rlych1kk4 <orlychikka@gmail.com>
Signed-off-by: 0rlych1kk4 <orlychikka@gmail.com>
Signed-off-by: 0rlych1kk4 <orlychikka@gmail.com>
|
@qruov @baentsch The corresponding liboqs integration PR is now under review, and one remaining review item is to replace the temporary fork pin with the official qruov/round3 repository. |
baentsch
left a comment
There was a problem hiding this comment.
fwiw, LGTM; see 2 small separate comments and one basic question: Did all these .yml files get manually created? If so, would it be worth while considering a script to re-do them as/when the need arises to limit the possibility for the introduction of errors? (this also to admit that I didn't read them all ... :-]
Yes, the 30 META files were created from the parameter-set pattern rather than from a committed generator. I agree a small generator would make updates safer and reduce copy/paste errors. If you think that would be useful here, I can add one under integration/liboqs/ that generates the META files from the 15 parameter sets × 2 PRGs and verify that it reproduces the current files exactly. |
Again, just my personal preference (of automating as much as possible to eliminate possible errors in the future. But AI may be an alternative to this :-) |
Understood. I’ll keep the generator as a possible follow-up rather than expanding this PR further. |
|
@0rlych1kk4 two things, and neither is a request to change this PR. I know you want to keep it to the integration. Constant time. On liboqs #2582 you said you'd raise the linsys.c constant-time question with the QR-UOV maintainers. Did that come up when the team joined the status call? Once liboqs' extended tests ran valgrind over QR-UOV, they flagged three secret-dependent spots. These are now recorded as known issues on 0rlych1kk4/liboqs#1:
For opt stack, namespacing and wipes. https://github.com/paschal533/round3/tree/fix/review-findings has 8 commits against 36e9a7e:
Sign and verify don't allocate, given @baentsch's point about alloc/free per sign. Only keygen uses the heap. KATs are unchanged there too. Would you like these as a follow-up PR against qruov/round3 once this one lands, or would the QR-UOV team rather take them another way? |
Thanks for digging into these. I agree these should stay separate from the integration PR. The stack-usage issue, namespacing fixes, and keygen wipes likewise look appropriate for a separate follow-up PR against qruov/round3. Thanks also for confirming that sign/verify don’t allocate and that the heap usage is limited to keygen. |
|
Hi @baentsch , do you know who on the QR-UOV side is expected to review #1, or whether there’s an expected timeline for that review? |
|
Hi @0rlych1kk4 , no I have no idea. I had hoped to establish a link between all involved participants in the call on Tuesday, but the QR-UOV Team didn't seem to have a GH account and your microphone didn't work. I see two ways forward: We manage to get the upstream team to get to use GH or we establish email communication between you and the QR-UOV Team. The former is clearly preferable but the latter may be the only way to move forward. Tagging @RodriM11 to establish the email contact that only he has with the QR-UOV team (making the problem with this approach obvious: Only a subset of the required people get the information -- in this case, no-one, so far :]. |
How to proceed is something I would like to discuss at the next Status Meeting. I believe the QR UOV people will have to wait until the date they presented at Tuesday's SM before being part of the inclusion effort. But IMO we could proceed with the PR in |
Thanks, that makes sense. I’m fine with proceeding in liboqs using the current fork pin if that’s the agreed path, and I can switch it to the official QR-UOV repository/commit once their upstream integration is available. |
Signed-off-by: 0rlych1kk4 <orlychikka@gmail.com>
This PR adds the QR-UOV integration layer required for inclusion in liboqs.
It includes:
Validation performed:
The primitive backend changes are based on the liboqs adapter work shared by @paschal533 .
The macOS-specific src/util.h workaround is intentionally not included in this PR.