mirror of
https://github.com/open-quantum-safe/liboqs.git
synced 2025-10-04 00:02:01 -04:00
Add OpenSSF scorecard
pinned python/gh action dependencies, explicit action permissions Fixes #1706 Signed-off-by: Nigel Jones <jonesn@uk.ibm.com>
This commit is contained in:
parent
51ddd33cc0
commit
d2089c5017
7
.github/workflows/android.yml
vendored
7
.github/workflows/android.yml
vendored
@ -1,6 +1,9 @@
|
|||||||
name: android build
|
name: android build
|
||||||
|
|
||||||
on: [push, pull_request]
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
on: [ push, pull_request ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
@ -14,6 +17,6 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # pin@v3
|
||||||
- name: Build project
|
- name: Build project
|
||||||
run: ./scripts/build-android.sh $ANDROID_NDK_HOME -a ${{ matrix.abi }} -f "-DOQS_ENABLE_SIG_STFL_LMS=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=${{ matrix.stfl_opt }}"
|
run: ./scripts/build-android.sh $ANDROID_NDK_HOME -a ${{ matrix.abi }} -f "-DOQS_ENABLE_SIG_STFL_LMS=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=${{ matrix.stfl_opt }}"
|
||||||
|
7
.github/workflows/apple.yml
vendored
7
.github/workflows/apple.yml
vendored
@ -1,6 +1,9 @@
|
|||||||
name: apple build
|
name: apple build
|
||||||
|
|
||||||
on: [push, pull_request]
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
on: [ push, pull_request ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
@ -13,7 +16,7 @@ jobs:
|
|||||||
stfl_opt: [OFF, ON]
|
stfl_opt: [OFF, ON]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # pin@v3
|
||||||
- name: Generate project
|
- name: Generate project
|
||||||
run: |
|
run: |
|
||||||
cmake -B build --toolchain .CMake/apple.cmake -DOQS_USE_OPENSSL=OFF -DPLATFORM=${{ matrix.platform }} \
|
cmake -B build --toolchain .CMake/apple.cmake -DOQS_USE_OPENSSL=OFF -DPLATFORM=${{ matrix.platform }} \
|
||||||
|
8
.github/workflows/release-test.yml
vendored
8
.github/workflows/release-test.yml
vendored
@ -1,15 +1,19 @@
|
|||||||
name: Release tests
|
name: Release tests
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
# Trigger oqs-provider release tests.
|
# Trigger oqs-provider release tests.
|
||||||
# Runs whenever a release is published, or when a commit message ends with "[trigger downstream]"
|
# Runs whenever a release is published, or when a commit message ends with "[trigger downstream]"
|
||||||
# When triggered by a release, the liboqs release tag and the provider "<release tag>-tracker" branch are used.
|
# When triggered by a release, the liboqs release tag and the provider "<release tag>-tracker" branch are used.
|
||||||
# When triggered by a commit message, the triggering liboqs branch and the provider "<liboqs branch>-tracker" branch are used.
|
# When triggered by a commit message, the triggering liboqs branch and the provider "<liboqs branch>-tracker" branch are used.
|
||||||
# If the tracker branch does not exist, the downstream pipeline should detect it and run on the main branch instead.
|
# If the tracker branch does not exist, the downstream pipeline should detect it and run on the main branch instead.
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
release:
|
release:
|
||||||
types: [published]
|
types: [ published ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
oqs-provider-release-test:
|
oqs-provider-release-test:
|
||||||
@ -17,7 +21,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout release tests script
|
- name: Checkout release tests script
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4
|
||||||
with:
|
with:
|
||||||
sparse-checkout: |
|
sparse-checkout: |
|
||||||
scripts/provider-test-trigger.sh
|
scripts/provider-test-trigger.sh
|
||||||
|
8
.github/workflows/requirements.in
vendored
Normal file
8
.github/workflows/requirements.in
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
colorama==0.4.6
|
||||||
|
execnet==2.1.1
|
||||||
|
iniconfig==2.0.0
|
||||||
|
packaging==24.0
|
||||||
|
pluggy==1.4.0
|
||||||
|
pytest==8.1.1
|
||||||
|
pytest-xdist==3.5.0
|
||||||
|
pyyaml==6.0.1
|
97
.github/workflows/requirements.txt
vendored
Normal file
97
.github/workflows/requirements.txt
vendored
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
#
|
||||||
|
# This file is autogenerated by pip-compile with Python 3.12
|
||||||
|
# by the following command:
|
||||||
|
#
|
||||||
|
# pip-compile --generate-hashes --output-file=requirements_new.txt requirements.txt
|
||||||
|
#
|
||||||
|
colorama==0.4.6 \
|
||||||
|
--hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \
|
||||||
|
--hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6
|
||||||
|
# via -r requirements.txt
|
||||||
|
execnet==2.1.1 \
|
||||||
|
--hash=sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc \
|
||||||
|
--hash=sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3
|
||||||
|
# via
|
||||||
|
# -r requirements.txt
|
||||||
|
# pytest-xdist
|
||||||
|
iniconfig==2.0.0 \
|
||||||
|
--hash=sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3 \
|
||||||
|
--hash=sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
|
||||||
|
# via
|
||||||
|
# -r requirements.txt
|
||||||
|
# pytest
|
||||||
|
packaging==24.0 \
|
||||||
|
--hash=sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5 \
|
||||||
|
--hash=sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9
|
||||||
|
# via
|
||||||
|
# -r requirements.txt
|
||||||
|
# pytest
|
||||||
|
pluggy==1.4.0 \
|
||||||
|
--hash=sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981 \
|
||||||
|
--hash=sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be
|
||||||
|
# via
|
||||||
|
# -r requirements.txt
|
||||||
|
# pytest
|
||||||
|
pytest==8.1.1 \
|
||||||
|
--hash=sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7 \
|
||||||
|
--hash=sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044
|
||||||
|
# via
|
||||||
|
# -r requirements.txt
|
||||||
|
# pytest-xdist
|
||||||
|
pytest-xdist==3.5.0 \
|
||||||
|
--hash=sha256:cbb36f3d67e0c478baa57fa4edc8843887e0f6cfc42d677530a36d7472b32d8a \
|
||||||
|
--hash=sha256:d075629c7e00b611df89f490a5063944bee7a4362a5ff11c7cc7824a03dfce24
|
||||||
|
# via -r requirements.txt
|
||||||
|
pyyaml==6.0.1 \
|
||||||
|
--hash=sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5 \
|
||||||
|
--hash=sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc \
|
||||||
|
--hash=sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df \
|
||||||
|
--hash=sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741 \
|
||||||
|
--hash=sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206 \
|
||||||
|
--hash=sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27 \
|
||||||
|
--hash=sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595 \
|
||||||
|
--hash=sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62 \
|
||||||
|
--hash=sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98 \
|
||||||
|
--hash=sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696 \
|
||||||
|
--hash=sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290 \
|
||||||
|
--hash=sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9 \
|
||||||
|
--hash=sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d \
|
||||||
|
--hash=sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6 \
|
||||||
|
--hash=sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867 \
|
||||||
|
--hash=sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47 \
|
||||||
|
--hash=sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486 \
|
||||||
|
--hash=sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6 \
|
||||||
|
--hash=sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3 \
|
||||||
|
--hash=sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007 \
|
||||||
|
--hash=sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938 \
|
||||||
|
--hash=sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0 \
|
||||||
|
--hash=sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c \
|
||||||
|
--hash=sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735 \
|
||||||
|
--hash=sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d \
|
||||||
|
--hash=sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28 \
|
||||||
|
--hash=sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4 \
|
||||||
|
--hash=sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba \
|
||||||
|
--hash=sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8 \
|
||||||
|
--hash=sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef \
|
||||||
|
--hash=sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5 \
|
||||||
|
--hash=sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd \
|
||||||
|
--hash=sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3 \
|
||||||
|
--hash=sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0 \
|
||||||
|
--hash=sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515 \
|
||||||
|
--hash=sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c \
|
||||||
|
--hash=sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c \
|
||||||
|
--hash=sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924 \
|
||||||
|
--hash=sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34 \
|
||||||
|
--hash=sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43 \
|
||||||
|
--hash=sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859 \
|
||||||
|
--hash=sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673 \
|
||||||
|
--hash=sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54 \
|
||||||
|
--hash=sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a \
|
||||||
|
--hash=sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b \
|
||||||
|
--hash=sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab \
|
||||||
|
--hash=sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa \
|
||||||
|
--hash=sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c \
|
||||||
|
--hash=sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585 \
|
||||||
|
--hash=sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d \
|
||||||
|
--hash=sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f
|
||||||
|
# via -r requirements.txt
|
68
.github/workflows/scorecard.yml
vendored
Normal file
68
.github/workflows/scorecard.yml
vendored
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
name: Scorecard supply-chain security
|
||||||
|
|
||||||
|
permissions: read-all
|
||||||
|
|
||||||
|
on:
|
||||||
|
# For Branch-Protection check. Only the default branch is supported. See
|
||||||
|
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
|
||||||
|
branch_protection_rule: # To guarantee Maintained check is occasionally updated. See
|
||||||
|
|
||||||
|
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
|
||||||
|
schedule:
|
||||||
|
- cron: '29 9 * * 4'
|
||||||
|
push:
|
||||||
|
branches: [ "main" ]
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
analysis:
|
||||||
|
name: Scorecard analysis
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
# Needed to upload the results to code-scanning dashboard.
|
||||||
|
security-events: write
|
||||||
|
# Needed to publish results and get a badge (see publish_results below).
|
||||||
|
id-token: write
|
||||||
|
# Uncomment the permissions below if installing in a private repository.
|
||||||
|
# contents: read
|
||||||
|
# actions: read
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: "Checkout code"
|
||||||
|
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # pin@v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
|
- name: "Run analysis"
|
||||||
|
uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # pin@v2.3.1
|
||||||
|
with:
|
||||||
|
results_file: results.sarif
|
||||||
|
results_format: sarif
|
||||||
|
# (Optional) "write" PAT token. Uncomment the `repo_token` line below if:
|
||||||
|
# - you want to enable the Branch-Protection check on a *public* repository, or
|
||||||
|
# - you are installing Scorecard on a *private* repository
|
||||||
|
# To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat.
|
||||||
|
# repo_token: ${{ secrets.SCORECARD_TOKEN }}
|
||||||
|
|
||||||
|
# Public repositories:
|
||||||
|
# - Publish results to OpenSSF REST API for easy access by consumers
|
||||||
|
# - Allows the repository to include the Scorecard badge.
|
||||||
|
# - See https://github.com/ossf/scorecard-action#publishing-results.
|
||||||
|
# For private repositories:
|
||||||
|
# - `publish_results` will always be set to `false`, regardless
|
||||||
|
# of the value entered here.
|
||||||
|
publish_results: false
|
||||||
|
|
||||||
|
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
||||||
|
# format to the repository Actions tab.
|
||||||
|
- name: "Upload artifact"
|
||||||
|
uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # pin@v4
|
||||||
|
with:
|
||||||
|
name: SARIF file
|
||||||
|
path: results.sarif
|
||||||
|
retention-days: 5
|
||||||
|
# Upload the results to GitHub's code scanning dashboard.
|
||||||
|
#- name: "Upload to code-scanning"
|
||||||
|
# uses: github/codeql-action/upload-sarif@e949a1676c32f4c215780f7429eb9f00ff18b225 # pin@v2
|
||||||
|
# with:
|
||||||
|
# sarif_file: results.sarif
|
44
.github/workflows/unix.yml
vendored
44
.github/workflows/unix.yml
vendored
@ -1,6 +1,9 @@
|
|||||||
name: Linux and MacOS tests
|
name: Linux and MacOS tests
|
||||||
|
|
||||||
on: [push, pull_request]
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
on: [ push, pull_request ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
@ -10,7 +13,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
|
||||||
- name: Ensure code conventions are upheld
|
- name: Ensure code conventions are upheld
|
||||||
run: python3 -m pytest --verbose tests/test_code_conventions.py
|
run: python3 -m pytest --verbose tests/test_code_conventions.py
|
||||||
- name: Check that doxygen can parse the documentation
|
- name: Check that doxygen can parse the documentation
|
||||||
@ -24,7 +27,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
|
||||||
- name: Verify copy_from_upstream state
|
- name: Verify copy_from_upstream state
|
||||||
run: |
|
run: |
|
||||||
git config --global user.name "ciuser" && \
|
git config --global user.name "ciuser" && \
|
||||||
@ -32,13 +35,13 @@ jobs:
|
|||||||
export LIBOQS_DIR=`pwd` && \
|
export LIBOQS_DIR=`pwd` && \
|
||||||
git config --global --add safe.directory $LIBOQS_DIR && \
|
git config --global --add safe.directory $LIBOQS_DIR && \
|
||||||
cd scripts/copy_from_upstream && \
|
cd scripts/copy_from_upstream && \
|
||||||
! pip3 install -r requirements.txt 2>&1 | grep ERROR && \
|
! pip3 install --require-hashes -r requirements.txt 2>&1 | grep ERROR && \
|
||||||
python3 copy_from_upstream.py copy && \
|
python3 copy_from_upstream.py copy && \
|
||||||
! git status | grep modified
|
! git status | grep modified
|
||||||
|
|
||||||
buildcheck:
|
buildcheck:
|
||||||
name: Check that code passes a basic build before starting heavier tests
|
name: Check that code passes a basic build before starting heavier tests
|
||||||
needs: [stylecheck, upstreamcheck]
|
needs: [ stylecheck, upstreamcheck ]
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
@ -53,7 +56,7 @@ jobs:
|
|||||||
SIG_NAME: dilithium_3
|
SIG_NAME: dilithium_3
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
|
||||||
- name: Configure
|
- name: Configure
|
||||||
run: |
|
run: |
|
||||||
mkdir build && \
|
mkdir build && \
|
||||||
@ -134,7 +137,7 @@ jobs:
|
|||||||
image: ${{ matrix.container }}
|
image: ${{ matrix.container }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
|
||||||
- name: Configure
|
- name: Configure
|
||||||
run: mkdir build && cd build && cmake -GNinja ${{ matrix.CMAKE_ARGS }} .. && cmake -LA ..
|
run: mkdir build && cd build && cmake -GNinja ${{ matrix.CMAKE_ARGS }} .. && cmake -LA ..
|
||||||
- name: Build
|
- name: Build
|
||||||
@ -149,7 +152,7 @@ jobs:
|
|||||||
working-directory: build
|
working-directory: build
|
||||||
- name: Retain .deb file
|
- name: Retain .deb file
|
||||||
if: matrix.name == 'jammy-std-openssl3'
|
if: matrix.name == 'jammy-std-openssl3'
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # pin@v3
|
||||||
with:
|
with:
|
||||||
name: liboqs-openssl3-shared-x64
|
name: liboqs-openssl3-shared-x64
|
||||||
path: build/*.deb
|
path: build/*.deb
|
||||||
@ -179,7 +182,7 @@ jobs:
|
|||||||
# CMAKE_ARGS: -DOQS_ENABLE_SIG_SPHINCS=OFF -DOQS_USE_OPENSSL=OFF -DOQS_OPT_TARGET=generic
|
# CMAKE_ARGS: -DOQS_ENABLE_SIG_SPHINCS=OFF -DOQS_USE_OPENSSL=OFF -DOQS_OPT_TARGET=generic
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
|
||||||
- name: Install the emulation handlers
|
- name: Install the emulation handlers
|
||||||
run: docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
run: docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||||
- name: Build in an x86_64 container
|
- name: Build in an x86_64 container
|
||||||
@ -220,7 +223,7 @@ jobs:
|
|||||||
CMAKE_ARGS: -DCMAKE_TOOLCHAIN_FILE=../.CMake/toolchain_windows-amd64.cmake -DBUILD_SHARED_LIBS=ON
|
CMAKE_ARGS: -DCMAKE_TOOLCHAIN_FILE=../.CMake/toolchain_windows-amd64.cmake -DBUILD_SHARED_LIBS=ON
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
|
||||||
- name: Configure
|
- name: Configure
|
||||||
run: mkdir build && cd build && cmake -GNinja ${{ matrix.CMAKE_ARGS }} .. && cmake -LA ..
|
run: mkdir build && cd build && cmake -GNinja ${{ matrix.CMAKE_ARGS }} .. && cmake -LA ..
|
||||||
- name: Build
|
- name: Build
|
||||||
@ -232,7 +235,8 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: # macos-14 runs on aarch64; the others run on x64
|
os:
|
||||||
|
# macos-14 runs on aarch64; the others run on x64
|
||||||
- macos-12
|
- macos-12
|
||||||
- macos-13
|
- macos-13
|
||||||
- macos-14
|
- macos-14
|
||||||
@ -243,11 +247,15 @@ jobs:
|
|||||||
- -DBUILD_SHARED_LIBS=ON -DOQS_DIST_BUILD=OFF
|
- -DBUILD_SHARED_LIBS=ON -DOQS_DIST_BUILD=OFF
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
|
- name: Install Python
|
||||||
|
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # pin@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.12'
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: env HOMEBREW_NO_AUTO_UPDATE=1 brew install ninja && pip3 install --break-system-packages pytest pytest-xdist pyyaml
|
run: env HOMEBREW_NO_AUTO_UPDATE=1 brew install ninja && pip3 install --require-hashes --break-system-packages -r .github/workflows/requirements.txt
|
||||||
- name: Patch GCC
|
- name: Patch GCC
|
||||||
run: env HOMEBREW_NO_AUTO_UPDATE=1 brew uninstall --ignore-dependencies gcc@13 && wget https://raw.githubusercontent.com/Homebrew/homebrew-core/eb6dd225d093b66054e18e07d56509cf670793b1/Formula/g/gcc%4013.rb && env HOMEBREW_NO_AUTO_UPDATE=1 brew install --ignore-dependencies gcc@13.rb
|
run: env HOMEBREW_NO_AUTO_UPDATE=1 brew uninstall --ignore-dependencies gcc@13 && wget https://raw.githubusercontent.com/Homebrew/homebrew-core/eb6dd225d093b66054e18e07d56509cf670793b1/Formula/g/gcc%4013.rb && env HOMEBREW_NO_AUTO_UPDATE=1 brew install --ignore-dependencies gcc@13.rb
|
||||||
- name: Get system information
|
- name: Get system information
|
||||||
run: sysctl -a | grep machdep.cpu
|
run: sysctl -a | grep machdep.cpu
|
||||||
@ -267,16 +275,16 @@ jobs:
|
|||||||
image: openquantumsafe/ci-ubuntu-jammy:latest
|
image: openquantumsafe/ci-ubuntu-jammy:latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
|
||||||
- name: Retrieve OpenSSL330 from cache
|
- name: Retrieve OpenSSL330 from cache
|
||||||
id: cache-openssl330
|
id: cache-openssl330
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # pin@v3
|
||||||
with:
|
with:
|
||||||
path: .localopenssl330
|
path: .localopenssl330
|
||||||
key: ${{ runner.os }}-openssl330
|
key: ${{ runner.os }}-openssl330
|
||||||
- name: Checkout the OpenSSL v3.3.0 commit
|
- name: Checkout the OpenSSL v3.3.0 commit
|
||||||
if: steps.cache-openssl330.outputs.cache-hit != 'true'
|
if: steps.cache-openssl330.outputs.cache-hit != 'true'
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
|
||||||
with:
|
with:
|
||||||
repository: 'openssl/openssl'
|
repository: 'openssl/openssl'
|
||||||
ref: 'openssl-3.3.0-beta1'
|
ref: 'openssl-3.3.0-beta1'
|
||||||
@ -293,7 +301,7 @@ jobs:
|
|||||||
- name: Save OpenSSL
|
- name: Save OpenSSL
|
||||||
id: cache-openssl-save
|
id: cache-openssl-save
|
||||||
if: steps.cache-openssl330.outputs.cache-hit != 'true'
|
if: steps.cache-openssl330.outputs.cache-hit != 'true'
|
||||||
uses: actions/cache/save@v3
|
uses: actions/cache/save@e12d46a63a90f2fae62d114769bbf2a179198b5c # pin@v3
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
.localopenssl330
|
.localopenssl330
|
||||||
|
10
.github/workflows/weekly.yml
vendored
10
.github/workflows/weekly.yml
vendored
@ -1,11 +1,13 @@
|
|||||||
name: Weekly extended tests
|
name: Weekly extended tests
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: "5 0 * * 0"
|
- cron: "5 0 * * 0"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
constant-time-x64:
|
constant-time-x64:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
@ -26,7 +28,7 @@ jobs:
|
|||||||
image: ${{ matrix.container }}
|
image: ${{ matrix.container }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # pin@v2
|
||||||
- name: Configure
|
- name: Configure
|
||||||
run: mkdir build && cd build && cmake -GNinja ${{ matrix.CMAKE_ARGS }} .. && cmake -LA ..
|
run: mkdir build && cd build && cmake -GNinja ${{ matrix.CMAKE_ARGS }} .. && cmake -LA ..
|
||||||
- name: Build
|
- name: Build
|
||||||
@ -54,7 +56,7 @@ jobs:
|
|||||||
image: ${{ matrix.container }}
|
image: ${{ matrix.container }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # pin@v2
|
||||||
- name: Configure
|
- name: Configure
|
||||||
run: mkdir build && cd build && cmake -GNinja ${{ matrix.CMAKE_ARGS }} .. && cmake -LA ..
|
run: mkdir build && cd build && cmake -GNinja ${{ matrix.CMAKE_ARGS }} .. && cmake -LA ..
|
||||||
- name: Build
|
- name: Build
|
||||||
|
15
.github/workflows/windows.yml
vendored
15
.github/workflows/windows.yml
vendored
@ -1,6 +1,9 @@
|
|||||||
name: Windows tests
|
name: Windows tests
|
||||||
|
|
||||||
on: [push, pull_request]
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
on: [ push, pull_request ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
@ -10,7 +13,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
stfl_opt: [ON, OFF]
|
stfl_opt: [ON, OFF]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # pin@v3
|
||||||
- name: Generate Project
|
- name: Generate Project
|
||||||
run: cmake -B build --toolchain .CMake/toolchain_windows_arm64.cmake -DOQS_ENABLE_SIG_STFL_LMS=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=${{ matrix.stfl_opt }} .
|
run: cmake -B build --toolchain .CMake/toolchain_windows_arm64.cmake -DOQS_ENABLE_SIG_STFL_LMS=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=${{ matrix.stfl_opt }} .
|
||||||
- name: Build Project
|
- name: Build Project
|
||||||
@ -24,13 +27,17 @@ jobs:
|
|||||||
toolchain: [.CMake/toolchain_windows_x86.cmake, .CMake/toolchain_windows_amd64.cmake]
|
toolchain: [.CMake/toolchain_windows_x86.cmake, .CMake/toolchain_windows_amd64.cmake]
|
||||||
stfl_opt: [ON, OFF]
|
stfl_opt: [ON, OFF]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- name: Install Python
|
||||||
|
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # pin@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.12'
|
||||||
|
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # pin@v3
|
||||||
- name: Generate Project
|
- name: Generate Project
|
||||||
run: cmake -B build --toolchain ${{ matrix.toolchain }} -DOQS_ENABLE_SIG_STFL_LMS=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=${{ matrix.stfl_opt }} .
|
run: cmake -B build --toolchain ${{ matrix.toolchain }} -DOQS_ENABLE_SIG_STFL_LMS=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=${{ matrix.stfl_opt }} .
|
||||||
- name: Build Project
|
- name: Build Project
|
||||||
run: cmake --build build
|
run: cmake --build build
|
||||||
- name: Test dependencies
|
- name: Test dependencies
|
||||||
run: pip.exe install pytest pytest-xdist pyyaml
|
run: pip.exe install --require-hashes -r .github\workflows\requirements.txt
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
run: |
|
run: |
|
||||||
python -m pytest --numprocesses=auto -vv --maxfail=10 --ignore=tests/test_code_conventions.py --ignore=tests/test_kat_all.py --junitxml=build\test-results\pytest\test-results.xml
|
python -m pytest --numprocesses=auto -vv --maxfail=10 --ignore=tests/test_code_conventions.py --ignore=tests/test_kat_all.py --junitxml=build\test-results\pytest\test-results.xml
|
||||||
|
3
.github/workflows/zephyr.yml
vendored
3
.github/workflows/zephyr.yml
vendored
@ -1,5 +1,8 @@
|
|||||||
name: Zephyr tests
|
name: Zephyr tests
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
69
docs/PROCEDURES.md
Normal file
69
docs/PROCEDURES.md
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# Additional procedures for code maintenance
|
||||||
|
|
||||||
|
## Managing pinned dependencies
|
||||||
|
|
||||||
|
The OpenSSF, via the [scorecard](https://securityscorecards.dev/) project recommends that projects pin any
|
||||||
|
dependencies they use:
|
||||||
|
|
||||||
|
* to ensure reproducibility
|
||||||
|
* to reduce the risk for rogue dependency updates to compromise software
|
||||||
|
|
||||||
|
It's important to note that this requires any changes to dependencies are properly reviewed, and
|
||||||
|
these changes, by design, should not be automatic in themselves, though automated tools may provide recommendations.
|
||||||
|
|
||||||
|
### Python dependencies
|
||||||
|
|
||||||
|
Python dependencies used in the build process such as within `.github/workflows` should be pinned to a specific version to ensure reproducibility.
|
||||||
|
|
||||||
|
This is achieved by:
|
||||||
|
|
||||||
|
* Ensuring the required hash is in the `requirements.txt`.
|
||||||
|
* Using the `--require-hashes` option on any `pip install` command line which causes pip to require hashes for all dependencies.
|
||||||
|
|
||||||
|
To add a new, or changed dependency:
|
||||||
|
|
||||||
|
* Ensure the `pip-compile` tool is installed via the [pip-tools](https://pypi.org/project/pip-tools/) package.
|
||||||
|
* Update `requirements.in` with added, modified, or deleted dependencies.
|
||||||
|
* Update requirements.txt using `pip-compile --generate-hashes --output-file=requirements.txt requirements.in`.
|
||||||
|
* Verify correct functionality.
|
||||||
|
* Check in both `requirements.txt` and `requirements.in`.
|
||||||
|
|
||||||
|
Note: `requirements.in` acts purely as a template in this process. It is not used during the installation of a dependency.
|
||||||
|
|
||||||
|
### Github Actions
|
||||||
|
|
||||||
|
All actions used in `.github/worfklows` should pin the exact version of the action they are using, for
|
||||||
|
example a step such as:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # pin@v4
|
||||||
|
```
|
||||||
|
|
||||||
|
The exact hash specified after `@` is the git commit hash within the repo where the action is found.
|
||||||
|
|
||||||
|
The [pin github action](https://github.com/mheap/pin-github-action) tool can be used to maintain these
|
||||||
|
by, for example, running:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
pin-github-action unix.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
This will add the appropriate hash if not present, along with a comment, and also update each hash in accordance with any existing comment.
|
||||||
|
|
||||||
|
For major updates, update the comment ie `pin@v4` to `pin@v5` and the tool will attempt to find the new hash.
|
||||||
|
|
||||||
|
The comment should not be removed, and should exclusively be used for updating the version.
|
||||||
|
|
||||||
|
A full explanation of how the tool operates can be found in the [documentation](https://github.com/mheap/pin-github-action).
|
||||||
|
|
||||||
|
To help in explanation here's an example of a similar code fragment between tool executions:
|
||||||
|
|
||||||
|
* Original entry is `uses: actions/checkout@v3`
|
||||||
|
* run `pin-github-action unix.yml`
|
||||||
|
* We now see `uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # pin@v3`
|
||||||
|
* later we want to go to v4, so update the text to `uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # pin@v4`
|
||||||
|
* Now run `pin-github-action unix.yml` to correct the sha
|
||||||
|
* File now shows `uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4`
|
||||||
|
|
||||||
|
When changes have been made, correct functionality of the Github actions should be verified by reviewing the Github action logs and outputs. The SHA inserted by the tool can be searched for in Github to check it is associated with the expected version.
|
12
scripts/copy_from_upstream/requirements.in
Normal file
12
scripts/copy_from_upstream/requirements.in
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
attrs==20.3.0
|
||||||
|
GitPython==3.1.41
|
||||||
|
importlib-metadata==3.7.0
|
||||||
|
Jinja2==3.1.4
|
||||||
|
markdown-it-py==2.2.0
|
||||||
|
MarkupSafe==2.1.3
|
||||||
|
mdit-py-plugins==0.3.4
|
||||||
|
PyYAML==6.0.1
|
||||||
|
tabulate==0.8.10
|
||||||
|
typing-extensions==3.7.4.3
|
||||||
|
wget==3.2
|
||||||
|
zipp==3.4.0
|
@ -1,12 +1,179 @@
|
|||||||
attrs==20.3.0
|
#
|
||||||
GitPython==3.1.41
|
# This file is autogenerated by pip-compile with Python 3.11
|
||||||
importlib-metadata==3.7.0
|
# by the following command:
|
||||||
Jinja2==3.1.4
|
#
|
||||||
markdown-it-py==2.2.0
|
# pip-compile --generate-hashes requirements.in
|
||||||
MarkupSafe==2.1.3
|
#
|
||||||
mdit-py-plugins==0.3.4
|
attrs==20.3.0 \
|
||||||
PyYAML==6.0.1
|
--hash=sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6 \
|
||||||
tabulate==0.8.10
|
--hash=sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700
|
||||||
typing-extensions==3.7.4.3
|
# via -r requirements.in
|
||||||
wget==3.2
|
gitdb==4.0.11 \
|
||||||
zipp==3.4.0
|
--hash=sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4 \
|
||||||
|
--hash=sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b
|
||||||
|
# via gitpython
|
||||||
|
gitpython==3.1.41 \
|
||||||
|
--hash=sha256:c36b6634d069b3f719610175020a9aed919421c87552185b085e04fbbdb10b7c \
|
||||||
|
--hash=sha256:ed66e624884f76df22c8e16066d567aaa5a37d5b5fa19db2c6df6f7156db9048
|
||||||
|
# via -r requirements.in
|
||||||
|
importlib-metadata==3.7.0 \
|
||||||
|
--hash=sha256:24499ffde1b80be08284100393955842be4a59c7c16bbf2738aad0e464a8e0aa \
|
||||||
|
--hash=sha256:c6af5dbf1126cd959c4a8d8efd61d4d3c83bddb0459a17e554284a077574b614
|
||||||
|
# via -r requirements.in
|
||||||
|
jinja2==3.1.4 \
|
||||||
|
--hash=sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369 \
|
||||||
|
--hash=sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d
|
||||||
|
# via -r requirements.in
|
||||||
|
markdown-it-py==2.2.0 \
|
||||||
|
--hash=sha256:5a35f8d1870171d9acc47b99612dc146129b631baf04970128b568f190d0cc30 \
|
||||||
|
--hash=sha256:7c9a5e412688bc771c67432cbfebcdd686c93ce6484913dccf06cb5a0bea35a1
|
||||||
|
# via
|
||||||
|
# -r requirements.in
|
||||||
|
# mdit-py-plugins
|
||||||
|
markupsafe==2.1.3 \
|
||||||
|
--hash=sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e \
|
||||||
|
--hash=sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e \
|
||||||
|
--hash=sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431 \
|
||||||
|
--hash=sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686 \
|
||||||
|
--hash=sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c \
|
||||||
|
--hash=sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559 \
|
||||||
|
--hash=sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc \
|
||||||
|
--hash=sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb \
|
||||||
|
--hash=sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939 \
|
||||||
|
--hash=sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c \
|
||||||
|
--hash=sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0 \
|
||||||
|
--hash=sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4 \
|
||||||
|
--hash=sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9 \
|
||||||
|
--hash=sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575 \
|
||||||
|
--hash=sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba \
|
||||||
|
--hash=sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d \
|
||||||
|
--hash=sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd \
|
||||||
|
--hash=sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3 \
|
||||||
|
--hash=sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00 \
|
||||||
|
--hash=sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155 \
|
||||||
|
--hash=sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac \
|
||||||
|
--hash=sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52 \
|
||||||
|
--hash=sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f \
|
||||||
|
--hash=sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8 \
|
||||||
|
--hash=sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b \
|
||||||
|
--hash=sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007 \
|
||||||
|
--hash=sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24 \
|
||||||
|
--hash=sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea \
|
||||||
|
--hash=sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198 \
|
||||||
|
--hash=sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0 \
|
||||||
|
--hash=sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee \
|
||||||
|
--hash=sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be \
|
||||||
|
--hash=sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2 \
|
||||||
|
--hash=sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1 \
|
||||||
|
--hash=sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707 \
|
||||||
|
--hash=sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6 \
|
||||||
|
--hash=sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c \
|
||||||
|
--hash=sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58 \
|
||||||
|
--hash=sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823 \
|
||||||
|
--hash=sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779 \
|
||||||
|
--hash=sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636 \
|
||||||
|
--hash=sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c \
|
||||||
|
--hash=sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad \
|
||||||
|
--hash=sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee \
|
||||||
|
--hash=sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc \
|
||||||
|
--hash=sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2 \
|
||||||
|
--hash=sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48 \
|
||||||
|
--hash=sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7 \
|
||||||
|
--hash=sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e \
|
||||||
|
--hash=sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b \
|
||||||
|
--hash=sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa \
|
||||||
|
--hash=sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5 \
|
||||||
|
--hash=sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e \
|
||||||
|
--hash=sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb \
|
||||||
|
--hash=sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9 \
|
||||||
|
--hash=sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57 \
|
||||||
|
--hash=sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc \
|
||||||
|
--hash=sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc \
|
||||||
|
--hash=sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2 \
|
||||||
|
--hash=sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11
|
||||||
|
# via
|
||||||
|
# -r requirements.in
|
||||||
|
# jinja2
|
||||||
|
mdit-py-plugins==0.3.4 \
|
||||||
|
--hash=sha256:3278aab2e2b692539082f05e1243f24742194ffd92481f48844f057b51971283 \
|
||||||
|
--hash=sha256:4f1441264ac5cb39fa40a5901921c2acf314ea098d75629750c138f80d552cdf
|
||||||
|
# via -r requirements.in
|
||||||
|
mdurl==0.1.2 \
|
||||||
|
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
|
||||||
|
--hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
|
||||||
|
# via markdown-it-py
|
||||||
|
pyyaml==6.0.1 \
|
||||||
|
--hash=sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5 \
|
||||||
|
--hash=sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc \
|
||||||
|
--hash=sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df \
|
||||||
|
--hash=sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741 \
|
||||||
|
--hash=sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206 \
|
||||||
|
--hash=sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27 \
|
||||||
|
--hash=sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595 \
|
||||||
|
--hash=sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62 \
|
||||||
|
--hash=sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98 \
|
||||||
|
--hash=sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696 \
|
||||||
|
--hash=sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290 \
|
||||||
|
--hash=sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9 \
|
||||||
|
--hash=sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d \
|
||||||
|
--hash=sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6 \
|
||||||
|
--hash=sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867 \
|
||||||
|
--hash=sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47 \
|
||||||
|
--hash=sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486 \
|
||||||
|
--hash=sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6 \
|
||||||
|
--hash=sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3 \
|
||||||
|
--hash=sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007 \
|
||||||
|
--hash=sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938 \
|
||||||
|
--hash=sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0 \
|
||||||
|
--hash=sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c \
|
||||||
|
--hash=sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735 \
|
||||||
|
--hash=sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d \
|
||||||
|
--hash=sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28 \
|
||||||
|
--hash=sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4 \
|
||||||
|
--hash=sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba \
|
||||||
|
--hash=sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8 \
|
||||||
|
--hash=sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef \
|
||||||
|
--hash=sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5 \
|
||||||
|
--hash=sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd \
|
||||||
|
--hash=sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3 \
|
||||||
|
--hash=sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0 \
|
||||||
|
--hash=sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515 \
|
||||||
|
--hash=sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c \
|
||||||
|
--hash=sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c \
|
||||||
|
--hash=sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924 \
|
||||||
|
--hash=sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34 \
|
||||||
|
--hash=sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43 \
|
||||||
|
--hash=sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859 \
|
||||||
|
--hash=sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673 \
|
||||||
|
--hash=sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54 \
|
||||||
|
--hash=sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a \
|
||||||
|
--hash=sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b \
|
||||||
|
--hash=sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab \
|
||||||
|
--hash=sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa \
|
||||||
|
--hash=sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c \
|
||||||
|
--hash=sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585 \
|
||||||
|
--hash=sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d \
|
||||||
|
--hash=sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f
|
||||||
|
# via -r requirements.in
|
||||||
|
smmap==5.0.1 \
|
||||||
|
--hash=sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62 \
|
||||||
|
--hash=sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da
|
||||||
|
# via gitdb
|
||||||
|
tabulate==0.8.10 \
|
||||||
|
--hash=sha256:0ba055423dbaa164b9e456abe7920c5e8ed33fcc16f6d1b2f2d152c8e1e8b4fc \
|
||||||
|
--hash=sha256:6c57f3f3dd7ac2782770155f3adb2db0b1a269637e42f27599925e64b114f519
|
||||||
|
# via -r requirements.in
|
||||||
|
typing-extensions==3.7.4.3 \
|
||||||
|
--hash=sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918 \
|
||||||
|
--hash=sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c \
|
||||||
|
--hash=sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f
|
||||||
|
# via -r requirements.in
|
||||||
|
wget==3.2 \
|
||||||
|
--hash=sha256:35e630eca2aa50ce998b9b1a127bb26b30dfee573702782aa982f875e3f16061
|
||||||
|
# via -r requirements.in
|
||||||
|
zipp==3.4.0 \
|
||||||
|
--hash=sha256:102c24ef8f171fd729d46599845e95c7ab894a4cf45f5de11a44cc7444fb1108 \
|
||||||
|
--hash=sha256:ed5eee1974372595f9e416cc7bbeeb12335201d8081ca8a0743c954d4446e5cb
|
||||||
|
# via
|
||||||
|
# -r requirements.in
|
||||||
|
# importlib-metadata
|
||||||
|
Loading…
x
Reference in New Issue
Block a user