diff --git a/cyclonedx/model/crypto.py b/cyclonedx/model/crypto.py
index 7af6a1c6..44bdc182 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.
@@ -143,6 +145,8 @@ def deserialize(cls, o: Any) -> CryptoPrimitive:
@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.
@@ -158,13 +162,15 @@ class CryptoExecutionEnvironment(str, Enum):
SOFTWARE_ENCRYPTED_RAM = 'software-encrypted-ram'
SOFTWARE_PLAIN_RAM = 'software-plain-ram'
SOFTWARE_TEE = 'software-tee'
-
+ # --
OTHER = 'other'
UNKNOWN = 'unknown'
@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.
@@ -182,19 +188,21 @@ class CryptoImplementationPlatform(str, Enum):
ARMV8_M = 'armv8-m'
ARMV9_A = 'armv9-a'
ARMV9_M = 'armv9-m'
- GENERIC = 'generic'
PPC64 = 'ppc64'
PPC64LE = 'ppc64le'
S390X = 's390x'
X86_32 = 'x86_32'
X86_64 = 'x86_64'
-
+ # --
+ GENERIC = 'generic'
OTHER = 'other'
UNKNOWN = 'unknown'
@serializable.serializable_enum
class CryptoCertificationLevel(str, Enum):
+ # TODO: rename to `CryptoAlgorithmCertificationLevel`
+
"""
This is our internal representation of the cryptoPropertiesType.algorithmProperties.certificationLevel ENUM type
within the CycloneDX standard.
@@ -207,7 +215,7 @@ class CryptoCertificationLevel(str, Enum):
"""
NONE = 'none'
-
+ # --
FIPS140_1_L1 = 'fips140-1-l1'
FIPS140_1_L2 = 'fips140-1-l2'
FIPS140_1_L3 = 'fips140-1-l3'
@@ -234,13 +242,15 @@ class CryptoCertificationLevel(str, Enum):
CC_EAL6_PLUS = 'cc-eal6+'
CC_EAL7 = 'cc-eal7'
CC_EAL7_PLUS = 'cc-eal7+'
-
+ # --
OTHER = 'other'
UNKNOWN = 'unknown'
@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.
@@ -259,13 +269,15 @@ class CryptoMode(str, Enum):
ECB = 'ecb'
GCM = 'gcm'
OFB = 'ofb'
-
+ # --
OTHER = 'other'
UNKNOWN = 'unknown'
@serializable.serializable_enum
class CryptoPadding(str, Enum):
+ # TODO: rename to `CryptoAlgorithmPadding`
+
"""
This is our internal representation of the cryptoPropertiesType.algorithmProperties.padding ENUM type
within the CycloneDX standard.
@@ -282,7 +294,7 @@ class CryptoPadding(str, Enum):
PKCS1V15 = 'pkcs1v15'
OAEP = 'oaep'
RAW = 'raw'
-
+ # --
OTHER = 'other'
UNKNOWN = 'unknown'
@@ -311,7 +323,7 @@ class CryptoFunction(str, Enum):
SIGN = 'sign'
TAG = 'tag'
VERIFY = 'verify'
-
+ # --
OTHER = 'other'
UNKNOWN = 'unknown'
@@ -785,7 +797,7 @@ class RelatedCryptoMaterialType(str, Enum):
SIGNATURE = 'signature'
TAG = 'tag'
TOKEN = 'token' # nosec
-
+ # --
OTHER = 'other'
UNKNOWN = 'unknown'
diff --git a/tests/__init__.py b/tests/__init__.py
index 772ffcdd..31bf18d9 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -34,6 +34,11 @@
_T = TypeVar('_T')
+
+PROJECT_ROOT_DIRECTORY = path.abspath(path.join(path.dirname(__file__), '..'))
+PROJECT_LIB_DIRECTORY = path.join(PROJECT_ROOT_DIRECTORY, 'cyclonedx')
+PROJECT_LIB_MODELS_DIRECTORY = path.join(PROJECT_LIB_DIRECTORY, 'model')
+
_TESTDATA_DIRECTORY = path.join(path.dirname(__file__), '_data')
SCHEMA_TESTDATA_DIRECTORY = path.join(_TESTDATA_DIRECTORY, 'schemaTestData')
@@ -199,5 +204,5 @@ def load_pyproject() -> dict[str, Any]:
from tomllib import load as toml_load
else:
from tomli import load as toml_load
- with open(path.join(path.dirname(__file__), '..', 'pyproject.toml'), 'rb') as f:
+ with open(path.join(PROJECT_ROOT_DIRECTORY, 'pyproject.toml'), 'rb') as f:
return toml_load(f)
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..28b6f5a9
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoCertificationLevel-1.6.json.bin
@@ -0,0 +1,488 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CCL:CC_EAL1",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal1"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL1",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL1_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal1+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL1_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL2",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal2"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL2",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL2_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal2+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL2_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL3",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal3"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL3",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL3_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal3+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL3_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL4",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal4"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL4",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL4_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal4+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL4_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL5",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal5"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL5",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL5_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal5+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL5_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL6",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal6"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL6",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL6_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal6+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL6_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL7",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal7"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL7",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL7_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal7+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL7_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_1_L1",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-1-l1"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_1_L1",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_1_L2",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-1-l2"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_1_L2",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_1_L3",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-1-l3"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_1_L3",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_1_L4",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-1-l4"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_1_L4",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_2_L1",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-2-l1"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_2_L1",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_2_L2",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-2-l2"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_2_L2",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_2_L3",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-2-l3"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_2_L3",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_2_L4",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-2-l4"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_2_L4",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_3_L1",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-3-l1"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_3_L1",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_3_L2",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-3-l2"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_3_L2",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_3_L3",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-3-l3"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_3_L3",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_3_L4",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-3-l4"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_3_L4",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:NONE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "none"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: NONE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "other"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "unknown"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: UNKNOWN",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CCL:CC_EAL1"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL1_PLUS"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL2"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL2_PLUS"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL3"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL3_PLUS"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL4"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL4_PLUS"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL5"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL5_PLUS"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL6"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL6_PLUS"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL7"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL7_PLUS"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_1_L1"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_1_L2"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_1_L3"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_1_L4"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_2_L1"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_2_L2"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_2_L3"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_2_L4"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_3_L1"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_3_L2"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_3_L3"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_3_L4"
+ },
+ {
+ "ref": "dummy-CCL:NONE"
+ },
+ {
+ "ref": "dummy-CCL:OTHER"
+ },
+ {
+ "ref": "dummy-CCL: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..2d36f68e
--- /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..eb645477
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoCertificationLevel-1.7.json.bin
@@ -0,0 +1,488 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CCL:CC_EAL1",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal1"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL1",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL1_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal1+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL1_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL2",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal2"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL2",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL2_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal2+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL2_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL3",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal3"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL3",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL3_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal3+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL3_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL4",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal4"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL4",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL4_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal4+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL4_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL5",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal5"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL5",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL5_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal5+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL5_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL6",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal6"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL6",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL6_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal6+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL6_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL7",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal7"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL7",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:CC_EAL7_PLUS",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "cc-eal7+"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: CC_EAL7_PLUS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_1_L1",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-1-l1"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_1_L1",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_1_L2",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-1-l2"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_1_L2",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_1_L3",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-1-l3"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_1_L3",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_1_L4",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-1-l4"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_1_L4",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_2_L1",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-2-l1"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_2_L1",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_2_L2",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-2-l2"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_2_L2",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_2_L3",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-2-l3"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_2_L3",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_2_L4",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-2-l4"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_2_L4",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_3_L1",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-3-l1"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_3_L1",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_3_L2",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-3-l2"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_3_L2",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_3_L3",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-3-l3"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_3_L3",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:FIPS140_3_L4",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "fips140-3-l4"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: FIPS140_3_L4",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:NONE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "none"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: NONE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "other"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CCL:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "certificationLevel": [
+ "unknown"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoCertificationLevel: UNKNOWN",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CCL:CC_EAL1"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL1_PLUS"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL2"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL2_PLUS"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL3"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL3_PLUS"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL4"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL4_PLUS"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL5"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL5_PLUS"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL6"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL6_PLUS"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL7"
+ },
+ {
+ "ref": "dummy-CCL:CC_EAL7_PLUS"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_1_L1"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_1_L2"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_1_L3"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_1_L4"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_2_L1"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_2_L2"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_2_L3"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_2_L4"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_3_L1"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_3_L2"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_3_L3"
+ },
+ {
+ "ref": "dummy-CCL:FIPS140_3_L4"
+ },
+ {
+ "ref": "dummy-CCL:NONE"
+ },
+ {
+ "ref": "dummy-CCL:OTHER"
+ },
+ {
+ "ref": "dummy-CCL: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..736777f9
--- /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_CryptoFunction-1.6.json.bin b/tests/_data/snapshots/enum_CryptoFunction-1.6.json.bin
new file mode 100644
index 00000000..2c1b1277
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoFunction-1.6.json.bin
@@ -0,0 +1,232 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CF:DECAPSULATE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "decapsulate"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: DECAPSULATE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:DECRYPT",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "decrypt"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: DECRYPT",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:DIGEST",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "digest"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: DIGEST",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:ENCAPSULATE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "encapsulate"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: ENCAPSULATE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:ENCRYPT",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "encrypt"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: ENCRYPT",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:GENERATE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "generate"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: GENERATE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:KEYDERIVE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "keyderive"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: KEYDERIVE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:KEYGEN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "keygen"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: KEYGEN",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "other"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:SIGN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "sign"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: SIGN",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:TAG",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "tag"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: TAG",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "unknown"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: UNKNOWN",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:VERIFY",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "verify"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: VERIFY",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CF:DECAPSULATE"
+ },
+ {
+ "ref": "dummy-CF:DECRYPT"
+ },
+ {
+ "ref": "dummy-CF:DIGEST"
+ },
+ {
+ "ref": "dummy-CF:ENCAPSULATE"
+ },
+ {
+ "ref": "dummy-CF:ENCRYPT"
+ },
+ {
+ "ref": "dummy-CF:GENERATE"
+ },
+ {
+ "ref": "dummy-CF:KEYDERIVE"
+ },
+ {
+ "ref": "dummy-CF:KEYGEN"
+ },
+ {
+ "ref": "dummy-CF:OTHER"
+ },
+ {
+ "ref": "dummy-CF:SIGN"
+ },
+ {
+ "ref": "dummy-CF:TAG"
+ },
+ {
+ "ref": "dummy-CF:UNKNOWN"
+ },
+ {
+ "ref": "dummy-CF:VERIFY"
+ }
+ ],
+ "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_CryptoFunction-1.6.xml.bin b/tests/_data/snapshots/enum_CryptoFunction-1.6.xml.bin
new file mode 100644
index 00000000..0a732b65
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoFunction-1.6.xml.bin
@@ -0,0 +1,170 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ CryptoFunction: DECAPSULATE
+
+ algorithm
+
+
+ decapsulate
+
+
+
+
+
+ CryptoFunction: DECRYPT
+
+ algorithm
+
+
+ decrypt
+
+
+
+
+
+ CryptoFunction: DIGEST
+
+ algorithm
+
+
+ digest
+
+
+
+
+
+ CryptoFunction: ENCAPSULATE
+
+ algorithm
+
+
+ encapsulate
+
+
+
+
+
+ CryptoFunction: ENCRYPT
+
+ algorithm
+
+
+ encrypt
+
+
+
+
+
+ CryptoFunction: GENERATE
+
+ algorithm
+
+
+ generate
+
+
+
+
+
+ CryptoFunction: KEYDERIVE
+
+ algorithm
+
+
+ keyderive
+
+
+
+
+
+ CryptoFunction: KEYGEN
+
+ algorithm
+
+
+ keygen
+
+
+
+
+
+ CryptoFunction: OTHER
+
+ algorithm
+
+
+ other
+
+
+
+
+
+ CryptoFunction: SIGN
+
+ algorithm
+
+
+ sign
+
+
+
+
+
+ CryptoFunction: TAG
+
+ algorithm
+
+
+ tag
+
+
+
+
+
+ CryptoFunction: UNKNOWN
+
+ algorithm
+
+
+ unknown
+
+
+
+
+
+ CryptoFunction: VERIFY
+
+ algorithm
+
+
+ verify
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_CryptoFunction-1.7.json.bin b/tests/_data/snapshots/enum_CryptoFunction-1.7.json.bin
new file mode 100644
index 00000000..ee1ce1f5
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoFunction-1.7.json.bin
@@ -0,0 +1,232 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CF:DECAPSULATE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "decapsulate"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: DECAPSULATE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:DECRYPT",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "decrypt"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: DECRYPT",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:DIGEST",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "digest"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: DIGEST",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:ENCAPSULATE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "encapsulate"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: ENCAPSULATE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:ENCRYPT",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "encrypt"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: ENCRYPT",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:GENERATE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "generate"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: GENERATE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:KEYDERIVE",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "keyderive"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: KEYDERIVE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:KEYGEN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "keygen"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: KEYGEN",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "other"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:SIGN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "sign"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: SIGN",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:TAG",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "tag"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: TAG",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "unknown"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: UNKNOWN",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CF:VERIFY",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "cryptoFunctions": [
+ "verify"
+ ]
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoFunction: VERIFY",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CF:DECAPSULATE"
+ },
+ {
+ "ref": "dummy-CF:DECRYPT"
+ },
+ {
+ "ref": "dummy-CF:DIGEST"
+ },
+ {
+ "ref": "dummy-CF:ENCAPSULATE"
+ },
+ {
+ "ref": "dummy-CF:ENCRYPT"
+ },
+ {
+ "ref": "dummy-CF:GENERATE"
+ },
+ {
+ "ref": "dummy-CF:KEYDERIVE"
+ },
+ {
+ "ref": "dummy-CF:KEYGEN"
+ },
+ {
+ "ref": "dummy-CF:OTHER"
+ },
+ {
+ "ref": "dummy-CF:SIGN"
+ },
+ {
+ "ref": "dummy-CF:TAG"
+ },
+ {
+ "ref": "dummy-CF:UNKNOWN"
+ },
+ {
+ "ref": "dummy-CF:VERIFY"
+ }
+ ],
+ "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_CryptoFunction-1.7.xml.bin b/tests/_data/snapshots/enum_CryptoFunction-1.7.xml.bin
new file mode 100644
index 00000000..8a22c7d8
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoFunction-1.7.xml.bin
@@ -0,0 +1,170 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ CryptoFunction: DECAPSULATE
+
+ algorithm
+
+
+ decapsulate
+
+
+
+
+
+ CryptoFunction: DECRYPT
+
+ algorithm
+
+
+ decrypt
+
+
+
+
+
+ CryptoFunction: DIGEST
+
+ algorithm
+
+
+ digest
+
+
+
+
+
+ CryptoFunction: ENCAPSULATE
+
+ algorithm
+
+
+ encapsulate
+
+
+
+
+
+ CryptoFunction: ENCRYPT
+
+ algorithm
+
+
+ encrypt
+
+
+
+
+
+ CryptoFunction: GENERATE
+
+ algorithm
+
+
+ generate
+
+
+
+
+
+ CryptoFunction: KEYDERIVE
+
+ algorithm
+
+
+ keyderive
+
+
+
+
+
+ CryptoFunction: KEYGEN
+
+ algorithm
+
+
+ keygen
+
+
+
+
+
+ CryptoFunction: OTHER
+
+ algorithm
+
+
+ other
+
+
+
+
+
+ CryptoFunction: SIGN
+
+ algorithm
+
+
+ sign
+
+
+
+
+
+ CryptoFunction: TAG
+
+ algorithm
+
+
+ tag
+
+
+
+
+
+ CryptoFunction: UNKNOWN
+
+ algorithm
+
+
+ unknown
+
+
+
+
+
+ CryptoFunction: VERIFY
+
+ algorithm
+
+
+ verify
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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..bad094ad
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoMode-1.6.json.bin
@@ -0,0 +1,150 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CM:CBC",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "cbc"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: CBC",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CM:CCM",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "ccm"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: CCM",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CM:CFB",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "cfb"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: CFB",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CM:CTR",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "ctr"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: CTR",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CM:ECB",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "ecb"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: ECB",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CM:GCM",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "gcm"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: GCM",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CM:OFB",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "ofb"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: OFB",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CM:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "other"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CM:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "unknown"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: UNKNOWN",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CM:CBC"
+ },
+ {
+ "ref": "dummy-CM:CCM"
+ },
+ {
+ "ref": "dummy-CM:CFB"
+ },
+ {
+ "ref": "dummy-CM:CTR"
+ },
+ {
+ "ref": "dummy-CM:ECB"
+ },
+ {
+ "ref": "dummy-CM:GCM"
+ },
+ {
+ "ref": "dummy-CM:OFB"
+ },
+ {
+ "ref": "dummy-CM:OTHER"
+ },
+ {
+ "ref": "dummy-CM: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..38306ff2
--- /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..45bafe3d
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoMode-1.7.json.bin
@@ -0,0 +1,150 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CM:CBC",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "cbc"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: CBC",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CM:CCM",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "ccm"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: CCM",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CM:CFB",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "cfb"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: CFB",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CM:CTR",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "ctr"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: CTR",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CM:ECB",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "ecb"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: ECB",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CM:GCM",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "gcm"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: GCM",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CM:OFB",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "ofb"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: OFB",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CM:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "other"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CM:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "mode": "unknown"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoMode: UNKNOWN",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CM:CBC"
+ },
+ {
+ "ref": "dummy-CM:CCM"
+ },
+ {
+ "ref": "dummy-CM:CFB"
+ },
+ {
+ "ref": "dummy-CM:CTR"
+ },
+ {
+ "ref": "dummy-CM:ECB"
+ },
+ {
+ "ref": "dummy-CM:GCM"
+ },
+ {
+ "ref": "dummy-CM:OFB"
+ },
+ {
+ "ref": "dummy-CM:OTHER"
+ },
+ {
+ "ref": "dummy-CM: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..24814c35
--- /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_CryptoPadding-1.6.json.bin b/tests/_data/snapshots/enum_CryptoPadding-1.6.json.bin
new file mode 100644
index 00000000..38a6cf92
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoPadding-1.6.json.bin
@@ -0,0 +1,122 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CP:OAEP",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "padding": "oaep"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPadding: OAEP",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "padding": "other"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPadding: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:PKCS1V15",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "padding": "pkcs1v15"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPadding: PKCS1V15",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:PKCS5",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "padding": "pkcs5"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPadding: PKCS5",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:PKCS7",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "padding": "pkcs7"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPadding: PKCS7",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:RAW",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "padding": "raw"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPadding: RAW",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "padding": "unknown"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPadding: UNKNOWN",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CP:OAEP"
+ },
+ {
+ "ref": "dummy-CP:OTHER"
+ },
+ {
+ "ref": "dummy-CP:PKCS1V15"
+ },
+ {
+ "ref": "dummy-CP:PKCS5"
+ },
+ {
+ "ref": "dummy-CP:PKCS7"
+ },
+ {
+ "ref": "dummy-CP:RAW"
+ },
+ {
+ "ref": "dummy-CP: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_CryptoPadding-1.6.xml.bin b/tests/_data/snapshots/enum_CryptoPadding-1.6.xml.bin
new file mode 100644
index 00000000..6d9355ce
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoPadding-1.6.xml.bin
@@ -0,0 +1,84 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ CryptoPadding: OAEP
+
+ algorithm
+
+ oaep
+
+
+
+
+ CryptoPadding: OTHER
+
+ algorithm
+
+ other
+
+
+
+
+ CryptoPadding: PKCS1V15
+
+ algorithm
+
+ pkcs1v15
+
+
+
+
+ CryptoPadding: PKCS5
+
+ algorithm
+
+ pkcs5
+
+
+
+
+ CryptoPadding: PKCS7
+
+ algorithm
+
+ pkcs7
+
+
+
+
+ CryptoPadding: RAW
+
+ algorithm
+
+ raw
+
+
+
+
+ CryptoPadding: UNKNOWN
+
+ algorithm
+
+ unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_CryptoPadding-1.7.json.bin b/tests/_data/snapshots/enum_CryptoPadding-1.7.json.bin
new file mode 100644
index 00000000..7b51708b
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoPadding-1.7.json.bin
@@ -0,0 +1,122 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-CP:OAEP",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "padding": "oaep"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPadding: OAEP",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:OTHER",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "padding": "other"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPadding: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:PKCS1V15",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "padding": "pkcs1v15"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPadding: PKCS1V15",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:PKCS5",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "padding": "pkcs5"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPadding: PKCS5",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:PKCS7",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "padding": "pkcs7"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPadding: PKCS7",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:RAW",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "padding": "raw"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPadding: RAW",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-CP:UNKNOWN",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "padding": "unknown"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPadding: UNKNOWN",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-CP:OAEP"
+ },
+ {
+ "ref": "dummy-CP:OTHER"
+ },
+ {
+ "ref": "dummy-CP:PKCS1V15"
+ },
+ {
+ "ref": "dummy-CP:PKCS5"
+ },
+ {
+ "ref": "dummy-CP:PKCS7"
+ },
+ {
+ "ref": "dummy-CP:RAW"
+ },
+ {
+ "ref": "dummy-CP: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_CryptoPadding-1.7.xml.bin b/tests/_data/snapshots/enum_CryptoPadding-1.7.xml.bin
new file mode 100644
index 00000000..17317828
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoPadding-1.7.xml.bin
@@ -0,0 +1,84 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ CryptoPadding: OAEP
+
+ algorithm
+
+ oaep
+
+
+
+
+ CryptoPadding: OTHER
+
+ algorithm
+
+ other
+
+
+
+
+ CryptoPadding: PKCS1V15
+
+ algorithm
+
+ pkcs1v15
+
+
+
+
+ CryptoPadding: PKCS5
+
+ algorithm
+
+ pkcs5
+
+
+
+
+ CryptoPadding: PKCS7
+
+ algorithm
+
+ pkcs7
+
+
+
+
+ CryptoPadding: RAW
+
+ algorithm
+
+ raw
+
+
+
+
+ CryptoPadding: 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..062a67fd
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoPrimitive-1.6.json.bin
@@ -0,0 +1,248 @@
+{
+ "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:KEY_WRAP",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "other"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: KEY_WRAP",
+ "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:KEY_WRAP"
+ },
+ {
+ "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..03bd7e5a
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoPrimitive-1.6.xml.bin
@@ -0,0 +1,174 @@
+
+
+
+ 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: KEY_WRAP
+
+ algorithm
+
+ other
+
+
+
+
+ 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..063c4cb3
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoPrimitive-1.7.json.bin
@@ -0,0 +1,248 @@
+{
+ "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:KEY_WRAP",
+ "cryptoProperties": {
+ "algorithmProperties": {
+ "primitive": "key-wrap"
+ },
+ "assetType": "algorithm"
+ },
+ "name": "CryptoPrimitive: KEY_WRAP",
+ "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:KEY_WRAP"
+ },
+ {
+ "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..f6b9bdae
--- /dev/null
+++ b/tests/_data/snapshots/enum_CryptoPrimitive-1.7.xml.bin
@@ -0,0 +1,174 @@
+
+
+
+ 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: KEY_WRAP
+
+ algorithm
+
+ key-wrap
+
+
+
+
+ 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/_data/snapshots/enum_ProtocolPropertiesType-1.6.json.bin b/tests/_data/snapshots/enum_ProtocolPropertiesType-1.6.json.bin
new file mode 100644
index 00000000..44e45f54
--- /dev/null
+++ b/tests/_data/snapshots/enum_ProtocolPropertiesType-1.6.json.bin
@@ -0,0 +1,220 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-PPT:DTLS",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "other"
+ }
+ },
+ "name": "ProtocolPropertiesType: DTLS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:EAP_AKA",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "other"
+ }
+ },
+ "name": "ProtocolPropertiesType: EAP_AKA",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:EAP_AKA_PRIME",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "other"
+ }
+ },
+ "name": "ProtocolPropertiesType: EAP_AKA_PRIME",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:FIVEG_AKA",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "other"
+ }
+ },
+ "name": "ProtocolPropertiesType: FIVEG_AKA",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:IKE",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "ike"
+ }
+ },
+ "name": "ProtocolPropertiesType: IKE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:IPSEC",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "ipsec"
+ }
+ },
+ "name": "ProtocolPropertiesType: IPSEC",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:OTHER",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "other"
+ }
+ },
+ "name": "ProtocolPropertiesType: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:PRINS",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "other"
+ }
+ },
+ "name": "ProtocolPropertiesType: PRINS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:QUIC",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "other"
+ }
+ },
+ "name": "ProtocolPropertiesType: QUIC",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:SSH",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "ssh"
+ }
+ },
+ "name": "ProtocolPropertiesType: SSH",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:SSTP",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "sstp"
+ }
+ },
+ "name": "ProtocolPropertiesType: SSTP",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:TLS",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "tls"
+ }
+ },
+ "name": "ProtocolPropertiesType: TLS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:UNKNOWN",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "unknown"
+ }
+ },
+ "name": "ProtocolPropertiesType: UNKNOWN",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:WPA",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "wpa"
+ }
+ },
+ "name": "ProtocolPropertiesType: WPA",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-PPT:DTLS"
+ },
+ {
+ "ref": "dummy-PPT:EAP_AKA"
+ },
+ {
+ "ref": "dummy-PPT:EAP_AKA_PRIME"
+ },
+ {
+ "ref": "dummy-PPT:FIVEG_AKA"
+ },
+ {
+ "ref": "dummy-PPT:IKE"
+ },
+ {
+ "ref": "dummy-PPT:IPSEC"
+ },
+ {
+ "ref": "dummy-PPT:OTHER"
+ },
+ {
+ "ref": "dummy-PPT:PRINS"
+ },
+ {
+ "ref": "dummy-PPT:QUIC"
+ },
+ {
+ "ref": "dummy-PPT:SSH"
+ },
+ {
+ "ref": "dummy-PPT:SSTP"
+ },
+ {
+ "ref": "dummy-PPT:TLS"
+ },
+ {
+ "ref": "dummy-PPT:UNKNOWN"
+ },
+ {
+ "ref": "dummy-PPT:WPA"
+ }
+ ],
+ "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_ProtocolPropertiesType-1.6.xml.bin b/tests/_data/snapshots/enum_ProtocolPropertiesType-1.6.xml.bin
new file mode 100644
index 00000000..36e1bc06
--- /dev/null
+++ b/tests/_data/snapshots/enum_ProtocolPropertiesType-1.6.xml.bin
@@ -0,0 +1,154 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ ProtocolPropertiesType: DTLS
+
+ protocol
+
+ other
+
+
+
+
+ ProtocolPropertiesType: EAP_AKA
+
+ protocol
+
+ other
+
+
+
+
+ ProtocolPropertiesType: EAP_AKA_PRIME
+
+ protocol
+
+ other
+
+
+
+
+ ProtocolPropertiesType: FIVEG_AKA
+
+ protocol
+
+ other
+
+
+
+
+ ProtocolPropertiesType: IKE
+
+ protocol
+
+ ike
+
+
+
+
+ ProtocolPropertiesType: IPSEC
+
+ protocol
+
+ ipsec
+
+
+
+
+ ProtocolPropertiesType: OTHER
+
+ protocol
+
+ other
+
+
+
+
+ ProtocolPropertiesType: PRINS
+
+ protocol
+
+ other
+
+
+
+
+ ProtocolPropertiesType: QUIC
+
+ protocol
+
+ other
+
+
+
+
+ ProtocolPropertiesType: SSH
+
+ protocol
+
+ ssh
+
+
+
+
+ ProtocolPropertiesType: SSTP
+
+ protocol
+
+ sstp
+
+
+
+
+ ProtocolPropertiesType: TLS
+
+ protocol
+
+ tls
+
+
+
+
+ ProtocolPropertiesType: UNKNOWN
+
+ protocol
+
+ unknown
+
+
+
+
+ ProtocolPropertiesType: WPA
+
+ protocol
+
+ wpa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_ProtocolPropertiesType-1.7.json.bin b/tests/_data/snapshots/enum_ProtocolPropertiesType-1.7.json.bin
new file mode 100644
index 00000000..9d35a3ee
--- /dev/null
+++ b/tests/_data/snapshots/enum_ProtocolPropertiesType-1.7.json.bin
@@ -0,0 +1,220 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-PPT:DTLS",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "dtls"
+ }
+ },
+ "name": "ProtocolPropertiesType: DTLS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:EAP_AKA",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "eap-aka"
+ }
+ },
+ "name": "ProtocolPropertiesType: EAP_AKA",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:EAP_AKA_PRIME",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "eap-aka-prime"
+ }
+ },
+ "name": "ProtocolPropertiesType: EAP_AKA_PRIME",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:FIVEG_AKA",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "5g-aka"
+ }
+ },
+ "name": "ProtocolPropertiesType: FIVEG_AKA",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:IKE",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "ike"
+ }
+ },
+ "name": "ProtocolPropertiesType: IKE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:IPSEC",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "ipsec"
+ }
+ },
+ "name": "ProtocolPropertiesType: IPSEC",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:OTHER",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "other"
+ }
+ },
+ "name": "ProtocolPropertiesType: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:PRINS",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "prins"
+ }
+ },
+ "name": "ProtocolPropertiesType: PRINS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:QUIC",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "quic"
+ }
+ },
+ "name": "ProtocolPropertiesType: QUIC",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:SSH",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "ssh"
+ }
+ },
+ "name": "ProtocolPropertiesType: SSH",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:SSTP",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "sstp"
+ }
+ },
+ "name": "ProtocolPropertiesType: SSTP",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:TLS",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "tls"
+ }
+ },
+ "name": "ProtocolPropertiesType: TLS",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:UNKNOWN",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "unknown"
+ }
+ },
+ "name": "ProtocolPropertiesType: UNKNOWN",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-PPT:WPA",
+ "cryptoProperties": {
+ "assetType": "protocol",
+ "protocolProperties": {
+ "type": "wpa"
+ }
+ },
+ "name": "ProtocolPropertiesType: WPA",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-PPT:DTLS"
+ },
+ {
+ "ref": "dummy-PPT:EAP_AKA"
+ },
+ {
+ "ref": "dummy-PPT:EAP_AKA_PRIME"
+ },
+ {
+ "ref": "dummy-PPT:FIVEG_AKA"
+ },
+ {
+ "ref": "dummy-PPT:IKE"
+ },
+ {
+ "ref": "dummy-PPT:IPSEC"
+ },
+ {
+ "ref": "dummy-PPT:OTHER"
+ },
+ {
+ "ref": "dummy-PPT:PRINS"
+ },
+ {
+ "ref": "dummy-PPT:QUIC"
+ },
+ {
+ "ref": "dummy-PPT:SSH"
+ },
+ {
+ "ref": "dummy-PPT:SSTP"
+ },
+ {
+ "ref": "dummy-PPT:TLS"
+ },
+ {
+ "ref": "dummy-PPT:UNKNOWN"
+ },
+ {
+ "ref": "dummy-PPT:WPA"
+ }
+ ],
+ "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_ProtocolPropertiesType-1.7.xml.bin b/tests/_data/snapshots/enum_ProtocolPropertiesType-1.7.xml.bin
new file mode 100644
index 00000000..d4d4ea0e
--- /dev/null
+++ b/tests/_data/snapshots/enum_ProtocolPropertiesType-1.7.xml.bin
@@ -0,0 +1,154 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ ProtocolPropertiesType: DTLS
+
+ protocol
+
+ dtls
+
+
+
+
+ ProtocolPropertiesType: EAP_AKA
+
+ protocol
+
+ eap-aka
+
+
+
+
+ ProtocolPropertiesType: EAP_AKA_PRIME
+
+ protocol
+
+ eap-aka-prime
+
+
+
+
+ ProtocolPropertiesType: FIVEG_AKA
+
+ protocol
+
+ 5g-aka
+
+
+
+
+ ProtocolPropertiesType: IKE
+
+ protocol
+
+ ike
+
+
+
+
+ ProtocolPropertiesType: IPSEC
+
+ protocol
+
+ ipsec
+
+
+
+
+ ProtocolPropertiesType: OTHER
+
+ protocol
+
+ other
+
+
+
+
+ ProtocolPropertiesType: PRINS
+
+ protocol
+
+ prins
+
+
+
+
+ ProtocolPropertiesType: QUIC
+
+ protocol
+
+ quic
+
+
+
+
+ ProtocolPropertiesType: SSH
+
+ protocol
+
+ ssh
+
+
+
+
+ ProtocolPropertiesType: SSTP
+
+ protocol
+
+ sstp
+
+
+
+
+ ProtocolPropertiesType: TLS
+
+ protocol
+
+ tls
+
+
+
+
+ ProtocolPropertiesType: UNKNOWN
+
+ protocol
+
+ unknown
+
+
+
+
+ ProtocolPropertiesType: WPA
+
+ protocol
+
+ wpa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_RelatedCryptoMaterialState-1.6.json.bin b/tests/_data/snapshots/enum_RelatedCryptoMaterialState-1.6.json.bin
new file mode 100644
index 00000000..adfa9e1a
--- /dev/null
+++ b/tests/_data/snapshots/enum_RelatedCryptoMaterialState-1.6.json.bin
@@ -0,0 +1,108 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-RCMS:ACTIVE",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "state": "active"
+ }
+ },
+ "name": "RelatedCryptoMaterialState: ACTIVE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMS:COMPROMISED",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "state": "compromised"
+ }
+ },
+ "name": "RelatedCryptoMaterialState: COMPROMISED",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMS:DEACTIVATED",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "state": "deactivated"
+ }
+ },
+ "name": "RelatedCryptoMaterialState: DEACTIVATED",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMS:DESTROYED",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "state": "destroyed"
+ }
+ },
+ "name": "RelatedCryptoMaterialState: DESTROYED",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMS:PRE_ACTIVATION",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "state": "pre-activation"
+ }
+ },
+ "name": "RelatedCryptoMaterialState: PRE_ACTIVATION",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMS:SUSPENDED",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "state": "suspended"
+ }
+ },
+ "name": "RelatedCryptoMaterialState: SUSPENDED",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-RCMS:ACTIVE"
+ },
+ {
+ "ref": "dummy-RCMS:COMPROMISED"
+ },
+ {
+ "ref": "dummy-RCMS:DEACTIVATED"
+ },
+ {
+ "ref": "dummy-RCMS:DESTROYED"
+ },
+ {
+ "ref": "dummy-RCMS:PRE_ACTIVATION"
+ },
+ {
+ "ref": "dummy-RCMS:SUSPENDED"
+ }
+ ],
+ "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_RelatedCryptoMaterialState-1.6.xml.bin b/tests/_data/snapshots/enum_RelatedCryptoMaterialState-1.6.xml.bin
new file mode 100644
index 00000000..10bddb1c
--- /dev/null
+++ b/tests/_data/snapshots/enum_RelatedCryptoMaterialState-1.6.xml.bin
@@ -0,0 +1,74 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ RelatedCryptoMaterialState: ACTIVE
+
+ related-crypto-material
+
+ active
+
+
+
+
+ RelatedCryptoMaterialState: COMPROMISED
+
+ related-crypto-material
+
+ compromised
+
+
+
+
+ RelatedCryptoMaterialState: DEACTIVATED
+
+ related-crypto-material
+
+ deactivated
+
+
+
+
+ RelatedCryptoMaterialState: DESTROYED
+
+ related-crypto-material
+
+ destroyed
+
+
+
+
+ RelatedCryptoMaterialState: PRE_ACTIVATION
+
+ related-crypto-material
+
+ pre-activation
+
+
+
+
+ RelatedCryptoMaterialState: SUSPENDED
+
+ related-crypto-material
+
+ suspended
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_RelatedCryptoMaterialState-1.7.json.bin b/tests/_data/snapshots/enum_RelatedCryptoMaterialState-1.7.json.bin
new file mode 100644
index 00000000..29e6056d
--- /dev/null
+++ b/tests/_data/snapshots/enum_RelatedCryptoMaterialState-1.7.json.bin
@@ -0,0 +1,108 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-RCMS:ACTIVE",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "state": "active"
+ }
+ },
+ "name": "RelatedCryptoMaterialState: ACTIVE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMS:COMPROMISED",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "state": "compromised"
+ }
+ },
+ "name": "RelatedCryptoMaterialState: COMPROMISED",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMS:DEACTIVATED",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "state": "deactivated"
+ }
+ },
+ "name": "RelatedCryptoMaterialState: DEACTIVATED",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMS:DESTROYED",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "state": "destroyed"
+ }
+ },
+ "name": "RelatedCryptoMaterialState: DESTROYED",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMS:PRE_ACTIVATION",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "state": "pre-activation"
+ }
+ },
+ "name": "RelatedCryptoMaterialState: PRE_ACTIVATION",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMS:SUSPENDED",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "state": "suspended"
+ }
+ },
+ "name": "RelatedCryptoMaterialState: SUSPENDED",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-RCMS:ACTIVE"
+ },
+ {
+ "ref": "dummy-RCMS:COMPROMISED"
+ },
+ {
+ "ref": "dummy-RCMS:DEACTIVATED"
+ },
+ {
+ "ref": "dummy-RCMS:DESTROYED"
+ },
+ {
+ "ref": "dummy-RCMS:PRE_ACTIVATION"
+ },
+ {
+ "ref": "dummy-RCMS:SUSPENDED"
+ }
+ ],
+ "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_RelatedCryptoMaterialState-1.7.xml.bin b/tests/_data/snapshots/enum_RelatedCryptoMaterialState-1.7.xml.bin
new file mode 100644
index 00000000..ac9eb9cb
--- /dev/null
+++ b/tests/_data/snapshots/enum_RelatedCryptoMaterialState-1.7.xml.bin
@@ -0,0 +1,74 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ RelatedCryptoMaterialState: ACTIVE
+
+ related-crypto-material
+
+ active
+
+
+
+
+ RelatedCryptoMaterialState: COMPROMISED
+
+ related-crypto-material
+
+ compromised
+
+
+
+
+ RelatedCryptoMaterialState: DEACTIVATED
+
+ related-crypto-material
+
+ deactivated
+
+
+
+
+ RelatedCryptoMaterialState: DESTROYED
+
+ related-crypto-material
+
+ destroyed
+
+
+
+
+ RelatedCryptoMaterialState: PRE_ACTIVATION
+
+ related-crypto-material
+
+ pre-activation
+
+
+
+
+ RelatedCryptoMaterialState: SUSPENDED
+
+ related-crypto-material
+
+ suspended
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_RelatedCryptoMaterialType-1.6.json.bin b/tests/_data/snapshots/enum_RelatedCryptoMaterialType-1.6.json.bin
new file mode 100644
index 00000000..3250a0e0
--- /dev/null
+++ b/tests/_data/snapshots/enum_RelatedCryptoMaterialType-1.6.json.bin
@@ -0,0 +1,290 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-RCMT:ADDITIONAL_DATA",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "additional-data"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: ADDITIONAL_DATA",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:CIPHERTEXT",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "ciphertext"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: CIPHERTEXT",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:CREDENTIAL",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "credential"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: CREDENTIAL",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:DIGEST",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "digest"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: DIGEST",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:INITIALIZATION_VECTOR",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "initialization-vector"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: INITIALIZATION_VECTOR",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:KEY",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "key"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: KEY",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:NONCE",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "nonce"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: NONCE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:OTHER",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "other"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:PASSWORD",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "password"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: PASSWORD",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:PRIVATE_KEY",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "private-key"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: PRIVATE_KEY",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:PUBLIC_KEY",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "public-key"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: PUBLIC_KEY",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:SALT",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "salt"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: SALT",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:SECRET_KEY",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "secret-key"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: SECRET_KEY",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:SEED",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "seed"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: SEED",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:SHARED_SECRET",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "shared-secret"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: SHARED_SECRET",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:SIGNATURE",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "signature"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: SIGNATURE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:TAG",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "tag"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: TAG",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:TOKEN",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "token"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: TOKEN",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:UNKNOWN",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "unknown"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: UNKNOWN",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-RCMT:ADDITIONAL_DATA"
+ },
+ {
+ "ref": "dummy-RCMT:CIPHERTEXT"
+ },
+ {
+ "ref": "dummy-RCMT:CREDENTIAL"
+ },
+ {
+ "ref": "dummy-RCMT:DIGEST"
+ },
+ {
+ "ref": "dummy-RCMT:INITIALIZATION_VECTOR"
+ },
+ {
+ "ref": "dummy-RCMT:KEY"
+ },
+ {
+ "ref": "dummy-RCMT:NONCE"
+ },
+ {
+ "ref": "dummy-RCMT:OTHER"
+ },
+ {
+ "ref": "dummy-RCMT:PASSWORD"
+ },
+ {
+ "ref": "dummy-RCMT:PRIVATE_KEY"
+ },
+ {
+ "ref": "dummy-RCMT:PUBLIC_KEY"
+ },
+ {
+ "ref": "dummy-RCMT:SALT"
+ },
+ {
+ "ref": "dummy-RCMT:SECRET_KEY"
+ },
+ {
+ "ref": "dummy-RCMT:SEED"
+ },
+ {
+ "ref": "dummy-RCMT:SHARED_SECRET"
+ },
+ {
+ "ref": "dummy-RCMT:SIGNATURE"
+ },
+ {
+ "ref": "dummy-RCMT:TAG"
+ },
+ {
+ "ref": "dummy-RCMT:TOKEN"
+ },
+ {
+ "ref": "dummy-RCMT: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_RelatedCryptoMaterialType-1.6.xml.bin b/tests/_data/snapshots/enum_RelatedCryptoMaterialType-1.6.xml.bin
new file mode 100644
index 00000000..3eadbee5
--- /dev/null
+++ b/tests/_data/snapshots/enum_RelatedCryptoMaterialType-1.6.xml.bin
@@ -0,0 +1,204 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ RelatedCryptoMaterialType: ADDITIONAL_DATA
+
+ related-crypto-material
+
+ additional-data
+
+
+
+
+ RelatedCryptoMaterialType: CIPHERTEXT
+
+ related-crypto-material
+
+ ciphertext
+
+
+
+
+ RelatedCryptoMaterialType: CREDENTIAL
+
+ related-crypto-material
+
+ credential
+
+
+
+
+ RelatedCryptoMaterialType: DIGEST
+
+ related-crypto-material
+
+ digest
+
+
+
+
+ RelatedCryptoMaterialType: INITIALIZATION_VECTOR
+
+ related-crypto-material
+
+ initialization-vector
+
+
+
+
+ RelatedCryptoMaterialType: KEY
+
+ related-crypto-material
+
+ key
+
+
+
+
+ RelatedCryptoMaterialType: NONCE
+
+ related-crypto-material
+
+ nonce
+
+
+
+
+ RelatedCryptoMaterialType: OTHER
+
+ related-crypto-material
+
+ other
+
+
+
+
+ RelatedCryptoMaterialType: PASSWORD
+
+ related-crypto-material
+
+ password
+
+
+
+
+ RelatedCryptoMaterialType: PRIVATE_KEY
+
+ related-crypto-material
+
+ private-key
+
+
+
+
+ RelatedCryptoMaterialType: PUBLIC_KEY
+
+ related-crypto-material
+
+ public-key
+
+
+
+
+ RelatedCryptoMaterialType: SALT
+
+ related-crypto-material
+
+ salt
+
+
+
+
+ RelatedCryptoMaterialType: SECRET_KEY
+
+ related-crypto-material
+
+ secret-key
+
+
+
+
+ RelatedCryptoMaterialType: SEED
+
+ related-crypto-material
+
+ seed
+
+
+
+
+ RelatedCryptoMaterialType: SHARED_SECRET
+
+ related-crypto-material
+
+ shared-secret
+
+
+
+
+ RelatedCryptoMaterialType: SIGNATURE
+
+ related-crypto-material
+
+ signature
+
+
+
+
+ RelatedCryptoMaterialType: TAG
+
+ related-crypto-material
+
+ tag
+
+
+
+
+ RelatedCryptoMaterialType: TOKEN
+
+ related-crypto-material
+
+ token
+
+
+
+
+ RelatedCryptoMaterialType: UNKNOWN
+
+ related-crypto-material
+
+ unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/_data/snapshots/enum_RelatedCryptoMaterialType-1.7.json.bin b/tests/_data/snapshots/enum_RelatedCryptoMaterialType-1.7.json.bin
new file mode 100644
index 00000000..838ea594
--- /dev/null
+++ b/tests/_data/snapshots/enum_RelatedCryptoMaterialType-1.7.json.bin
@@ -0,0 +1,290 @@
+{
+ "components": [
+ {
+ "bom-ref": "dummy-RCMT:ADDITIONAL_DATA",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "additional-data"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: ADDITIONAL_DATA",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:CIPHERTEXT",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "ciphertext"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: CIPHERTEXT",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:CREDENTIAL",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "credential"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: CREDENTIAL",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:DIGEST",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "digest"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: DIGEST",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:INITIALIZATION_VECTOR",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "initialization-vector"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: INITIALIZATION_VECTOR",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:KEY",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "key"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: KEY",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:NONCE",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "nonce"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: NONCE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:OTHER",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "other"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: OTHER",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:PASSWORD",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "password"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: PASSWORD",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:PRIVATE_KEY",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "private-key"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: PRIVATE_KEY",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:PUBLIC_KEY",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "public-key"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: PUBLIC_KEY",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:SALT",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "salt"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: SALT",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:SECRET_KEY",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "secret-key"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: SECRET_KEY",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:SEED",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "seed"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: SEED",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:SHARED_SECRET",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "shared-secret"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: SHARED_SECRET",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:SIGNATURE",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "signature"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: SIGNATURE",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:TAG",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "tag"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: TAG",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:TOKEN",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "token"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: TOKEN",
+ "type": "cryptographic-asset"
+ },
+ {
+ "bom-ref": "dummy-RCMT:UNKNOWN",
+ "cryptoProperties": {
+ "assetType": "related-crypto-material",
+ "relatedCryptoMaterialProperties": {
+ "type": "unknown"
+ }
+ },
+ "name": "RelatedCryptoMaterialType: UNKNOWN",
+ "type": "cryptographic-asset"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "dummy-RCMT:ADDITIONAL_DATA"
+ },
+ {
+ "ref": "dummy-RCMT:CIPHERTEXT"
+ },
+ {
+ "ref": "dummy-RCMT:CREDENTIAL"
+ },
+ {
+ "ref": "dummy-RCMT:DIGEST"
+ },
+ {
+ "ref": "dummy-RCMT:INITIALIZATION_VECTOR"
+ },
+ {
+ "ref": "dummy-RCMT:KEY"
+ },
+ {
+ "ref": "dummy-RCMT:NONCE"
+ },
+ {
+ "ref": "dummy-RCMT:OTHER"
+ },
+ {
+ "ref": "dummy-RCMT:PASSWORD"
+ },
+ {
+ "ref": "dummy-RCMT:PRIVATE_KEY"
+ },
+ {
+ "ref": "dummy-RCMT:PUBLIC_KEY"
+ },
+ {
+ "ref": "dummy-RCMT:SALT"
+ },
+ {
+ "ref": "dummy-RCMT:SECRET_KEY"
+ },
+ {
+ "ref": "dummy-RCMT:SEED"
+ },
+ {
+ "ref": "dummy-RCMT:SHARED_SECRET"
+ },
+ {
+ "ref": "dummy-RCMT:SIGNATURE"
+ },
+ {
+ "ref": "dummy-RCMT:TAG"
+ },
+ {
+ "ref": "dummy-RCMT:TOKEN"
+ },
+ {
+ "ref": "dummy-RCMT: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_RelatedCryptoMaterialType-1.7.xml.bin b/tests/_data/snapshots/enum_RelatedCryptoMaterialType-1.7.xml.bin
new file mode 100644
index 00000000..d29cd825
--- /dev/null
+++ b/tests/_data/snapshots/enum_RelatedCryptoMaterialType-1.7.xml.bin
@@ -0,0 +1,204 @@
+
+
+
+ 2023-01-07T13:44:32.312678+00:00
+
+
+
+ RelatedCryptoMaterialType: ADDITIONAL_DATA
+
+ related-crypto-material
+
+ additional-data
+
+
+
+
+ RelatedCryptoMaterialType: CIPHERTEXT
+
+ related-crypto-material
+
+ ciphertext
+
+
+
+
+ RelatedCryptoMaterialType: CREDENTIAL
+
+ related-crypto-material
+
+ credential
+
+
+
+
+ RelatedCryptoMaterialType: DIGEST
+
+ related-crypto-material
+
+ digest
+
+
+
+
+ RelatedCryptoMaterialType: INITIALIZATION_VECTOR
+
+ related-crypto-material
+
+ initialization-vector
+
+
+
+
+ RelatedCryptoMaterialType: KEY
+
+ related-crypto-material
+
+ key
+
+
+
+
+ RelatedCryptoMaterialType: NONCE
+
+ related-crypto-material
+
+ nonce
+
+
+
+
+ RelatedCryptoMaterialType: OTHER
+
+ related-crypto-material
+
+ other
+
+
+
+
+ RelatedCryptoMaterialType: PASSWORD
+
+ related-crypto-material
+
+ password
+
+
+
+
+ RelatedCryptoMaterialType: PRIVATE_KEY
+
+ related-crypto-material
+
+ private-key
+
+
+
+
+ RelatedCryptoMaterialType: PUBLIC_KEY
+
+ related-crypto-material
+
+ public-key
+
+
+
+
+ RelatedCryptoMaterialType: SALT
+
+ related-crypto-material
+
+ salt
+
+
+
+
+ RelatedCryptoMaterialType: SECRET_KEY
+
+ related-crypto-material
+
+ secret-key
+
+
+
+
+ RelatedCryptoMaterialType: SEED
+
+ related-crypto-material
+
+ seed
+
+
+
+
+ RelatedCryptoMaterialType: SHARED_SECRET
+
+ related-crypto-material
+
+ shared-secret
+
+
+
+
+ RelatedCryptoMaterialType: SIGNATURE
+
+ related-crypto-material
+
+ signature
+
+
+
+
+ RelatedCryptoMaterialType: TAG
+
+ related-crypto-material
+
+ tag
+
+
+
+
+ RelatedCryptoMaterialType: TOKEN
+
+ related-crypto-material
+
+ token
+
+
+
+
+ RelatedCryptoMaterialType: UNKNOWN
+
+ related-crypto-material
+
+ unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ val1
+ val2
+
+
diff --git a/tests/test_enums.py b/tests/test_enums.py
index 1d749d63..88ac8e71 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,13 @@
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 (
+ AlgorithmProperties,
+ CryptoProperties,
+ ProtocolProperties,
+ RelatedCryptoMaterialProperties,
+)
from cyclonedx.model.issue import IssueType
from cyclonedx.model.license import DisjunctiveLicense
from cyclonedx.model.lifecycle import LifecyclePhase, PredefinedLifecycle
@@ -47,7 +57,7 @@
from cyclonedx.schema import OutputFormat, SchemaVersion
from cyclonedx.schema._res import BOM_JSON as SCHEMA_JSON, BOM_XML as SCHEMA_XML
from cyclonedx.validation import make_schemabased_validator
-from tests import SnapshotMixin
+from tests import PROJECT_LIB_MODELS_DIRECTORY, SnapshotMixin
from tests._data.models import _make_bom
# region SUT: all the enums
@@ -63,6 +73,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 +86,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,
+ CryptoCertificationLevel,
+ CryptoExecutionEnvironment,
+ CryptoFunction,
+ CryptoImplementationPlatform,
+ CryptoMode,
+ CryptoPadding,
+ CryptoPrimitive,
+ ProtocolPropertiesType,
+ RelatedCryptoMaterialState,
+ RelatedCryptoMaterialType,
+)
# endregion SUT
@@ -86,13 +116,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]:
@@ -102,15 +137,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 +519,8 @@ 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 +549,485 @@ 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"
+ f"/{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"
+ f"/{SCHEMA_NS}element[@name='algorithmProperties']/{SCHEMA_NS}complexType/{SCHEMA_NS}sequence"
+ f"/{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"
+ f"/{SCHEMA_NS}element[@name='algorithmProperties']/{SCHEMA_NS}complexType/{SCHEMA_NS}sequence"
+ f"/{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"
+ f"/{SCHEMA_NS}element[@name='algorithmProperties']/{SCHEMA_NS}complexType/{SCHEMA_NS}sequence"
+ f"/{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"
+ f"/{SCHEMA_NS}element[@name='algorithmProperties']/{SCHEMA_NS}complexType/{SCHEMA_NS}sequence"
+ f"/{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-CCL:{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"
+ f"/{SCHEMA_NS}element[@name='algorithmProperties']/{SCHEMA_NS}complexType"
+ f"/{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-CM:{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 TestEnumCryptoPadding(_EnumTestCase):
+
+ @idata(set(chain(
+ dp_cases_from_xml_schemas(
+ f"./{SCHEMA_NS}complexType[@name='cryptoPropertiesType']/{SCHEMA_NS}sequence"
+ f"/{SCHEMA_NS}element[@name='algorithmProperties']/{SCHEMA_NS}complexType/{SCHEMA_NS}sequence"
+ f"/{SCHEMA_NS}element[@name='padding']/{SCHEMA_NS}simpleType"),
+ dp_cases_from_json_schemas('definitions', 'cryptoProperties', 'properties',
+ 'algorithmProperties', 'properties', 'padding'),
+ )))
+ def test_knows_value(self, value: str) -> None:
+ super()._test_knows_value(CryptoPadding, 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'CryptoPadding: {cp.name}', bom_ref=f'dummy-CP:{cp.name}',
+ type=ComponentType.CRYPTOGRAPHIC_ASSET,
+ crypto_properties=CryptoProperties(
+ asset_type=CryptoAssetType.ALGORITHM,
+ algorithm_properties=AlgorithmProperties(
+ padding=cp
+ )
+ )
+ ) for cp in CryptoPadding
+ ])
+ super()._test_cases_render(bom, of, sv)
+
+
+@ddt
+class TestEnumCryptoFunction(_EnumTestCase):
+
+ @idata(set(chain(
+ dp_cases_from_xml_schemas(
+ f"./{SCHEMA_NS}complexType[@name='cryptoPropertiesType']/{SCHEMA_NS}sequence"
+ f"/{SCHEMA_NS}element[@name='algorithmProperties']/{SCHEMA_NS}complexType/{SCHEMA_NS}sequence"
+ f"/{SCHEMA_NS}element[@name='cryptoFunctions']/{SCHEMA_NS}complexType/{SCHEMA_NS}sequence"
+ f"/{SCHEMA_NS}element[@name='cryptoFunction']/{SCHEMA_NS}simpleType"),
+ dp_cases_from_json_schemas('definitions', 'cryptoProperties', 'properties',
+ 'algorithmProperties', 'properties', 'cryptoFunctions', 'items'),
+ )))
+ def test_knows_value(self, value: str) -> None:
+ super()._test_knows_value(CryptoFunction, 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'CryptoFunction: {cf.name}', bom_ref=f'dummy-CF:{cf.name}',
+ type=ComponentType.CRYPTOGRAPHIC_ASSET,
+ crypto_properties=CryptoProperties(
+ asset_type=CryptoAssetType.ALGORITHM,
+ algorithm_properties=AlgorithmProperties(
+ crypto_functions=[cf]
+ )
+ )
+ ) for cf in CryptoFunction
+ ])
+ super()._test_cases_render(bom, of, sv)
+
+
+@ddt
+class TestEnumRelatedCryptoMaterialType(_EnumTestCase):
+
+ @idata(set(chain(
+ dp_cases_from_xml_schemas(
+ f"./{SCHEMA_NS}complexType[@name='cryptoPropertiesType']/{SCHEMA_NS}sequence"
+ f"/{SCHEMA_NS}element[@name='relatedCryptoMaterialProperties']/{SCHEMA_NS}complexType/{SCHEMA_NS}sequence"
+ f"/{SCHEMA_NS}element[@name='type']/{SCHEMA_NS}simpleType"),
+ dp_cases_from_json_schemas('definitions', 'cryptoProperties', 'properties',
+ 'relatedCryptoMaterialProperties', 'properties', 'type'),
+ )))
+ def test_knows_value(self, value: str) -> None:
+ super()._test_knows_value(RelatedCryptoMaterialType, 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'RelatedCryptoMaterialType: {rcmt.name}', bom_ref=f'dummy-RCMT:{rcmt.name}',
+ type=ComponentType.CRYPTOGRAPHIC_ASSET,
+ crypto_properties=CryptoProperties(
+ asset_type=CryptoAssetType.RELATED_CRYPTO_MATERIAL,
+ related_crypto_material_properties=RelatedCryptoMaterialProperties(
+ type=rcmt
+ )
+ )
+ ) for rcmt in RelatedCryptoMaterialType
+ ])
+ super()._test_cases_render(bom, of, sv)
+
+
+@ddt
+class TestEnumRelatedCryptoMaterialState(_EnumTestCase):
+
+ @idata(set(chain(
+ dp_cases_from_xml_schemas(
+ f"./{SCHEMA_NS}complexType[@name='cryptoPropertiesType']/{SCHEMA_NS}sequence"
+ f"/{SCHEMA_NS}element[@name='relatedCryptoMaterialProperties']/{SCHEMA_NS}complexType/{SCHEMA_NS}sequence"
+ f"/{SCHEMA_NS}element[@name='state']/{SCHEMA_NS}simpleType"),
+ dp_cases_from_json_schemas('definitions', 'cryptoProperties', 'properties',
+ 'relatedCryptoMaterialProperties', 'properties', 'state'),
+ )))
+ def test_knows_value(self, value: str) -> None:
+ super()._test_knows_value(RelatedCryptoMaterialState, 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'RelatedCryptoMaterialState: {rcms.name}', bom_ref=f'dummy-RCMS:{rcms.name}',
+ type=ComponentType.CRYPTOGRAPHIC_ASSET,
+ crypto_properties=CryptoProperties(
+ asset_type=CryptoAssetType.RELATED_CRYPTO_MATERIAL,
+ related_crypto_material_properties=RelatedCryptoMaterialProperties(
+ state=rcms
+ )
+ )
+ ) for rcms in RelatedCryptoMaterialState
+ ])
+ super()._test_cases_render(bom, of, sv)
+
+
+@ddt
+class TestEnumProtocolPropertiesType(_EnumTestCase):
+
+ @idata(set(chain(
+ dp_cases_from_xml_schemas(
+ f"./{SCHEMA_NS}complexType[@name='cryptoPropertiesType']/{SCHEMA_NS}sequence"
+ f"/{SCHEMA_NS}element[@name='protocolProperties']/{SCHEMA_NS}complexType/{SCHEMA_NS}sequence"
+ f"/{SCHEMA_NS}element[@name='type']/{SCHEMA_NS}simpleType"),
+ dp_cases_from_json_schemas('definitions', 'cryptoProperties', 'properties',
+ 'protocolProperties', 'properties', 'type'),
+ )))
+ def test_knows_value(self, value: str) -> None:
+ super()._test_knows_value(ProtocolPropertiesType, 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'ProtocolPropertiesType: {ppt.name}', bom_ref=f'dummy-PPT:{ppt.name}',
+ type=ComponentType.CRYPTOGRAPHIC_ASSET,
+ crypto_properties=CryptoProperties(
+ asset_type=CryptoAssetType.PROTOCOL,
+ protocol_properties=ProtocolProperties(
+ type=ppt
+ )
+ )
+ ) for ppt in ProtocolPropertiesType
+ ])
+ super()._test_cases_render(bom, of, sv)
+
+
+# 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 obj is not _EnumTestCase
+ )
+ return cls.__defined_enumcases
+
+ @staticmethod
+ def __get_defined_model_enums() -> Generator[tuple[str, str], None, None]:
+ model_files = glob(path.join(PROJECT_LIB_MODELS_DIRECTORY, '**', '*.py'), recursive=True)
+ for model_file in model_files:
+ model_file_rel = path.relpath(model_file, PROJECT_LIB_MODELS_DIRECTORY)
+ with open(model_file, 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 model_file_rel, node.name
+ break
+ # Case 2: qualified name: "enum.Enum"
+ if isinstance(base, ast.Attribute) and base.attr == 'Enum':
+ yield model_file_rel, node.name
+ break
+
+ @idata(
+ __get_defined_model_enums.__func__() # py3.9 compat
+ )
+ def test_case_exists(self, defined_model_enums: tuple[str, str]) -> None:
+ model_file_rel, enum_name = defined_model_enums
+ self.assertIn(f'{self.__TestCasePrefix}{enum_name}',
+ self.__get_defined_enumcases(),
+ f'Missing Test Case for Enum {enum_name!r} from File {model_file_rel!r}')