Clear ML-KEM outputs on KEM failure#1769
Conversation
CBMC Results (ML-KEM-512)Full Results (191 proofs)
|
CBMC Results (ML-KEM-768)Full Results (191 proofs)
|
CBMC Results (ML-KEM-1024)Full Results (191 proofs)
|
Zero caller-visible keypair, encapsulation, and decapsulation outputs whenever the public KEM paths return an error. Add regression test coverage for RNG failure, invalid key validation, and allocation-failure cleanup so stale caller buffers cannot be mistaken for successful outputs. Verification: - pre-fix targeted tests reproduced uncleared output on RNG and invalid-key paths - make run_rng_fail - make run_func - make run_alloc Co-authored-by: Codex <codex@openai.com> Signed-off-by: Joe Doyle <joseph.doyle@trailofbits.com>
3e3a920 to
e53c19c
Compare
oqs-bot
left a comment
There was a problem hiding this comment.
Mac Mini (M1, 2020) benchmarks
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
12315 cycles |
12317 cycles |
1.00 |
ML-KEM-512 encaps |
14759 cycles |
14761 cycles |
1.00 |
ML-KEM-512 decaps |
19313 cycles |
19316 cycles |
1.00 |
ML-KEM-768 keypair |
21266 cycles |
21262 cycles |
1.00 |
ML-KEM-768 encaps |
23485 cycles |
23509 cycles |
1.00 |
ML-KEM-768 decaps |
30033 cycles |
30053 cycles |
1.00 |
ML-KEM-1024 keypair |
30319 cycles |
30315 cycles |
1.00 |
ML-KEM-1024 encaps |
34084 cycles |
34082 cycles |
1.00 |
ML-KEM-1024 decaps |
43701 cycles |
43695 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Intel Xeon 4th gen (c7i)
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
11782 cycles |
11782 cycles |
1 |
ML-KEM-512 encaps |
13076 cycles |
13074 cycles |
1.00 |
ML-KEM-512 decaps |
17026 cycles |
17046 cycles |
1.00 |
ML-KEM-768 keypair |
19420 cycles |
19384 cycles |
1.00 |
ML-KEM-768 encaps |
20591 cycles |
20603 cycles |
1.00 |
ML-KEM-768 decaps |
26286 cycles |
26347 cycles |
1.00 |
ML-KEM-1024 keypair |
28106 cycles |
28160 cycles |
1.00 |
ML-KEM-1024 encaps |
30453 cycles |
30391 cycles |
1.00 |
ML-KEM-1024 decaps |
37662 cycles |
37658 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
ppc64le (POWER10) benchmarks
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
38203 cycles |
38902 cycles |
0.98 |
ML-KEM-512 encaps |
43831 cycles |
44922 cycles |
0.98 |
ML-KEM-512 decaps |
54353 cycles |
55002 cycles |
0.99 |
ML-KEM-768 keypair |
69387 cycles |
68715 cycles |
1.01 |
ML-KEM-768 encaps |
78019 cycles |
77989 cycles |
1.00 |
ML-KEM-768 decaps |
92879 cycles |
92587 cycles |
1.00 |
ML-KEM-1024 keypair |
107859 cycles |
109182 cycles |
0.99 |
ML-KEM-1024 encaps |
118317 cycles |
120044 cycles |
0.99 |
ML-KEM-1024 decaps |
137296 cycles |
138458 cycles |
0.99 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
AMD EPYC 4th gen (c7a)
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
12782 cycles |
12800 cycles |
1.00 |
ML-KEM-512 encaps |
14216 cycles |
14238 cycles |
1.00 |
ML-KEM-512 decaps |
18992 cycles |
18990 cycles |
1.00 |
ML-KEM-768 keypair |
21546 cycles |
21562 cycles |
1.00 |
ML-KEM-768 encaps |
22717 cycles |
22734 cycles |
1.00 |
ML-KEM-768 decaps |
29679 cycles |
29801 cycles |
1.00 |
ML-KEM-1024 keypair |
30609 cycles |
30521 cycles |
1.00 |
ML-KEM-1024 encaps |
32592 cycles |
32789 cycles |
0.99 |
ML-KEM-1024 decaps |
41852 cycles |
41969 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
AMD EPYC 3rd gen (c6a)
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
14454 cycles |
14447 cycles |
1.00 |
ML-KEM-512 encaps |
15940 cycles |
15938 cycles |
1.00 |
ML-KEM-512 decaps |
21336 cycles |
21342 cycles |
1.00 |
ML-KEM-768 keypair |
23785 cycles |
23776 cycles |
1.00 |
ML-KEM-768 encaps |
25205 cycles |
25221 cycles |
1.00 |
ML-KEM-768 decaps |
32955 cycles |
32971 cycles |
1.00 |
ML-KEM-1024 keypair |
33333 cycles |
33389 cycles |
1.00 |
ML-KEM-1024 encaps |
35852 cycles |
35885 cycles |
1.00 |
ML-KEM-1024 decaps |
46153 cycles |
46154 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Graviton5
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
13466 cycles |
13450 cycles |
1.00 |
ML-KEM-512 encaps |
15783 cycles |
15780 cycles |
1.00 |
ML-KEM-512 decaps |
21307 cycles |
21311 cycles |
1.00 |
ML-KEM-768 keypair |
22907 cycles |
22906 cycles |
1.00 |
ML-KEM-768 encaps |
25221 cycles |
25223 cycles |
1.00 |
ML-KEM-768 decaps |
33163 cycles |
33170 cycles |
1.00 |
ML-KEM-1024 keypair |
33229 cycles |
33229 cycles |
1 |
ML-KEM-1024 encaps |
37051 cycles |
37040 cycles |
1.00 |
ML-KEM-1024 decaps |
47069 cycles |
47101 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Graviton4
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
17696 cycles |
17689 cycles |
1.00 |
ML-KEM-512 encaps |
20601 cycles |
20598 cycles |
1.00 |
ML-KEM-512 decaps |
27034 cycles |
27018 cycles |
1.00 |
ML-KEM-768 keypair |
29903 cycles |
29895 cycles |
1.00 |
ML-KEM-768 encaps |
32636 cycles |
32637 cycles |
1.00 |
ML-KEM-768 decaps |
41905 cycles |
41918 cycles |
1.00 |
ML-KEM-1024 keypair |
43710 cycles |
43721 cycles |
1.00 |
ML-KEM-1024 encaps |
48694 cycles |
48676 cycles |
1.00 |
ML-KEM-1024 decaps |
61312 cycles |
61385 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Intel Xeon 4th gen (c7i) (no-opt)
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
27601 cycles |
27625 cycles |
1.00 |
ML-KEM-512 encaps |
35423 cycles |
35524 cycles |
1.00 |
ML-KEM-512 decaps |
44495 cycles |
44177 cycles |
1.01 |
ML-KEM-768 keypair |
44178 cycles |
44179 cycles |
1.00 |
ML-KEM-768 encaps |
55105 cycles |
55063 cycles |
1.00 |
ML-KEM-768 decaps |
68162 cycles |
68157 cycles |
1.00 |
ML-KEM-1024 keypair |
67834 cycles |
67908 cycles |
1.00 |
ML-KEM-1024 encaps |
79046 cycles |
78978 cycles |
1.00 |
ML-KEM-1024 decaps |
96269 cycles |
96169 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Arm Cortex-A76 (Raspberry Pi 5) benchmarks
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
28235 cycles |
28241 cycles |
1.00 |
ML-KEM-512 encaps |
34126 cycles |
34125 cycles |
1.00 |
ML-KEM-512 decaps |
44484 cycles |
44474 cycles |
1.00 |
ML-KEM-768 keypair |
47614 cycles |
47612 cycles |
1.00 |
ML-KEM-768 encaps |
53856 cycles |
53863 cycles |
1.00 |
ML-KEM-768 decaps |
68527 cycles |
68519 cycles |
1.00 |
ML-KEM-1024 keypair |
70225 cycles |
70247 cycles |
1.00 |
ML-KEM-1024 encaps |
78537 cycles |
78707 cycles |
1.00 |
ML-KEM-1024 decaps |
98340 cycles |
98275 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Intel Xeon 3rd gen (c6i)
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
17925 cycles |
17845 cycles |
1.00 |
ML-KEM-512 encaps |
20043 cycles |
20030 cycles |
1.00 |
ML-KEM-512 decaps |
26727 cycles |
26634 cycles |
1.00 |
ML-KEM-768 keypair |
29981 cycles |
29953 cycles |
1.00 |
ML-KEM-768 encaps |
31775 cycles |
32797 cycles |
0.97 |
ML-KEM-768 decaps |
41376 cycles |
41404 cycles |
1.00 |
ML-KEM-1024 keypair |
42124 cycles |
41901 cycles |
1.01 |
ML-KEM-1024 encaps |
45159 cycles |
45156 cycles |
1.00 |
ML-KEM-1024 decaps |
58014 cycles |
57962 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Graviton5 (no-opt)
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
27456 cycles |
27482 cycles |
1.00 |
ML-KEM-512 encaps |
31607 cycles |
31685 cycles |
1.00 |
ML-KEM-512 decaps |
40586 cycles |
40494 cycles |
1.00 |
ML-KEM-768 keypair |
44421 cycles |
44189 cycles |
1.01 |
ML-KEM-768 encaps |
50600 cycles |
50702 cycles |
1.00 |
ML-KEM-768 decaps |
62271 cycles |
62155 cycles |
1.00 |
ML-KEM-1024 keypair |
67961 cycles |
67980 cycles |
1.00 |
ML-KEM-1024 encaps |
76107 cycles |
76068 cycles |
1.00 |
ML-KEM-1024 decaps |
90835 cycles |
90823 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
AMD EPYC 4th gen (c7a) (no-opt)
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
36785 cycles |
36813 cycles |
1.00 |
ML-KEM-512 encaps |
42808 cycles |
42853 cycles |
1.00 |
ML-KEM-512 decaps |
55581 cycles |
55615 cycles |
1.00 |
ML-KEM-768 keypair |
58007 cycles |
58061 cycles |
1.00 |
ML-KEM-768 encaps |
66888 cycles |
66948 cycles |
1.00 |
ML-KEM-768 decaps |
83583 cycles |
83605 cycles |
1.00 |
ML-KEM-1024 keypair |
88626 cycles |
88614 cycles |
1.00 |
ML-KEM-1024 encaps |
99129 cycles |
99080 cycles |
1.00 |
ML-KEM-1024 decaps |
120532 cycles |
120589 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
AMD EPYC 3rd gen (c6a) (no-opt)
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
40275 cycles |
40223 cycles |
1.00 |
ML-KEM-512 encaps |
48397 cycles |
48357 cycles |
1.00 |
ML-KEM-512 decaps |
62176 cycles |
62181 cycles |
1.00 |
ML-KEM-768 keypair |
62593 cycles |
62612 cycles |
1.00 |
ML-KEM-768 encaps |
74811 cycles |
74816 cycles |
1.00 |
ML-KEM-768 decaps |
92698 cycles |
92404 cycles |
1.00 |
ML-KEM-1024 keypair |
94947 cycles |
95043 cycles |
1.00 |
ML-KEM-1024 encaps |
109993 cycles |
109922 cycles |
1.00 |
ML-KEM-1024 decaps |
132395 cycles |
132339 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Graviton4 (no-opt)
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
35222 cycles |
35282 cycles |
1.00 |
ML-KEM-512 encaps |
39972 cycles |
40021 cycles |
1.00 |
ML-KEM-512 decaps |
50657 cycles |
50625 cycles |
1.00 |
ML-KEM-768 keypair |
56402 cycles |
56807 cycles |
0.99 |
ML-KEM-768 encaps |
63947 cycles |
64051 cycles |
1.00 |
ML-KEM-768 decaps |
78552 cycles |
78497 cycles |
1.00 |
ML-KEM-1024 keypair |
87333 cycles |
87382 cycles |
1.00 |
ML-KEM-1024 encaps |
96690 cycles |
96680 cycles |
1.00 |
ML-KEM-1024 decaps |
114724 cycles |
114713 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Graviton2
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
28262 cycles |
28236 cycles |
1.00 |
ML-KEM-512 encaps |
34137 cycles |
34121 cycles |
1.00 |
ML-KEM-512 decaps |
44497 cycles |
44478 cycles |
1.00 |
ML-KEM-768 keypair |
47617 cycles |
47613 cycles |
1.00 |
ML-KEM-768 encaps |
53863 cycles |
53871 cycles |
1.00 |
ML-KEM-768 decaps |
68546 cycles |
68553 cycles |
1.00 |
ML-KEM-1024 keypair |
70274 cycles |
70255 cycles |
1.00 |
ML-KEM-1024 encaps |
78561 cycles |
78635 cycles |
1.00 |
ML-KEM-1024 decaps |
98427 cycles |
98286 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Graviton3
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
18682 cycles |
18664 cycles |
1.00 |
ML-KEM-512 encaps |
21858 cycles |
21853 cycles |
1.00 |
ML-KEM-512 decaps |
28846 cycles |
28830 cycles |
1.00 |
ML-KEM-768 keypair |
31577 cycles |
31576 cycles |
1.00 |
ML-KEM-768 encaps |
34684 cycles |
34667 cycles |
1.00 |
ML-KEM-768 decaps |
44783 cycles |
44804 cycles |
1.00 |
ML-KEM-1024 keypair |
46139 cycles |
46148 cycles |
1.00 |
ML-KEM-1024 encaps |
51475 cycles |
51480 cycles |
1.00 |
ML-KEM-1024 decaps |
65007 cycles |
64973 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Intel Xeon 3rd gen (c6i) (no-opt)
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
46776 cycles |
46758 cycles |
1.00 |
ML-KEM-512 encaps |
55581 cycles |
55519 cycles |
1.00 |
ML-KEM-512 decaps |
71267 cycles |
71169 cycles |
1.00 |
ML-KEM-768 keypair |
74514 cycles |
74349 cycles |
1.00 |
ML-KEM-768 encaps |
85921 cycles |
85841 cycles |
1.00 |
ML-KEM-768 decaps |
107080 cycles |
107017 cycles |
1.00 |
ML-KEM-1024 keypair |
111418 cycles |
111396 cycles |
1.00 |
ML-KEM-1024 encaps |
126132 cycles |
126045 cycles |
1.00 |
ML-KEM-1024 decaps |
152253 cycles |
152018 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Graviton3 (no-opt)
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
38913 cycles |
38898 cycles |
1.00 |
ML-KEM-512 encaps |
44395 cycles |
44385 cycles |
1.00 |
ML-KEM-512 decaps |
56205 cycles |
56204 cycles |
1.00 |
ML-KEM-768 keypair |
62239 cycles |
62493 cycles |
1.00 |
ML-KEM-768 encaps |
70434 cycles |
70438 cycles |
1.00 |
ML-KEM-768 decaps |
86365 cycles |
86367 cycles |
1.00 |
ML-KEM-1024 keypair |
95824 cycles |
95885 cycles |
1.00 |
ML-KEM-1024 encaps |
106123 cycles |
106089 cycles |
1.00 |
ML-KEM-1024 decaps |
125768 cycles |
125741 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
Graviton2 (no-opt)
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
58714 cycles |
58656 cycles |
1.00 |
ML-KEM-512 encaps |
68580 cycles |
68467 cycles |
1.00 |
ML-KEM-512 decaps |
87338 cycles |
87424 cycles |
1.00 |
ML-KEM-768 keypair |
94844 cycles |
94440 cycles |
1.00 |
ML-KEM-768 encaps |
109215 cycles |
108775 cycles |
1.00 |
ML-KEM-768 decaps |
133998 cycles |
133747 cycles |
1.00 |
ML-KEM-1024 keypair |
150849 cycles |
150981 cycles |
1.00 |
ML-KEM-1024 encaps |
165260 cycles |
165617 cycles |
1.00 |
ML-KEM-1024 decaps |
198740 cycles |
198909 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
oqs-bot
left a comment
There was a problem hiding this comment.
SpacemiT K1 8 (Banana Pi F3) benchmarks
Details
| Benchmark suite | Current: e53c19c | Previous: 0922724 | Ratio |
|---|---|---|---|
ML-KEM-512 keypair |
143663 cycles |
142990 cycles |
1.00 |
ML-KEM-512 encaps |
151991 cycles |
151336 cycles |
1.00 |
ML-KEM-512 decaps |
190580 cycles |
189617 cycles |
1.01 |
ML-KEM-768 keypair |
233063 cycles |
233048 cycles |
1.00 |
ML-KEM-768 encaps |
250269 cycles |
250226 cycles |
1.00 |
ML-KEM-768 decaps |
304891 cycles |
304913 cycles |
1.00 |
ML-KEM-1024 keypair |
365487 cycles |
365541 cycles |
1.00 |
ML-KEM-1024 encaps |
387942 cycles |
387905 cycles |
1.00 |
ML-KEM-1024 decaps |
458209 cycles |
458300 cycles |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
Summary
Testing
Related: pq-code-package/mldsa-native#1242 applies the same output-clearing behavior to ML-DSA signing failure paths.
Co-authored-by: Codex codex@openai.com
Signed-off-by: Joe Doyle joseph.doyle@trailofbits.com
This work was completed by Trail of Bits as part of the Patch The Planet project in collaboration with OpenAI. The issue was identified primarily by the Codex coding agent, and manually reviewed before submission.