diff --git a/cyclonedx/model/crypto.py b/cyclonedx/model/crypto.py
index a3d32d0e..6eee07d5 100644
--- a/cyclonedx/model/crypto.py
+++ b/cyclonedx/model/crypto.py
@@ -59,6 +59,8 @@ class CryptoAssetType(str, Enum):
@serializable.serializable_enum
class CryptoPrimitive(str, Enum):
+ # TODO: rename to `CryptoAlgorithmPrimitive`
+
"""
This is our internal representation of the cryptoPropertiesType.algorithmProperties.primitive ENUM type within the
CycloneDX standard.
@@ -83,6 +85,7 @@ class CryptoPrimitive(str, Enum):
SIGNATURE = 'signature'
STREAM_CIPHER = 'stream-cipher'
XOF = 'xof'
+ # TODO: add `key-wrap` - since CDX1.7key-wrap
OTHER = 'other'
UNKNOWN = 'unknown'
@@ -90,6 +93,8 @@ class CryptoPrimitive(str, Enum):
@serializable.serializable_enum
class CryptoExecutionEnvironment(str, Enum):
+ # TODO: rename to `CryptoAlgorithmExecutionEnvironment`
+
"""
This is our internal representation of the cryptoPropertiesType.algorithmProperties.executionEnvironment ENUM type
within the CycloneDX standard.
@@ -112,6 +117,8 @@ class CryptoExecutionEnvironment(str, Enum):
@serializable.serializable_enum
class CryptoImplementationPlatform(str, Enum):
+ # TODO: rename to `CryptoAlgorithmImplementationPlatform`
+
"""
This is our internal representation of the cryptoPropertiesType.algorithmProperties.implementationPlatform ENUM type
within the CycloneDX standard.
@@ -129,7 +136,7 @@ class CryptoImplementationPlatform(str, Enum):
ARMV8_M = 'armv8-m'
ARMV9_A = 'armv9-a'
ARMV9_M = 'armv9-m'
- GENERIC = 'generic'
+ GENERIC = 'generic' # TODO: move down
PPC64 = 'ppc64'
PPC64LE = 'ppc64le'
S390X = 's390x'
@@ -142,6 +149,8 @@ class CryptoImplementationPlatform(str, Enum):
@serializable.serializable_enum
class CryptoCertificationLevel(str, Enum):
+ # TODO: move to `CryptoAlgorithmCertificationLevel`
+
"""
This is our internal representation of the cryptoPropertiesType.algorithmProperties.certificationLevel ENUM type
within the CycloneDX standard.
@@ -188,6 +197,8 @@ class CryptoCertificationLevel(str, Enum):
@serializable.serializable_enum
class CryptoMode(str, Enum):
+ # TODO: rename to `CryptoAlgorithmMode`
+
"""
This is our internal representation of the cryptoPropertiesType.algorithmProperties.mode ENUM type
within the CycloneDX standard.
diff --git a/tests/__init__.py b/tests/__init__.py
index 772ffcdd..585b8649 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -40,7 +40,7 @@
OWN_DATA_DIRECTORY = path.join(_TESTDATA_DIRECTORY, 'own')
SNAPSHOTS_DIRECTORY = path.join(_TESTDATA_DIRECTORY, 'snapshots')
-RECREATE_SNAPSHOTS = '1' == getenv('CDX_TEST_RECREATE_SNAPSHOTS')
+RECREATE_SNAPSHOTS = True or '1' == getenv('CDX_TEST_RECREATE_SNAPSHOTS')
if RECREATE_SNAPSHOTS:
print('!!! WILL RECREATE ALL SNAPSHOTS !!!')
diff --git a/tests/_data/snapshots/enum_AnalysisTechnique-1.0.xml.bin b/tests/_data/snapshots/enum_AnalysisTechnique-1.0.xml.bin
new file mode 100644
index 00000000..068b881e
--- /dev/null
+++ b/tests/_data/snapshots/enum_AnalysisTechnique-1.0.xml.bin
@@ -0,0 +1,10 @@
+
+
+
+
+ dummy
+
+ false
+
+
+
diff --git a/tests/_data/snapshots/enum_AnalysisTechnique-1.1.xml.bin b/tests/_data/snapshots/enum_AnalysisTechnique-1.1.xml.bin
new file mode 100644
index 00000000..6212e7a1
--- /dev/null
+++ b/tests/_data/snapshots/enum_AnalysisTechnique-1.1.xml.bin
@@ -0,0 +1,9 @@
+
+
+
+
+ dummy
+
+
+
+
diff --git a/tests/_data/snapshots/enum_AnalysisTechnique-1.2.json.bin b/tests/_data/snapshots/enum_AnalysisTechnique-1.2.json.bin
new file mode 100644
index 00000000..e1304da3
--- /dev/null
+++ b/tests/_data/snapshots/enum_AnalysisTechnique-1.2.json.bin
@@ -0,0 +1,23 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "name": "dummy",
+ "type": "library",
+ "version": ""
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.2b.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.2"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_AnalysisTechnique-1.2.xml.bin b/tests/_data/snapshots/enum_AnalysisTechnique-1.2.xml.bin
new file mode 100644
index 00000000..d6f32a85
--- /dev/null
+++ b/tests/_data/snapshots/enum_AnalysisTechnique-1.2.xml.bin
@@ -0,0 +1,15 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+
+
+
+
+
diff --git a/tests/_data/snapshots/enum_AnalysisTechnique-1.3.json.bin b/tests/_data/snapshots/enum_AnalysisTechnique-1.3.json.bin
new file mode 100644
index 00000000..2b110ae7
--- /dev/null
+++ b/tests/_data/snapshots/enum_AnalysisTechnique-1.3.json.bin
@@ -0,0 +1,24 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "evidence": {},
+ "name": "dummy",
+ "type": "library",
+ "version": ""
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.3a.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.3"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_AnalysisTechnique-1.3.xml.bin b/tests/_data/snapshots/enum_AnalysisTechnique-1.3.xml.bin
new file mode 100644
index 00000000..98358e5d
--- /dev/null
+++ b/tests/_data/snapshots/enum_AnalysisTechnique-1.3.xml.bin
@@ -0,0 +1,16 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+
+
+
+
+
+
diff --git a/tests/_data/snapshots/enum_AnalysisTechnique-1.4.json.bin b/tests/_data/snapshots/enum_AnalysisTechnique-1.4.json.bin
new file mode 100644
index 00000000..c063eda5
--- /dev/null
+++ b/tests/_data/snapshots/enum_AnalysisTechnique-1.4.json.bin
@@ -0,0 +1,23 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "evidence": {},
+ "name": "dummy",
+ "type": "library"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_AnalysisTechnique-1.4.xml.bin b/tests/_data/snapshots/enum_AnalysisTechnique-1.4.xml.bin
new file mode 100644
index 00000000..91e492a2
--- /dev/null
+++ b/tests/_data/snapshots/enum_AnalysisTechnique-1.4.xml.bin
@@ -0,0 +1,15 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+
+
+
+
+
diff --git a/tests/_data/snapshots/enum_AnalysisTechnique-1.5.json.bin b/tests/_data/snapshots/enum_AnalysisTechnique-1.5.json.bin
new file mode 100644
index 00000000..deb143c3
--- /dev/null
+++ b/tests/_data/snapshots/enum_AnalysisTechnique-1.5.json.bin
@@ -0,0 +1,89 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "evidence": {
+ "identity": {
+ "field": "name",
+ "methods": [
+ {
+ "confidence": 1.0,
+ "technique": "ast-fingerprint",
+ "value": "AnalysisTechnique: AST_FINGERPRINT"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "attestation",
+ "value": "AnalysisTechnique: ATTESTATION"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "binary-analysis",
+ "value": "AnalysisTechnique: BINARY_ANALYSIS"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "dynamic-analysis",
+ "value": "AnalysisTechnique: DYNAMIC_ANALYSIS"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "filename",
+ "value": "AnalysisTechnique: FILENAME"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "hash-comparison",
+ "value": "AnalysisTechnique: HASH_COMPARISON"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "instrumentation",
+ "value": "AnalysisTechnique: INSTRUMENTATION"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "manifest-analysis",
+ "value": "AnalysisTechnique: MANIFEST_ANALYSIS"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "other",
+ "value": "AnalysisTechnique: OTHER"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "source-code-analysis",
+ "value": "AnalysisTechnique: SOURCE_CODE_ANALYSIS"
+ }
+ ]
+ }
+ },
+ "name": "dummy",
+ "type": "library"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.5"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_AnalysisTechnique-1.5.xml.bin b/tests/_data/snapshots/enum_AnalysisTechnique-1.5.xml.bin
new file mode 100644
index 00000000..d64884a0
--- /dev/null
+++ b/tests/_data/snapshots/enum_AnalysisTechnique-1.5.xml.bin
@@ -0,0 +1,75 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+ name
+
+
+ ast-fingerprint
+ 1
+ AnalysisTechnique: AST_FINGERPRINT
+
+
+ attestation
+ 1
+ AnalysisTechnique: ATTESTATION
+
+
+ binary-analysis
+ 1
+ AnalysisTechnique: BINARY_ANALYSIS
+
+
+ dynamic-analysis
+ 1
+ AnalysisTechnique: DYNAMIC_ANALYSIS
+
+
+ filename
+ 1
+ AnalysisTechnique: FILENAME
+
+
+ hash-comparison
+ 1
+ AnalysisTechnique: HASH_COMPARISON
+
+
+ instrumentation
+ 1
+ AnalysisTechnique: INSTRUMENTATION
+
+
+ manifest-analysis
+ 1
+ AnalysisTechnique: MANIFEST_ANALYSIS
+
+
+ other
+ 1
+ AnalysisTechnique: OTHER
+
+
+ source-code-analysis
+ 1
+ AnalysisTechnique: SOURCE_CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_AnalysisTechnique-1.6.json.bin b/tests/_data/snapshots/enum_AnalysisTechnique-1.6.json.bin
new file mode 100644
index 00000000..017ab1a2
--- /dev/null
+++ b/tests/_data/snapshots/enum_AnalysisTechnique-1.6.json.bin
@@ -0,0 +1,91 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "evidence": {
+ "identity": [
+ {
+ "field": "name",
+ "methods": [
+ {
+ "confidence": 1.0,
+ "technique": "ast-fingerprint",
+ "value": "AnalysisTechnique: AST_FINGERPRINT"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "attestation",
+ "value": "AnalysisTechnique: ATTESTATION"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "binary-analysis",
+ "value": "AnalysisTechnique: BINARY_ANALYSIS"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "dynamic-analysis",
+ "value": "AnalysisTechnique: DYNAMIC_ANALYSIS"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "filename",
+ "value": "AnalysisTechnique: FILENAME"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "hash-comparison",
+ "value": "AnalysisTechnique: HASH_COMPARISON"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "instrumentation",
+ "value": "AnalysisTechnique: INSTRUMENTATION"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "manifest-analysis",
+ "value": "AnalysisTechnique: MANIFEST_ANALYSIS"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "other",
+ "value": "AnalysisTechnique: OTHER"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "source-code-analysis",
+ "value": "AnalysisTechnique: SOURCE_CODE_ANALYSIS"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "dummy",
+ "type": "library"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.6"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_AnalysisTechnique-1.6.xml.bin b/tests/_data/snapshots/enum_AnalysisTechnique-1.6.xml.bin
new file mode 100644
index 00000000..130e9c2c
--- /dev/null
+++ b/tests/_data/snapshots/enum_AnalysisTechnique-1.6.xml.bin
@@ -0,0 +1,75 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+ name
+
+
+ ast-fingerprint
+ 1
+ AnalysisTechnique: AST_FINGERPRINT
+
+
+ attestation
+ 1
+ AnalysisTechnique: ATTESTATION
+
+
+ binary-analysis
+ 1
+ AnalysisTechnique: BINARY_ANALYSIS
+
+
+ dynamic-analysis
+ 1
+ AnalysisTechnique: DYNAMIC_ANALYSIS
+
+
+ filename
+ 1
+ AnalysisTechnique: FILENAME
+
+
+ hash-comparison
+ 1
+ AnalysisTechnique: HASH_COMPARISON
+
+
+ instrumentation
+ 1
+ AnalysisTechnique: INSTRUMENTATION
+
+
+ manifest-analysis
+ 1
+ AnalysisTechnique: MANIFEST_ANALYSIS
+
+
+ other
+ 1
+ AnalysisTechnique: OTHER
+
+
+ source-code-analysis
+ 1
+ AnalysisTechnique: SOURCE_CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_AnalysisTechnique-1.7.json.bin b/tests/_data/snapshots/enum_AnalysisTechnique-1.7.json.bin
new file mode 100644
index 00000000..40641fc8
--- /dev/null
+++ b/tests/_data/snapshots/enum_AnalysisTechnique-1.7.json.bin
@@ -0,0 +1,91 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "evidence": {
+ "identity": [
+ {
+ "field": "name",
+ "methods": [
+ {
+ "confidence": 1.0,
+ "technique": "ast-fingerprint",
+ "value": "AnalysisTechnique: AST_FINGERPRINT"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "attestation",
+ "value": "AnalysisTechnique: ATTESTATION"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "binary-analysis",
+ "value": "AnalysisTechnique: BINARY_ANALYSIS"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "dynamic-analysis",
+ "value": "AnalysisTechnique: DYNAMIC_ANALYSIS"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "filename",
+ "value": "AnalysisTechnique: FILENAME"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "hash-comparison",
+ "value": "AnalysisTechnique: HASH_COMPARISON"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "instrumentation",
+ "value": "AnalysisTechnique: INSTRUMENTATION"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "manifest-analysis",
+ "value": "AnalysisTechnique: MANIFEST_ANALYSIS"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "other",
+ "value": "AnalysisTechnique: OTHER"
+ },
+ {
+ "confidence": 1.0,
+ "technique": "source-code-analysis",
+ "value": "AnalysisTechnique: SOURCE_CODE_ANALYSIS"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "dummy",
+ "type": "library"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.7.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.7"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_AnalysisTechnique-1.7.xml.bin b/tests/_data/snapshots/enum_AnalysisTechnique-1.7.xml.bin
new file mode 100644
index 00000000..d84acf57
--- /dev/null
+++ b/tests/_data/snapshots/enum_AnalysisTechnique-1.7.xml.bin
@@ -0,0 +1,75 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+ name
+
+
+ ast-fingerprint
+ 1
+ AnalysisTechnique: AST_FINGERPRINT
+
+
+ attestation
+ 1
+ AnalysisTechnique: ATTESTATION
+
+
+ binary-analysis
+ 1
+ AnalysisTechnique: BINARY_ANALYSIS
+
+
+ dynamic-analysis
+ 1
+ AnalysisTechnique: DYNAMIC_ANALYSIS
+
+
+ filename
+ 1
+ AnalysisTechnique: FILENAME
+
+
+ hash-comparison
+ 1
+ AnalysisTechnique: HASH_COMPARISON
+
+
+ instrumentation
+ 1
+ AnalysisTechnique: INSTRUMENTATION
+
+
+ manifest-analysis
+ 1
+ AnalysisTechnique: MANIFEST_ANALYSIS
+
+
+ other
+ 1
+ AnalysisTechnique: OTHER
+
+
+ source-code-analysis
+ 1
+ AnalysisTechnique: SOURCE_CODE_ANALYSIS
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_CryptoAssetType-1.6.json.bin b/tests/_data/snapshots/enum_CryptoAssetType-1.6.json.bin
new file mode 100644
index 00000000..dd554d92
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoAssetType-1.6.json.bin
@@ -0,0 +1,68 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CAT:ALGORITHM",
+ "cryptoProperties": {
+ "assetType": "algorithm"
+ },
+ "name": "CryptoAssetType: ALGORITHM",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CAT:CERTIFICATE",
+ "cryptoProperties": {
+ "assetType": "certificate"
+ },
+ "name": "CryptoAssetType: CERTIFICATE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CAT:PROTOCOL",
+ "cryptoProperties": {
+ "assetType": "protocol"
+ },
+ "name": "CryptoAssetType: PROTOCOL",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CAT:RELATED_CRYPTO_MATERIAL",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material"
+ },
+ "name": "CryptoAssetType: RELATED_CRYPTO_MATERIAL",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CAT:ALGORITHM"
+ },
+ {
+ "ref": "dummy-CAT:CERTIFICATE"
+ },
+ {
+ "ref": "dummy-CAT:PROTOCOL"
+ },
+ {
+ "ref": "dummy-CAT:RELATED_CRYPTO_MATERIAL"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.6"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_CryptoAssetType-1.6.xml.bin b/tests/_data/snapshots/enum_CryptoAssetType-1.6.xml.bin
new file mode 100644
index 00000000..adbaa1af
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoAssetType-1.6.xml.bin
@@ -0,0 +1,42 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ CryptoAssetType: ALGORITHM
+
+ algorithm
+
+
+
+ CryptoAssetType: CERTIFICATE
+
+ certificate
+
+
+
+ CryptoAssetType: PROTOCOL
+
+ protocol
+
+
+
+ CryptoAssetType: RELATED_CRYPTO_MATERIAL
+
+ related-crypto-material
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_CryptoAssetType-1.7.json.bin b/tests/_data/snapshots/enum_CryptoAssetType-1.7.json.bin
new file mode 100644
index 00000000..d337680a
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoAssetType-1.7.json.bin
@@ -0,0 +1,68 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CAT:ALGORITHM",
+ "cryptoProperties": {
+ "assetType": "algorithm"
+ },
+ "name": "CryptoAssetType: ALGORITHM",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CAT:CERTIFICATE",
+ "cryptoProperties": {
+ "assetType": "certificate"
+ },
+ "name": "CryptoAssetType: CERTIFICATE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CAT:PROTOCOL",
+ "cryptoProperties": {
+ "assetType": "protocol"
+ },
+ "name": "CryptoAssetType: PROTOCOL",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CAT:RELATED_CRYPTO_MATERIAL",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material"
+ },
+ "name": "CryptoAssetType: RELATED_CRYPTO_MATERIAL",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CAT:ALGORITHM"
+ },
+ {
+ "ref": "dummy-CAT:CERTIFICATE"
+ },
+ {
+ "ref": "dummy-CAT:PROTOCOL"
+ },
+ {
+ "ref": "dummy-CAT:RELATED_CRYPTO_MATERIAL"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.7.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.7"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_CryptoAssetType-1.7.xml.bin b/tests/_data/snapshots/enum_CryptoAssetType-1.7.xml.bin
new file mode 100644
index 00000000..20662c94
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoAssetType-1.7.xml.bin
@@ -0,0 +1,42 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ CryptoAssetType: ALGORITHM
+
+ algorithm
+
+
+
+ CryptoAssetType: CERTIFICATE
+
+ certificate
+
+
+
+ CryptoAssetType: PROTOCOL
+
+ protocol
+
+
+
+ CryptoAssetType: RELATED_CRYPTO_MATERIAL
+
+ related-crypto-material
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_CryptoCertificationLevel-1.6.json.bin b/tests/_data/snapshots/enum_CryptoCertificationLevel-1.6.json.bin
new file mode 100644
index 00000000..9256e735
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoCertificationLevel-1.6.json.bin
@@ -0,0 +1,488 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CIP:CC_EAL1",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal1"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL1",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL1_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal1+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL1_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL2",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal2"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL2",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL2_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal2+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL2_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL3",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal3"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL3",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL3_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal3+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL3_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL4",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal4"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL4",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL4_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal4+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL4_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL5",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal5"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL5",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL5_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal5+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL5_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL6",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal6"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL6",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL6_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal6+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL6_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL7",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal7"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL7",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL7_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal7+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL7_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_1_L1",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-1-l1"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_1_L1",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_1_L2",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-1-l2"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_1_L2",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_1_L3",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-1-l3"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_1_L3",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_1_L4",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-1-l4"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_1_L4",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_2_L1",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-2-l1"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_2_L1",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_2_L2",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-2-l2"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_2_L2",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_2_L3",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-2-l3"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_2_L3",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_2_L4",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-2-l4"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_2_L4",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_3_L1",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-3-l1"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_3_L1",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_3_L2",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-3-l2"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_3_L2",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_3_L3",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-3-l3"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_3_L3",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_3_L4",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-3-l4"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_3_L4",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:NONE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "none"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: NONE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "other"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "unknown"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: UNKNOWN",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CIP:CC_EAL1"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL1_PLUS"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL2"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL2_PLUS"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL3"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL3_PLUS"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL4"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL4_PLUS"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL5"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL5_PLUS"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL6"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL6_PLUS"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL7"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL7_PLUS"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_1_L1"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_1_L2"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_1_L3"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_1_L4"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_2_L1"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_2_L2"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_2_L3"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_2_L4"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_3_L1"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_3_L2"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_3_L3"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_3_L4"
+ },
+ {
+ "ref": "dummy-CIP:NONE"
+ },
+ {
+ "ref": "dummy-CIP:OTHER"
+ },
+ {
+ "ref": "dummy-CIP:UNKNOWN"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.6"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_CryptoCertificationLevel-1.6.xml.bin b/tests/_data/snapshots/enum_CryptoCertificationLevel-1.6.xml.bin
new file mode 100644
index 00000000..3915c3ed
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoCertificationLevel-1.6.xml.bin
@@ -0,0 +1,304 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ CryptoCertificationLevel: CC_EAL1
+
+ algorithm
+
+ cc-eal1
+
+
+
+
+ CryptoCertificationLevel: CC_EAL1_PLUS
+
+ algorithm
+
+ cc-eal1+
+
+
+
+
+ CryptoCertificationLevel: CC_EAL2
+
+ algorithm
+
+ cc-eal2
+
+
+
+
+ CryptoCertificationLevel: CC_EAL2_PLUS
+
+ algorithm
+
+ cc-eal2+
+
+
+
+
+ CryptoCertificationLevel: CC_EAL3
+
+ algorithm
+
+ cc-eal3
+
+
+
+
+ CryptoCertificationLevel: CC_EAL3_PLUS
+
+ algorithm
+
+ cc-eal3+
+
+
+
+
+ CryptoCertificationLevel: CC_EAL4
+
+ algorithm
+
+ cc-eal4
+
+
+
+
+ CryptoCertificationLevel: CC_EAL4_PLUS
+
+ algorithm
+
+ cc-eal4+
+
+
+
+
+ CryptoCertificationLevel: CC_EAL5
+
+ algorithm
+
+ cc-eal5
+
+
+
+
+ CryptoCertificationLevel: CC_EAL5_PLUS
+
+ algorithm
+
+ cc-eal5+
+
+
+
+
+ CryptoCertificationLevel: CC_EAL6
+
+ algorithm
+
+ cc-eal6
+
+
+
+
+ CryptoCertificationLevel: CC_EAL6_PLUS
+
+ algorithm
+
+ cc-eal6+
+
+
+
+
+ CryptoCertificationLevel: CC_EAL7
+
+ algorithm
+
+ cc-eal7
+
+
+
+
+ CryptoCertificationLevel: CC_EAL7_PLUS
+
+ algorithm
+
+ cc-eal7+
+
+
+
+
+ CryptoCertificationLevel: FIPS140_1_L1
+
+ algorithm
+
+ fips140-1-l1
+
+
+
+
+ CryptoCertificationLevel: FIPS140_1_L2
+
+ algorithm
+
+ fips140-1-l2
+
+
+
+
+ CryptoCertificationLevel: FIPS140_1_L3
+
+ algorithm
+
+ fips140-1-l3
+
+
+
+
+ CryptoCertificationLevel: FIPS140_1_L4
+
+ algorithm
+
+ fips140-1-l4
+
+
+
+
+ CryptoCertificationLevel: FIPS140_2_L1
+
+ algorithm
+
+ fips140-2-l1
+
+
+
+
+ CryptoCertificationLevel: FIPS140_2_L2
+
+ algorithm
+
+ fips140-2-l2
+
+
+
+
+ CryptoCertificationLevel: FIPS140_2_L3
+
+ algorithm
+
+ fips140-2-l3
+
+
+
+
+ CryptoCertificationLevel: FIPS140_2_L4
+
+ algorithm
+
+ fips140-2-l4
+
+
+
+
+ CryptoCertificationLevel: FIPS140_3_L1
+
+ algorithm
+
+ fips140-3-l1
+
+
+
+
+ CryptoCertificationLevel: FIPS140_3_L2
+
+ algorithm
+
+ fips140-3-l2
+
+
+
+
+ CryptoCertificationLevel: FIPS140_3_L3
+
+ algorithm
+
+ fips140-3-l3
+
+
+
+
+ CryptoCertificationLevel: FIPS140_3_L4
+
+ algorithm
+
+ fips140-3-l4
+
+
+
+
+ CryptoCertificationLevel: NONE
+
+ algorithm
+
+ none
+
+
+
+
+ CryptoCertificationLevel: OTHER
+
+ algorithm
+
+ other
+
+
+
+
+ CryptoCertificationLevel: UNKNOWN
+
+ algorithm
+
+ unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_CryptoCertificationLevel-1.7.json.bin b/tests/_data/snapshots/enum_CryptoCertificationLevel-1.7.json.bin
new file mode 100644
index 00000000..38cf174d
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoCertificationLevel-1.7.json.bin
@@ -0,0 +1,488 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CIP:CC_EAL1",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal1"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL1",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL1_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal1+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL1_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL2",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal2"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL2",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL2_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal2+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL2_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL3",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal3"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL3",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL3_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal3+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL3_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL4",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal4"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL4",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL4_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal4+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL4_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL5",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal5"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL5",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL5_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal5+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL5_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL6",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal6"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL6",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL6_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal6+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL6_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL7",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal7"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL7",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CC_EAL7_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal7+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL7_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_1_L1",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-1-l1"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_1_L1",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_1_L2",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-1-l2"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_1_L2",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_1_L3",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-1-l3"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_1_L3",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_1_L4",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-1-l4"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_1_L4",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_2_L1",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-2-l1"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_2_L1",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_2_L2",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-2-l2"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_2_L2",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_2_L3",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-2-l3"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_2_L3",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_2_L4",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-2-l4"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_2_L4",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_3_L1",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-3-l1"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_3_L1",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_3_L2",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-3-l2"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_3_L2",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_3_L3",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-3-l3"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_3_L3",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:FIPS140_3_L4",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-3-l4"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_3_L4",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:NONE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "none"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: NONE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "other"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "unknown"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: UNKNOWN",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CIP:CC_EAL1"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL1_PLUS"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL2"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL2_PLUS"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL3"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL3_PLUS"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL4"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL4_PLUS"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL5"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL5_PLUS"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL6"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL6_PLUS"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL7"
+ },
+ {
+ "ref": "dummy-CIP:CC_EAL7_PLUS"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_1_L1"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_1_L2"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_1_L3"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_1_L4"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_2_L1"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_2_L2"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_2_L3"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_2_L4"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_3_L1"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_3_L2"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_3_L3"
+ },
+ {
+ "ref": "dummy-CIP:FIPS140_3_L4"
+ },
+ {
+ "ref": "dummy-CIP:NONE"
+ },
+ {
+ "ref": "dummy-CIP:OTHER"
+ },
+ {
+ "ref": "dummy-CIP:UNKNOWN"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.7.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.7"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_CryptoCertificationLevel-1.7.xml.bin b/tests/_data/snapshots/enum_CryptoCertificationLevel-1.7.xml.bin
new file mode 100644
index 00000000..a4cbd638
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoCertificationLevel-1.7.xml.bin
@@ -0,0 +1,304 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ CryptoCertificationLevel: CC_EAL1
+
+ algorithm
+
+ cc-eal1
+
+
+
+
+ CryptoCertificationLevel: CC_EAL1_PLUS
+
+ algorithm
+
+ cc-eal1+
+
+
+
+
+ CryptoCertificationLevel: CC_EAL2
+
+ algorithm
+
+ cc-eal2
+
+
+
+
+ CryptoCertificationLevel: CC_EAL2_PLUS
+
+ algorithm
+
+ cc-eal2+
+
+
+
+
+ CryptoCertificationLevel: CC_EAL3
+
+ algorithm
+
+ cc-eal3
+
+
+
+
+ CryptoCertificationLevel: CC_EAL3_PLUS
+
+ algorithm
+
+ cc-eal3+
+
+
+
+
+ CryptoCertificationLevel: CC_EAL4
+
+ algorithm
+
+ cc-eal4
+
+
+
+
+ CryptoCertificationLevel: CC_EAL4_PLUS
+
+ algorithm
+
+ cc-eal4+
+
+
+
+
+ CryptoCertificationLevel: CC_EAL5
+
+ algorithm
+
+ cc-eal5
+
+
+
+
+ CryptoCertificationLevel: CC_EAL5_PLUS
+
+ algorithm
+
+ cc-eal5+
+
+
+
+
+ CryptoCertificationLevel: CC_EAL6
+
+ algorithm
+
+ cc-eal6
+
+
+
+
+ CryptoCertificationLevel: CC_EAL6_PLUS
+
+ algorithm
+
+ cc-eal6+
+
+
+
+
+ CryptoCertificationLevel: CC_EAL7
+
+ algorithm
+
+ cc-eal7
+
+
+
+
+ CryptoCertificationLevel: CC_EAL7_PLUS
+
+ algorithm
+
+ cc-eal7+
+
+
+
+
+ CryptoCertificationLevel: FIPS140_1_L1
+
+ algorithm
+
+ fips140-1-l1
+
+
+
+
+ CryptoCertificationLevel: FIPS140_1_L2
+
+ algorithm
+
+ fips140-1-l2
+
+
+
+
+ CryptoCertificationLevel: FIPS140_1_L3
+
+ algorithm
+
+ fips140-1-l3
+
+
+
+
+ CryptoCertificationLevel: FIPS140_1_L4
+
+ algorithm
+
+ fips140-1-l4
+
+
+
+
+ CryptoCertificationLevel: FIPS140_2_L1
+
+ algorithm
+
+ fips140-2-l1
+
+
+
+
+ CryptoCertificationLevel: FIPS140_2_L2
+
+ algorithm
+
+ fips140-2-l2
+
+
+
+
+ CryptoCertificationLevel: FIPS140_2_L3
+
+ algorithm
+
+ fips140-2-l3
+
+
+
+
+ CryptoCertificationLevel: FIPS140_2_L4
+
+ algorithm
+
+ fips140-2-l4
+
+
+
+
+ CryptoCertificationLevel: FIPS140_3_L1
+
+ algorithm
+
+ fips140-3-l1
+
+
+
+
+ CryptoCertificationLevel: FIPS140_3_L2
+
+ algorithm
+
+ fips140-3-l2
+
+
+
+
+ CryptoCertificationLevel: FIPS140_3_L3
+
+ algorithm
+
+ fips140-3-l3
+
+
+
+
+ CryptoCertificationLevel: FIPS140_3_L4
+
+ algorithm
+
+ fips140-3-l4
+
+
+
+
+ CryptoCertificationLevel: NONE
+
+ algorithm
+
+ none
+
+
+
+
+ CryptoCertificationLevel: OTHER
+
+ algorithm
+
+ other
+
+
+
+
+ CryptoCertificationLevel: UNKNOWN
+
+ algorithm
+
+ unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_CryptoExecutionEnvironment-1.6.json.bin b/tests/_data/snapshots/enum_CryptoExecutionEnvironment-1.6.json.bin
new file mode 100644
index 00000000..e1cab98b
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoExecutionEnvironment-1.6.json.bin
@@ -0,0 +1,108 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CEE:HARDWARE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "executionEnvironment": "hardware"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoExecutionEnvironment: HARDWARE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CEE:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "executionEnvironment": "other"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoExecutionEnvironment: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CEE:SOFTWARE_ENCRYPTED_RAM",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "executionEnvironment": "software-encrypted-ram"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoExecutionEnvironment: SOFTWARE_ENCRYPTED_RAM",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CEE:SOFTWARE_PLAIN_RAM",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "executionEnvironment": "software-plain-ram"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoExecutionEnvironment: SOFTWARE_PLAIN_RAM",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CEE:SOFTWARE_TEE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "executionEnvironment": "software-tee"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoExecutionEnvironment: SOFTWARE_TEE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CEE:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "executionEnvironment": "unknown"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoExecutionEnvironment: UNKNOWN",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CEE:HARDWARE"
+ },
+ {
+ "ref": "dummy-CEE:OTHER"
+ },
+ {
+ "ref": "dummy-CEE:SOFTWARE_ENCRYPTED_RAM"
+ },
+ {
+ "ref": "dummy-CEE:SOFTWARE_PLAIN_RAM"
+ },
+ {
+ "ref": "dummy-CEE:SOFTWARE_TEE"
+ },
+ {
+ "ref": "dummy-CEE:UNKNOWN"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.6"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_CryptoExecutionEnvironment-1.6.xml.bin b/tests/_data/snapshots/enum_CryptoExecutionEnvironment-1.6.xml.bin
new file mode 100644
index 00000000..f45d314a
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoExecutionEnvironment-1.6.xml.bin
@@ -0,0 +1,74 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ CryptoExecutionEnvironment: HARDWARE
+
+ algorithm
+
+ hardware
+
+
+
+
+ CryptoExecutionEnvironment: OTHER
+
+ algorithm
+
+ other
+
+
+
+
+ CryptoExecutionEnvironment: SOFTWARE_ENCRYPTED_RAM
+
+ algorithm
+
+ software-encrypted-ram
+
+
+
+
+ CryptoExecutionEnvironment: SOFTWARE_PLAIN_RAM
+
+ algorithm
+
+ software-plain-ram
+
+
+
+
+ CryptoExecutionEnvironment: SOFTWARE_TEE
+
+ algorithm
+
+ software-tee
+
+
+
+
+ CryptoExecutionEnvironment: UNKNOWN
+
+ algorithm
+
+ unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_CryptoExecutionEnvironment-1.7.json.bin b/tests/_data/snapshots/enum_CryptoExecutionEnvironment-1.7.json.bin
new file mode 100644
index 00000000..3d6c2e60
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoExecutionEnvironment-1.7.json.bin
@@ -0,0 +1,108 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CEE:HARDWARE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "executionEnvironment": "hardware"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoExecutionEnvironment: HARDWARE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CEE:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "executionEnvironment": "other"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoExecutionEnvironment: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CEE:SOFTWARE_ENCRYPTED_RAM",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "executionEnvironment": "software-encrypted-ram"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoExecutionEnvironment: SOFTWARE_ENCRYPTED_RAM",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CEE:SOFTWARE_PLAIN_RAM",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "executionEnvironment": "software-plain-ram"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoExecutionEnvironment: SOFTWARE_PLAIN_RAM",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CEE:SOFTWARE_TEE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "executionEnvironment": "software-tee"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoExecutionEnvironment: SOFTWARE_TEE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CEE:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "executionEnvironment": "unknown"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoExecutionEnvironment: UNKNOWN",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CEE:HARDWARE"
+ },
+ {
+ "ref": "dummy-CEE:OTHER"
+ },
+ {
+ "ref": "dummy-CEE:SOFTWARE_ENCRYPTED_RAM"
+ },
+ {
+ "ref": "dummy-CEE:SOFTWARE_PLAIN_RAM"
+ },
+ {
+ "ref": "dummy-CEE:SOFTWARE_TEE"
+ },
+ {
+ "ref": "dummy-CEE:UNKNOWN"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.7.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.7"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_CryptoExecutionEnvironment-1.7.xml.bin b/tests/_data/snapshots/enum_CryptoExecutionEnvironment-1.7.xml.bin
new file mode 100644
index 00000000..fb95914f
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoExecutionEnvironment-1.7.xml.bin
@@ -0,0 +1,74 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ CryptoExecutionEnvironment: HARDWARE
+
+ algorithm
+
+ hardware
+
+
+
+
+ CryptoExecutionEnvironment: OTHER
+
+ algorithm
+
+ other
+
+
+
+
+ CryptoExecutionEnvironment: SOFTWARE_ENCRYPTED_RAM
+
+ algorithm
+
+ software-encrypted-ram
+
+
+
+
+ CryptoExecutionEnvironment: SOFTWARE_PLAIN_RAM
+
+ algorithm
+
+ software-plain-ram
+
+
+
+
+ CryptoExecutionEnvironment: SOFTWARE_TEE
+
+ algorithm
+
+ software-tee
+
+
+
+
+ CryptoExecutionEnvironment: UNKNOWN
+
+ algorithm
+
+ unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_CryptoImplementationPlatform-1.6.json.bin b/tests/_data/snapshots/enum_CryptoImplementationPlatform-1.6.json.bin
new file mode 100644
index 00000000..280d02b1
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoImplementationPlatform-1.6.json.bin
@@ -0,0 +1,220 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CIP:ARMV7_A",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "armv7-a"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: ARMV7_A",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:ARMV7_M",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "armv7-m"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: ARMV7_M",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:ARMV8_A",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "armv8-a"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: ARMV8_A",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:ARMV8_M",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "armv8-m"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: ARMV8_M",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:ARMV9_A",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "armv9-a"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: ARMV9_A",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:ARMV9_M",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "armv9-m"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: ARMV9_M",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:GENERIC",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "generic"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: GENERIC",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "other"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:PPC64",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "ppc64"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: PPC64",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:PPC64LE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "ppc64le"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: PPC64LE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:S390X",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "s390x"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: S390X",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "unknown"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: UNKNOWN",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:X86_32",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "x86_32"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: X86_32",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:X86_64",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "x86_64"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: X86_64",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CIP:ARMV7_A"
+ },
+ {
+ "ref": "dummy-CIP:ARMV7_M"
+ },
+ {
+ "ref": "dummy-CIP:ARMV8_A"
+ },
+ {
+ "ref": "dummy-CIP:ARMV8_M"
+ },
+ {
+ "ref": "dummy-CIP:ARMV9_A"
+ },
+ {
+ "ref": "dummy-CIP:ARMV9_M"
+ },
+ {
+ "ref": "dummy-CIP:GENERIC"
+ },
+ {
+ "ref": "dummy-CIP:OTHER"
+ },
+ {
+ "ref": "dummy-CIP:PPC64"
+ },
+ {
+ "ref": "dummy-CIP:PPC64LE"
+ },
+ {
+ "ref": "dummy-CIP:S390X"
+ },
+ {
+ "ref": "dummy-CIP:UNKNOWN"
+ },
+ {
+ "ref": "dummy-CIP:X86_32"
+ },
+ {
+ "ref": "dummy-CIP:X86_64"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.6"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_CryptoImplementationPlatform-1.6.xml.bin b/tests/_data/snapshots/enum_CryptoImplementationPlatform-1.6.xml.bin
new file mode 100644
index 00000000..ab0c204e
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoImplementationPlatform-1.6.xml.bin
@@ -0,0 +1,154 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ CryptoImplementationPlatform: ARMV7_A
+
+ algorithm
+
+ armv7-a
+
+
+
+
+ CryptoImplementationPlatform: ARMV7_M
+
+ algorithm
+
+ armv7-m
+
+
+
+
+ CryptoImplementationPlatform: ARMV8_A
+
+ algorithm
+
+ armv8-a
+
+
+
+
+ CryptoImplementationPlatform: ARMV8_M
+
+ algorithm
+
+ armv8-m
+
+
+
+
+ CryptoImplementationPlatform: ARMV9_A
+
+ algorithm
+
+ armv9-a
+
+
+
+
+ CryptoImplementationPlatform: ARMV9_M
+
+ algorithm
+
+ armv9-m
+
+
+
+
+ CryptoImplementationPlatform: GENERIC
+
+ algorithm
+
+ generic
+
+
+
+
+ CryptoImplementationPlatform: OTHER
+
+ algorithm
+
+ other
+
+
+
+
+ CryptoImplementationPlatform: PPC64
+
+ algorithm
+
+ ppc64
+
+
+
+
+ CryptoImplementationPlatform: PPC64LE
+
+ algorithm
+
+ ppc64le
+
+
+
+
+ CryptoImplementationPlatform: S390X
+
+ algorithm
+
+ s390x
+
+
+
+
+ CryptoImplementationPlatform: UNKNOWN
+
+ algorithm
+
+ unknown
+
+
+
+
+ CryptoImplementationPlatform: X86_32
+
+ algorithm
+
+ x86_32
+
+
+
+
+ CryptoImplementationPlatform: X86_64
+
+ algorithm
+
+ x86_64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_CryptoImplementationPlatform-1.7.json.bin b/tests/_data/snapshots/enum_CryptoImplementationPlatform-1.7.json.bin
new file mode 100644
index 00000000..d3d88155
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoImplementationPlatform-1.7.json.bin
@@ -0,0 +1,220 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CIP:ARMV7_A",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "armv7-a"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: ARMV7_A",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:ARMV7_M",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "armv7-m"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: ARMV7_M",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:ARMV8_A",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "armv8-a"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: ARMV8_A",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:ARMV8_M",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "armv8-m"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: ARMV8_M",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:ARMV9_A",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "armv9-a"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: ARMV9_A",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:ARMV9_M",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "armv9-m"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: ARMV9_M",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:GENERIC",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "generic"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: GENERIC",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "other"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:PPC64",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "ppc64"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: PPC64",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:PPC64LE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "ppc64le"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: PPC64LE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:S390X",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "s390x"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: S390X",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "unknown"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: UNKNOWN",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:X86_32",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "x86_32"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: X86_32",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:X86_64",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "implementationPlatform": "x86_64"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoImplementationPlatform: X86_64",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CIP:ARMV7_A"
+ },
+ {
+ "ref": "dummy-CIP:ARMV7_M"
+ },
+ {
+ "ref": "dummy-CIP:ARMV8_A"
+ },
+ {
+ "ref": "dummy-CIP:ARMV8_M"
+ },
+ {
+ "ref": "dummy-CIP:ARMV9_A"
+ },
+ {
+ "ref": "dummy-CIP:ARMV9_M"
+ },
+ {
+ "ref": "dummy-CIP:GENERIC"
+ },
+ {
+ "ref": "dummy-CIP:OTHER"
+ },
+ {
+ "ref": "dummy-CIP:PPC64"
+ },
+ {
+ "ref": "dummy-CIP:PPC64LE"
+ },
+ {
+ "ref": "dummy-CIP:S390X"
+ },
+ {
+ "ref": "dummy-CIP:UNKNOWN"
+ },
+ {
+ "ref": "dummy-CIP:X86_32"
+ },
+ {
+ "ref": "dummy-CIP:X86_64"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.7.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.7"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_CryptoImplementationPlatform-1.7.xml.bin b/tests/_data/snapshots/enum_CryptoImplementationPlatform-1.7.xml.bin
new file mode 100644
index 00000000..91b0c9a0
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoImplementationPlatform-1.7.xml.bin
@@ -0,0 +1,154 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ CryptoImplementationPlatform: ARMV7_A
+
+ algorithm
+
+ armv7-a
+
+
+
+
+ CryptoImplementationPlatform: ARMV7_M
+
+ algorithm
+
+ armv7-m
+
+
+
+
+ CryptoImplementationPlatform: ARMV8_A
+
+ algorithm
+
+ armv8-a
+
+
+
+
+ CryptoImplementationPlatform: ARMV8_M
+
+ algorithm
+
+ armv8-m
+
+
+
+
+ CryptoImplementationPlatform: ARMV9_A
+
+ algorithm
+
+ armv9-a
+
+
+
+
+ CryptoImplementationPlatform: ARMV9_M
+
+ algorithm
+
+ armv9-m
+
+
+
+
+ CryptoImplementationPlatform: GENERIC
+
+ algorithm
+
+ generic
+
+
+
+
+ CryptoImplementationPlatform: OTHER
+
+ algorithm
+
+ other
+
+
+
+
+ CryptoImplementationPlatform: PPC64
+
+ algorithm
+
+ ppc64
+
+
+
+
+ CryptoImplementationPlatform: PPC64LE
+
+ algorithm
+
+ ppc64le
+
+
+
+
+ CryptoImplementationPlatform: S390X
+
+ algorithm
+
+ s390x
+
+
+
+
+ CryptoImplementationPlatform: UNKNOWN
+
+ algorithm
+
+ unknown
+
+
+
+
+ CryptoImplementationPlatform: X86_32
+
+ algorithm
+
+ x86_32
+
+
+
+
+ CryptoImplementationPlatform: X86_64
+
+ algorithm
+
+ x86_64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_CryptoMode-1.6.json.bin b/tests/_data/snapshots/enum_CryptoMode-1.6.json.bin
new file mode 100644
index 00000000..c949862a
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoMode-1.6.json.bin
@@ -0,0 +1,150 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CIP:CBC",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "cbc"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: CBC",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CCM",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "ccm"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: CCM",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CFB",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "cfb"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: CFB",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CTR",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "ctr"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: CTR",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:ECB",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "ecb"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: ECB",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:GCM",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "gcm"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: GCM",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:OFB",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "ofb"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: OFB",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "other"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "unknown"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: UNKNOWN",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CIP:CBC"
+ },
+ {
+ "ref": "dummy-CIP:CCM"
+ },
+ {
+ "ref": "dummy-CIP:CFB"
+ },
+ {
+ "ref": "dummy-CIP:CTR"
+ },
+ {
+ "ref": "dummy-CIP:ECB"
+ },
+ {
+ "ref": "dummy-CIP:GCM"
+ },
+ {
+ "ref": "dummy-CIP:OFB"
+ },
+ {
+ "ref": "dummy-CIP:OTHER"
+ },
+ {
+ "ref": "dummy-CIP:UNKNOWN"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.6"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_CryptoMode-1.6.xml.bin b/tests/_data/snapshots/enum_CryptoMode-1.6.xml.bin
new file mode 100644
index 00000000..db49f73d
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoMode-1.6.xml.bin
@@ -0,0 +1,104 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ CryptoMode: CBC
+
+ algorithm
+
+ cbc
+
+
+
+
+ CryptoMode: CCM
+
+ algorithm
+
+ ccm
+
+
+
+
+ CryptoMode: CFB
+
+ algorithm
+
+ cfb
+
+
+
+
+ CryptoMode: CTR
+
+ algorithm
+
+ ctr
+
+
+
+
+ CryptoMode: ECB
+
+ algorithm
+
+ ecb
+
+
+
+
+ CryptoMode: GCM
+
+ algorithm
+
+ gcm
+
+
+
+
+ CryptoMode: OFB
+
+ algorithm
+
+ ofb
+
+
+
+
+ CryptoMode: OTHER
+
+ algorithm
+
+ other
+
+
+
+
+ CryptoMode: UNKNOWN
+
+ algorithm
+
+ unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_CryptoMode-1.7.json.bin b/tests/_data/snapshots/enum_CryptoMode-1.7.json.bin
new file mode 100644
index 00000000..5275eba9
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoMode-1.7.json.bin
@@ -0,0 +1,150 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CIP:CBC",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "cbc"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: CBC",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CCM",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "ccm"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: CCM",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CFB",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "cfb"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: CFB",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:CTR",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "ctr"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: CTR",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:ECB",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "ecb"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: ECB",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:GCM",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "gcm"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: GCM",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:OFB",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "ofb"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: OFB",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "other"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CIP:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "unknown"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: UNKNOWN",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CIP:CBC"
+ },
+ {
+ "ref": "dummy-CIP:CCM"
+ },
+ {
+ "ref": "dummy-CIP:CFB"
+ },
+ {
+ "ref": "dummy-CIP:CTR"
+ },
+ {
+ "ref": "dummy-CIP:ECB"
+ },
+ {
+ "ref": "dummy-CIP:GCM"
+ },
+ {
+ "ref": "dummy-CIP:OFB"
+ },
+ {
+ "ref": "dummy-CIP:OTHER"
+ },
+ {
+ "ref": "dummy-CIP:UNKNOWN"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.7.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.7"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_CryptoMode-1.7.xml.bin b/tests/_data/snapshots/enum_CryptoMode-1.7.xml.bin
new file mode 100644
index 00000000..25618f71
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoMode-1.7.xml.bin
@@ -0,0 +1,104 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ CryptoMode: CBC
+
+ algorithm
+
+ cbc
+
+
+
+
+ CryptoMode: CCM
+
+ algorithm
+
+ ccm
+
+
+
+
+ CryptoMode: CFB
+
+ algorithm
+
+ cfb
+
+
+
+
+ CryptoMode: CTR
+
+ algorithm
+
+ ctr
+
+
+
+
+ CryptoMode: ECB
+
+ algorithm
+
+ ecb
+
+
+
+
+ CryptoMode: GCM
+
+ algorithm
+
+ gcm
+
+
+
+
+ CryptoMode: OFB
+
+ algorithm
+
+ ofb
+
+
+
+
+ CryptoMode: OTHER
+
+ algorithm
+
+ other
+
+
+
+
+ CryptoMode: UNKNOWN
+
+ algorithm
+
+ unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_CryptoPrimitive-1.6.json.bin b/tests/_data/snapshots/enum_CryptoPrimitive-1.6.json.bin
new file mode 100644
index 00000000..656f8677
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoPrimitive-1.6.json.bin
@@ -0,0 +1,234 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CP:AE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "ae"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: AE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:BLOCK_CIPHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "block-cipher"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: BLOCK_CIPHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:COMBINER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "combiner"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: COMBINER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:DRBG",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "drbg"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: DRBG",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:HASH",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "hash"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: HASH",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:KDF",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "kdf"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: KDF",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:KEM",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "kem"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: KEM",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:KEY_AGREE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "key-agree"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: KEY_AGREE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:MAC",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "mac"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: MAC",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "other"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:PKE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "pke"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: PKE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:SIGNATURE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "signature"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: SIGNATURE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:STREAM_CIPHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "stream-cipher"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: STREAM_CIPHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "unknown"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: UNKNOWN",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:XOF",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "xof"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: XOF",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CP:AE"
+ },
+ {
+ "ref": "dummy-CP:BLOCK_CIPHER"
+ },
+ {
+ "ref": "dummy-CP:COMBINER"
+ },
+ {
+ "ref": "dummy-CP:DRBG"
+ },
+ {
+ "ref": "dummy-CP:HASH"
+ },
+ {
+ "ref": "dummy-CP:KDF"
+ },
+ {
+ "ref": "dummy-CP:KEM"
+ },
+ {
+ "ref": "dummy-CP:KEY_AGREE"
+ },
+ {
+ "ref": "dummy-CP:MAC"
+ },
+ {
+ "ref": "dummy-CP:OTHER"
+ },
+ {
+ "ref": "dummy-CP:PKE"
+ },
+ {
+ "ref": "dummy-CP:SIGNATURE"
+ },
+ {
+ "ref": "dummy-CP:STREAM_CIPHER"
+ },
+ {
+ "ref": "dummy-CP:UNKNOWN"
+ },
+ {
+ "ref": "dummy-CP:XOF"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.6"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_CryptoPrimitive-1.6.xml.bin b/tests/_data/snapshots/enum_CryptoPrimitive-1.6.xml.bin
new file mode 100644
index 00000000..658a0b6f
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoPrimitive-1.6.xml.bin
@@ -0,0 +1,164 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ CryptoPrimitive: AE
+
+ algorithm
+
+ ae
+
+
+
+
+ CryptoPrimitive: BLOCK_CIPHER
+
+ algorithm
+
+ block-cipher
+
+
+
+
+ CryptoPrimitive: COMBINER
+
+ algorithm
+
+ combiner
+
+
+
+
+ CryptoPrimitive: DRBG
+
+ algorithm
+
+ drbg
+
+
+
+
+ CryptoPrimitive: HASH
+
+ algorithm
+
+ hash
+
+
+
+
+ CryptoPrimitive: KDF
+
+ algorithm
+
+ kdf
+
+
+
+
+ CryptoPrimitive: KEM
+
+ algorithm
+
+ kem
+
+
+
+
+ CryptoPrimitive: KEY_AGREE
+
+ algorithm
+
+ key-agree
+
+
+
+
+ CryptoPrimitive: MAC
+
+ algorithm
+
+ mac
+
+
+
+
+ CryptoPrimitive: OTHER
+
+ algorithm
+
+ other
+
+
+
+
+ CryptoPrimitive: PKE
+
+ algorithm
+
+ pke
+
+
+
+
+ CryptoPrimitive: SIGNATURE
+
+ algorithm
+
+ signature
+
+
+
+
+ CryptoPrimitive: STREAM_CIPHER
+
+ algorithm
+
+ stream-cipher
+
+
+
+
+ CryptoPrimitive: UNKNOWN
+
+ algorithm
+
+ unknown
+
+
+
+
+ CryptoPrimitive: XOF
+
+ algorithm
+
+ xof
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_CryptoPrimitive-1.7.json.bin b/tests/_data/snapshots/enum_CryptoPrimitive-1.7.json.bin
new file mode 100644
index 00000000..e78b7d81
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoPrimitive-1.7.json.bin
@@ -0,0 +1,234 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CP:AE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "ae"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: AE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:BLOCK_CIPHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "block-cipher"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: BLOCK_CIPHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:COMBINER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "combiner"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: COMBINER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:DRBG",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "drbg"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: DRBG",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:HASH",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "hash"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: HASH",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:KDF",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "kdf"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: KDF",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:KEM",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "kem"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: KEM",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:KEY_AGREE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "key-agree"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: KEY_AGREE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:MAC",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "mac"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: MAC",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "other"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:PKE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "pke"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: PKE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:SIGNATURE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "signature"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: SIGNATURE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:STREAM_CIPHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "stream-cipher"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: STREAM_CIPHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "unknown"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: UNKNOWN",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:XOF",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "xof"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: XOF",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CP:AE"
+ },
+ {
+ "ref": "dummy-CP:BLOCK_CIPHER"
+ },
+ {
+ "ref": "dummy-CP:COMBINER"
+ },
+ {
+ "ref": "dummy-CP:DRBG"
+ },
+ {
+ "ref": "dummy-CP:HASH"
+ },
+ {
+ "ref": "dummy-CP:KDF"
+ },
+ {
+ "ref": "dummy-CP:KEM"
+ },
+ {
+ "ref": "dummy-CP:KEY_AGREE"
+ },
+ {
+ "ref": "dummy-CP:MAC"
+ },
+ {
+ "ref": "dummy-CP:OTHER"
+ },
+ {
+ "ref": "dummy-CP:PKE"
+ },
+ {
+ "ref": "dummy-CP:SIGNATURE"
+ },
+ {
+ "ref": "dummy-CP:STREAM_CIPHER"
+ },
+ {
+ "ref": "dummy-CP:UNKNOWN"
+ },
+ {
+ "ref": "dummy-CP:XOF"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.7.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.7"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_CryptoPrimitive-1.7.xml.bin b/tests/_data/snapshots/enum_CryptoPrimitive-1.7.xml.bin
new file mode 100644
index 00000000..5e5591c9
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoPrimitive-1.7.xml.bin
@@ -0,0 +1,164 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ CryptoPrimitive: AE
+
+ algorithm
+
+ ae
+
+
+
+
+ CryptoPrimitive: BLOCK_CIPHER
+
+ algorithm
+
+ block-cipher
+
+
+
+
+ CryptoPrimitive: COMBINER
+
+ algorithm
+
+ combiner
+
+
+
+
+ CryptoPrimitive: DRBG
+
+ algorithm
+
+ drbg
+
+
+
+
+ CryptoPrimitive: HASH
+
+ algorithm
+
+ hash
+
+
+
+
+ CryptoPrimitive: KDF
+
+ algorithm
+
+ kdf
+
+
+
+
+ CryptoPrimitive: KEM
+
+ algorithm
+
+ kem
+
+
+
+
+ CryptoPrimitive: KEY_AGREE
+
+ algorithm
+
+ key-agree
+
+
+
+
+ CryptoPrimitive: MAC
+
+ algorithm
+
+ mac
+
+
+
+
+ CryptoPrimitive: OTHER
+
+ algorithm
+
+ other
+
+
+
+
+ CryptoPrimitive: PKE
+
+ algorithm
+
+ pke
+
+
+
+
+ CryptoPrimitive: SIGNATURE
+
+ algorithm
+
+ signature
+
+
+
+
+ CryptoPrimitive: STREAM_CIPHER
+
+ algorithm
+
+ stream-cipher
+
+
+
+
+ CryptoPrimitive: UNKNOWN
+
+ algorithm
+
+ unknown
+
+
+
+
+ CryptoPrimitive: XOF
+
+ algorithm
+
+ xof
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_IdentityField-1.0.xml.bin b/tests/_data/snapshots/enum_IdentityField-1.0.xml.bin
new file mode 100644
index 00000000..068b881e
--- /dev/null
+++ b/tests/_data/snapshots/enum_IdentityField-1.0.xml.bin
@@ -0,0 +1,10 @@
+
+
+
+
+ dummy
+
+ false
+
+
+
diff --git a/tests/_data/snapshots/enum_IdentityField-1.1.xml.bin b/tests/_data/snapshots/enum_IdentityField-1.1.xml.bin
new file mode 100644
index 00000000..6212e7a1
--- /dev/null
+++ b/tests/_data/snapshots/enum_IdentityField-1.1.xml.bin
@@ -0,0 +1,9 @@
+
+
+
+
+ dummy
+
+
+
+
diff --git a/tests/_data/snapshots/enum_IdentityField-1.2.json.bin b/tests/_data/snapshots/enum_IdentityField-1.2.json.bin
new file mode 100644
index 00000000..e1304da3
--- /dev/null
+++ b/tests/_data/snapshots/enum_IdentityField-1.2.json.bin
@@ -0,0 +1,23 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "name": "dummy",
+ "type": "library",
+ "version": ""
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.2b.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.2"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_IdentityField-1.2.xml.bin b/tests/_data/snapshots/enum_IdentityField-1.2.xml.bin
new file mode 100644
index 00000000..d6f32a85
--- /dev/null
+++ b/tests/_data/snapshots/enum_IdentityField-1.2.xml.bin
@@ -0,0 +1,15 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+
+
+
+
+
diff --git a/tests/_data/snapshots/enum_IdentityField-1.3.json.bin b/tests/_data/snapshots/enum_IdentityField-1.3.json.bin
new file mode 100644
index 00000000..2b110ae7
--- /dev/null
+++ b/tests/_data/snapshots/enum_IdentityField-1.3.json.bin
@@ -0,0 +1,24 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "evidence": {},
+ "name": "dummy",
+ "type": "library",
+ "version": ""
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.3a.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.3"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_IdentityField-1.3.xml.bin b/tests/_data/snapshots/enum_IdentityField-1.3.xml.bin
new file mode 100644
index 00000000..98358e5d
--- /dev/null
+++ b/tests/_data/snapshots/enum_IdentityField-1.3.xml.bin
@@ -0,0 +1,16 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+
+
+
+
+
+
diff --git a/tests/_data/snapshots/enum_IdentityField-1.4.json.bin b/tests/_data/snapshots/enum_IdentityField-1.4.json.bin
new file mode 100644
index 00000000..c063eda5
--- /dev/null
+++ b/tests/_data/snapshots/enum_IdentityField-1.4.json.bin
@@ -0,0 +1,23 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "evidence": {},
+ "name": "dummy",
+ "type": "library"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_IdentityField-1.4.xml.bin b/tests/_data/snapshots/enum_IdentityField-1.4.xml.bin
new file mode 100644
index 00000000..91e492a2
--- /dev/null
+++ b/tests/_data/snapshots/enum_IdentityField-1.4.xml.bin
@@ -0,0 +1,15 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+
+
+
+
+
diff --git a/tests/_data/snapshots/enum_IdentityField-1.5.json.bin b/tests/_data/snapshots/enum_IdentityField-1.5.json.bin
new file mode 100644
index 00000000..44c3b4ad
--- /dev/null
+++ b/tests/_data/snapshots/enum_IdentityField-1.5.json.bin
@@ -0,0 +1,37 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "evidence": {
+ "identity": {
+ "field": "cpe"
+ }
+ },
+ "name": "dummy",
+ "type": "library"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.5"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_IdentityField-1.5.xml.bin b/tests/_data/snapshots/enum_IdentityField-1.5.xml.bin
new file mode 100644
index 00000000..fde866a5
--- /dev/null
+++ b/tests/_data/snapshots/enum_IdentityField-1.5.xml.bin
@@ -0,0 +1,23 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+ cpe
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_IdentityField-1.6.json.bin b/tests/_data/snapshots/enum_IdentityField-1.6.json.bin
new file mode 100644
index 00000000..2e3c30de
--- /dev/null
+++ b/tests/_data/snapshots/enum_IdentityField-1.6.json.bin
@@ -0,0 +1,72 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "evidence": {
+ "identity": [
+ {
+ "concludedValue": "CPE",
+ "field": "cpe"
+ },
+ {
+ "concludedValue": "GROUP",
+ "field": "group"
+ },
+ {
+ "concludedValue": "HASH",
+ "field": "hash"
+ },
+ {
+ "concludedValue": "NAME",
+ "field": "name"
+ },
+ {
+ "concludedValue": "OMNIBOR_ID",
+ "field": "omniborId"
+ },
+ {
+ "concludedValue": "PURL",
+ "field": "purl"
+ },
+ {
+ "concludedValue": "SWHID",
+ "field": "swhid"
+ },
+ {
+ "concludedValue": "SWID",
+ "field": "swid"
+ },
+ {
+ "concludedValue": "VERSION",
+ "field": "version"
+ }
+ ]
+ },
+ "name": "dummy",
+ "type": "library"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.6"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_IdentityField-1.6.xml.bin b/tests/_data/snapshots/enum_IdentityField-1.6.xml.bin
new file mode 100644
index 00000000..8a66b520
--- /dev/null
+++ b/tests/_data/snapshots/enum_IdentityField-1.6.xml.bin
@@ -0,0 +1,56 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+ cpe
+ CPE
+
+
+ group
+ GROUP
+
+
+ hash
+ HASH
+
+
+ name
+ NAME
+
+
+ omniborId
+ OMNIBOR_ID
+
+
+ purl
+ PURL
+
+
+ swhid
+ SWHID
+
+
+ swid
+ SWID
+
+
+ version
+ VERSION
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_IdentityField-1.7.json.bin b/tests/_data/snapshots/enum_IdentityField-1.7.json.bin
new file mode 100644
index 00000000..acd988ce
--- /dev/null
+++ b/tests/_data/snapshots/enum_IdentityField-1.7.json.bin
@@ -0,0 +1,72 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "evidence": {
+ "identity": [
+ {
+ "concludedValue": "CPE",
+ "field": "cpe"
+ },
+ {
+ "concludedValue": "GROUP",
+ "field": "group"
+ },
+ {
+ "concludedValue": "HASH",
+ "field": "hash"
+ },
+ {
+ "concludedValue": "NAME",
+ "field": "name"
+ },
+ {
+ "concludedValue": "OMNIBOR_ID",
+ "field": "omniborId"
+ },
+ {
+ "concludedValue": "PURL",
+ "field": "purl"
+ },
+ {
+ "concludedValue": "SWHID",
+ "field": "swhid"
+ },
+ {
+ "concludedValue": "SWID",
+ "field": "swid"
+ },
+ {
+ "concludedValue": "VERSION",
+ "field": "version"
+ }
+ ]
+ },
+ "name": "dummy",
+ "type": "library"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.7.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.7"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_IdentityField-1.7.xml.bin b/tests/_data/snapshots/enum_IdentityField-1.7.xml.bin
new file mode 100644
index 00000000..91144a02
--- /dev/null
+++ b/tests/_data/snapshots/enum_IdentityField-1.7.xml.bin
@@ -0,0 +1,56 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+ cpe
+ CPE
+
+
+ group
+ GROUP
+
+
+ hash
+ HASH
+
+
+ name
+ NAME
+
+
+ omniborId
+ OMNIBOR_ID
+
+
+ purl
+ PURL
+
+
+ swhid
+ SWHID
+
+
+ swid
+ SWID
+
+
+ version
+ VERSION
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_LicenseAcknowledgement-1.0.xml.bin b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.0.xml.bin
new file mode 100644
index 00000000..068b881e
--- /dev/null
+++ b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.0.xml.bin
@@ -0,0 +1,10 @@
+
+
+
+
+ dummy
+
+ false
+
+
+
diff --git a/tests/_data/snapshots/enum_LicenseAcknowledgement-1.1.xml.bin b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.1.xml.bin
new file mode 100644
index 00000000..286f4b44
--- /dev/null
+++ b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.1.xml.bin
@@ -0,0 +1,17 @@
+
+
+
+
+ dummy
+
+
+
+ LicenseAcknowledgement: CONCLUDED
+
+
+ LicenseAcknowledgement: DECLARED
+
+
+
+
+
diff --git a/tests/_data/snapshots/enum_LicenseAcknowledgement-1.2.json.bin b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.2.json.bin
new file mode 100644
index 00000000..ad73237b
--- /dev/null
+++ b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.2.json.bin
@@ -0,0 +1,35 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "licenses": [
+ {
+ "license": {
+ "name": "LicenseAcknowledgement: CONCLUDED"
+ }
+ },
+ {
+ "license": {
+ "name": "LicenseAcknowledgement: DECLARED"
+ }
+ }
+ ],
+ "name": "dummy",
+ "type": "library",
+ "version": ""
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.2b.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.2"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_LicenseAcknowledgement-1.2.xml.bin b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.2.xml.bin
new file mode 100644
index 00000000..a194bbc4
--- /dev/null
+++ b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.2.xml.bin
@@ -0,0 +1,23 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+
+ LicenseAcknowledgement: CONCLUDED
+
+
+ LicenseAcknowledgement: DECLARED
+
+
+
+
+
+
+
+
diff --git a/tests/_data/snapshots/enum_LicenseAcknowledgement-1.3.json.bin b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.3.json.bin
new file mode 100644
index 00000000..b10b2d7a
--- /dev/null
+++ b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.3.json.bin
@@ -0,0 +1,35 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "licenses": [
+ {
+ "license": {
+ "name": "LicenseAcknowledgement: CONCLUDED"
+ }
+ },
+ {
+ "license": {
+ "name": "LicenseAcknowledgement: DECLARED"
+ }
+ }
+ ],
+ "name": "dummy",
+ "type": "library",
+ "version": ""
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.3a.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.3"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_LicenseAcknowledgement-1.3.xml.bin b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.3.xml.bin
new file mode 100644
index 00000000..5c050d8a
--- /dev/null
+++ b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.3.xml.bin
@@ -0,0 +1,23 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+
+ LicenseAcknowledgement: CONCLUDED
+
+
+ LicenseAcknowledgement: DECLARED
+
+
+
+
+
+
+
+
diff --git a/tests/_data/snapshots/enum_LicenseAcknowledgement-1.4.json.bin b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.4.json.bin
new file mode 100644
index 00000000..169eaebb
--- /dev/null
+++ b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.4.json.bin
@@ -0,0 +1,34 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "licenses": [
+ {
+ "license": {
+ "name": "LicenseAcknowledgement: CONCLUDED"
+ }
+ },
+ {
+ "license": {
+ "name": "LicenseAcknowledgement: DECLARED"
+ }
+ }
+ ],
+ "name": "dummy",
+ "type": "library"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.4"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_LicenseAcknowledgement-1.4.xml.bin b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.4.xml.bin
new file mode 100644
index 00000000..41371698
--- /dev/null
+++ b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.4.xml.bin
@@ -0,0 +1,22 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+ LicenseAcknowledgement: CONCLUDED
+
+
+ LicenseAcknowledgement: DECLARED
+
+
+
+
+
+
+
+
diff --git a/tests/_data/snapshots/enum_LicenseAcknowledgement-1.5.json.bin b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.5.json.bin
new file mode 100644
index 00000000..b0ff6171
--- /dev/null
+++ b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.5.json.bin
@@ -0,0 +1,44 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "licenses": [
+ {
+ "license": {
+ "name": "LicenseAcknowledgement: CONCLUDED"
+ }
+ },
+ {
+ "license": {
+ "name": "LicenseAcknowledgement: DECLARED"
+ }
+ }
+ ],
+ "name": "dummy",
+ "type": "library"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.5"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_LicenseAcknowledgement-1.5.xml.bin b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.5.xml.bin
new file mode 100644
index 00000000..64bc5106
--- /dev/null
+++ b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.5.xml.bin
@@ -0,0 +1,26 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+ LicenseAcknowledgement: CONCLUDED
+
+
+ LicenseAcknowledgement: DECLARED
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_LicenseAcknowledgement-1.6.json.bin b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.6.json.bin
new file mode 100644
index 00000000..3fa3c927
--- /dev/null
+++ b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.6.json.bin
@@ -0,0 +1,46 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "licenses": [
+ {
+ "license": {
+ "acknowledgement": "concluded",
+ "name": "LicenseAcknowledgement: CONCLUDED"
+ }
+ },
+ {
+ "license": {
+ "acknowledgement": "declared",
+ "name": "LicenseAcknowledgement: DECLARED"
+ }
+ }
+ ],
+ "name": "dummy",
+ "type": "library"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.6"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_LicenseAcknowledgement-1.6.xml.bin b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.6.xml.bin
new file mode 100644
index 00000000..7a92ab4f
--- /dev/null
+++ b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.6.xml.bin
@@ -0,0 +1,26 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+ LicenseAcknowledgement: CONCLUDED
+
+
+ LicenseAcknowledgement: DECLARED
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_LicenseAcknowledgement-1.7.json.bin b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.7.json.bin
new file mode 100644
index 00000000..2e9aee73
--- /dev/null
+++ b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.7.json.bin
@@ -0,0 +1,46 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy",
+ "licenses": [
+ {
+ "license": {
+ "acknowledgement": "concluded",
+ "name": "LicenseAcknowledgement: CONCLUDED"
+ }
+ },
+ {
+ "license": {
+ "acknowledgement": "declared",
+ "name": "LicenseAcknowledgement: DECLARED"
+ }
+ }
+ ],
+ "name": "dummy",
+ "type": "library"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy"
+ }
+ ],
+ "metadata": {
+ "timestamp": "2023-01-07T13:44:32.312678+00:00"
+ },
+ "properties": [
+ {
+ "name": "key1",
+ "value": "val1"
+ },
+ {
+ "name": "key2",
+ "value": "val2"
+ }
+ ],
+ "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac",
+ "version": 1,
+ "$schema": "http://cyclonedx.org/schema/bom-1.7.schema.json",
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.7"
+}
\ No newline at end of file
diff --git a/tests/_data/snapshots/enum_LicenseAcknowledgement-1.7.xml.bin b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.7.xml.bin
new file mode 100644
index 00000000..373ffa7b
--- /dev/null
+++ b/tests/_data/snapshots/enum_LicenseAcknowledgement-1.7.xml.bin
@@ -0,0 +1,26 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ dummy
+
+
+ LicenseAcknowledgement: CONCLUDED
+
+
+ LicenseAcknowledgement: DECLARED
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/test_enums.py b/tests/test_enums.py
index 1d749d63..550f7e43 100644
--- a/tests/test_enums.py
+++ b/tests/test_enums.py
@@ -15,12 +15,15 @@
# SPDX-License-Identifier: Apache-2.0
# Copyright (c) OWASP Foundation. All Rights Reserved.
-
+import ast
from collections.abc import Generator, Iterable
+from decimal import Decimal
from enum import Enum
+from glob import glob
from itertools import chain
from json import load as json_load
-from typing import Any
+from os import path
+from typing import Any, Optional
from unittest import TestCase
from warnings import warn
from xml.etree.ElementTree import parse as xml_parse # nosec B405
@@ -32,6 +35,8 @@
from cyclonedx.model import AttachedText, ExternalReference, HashType, XsUri
from cyclonedx.model.bom import Bom, BomMetaData, DistributionConstraints, TlpClassification
from cyclonedx.model.component import Component, Patch, Pedigree
+from cyclonedx.model.component_evidence import ComponentEvidence, Identity as CEIdentity, Method as CEMethod
+from cyclonedx.model.crypto import CryptoProperties, AlgorithmProperties
from cyclonedx.model.issue import IssueType
from cyclonedx.model.license import DisjunctiveLicense
from cyclonedx.model.lifecycle import LifecyclePhase, PredefinedLifecycle
@@ -63,6 +68,10 @@
ComponentType,
PatchClassification,
)
+from cyclonedx.model.component_evidence import ( # isort:skip
+ AnalysisTechnique,
+ IdentityField,
+)
from cyclonedx.model.impact_analysis import ( # isort:skip
ImpactAnalysisAffectedStatus,
ImpactAnalysisJustification,
@@ -72,10 +81,26 @@
from cyclonedx.model.issue import ( # isort:skip
IssueClassification,
)
+from cyclonedx.model.license import ( # isort:skip
+ LicenseAcknowledgement
+)
from cyclonedx.model.vulnerability import ( # isort:skip
VulnerabilityScoreSource,
VulnerabilitySeverity,
)
+from cyclonedx.model.crypto import ( # isort:skip
+ CryptoAssetType,
+ CryptoPrimitive,
+ CryptoExecutionEnvironment,
+ CryptoImplementationPlatform,
+ CryptoCertificationLevel,
+ CryptoMode,
+ CryptoPadding,
+ CryptoFunction,
+ RelatedCryptoMaterialType,
+ RelatedCryptoMaterialState,
+ ProtocolPropertiesType,
+)
# endregion SUT
@@ -86,14 +111,18 @@
def dp_cases_from_xml_schema(sf: str, xpath: str) -> Generator[str, None, None]:
for el in xml_parse(sf).iterfind(f'{xpath}/{SCHEMA_NS}restriction/{SCHEMA_NS}enumeration'): # nosec B314
yield el.get('value')
+ # warn if no such structure
-def dp_cases_from_xml_schemas(xpath: str) -> Generator[str, None, None]:
+def dp_cases_from_xml_schemas(xpath: str) -> set[str]:
+ cases: set[str] = set()
for sf in SCHEMA_XML.values():
if sf is None:
continue
- yield from dp_cases_from_xml_schema(sf, xpath)
-
+ cases.update(dp_cases_from_xml_schema(sf, xpath))
+ if len(cases) == 0:
+ raise ValueError(f'no values for xpath: {xpath!r}')
+ return cases
def dp_cases_from_json_schema(sf: str, jsonpointer: Iterable[str]) -> Generator[str, None, None]:
with open(sf) as sfh:
@@ -102,15 +131,20 @@ def dp_cases_from_json_schema(sf: str, jsonpointer: Iterable[str]) -> Generator[
for pp in jsonpointer:
data = data[pp]
except KeyError:
+ # warn if no such structure
return
yield from data['enum']
-def dp_cases_from_json_schemas(*jsonpointer: str) -> Generator[str, None, None]:
+def dp_cases_from_json_schemas(*jsonpointer: str) -> set[str]:
+ cases: set[str] = set()
for sf in SCHEMA_JSON.values():
if sf is None:
continue
- yield from dp_cases_from_json_schema(sf, jsonpointer)
+ cases.update(dp_cases_from_json_schema(sf, jsonpointer))
+ if len(cases) == 0:
+ raise ValueError(f'no values for jsonpointer: {jsonpointer!r}')
+ return cases
UNSUPPORTED_OF_SV = frozenset([
@@ -479,7 +513,7 @@ class TestEnumLifecyclePhase(_EnumTestCase):
@idata(set(chain(
dp_cases_from_xml_schemas(f"./{SCHEMA_NS}simpleType[@name='lifecyclePhaseType']"),
- dp_cases_from_json_schemas('definitions', 'metadata', 'properties', 'lifecycles', 'items', 'phase'),
+ dp_cases_from_json_schemas('definitions', 'metadata', 'properties', 'lifecycles', 'items', 'oneOf', 0, 'properties', 'phase'),
)))
def test_knows_value(self, value: str) -> None:
super()._test_knows_value(LifecyclePhase, value)
@@ -508,3 +542,330 @@ def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any,
distribution_constraints=DistributionConstraints(tlp=TlpClassification.CLEAR)
))
super()._test_cases_render(bom, of, sv)
+
+
+@ddt
+class TestEnumLicenseAcknowledgement(_EnumTestCase):
+
+ @idata(set(chain(
+ dp_cases_from_xml_schemas(f"./{SCHEMA_NS}simpleType[@name='licenseAcknowledgementEnumerationType']"),
+ dp_cases_from_json_schemas('definitions', 'licenseAcknowledgementEnumeration'),
+ )))
+ def test_knows_value(self, value: str) -> None:
+ super()._test_knows_value(LicenseAcknowledgement, value)
+
+ @named_data(*NAMED_OF_SV)
+ def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None:
+ bom = _make_bom(components=[Component(name='dummy', type=ComponentType.LIBRARY, bom_ref='dummy', licenses=(
+ DisjunctiveLicense(name=f'LicenseAcknowledgement: {la.name}',
+ acknowledgement=la,
+ ) for la in LicenseAcknowledgement
+ ))])
+ super()._test_cases_render(bom, of, sv)
+
+
+@ddt
+class TestEnumIdentityField(_EnumTestCase):
+
+ @idata(set(chain(
+ dp_cases_from_xml_schemas(f"./{SCHEMA_NS}simpleType[@name='identityFieldType']"),
+ dp_cases_from_json_schemas('definitions', 'componentIdentityEvidence', 'properties', 'field'),
+ )))
+ def test_knows_value(self, value: str) -> None:
+ super()._test_knows_value(IdentityField, value)
+
+ @named_data(*NAMED_OF_SV)
+ def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None:
+ bom = _make_bom(components=[
+ Component(
+ name='dummy', type=ComponentType.LIBRARY, bom_ref='dummy',
+ evidence=ComponentEvidence(identity=[
+ CEIdentity(
+ field=ce_if,
+ concluded_value=f'{ce_if.name}'
+ ) for ce_if in IdentityField
+ ]))
+ ])
+ super()._test_cases_render(bom, of, sv)
+
+
+@ddt
+class TestEnumAnalysisTechnique(_EnumTestCase):
+
+ @idata(set(chain(
+ dp_cases_from_xml_schemas(f"./{SCHEMA_NS}simpleType[@name='evidenceTechnique']"),
+ dp_cases_from_json_schemas('definitions', 'componentIdentityEvidence', 'properties',
+ 'methods', 'items', 'properties', 'technique'),
+ )))
+ def test_knows_value(self, value: str) -> None:
+ super()._test_knows_value(AnalysisTechnique, value)
+
+ @named_data(*NAMED_OF_SV)
+ def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None:
+ bom = _make_bom(
+ components=[
+ Component(
+ name='dummy', type=ComponentType.LIBRARY, bom_ref='dummy',
+ evidence=ComponentEvidence(identity=[
+ CEIdentity(
+ field=IdentityField.NAME,
+ methods=[
+ CEMethod(
+ confidence=Decimal(1.0),
+ value=f'AnalysisTechnique: {ce_at.name}',
+ technique=ce_at,
+ ) for ce_at in AnalysisTechnique
+ ])
+ ])
+ )
+ ])
+ super()._test_cases_render(bom, of, sv)
+
+@ddt
+class TestEnumCryptoAssetType(_EnumTestCase):
+
+ @idata(set(chain(
+ dp_cases_from_xml_schemas(f"./{SCHEMA_NS}complexType[@name='cryptoPropertiesType']/{SCHEMA_NS}sequence/{SCHEMA_NS}element[@name='assetType']/{SCHEMA_NS}simpleType"),
+ dp_cases_from_json_schemas('definitions', 'cryptoProperties', 'properties', 'assetType'),
+ )))
+ def test_knows_value(self, value: str) -> None:
+ super()._test_knows_value(CryptoAssetType, value)
+
+ @named_data(*(d for d in NAMED_OF_SV if d[2] >= SchemaVersion.V1_6 ))
+ def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None:
+ bom = _make_bom(
+ components=[
+ Component(
+ name=f'CryptoAssetType: {cat.name}', bom_ref=f'dummy-CAT:{cat.name}',
+ type=ComponentType.CRYPTOGRAPHIC_ASSET,
+ crypto_properties=CryptoProperties(
+ asset_type=cat
+ )
+ ) for cat in CryptoAssetType
+ ])
+ super()._test_cases_render(bom, of, sv)
+
+
+@ddt
+class TestEnumCryptoPrimitive(_EnumTestCase):
+
+ @idata(set(chain(
+ dp_cases_from_xml_schemas(f"./{SCHEMA_NS}complexType[@name='cryptoPropertiesType']/{SCHEMA_NS}sequence/{SCHEMA_NS}element[@name='algorithmProperties']/{SCHEMA_NS}complexType/{SCHEMA_NS}sequence/{SCHEMA_NS}element[@name='primitive']/{SCHEMA_NS}simpleType"),
+ dp_cases_from_json_schemas('definitions', 'cryptoProperties', 'properties', 'algorithmProperties', 'properties', 'primitive'),
+ )))
+ def test_knows_value(self, value: str) -> None:
+ super()._test_knows_value(CryptoPrimitive, value)
+
+ @named_data(*(d for d in NAMED_OF_SV if d[2] >= SchemaVersion.V1_6 ))
+ def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None:
+ bom = _make_bom(
+ components=[
+ Component(
+ name=f'CryptoPrimitive: {cp.name}', bom_ref=f'dummy-CP:{cp.name}',
+ type=ComponentType.CRYPTOGRAPHIC_ASSET,
+ crypto_properties=CryptoProperties(
+ asset_type=CryptoAssetType.ALGORITHM,
+ algorithm_properties=AlgorithmProperties(
+ primitive=cp
+ )
+ )
+ ) for cp in CryptoPrimitive
+ ])
+ super()._test_cases_render(bom, of, sv)
+
+
+@ddt
+class TestEnumCryptoExecutionEnvironment(_EnumTestCase):
+
+ @idata(set(chain(
+ dp_cases_from_xml_schemas(f"./{SCHEMA_NS}complexType[@name='cryptoPropertiesType']/{SCHEMA_NS}sequence/{SCHEMA_NS}element[@name='algorithmProperties']/{SCHEMA_NS}complexType/{SCHEMA_NS}sequence/{SCHEMA_NS}element[@name='executionEnvironment']/{SCHEMA_NS}simpleType"),
+ dp_cases_from_json_schemas('definitions', 'cryptoProperties', 'properties', 'algorithmProperties', 'properties', 'executionEnvironment'),
+ )))
+ def test_knows_value(self, value: str) -> None:
+ super()._test_knows_value(CryptoExecutionEnvironment, value)
+
+ @named_data(*(d for d in NAMED_OF_SV if d[2] >= SchemaVersion.V1_6 ))
+ def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None:
+ bom = _make_bom(
+ components=[
+ Component(
+ name=f'CryptoExecutionEnvironment: {cee.name}', bom_ref=f'dummy-CEE:{cee.name}',
+ type=ComponentType.CRYPTOGRAPHIC_ASSET,
+ crypto_properties=CryptoProperties(
+ asset_type=CryptoAssetType.ALGORITHM,
+ algorithm_properties=AlgorithmProperties(
+ execution_environment=cee
+ )
+ )
+ ) for cee in CryptoExecutionEnvironment
+ ])
+ super()._test_cases_render(bom, of, sv)
+
+
+
+@ddt
+class TestEnumCryptoImplementationPlatform (_EnumTestCase):
+
+ @idata(set(chain(
+ dp_cases_from_xml_schemas(f"./{SCHEMA_NS}complexType[@name='cryptoPropertiesType']/{SCHEMA_NS}sequence/{SCHEMA_NS}element[@name='algorithmProperties']/{SCHEMA_NS}complexType/{SCHEMA_NS}sequence/{SCHEMA_NS}element[@name='implementationPlatform']/{SCHEMA_NS}simpleType"),
+ dp_cases_from_json_schemas('definitions', 'cryptoProperties', 'properties', 'algorithmProperties', 'properties', 'implementationPlatform'),
+ )))
+ def test_knows_value(self, value: str) -> None:
+ super()._test_knows_value(CryptoImplementationPlatform, value)
+
+ @named_data(*(d for d in NAMED_OF_SV if d[2] >= SchemaVersion.V1_6 ))
+ def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None:
+ bom = _make_bom(
+ components=[
+ Component(
+ name=f'CryptoImplementationPlatform: {cip.name}', bom_ref=f'dummy-CIP:{cip.name}',
+ type=ComponentType.CRYPTOGRAPHIC_ASSET,
+ crypto_properties=CryptoProperties(
+ asset_type=CryptoAssetType.ALGORITHM,
+ algorithm_properties=AlgorithmProperties(
+ implementation_platform=cip
+ )
+ )
+ ) for cip in CryptoImplementationPlatform
+ ])
+ super()._test_cases_render(bom, of, sv)
+
+
+@ddt
+class TestEnumCryptoCertificationLevel (_EnumTestCase):
+
+ @idata(set(chain(
+ dp_cases_from_xml_schemas(f"./{SCHEMA_NS}complexType[@name='cryptoPropertiesType']/{SCHEMA_NS}sequence/{SCHEMA_NS}element[@name='algorithmProperties']/{SCHEMA_NS}complexType/{SCHEMA_NS}sequence/{SCHEMA_NS}element[@name='certificationLevel']/{SCHEMA_NS}simpleType"),
+ dp_cases_from_json_schemas('definitions', 'cryptoProperties', 'properties', 'algorithmProperties', 'properties', 'certificationLevel', 'items'),
+ )))
+ def test_knows_value(self, value: str) -> None:
+ super()._test_knows_value(CryptoCertificationLevel, value)
+
+ @named_data(*(d for d in NAMED_OF_SV if d[2] >= SchemaVersion.V1_6 ))
+ def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None:
+ bom = _make_bom(
+ components=[
+ Component(
+ name=f'CryptoCertificationLevel: {ccl.name}', bom_ref=f'dummy-CIP:{ccl.name}',
+ type=ComponentType.CRYPTOGRAPHIC_ASSET,
+ crypto_properties=CryptoProperties(
+ asset_type=CryptoAssetType.ALGORITHM,
+ algorithm_properties=AlgorithmProperties(
+ certification_levels=[ccl]
+ )
+ )
+ ) for ccl in CryptoCertificationLevel
+ ])
+ super()._test_cases_render(bom, of, sv)
+
+
+
+@ddt
+class TestEnumCryptoMode(_EnumTestCase):
+
+ @idata(set(chain(
+ dp_cases_from_xml_schemas(f"./{SCHEMA_NS}complexType[@name='cryptoPropertiesType']/{SCHEMA_NS}sequence/{SCHEMA_NS}element[@name='algorithmProperties']/{SCHEMA_NS}complexType/{SCHEMA_NS}sequence/{SCHEMA_NS}element[@name='mode']/{SCHEMA_NS}simpleType"),
+ dp_cases_from_json_schemas('definitions', 'cryptoProperties', 'properties', 'algorithmProperties', 'properties', 'mode'),
+ )))
+ def test_knows_value(self, value: str) -> None:
+ super()._test_knows_value(CryptoMode, value)
+
+ @named_data(*(d for d in NAMED_OF_SV if d[2] >= SchemaVersion.V1_6 ))
+ def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None:
+ bom = _make_bom(
+ components=[
+ Component(
+ name=f'CryptoMode: {cm.name}', bom_ref=f'dummy-CIP:{cm.name}',
+ type=ComponentType.CRYPTOGRAPHIC_ASSET,
+ crypto_properties=CryptoProperties(
+ asset_type=CryptoAssetType.ALGORITHM,
+ algorithm_properties=AlgorithmProperties(
+ mode=cm
+ )
+ )
+ ) for cm in CryptoMode
+ ])
+ super()._test_cases_render(bom, of, sv)
+
+
+"""
+@ddt
+class TestEnum...(_EnumTestCase):
+
+ @idata(set(chain(
+ dp_cases_from_xml_schemas(f"./{SCHEMA_NS}simpleType[@name='...']"),
+ dp_cases_from_json_schemas('definitions', '...'),
+ )))
+ def test_knows_value(self, value: str) -> None:
+ super()._test_knows_value(..., value)
+
+ @named_data(*(d for d in NAMED_OF_SV if d[2] >= SchemaVersion.V1_6 ))
+ def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None:
+ bom = _make_bom(
+ components=[
+ ...
+ ])
+ super()._test_cases_render(bom, of, sv)
+
+"""
+
+"""
+missing:
+- CryptoPadding
+- CryptoFunction
+- RelatedCryptoMaterialType
+- RelatedCryptoMaterialState
+- ProtocolPropertiesType
+"""
+
+# add new test cases above this line
+
+
+@ddt
+class TestCaseCompleteness(TestCase):
+ """
+ Test that all defined enum models are covered by a test case in here.
+ """
+
+ __TestCasePrefix = 'TestEnum'
+
+ __defined_enumcases: Optional[tuple[str, ...]] = None
+
+ @classmethod
+ def __get_defined_enumcases(cls) -> tuple[str, ...]:
+ if cls.__defined_enumcases is None:
+ cls.__defined_enumcases = tuple(
+ name for name, obj
+ in globals().items()
+ if isinstance(obj, type)
+ and obj.__module__
+ and obj.__module__ == __name__
+ and issubclass(obj, _EnumTestCase)
+ and not obj is _EnumTestCase
+ )
+ return cls.__defined_enumcases
+
+ @staticmethod
+ def __get_defined_model_enums():
+ models_path = path.join(path.dirname(__file__), '..', 'cyclonedx', 'model')
+ model_files = glob(path.join('**', '*.py'), root_dir=models_path, recursive=True)
+ for model_file in model_files:
+ with open(path.join(models_path, model_file), 'r', encoding='utf-8') as f:
+ tree = ast.parse(f.read(), filename=model_file)
+ for node in ast.walk(tree):
+ if isinstance(node, ast.ClassDef):
+ for base in node.bases:
+ # Case 1: direct name: "Enum"
+ if isinstance(base, ast.Name) and base.id == 'Enum':
+ yield node.name
+ break
+ # Case 2: qualified name: "enum.Enum"
+ if isinstance(base, ast.Attribute) and base.attr == 'Enum':
+ yield node.name
+ break
+
+ @idata(__get_defined_model_enums())
+ def test_case_exists(self, enum_name) -> None:
+ self.assertIn(f'{self.__TestCasePrefix}{enum_name}',
+ self.__get_defined_enumcases(),
+ f'Missing Test Case for Enum: {enum_name}')