Add common dependencies with include_only#2382
Conversation
|
Marking this PR as ready for review. The logic has been tested in #2361. Additionally, I have included a new README for the copy_from_upstream mechanism to assist future contributors. |
- memopt variant of the algorithm allowed using PR open-quantum-safe#2367 - common files for all variants are factorized using PR open-quantum-safe#2382 [extended tests] Signed-off-by: Ryad Benadjila <ryadbenadjila@gmail.com>
- memopt variant of the algorithm allowed using PR open-quantum-safe#2367 - common files for all variants are factorized using PR open-quantum-safe#2382 [extended tests] Signed-off-by: Ryad Benadjila <ryadbenadjila@gmail.com>
- memopt variant of the algorithm allowed using PR open-quantum-safe#2367 - common files for all variants are factorized using PR open-quantum-safe#2382 [extended tests] Signed-off-by: Ryad Benadjila <ryadbenadjila@gmail.com>
* Add common dependencies with include_only Signed-off-by: Basil Hess <bhe@zurich.ibm.com> * Remove incorrect debug print in copy_from_upstream Signed-off-by: Basil Hess <bhe@zurich.ibm.com> * Add readme for copy_from_upstream Signed-off-by: Basil Hess <bhe@zurich.ibm.com> * Import MQOM: - memopt variant of the algorithm allowed using PR #2367 - common files for all variants are factorized using PR #2382 [extended tests] Signed-off-by: Ryad Benadjila <ryadbenadjila@gmail.com> --------- Signed-off-by: Basil Hess <bhe@zurich.ibm.com> Signed-off-by: Ryad Benadjila <ryadbenadjila@gmail.com> Co-authored-by: Basil Hess <bhe@zurich.ibm.com>
|
Since #2382 has been merged, can this be closed? |
* Add common dependencies with include_only Signed-off-by: Basil Hess <bhe@zurich.ibm.com> * Remove incorrect debug print in copy_from_upstream Signed-off-by: Basil Hess <bhe@zurich.ibm.com> * Add readme for copy_from_upstream Signed-off-by: Basil Hess <bhe@zurich.ibm.com> * Import MQOM: - memopt variant of the algorithm allowed using PR open-quantum-safe#2367 - common files for all variants are factorized using PR open-quantum-safe#2382 [extended tests] Signed-off-by: Ryad Benadjila <ryadbenadjila@gmail.com> --------- Signed-off-by: Basil Hess <bhe@zurich.ibm.com> Signed-off-by: Ryad Benadjila <ryadbenadjila@gmail.com> Co-authored-by: Basil Hess <bhe@zurich.ibm.com> Signed-off-by: Nelonn <42481486+Nelonn@users.noreply.github.com>
I (locally) rebased this branch on top of main@b0853b2 and found the following diff: It seems like there is more code change in this pull request than #2385. |
* fix: build on windows clang Signed-off-by: Nelonn <42481486+Nelonn@users.noreply.github.com> * Update CMakeLists.txt Signed-off-by: Nelonn <42481486+Nelonn@users.noreply.github.com> * Update CMakeLists.txt Signed-off-by: Nelonn <42481486+Nelonn@users.noreply.github.com> * Pin Wycheproof test vectors to last good commit (#2393) This is a temporary solution for unblocking CI pipeline; a more permanent fix is needed to incorporate new test cases Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca> Signed-off-by: Nelonn <42481486+Nelonn@users.noreply.github.com> * sntrup761: replace PQClean code with public domain OpenSSH code (#2356) * sntrup761: replace PQClean code with public domain OpenSSH code Signed-off-by: Billy Brumley <bbb@iki.fi> * Update top-level LICENSE file Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca> * [src/kem/ntruprime/sntrup761_openssh] use macro for explicit_bzero Signed-off-by: Billy Brumley <bbb@iki.fi> * [src/kem/ntruprime/sntrup761_openssh] assign values to volatiles to make stricter android ld.lld happy Signed-off-by: Billy Brumley <bbb@iki.fi> * [src/kem/ntruprime/sntrup761_openssh] drop attributes for MSVC Signed-off-by: Billy Brumley <bbb@iki.fi> * [src/kem/ntruprime/sntrup761_openssh] alloca for stack allocated variable length arrays Signed-off-by: Billy Brumley <bbb@iki.fi> * [src/kem/ntruprime/sntrup761_openssh] MSVC doesn't like variable length arrays on the stack; script to modify upstream source Signed-off-by: Billy Brumley <bbb@iki.fi> * [src/kem/ntruprime/sntrup761_openssh] sntrup761.sh: resulting changes Signed-off-by: Billy Brumley <bbb@iki.fi> * [docs/algorithms/kem] YAML doc update for sntrup761 Signed-off-by: Billy Brumley <bbb@iki.fi> * doc: copy_from_upstream.py changes for sntrup761 from OpenSSH Signed-off-by: Billy Brumley <bbb@iki.fi> * [.github] CODEOWNERS: sntrup761, sign up for /src/kem/ntruprime Signed-off-by: Billy Brumley <bbb@iki.fi> * [docs/algorithms/kem] sntrup761 from upstream OpenSSH has no runtime featurization Signed-off-by: Billy Brumley <bbb@iki.fi> * [src/kem/ntruprime] add OPENSSH prefix and use it Signed-off-by: Billy Brumley <bbb@iki.fi> * [docs/algorithms/kem] sntrup761: markdown fix, are implementations chosen based on runtime CPU feature detection Signed-off-by: Billy Brumley <bbb@iki.fi> * [src/kem/ntruprime/sntrup761_openssh] sntrup761: use __builtin_alloca intrinsic as a fallback for alloca in non-MSVC cases Signed-off-by: Billy Brumley <bbb@iki.fi> * [extended tests] sntrup761: add CT exception for rejection sampling Signed-off-by: Billy Brumley <bbb@iki.fi> --------- Signed-off-by: Billy Brumley <bbb@iki.fi> Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca> Signed-off-by: Basil Hess <bhe@zurich.ibm.com> Co-authored-by: Douglas Stebila <dstebila@uwaterloo.ca> Co-authored-by: Basil Hess <bhe@zurich.ibm.com> Co-authored-by: Douglas Stebila <dstebila@users.noreply.github.com> Signed-off-by: Nelonn <42481486+Nelonn@users.noreply.github.com> * Add MQOM to liboqs (#2385) * Add common dependencies with include_only Signed-off-by: Basil Hess <bhe@zurich.ibm.com> * Remove incorrect debug print in copy_from_upstream Signed-off-by: Basil Hess <bhe@zurich.ibm.com> * Add readme for copy_from_upstream Signed-off-by: Basil Hess <bhe@zurich.ibm.com> * Import MQOM: - memopt variant of the algorithm allowed using PR #2367 - common files for all variants are factorized using PR #2382 [extended tests] Signed-off-by: Ryad Benadjila <ryadbenadjila@gmail.com> --------- Signed-off-by: Basil Hess <bhe@zurich.ibm.com> Signed-off-by: Ryad Benadjila <ryadbenadjila@gmail.com> Co-authored-by: Basil Hess <bhe@zurich.ibm.com> Signed-off-by: Nelonn <42481486+Nelonn@users.noreply.github.com> * Update mlkem-native to v1.1.0 (#2376) * Update mlkem-native to v1.1.0 [full tests] [extended tests] Signed-off-by: Matthias J. Kannwischer <matthias@kannwischer.eu> * ML-KEM: Remove constant-time passes whitelist [full tests] [extended tests] This commit removes the constant time passes which for ML-KEM that is used to suppress the false positives of the constant-time tests. This is no longer needed with mlkem-native as mlkem-native does explicit declassifications for public data that is being branched on. Signed-off-by: Matthias J. Kannwischer <matthias@kannwischer.eu> --------- Signed-off-by: Matthias J. Kannwischer <matthias@kannwischer.eu> Co-authored-by: Douglas Stebila <dstebila@users.noreply.github.com> Signed-off-by: Nelonn <42481486+Nelonn@users.noreply.github.com> * Fix mismatched macros in LMS variants (#2379) Signed-off-by: Abhi S <saxena_abhinav@icloud.com> Co-authored-by: Douglas Stebila <dstebila@users.noreply.github.com> Signed-off-by: Nelonn <42481486+Nelonn@users.noreply.github.com> * Bump the pip group across 2 directories with 1 update (#2389) Bumps the pip group with 1 update in the /.github/workflows directory: [requests](https://github.com/psf/requests). Bumps the pip group with 1 update in the /scripts/copy_from_upstream directory: [requests](https://github.com/psf/requests). Updates `requests` from 2.32.4 to 2.33.0 - [Release notes](https://github.com/psf/requests/releases) - [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md) - [Commits](psf/requests@v2.32.4...v2.33.0) Updates `requests` from 2.32.4 to 2.33.0 - [Release notes](https://github.com/psf/requests/releases) - [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md) - [Commits](psf/requests@v2.32.4...v2.33.0) --- updated-dependencies: - dependency-name: requests dependency-version: 2.33.0 dependency-type: direct:production dependency-group: pip - dependency-name: requests dependency-version: 2.33.0 dependency-type: direct:production dependency-group: pip ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Nelonn <42481486+Nelonn@users.noreply.github.com> --------- Signed-off-by: Nelonn <42481486+Nelonn@users.noreply.github.com> Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca> Signed-off-by: Billy Brumley <bbb@iki.fi> Signed-off-by: Douglas Stebila <dstebila@uwaterloo.ca> Signed-off-by: Basil Hess <bhe@zurich.ibm.com> Signed-off-by: Ryad Benadjila <ryadbenadjila@gmail.com> Signed-off-by: Matthias J. Kannwischer <matthias@kannwischer.eu> Signed-off-by: Abhi S <saxena_abhinav@icloud.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Bruce <g66xu@uwaterloo.ca> Co-authored-by: Billy Brumley <bbb@iki.fi> Co-authored-by: Douglas Stebila <dstebila@uwaterloo.ca> Co-authored-by: Basil Hess <bhe@zurich.ibm.com> Co-authored-by: Douglas Stebila <dstebila@users.noreply.github.com> Co-authored-by: Ryad Benadjila <ryadbenadjila@gmail.com> Co-authored-by: Matthias J. Kannwischer <matthias@kannwischer.eu> Co-authored-by: Abhi S <150999537+abhi-dev-engg@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Add common dependencies with include_only Signed-off-by: Basil Hess <bhe@zurich.ibm.com> * Remove incorrect debug print in copy_from_upstream Signed-off-by: Basil Hess <bhe@zurich.ibm.com> * Add readme for copy_from_upstream Signed-off-by: Basil Hess <bhe@zurich.ibm.com> * Import MQOM: - memopt variant of the algorithm allowed using PR open-quantum-safe#2367 - common files for all variants are factorized using PR open-quantum-safe#2382 [extended tests] Signed-off-by: Ryad Benadjila <ryadbenadjila@gmail.com> --------- Signed-off-by: Basil Hess <bhe@zurich.ibm.com> Signed-off-by: Ryad Benadjila <ryadbenadjila@gmail.com> Co-authored-by: Basil Hess <bhe@zurich.ibm.com> Signed-off-by: Will Bates <william.bates11@outlook.com>
f201bca to
f8a72f8
Compare
This change addresses your remaining inline comment @xuganyu96 #2382 (comment), which wasn’t picked up in #2385. Would you be okay merging this PR to avoid leaving that item unaddressed? (pushed an update rebasing it with main) |
|
@bhess The code change looks good to me. Please rebase on top of main and do a pipeline run, after which I can approve this pull request. |
Signed-off-by: Basil Hess <bhe@zurich.ibm.com>
f8a72f8 to
e75926a
Compare
Fixes #2380
Allows upstream algorithms to declare common dependencies that are stored once but compiled into each algorithm variant individually.
How to use
common_meta_pathto the upstream entry incopy_from_upstream.yml:COMMONS.ymlin the upstream repo:include_only: false(default): shared sources are compiled once as a standalone OBJECT library and linked into all variants that reference it. Use this when the shared code is truly flag-independent.include_only: true: shared sources are copied flat and added directly to each variant'sadd_library(... OBJECT ...), with the common directory added astarget_include_directories. Each variant recompiles the shared sources with its own flags.META.yml:Descriptions and documentation assisted by AI