Skip to content

Conversation

stevespringett
Copy link
Member

@stevespringett stevespringett commented Jul 1, 2025

The cryptography working group has received feedback from real-world usage and have made enhancements to the CBOM specificaiton:

  • enum CryptoProperties.AlgorithmProperties.CryptoPrimitive got a new case "key-wrap".
  • added field CryptoProperties.AlgorithmProperties.algorithmFamily
  • added field CryptoProperties.AlgorithmProperties.ellipticCurve
  • deprecated field CryptoProperties.AlgorithmProperties.curve
  • added field CryptoProperties.CertificateProperties.serialNumber
  • added field CryptoProperties.CertificateProperties.certificateFileExtension
  • deprecated field CryptoProperties.CertificateProperties.certificateExtension
  • deprecated field CryptoProperties.CertificateProperties.signatureAlgorithmRef
  • deprecated field CryptoProperties.CertificateProperties.subjectPublicKeyRef
  • added field CryptoProperties.CertificateProperties.fingerprint
  • added field CryptoProperties.CertificateProperties.certificateState
  • added field CryptoProperties.CertificateProperties.creationDate
  • added field CryptoProperties.CertificateProperties.activationDate
  • added field CryptoProperties.CertificateProperties.deactivationDate
  • added field CryptoProperties.CertificateProperties.revocationDate
  • added field CryptoProperties.CertificateProperties.destructionDate
  • added field CryptoProperties.CertificateProperties.certificateExtensions
  • added field CryptoProperties.CertificateProperties.relatedCryptographicAssets
  • deprecated field CryptoProperties.RelatedCryptoMaterialProperties.algorithmRef
  • added field CryptoProperties.RelatedCryptoMaterialProperties.fingerprint
  • added field CryptoProperties.RelatedCryptoMaterialProperties.relatedCryptographicAssets
  • enum CryptoProperties.ProtocolProperties.CryptoProtocolType got new cases: DTLS, QUIC, AKA, AKA_PRIME, PRINS , 5G_AKA
  • added field CryptoProperties.ProtocolProperties.CryptoProtocolCipherSuite.tlsGroups
  • added field CryptoProperties.ProtocolProperties.CryptoProtocolCipherSuite.tlsSignatureSchemes
  • deprecated ikev2Trans information as strings (BOM-links)
  • added capabilities to capture ikev2Trans information in detailed form
  • added field CryptoProperties.CertificateProperties.relatedCryptographicAssets

Closes #569


RFC notice sent 2025-07-26
This RFC will be open for 4 weeks. At the end of the RFC period the CycloneDX community will vote, by lazy consensus, to accept or reject the proposal.
RFC period end: 2025-08-23


TODO/DONE

  • add examples for XML
  • add examples for JSON
  • add examples for ProtoBuf
  • implement for XML
  • implement for JSON
  • implement for ProtoBuf

stevespringett and others added 21 commits March 21, 2025 22:07
- Adds a few more algorithm
- Converts urls to standards to doi links, where available.
- Checks if urls work

Signed-off-by: Basil Hess <[email protected]>
- Adds a few more algorithm
- Converts urls to standards to doi links, where available.
- Checks if urls work

----

TODO / progress
- [x] JSON schema
- [ ] XML schema
- [ ] ProtoBugf schema

<!-- 
Thank you for taking the time to develop and contribute a core
enhancement or fix for a defect!

We kindly request that you create pull requests only for things that
have been discussed in a ticket first; exceptions may be made for
spelling or grammar fixes.
Read more about the process here:
https://cyclonedx.org/participate/standardization-process/#working-model

Please have the related ticket/issue ID ready. 
If there is none, feel free to create a new ticket:
https://github.com/CycloneDX/specification/issues/new/choose

-->

<!-- 

Please provide a brief description of what this pull request intends to
do and which ticket it fixes/closes.
Example: 
> As discussed in ticket #485, this PR adds Streebog to the hash
algorithm enum.
>
> fixes #485 

In case this is for a spelling or grammar improvement, please provide a
brief description.
Example:
> Fixe typo: color(AE) -> colour(BE)

-->
Signed-off-by: Basil Hess <[email protected]>
- Changes schma for crypto-defs to allow different variant patterns corresponding to different primitives
- Adds "key-wrap" as a new primitive

Signed-off-by: Basil Hess <[email protected]>
- Extends cryptography-defs.json list with algorithms from PKCS11
- Changes schma for crypto-defs to allow different variant patterns
corresponding to different primitives
- Adds "key-wrap" as a new primitive
{placeholder} -> required parameter with placeholder
(option1|option2) -> required parameter with fixed alternatives
[parameter] -> optional parameter
[-{placeholder}] -> optional paremeter with literal separator

Signed-off-by: Basil Hess <[email protected]>
Signed-off-by: Basil Hess <[email protected]>
This PR will add a python script that can be used to generate an
enum-object for the cyclonedx json schema that reflects algorithm
families defined in `cryptography-defs.json`.
The following rules apply for the patterns:

{placeholder} -> required parameter with placeholder
(option1|option2) -> required parameter with fixed alternatives 
[parameter] -> optional parameter
[-{placeholder}] -> optional parameter with literal separator

<!-- 
Thank you for taking the time to develop and contribute a core
enhancement or fix for a defect!

We kindly request that you create pull requests only for things that
have been discussed in a ticket first; exceptions may be made for
spelling or grammar fixes.
Read more about the process here:
https://cyclonedx.org/participate/standardization-process/#working-model

Please have the related ticket/issue ID ready. 
If there is none, feel free to create a new ticket:
https://github.com/CycloneDX/specification/issues/new/choose

-->

<!-- 

Please provide a brief description of what this pull request intends to
do and which ticket it fixes/closes.
Example: 
> As discussed in ticket #485, this PR adds Streebog to the hash
algorithm enum.
>
> fixes #485 

In case this is for a spelling or grammar improvement, please provide a
brief description.
Example:
> Fixe typo: color(AE) -> colour(BE)

-->
@stevespringett stevespringett added this to the 1.7 milestone Jul 1, 2025
stevespringett and others added 6 commits June 30, 2025 20:46
Signed-off-by: Jan Kowalleck <[email protected]>
Signed-off-by: Jan Kowalleck <[email protected]>
@jkowalleck
Copy link
Member

Still reviewing the changes . Looks like some implementation have breaking changes, stil. I need to double check and craft the needed test resources.

Sorry, this takes some time.

Background: Some people from the community approached me last year, and they complained about unexpected breaking changes in the CycloneDX PB schema - which basically rendered all their efforts for interoperability useless.
I've introduced PB checks for breaking changes for a good reason - to prevent such unexpected changes, so that ProtoBuf can actually be used in the real-world. (see #384)

@jkowalleck
Copy link
Member

re #657 (comment)

@stevespringett , what do you think about #677 ? this will remove any breaking changes in the PB implementations.

Copy link
Member

@jkowalleck jkowalleck left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove the word "optional" where possible. the information which fields are optional are clearly visible in the schema.
see #649 (comment) and #616 (comment)

stevespringett and others added 6 commits September 3, 2025 15:37
Co-authored-by: Jan Kowalleck <[email protected]>
Signed-off-by: Steve Springett <[email protected]>
Co-authored-by: Jan Kowalleck <[email protected]>
Signed-off-by: Steve Springett <[email protected]>
Co-authored-by: Jan Kowalleck <[email protected]>
Signed-off-by: Steve Springett <[email protected]>
Iteration over the crypto definitions, extending the list with more
algorithms.

No changes to the schema.

<!-- 
Thank you for taking the time to develop and contribute a core
enhancement or fix for a defect!

We kindly request that you create pull requests only for things that
have been discussed in a ticket first; exceptions may be made for
spelling or grammar fixes.
Read more about the process here:
https://cyclonedx.org/participate/standardization-process/#working-model

Please have the related ticket/issue ID ready. 
If there is none, feel free to create a new ticket:
https://github.com/CycloneDX/specification/issues/new/choose

-->

<!-- 

Please provide a brief description of what this pull request intends to
do and which ticket it fixes/closes.
Example: 
> As discussed in ticket #485, this PR adds Streebog to the hash
algorithm enum.
>
> fixes #485 

In case this is for a spelling or grammar improvement, please provide a
brief description.
Example:
> Fixe typo: color(AE) -> colour(BE)

-->
@jkowalleck jkowalleck requested a review from a team September 7, 2025 10:42
… for ProtoBuf (#677)

removed breaking changes in Protocol Buffer schema regarding CBOM
changes


caused by
#657 (comment)
@jkowalleck jkowalleck changed the title [1.7] - Updates from CBOM working group - BREAKING CHANGES [1.7] - Updates from CBOM working group Sep 7, 2025
@jkowalleck jkowalleck self-requested a review September 7, 2025 10:53
@jkowalleck jkowalleck merged commit 930992c into 1.7-dev Sep 7, 2025
8 of 9 checks passed
@jkowalleck jkowalleck deleted the 1.7-dev-cryptography branch September 7, 2025 11:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CDX 1.7 related to release v1.7 proposed core enhancement request for comment RFC notice sent A public RFC notice was distributed to the CycloneDX mailing list for consideration test-data related to test-resources and -data
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants