• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

open-quantum-safe / liboqs / 24696911032 / 3
82%
main: 82%

Build:
DEFAULT BRANCH: main
Ran 21 Apr 2026 01:26AM UTC
Files 2347
Run time 55s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

21 Apr 2026 12:08AM UTC coverage: 56.393% (-0.1%) from 56.506%
24696911032.3

push

github

web-flow
fix: correct cuPQC ML-KEM derand symbol names and #if/#elif chains (#2396)

* fix: cuPQC ML-KEM derand symbols and #if/#elif chain

cuPQC does not expose keypair_derand or enc_derand variants (only
keypair, enc, dec). ICICLE exposes enc_derand but not keypair_derand.
The generated code was calling nonexistent PQCLEAN_MLKEM*_CUDA_* and
PQCLEAN_MLKEM*_ICICLE_CUDA_* symbols for these derand paths, which
would cause linker errors in cuPQC and ICICLE CUDA builds.

Fix keypair_derand and encaps_derand for the _cuda branch to fall
through to the C reference implementation (#else branch) when the GPU
backend has no derand variant. The ICICLE enc_derand path is correct
and is retained.

Also fix the #if/#elif chain in keypair, encaps, and decaps: the
cuPQC and ICICLE dispatch blocks were emitted as separate #if...#endif
blocks rather than a single #if...#elif chain, producing unreachable
code after a GPU return.

Both the generated .c files and the kem_scheme.c Jinja2 template are
updated so the fix survives the next copy_from_upstream run.

Signed-off-by: Will Bates <william.bates11@outlook.com>
Signed-off-by: Ry Jones <ry@linux.com>

* fix: simplify keypair_derand and encaps_derand template loops

In the kem_scheme.c Jinja2 template, the keypair_derand and
encaps_derand functions were iterating over all non-default
implementations and special-casing cuda/icicle_cuda with a
fallback branch that simply called the default C implementation.
This produced redundant branches in the generated .c files.

Restructure the loops to only include implementations that have
a signature_keypair_derand or signature_enc_derand defined. If an
implementation lacks the relevant derand function, it is skipped
entirely and falls through to the #else default branch. This
removes the redundant PQCLEAN_*_CUDA_* fallback branches and
makes the generated output consistent with the hand-edited
kem_ml_kem_{512,768,1024}.c files already on this branch.

Signed-off-by: Will Bates <william.... (continued)

109437 of 194062 relevant lines covered (56.39%)

2965290.53 hits per line

Source Files on job x64-distbuild - 24696911032.3
  • Tree
  • List 2347
  • Changed 34
  • Source Changed 3
  • Coverage Changed 34
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 24696911032
  • 1ae9cf6f on github
  • Prev Job for on main (#24465628971.3)
  • Next Job for on main (#24726525961.2)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc