Skip to content

Commit

Permalink
Adding multiple upstream support to doc generation (#1123)
Browse files Browse the repository at this point in the history
* Fix an issue where run_tests tried to run tests from upstream. Fix by @dstebila

* No longer checking spdx on files copied from upstream

* Added compiler checking for gcc. Must be at least 9.4.0.

* Added pqclean's aarch64 optimized kyber implementation to liboqs

* stripping asimd flag for ARM64_V8 as it isn't needed and will cause errors when trying to specify it during compilation

* Updated kyber docs

* Updated kyber markdown so that no-secret-dependent-branching-checked-by-valgrind correctly says false for the new aarch64 implementation

* Added automated updating of legacy yaml format, and added some yaml files which don't get automatically updated

* Fixed a bug where optimized upstreams would use the primary upstream's supported platform

* Fixed a bug with copy_from_upstream.py's verify function where it would always use the default upstream location when comparing with diff

* Added reporting for implementations that are in upstream but aren't yet integrated into liboqs

* Added support to ignore implementations from upstream in copy_from_upstream.yml. This is to prevent implementations that haven't been integrated into LIBOQS yet from being pulled in by copy_from_upstream.py. It also silences the warning when verifying.

* Adding updated ymls and md files for docs

* copy_from_upstream.py now also calls update_docs_from_yaml.py
  • Loading branch information
Martyrshot authored Nov 18, 2021
1 parent ba5b61a commit 7694126
Show file tree
Hide file tree
Showing 26 changed files with 701 additions and 423 deletions.
22 changes: 12 additions & 10 deletions docs/algorithms/kem/bike.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@
- **Principal submitters**: Nicolas Aragon, Paulo Barreto, Slim Bettaieb, Loic Bidoux, Olivier Blazy, Jean-Christophe Deneuville, Phillipe Gaborit, Santosh Gosh, Shay Gueron, Tim Güneysu, Carlos Aguilar Melchor, Rafael Misoczki, Edoardo Persichetti, Nicolas Sendrier, Jean-Pierre Tillich, Valentin Vasseur, Gilles Zémor.
- **Authors' website**: http://bikesuite.org/
- **Specification version**: 4.1.
- **Implementation source**: https://github.com/awslabs/bike-kem, which takes it from:
- **Primary Source**<a name="primary-source"></a>:
- **Source**: https://github.com/awslabs/bike-kem
- **Implementation license (SPDX-Identifier)**: Apache-2.0
, which takes it from:
- https://bikesuite.org/files/v4.1/Reference_Implementation.2020.10.20.2.zip
- **Implementation license (SPDX-Identifier)**: Apache-2.0.

## Parameter set summary

Expand All @@ -18,21 +20,21 @@

## BIKE-L1 implementation characteristics

| Identifier in upstream | Supported architecture(s) | Supported operating system(s) | CPU extension(s) used | No branching-on-secrets claimed? | No branching-on-secrets checked by valgrind? | Large stack usage?‡ |
|:------------------------:|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:----------------------|
| master | little endian | All | None | True | True | False |
| master | x86\_64 | Linux,Darwin | AVX2,AVX512,PCLMUL,SSE2 | True | True | False |
| Implementation source | Identifier in upstream | Supported architecture(s) | Supported operating system(s) | CPU extension(s) used | No branching-on-secrets claimed? | No branching-on-secrets checked by valgrind? | Large stack usage?‡ |
|:---------------------------------:|:-------------------------|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:----------------------|
| [Primary Source](#primary-source) | master | little endian | All | None | True | True | False |
| [Primary Source](#primary-source) | master | x86\_64 | Linux,Darwin | AVX2,AVX512,PCLMUL,SSE2 | True | True | False |

Are implementations chosen based on runtime CPU feature detection? **Yes**.

‡For an explanation of what this denotes, consult the [Explanation of Terms](#explanation-of-terms) section at the end of this file.

## BIKE-L3 implementation characteristics

| Identifier in upstream | Supported architecture(s) | Supported operating system(s) | CPU extension(s) used | No branching-on-secrets claimed? | No branching-on-secrets checked by valgrind? | Large stack usage? |
|:------------------------:|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------|
| master | little endian | All | None | True | True | False |
| master | x86\_64 | Linux,Darwin | AVX2,AVX512,PCLMUL,SSE2 | True | True | False |
| Implementation source | Identifier in upstream | Supported architecture(s) | Supported operating system(s) | CPU extension(s) used | No branching-on-secrets claimed? | No branching-on-secrets checked by valgrind? | Large stack usage? |
|:---------------------------------:|:-------------------------|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------|
| [Primary Source](#primary-source) | master | little endian | All | None | True | True | False |
| [Primary Source](#primary-source) | master | x86\_64 | Linux,Darwin | AVX2,AVX512,PCLMUL,SSE2 | True | True | False |

Are implementations chosen based on runtime CPU feature detection? **Yes**.

Expand Down
17 changes: 11 additions & 6 deletions docs/algorithms/kem/bike.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@ crypto-assumption: QC-MDPC (Quasi-Cyclic Moderate Density Parity-Check)
website: http://bikesuite.org/
nist-round: 3
spec-version: 4.1
spdx-license-identifier: Apache-2.0
upstream: https://github.com/awslabs/bike-kem
primary-upstream:
source: https://github.com/awslabs/bike-kem
spdx-license-identifier: Apache-2.0
upstream-ancestors:
- https://bikesuite.org/files/v4.1/Reference_Implementation.2020.10.20.2.zip
parameter-sets:
Expand All @@ -36,15 +37,17 @@ parameter-sets:
length-shared-secret: 32
implementations-switch-on-runtime-cpu-features: true
implementations:
- upstream-id: master
- upstream: primary-upstream
upstream-id: master
supported-platforms:
- architecture: little endian
operating_systems:
- All
no-secret-dependent-branching-claimed: true
no-secret-dependent-branching-checked-by-valgrind: true
large-stack-usage: false
- upstream-id: master
- upstream: primary-upstream
upstream-id: master
supported-platforms:
- architecture: x86_64
operating_systems:
Expand All @@ -69,15 +72,17 @@ parameter-sets:
length-shared-secret: 32
implementations-switch-on-runtime-cpu-features: true
implementations:
- upstream-id: master
- upstream: primary-upstream
upstream-id: master
supported-platforms:
- architecture: little endian
operating_systems:
- All
no-secret-dependent-branching-claimed: true
no-secret-dependent-branching-checked-by-valgrind: true
large-stack-usage: false
- upstream-id: master
- upstream: primary-upstream
upstream-id: master
supported-platforms:
- architecture: x86_64
operating_systems:
Expand Down
Loading

0 comments on commit 7694126

Please sign in to comment.