In CycloneDX, dependsOn
and provides
describe different aspects of dependency relationships within a system. dependsOn
represents what a component or service requires to function, such as libraries, APIs, or other services it relies upon. For example, an application may depend on a cryptographic library for encryption or a protocol for secure communication. This helps define the consumer-side dependencies needed to maintain functionality and performance.
In contrast, provides
specifies what a component or service delivers, particularly in terms of standards or capabilities it implements. For instance, a library may provide support for a specific algorithm or protocol, highlighting its role as a producer of certain functionalities. Together, these attributes offer a complete view of system relationships, supporting better transparency, compliance, and risk management.
Property | Usage Description |
---|---|
bom-ref | A unique identifier within the BOM used to reference a specific component or service elsewhere in the document, enabling precise cross-referencing and relationships. |
ref | Identifies the component or service being described, which may depend on other components or services. |
dependsOn | Lists the bom-ref identifiers of components or services that the described component or service depends on. |
provides | Identifies the components or services, referenced by their bom-ref, that implement or fulfill a specific specification or standard associated with this dependency. |
{
"bomFormat": "CycloneDX",
"specVersion": "1.6",
"serialNumber": "urn:uuid:e8c355aa-2142-4084-a8c7-6d42c8610ba2",
"version": 1,
"metadata": {
"timestamp": "2025-01-01T12:00:00Z",
"component": {
"bom-ref": "acme-application",
"type": "application",
"name": "Acme Application",
"version": "1.0.0"
}
},
"components": [
{
"bom-ref": "crypto-library",
"type": "library",
"name": "Cryptographic Library",
"version": "2.5.0"
},
{
"name": "AES-128-GCM",
"type": "cryptographic-asset",
"bom-ref": "[email protected]",
"cryptoProperties": {
"assetType": "algorithm",
"algorithmProperties": {
"parameterSetIdentifier": "128",
"primitive": "ae",
"mode": "gcm",
"executionEnvironment": "software-plain-ram",
"implementationPlatform": "x86_64",
"cryptoFunctions": [ "keygen", "encrypt", "decrypt" ]
},
"oid": "2.16.840.1.101.3.4.1.6"
}
}
],
"dependencies": [
{
"ref": "acme-application",
"dependsOn": ["crypto-library"]
},
{
"ref": "crypto-library",
"provides": ["[email protected]"]
}
]
}
The definitive reference for using Cryptography Bill of Materials (CBOM) for Post-Quantum Cryptography (PQC) readiness.
Migration to Post-Quantum Cryptography Quantum Readiness: Cryptographic Discovery