Skip to content

Conversation

@bhess
Copy link
Contributor

@bhess bhess commented Jan 8, 2026

This PR extends the list of cryptography-related behaviors, as discussed in today's Cryptography WG meeting.

The google sheet is synced with those entries.

@bhess bhess requested a review from a team as a code owner January 8, 2026 17:23
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR extends the CycloneDX behavior schema by adding 28 new cryptography-related behaviors to support more detailed security modeling, including certificate presentation, signature verification variants, cryptographic goals (confidentiality, integrity, etc.), and context-specific encryption/decryption operations.

Changes:

  • Added 28 new behavior enum values under security:cryptography namespace
  • Extended cryptographic operations to distinguish between data, code, and document signing/verification
  • Added behaviors for encryption/decryption in different contexts (at rest, in transit, disk, secrets)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

"security:cryptography:encryptsData",
"security:cryptography:exchangesKey",
"security:cryptography:generatesKey",
"security:cryptography:wrapsKey",
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

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

All 28 newly added cryptography behaviors are missing their corresponding descriptions in the meta:enum section (around line 1545-1562). Each enum value should have a matching description entry following the pattern of existing behaviors. For example, 'security:cryptography:wrapsKey' needs an entry like '"security:cryptography:wrapsKey": "The entity encrypts a key for secure storage or transport."' in the meta:enum object.

Copilot uses AI. Check for mistakes.
Comment on lines +815 to +816
"security:cryptography:presentsServerCertificate",
"security:cryptography:presentsClientCertificate",
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

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

All 28 newly added cryptography behaviors are missing their corresponding descriptions in the meta:enum section (around line 1545-1562). Each enum value should have a matching description entry following the pattern of existing behaviors. For example, 'security:cryptography:wrapsKey' needs an entry like '"security:cryptography:wrapsKey": "The entity encrypts a key for secure storage or transport."' in the meta:enum object.

Copilot uses AI. Check for mistakes.
Comment on lines +821 to +825
"security:cryptography:verifiesDataSignature",
"security:cryptography:signsCode",
"security:cryptography:verifiesCodeSignature",
"security:cryptography:signsDocument",
"security:cryptography:verifiesDocumentSignature",
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

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

All 28 newly added cryptography behaviors are missing their corresponding descriptions in the meta:enum section (around line 1545-1562). Each enum value should have a matching description entry following the pattern of existing behaviors. For example, 'security:cryptography:wrapsKey' needs an entry like '"security:cryptography:wrapsKey": "The entity encrypts a key for secure storage or transport."' in the meta:enum object.

Copilot uses AI. Check for mistakes.
Comment on lines +830 to +846
"security:cryptography:authenticates",
"security:cryptography:ensuresConfidentiality",
"security:cryptography:ensuresIntegrity",
"security:cryptography:ensuresNonRepudiation",
"security:cryptography:ensuresAccountability",
"security:cryptography:preservesPrivacy",
"security:cryptography:identifies",
"security:cryptography:usesIdentity",
"security:cryptography:validatesToken",
"security:cryptography:encryptsDataAtRest",
"security:cryptography:encryptsDataInTransit",
"security:cryptography:decryptsDataAtRest",
"security:cryptography:decryptsDataInTransit",
"security:cryptography:encryptsDisk",
"security:cryptography:decryptsDisk",
"security:cryptography:encryptsSecret",
"security:cryptography:decryptsSecret",
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

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

All 28 newly added cryptography behaviors are missing their corresponding descriptions in the meta:enum section (around line 1545-1562). Each enum value should have a matching description entry following the pattern of existing behaviors. For example, 'security:cryptography:wrapsKey' needs an entry like '"security:cryptography:wrapsKey": "The entity encrypts a key for secure storage or transport."' in the meta:enum object.

Copilot uses AI. Check for mistakes.
Comment on lines 810 to 812
"security:cryptography:generatesKey",
"security:cryptography:wrapsKey",
"security:cryptography:generatesRandomValue",
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

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

The behavior 'wrapsKey' is incorrectly positioned. It should appear after 'verifiesSignature' (or at the end with other 'w' entries) to maintain alphabetical ordering. The entire cryptography section follows alphabetical order, and new entries should be inserted accordingly.

Copilot uses AI. Check for mistakes.
Comment on lines +815 to +816
"security:cryptography:presentsServerCertificate",
"security:cryptography:presentsClientCertificate",
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

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

These certificate presentation behaviors are out of alphabetical order. 'presentsClientCertificate' should come before 'presentsServerCertificate' (c before s), and 'preservesPrivacy' should be positioned before both of them in the list.

Suggested change
"security:cryptography:presentsServerCertificate",
"security:cryptography:presentsClientCertificate",
"security:cryptography:presentsClientCertificate",
"security:cryptography:presentsServerCertificate",

Copilot uses AI. Check for mistakes.
Comment on lines 820 to +824
"security:cryptography:signsData",
"security:cryptography:verifiesDataSignature",
"security:cryptography:signsCode",
"security:cryptography:verifiesCodeSignature",
"security:cryptography:signsDocument",
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

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

These signature-related behaviors are not in correct alphabetical order. The 'signs*' entries should be grouped together (signsCode, signsData, signsDocument) before the 'verifies*' entries (verifiesCodeSignature, verifiesDataSignature, verifiesDocumentSignature).

Suggested change
"security:cryptography:signsData",
"security:cryptography:verifiesDataSignature",
"security:cryptography:signsCode",
"security:cryptography:verifiesCodeSignature",
"security:cryptography:signsDocument",
"security:cryptography:signsCode",
"security:cryptography:signsData",
"security:cryptography:signsDocument",
"security:cryptography:verifiesCodeSignature",
"security:cryptography:verifiesDataSignature",

Copilot uses AI. Check for mistakes.
Comment on lines +821 to +846
"security:cryptography:verifiesDataSignature",
"security:cryptography:signsCode",
"security:cryptography:verifiesCodeSignature",
"security:cryptography:signsDocument",
"security:cryptography:verifiesDocumentSignature",
"security:cryptography:storesKey",
"security:cryptography:validatesCertificate",
"security:cryptography:verifiesHash",
"security:cryptography:verifiesSignature",
"security:cryptography:authenticates",
"security:cryptography:ensuresConfidentiality",
"security:cryptography:ensuresIntegrity",
"security:cryptography:ensuresNonRepudiation",
"security:cryptography:ensuresAccountability",
"security:cryptography:preservesPrivacy",
"security:cryptography:identifies",
"security:cryptography:usesIdentity",
"security:cryptography:validatesToken",
"security:cryptography:encryptsDataAtRest",
"security:cryptography:encryptsDataInTransit",
"security:cryptography:decryptsDataAtRest",
"security:cryptography:decryptsDataInTransit",
"security:cryptography:encryptsDisk",
"security:cryptography:decryptsDisk",
"security:cryptography:encryptsSecret",
"security:cryptography:decryptsSecret",
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

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

These behaviors are positioned at the end but should be integrated alphabetically within the existing list. For example, 'authenticates' should appear before 'checksRevocation', 'ensures*' entries should appear before 'exchangesKey', 'identifies' before 'issuesCertificate', and 'usesIdentity' before 'validatesCertificate'.

Suggested change
"security:cryptography:verifiesDataSignature",
"security:cryptography:signsCode",
"security:cryptography:verifiesCodeSignature",
"security:cryptography:signsDocument",
"security:cryptography:verifiesDocumentSignature",
"security:cryptography:storesKey",
"security:cryptography:validatesCertificate",
"security:cryptography:verifiesHash",
"security:cryptography:verifiesSignature",
"security:cryptography:authenticates",
"security:cryptography:ensuresConfidentiality",
"security:cryptography:ensuresIntegrity",
"security:cryptography:ensuresNonRepudiation",
"security:cryptography:ensuresAccountability",
"security:cryptography:preservesPrivacy",
"security:cryptography:identifies",
"security:cryptography:usesIdentity",
"security:cryptography:validatesToken",
"security:cryptography:encryptsDataAtRest",
"security:cryptography:encryptsDataInTransit",
"security:cryptography:decryptsDataAtRest",
"security:cryptography:decryptsDataInTransit",
"security:cryptography:encryptsDisk",
"security:cryptography:decryptsDisk",
"security:cryptography:encryptsSecret",
"security:cryptography:decryptsSecret",
"security:cryptography:authenticates",
"security:cryptography:decryptsDataAtRest",
"security:cryptography:decryptsDataInTransit",
"security:cryptography:decryptsDisk",
"security:cryptography:decryptsSecret",
"security:cryptography:encryptsDataAtRest",
"security:cryptography:encryptsDataInTransit",
"security:cryptography:encryptsDisk",
"security:cryptography:encryptsSecret",
"security:cryptography:ensuresAccountability",
"security:cryptography:ensuresConfidentiality",
"security:cryptography:ensuresIntegrity",
"security:cryptography:ensuresNonRepudiation",
"security:cryptography:identifies",
"security:cryptography:preservesPrivacy",
"security:cryptography:signsCode",
"security:cryptography:signsDocument",
"security:cryptography:storesKey",
"security:cryptography:usesIdentity",
"security:cryptography:validatesCertificate",
"security:cryptography:validatesToken",
"security:cryptography:verifiesCodeSignature",
"security:cryptography:verifiesDataSignature",
"security:cryptography:verifiesDocumentSignature",
"security:cryptography:verifiesHash",
"security:cryptography:verifiesSignature",

Copilot uses AI. Check for mistakes.
Comment on lines +839 to +846
"security:cryptography:encryptsDataAtRest",
"security:cryptography:encryptsDataInTransit",
"security:cryptography:decryptsDataAtRest",
"security:cryptography:decryptsDataInTransit",
"security:cryptography:encryptsDisk",
"security:cryptography:decryptsDisk",
"security:cryptography:encryptsSecret",
"security:cryptography:decryptsSecret",
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

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

These encryption/decryption variants are positioned at the end but should be alphabetically integrated near their base operations. The 'decrypts*' entries should appear after 'decryptsData' and before 'destroysKey'. The 'encrypts*' entries should appear after 'encryptsData' and before 'exchangesKey'.

Suggested change
"security:cryptography:encryptsDataAtRest",
"security:cryptography:encryptsDataInTransit",
"security:cryptography:decryptsDataAtRest",
"security:cryptography:decryptsDataInTransit",
"security:cryptography:encryptsDisk",
"security:cryptography:decryptsDisk",
"security:cryptography:encryptsSecret",
"security:cryptography:decryptsSecret",
"security:cryptography:decryptsDataAtRest",
"security:cryptography:decryptsDataInTransit",
"security:cryptography:decryptsDisk",
"security:cryptography:decryptsSecret",
"security:cryptography:encryptsDataAtRest",
"security:cryptography:encryptsDataInTransit",
"security:cryptography:encryptsDisk",
"security:cryptography:encryptsSecret",

Copilot uses AI. Check for mistakes.
@stevespringett stevespringett added the cap: cryptography Capability: Cryptography (CBOM) label Jan 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cap: cryptography Capability: Cryptography (CBOM)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants