diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index dcf3788cd4..87f343f5a3 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -15,6 +15,8 @@ jobs: run: python3 -m pytest --verbose tests/test_code_conventions.py - name: Check that doxygen can parse the documentation run: mkdir -p build/docs && doxygen docs/.Doxyfile + - name: Validate CBOM + run: scripts/validate_cbom.sh buildcheck: name: Check that code passes a basic build before starting heavier tests diff --git a/README.md b/README.md index 9c8293bc34..bd7dbc07a2 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ Details on each supported algorithm can be found in the [docs/algorithms](https: - **FrodoKEM**: FrodoKEM-640-AES, FrodoKEM-640-SHAKE, FrodoKEM-976-AES, FrodoKEM-976-SHAKE, FrodoKEM-1344-AES, FrodoKEM-1344-SHAKE - **HQC**: HQC-128, HQC-192, HQC-256† - **Kyber**: Kyber512, Kyber512-90s, Kyber768, Kyber768-90s, Kyber1024, Kyber1024-90s +- **NTRU-Prime**: sntrup761 #### Signature schemes diff --git a/docs/algorithms/kem/kyber.yml b/docs/algorithms/kem/kyber.yml index b710037291..585ff19a6a 100644 --- a/docs/algorithms/kem/kyber.yml +++ b/docs/algorithms/kem/kyber.yml @@ -84,8 +84,7 @@ parameter-sets: upstream-id: ref supported-platforms: all common-crypto: - - AES: pqcrystals-kyber_common_ref - - SHA3: liboqs + - AES: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true large-stack-usage: false @@ -104,8 +103,7 @@ parameter-sets: - sse2 - ssse3 common-crypto: - - AES: pqcrystals-kyber_common_aes - - SHA3: liboqs + - AES: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true large-stack-usage: false @@ -167,8 +165,7 @@ parameter-sets: upstream-id: ref supported-platforms: all common-crypto: - - AES: pqcrystals-kyber_common_ref - - SHA3: liboqs + - AES: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true large-stack-usage: false @@ -187,8 +184,7 @@ parameter-sets: - sse2 - ssse3 common-crypto: - - AES: pqcrystals-kyber_common_aes - - SHA3: liboqs + - AES: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true large-stack-usage: false @@ -250,8 +246,7 @@ parameter-sets: upstream-id: ref supported-platforms: all common-crypto: - - AES: pqcrystals-kyber_common_ref - - SHA3: liboqs + - AES: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true large-stack-usage: false @@ -270,8 +265,7 @@ parameter-sets: - sse2 - ssse3 common-crypto: - - AES: pqcrystals-kyber_common_aes - - SHA3: liboqs + - AES: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true large-stack-usage: false diff --git a/docs/algorithms/sig/dilithium.yml b/docs/algorithms/sig/dilithium.yml index 8aedeab9f0..ea94e31c1c 100644 --- a/docs/algorithms/sig/dilithium.yml +++ b/docs/algorithms/sig/dilithium.yml @@ -25,6 +25,7 @@ optimized-upstreams: spdx-license-identifier: CC0-1.0 parameter-sets: - name: Dilithium2 + oqs_alg: OQS_SIG_alg_dilithium_2 claimed-nist-level: 2 claimed-security: EUF-CMA length-public-key: 1312 @@ -36,7 +37,6 @@ parameter-sets: upstream-id: ref supported-platforms: all common-crypto: - - AES: pqcrystals - SHA3: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true @@ -52,7 +52,6 @@ parameter-sets: - avx2 - popcnt common-crypto: - - AES: pqcrystals - SHA3: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true @@ -70,6 +69,7 @@ parameter-sets: no-secret-dependent-branching-checked-by-valgrind: false large-stack-usage: false - name: Dilithium3 + oqs_alg: OQS_SIG_alg_dilithium_3 claimed-nist-level: 3 claimed-security: EUF-CMA length-public-key: 1952 @@ -81,7 +81,6 @@ parameter-sets: upstream-id: ref supported-platforms: all common-crypto: - - AES: pqcrystals - SHA3: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true @@ -97,7 +96,6 @@ parameter-sets: - avx2 - popcnt common-crypto: - - AES: pqcrystals - SHA3: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true @@ -115,6 +113,7 @@ parameter-sets: no-secret-dependent-branching-checked-by-valgrind: false large-stack-usage: false - name: Dilithium5 + oqs_alg: OQS_SIG_alg_dilithium_5 claimed-nist-level: 5 claimed-security: EUF-CMA length-public-key: 2592 @@ -126,7 +125,6 @@ parameter-sets: upstream-id: ref supported-platforms: all common-crypto: - - AES: pqcrystals - SHA3: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true @@ -142,7 +140,6 @@ parameter-sets: - avx2 - popcnt common-crypto: - - AES: pqcrystals - SHA3: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true @@ -160,6 +157,7 @@ parameter-sets: no-secret-dependent-branching-checked-by-valgrind: false large-stack-usage: false - name: Dilithium2-AES + oqs_alg: OQS_SIG_alg_dilithium_2_aes claimed-security: EUF-CMA claimed-nist-level: 2 length-public-key: 1312 @@ -171,8 +169,7 @@ parameter-sets: upstream-id: ref supported-platforms: all common-crypto: - - AES: pqcrystals - - SHA3: liboqs + - AES: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true large-stack-usage: false @@ -190,12 +187,12 @@ parameter-sets: - sse2 - ssse3 common-crypto: - - AES: pqcrystals - - SHA3: liboqs + - AES: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true large-stack-usage: false - name: Dilithium3-AES + oqs_alg: OQS_SIG_alg_dilithium_3_aes claimed-security: EUF-CMA claimed-nist-level: 3 length-public-key: 1952 @@ -207,8 +204,7 @@ parameter-sets: upstream-id: ref supported-platforms: all common-crypto: - - AES: pqcrystals - - SHA3: liboqs + - AES: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true large-stack-usage: false @@ -226,12 +222,12 @@ parameter-sets: - sse2 - ssse3 common-crypto: - - AES: pqcrystals - - SHA3: liboqs + - AES: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true large-stack-usage: false - name: Dilithium5-AES + oqs_alg: OQS_SIG_alg_dilithium_5_aes claimed-security: EUF-CMA claimed-nist-level: 5 length-public-key: 2592 @@ -243,8 +239,7 @@ parameter-sets: upstream-id: ref supported-platforms: all common-crypto: - - AES: pqcrystals - - SHA3: liboqs + - AES: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true large-stack-usage: false @@ -262,8 +257,7 @@ parameter-sets: - sse2 - ssse3 common-crypto: - - AES: pqcrystals - - SHA3: liboqs + - AES: liboqs no-secret-dependent-branching-claimed: true no-secret-dependent-branching-checked-by-valgrind: true large-stack-usage: false diff --git a/docs/cbom.json b/docs/cbom.json new file mode 100644 index 0000000000..aedbbd3a20 --- /dev/null +++ b/docs/cbom.json @@ -0,0 +1,4065 @@ +{ + "bomFormat": "CBOM", + "specVersion": "1.4-cbom-1.0", + "serialNumber": "urn:uuid:ca241562-5e2e-41a7-bbe7-d5f594dadeff", + "version": 1, + "metadata": { + "timestamp": "2023-01-11T13:07:10.132035", + "component": { + "type": "library", + "bom-ref": "pkg:github/open-quantum-safe/liboqs@a365530a2baf065c2865f1ef272c962a5c87d5a1", + "name": "liboqs", + "version": "a365530a2baf065c2865f1ef272c962a5c87d5a1" + } + }, + "components": [ + { + "type": "library", + "bom-ref": "pkg:github/open-quantum-safe/liboqs@a365530a2baf065c2865f1ef272c962a5c87d5a1", + "name": "liboqs", + "version": "a365530a2baf065c2865f1ef272c962a5c87d5a1" + }, + { + "type": "crypto-asset", + "bom-ref": "alg:BIKE-L1:x86_64", + "name": "BIKE", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "BIKE-L1", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:BIKE-L3:x86_64", + "name": "BIKE", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "BIKE-L3", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-348864:generic", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-348864", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-348864:x86_64", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-348864", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-348864f:generic", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-348864f", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-348864f:x86_64", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-348864f", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-460896:generic", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-460896", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-460896:x86_64", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-460896", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-460896f:generic", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-460896f", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-460896f:x86_64", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-460896f", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-6688128:generic", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-6688128", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-6688128:x86_64", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-6688128", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-6688128f:generic", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-6688128f", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-6688128f:x86_64", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-6688128f", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-6960119:generic", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-6960119", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-6960119:x86_64", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-6960119", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-6960119f:generic", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-6960119f", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-6960119f:x86_64", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-6960119f", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-8192128:generic", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-8192128", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-8192128:x86_64", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-8192128", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-8192128f:generic", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-8192128f", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Classic-McEliece-8192128f:x86_64", + "name": "Classic McEliece", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Classic-McEliece-8192128f", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:FrodoKEM-640-AES:generic", + "name": "FrodoKEM", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "FrodoKEM-640-AES", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:FrodoKEM-640-AES:x86_64", + "name": "FrodoKEM", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "FrodoKEM-640-AES", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:FrodoKEM-640-SHAKE:generic", + "name": "FrodoKEM", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "FrodoKEM-640-SHAKE", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:FrodoKEM-640-SHAKE:x86_64", + "name": "FrodoKEM", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "FrodoKEM-640-SHAKE", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:FrodoKEM-976-AES:generic", + "name": "FrodoKEM", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "FrodoKEM-976-AES", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:FrodoKEM-976-AES:x86_64", + "name": "FrodoKEM", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "FrodoKEM-976-AES", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:FrodoKEM-976-SHAKE:generic", + "name": "FrodoKEM", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "FrodoKEM-976-SHAKE", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:FrodoKEM-976-SHAKE:x86_64", + "name": "FrodoKEM", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "FrodoKEM-976-SHAKE", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:FrodoKEM-1344-AES:generic", + "name": "FrodoKEM", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "FrodoKEM-1344-AES", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:FrodoKEM-1344-AES:x86_64", + "name": "FrodoKEM", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "FrodoKEM-1344-AES", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:FrodoKEM-1344-SHAKE:generic", + "name": "FrodoKEM", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "FrodoKEM-1344-SHAKE", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:FrodoKEM-1344-SHAKE:x86_64", + "name": "FrodoKEM", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "FrodoKEM-1344-SHAKE", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:HQC-128:generic", + "name": "HQC", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "HQC-128", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:HQC-128:x86_64", + "name": "HQC", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "HQC-128", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:HQC-192:generic", + "name": "HQC", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "HQC-192", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:HQC-192:x86_64", + "name": "HQC", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "HQC-192", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:HQC-256:generic", + "name": "HQC", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "HQC-256", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:HQC-256:x86_64", + "name": "HQC", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "HQC-256", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Kyber512:generic", + "name": "Kyber", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Kyber512", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Kyber512:x86_64", + "name": "Kyber", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Kyber512", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Kyber512:armv8-a", + "name": "Kyber", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Kyber512", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "armv8-a" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Kyber512-90s:generic", + "name": "Kyber", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Kyber512-90s", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Kyber512-90s:x86_64", + "name": "Kyber", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Kyber512-90s", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Kyber768:generic", + "name": "Kyber", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Kyber768", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Kyber768:x86_64", + "name": "Kyber", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Kyber768", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Kyber768:armv8-a", + "name": "Kyber", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Kyber768", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "armv8-a" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Kyber768-90s:generic", + "name": "Kyber", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Kyber768-90s", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Kyber768-90s:x86_64", + "name": "Kyber", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Kyber768-90s", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Kyber1024:generic", + "name": "Kyber", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Kyber1024", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Kyber1024:x86_64", + "name": "Kyber", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Kyber1024", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Kyber1024:armv8-a", + "name": "Kyber", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Kyber1024", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "armv8-a" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Kyber1024-90s:generic", + "name": "Kyber", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Kyber1024-90s", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Kyber1024-90s:x86_64", + "name": "Kyber", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Kyber1024-90s", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:sntrup761:generic", + "name": "NTRU-Prime", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "sntrup761", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 2 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:sntrup761:x86_64", + "name": "NTRU-Prime", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "sntrup761", + "primitive": "kem", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "encapsulate", + "decapsulate" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 2 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Dilithium2:generic", + "name": "CRYSTALS-Dilithium", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Dilithium2", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 2 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Dilithium2:x86_64", + "name": "CRYSTALS-Dilithium", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Dilithium2", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 2 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Dilithium2:armv8-a", + "name": "CRYSTALS-Dilithium", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Dilithium2", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "armv8-a" + }, + "nistQuantumSecurityLevel": 2 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Dilithium3:generic", + "name": "CRYSTALS-Dilithium", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Dilithium3", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Dilithium3:x86_64", + "name": "CRYSTALS-Dilithium", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Dilithium3", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Dilithium3:armv8-a", + "name": "CRYSTALS-Dilithium", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Dilithium3", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "armv8-a" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Dilithium5:generic", + "name": "CRYSTALS-Dilithium", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Dilithium5", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Dilithium5:x86_64", + "name": "CRYSTALS-Dilithium", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Dilithium5", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Dilithium5:armv8-a", + "name": "CRYSTALS-Dilithium", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Dilithium5", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "armv8-a" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Dilithium2-AES:generic", + "name": "CRYSTALS-Dilithium", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Dilithium2-AES", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 2 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Dilithium2-AES:x86_64", + "name": "CRYSTALS-Dilithium", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Dilithium2-AES", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 2 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Dilithium3-AES:generic", + "name": "CRYSTALS-Dilithium", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Dilithium3-AES", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Dilithium3-AES:x86_64", + "name": "CRYSTALS-Dilithium", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Dilithium3-AES", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Dilithium5-AES:generic", + "name": "CRYSTALS-Dilithium", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Dilithium5-AES", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Dilithium5-AES:x86_64", + "name": "CRYSTALS-Dilithium", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Dilithium5-AES", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Falcon-512:generic", + "name": "Falcon", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Falcon-512", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Falcon-512:x86_64", + "name": "Falcon", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Falcon-512", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Falcon-1024:generic", + "name": "Falcon", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Falcon-1024", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:Falcon-1024:x86_64", + "name": "Falcon", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "Falcon-1024", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-128f-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-128f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-128f-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-128f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-128f-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-128f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-128f-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-128f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-128s-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-128s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-128s-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-128s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-128s-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-128s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-128s-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-128s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-192f-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-192f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-192f-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-192f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-192f-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-192f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-192f-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-192f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-192s-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-192s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-192s-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-192s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-192s-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-192s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-192s-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-192s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-256f-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-256f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-256f-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-256f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-256f-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-256f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-256f-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-256f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-256s-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-256s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-256s-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-256s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-256s-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-256s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-Haraka-256s-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-Haraka-256s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-128f-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-128f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-128f-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-128f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-128f-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-128f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-128f-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-128f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-128s-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-128s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-128s-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-128s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-128s-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-128s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-128s-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-128s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-192f-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-192f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-192f-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-192f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-192f-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-192f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-192f-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-192f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-192s-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-192s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-192s-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-192s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-192s-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-192s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-192s-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-192s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-256f-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-256f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-256f-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-256f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-256f-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-256f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-256f-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-256f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-256s-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-256s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-256s-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-256s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-256s-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-256s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHA256-256s-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHA256-256s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-128f-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-128f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-128f-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-128f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-128f-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-128f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-128f-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-128f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-128s-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-128s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-128s-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-128s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-128s-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-128s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-128s-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-128s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 1 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-192f-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-192f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-192f-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-192f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-192f-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-192f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-192f-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-192f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-192s-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-192s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-192s-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-192s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-192s-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-192s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-192s-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-192s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 3 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-256f-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-256f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-256f-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-256f-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-256f-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-256f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-256f-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-256f-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-256s-robust:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-256s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-256s-robust:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-256s-robust", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-256s-simple:generic", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-256s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "generic" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:SPHINCS+-SHAKE256-256s-simple:x86_64", + "name": "SPHINCS+", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "SPHINCS+-SHAKE256-256s-simple", + "primitive": "signature", + "implementationLevel": "softwarePlainRam", + "cryptoFunctions": [ + "keygen", + "sign", + "verify" + ], + "implementationPlatform": "x86_64" + }, + "nistQuantumSecurityLevel": 5 + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:aes", + "name": "aes", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "aes", + "primitive": "blockcipher", + "implementationLevel": "softwarePlainRam" + } + } + }, + { + "type": "crypto-asset", + "bom-ref": "alg:sha3", + "name": "sha3", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "sha3", + "primitive": "hash", + "implementationLevel": "softwarePlainRam" + } + } + } + ], + "dependencies": [ + { + "ref": "pkg:github/open-quantum-safe/liboqs@a365530a2baf065c2865f1ef272c962a5c87d5a1", + "dependsOn": [ + "alg:BIKE-L1:x86_64", + "alg:BIKE-L3:x86_64", + "alg:Classic-McEliece-348864:generic", + "alg:Classic-McEliece-348864:x86_64", + "alg:Classic-McEliece-348864f:generic", + "alg:Classic-McEliece-348864f:x86_64", + "alg:Classic-McEliece-460896:generic", + "alg:Classic-McEliece-460896:x86_64", + "alg:Classic-McEliece-460896f:generic", + "alg:Classic-McEliece-460896f:x86_64", + "alg:Classic-McEliece-6688128:generic", + "alg:Classic-McEliece-6688128:x86_64", + "alg:Classic-McEliece-6688128f:generic", + "alg:Classic-McEliece-6688128f:x86_64", + "alg:Classic-McEliece-6960119:generic", + "alg:Classic-McEliece-6960119:x86_64", + "alg:Classic-McEliece-6960119f:generic", + "alg:Classic-McEliece-6960119f:x86_64", + "alg:Classic-McEliece-8192128:generic", + "alg:Classic-McEliece-8192128:x86_64", + "alg:Classic-McEliece-8192128f:generic", + "alg:Classic-McEliece-8192128f:x86_64", + "alg:FrodoKEM-640-AES:generic", + "alg:FrodoKEM-640-AES:x86_64", + "alg:FrodoKEM-640-SHAKE:generic", + "alg:FrodoKEM-640-SHAKE:x86_64", + "alg:FrodoKEM-976-AES:generic", + "alg:FrodoKEM-976-AES:x86_64", + "alg:FrodoKEM-976-SHAKE:generic", + "alg:FrodoKEM-976-SHAKE:x86_64", + "alg:FrodoKEM-1344-AES:generic", + "alg:FrodoKEM-1344-AES:x86_64", + "alg:FrodoKEM-1344-SHAKE:generic", + "alg:FrodoKEM-1344-SHAKE:x86_64", + "alg:HQC-128:generic", + "alg:HQC-128:x86_64", + "alg:HQC-192:generic", + "alg:HQC-192:x86_64", + "alg:HQC-256:generic", + "alg:HQC-256:x86_64", + "alg:Kyber512:generic", + "alg:Kyber512:x86_64", + "alg:Kyber512:armv8-a", + "alg:Kyber512-90s:generic", + "alg:Kyber512-90s:x86_64", + "alg:Kyber768:generic", + "alg:Kyber768:x86_64", + "alg:Kyber768:armv8-a", + "alg:Kyber768-90s:generic", + "alg:Kyber768-90s:x86_64", + "alg:Kyber1024:generic", + "alg:Kyber1024:x86_64", + "alg:Kyber1024:armv8-a", + "alg:Kyber1024-90s:generic", + "alg:Kyber1024-90s:x86_64", + "alg:sntrup761:generic", + "alg:sntrup761:x86_64", + "alg:Dilithium2:generic", + "alg:Dilithium2:x86_64", + "alg:Dilithium2:armv8-a", + "alg:Dilithium3:generic", + "alg:Dilithium3:x86_64", + "alg:Dilithium3:armv8-a", + "alg:Dilithium5:generic", + "alg:Dilithium5:x86_64", + "alg:Dilithium5:armv8-a", + "alg:Dilithium2-AES:generic", + "alg:Dilithium2-AES:x86_64", + "alg:Dilithium3-AES:generic", + "alg:Dilithium3-AES:x86_64", + "alg:Dilithium5-AES:generic", + "alg:Dilithium5-AES:x86_64", + "alg:Falcon-512:generic", + "alg:Falcon-512:x86_64", + "alg:Falcon-1024:generic", + "alg:Falcon-1024:x86_64", + "alg:SPHINCS+-Haraka-128f-robust:generic", + "alg:SPHINCS+-Haraka-128f-robust:x86_64", + "alg:SPHINCS+-Haraka-128f-simple:generic", + "alg:SPHINCS+-Haraka-128f-simple:x86_64", + "alg:SPHINCS+-Haraka-128s-robust:generic", + "alg:SPHINCS+-Haraka-128s-robust:x86_64", + "alg:SPHINCS+-Haraka-128s-simple:generic", + "alg:SPHINCS+-Haraka-128s-simple:x86_64", + "alg:SPHINCS+-Haraka-192f-robust:generic", + "alg:SPHINCS+-Haraka-192f-robust:x86_64", + "alg:SPHINCS+-Haraka-192f-simple:generic", + "alg:SPHINCS+-Haraka-192f-simple:x86_64", + "alg:SPHINCS+-Haraka-192s-robust:generic", + "alg:SPHINCS+-Haraka-192s-robust:x86_64", + "alg:SPHINCS+-Haraka-192s-simple:generic", + "alg:SPHINCS+-Haraka-192s-simple:x86_64", + "alg:SPHINCS+-Haraka-256f-robust:generic", + "alg:SPHINCS+-Haraka-256f-robust:x86_64", + "alg:SPHINCS+-Haraka-256f-simple:generic", + "alg:SPHINCS+-Haraka-256f-simple:x86_64", + "alg:SPHINCS+-Haraka-256s-robust:generic", + "alg:SPHINCS+-Haraka-256s-robust:x86_64", + "alg:SPHINCS+-Haraka-256s-simple:generic", + "alg:SPHINCS+-Haraka-256s-simple:x86_64", + "alg:SPHINCS+-SHA256-128f-robust:generic", + "alg:SPHINCS+-SHA256-128f-robust:x86_64", + "alg:SPHINCS+-SHA256-128f-simple:generic", + "alg:SPHINCS+-SHA256-128f-simple:x86_64", + "alg:SPHINCS+-SHA256-128s-robust:generic", + "alg:SPHINCS+-SHA256-128s-robust:x86_64", + "alg:SPHINCS+-SHA256-128s-simple:generic", + "alg:SPHINCS+-SHA256-128s-simple:x86_64", + "alg:SPHINCS+-SHA256-192f-robust:generic", + "alg:SPHINCS+-SHA256-192f-robust:x86_64", + "alg:SPHINCS+-SHA256-192f-simple:generic", + "alg:SPHINCS+-SHA256-192f-simple:x86_64", + "alg:SPHINCS+-SHA256-192s-robust:generic", + "alg:SPHINCS+-SHA256-192s-robust:x86_64", + "alg:SPHINCS+-SHA256-192s-simple:generic", + "alg:SPHINCS+-SHA256-192s-simple:x86_64", + "alg:SPHINCS+-SHA256-256f-robust:generic", + "alg:SPHINCS+-SHA256-256f-robust:x86_64", + "alg:SPHINCS+-SHA256-256f-simple:generic", + "alg:SPHINCS+-SHA256-256f-simple:x86_64", + "alg:SPHINCS+-SHA256-256s-robust:generic", + "alg:SPHINCS+-SHA256-256s-robust:x86_64", + "alg:SPHINCS+-SHA256-256s-simple:generic", + "alg:SPHINCS+-SHA256-256s-simple:x86_64", + "alg:SPHINCS+-SHAKE256-128f-robust:generic", + "alg:SPHINCS+-SHAKE256-128f-robust:x86_64", + "alg:SPHINCS+-SHAKE256-128f-simple:generic", + "alg:SPHINCS+-SHAKE256-128f-simple:x86_64", + "alg:SPHINCS+-SHAKE256-128s-robust:generic", + "alg:SPHINCS+-SHAKE256-128s-robust:x86_64", + "alg:SPHINCS+-SHAKE256-128s-simple:generic", + "alg:SPHINCS+-SHAKE256-128s-simple:x86_64", + "alg:SPHINCS+-SHAKE256-192f-robust:generic", + "alg:SPHINCS+-SHAKE256-192f-robust:x86_64", + "alg:SPHINCS+-SHAKE256-192f-simple:generic", + "alg:SPHINCS+-SHAKE256-192f-simple:x86_64", + "alg:SPHINCS+-SHAKE256-192s-robust:generic", + "alg:SPHINCS+-SHAKE256-192s-robust:x86_64", + "alg:SPHINCS+-SHAKE256-192s-simple:generic", + "alg:SPHINCS+-SHAKE256-192s-simple:x86_64", + "alg:SPHINCS+-SHAKE256-256f-robust:generic", + "alg:SPHINCS+-SHAKE256-256f-robust:x86_64", + "alg:SPHINCS+-SHAKE256-256f-simple:generic", + "alg:SPHINCS+-SHAKE256-256f-simple:x86_64", + "alg:SPHINCS+-SHAKE256-256s-robust:generic", + "alg:SPHINCS+-SHAKE256-256s-robust:x86_64", + "alg:SPHINCS+-SHAKE256-256s-simple:generic", + "alg:SPHINCS+-SHAKE256-256s-simple:x86_64" + ], + "dependencyType": "implements" + }, + { + "ref": "alg:BIKE-L1:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:BIKE-L3:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-348864:generic", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-348864:x86_64", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-348864f:generic", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-348864f:x86_64", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-460896:generic", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-460896:x86_64", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-460896f:generic", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-460896f:x86_64", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-6688128:generic", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-6688128:x86_64", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-6688128f:generic", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-6688128f:x86_64", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-6960119:generic", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-6960119:x86_64", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-6960119f:generic", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-6960119f:x86_64", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-8192128:generic", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-8192128:x86_64", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-8192128f:generic", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Classic-McEliece-8192128f:x86_64", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:FrodoKEM-640-AES:generic", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:FrodoKEM-640-AES:x86_64", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:FrodoKEM-640-SHAKE:generic", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:FrodoKEM-640-SHAKE:x86_64", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:FrodoKEM-976-AES:generic", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:FrodoKEM-976-AES:x86_64", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:FrodoKEM-976-SHAKE:generic", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:FrodoKEM-976-SHAKE:x86_64", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:FrodoKEM-1344-AES:generic", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:FrodoKEM-1344-AES:x86_64", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:FrodoKEM-1344-SHAKE:generic", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:FrodoKEM-1344-SHAKE:x86_64", + "dependsOn": [ + "alg:aes", + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:HQC-128:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:HQC-128:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:HQC-192:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:HQC-192:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:HQC-256:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:HQC-256:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Kyber512:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Kyber512:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Kyber512:armv8-a", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Kyber512-90s:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Kyber512-90s:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Kyber768:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Kyber768:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Kyber768:armv8-a", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Kyber768-90s:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Kyber768-90s:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Kyber1024:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Kyber1024:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Kyber1024:armv8-a", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Kyber1024-90s:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Kyber1024-90s:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:sntrup761:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:sntrup761:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Dilithium2:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Dilithium2:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Dilithium2:armv8-a", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Dilithium3:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Dilithium3:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Dilithium3:armv8-a", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Dilithium5:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Dilithium5:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Dilithium5:armv8-a", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Dilithium2-AES:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Dilithium2-AES:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Dilithium3-AES:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Dilithium3-AES:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Dilithium5-AES:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Dilithium5-AES:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Falcon-512:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Falcon-512:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Falcon-1024:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:Falcon-1024:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-128f-robust:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-128f-robust:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-128f-simple:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-128f-simple:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-128s-robust:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-128s-robust:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-128s-simple:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-128s-simple:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-192f-robust:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-192f-robust:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-192f-simple:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-192f-simple:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-192s-robust:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-192s-robust:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-192s-simple:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-192s-simple:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-256f-robust:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-256f-robust:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-256f-simple:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-256f-simple:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-256s-robust:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-256s-robust:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-256s-simple:generic", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-Haraka-256s-simple:x86_64", + "dependsOn": [ + "alg:aes" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-128f-robust:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-128f-robust:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-128f-simple:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-128f-simple:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-128s-robust:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-128s-robust:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-128s-simple:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-128s-simple:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-192f-robust:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-192f-robust:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-192f-simple:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-192f-simple:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-192s-robust:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-192s-robust:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-192s-simple:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-192s-simple:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-256f-robust:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-256f-robust:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-256f-simple:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-256f-simple:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-256s-robust:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-256s-robust:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-256s-simple:generic", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + }, + { + "ref": "alg:SPHINCS+-SHAKE256-256s-simple:x86_64", + "dependsOn": [ + "alg:sha3" + ], + "dependencyType": "uses" + } + ] +} \ No newline at end of file diff --git a/scripts/copy_from_upstream/copy_from_upstream.py b/scripts/copy_from_upstream/copy_from_upstream.py index bef62d72ba..f604d5c82d 100755 --- a/scripts/copy_from_upstream/copy_from_upstream.py +++ b/scripts/copy_from_upstream/copy_from_upstream.py @@ -618,7 +618,8 @@ def copy_from_upstream(): # Not in love with using sub process to call a python script, but this is the easiest solution for # automatically calling this script in its current state. - shell(["python3", "../update_docs_from_yaml.py", "--liboqs-root", "../../"]) + shell(["python3", os.environ['LIBOQS_DIR'] + "/scripts/update_docs_from_yaml.py", "--liboqs-root", os.environ['LIBOQS_DIR']]) + shell(["python3", os.environ['LIBOQS_DIR'] + "/scripts/update_cbom.py", "--liboqs-root", os.environ['LIBOQS_DIR']]) def verify_from_upstream(): instructions = load_instructions() diff --git a/scripts/copy_from_upstream/requirements.txt b/scripts/copy_from_upstream/requirements.txt index d6a965638f..d4653cce19 100644 --- a/scripts/copy_from_upstream/requirements.txt +++ b/scripts/copy_from_upstream/requirements.txt @@ -1,4 +1,5 @@ attrs==20.3.0 +GitPython==3.0.7 importlib-metadata==3.7.0 Jinja2==2.11.3 markdown-it-py==0.6.2 @@ -7,4 +8,5 @@ mdit-py-plugins==0.2.5 PyYAML==5.4.1 tabulate==0.8.10 typing-extensions==3.7.4.3 +wget==3.2 zipp==3.4.0 diff --git a/scripts/update_cbom.py b/scripts/update_cbom.py new file mode 100644 index 0000000000..395907a82c --- /dev/null +++ b/scripts/update_cbom.py @@ -0,0 +1,196 @@ +# SPDX-License-Identifier: MIT + +# This script generates a Cryptography Bill of Material (CBOM) +# according to https://github.com/IBM/CBOM/blob/main/bom-1.4-cbom-1.0.schema.json + +# apt-get install npm python3-git + +import argparse +import glob +import yaml +import os +import json +import git +import uuid +from datetime import datetime +import copy + +cbom_json_file = "cbom.json" + +parser = argparse.ArgumentParser() +parser.add_argument("--liboqs-root", default=".") +parser.add_argument("--liboqs-version", default="git") +args = parser.parse_args() + +def load_yaml(filename, encoding='utf-8'): + with open(filename, mode='r', encoding=encoding) as fh: + return yaml.safe_load(fh.read()) + +def file_get_contents(filename, encoding=None): + with open(filename, mode='r', encoding=encoding) as fh: + return fh.read() + +def out_write(out, str): + out.write(str) + +kem_yamls = [] +sig_yamls = [] + +cbom_components = [] +bom_algs_bomrefs = [] +bom_algs_use_dependencies = {} + +## Common crypto components: aes, sha3 +common_crypto_component_aes = { + "type": "crypto-asset", + "bom-ref": "alg:aes", + "name": "aes", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "aes", + "primitive": "blockcipher", + "implementationLevel": "softwarePlainRam" + } + } + } +common_crypto_component_sha3 = { + "type": "crypto-asset", + "bom-ref": "alg:sha3", + "name": "sha3", + "cryptoProperties": { + "assetType": "algorithm", + "algorithmProperties": { + "variant": "sha3", + "primitive": "hash", + "implementationLevel": "softwarePlainRam" + } + } + } + +def add_cbom_component(out, kem_yaml, parameter_set): + primitive = kem_yaml['type'] + + component = {} + component['type'] = "crypto-asset" + component['bom-ref'] = "alg:" + parameter_set['name'] + + component['name'] = kem_yaml['name'] + + algorithmProperties = {} + algorithmProperties['variant'] = parameter_set['name'] + algorithmProperties['primitive'] = primitive + algorithmProperties['implementationLevel'] = "softwarePlainRam" + if primitive == 'kem': + algorithmProperties['cryptoFunctions'] = ["keygen", "encapsulate", "decapsulate"] + elif primitive == 'signature': + algorithmProperties['cryptoFunctions'] = ["keygen", "sign", "verify"] + + cryptoProperties = {} + cryptoProperties['assetType'] = "algorithm" + cryptoProperties['algorithmProperties'] = algorithmProperties + cryptoProperties['nistQuantumSecurityLevel'] = parameter_set['claimed-nist-level'] + + component['cryptoProperties'] = cryptoProperties + + for impl in parameter_set['implementations']: + dic = { + "all": "generic", + "x86_64": "x86_64", + "ARM64_V8": "armv8-a" + } + dep = [] + if 'common-crypto' in impl: + for a in impl['common-crypto']: + if "SHA3" in a: + dep.append(common_crypto_component_sha3['bom-ref']) + elif "AES" in a: + dep.append(common_crypto_component_aes['bom-ref']) + + if impl['supported-platforms'] == "all": + algorithmProperties['implementationPlatform'] = dic[impl['supported-platforms']] + component_cpy = copy.deepcopy(component) + component_cpy['bom-ref'] += ":" + algorithmProperties['implementationPlatform'] + cbom_components.append(component_cpy) + bom_algs_bomrefs.append(component_cpy['bom-ref']) + if (dep): + bom_algs_use_dependencies.update({ + component_cpy['bom-ref'] : dep + }) + else: + for plat in impl['supported-platforms']: + if plat['architecture'] in dic.keys(): + algorithmProperties['implementationPlatform'] = dic[plat['architecture']] + component_cpy = copy.deepcopy(component) + component_cpy['bom-ref'] += ":" + algorithmProperties['implementationPlatform'] + cbom_components.append(component_cpy) + bom_algs_bomrefs.append(component_cpy['bom-ref']) + if dep: + bom_algs_use_dependencies.update({ + component_cpy['bom-ref'] : dep + }) + + + +## Add KEM components +for kem_yaml_path in sorted(glob.glob(os.path.join(args.liboqs_root, 'docs', 'algorithms', 'kem', '*.yml'))): + kem_yaml = load_yaml(kem_yaml_path) + kem_yamls.append(kem_yaml) + kem_name = os.path.splitext(os.path.basename(kem_yaml_path))[0] + name = kem_yaml['name'] + for parameter_set in kem_yaml['parameter-sets']: + add_cbom_component(None, kem_yaml, parameter_set) + +## Add Sig components +for sig_yaml_path in sorted(glob.glob(os.path.join(args.liboqs_root, 'docs', 'algorithms', 'sig', '*.yml'))): + sig_yaml = load_yaml(sig_yaml_path) + sig_yamls.append(sig_yaml) + sig_name = os.path.splitext(os.path.basename(sig_yaml_path))[0] + for parameter_set in sig_yaml['parameter-sets']: + add_cbom_component(None, sig_yaml, parameter_set) + +## liboqs component +liboqs_component = {} +version = args.liboqs_version +if version == "git": + repo = git.Repo(search_parent_directories=True) + version = repo.head.object.hexsha +liboqs_component['type'] = "library" +liboqs_component['bom-ref'] = "pkg:github/open-quantum-safe/liboqs@" + version +liboqs_component['name'] = "liboqs" +liboqs_component['version'] = version + +cbom_components.insert(0, liboqs_component) + +metadata = {} +metadata['timestamp'] = datetime.now().isoformat() +metadata['component'] = liboqs_component + +## Dependencies + +dependencies = [] +dependencies.append({ + "ref": liboqs_component['bom-ref'], + "dependsOn": bom_algs_bomrefs, + "dependencyType": "implements" +}) +for usedep in bom_algs_use_dependencies.keys(): + dependencies.append({ + "ref": usedep, + "dependsOn": bom_algs_use_dependencies[usedep], + "dependencyType": "uses" + }) + + +## CBOM +cbom = {} +cbom['bomFormat'] = "CBOM" +cbom['specVersion'] = "1.4-cbom-1.0" +cbom['serialNumber'] = "urn:uuid:" + str(uuid.uuid4()) +cbom['version'] = 1 +cbom['metadata'] = metadata +cbom['components'] = cbom_components + [common_crypto_component_aes, common_crypto_component_sha3] +cbom['dependencies'] = dependencies + +with open(os.path.join(args.liboqs_root, 'docs', cbom_json_file), mode='w', encoding='utf-8') as out_md: + out_md.write(json.dumps(cbom, indent=2)) diff --git a/scripts/validate_cbom.sh b/scripts/validate_cbom.sh new file mode 100755 index 0000000000..4b34fe3eb1 --- /dev/null +++ b/scripts/validate_cbom.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# SPDX-License-Identifier: MIT + +cd "$(dirname "$0")" +wget -nc https://raw.githubusercontent.com/IBM/CBOM/main/bom-1.4-cbom-1.0.schema.json +wget -nc https://raw.githubusercontent.com/IBM/CBOM/main/spdx.schema.json +wget -nc https://raw.githubusercontent.com/IBM/CBOM/main/jsf-0.82.schema.json +ajv validate --spec=draft7 --validate-formats=false -r spdx.schema.json -r jsf-0.82.schema.json --strict=false -s bom-1.4-cbom-1.0.schema.json -d ../docs/cbom.json \ No newline at end of file