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

open-quantum-safe / liboqs / 39620696458
81%

Build:
DEFAULT BRANCH: main
Ran 21 Oct 2026 03:03PM UTC
Jobs 3
Files 2564
Run time 2min
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 Oct 2026 02:52PM UTC coverage: 81.034% (-3.4%) from 84.466%
39620696458

push

github

web-flow
Add QR-UOV signature schemes (#2582)

* Add QR-UOV signature schemes

Signed-off-by: 0rlych1kk4 <orlychikka@gmail.com>

* test(kats): record the 30 missing QR-UOV all digests

Every QR-UOV entry in tests/KATs/sig/kats.json carried only `single`,
while all 77 pre-existing signature entries carry both `single` and
`all`. tests/test_kat_all.py reads `kats[name]['all']` with no guard, so
it failed 30 times with KeyError rather than reporting a data problem.

The digests were computed with the method test_kat_all.py itself uses, a
sha256 over `kat_sig <alg> --all` with CRLF normalised, cross-checked for
one scheme against a direct reimplementation of that test. Each of the
30 outputs also reconstructs to the corresponding published Round 3
PQCsignKAT_32.rsp hash in qruov/round3@3d84d0f, so they are not merely
self-consistent with this tree.

They were computed on an avx2 build. `single` already agrees across ref,
opt and avx2 for all 30, and `--all` differs only in running 100 vectors
where `single` runs one, so the digests should not depend on the
implementation; the matrix added alongside this checks that on ref and
opt rather than assuming it.

test_kats_json.py then makes a missing digest fail as what it is. It
reads the json alone, so it needs no build and runs on every platform,
and it names the algorithms at fault instead of surfacing as a KeyError
inside an unrelated test.

Signed-off-by: paschal533 <okwuosahpaschal@gmail.com>

* test(cmake): fail when an implementation ships that no option can enable

src/sig/qruov/CMakeLists.txt tests OQS_ENABLE_SIG_qruov_<scheme>_opt in
30 places and .CMake/alg_support.cmake declares no such option, so the
condition is false in every configuration. The 30 opt directories, and
the shared qruov_qruov_opt, ship in the tarball and are compiled
nowhere. Nothing notices: the build succeeds and the KATs pass on
whichever implementation was selected, because all three produce
identical vectors.

The check compares the o... (continued)

10142 of 10532 new or added lines in 113 files covered. (96.3%)

881 existing lines in 33 files now uncovered.

186417 of 230049 relevant lines covered (81.03%)

4086986.36 hits per line

Uncovered Changes

Lines Coverage ∆ File
64
92.42
src/sig/qruov/qruov_qruov_avx2/kernel.c
35
20.45
src/sig/qruov/qruov_qruov_common/sign.c
30
85.63
0.61% tests/kat_sig.c
7
97.75
src/sig/qruov/qruov_qruov_avx2/helpers.c
7
93.07
src/sig/qruov/qruov_qruov_common/linsys.c
3
90.91
src/sig/qruov/qruov_qruov_1q127L10_aes_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q127L10_aes_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q127L10_shake_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q127L10_shake_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q127L3_aes_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q127L3_aes_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q127L3_shake_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q127L3_shake_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q31L10_aes_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q31L10_aes_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q31L10_shake_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q31L10_shake_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q31L3_aes_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q31L3_aes_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q31L3_shake_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q31L3_shake_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q7L10_aes_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q7L10_aes_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q7L10_shake_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_1q7L10_shake_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q127L10_aes_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q127L10_aes_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q127L10_shake_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q127L10_shake_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q127L3_aes_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q127L3_aes_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q127L3_shake_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q127L3_shake_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q31L10_aes_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q31L10_aes_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q31L10_shake_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q31L10_shake_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q31L3_aes_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q31L3_aes_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q31L3_shake_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q31L3_shake_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q7L10_aes_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q7L10_aes_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q7L10_shake_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_3q7L10_shake_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q127L10_aes_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q127L10_aes_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q127L10_shake_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q127L10_shake_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q127L3_aes_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q127L3_aes_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q127L3_shake_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q127L3_shake_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q31L10_aes_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q31L10_aes_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q31L10_shake_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q31L10_shake_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q31L3_aes_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q31L3_aes_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q31L3_shake_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q31L3_shake_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q7L10_aes_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q7L10_aes_ref/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q7L10_shake_avx2/signature.c
3
90.91
src/sig/qruov/qruov_qruov_5q7L10_shake_ref/signature.c
2
98.78
src/sig/qruov/qruov_qruov_avx2/qruov.c
2
97.67
src/sig/qruov/qruov_qruov_common/qruov_common.c
2
97.37
src/sig/qruov/qruov_qruov_ref/qruov.c
2
94.87
src/sig/qruov/sig_qruov_1q127L10aes.c
2
94.87
src/sig/qruov/sig_qruov_1q127L10shake.c
2
94.87
src/sig/qruov/sig_qruov_1q127L3aes.c
2
94.87
src/sig/qruov/sig_qruov_1q127L3shake.c
2
94.87
src/sig/qruov/sig_qruov_1q31L10aes.c
2
94.87
src/sig/qruov/sig_qruov_1q31L10shake.c
2
94.87
src/sig/qruov/sig_qruov_1q31L3aes.c
2
94.87
src/sig/qruov/sig_qruov_1q31L3shake.c
2
94.87
src/sig/qruov/sig_qruov_1q7L10aes.c
2
94.87
src/sig/qruov/sig_qruov_1q7L10shake.c
2
94.87
src/sig/qruov/sig_qruov_3q127L10aes.c
2
94.87
src/sig/qruov/sig_qruov_3q127L10shake.c
2
94.87
src/sig/qruov/sig_qruov_3q127L3aes.c
2
94.87
src/sig/qruov/sig_qruov_3q127L3shake.c
2
94.87
src/sig/qruov/sig_qruov_3q31L10aes.c
2
94.87
src/sig/qruov/sig_qruov_3q31L10shake.c
2
94.87
src/sig/qruov/sig_qruov_3q31L3aes.c
2
94.87
src/sig/qruov/sig_qruov_3q31L3shake.c
2
94.87
src/sig/qruov/sig_qruov_3q7L10aes.c
2
94.87
src/sig/qruov/sig_qruov_3q7L10shake.c
2
94.87
src/sig/qruov/sig_qruov_5q127L10aes.c
2
94.87
src/sig/qruov/sig_qruov_5q127L10shake.c
2
94.87
src/sig/qruov/sig_qruov_5q127L3aes.c
2
94.87
src/sig/qruov/sig_qruov_5q127L3shake.c
2
94.87
src/sig/qruov/sig_qruov_5q31L10aes.c
2
94.87
src/sig/qruov/sig_qruov_5q31L10shake.c
2
94.87
src/sig/qruov/sig_qruov_5q31L3aes.c
2
94.87
src/sig/qruov/sig_qruov_5q31L3shake.c
2
94.87
src/sig/qruov/sig_qruov_5q7L10aes.c
2
94.87
src/sig/qruov/sig_qruov_5q7L10shake.c
1
97.96
src/sig/qruov/qruov_qruov_ref/fastop.h

Coverage Regressions

Lines Coverage ∆ File
624
41.93
-56.05% src/sig/sig.c
57
64.52
-13.13% src/sig/ml_dsa/mldsa-native_ml-dsa-87_ref/mldsa/src/sign.c
55
64.81
-12.73% src/sig/ml_dsa/mldsa-native_ml-dsa-44_ref/mldsa/src/sign.c
55
64.9
-12.7% src/sig/ml_dsa/mldsa-native_ml-dsa-65_ref/mldsa/src/sign.c
18
63.1
-21.43% src/kem/ml_kem/mlkem-native_ml-kem-512_x86_64/mlkem/src/sampling.c
18
70.59
-26.47% src/kem/ml_kem/mlkem-native_ml-kem-768_x86_64/mlkem/src/sampling.c
5
77.22
-6.33% src/kem/ml_kem/mlkem-native_ml-kem-512_ref/mlkem/src/sampling.c
5
88.89
-7.94% src/kem/ml_kem/mlkem-native_ml-kem-768_ref/mlkem/src/sampling.c
4
95.53
-0.35% src/sig/falcon/pqclean_falcon-padded-512_avx2/keygen.c
4
92.98
-7.02% src/sig/ml_dsa/mldsa-native_ml-dsa-87_ref/mldsa/src/packing.c
3
64.81
-0.69% src/sig/ml_dsa/mldsa-native_ml-dsa-44_x86_64/mldsa/src/sign.c
3
94.74
-5.26% src/sig/ml_dsa/mldsa-native_ml-dsa-65_x86_64/mldsa/src/packing.c
3
64.9
-0.69% src/sig/ml_dsa/mldsa-native_ml-dsa-65_x86_64/mldsa/src/sign.c
3
64.98
-0.69% src/sig/ml_dsa/mldsa-native_ml-dsa-87_x86_64/mldsa/src/sign.c
2
84.09
-0.57% src/sig/mayo/pqmayo_mayo-2_avx2/mayo.c
2
96.49
-3.51% src/sig/ml_dsa/mldsa-native_ml-dsa-44_ref/mldsa/src/packing.c
2
96.49
-3.51% src/sig/ml_dsa/mldsa-native_ml-dsa-65_ref/mldsa/src/packing.c
2
96.49
-3.51% src/sig/ml_dsa/mldsa-native_ml-dsa-87_x86_64/mldsa/src/packing.c
2
67.44
0.93% tests/test_sig.c
1
96.08
-1.96% src/kem/classic_mceliece/pqclean_mceliece348864_avx2/encrypt.c
1
96.23
-0.09% src/sig/falcon/pqclean_falcon-1024_avx2/keygen.c
1
76.7
-0.49% src/sig/falcon/pqclean_falcon-1024_avx2/vrfy.c
1
95.53
-0.09% src/sig/falcon/pqclean_falcon-512_avx2/keygen.c
1
96.23
-0.09% src/sig/falcon/pqclean_falcon-padded-1024_avx2/keygen.c
1
76.7
-0.49% src/sig/falcon/pqclean_falcon-padded-1024_avx2/vrfy.c
1
96.15
-3.85% src/sig/mayo/pqmayo_mayo-2_avx2/arithmetic.c
1
98.25
-1.75% src/sig/ml_dsa/mldsa-native_ml-dsa-44_x86_64/mldsa/src/packing.c
1
33.33
-4.17% src/sig/ml_dsa/mldsa-native_ml-dsa-44_x86_64/mldsa/src/rounding.h
1
95.83
-4.17% src/sig/ml_dsa/mldsa-native_ml-dsa-65_ref/mldsa/src/rounding.h
1
33.33
-4.17% src/sig/ml_dsa/mldsa-native_ml-dsa-65_x86_64/mldsa/src/rounding.h
1
33.33
-4.17% src/sig/ml_dsa/mldsa-native_ml-dsa-87_x86_64/mldsa/src/rounding.h
1
96.3
-1.85% src/sig/uov/pqov_ov_III_avx2/ov.c
1
96.3
-1.85% src/sig/uov/pqov_ov_Is_ref/ov.c
Jobs
ID Job ID Ran Files Coverage
1 x64-generic - 39620696458.1 21 Oct 2026 03:10PM UTC 1146
83.02
GitHub Action Run
2 arm64-distbuild - 39620696458.2 21 Oct 2026 03:05PM UTC 1568
58.56
GitHub Action Run
3 x64-distbuild - 39620696458.3 21 Oct 2026 03:03PM UTC 2139
55.89
GitHub Action Run
Source Files on build 39620696458
  • Tree
  • List 2564
  • Changed 638
  • Source Changed 2
  • Coverage Changed 638
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #39620696458
  • c4d14c90 on github
  • Prev Build on main (#38100682174)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc