<?xml version="1.0" encoding="utf-8"?>
<!-- 
     draft-dev-xipher-cbom-extension-00
  
     This template includes examples of the most commonly used features of RFCXML with comments 
     explaining how to customise them. This template can be quickly turned into an I-D by editing 
     the examples provided. Look for [REPLACE], [REPLACE/DELETE], [CHECK] and edit accordingly.
     Note - 'DELETE' means delete the element or attribute, not just the contents.
     
     Documentation is at https://authors.ietf.org/en/templates-and-schemas
-->
<?xml-model href="rfc7991bis.rnc"?>  <!-- Required for schema validation and schema-aware editing -->
<!-- <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> -->
<!-- This third-party XSLT can be enabled for direct transformations in XML processors, including most browsers -->


<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<!-- If further character entities are required then they should be added to the DOCTYPE above.
     Use of an external entity file is not recommended. -->

<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  category="info"
  docName="draft-dev-xipher-cbom-extension-00"
  ipr="trust200902"
  obsoletes=""
  updates=""
  submissionType="IETF"
  xml:lang="en"
  version="3">
<!-- [REPLACE] 
       * docName with name of your draft
     [CHECK] 
       * category should be one of std, bcp, info, exp, historic
       * ipr should be one of trust200902, noModificationTrust200902, noDerivativesTrust200902, pre5378Trust200902
       * updates can be an RFC number as NNNN
       * obsoletes can be an RFC number as NNNN 
-->

  <front>
    <title abbrev="PQC CBoM Extension">Output Schema Based on Cryptographic Bill of Materials (CBoM) for Post-Quantum Cryptography Usage</title>
    <!--  [REPLACE/DELETE] abbrev. The abbreviated title is required if the full title is longer than 39 characters -->

    <seriesInfo name="Internet-Draft" value="draft-dev-xipher-cbom-extension-00"/>
   
    <author fullname="Jayati Dev" initials="J" role="editor" surname="Dev">
      <!-- [CHECK]
             * initials should not include an initial for the surname
             * role="editor" is optional -->
    <!-- Can have more than one author -->
      
    <!-- all of the following elements are optional -->
      <organization>Comcast</organization>
      <address>
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street>1800 Arch St</street>
          <city>Philadelphia</city>
          <region>Pennsylvania</region>
          <code>19130</code>
          <country>US</country>
          <!-- Uses two letter country code -->
        </postal>        
        <email>Jayati_Dev@comcast.com</email>  
        <!-- Can have more than one <email> element -->
      </address>
    </author>
   
    <date year="2026" month="4" day="20"/>
    <!-- On draft subbmission:
         * If only the current year is specified, the current day and month will be used.
         * If the month and year are both specified and are the current ones, the current day will
           be used
         * If the year is not the current one, it is necessary to specify at least a month and day="1" will be used.
    -->

    <area>General</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <!-- "Internet Engineering Task Force" is fine for individual submissions.  If this element is 
          not present, the default is "Network Working Group", which is used by the RFC Editor as 
          a nod to the history of the RFC Series. -->

    <keyword>cryptography, schema, quantum</keyword>

    <abstract>
      <t>This document defines an output schema for inventorying cryptographic assets based on Cryptographic Bill of Materials (CBoM). It highlights key differences between an inventoring schema and CBoM, identifies gaps, and proposes a unified schema that can leverage existing CycloneDX parameters to create a usable cryptographic asset inventory.</t>
    </abstract>
 
  </front>

  <middle>
    
    <section>
      <name>Introduction</name>
      <t>A CBoM or Cryptographic Bill of Materials (CBoM) is an extension of the Software Bill of Materials (SBoM). SBoM are typically used to describe various components of a software, which helps assess vulnerabilities and provenance of such components. A CBoM is an added representation on top of SBoM that further describes cryptographic components in the software. For example, a CBoM can describe the cryptographic algorithms, key sizes, modes of operation, and other relevant details of the cryptographic components used in the software. This additional information helps organizations better understand what cryptographic algorithms exist, where they are used, and make informed decisions about their deployment (e.g., whether to deprecate algorithms or not, etc.). For the purpose of this document, we follow IBM's well known CBoM schema <xref target="cbom"/>. As of 2025, the latest version of CBoM schema that is part of the well known SBoM standard CycloneDX v1.7 is the following: </t>
      <figure>
        <name>Pseudo representation of CBoM Available in CycloneDX v1.7</name>
        <sourcecode name="cbom.json" type="json" markers="true">
          <![CDATA[
          component:
            type: library
            name: example-component
            version: 1.0.0
            cryptographicProperties:
              - algorithm
                - additional algorithm properties 
              - certificate
                - additional certificate properties
              - protocol 
                - additional protocol properties
              - related cryptomaterial
                - additional related cryptomaterial properties
            other properties...
          ]]>
        </sourcecode>
        <!-- [CHECK] markers="true" means that the rendered file will have <CODE BEGINS> and <CODE ENDS> added -->
      </figure>
      
      <t> Such CBoM are currently generated at a software component level, either through static or dynamic analysis. In practice, this can look like a mix of automated tools and manual processes to generate CBoM for software components. </t>
      </section>
     <section>  
      <name>Cryptographic Asset Inventory (CAI)</name>
      <t> A Cryptographic Asset Inventory (CAI) is an organizational level inventory of all cryptographic assets used within an organization. This includes hardware, software, and services that utilize cryptographic algorithms for security purposes. The difference between a CBoM and CAI is that the former is an extension of SBoM while the latter is centered around cryptographic assets that goes beyond software components. The purpose of a CAI is to provide a comprehensive view of the cryptographic assets in use, their configurations, and their compliance with organizational policies and industry standards. A CAI helps organizations manage their cryptographic assets effectively, ensuring that they are up-to-date, secure, and compliant with relevant regulations. Think of it this way - CBoMs are part of SBoMs, HBoMs, and other BoMs. CAI would be one schema that encompasses all instances of CBoMs in other BoMs.</t>
    </section>
    <section>
      <name> Components of a CAI</name>
      <t>An important feature of CBoM is its ability to provide detailed cryptographic properties at the component level. this essentially makes it use case independent. By capturing the maximum information available, it can be used for a variety of use cases. For CAI, however, we typically scope information that is relevant to cryptographic compliance. For this document, the use case we focus on is the ability to provide enough information that would help an organization be compliant with existing cryptographic standards and future PQC standards. Hence, a CAI should fulfil the following functions:</t>

        <ol>
        <li>Criteria 1: At some level of grouping, provide a list of cryptographic assets that are present in the overall system. This system should encompass all assets, including software, hardware, and underlying infrastructure. The grouping can be done at any feasible level, i.e., application, ownership, remediation team, etc.</li>
        <li>Criteria 2: The inventory should provide compliance information according to current cryptographic standards. These standards can be a combination of organizational encryption policy, industry standards for secure encryption, and regulatory requirements.</li>
        <li>Criteria 3: The inventory should provide indicators of future quantum-resistant compliance. This should include any newly standardized algorithms that are present in code, network, or infrastructure.</li>
        <li>Criteria 4: The inventory should contain minimum information that would enable required parties to assess and manage cryptographic risks effectively. It should not contain fields unnecessary for the purpose of inventorying.</li>
        <li>Criteria 5: The inventory should to the extent possible, be automated for accurate updates to cryptographic information.</li>
      </ol>   
      <!--section>
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
          "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
          RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
          interpreted as described in BCP 14 <xref target="RFC2119"/>
          <xref target="RFC8174"/> when, and only when, they appear in
          all capitals, as shown here.</t>
      </section-->
      <!-- [CHECK] The 'Requirements Language' section is optional - this does not apply -->

    </section>
    
    <section>
      <name>Differences between CBoM and a Cryptographic Asset Inventory (CAI)</name>
      <t>We looked at the CryptoProperties schema in CycloneDX which is a representation of the original CBoM format <xref target="cyclone-cbom"/>. Based on the necessary properties of an organization level CAI, we identified the following areas in existing CBoM standards which can be augmented with additional information for a PQC inventory: </t>
      
      <ol>
        <li>CBoM has a larger set of infomation that is use case independent</li>
        <li>Complex inventories to inform PQC are hard to capture in the current structure</li>
        <li>Clarity on mandatory versus optional fields needed</li>
        <li>Hierarchy and relationships between cryptographic components are needed for understanding downstream effect</li>
        <li>Additional information on criticality scoring would be helpful for asset prioritization</li>
        <li>Chance of asset duplication</li>
        <li>Need PQC-ready-compliance information in addition to CBoM information</li>
      </ol>
      
      <!--ul>
        <li>Bulleted list item [REPLACE/DELETE]</li>
      </ul-->
      
    <!--   <dl newline="true">
        < Omit newline="true" if you want each definition to start on the same line as the corresponding term>
        <dt>First term: [REPLACE/DELETE]</dt>
        <dd>Definition of the first term [REPLACE/DELETE]</dd>
        <dt>Second term: [REPLACE/DELETE]</dt>
        <dd>Definition of the second term [REPLACE/DELETE]</dd>
      </dl> -->
      
      <table>
      <name>Comparison of Existing CBoM and CBoM Extension Against CAI Criteria.</name>
      <thead> 
      <tr> 
          <th>Enhancements</th>
          <th>Orignal CBoM Schema</th>
          <th>CBoM Extension</th>
      </tr></thead>
    <tbody>
      <tr>
        <td>Huge amount of information present.   </td>
        <td>CBoMs capture the maximum set of information that can be collected about cryptographic operations. This approach makes automation difficult and leaves a lot of blank values in the resulting JSON schema.  </td>
        <!-- They ask - “what is everything we can  collect?”  (20+ unnecessary fields like  “confidencelevel”  which only apply to libraries).-->
        <td>The extended format scopes down the fields required to make a migration decision to quantum-resistant cryptography.   </td>
        <!--We ask – “what is the minimum number of  fields required to solve this problem?”-->
      </tr>
      <tr>
        <td>Fundamental structural issues  when cryptographic assets (application,  framework, library, container, operating-system, device, firmware, or a  file) are mapped at “organization” level.  </td>
        <td>Traditional BoMs designed at an organizational level is a list of information that is hard to action unless mapped to specific entities. <!--is designed at an org level (it is a laundry list of information which is  hard to action without org info attached to it).-->  This approach works well for single products, but is hard to scale. It also only works for code-based inventory where some contributor information might be available. </td>
        <td>The extended format maps assets at both organization, application, and owner level. This helps in mapping assets to teams which have responsibilities to make changes and works for both code-based and non-code-based cryptographic assets. </td>
      </tr>
      <tr>
        <td>No hierarchical nature of  crypto-elements is enforced, so algorithms can exist in a CBoM without any source attribution or  supporting metadata.   </td>
        <td>The CycloneDX schema can accept both related and unrelated asset type. For example, cryptoProperties.assetTypes can be an algorithm, certificate, protocol, or relatedCryptoMaterial. However, a certificate can be  part of a protocol, an algorithm can be part of a certificate, and the relatedCryptoMaterial  will not work when assetType is an algorithm.  </td>
        <td>Hierarchical system for assets and  supporting metadata added.   </td>
      </tr>
      <tr>
        <td>There is a chance of asset information  duplication.  </td>
        <td>If asset types for both protocol and algorithm are recorded, their information can duplicate. For e.g., ikev2TransformTypes and tlsCipherSuites can be captured under both protocol and algorithm schema.  </td>
        <td> When assets are mapped at application level, the extended format ensures unique identification and tracking of each asset, reducing the chance of information duplication, especially because the algorithm information itself is not the main asset but a part of it. </td>
      </tr>
      <tr>
        <td>The utility of the produced information in a CBoM is quite broad.  </td>
        <td>Without connection with internal policies, it will be hard to determine the relevance of the information and make it actionable. For e.g., algorithm information without highlight if they are deprecated or not is hard to action.  </td>
        <td>Introduce fields that can track  compliance with current standards and new quantum-resistant standards.   </td>
      </tr>
      <tr>
        <td>Missing criticality score prevents determination of migration priority for high-risk applications.  </td>
        <td>Criticality scoring is  missing.  </td>
        <td>Criticality scoring is integrated into  the schema, which can be updated based on risk assessment frameworks like  CARAF <xref target="caraf"/>.  </td>
      </tr>
    </tbody>
    </table>

<!-- 
      <figure>
        <name>Diagram [REPLACE]</name>
        <artset> -->
        <!-- This <artset> includes two <artwork> elements, each of a different type -->
          <!-- <artwork type="svg" src="https://www.rfc-editor.org/materials/format/svg/stream.svg" /> -->
          <!-- [REPLACE] src points to either a local file or a URI. -->
          <!-- <artwork type="ascii-art" name="stream.txt"> -->
            <!-- [REPLACE/DELETE] name recommends a filename to use if the diagram is extracted -->  
 <!--            <![CDATA[
 ascii-art diagram goes here [REPLACE]
            ]]>
          </artwork>
        </artset>
      </figure>  -->

    </section>   

      <section>
        <name>Data Structure for CAI</name>
        <t>The standard CBoM structure as shown in <xref target="og-str">Figure 1</xref> has a total of 55 fields grouped by component type. Each algorithm is a separate component "linked" by dependency. The new structure for CAI as shown in <xref target="new-str">Figure 2</xref> has a total of 28 fields grouped by application. Each application contains multiple crypto-elements with their respective properties. The new structure is more compact and hierarchical, making it easier to understand and manage cryptographic assets at an application level for PQC needs.</t>
         <figure>
        <name>Original Structure</name>
        <sourcecode name="og-str" type="json" anchor="og-str" markers="true">
          <![CDATA[
              Component (app/file/library/etc) {
                Algo properties
                Cert properties
                Proto properties
                Related cryptomaterial properties
              }  
          ]]>
        </sourcecode>
        <!-- [CHECK] markers="true" means that the rendered file will have <CODE BEGINS> and <CODE ENDS> added -->
      </figure>
      <t>The new structure <xref target="new-str">Figure 2</xref> also makes it easier for cryptographic assets to inherit the risk properties of its parent application. The algorithm field is a sub-component wrapped inside a crypto-element, which in turn is wrapped in an application element. A noticeable change between the two is the inclusion of "Compliance_info", which specifies if certain algorithms are compliant or not.</t>
       <figure>
        <name>New Structure</name>
        <sourcecode name="new-str" type="json" anchor="new-str" markers="true">
          <![CDATA[
            Application {
              Application metadata {
                    Owner
                    Criticality 
                    Other metadata
                }
              Crypto-elements {
                Source: code {
                      Certificates {
                        Algorithm and compliance info
                        Crypto-element metadata
                      }
                      Crypto Libraries {
                        Algorithm and compliance info
                        Related Crypto Materials (keys, IVs, nonces)
                      }
                      Cert/library/proto {
                        Algorithm and compliance info
                        Crypto-element metadata
                      }
                  }
                Source: network {
                      Protocols {
                        Algorithm and compliance info
                        Crypto-element metadata
                      }
                      Certificates {
                        Algorithm and compliance info
                        Crypto-element metadata
                      }
                    }
                  Source: infrastructure {
                        Internal {
                          Infra Type 
                          (Container, OS, Hardware, Cloud services, Devices, Files) 
                          {
                            Algorithm and compliance info
                            Crypto-element metadata
                          }
                        }
                        External {
                          Infra Type 
                          (Container, Hardware, Cloud services, Files)  
                          {
                            Algorithm and compliance info
                            Crypto-element metadata
                          }
                        }
                    }
                }
            }
          ]]>
        </sourcecode>
        <!-- [CHECK] markers="true" means that the rendered file will have <CODE BEGINS> and <CODE ENDS> added -->
      </figure>
      <t> Using the CBoM schema as the standard template and adding the additional elements, we observe the following overall structure.</t>

      
<table>
  <name>Overall Mapping of Proposed Extended CBoM based on CAI Schema to CBoM Schema. The fields on the left is the extended schema for PQC use case. </name>
  <thead>
    <tr>
      <th>PQC Use Case Schema</th>
      <th>Existing CBoM Schema Equivalent</th>
    </tr>
  </thead>
  <tbody>
    <tr><td>application_ID</td><td></td></tr>
    <tr><td>application_ID.owner</td><td>component.authors</td></tr>
    <tr><td>application_ID.criticality</td><td></td></tr>
    <tr><td>application_ID.asset_ID</td><td>component.name</td></tr>
    <tr><td>application_ID.asset_ID<br></br>.responsible_entity</td><td></td></tr>
    <tr><td>application_ID.asset_ID<br></br>.purpose</td><td></td></tr>
    <tr><td>application_ID.asset_ID<br></br>.compliance.is_compliant</td><td></td></tr>
    <tr><td>application_ID.asset_ID<br></br>.compliance.is_PQC_vulnerable</td><td></td></tr>
    <tr><td>application_ID.asset_ID<br></br>.compliance.upgradeable</td><td></td></tr>
    <tr><td>application_ID.asset_ID<br></br>.compliance.compliance_message</td><td></td></tr>
    <tr>
      <td>application_ID.asset_ID<br></br>.source[y] <br></br>(0=code.source_name, 1=network.source_name, 2=infra.source_name)</td>
      <td>cryptoProperties.scanner</td>
    </tr>
    <tr><td>application_ID.asset_ID<br></br>.source[0].repo_name</td><td></td></tr>
    <tr><td>application_ID.asset_ID<br></br>.source[x].discovery_date</td><td></td></tr>
    <tr>
      <td>application_ID.asset_ID<br></br>.type[x] <br></br>(0=library, 1=protocol, 2=certificate)</td>
      <td>cryptoProperties.assetTypes</td>
    </tr>
    <tr>
      <td rowspan="2">application_ID.asset_ID<br></br>.type[x].algorithm_in_use</td>
      <td>cryptoProperties.algorithm.variant</td>
    </tr>
    <tr><td>cryptoProperties.protocol.tlsCipherSuites</td></tr>
    <tr><td>application_ID.asset_ID<br></br>.type[x].device_info</td><td>cryptoProperties.algorithm.implementationPlatform</td></tr>
    <tr><td>application_ID.asset_ID<br></br>.type[x].signature_algorithm_name</td><td>cryptoProperties.certificate.certificateAlgorithm</td></tr>
    <tr><td>application_ID.asset_ID<br></br>.type[x].key_size</td><td>cryptoProperties.relatedCryptoMaterial.size</td></tr>
    <tr><td>application_ID.asset_ID<br></br>.type[x].signature_algorithm_oid</td><td>cryptoProperties.oid</td></tr>
    <tr><td>application_ID.asset_ID<br></br>.type[x].asset_path</td><td>cryptoProperties.detectionContext.filepath</td></tr>
    <tr><td>application_ID.asset_ID<br></br>.type[x].curve_name</td><td></td></tr>
    <tr><td>application_ID.asset_ID<br></br>.type[0].line</td><td>cryptoProperties.detectionContext.lineNumbers</td></tr>
    <tr><td>application_ID.asset_ID<br></br>.type[0].code_block</td><td>cryptoProperties.detectionContext.additionalContext</td></tr>
    <tr><td>application_ID.asset_ID<br></br>.type[0].confidence_level</td><td>cryptoProperties.confidenceLevels.variant</td></tr>
    <tr><td>application_ID.asset_ID<br></br>.type[1].protocol_name</td><td></td></tr>
    <tr><td>application_ID.asset_ID<br></br>.type[2].expiry_date</td><td>cryptoProperties.certificate.notValidAfter</td></tr>
    <tr><td>application_ID.asset_ID<br></br>.type[2].parent_cert_references</td><td></td></tr>
    <tr><td>application_ID.asset_ID<br></br>.type[2].issuer</td><td>cryptoProperties.certificate.issuerName</td></tr>
    <tr><td></td><td>+39 rows not added</td></tr>
  </tbody>
</table>

      
            <!-- <table><thead>
        <tr>
          <th>    PQC Use Case Schema</th>
          <th>    Existing CBoM Schema Equivalent   </th>
        </tr></thead>
      <tbody>
        <tr>
          <td>    application_ID   </td>
          <td>   </td>
        </tr>
        <tr>
          <td> application_ID.owner </td>
          <td> component.authors </td>
        </tr>
        <tr>
          <td> application_ID.criticality </td>
          <td>   </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID </td>
          <td> component.name </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.responsible_entity </td>
          <td>   </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.purpose </td>
          <td>   </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.compliance.is_compliant </td>
          <td>   </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.compliance.is_PQC_vulnerable </td>
          <td>   </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.compliance.upgradeable </td>
          <td>   </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.compliance.compliance_message </td>
          <td>   </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.source[y] [0=code.source_name, 1=network.source_name, 2=infra.source_name] </td>
          <td> cryptoProperties.scanner </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.source[0].repo_name </td>
          <td>   </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.source[x].discovery_date </td>
          <td>   </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.type[x] [0=library, 1=protocol, 2=certificate] </td>
          <td> cryptoProperties.assetTypes </td>
        </tr>
        <tr>
          <td rowspan="2"> application_ID.asset_ID.type[x].algorithm_in_use </td>
          <td> cryptoProperties.algorithm.variant </td>
        </tr>
        <tr>
          <td> cryptoProperties.protocol.tlsCipherSuites </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.type[x].device_info </td>
          <td> cryptoProperties.algorithm.implementationPlatform </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.type[x].signature_algorithm_name </td>
          <td> cryptoProperties.certificate.certificateAlgorithm </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.type[x].key_size </td>
          <td> cryptoProperties.relatedCryptoMaterial.size </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.type[x].signature_algorithm_oid </td>
          <td> cryptoProperties.oid </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.type[x].asset_path </td>
          <td> cryptoProperties.detectionContext.filepath </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.type[x].curve_name </td>
          <td>  </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.type[0].line </td>
          <td> cryptoProperties.detectionContext.lineNumbers </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.type[0].code_block </td>
          <td> cryptoProperties.detectionContext.additionalContext </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.type[0].confidence_level </td>
          <td> cryptoProperties.confidenceLevels.variant </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.type[1].protocol_name </td>
          <td>  </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.type[2].expiry_date </td>
          <td> cryptoProperties.certificate.notValidAfter </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.type[2].parent_cert_references </td>
          <td>  </td>
        </tr>
        <tr>
          <td> application_ID.asset_ID.type[2].issuer </td>
          <td> cryptoProperties.certificate.issuerName </td>
        </tr>
        <tr>
          <td>  </td>
          <td> +39 rows not added </td>
        </tr>
      </tbody></table>   -->

    <t> The above table maps the proposed CAI schema fields to their equivalent CBoM schema fields. Not all fields have a direct equivalent, indicating areas where the CAI schema introduces new concepts or structures not present in the original CBoM schema. </t>
      </section>
      <section>
        <name>Conclusion</name>
        <t> In this document, we proposed an extension to the existing CBoM schema to better suit the needs of an organizational level Cryptographic Asset Inventory (CAI). By identifying gaps in the current CBoM standards and introducing a more hierarchical and use-case focused structure, we aim to provide a more effective schema for organizations to manage their cryptographic assets, ensuring compliance with current and future standards, including post-quantum cryptography requirements. Future work includes developing tools for automated generation and maintenance of CAI based on this proposed schema. </t>
      <!-- [CHECK] The 'Requirements Language' section is optional - this does not apply -->
    </section>
    <section anchor="IANA">
    <!-- All drafts are required to have an IANA considerations section. See RFC 8126 for a guide.-->
      <name>IANA Considerations</name>
      <t>This memo includes no request to IANA. </t>
    </section>
    
    <section anchor="Security">
      <!-- All drafts are required to have a security considerations section. See RFC 3552 for a guide. -->
      <name>Security Considerations</name>
      <t>This document should not affect the security of the Internet. </t>
    </section>
    
    <!-- NOTE: The Acknowledgements and Contributors sections are at the end of this template -->
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        
        <!-- xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/ -->
        <!-- xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/-->
        <!-- The recommended and simplest way to include a well known reference -->
        
        <reference anchor="cbom" target="https://research.ibm.com/blog/cryptographic-cbom-linux-foundation">
        <!-- [REPLACE/DELETE] Example reference written by an organization not a person -->
          <front>
            <title>IBM is donating its CBOM toolset to the Linux Foundation</title>
            <author>
              <organization>IBM</organization>
            </author>
            <date year="2025"/>
            <!-- [CHECK] -->
          </front>
        </reference> 

         <reference anchor="cyclone-cbom" target="https://cyclonedx.org/guides/OWASP_CycloneDX-Authoritative-Guide-to-CBOM-en.pdf">
        <!-- [REPLACE/DELETE] Example reference written by an organization not a person -->
          <front>
            <title>CycloneDX: An Authoritative Guide to CBOM</title>
            <author>
              <organization>OWASP</organization>
            </author>
            <date year="2025"/>
            <!-- [CHECK] -->
          </front>
        </reference> 

        <reference anchor="caraf" target="https://academic.oup.com/cybersecurity/article/7/1/tyab013/6289827">
        <!-- [REPLACE/DELETE] Example reference written by an organization not a person -->
          <front>
            <title>CARAF: Crypto Agility Risk Assessment Framework</title>
            <author initials="CM" surname="Ma">
              <organization/>
            </author>
            <date year="2021"/>
            <!-- [CHECK] -->
          </front>
        </reference> 
      </references>
 
      <!--references-->
        <!-- <name>Informative References</name> -->
       
     <!--    <reference anchor="exampleRefMin">
          <front>
            <title>Title [REPLACE]</title>
            <author initials="Initials [REPLACE]" surname="Surname [REPLACE]">
              <organization/>
            </author>
            <date year="2006"/>
          </front>
        </reference> -->      
       
      <!-- </references> -->
    </references>
 <!--    
    <section>
      <name>Appendix 1 [REPLACE/DELETE]</name>
      <t>This becomes an Appendix [REPLACE]</t>
      
    </section> -->

    <section anchor="Acknowledgements" numbered="false">
      <!-- [REPLACE/DELETE] an Acknowledgements section is optional -->
      <name>Acknowledgements</name>
      <t>This template uses extracts from templates written by Pekka Savola, Elwyn Davies and 
        Henrik Levkowetz. </t>
    </section>
    
    <section anchor="Contributors" numbered="false">
      <!-- [REPLACE/DELETE] a Contributors section is optional -->
      <name>Contributors</name>
      <t>Thanks to all of the reviewers of this initial draft. </t>
      <!-- [CHECK] it is optional to add a <contact> record for some or all contributors -->
    </section>
    
 </back>
</rfc>