<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-opsawg-yang-provenance-08" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="yang-data-provenance">Applying COSE Signatures for YANG Data Provenance</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-yang-provenance-08"/>
    <author initials="D." surname="Lopez" fullname="Diego Lopez">
      <organization>Telefonica</organization>
      <address>
        <email>diego.r.lopez@telefonica.com</email>
      </address>
    </author>
    <author initials="A." surname="Pastor" fullname="Antonio Pastor">
      <organization>Telefonica</organization>
      <address>
        <email>antonio.pastorperales@telefonica.com</email>
      </address>
    </author>
    <author initials="A." surname="Huang-Feng" fullname="Alex Huang Feng">
      <organization>Deutsche Telekom</organization>
      <address>
        <email>alex.huang-feng@t-systems.com</email>
      </address>
    </author>
    <author initials="A." surname="Mendez" fullname="Ana Mendez">
      <organization>Telefonica</organization>
      <address>
        <email>ana.mendezperez@telefonica.com</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <date year="2026" month="October" day="27"/>
    <area>Operations and Management</area>
    <workgroup>Operations and Management Area</workgroup>
    <keyword>provenance</keyword>
    <keyword>signature</keyword>
    <keyword>COSE</keyword>
    <keyword>metadata</keyword>
    <abstract>
      <?line 80?>

<t>This document defines a mechanism based on CBOR Object Signing and Encryption (COSE) signatures to provide and verify the provenance of YANG data, so it is possible to verify the origin and integrity of a dataset, even when those data are going to be processed and/or applied in workflows where a crypto-enabled data transport directly from the original data source is not available. As the application of evidence-based OAM automation and the use of tools such as AI/ML grow, provenance validation becomes more relevant in all scenarios, in support of the assuring the origin and integrity of data. The use of compact signatures facilitates the inclusion of provenance strings in any YANG schema requiring them.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://dr2lopez.github.io/yang-provenance/draft-ietf-opsawg-yang-provenance.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-opsawg-yang-provenance/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Operations and Management Area Working Group mailing list (<eref target="mailto:opsawg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/opsawg/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/opsawg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/dr2lopez/yang-provenance"/>.</t>
    </note>
  </front>
  <middle>
    <?line 84?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>OAM automation, generally based on closed-loop principles, requires at least two datasets to be used. Using the common terms in Control Theory, we need those from the plant (the network device or segment under control) and those to be used as reference (the desired values of the relevant data). The usual automation behavior compares these values and takes a decision, by whatever the method (algorithmic, rule-based, an AI model tuned by ML...) to decide on a control action according to this comparison. Assurance of the origin and integrity of these datasets, what we refer in this document as "provenance", becomes essential to guarantee a proper behavior of closed-loop automation.</t>
      <t>When datasets are made available as an online data flow, provenance can be assessed by properties of the data transport protocol, as long as some kind of cryptographic protocol is used for source authentication, with TLS, SSH and IPsec as the main examples. But when these datasets are stored, go through some pre-processing or aggregation stages, or even cryptographic data transport is not available, provenance must be assessed by other means.</t>
      <t>The original use case for this provenance mechanism is associated with <xref target="YANGmanifest"/>, in order to provide a proof of the origin and integrity of the provided metadata, and therefore the examples in this document use the modules described there, but it soon became clear that it could be extended to any YANG datamodel to support provenance evidence. An analysis of other potential use cases suggested the interest of defining an independent, generally applicable mechanism.</t>
      <t>Provenance verification by signatures incorporated in YANG data can be applied to any data processing pipeline, whether they rely on an online flow or use some kind of data store, such as data lakes or time-series databases. The application of recorded data for ML training or validation constitute the most relevant examples of these scenarios.</t>
      <t>This document provides a mechanism for including digital signatures within YANG data. It applies COSE <xref target="RFC9052"/> to make the signature compact and reduce the resources required for calculating it. This mechanism is applicable to any serialization of the YANG data supporting a clear method for canonicalization, but this document considers three base ones: CBOR, JSON and XML.</t>
      <t>In some scenarios, multiple entities may need to provide cryptographic proof over the same provenance information to allow traceability of this content. For this purpose, this specification uses COSE counter signatures <xref target="RFC9338"/>. Counter signatures enable traceability of provenance by allowing multiple entities to attest to the same data object over time.</t>
      <section anchor="target-deployment-scenarios">
        <name>Target Deployment Scenarios</name>
        <t>The provenance mechanisms described in this document are designed to be flexible and applicable in multiple deployment contexts within operational and management practices. The following non-exhaustive list provides examples of intended deployment scenarios:</t>
        <ul spacing="normal">
          <li>
            <t>Device Configuration Integrity: Digital signatures may be applied to device configuration elements to ensure that specific configuration fragments originate from an authorized source (e.g., controller, automation system) and have not been altered in transit. This is useful for zero-touch provisioning and secure configuration distribution in programmable networks.</t>
          </li>
          <li>
            <t>Telemetry and Monitoring Data: When applied to operational state or telemetry data (e.g., YANG-Push updates or Subscription Notifications), provenance signatures can help verify the integrity and authenticity of data collected from network elements, especially when the data may traverse untrusted collection pipelines.</t>
          </li>
          <li>
            <t>Network-Wide Service Orchestration: In multi-vendor or multi-domain environments, provenance can be used to track and validate contributions from different orchestrators or domain controllers in composite service models. This enables trustable service chaining and auditability.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
      <?line -18?>

<t>The term "data provenance" refers to information describing the origin of a piece of data and, when available, the history of transformations or transfers it has undergone.</t>
      <t>The signature mechanisms defined in this document provide integrity protection and origin authentication for YANG data at the time of signing. When applied iteratively by different entities along a data path, these signatures can contribute to building a provenance trail. However, such a trail is only as complete as the set of signatures present and its continuity is not guaranteed by these mechanisms alone.</t>
    </section>
    <section anchor="defining-provenance-elements">
      <name>Defining Provenance Elements</name>
      <t>The provenance for a given YANG element <bcp14>MUST</bcp14> be conveyed by a leaf element, containing the COSE signature bitstring built according to the procedure defined below in this section. The provenance leaf <bcp14>MUST</bcp14> be of type "provenance-signature", defined as follows:</t>
      <artwork><![CDATA[
typedef provenance-signature {
     type binary;
     description
      "The provenance-signature type represents a digital signature
       corresponding to the associated YANG element. The signature is based
       on COSE and generated using a canonicalized version of the
       associated element.";
     reference
      "RFC 9052: CBOR Object Signing and Encryption (COSE): Structures and Process
       RFC XXXX: Applying COSE Signatures for YANG Data Provenance.";
}
]]></artwork>
      <t>The use of this type is the proper method for identifying signature leaf instances, and therefore whenever this type is used for a leaf element, it <bcp14>MUST</bcp14> be considered a provenance signature element, to be generated or verified according to the procedures described in this section.</t>
      <section anchor="provenance-signature-strings">
        <name>Provenance Signature Strings</name>
        <t>Provenance signature strings are COSE single signature messages with [nil] payload, according to COSE conventions and registries, and with the following structure (as defined by <xref section="4.2" sectionFormat="comma" target="RFC9052"/>):</t>
        <artwork><![CDATA[
COSE_Sign1 = [
protected /algorithm-identifier, kid/,
unprotected /algorithm-parameters/,
payload /nil/,
signature /using as external data the content of the YANG (meta-)data without the signature leaf/
]
]]></artwork>
        <t>The COSE_Sign1 procedure yields a bitstring when building the signature and expects a bitstring for checking it, hence the proposed type for provenance signature leaves. The structure of the COSE_Sign1 consists of:</t>
        <ul spacing="normal">
          <li>
            <t>The algorithm-identifier, which <bcp14>MUST</bcp14> follow COSE conventions and registries.</t>
          </li>
          <li>
            <t>The kid (Key ID), to be locally agreed, used and interpreted by the signer and the signature validator. URIs <xref target="RFC3986"/> and RFC822-style <xref target="RFC5322"/> identifiers are typical values to be used as kid.</t>
          </li>
          <li>
            <t>The value algorithm-parameters, which <bcp14>MUST</bcp14> follow the COSE conventions for providing relevant parameters to the signing algorithm.</t>
          </li>
          <li>
            <t>The signature for the YANG element provenance is being established for, to be produced and verified according to the procedure described below for each one of the enclosing methods for the provenance string described below.</t>
          </li>
        </ul>
        <section anchor="use-of-countersignatures">
          <name>Use of Countersignatures</name>
          <t>The primary provenance signature is a COSE_Sign1 message generated over the canonicalized input defined above. Additional entities <bcp14>MAY</bcp14> subsequently apply countersignatures to this COSE_Sign1 message. These countersignatures are integrated within the existing COSE signature object and do not modify the primary signature input or its value.</t>
          <t>COSE supports the inclusion of countersignatures as defined in <xref target="RFC9338"/>. Countersignatures allow additional entities to provide cryptographic proof over an existing COSE signature without modifying the primary signature value. The inclusion of counter signatures does not alter the original COSE_Sign1 structure, nor the canonicalized input used to produce the original signature. Instead, they extend the COSE object by binding additional signers to the existing signed content.</t>
          <t>If the canonicalized input used for generating the primary signature is altered, the original signature will fail to validate. Since countersignatures are computed over the original COSE signature object, they remain bound to that original content. As a result, any modification to the underlying data or to the canonicalization process leads to a validation inconsistency across the chain of signatures. This allows verifiers to detect that the data has been altered and to identify the point in the sequence of signatures at which the inconsistency is introduced.</t>
          <t>In particular, adding counter signatures does not change the underlying canonicalized YANG content to which the original COSE_Sign1 signature applies. Countersignatures are composed with the existing COSE signature object, while preserving the primary signature and its association with the same signed content. As a result, the original signature remains unchanged, and every countersignature is added on top of it, binding additional signers to the same signed content. From an encoding perspective, the resulting COSE object, including any countersignatures, is carried within the same provenance leaf, without modifying the YANG data model or the enclosing methods defined in this document. Countersignatures <bcp14>MUST</bcp14> be encoded according to the mechanisms defined in <xref target="RFC9338"/>, including the relevant countersignature structures.</t>
          <t>Provenance signature strings including countersignatures <bcp14>SHALL</bcp14> use full countersignatures according to the definitions in <xref target="RFC9338"/>, with context "CounterSignature", and following the same structure as described above for the primary signature in what related to its protected, unprotected and signature fields. Counter signatures <bcp14>SHALL</bcp14> be included in the unprotected header of the COSE_Sign1 object.</t>
          <t>When multiple counter signatures are present, they <bcp14>SHALL</bcp14> be encoded as an array of COSE_Countersignature structures and carried within the COSE object using the appropriate header parameter defined in <xref target="RFC9338"/>.</t>
        </section>
      </section>
      <section anchor="signature-and-verification-procedures">
        <name>Signature and Verification Procedures</name>
        <t>To keep a concise signature and avoid the need for wrapping YANG constructs in COSE envelopes, the whole signature <bcp14>MUST</bcp14> be built and verified by means of externally supplied data, as defined in <xref section="4.3" sectionFormat="comma" target="RFC9052"/>, with a [nil] payload.</t>
        <t>The byte strings to be used as input to the signature and verification procedures <bcp14>MUST</bcp14> be built by:</t>
        <ul spacing="normal">
          <li>
            <t>Selecting the exact YANG content to be used, according to the corresponding enclosing methods.</t>
          </li>
          <li>
            <t>Applying the corresponding canonicalization method as described in the following section.</t>
          </li>
          <li>
            <t>When countersignatures are present, the same procedures apply for the generation or verification of any countersignature, taking into account the following additional processing rules:  </t>
            <ul spacing="normal">
              <li>
                <t>Each counter signature <bcp14>MUST</bcp14> be verifiable independently using the public key of the corresponding signer, as defined by the applicable key identifier carried by the countersignature structure.</t>
              </li>
              <li>
                <t>Verification of provenance information <bcp14>MAY</bcp14> include the validation of the primary signature, a subset of the countersignatures, or all of them, depending on the policy of the verifying entity.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>In order to guarantee proper verification, the signature procedure <bcp14>MUST</bcp14> be the last action to be taken before the YANG construct being signed is made available, whatever the means (sent as a reply to a poll or a notification, written to a file or record, etc.), and verification <bcp14>SHOULD</bcp14> take place in advance of any processing by the consuming application. The actions to be taken if the verification fails are specific to the consuming application, but it is <bcp14>RECOMMENDED</bcp14> to at least issue an error warning.</t>
        <ul empty="true">
          <li>
            <t><strong>Note:</strong> In deployments where YANG data are transported through message broker systems, verification can be applied after message deserialization and before instance data processing, consistently with the placement described in <xref target="YANGmsgbroker"/>. In such scenarios, additional schema validation steps (e.g., YANG schema validation performed at the broker level) may complement the provenance mechanism, further strengthening data integrity before application-level processing. The deployment architecture is out of scope for this document, as the provenance mechanisms defined here are intentionally designed for general-purpose applicability across any YANG data processing system.</t>
          </li>
        </ul>
      </section>
      <section anchor="canonicalization">
        <name>Canonicalization</name>
        <t>Signature generation and verification require a canonicalization method to be applied, that depends on the serialization used. According to the three types of serialization defined, the following canonicalization methods <bcp14>MUST</bcp14> be applied:</t>
        <ul spacing="normal">
          <li>
            <t>For CBOR, length-first core deterministic encoding, as defined by <xref target="RFC8949"/>.</t>
          </li>
          <li>
            <t>For JSON, JSON Canonicalization Scheme (JCS), as defined by <xref target="RFC8785"/>.</t>
          </li>
          <li>
            <t>For XML, Exclusive XML Canonicalization 1.0, as defined by <xref target="XMLSig"/>.</t>
          </li>
        </ul>
      </section>
      <section anchor="provenance-signature-yang-module">
        <name>Provenance-Signature YANG Module</name>
        <t>This module defines a provenance-signature type to be used in other YANG modules.</t>
        <sourcecode markers="true" name="ietf-yang-provenance@2026-06-30.yang"><![CDATA[
module ietf-yang-provenance {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-yang-provenance";
  prefix iyangprov;

  organization "IETF OPSAWG (Operations and Management Area Working Group)";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
     WG List:  <mailto:opsawg@ietf.org>

     Authors:  Alex Huang Feng
               <mailto:alex.huang-feng@t-systems.com>
               Diego Lopez
               <mailto:diego.r.lopez@telefonica.com>
               Antonio Pastor
               <mailto:antonio.pastorperales@telefonica.com>
               Henk Birkholz
               <mailto:henk.birkholz@sit.fraunhofer.de>";

  description
    "Defines a binary provenance-signature type to be used in other YANG
    modules.

    Copyright (c) 2026 IETF Trust and the persons identified as
    authors of the code.  All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, is permitted pursuant to, and subject to the license
    terms contained in, the Revised BSD License set forth in Section
    4.c of the IETF Trust's Legal Provisions Relating to IETF Documents
    (https://trustee.ietf.org/license-info).

    This version of this YANG module is part of RFC XXXX; see the RFC
    itself for full legal notices.";

  revision 2026-06-30 {
    description
      "First revision";
    reference
      "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }

  typedef provenance-signature {
    type binary;
    description
      "The provenance-signature type represents a digital signature
      corresponding to the associated YANG element. The signature is based
      on COSE and generated using a canonicalized version of the
      associated element.";
    reference
      "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="enclosing-methods">
      <name>Enclosing Methods</name>
      <t>Once defined the procedures for generating and verifying the provenance signature string, let us consider how these signatures can be integrated with the associated YANG data by enclosing the signature in the data structure. This document considers four different enclosing methods, suitable for different stages of the YANG schema and usage patterns of the YANG data. The enclosing method defines not only how the provenance signature string is combined with the signed YANG data but also the specific procedure for selecting the specific YANG content to be processed when signing and verifying.</t>
      <t>Appendix A includes a set of examples of the different enclosing methods, applied to the same YANG fragment, to illustrate their use.</t>
      <section anchor="including-a-provenance-leaf-in-a-yang-element">
        <name>Including a Provenance Leaf in a YANG Element</name>
        <t>This enclosing method requires a specific element in the YANG schema defining the element to be signed (the enclosing element), and thus implies considering provenance signatures when defining a YANG module, or the use of augmentation to include the provenance signature element in a existing YANG module.</t>
        <t>When defining a provenance signature leaf element to appear in a YANG schema by means of this enclosing method, the provenance-signature leaf <bcp14>MAY</bcp14> be defined to be at any position in the enclosing element, but only one such leaf <bcp14>MUST</bcp14> be defined for this enclosing element. If the enclosing element contains other non-leaf elements, they <bcp14>MAY</bcp14> define their own provenance-signature leaf, according to the same rule. In this case, the provenance-signature leaves in the children elements are applicable to the specific child element where they are enclosed, while the provenance-signature leaf enclosed in the top-most element is applicable to the whole element contents, including the children provenance-signature leaf themselves. This allows for recursive provenance validation, data aggregation, and the application of provenance verification of relevant children elements at different stages of any data processing pipeline.</t>
        <t>The specific YANG content to be processed <bcp14>SHALL</bcp14> be generated by taking the whole enclosing element and eliminating the leaf containing the provenance signature string.</t>
        <t>As example, let us consider the two modules proposed in <xref target="YANGmanifest"/>. For the platform-manifest module, the provenance for a platform would be provided by augmenting the current schema with the optional platform-provenance leaf shown below:</t>
        <artwork><![CDATA[
module: ietf-platform-manifest
  +--ro platforms
     +--ro platform* [id]
       +--ro id                      string
       +--ro name?                   string
       +--ro vendor?                 string
       +--ro vendor-pen?             uint32
       +--ro software-version?       string
       +--ro software-flavor?        string
       +--ro os-version?             string
       +--ro os-type?                string
       +--ro platform-provenance?    provenance-signature
       +--ro yang-push-streams
       |  +--ro stream* [name]
       |     +--ro name
       |     +--ro description?
       +--ro yang-library
       + . . .
       .
       .
       .
]]></artwork>
        <t>For data collections, the provenance of each one would be provided by augmenting the schema with an optional collector-provenance leaf, as shown below:</t>
        <artwork><![CDATA[
module: ietf-data-collection-manifest
  +--ro data-collections
     +--ro data-collection* [platform-id]
     +--ro platform-id
     |       -> /p-mf:platforms/platform/id
     +--ro collector-provenance?   provenance-signature
     +--ro yang-push-subscriptions
       +--ro subscription* [id]
         +--ro id
         |      sn:subscription-id
         +
         .
         .
         .
     + . . .
     |
     .
     .
     .
]]></artwork>
        <t>Note how, in the two examples, the element bearing the provenance signature appears at different positions in the enclosing element. For processing the element for signature generation and verification, the signature element <bcp14>MUST</bcp14> be eliminated from the enclosing element before applying the corresponding canonicalization method.</t>
        <t>Note that, in application of the recursion mechanism described above, a provenance element could be included at the top of any of the collections, supporting the verification of the provenance of the collection itself (as provided by a specific collector), without interfering with the verification of the provenance of each of the collection elements. As an example, in the case of the platform manifests it would look like:</t>
        <artwork><![CDATA[
module: ietf-platform-manifest
  +--ro platforms
     +--ro platform-collection-provenance? provenance-signature
     +--ro platform* [id]
       +--ro platform-provenance?          provenance-signature
       +--ro id                            string
       +--ro name?                         string
       +--ro vendor?                       string
       + . . .
       .
       .
       .
]]></artwork>
        <t>When generating YANG content to be processed in the case of the collection the provenance leaves of the individual elements <bcp14>SHALL NOT</bcp14> be eliminated, as it <bcp14>SHALL</bcp14> be the case when generating the YANG content to be processed for each individual element in the collection.</t>
      </section>
      <section anchor="including-a-provenance-signature-in-yang-push-notifications">
        <name>Including a Provenance Signature in YANG-Push Notifications</name>
        <t>The signature mechanism proposed in this document <bcp14>MAY</bcp14> be used with YANG-Push <xref target="RFC8641"/> to sign notifications generated  directly by publisher nodes. The signature is carried inside the notification envelope header defined in <xref target="I-D.ietf-netconf-notif-envelope"/> as a new extension.</t>
        <t>The YANG content to be processed <bcp14>MUST</bcp14> consist of the content defined by the "contents" element in <xref target="I-D.ietf-netconf-notif-envelope"/>.</t>
        <t>The following sections define the YANG module that augments the "ietf-yp-notification" module. It extends the notification envelope header with a new leaf for the provenance signature and an augmentation to the "ietf-notification-capabilities" to enable clients discover the support of the provenance signature.</t>
        <section anchor="yang-tree-diagram">
          <name>YANG Tree Diagram</name>
          <t>The following is the YANG tree diagram <xref target="RFC8340"/> for the "ietf-yp-provenance" module.</t>
          <artwork><![CDATA[
module: ietf-yp-provenance

  augment /sysc:system-capabilities/notc:subscription-capabilities
            /iypn:notification-metadata/iypn:metadata:
    +--ro notification-provenance?   boolean

  augment-structure /iypn:envelope:
    +-- provenance?   iyangprov:provenance-signature
]]></artwork>
          <t>And the following is the full YANG tree diagram for the notification structure.</t>
          <artwork><![CDATA[
module: ietf-yp-notification

  structure envelope:
    +-- event-time         yang:date-and-time
    +-- hostname?          inet:host
    +-- sequence-number?   yang:counter32
    +-- provenance?        iyangprov:provenance-signature
    +-- contents?          <anydata>
]]></artwork>
          <t>Unlike the first enclosing method, in this second enclosing method the provenance leaf is added by augmenting a structure (/inotenv:envelope).</t>
        </section>
        <section anchor="yang-module">
          <name>YANG Module</name>
          <t>The "ietf-yp-provenance" module augments "ietf-yp-notification" module <xref target="I-D.ietf-netconf-notif-envelope"/> adding the provenance leaf to the notification envelope structure.
It also adds the "notification-provenance" capability to allow clients to discover if provenance signatures are supported.</t>
          <sourcecode markers="true" name="ietf-yp-provenance@2026-06-30.yang"><![CDATA[
module ietf-yp-provenance {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-yp-provenance";
  prefix inotifprov;

  import ietf-system-capabilities {
    prefix sysc;
    reference
      "RFC 9196: YANG Modules Describing Capabilities for
       Systems and Datastore Update Notifications";
  }
  import ietf-notification-capabilities {
    prefix notc;
    reference
      "RFC 9196: YANG Modules Describing Capabilities for
       Systems and Datastore Update Notifications";
  }
  import ietf-yang-provenance {
    prefix iyangprov;
    reference
      "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }
  import ietf-yang-structure-ext {
    prefix sx;
    reference
      "RFC 8791: YANG Data Structure Extensions";
  }
  import ietf-yp-notification {
    prefix iypn;
    reference
      "RFC YYYY: Extensible YANG Model for YANG-Push Notifications";
  }

  organization "IETF OPSAWG (Operations and Management Area Working Group)";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
     WG List:  <mailto:opsawg@ietf.org>

     Authors:  Alex Huang Feng
               <mailto:alex.huang-feng@t-systems.com>
               Diego Lopez
               <mailto:diego.r.lopez@telefonica.com>
               Antonio Pastor
               <mailto:antonio.pastorperales@telefonica.com>";

  description
    "Augments the YANG-Push notification envelope with a provenance
     signature leaf for integrity and origin verification, and extends
     notification capabilities to advertise provenance support.

    Copyright (c) 2026 IETF Trust and the persons identified as
    authors of the code.  All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, is permitted pursuant to, and subject to the license
    terms contained in, the Revised BSD License set forth in Section
    4.c of the IETF Trust's Legal Provisions Relating to IETF Documents
    (https://trustee.ietf.org/license-info).

    This version of this YANG module is part of RFC XXXX; see the RFC
    itself for full legal notices.";

  revision 2026-06-30 {
    description
      "First revision";
    reference
      "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }

  sx:augment-structure "/iypn:envelope" {
    leaf provenance {
      type iyangprov:provenance-signature;
      description
        "COSE signature of the 'contents' element of the Notification for
        provenance verification.";
    }
  }

  augment "/sysc:system-capabilities"
        + "/notc:subscription-capabilities"
        + "/iypn:notification-metadata/iypn:metadata" {
    description
      "Extensions to Notification Capabilities enabling clients to
      know whether the provenance signature is supported.";
    leaf notification-provenance {
      type boolean;
      default "false";
      description
        "Support of the provenance signature on YANG-Push
        Notifications.";
    }
  }
}
]]></sourcecode>
        </section>
      </section>
      <section anchor="including-provenance-as-metadata-in-yang-instance-data">
        <name>Including Provenance as Metadata in YANG Instance Data</name>
        <t>Provenance signature strings can be included as part of the metadata in YANG instance data files, as defined in <xref target="RFC9195"/> for data at rest. The augmented YANG tree diagram including the provenance signature is as follows:</t>
        <artwork><![CDATA[
module: ietf-yang-instance-data-provenance
  augment-structure /id:instance-data-set:
    +-- provenance?   iyangprov:provenance-signature
]]></artwork>
        <ul empty="true">
          <li>
            <t><strong>Note:</strong> As in the second enclosing method, since this is a data structure, the <tt>provenance</tt> leaf appears before the <tt>content-data</tt> element.</t>
          </li>
        </ul>
        <t>The resulting YANG tree structure is:</t>
        <artwork><![CDATA[
  structure instance-data-set:
    + . . .
    +-- timestamp?           yang:date-and-time
    +-- provenance?          iyangprov:provenance-signature
    +-- content-data?        <anydata>
]]></artwork>
        <t>The provenance signature defined in this enclosing method applies to the whole content of the instance-data-set structure. This is independent of any other provenance signature strings that might be present within the content-data itself through other enclosing methods.</t>
        <t>The specific YANG content to be processed <bcp14>SHALL</bcp14> be generated by taking the contents of instance-data-set structure, excluding the provenance signature element itself and applying the corresponding canonicalization method.</t>
        <section anchor="yang-module-1">
          <name>YANG Module</name>
          <t>This module defines the provenance signature element to be included as metadata of a YANG data instance.</t>
          <sourcecode markers="true" name="ietf-yang-instance-data-provenance@2026-06-30.yang"><![CDATA[
module ietf-yang-instance-data-provenance {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-yang-instance-data-provenance";
  prefix yidprov;

  import ietf-yang-instance-data {
    prefix id;
    reference
      "RFC 9195: A File Format for YANG Instance Data";
  }

  import ietf-yang-provenance {
    prefix iyangprov;
    reference
      "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }

  import ietf-yang-structure-ext {
    prefix sx;
    reference
      "RFC 8791: YANG Data Structure Extensions";
  }

  organization
    "IETF OPSAWG (Operations and Management Area Working Group)";

  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
     WG List:  <mailto:opsawg@ietf.org>

     Authors:  Ana Mendez
               <mailto:ana.mendezperez@telefonica.com>
               Diego Lopez
               <mailto:diego.r.lopez@telefonica.com>";

  description
    "This module augments YANG instance data to include a provenance
     signature for the content-data block, enabling integrity and
     authenticity verification of the dataset.

     Copyright (c) 2026 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or without
     modification, is permitted pursuant to, and subject to the license
     terms contained in, the Revised BSD License set forth in Section
     4.c of the IETF Trust's Legal Provisions Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see the RFC
     itself for full legal notices.";

  revision 2026-06-30 {
    description
      "First revision.";
    reference
      "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }

  sx:augment-structure "/id:instance-data-set" {
    description
      "Adds a provenance signature to the instance data set envelope.";
    leaf provenance {
      type iyangprov:provenance-signature;
      description
        "Provenance signature that applies to the full content-data
         block of an instance dataset. This signature can be used to
         verify the integrity and authenticity of the instance data.";
    }
  }
}
]]></sourcecode>
        </section>
      </section>
      <section anchor="EMannotations">
        <name>Including Provenance in YANG Annotations</name>
        <t>The use of annotations as defined in <xref target="RFC7952"/> seems a natural enclosing method, dealing with the provenance signature string as metadata extension and not requiring modification of existing YANG schemas. The provenance-string annotation is defined as follows:</t>
        <artwork><![CDATA[
  md:annotation provenance {
    type provenance-signature;
    description
      "This annotation contains a digital signature corresponding
      to the YANG element in which it appears.";
  }
]]></artwork>
        <t>The specific YANG content to be processed <bcp14>SHALL</bcp14> be generated by eliminating the provenance annotation (encoded according to what is described in Section 5 of <xref target="RFC7952"/>) from the element it applies to, before invoking the corresponding canonicalization method. In application of the general recursion principle for provenance signature strings, any other provenance strings within the element to which the provenance-string applies <bcp14>SHALL</bcp14> be left as they appear, whatever the enclosing method used for them.</t>
        <section anchor="yang-module-2">
          <name>YANG Module</name>
          <t>This module defines a metadata annotation to include a provenance signature for a YANG element.</t>
          <sourcecode markers="true" name="ietf-yang-provenance-annotation@2026-06-30.yang"><![CDATA[
module ietf-yang-provenance-annotation {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-yang-provenance-annotation";
  prefix ypmd;

  import ietf-yang-metadata {
    prefix md;
    reference
      "RFC 7952: Defining and Using Metadata with YANG";
  }
  import ietf-yang-provenance {
    prefix iyangprov;
    reference
      "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }

  organization "IETF OPSAWG (Operations and Management Area Working Group)";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
    WG List:  <mailto:opsawg@ietf.org>

    Authors:  Diego Lopez
              <mailto:diego.r.lopez@telefonica.com>
              Alex Huang Feng
              <mailto:alex.huang-feng@t-systems.com>
              Antonio Pastor
              <mailto:antonio.pastorperales@telefonica.com>
              Henk Birkholz
              <mailto:henk.birkholz@sit.fraunhofer.de>";
  description
      "Defines a YANG metadata annotation for carrying provenance
       signatures on arbitrary YANG data elements.

      Copyright (c) 2026 IETF Trust and the persons identified as
      authors of the code.  All rights reserved.

      Redistribution and use in source and binary forms, with or without
      modification, is permitted pursuant to, and subject to the license
      terms contained in, the Revised BSD License set forth in Section
      4.c of the IETF Trust's Legal Provisions Relating to IETF Documents
      (https://trustee.ietf.org/license-info).

      This version of this YANG module is part of RFC XXXX; see the RFC
      itself for full legal notices.";

  revision 2026-06-30 {
    description
      "First revision";
    reference
      "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }

  md:annotation provenance {
    type iyangprov:provenance-signature;
    description
      "This annotation contains the provenance signature for
      the YANG element associated with it";
  }
}
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The provenance assessment mechanism described in this document relies on COSE <xref target="RFC9052"/> and the deterministic encoding or canonicalization procedures described by <xref target="RFC8949"/>, <xref target="RFC8785"/> and <xref target="XMLSig"/>. The security considerations made in these references are fully applicable here.</t>
      <t>The considered threat model assumes an  attacker with the ability to intercept, observe, copy, replay, or modify YANG data in transit or at rest.</t>
      <t>The mechanisms defined here protect against data tampering: any modification of signed YANG data will result in signature verification failure, providing integrity protection from the point of signing onward.  Additionally, the signature binds the data to the entity holding the corresponding private key, providing origin authentication for the signed data.</t>
      <t>The following threats are explicitly outside the scope of this mechanism:</t>
      <ul spacing="normal">
        <li>
          <t>If the signing entity's private key is compromised, an attacker can produce valid signatures; protection against key compromise must be addressed by the key management infrastructure (e.g., PKI, certificate revocation).</t>
        </li>
        <li>
          <t>These mechanisms do not guarantee that all intermediate steps in a data path provides a signature: a provenance trail is only as complete as the set of signatures that are present, and gaps in signing by intermediate entities are not detectable by these mechanisms alone.</t>
        </li>
        <li>
          <t>A legitimate entity with access to a valid private key may sign incorrect or malicious data; these mechanisms provide no protection against a signing entity that intentionally or unintentionally produces erroneous data.</t>
        </li>
        <li>
          <t>Finally, these mechanisms do not inherently guarantee the freshness of signed data; replay of previously signed valid data is not prevented unless additional mechanisms, such as timestamps or nonces bound to the signature context, are employed.</t>
        </li>
      </ul>
      <t>The verification step depends on the association of the kid (Key ID) with the proper public key. This is a local matter for the verifier and its specification is out of the scope of this document. Similarly, key association with reliable data sources is a deployment decision, though a couple of deployment patterns can be considered, depending on the application scenario under consideration. On the one hand, identities may be associated to controller entities (a domain controller, a person in charge of operational aspects, an organizational unit managing an administrative domain, etc.) owning the private keys to be use in generating the provenance signatures for YANG data such as configurations or telemetry. Alternatively, individual devices may hold the identities and corresponding private keys to generate provenance signatures for locally originated data (e.g., telemetry updates). The use of certificates, PKI mechanisms, or any other secure out-of-band distribution of id-public key mappings is <bcp14>RECOMMENDED</bcp14>.</t>
    </section>
    <section anchor="iana-considerations-sids">
      <name>IANA Considerations</name>
      <section anchor="ietf-xml-registry">
        <name>IETF XML Registry</name>
        <t>This document registers the following URIs in the "IETF XML Registry" <xref target="RFC3688"/>:</t>
        <artwork><![CDATA[
  URI: urn:ietf:params:xml:ns:yang:ietf-yang-provenance
  Registrant Contact: The IESG.
  XML: N/A; the requested URI is an XML namespace.
]]></artwork>
        <artwork><![CDATA[
  URI: urn:ietf:params:xml:ns:yang:ietf-yp-provenance
  Registrant Contact: The IESG.
  XML: N/A; the requested URI is an XML namespace.
]]></artwork>
        <artwork><![CDATA[
  URI: urn:ietf:params:xml:ns:yang:ietf-yang-instance-data-provenance
  Registrant Contact: The IESG.
  XML: N/A; the requested URI is an XML namespace.
]]></artwork>
        <artwork><![CDATA[
  URI: urn:ietf:params:xml:ns:yang:ietf-yang-provenance-annotation
  Registrant Contact: The IESG.
  XML: N/A; the requested URI is an XML namespace.
]]></artwork>
      </section>
      <section anchor="yang-module-name">
        <name>YANG Module Name</name>
        <t>This document registers the following YANG modules in the "YANG Module Names" registry <xref target="RFC6020"/>:</t>
        <artwork><![CDATA[
  name: ietf-yang-provenance
  namespace: urn:ietf:params:xml:ns:yang:ietf-yang-provenance
  prefix: iyangprov
  reference: RFC XXXX
]]></artwork>
        <artwork><![CDATA[
  name: ietf-yp-provenance
  namespace: urn:ietf:params:xml:ns:yang:ietf-yp-provenance
  prefix: inotifprov
  reference: RFC XXXX
]]></artwork>
        <artwork><![CDATA[
  name: ietf-yang-instance-data-provenance
  namespace: urn:ietf:params:xml:ns:yang:ietf-yang-instance-data-provenance
  prefix: yidprov
  reference: RFC XXXX
]]></artwork>
        <artwork><![CDATA[
  name: ietf-yang-provenance-annotation
  namespace: urn:ietf:params:xml:ns:yang:ietf-yang-provenance-annotation
  prefix: ypmd
  reference: RFC XXXX
]]></artwork>
      </section>
      <section anchor="yang-sid-ranges">
        <name>YANG SID Ranges</name>
        <t>IANA is requested to allocate the following SID ranges in the "IETF YANG-SID Ranges" registry <xref target="RFC9595"/>:</t>
        <artwork><![CDATA[
SID range entry point: 3000
SID range size: 50
YANG module name: ietf-yp-provenance
reference: RFC XXXX
]]></artwork>
        <artwork><![CDATA[
SID range entry point: 3050
SID range size: 50
YANG module name: ietf-yang-instance-data-provenance
reference: RFC XXXX
]]></artwork>
        <artwork><![CDATA[
SID range entry point: 3100
SID range size: 50
YANG module name: ietf-yang-provenance-annotation
reference: RFC XXXX
]]></artwork>
        <t>No SID range is requested for ietf-yang-provenance because it only defines a typedef and does not define schema nodes that require SIDs.</t>
        <t>The three ".sid" files are proposed in <xref target="yang-sid-files"/>.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>An open-source reference implementation, written in Java, is available at <eref target="https://github.com/tefiros/cose-provenance">https://github.com/tefiros/cose-provenance</eref>. This implementation has been used to generate the examples in the appendix of this document, and was first demonstrated at the IETF 122 Hackathon. Work is ongoing to explore its integration with other open-source YANG modules. A Kafka message broker integration was presented at the IETF 123 Hackathon aiming at convergence with current efforts on YANG Push. The implementation is available at <eref target="https://github.com/tefiros/kafka-provenance">https://github.com/tefiros/kafka-provenance</eref>.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC5322">
          <front>
            <title>Internet Message Format</title>
            <author fullname="P. Resnick" initials="P." role="editor" surname="Resnick"/>
            <date month="October" year="2008"/>
            <abstract>
              <t>This document specifies the Internet Message Format (IMF), a syntax for text messages that are sent between computer users, within the framework of "electronic mail" messages. This specification is a revision of Request For Comments (RFC) 2822, which itself superseded Request For Comments (RFC) 822, "Standard for the Format of ARPA Internet Text Messages", updating it to reflect current practice and incorporating incremental changes that were specified in other RFCs. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5322"/>
          <seriesInfo name="DOI" value="10.17487/RFC5322"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC7951">
          <front>
            <title>JSON Encoding of Data Modeled with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>This document defines encoding rules for representing configuration data, state data, parameters of Remote Procedure Call (RPC) operations or actions, and notifications defined using YANG as JavaScript Object Notation (JSON) text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7951"/>
          <seriesInfo name="DOI" value="10.17487/RFC7951"/>
        </reference>
        <reference anchor="RFC7952">
          <front>
            <title>Defining and Using Metadata with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>This document defines a YANG extension that allows for defining metadata annotations in YANG modules. The document also specifies XML and JSON encoding of annotations and other rules for annotating instances of YANG data nodes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7952"/>
          <seriesInfo name="DOI" value="10.17487/RFC7952"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC8641">
          <front>
            <title>Subscription to YANG Notifications for Datastore Updates</title>
            <author fullname="A. Clemm" initials="A." surname="Clemm"/>
            <author fullname="E. Voit" initials="E." surname="Voit"/>
            <date month="September" year="2019"/>
            <abstract>
              <t>This document describes a mechanism that allows subscriber applications to request a continuous and customized stream of updates from a YANG datastore. Providing such visibility into updates enables new capabilities based on the remote mirroring and monitoring of configuration and operational state.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8641"/>
          <seriesInfo name="DOI" value="10.17487/RFC8641"/>
        </reference>
        <reference anchor="RFC8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
            <author fullname="B. Jordan" initials="B." surname="Jordan"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
              <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8785"/>
          <seriesInfo name="DOI" value="10.17487/RFC8785"/>
        </reference>
        <reference anchor="RFC8791">
          <front>
            <title>YANG Data Structure Extensions</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Björklund" initials="M." surname="Björklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>This document describes YANG mechanisms for defining abstract data structures with YANG.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8791"/>
          <seriesInfo name="DOI" value="10.17487/RFC8791"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9195">
          <front>
            <title>A File Format for YANG Instance Data</title>
            <author fullname="B. Lengyel" initials="B." surname="Lengyel"/>
            <author fullname="B. Claise" initials="B." surname="Claise"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>There is a need to document data defined in YANG models at design time, implementation time, or when a live server is unavailable. This document specifies a standard file format for YANG instance data, which follows the syntax and semantics of existing YANG models and annotates it with metadata.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9195"/>
          <seriesInfo name="DOI" value="10.17487/RFC9195"/>
        </reference>
        <reference anchor="RFC9196">
          <front>
            <title>YANG Modules Describing Capabilities for Systems and Datastore Update Notifications</title>
            <author fullname="B. Lengyel" initials="B." surname="Lengyel"/>
            <author fullname="A. Clemm" initials="A." surname="Clemm"/>
            <author fullname="B. Claise" initials="B." surname="Claise"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document defines two YANG modules, "ietf-system-capabilities" and "ietf-notification-capabilities".</t>
              <t>The module "ietf-system-capabilities" provides a placeholder structure that can be used to discover YANG-related system capabilities for servers. The module can be used to report capability information from the server at runtime or at implementation time by making use of the YANG instance data file format.</t>
              <t>The module "ietf-notification-capabilities" augments "ietf-system-capabilities" to specify capabilities related to "Subscription to YANG Notifications for Datastore Updates" (RFC 8641).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9196"/>
          <seriesInfo name="DOI" value="10.17487/RFC9196"/>
        </reference>
        <reference anchor="RFC9254">
          <front>
            <title>Encoding of Data Modeled with YANG in the Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Veillette" initials="M." role="editor" surname="Veillette"/>
            <author fullname="I. Petrov" initials="I." role="editor" surname="Petrov"/>
            <author fullname="A. Pelov" initials="A." surname="Pelov"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>YANG (RFC 7950) is a data modeling language used to model configuration data, state data, parameters and results of Remote Procedure Call (RPC) operations or actions, and notifications.</t>
              <t>This document defines encoding rules for YANG in the Concise Binary Object Representation (CBOR) (RFC 8949).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9254"/>
          <seriesInfo name="DOI" value="10.17487/RFC9254"/>
        </reference>
        <reference anchor="RFC9338">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Countersignatures</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="December" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. CBOR Object Signing and Encryption (COSE) defines a set of security services for CBOR. This document defines a countersignature algorithm along with the needed header parameters and CBOR tags for COSE. This document updates RFC 9052.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9338"/>
          <seriesInfo name="DOI" value="10.17487/RFC9338"/>
        </reference>
        <reference anchor="RFC9595">
          <front>
            <title>YANG Schema Item iDentifier (YANG SID)</title>
            <author fullname="M. Veillette" initials="M." role="editor" surname="Veillette"/>
            <author fullname="A. Pelov" initials="A." role="editor" surname="Pelov"/>
            <author fullname="I. Petrov" initials="I." role="editor" surname="Petrov"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <date month="July" year="2024"/>
            <abstract>
              <t>YANG Schema Item iDentifiers (YANG SIDs) are globally unique 63-bit unsigned integers used to identify YANG items. SIDs provide a more compact method for identifying those YANG items that can be used efficiently, notably in constrained environments (RFC 7228). This document defines the semantics, registration processes, and assignment processes for YANG SIDs for IETF-managed YANG modules. To enable the implementation of these processes, this document also defines a file format used to persist and publish assigned YANG SIDs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9595"/>
          <seriesInfo name="DOI" value="10.17487/RFC9595"/>
        </reference>
        <reference anchor="I-D.ietf-netconf-notif-envelope">
          <front>
            <title>Extensible YANG Model for YANG-Push Notifications</title>
            <author fullname="Alex Huang Feng" initials="A. H." surname="Feng">
              <organization>Deutsche Telekom</organization>
            </author>
            <author fullname="Pierre Francois" initials="P." surname="Francois">
              <organization>INSA-Lyon</organization>
            </author>
            <author fullname="Thomas Graf" initials="T." surname="Graf">
              <organization>Swisscom</organization>
            </author>
            <author fullname="Benoît Claise" initials="B." surname="Claise">
              <organization>Everything OPS and Arrcus</organization>
            </author>
            <date day="14" month="September" year="2026"/>
            <abstract>
              <t>   This document defines a new extensible Notification structure,
   defined in YANG, for use in YANG-Push Notification messages, both for
   NETCONF and RESTCONF, enabling any YANG-compatible encodings such as
   XML, JSON, or CBOR.  Additionally, it defines two essential
   extensions to this structure, the support of a hostname and a
   sequence number and the support of a timestamp characterizing the
   moment when the data was observed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-notif-envelope-06"/>
        </reference>
        <reference anchor="XMLSig" target="https://www.w3.org/TR/xmldsig-core2/">
          <front>
            <title>XML Signature Syntax and Processing Version 2.0</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7223">
          <front>
            <title>A YANG Data Model for Interface Management</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>This document defines a YANG data model for the management of network interfaces. It is expected that interface-type-specific data models augment the generic interfaces data model defined in this document. The data model includes configuration data and state data (status information and counters for the collection of statistics).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7223"/>
          <seriesInfo name="DOI" value="10.17487/RFC7223"/>
        </reference>
        <reference anchor="YANGmanifest">
          <front>
            <title>A Data Manifest for Contextualized Telemetry Data</title>
            <author fullname="Benoît Claise" initials="B." surname="Claise">
              <organization>Everything OPS</organization>
            </author>
            <author fullname="Jean Quilbeuf" initials="J." surname="Quilbeuf">
              <organization>Huawei</organization>
            </author>
            <author fullname="Diego Lopez" initials="D." surname="Lopez">
              <organization>Telefonica I+D</organization>
            </author>
            <author fullname="Ignacio Dominguez Martinez-Casanueva" initials="I. D." surname="Martinez-Casanueva">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Thomas Graf" initials="T." surname="Graf">
              <organization>Swisscom</organization>
            </author>
            <date day="5" month="October" year="2026"/>
            <abstract>
              <t>   Network platforms use Network Telemetry, such as YANG-Push (RFC
   8641), to continuously stream information, including both counters
   and state information.  This document describes the metadata that
   ensure that the collected data can be interpreted correctly.  This
   document specifies the Data Manifest, composed of two YANG data
   models (the Platform Manifest and the non-normative Data Collection
   Manifest).  These YANG modules are specified at the network level
   (e.g., network controllers) to provide a model that encompasses
   several network platforms.  The Data Manifest must be streamed and
   stored along with the data, up to the collection and analytics
   systems to keep the collected data fully exploitable by the data
   scientists and relevant tools.  Additionally, this document specifies
   an augmentation of the YANG-Push model to include the actual
   collection period, in case it differs from the configured collection
   period.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-collected-data-manifest-16"/>
        </reference>
        <reference anchor="YANGmsgbroker">
          <front>
            <title>An Architecture for YANG-Push to Message Broker Integration</title>
            <author fullname="Thomas Graf" initials="T." surname="Graf">
              <organization>Swisscom</organization>
            </author>
            <author fullname="Ahmed Elhassany" initials="A." surname="Elhassany">
              <organization>Swisscom</organization>
            </author>
            <date day="2" month="July" year="2026"/>
            <abstract>
              <t>   This document describes the motivation and architecture of a native
   YANG-Push notifications and YANG Schema integration into a Message
   Broker and YANG Schema Registry.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-nmop-yang-message-broker-integration-13"/>
        </reference>
      </references>
    </references>
    <?line 822?>

<section numbered="false" anchor="appendix-a-examples-of-application-of-the-different-enclosing-methods">
      <name>Appendix A. Examples of Application of the Different Enclosing Methods</name>
      <t>In the examples that follow, the signature strings have been wrapped and, in some cases, indented to improve readability. If these examples are used for any kind of validation, all intermediate carriage returns and whitespace should be deleted to build the actual signature string to be considered.</t>
      <section numbered="false" anchor="xml">
        <name>XML</name>
        <t>Let us consider the following YANG instance, corresponding to a monitoring interface statement, as defined in <xref target="RFC7223"/>:</t>
        <artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
    <interface>
        <name>GigabitEthernet1</name>
        <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
            ianaift:ethernetCsmacd</type>
        <admin-status>up</admin-status>
        <oper-status>up</oper-status>
        <last-change>2024-02-03T11:22:41.081+00:00</last-change>
        <if-index>1</if-index>
        <phys-address>0c:00:00:37:d6:00</phys-address>
        <speed>1000000000</speed>
        <statistics>
            <discontinuity-time>2024-02-03T11:20:38+00:00</discontinuity-time>
            <in-octets>8157</in-octets>
            <in-unicast-pkts>94</in-unicast-pkts>
            <in-broadcast-pkts>0</in-broadcast-pkts>
            <in-multicast-pkts>0</in-multicast-pkts>
            <in-discards>0</in-discards>
            <in-errors>0</in-errors>
            <in-unknown-protos>0</in-unknown-protos>
            <out-octets>89363</out-octets>
            <out-unicast-pkts>209</out-unicast-pkts>
            <out-broadcast-pkts>0</out-broadcast-pkts>
            <out-multicast-pkts>0</out-multicast-pkts>
            <out-discards>0</out-discards>
            <out-errors>0</out-errors>
        </statistics>
    </interface>
</interfaces>
]]></artwork>
        <t>Using the first enclosing method, we will demonstrate how to augment the previous ietf-interfaces YANG module by defining it in the new example module below:</t>
        <artwork><![CDATA[
module example-interfaces-provenance-augmented {
  yang-version 1.1;
  namespace "urn:example:interfaces-provenance-augmented";
  prefix ifprov;

  import ietf-interfaces {
    prefix if;
  }
  import ietf-yang-provenance {
    prefix iyangprov;
  }

  description
    "Augments ietf-interfaces with provenance information";

  revision "2025-10-08" {
    description
      "Initial revision of the augment module adding provenance information to ietf-interfaces.";
  }

  augment "/if:interfaces" {
    leaf interfaces-provenance {
      type iyangprov:provenance-signature;
      description
        "Signature proving provenance of the interface configuration";
    }
  }
}


]]></artwork>
        <t>The following tree diagram illustrates the augmentation of the ietf-interfaces module with a provenance-signature at the root container:</t>
        <artwork><![CDATA[
module: ietf-interfaces
  +--rw interfaces
     +--rw interface* [name]
     |  +--rw name          string
     |  +--rw type          identityref
     |  ...
     +--rw ifprov:interfaces-provenance?  iyangprov:provenance-signature
]]></artwork>
        <t>The following example illustrates how a provenance signature can be attached to the root interfaces container to protect the entire set of interface configuration and operational data.
This augmentation adds a provenance-signature leaf at the root interfaces container (named "interfaces-provenance" in this case) and produces the following output:</t>
        <artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
    <interfaces-provenance xmlns="urn:example:interfaces-provenance-augmented">
      0oRRowNjeG1sBGdlYzIua2V5ASag9lhAvzyFP5HP0nONaqTRxKmSqerrDS6C
      QXJSK+5NdprzQZLf0QsHtAi2pxzbuDJDy9kZoy1JTvNaJmMxGTLdm4ktug==
    </interfaces-provenance>
    <interface>
        <name>GigabitEthernet1</name>
        <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
            ianaift:ethernetCsmacd</type>
        <admin-status>up</admin-status>
        <oper-status>up</oper-status>
        <last-change>2024-02-03T11:22:41.081+00:00</last-change>
        <if-index>1</if-index>
        <phys-address>0c:00:00:37:d6:00</phys-address>
        <speed>1000000000</speed>
        <statistics>
            <discontinuity-time>2024-02-03T11:20:38+00:00</discontinuity-time>
            <in-octets>8157</in-octets>
            <in-unicast-pkts>94</in-unicast-pkts>
            <in-broadcast-pkts>0</in-broadcast-pkts>
            <in-multicast-pkts>0</in-multicast-pkts>
            <in-discards>0</in-discards>
            <in-errors>0</in-errors>
            <in-unknown-protos>0</in-unknown-protos>
            <out-octets>89363</out-octets>
            <out-unicast-pkts>209</out-unicast-pkts>
            <out-broadcast-pkts>0</out-broadcast-pkts>
            <out-multicast-pkts>0</out-multicast-pkts>
            <out-discards>0</out-discards>
            <out-errors>0</out-errors>
        </statistics>
    </interface>
</interfaces>
]]></artwork>
        <t>The second enclosing method shows a notification with the provenance signature included inside the notification envelope. The provenance element is placed immediately before the contents element:</t>
        <artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<envelope xmlns="urn:ietf:params:xml:ns:yang:ietf-yp-notification">
    <event-time>2024-02-03T11:37:25.94Z</event-time>
    <provenance xmlns="urn:ietf:params:xml:ns:yang:ietf-yp-provenance">
    0oRRowNjeG1sBGdlYzIua2V5ASag9lhAzyJBpvnpzI/TirrjckAA29q6Qmf
    u56L8ZhUXXhu0KFcKh1qSRFx2wGR/y+xgKigVHYicC7fp/0AlHSXWiKB2sg==
    </provenance>
    <contents>
        <push-update xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-push">
            <id>1011</id>
            <datastore-contents>
                <interfaces-state xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
                    <interface>
                        <name>GigabitEthernet1</name>
                        <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
                            ianaift:ethernetCsmacd</type>
                        <admin-status>up</admin-status>
                        <oper-status>up</oper-status>
                        <last-change>2024-02-03T11:22:41.081+00:00</last-change>
                        <if-index>1</if-index>
                        <phys-address>0c:00:00:37:d6:00</phys-address>
                        <speed>1000000000</speed>
                        <statistics>
                            <discontinuity-time>2024-02-03T11:20:38+00:00</discontinuity-time>
                            <in-octets>8157</in-octets>
                            <in-unicast-pkts>94</in-unicast-pkts>
                            <in-broadcast-pkts>0</in-broadcast-pkts>
                            <in-multicast-pkts>0</in-multicast-pkts>
                            <in-discards>0</in-discards>
                            <in-errors>0</in-errors>
                            <in-unknown-protos>0</in-unknown-protos>
                            <out-octets>89363</out-octets>
                            <out-unicast-pkts>209</out-unicast-pkts>
                            <out-broadcast-pkts>0</out-broadcast-pkts>
                            <out-multicast-pkts>0</out-multicast-pkts>
                            <out-discards>0</out-discards>
                            <out-errors>0</out-errors>
                        </statistics>
                    </interface>
                </interfaces-state>
            </datastore-contents>
        </push-update>
    </contents>
</envelope>
]]></artwork>
        <t>The third enclosing method, applicable if the instance is to be stored as YANG instance data at rest, by adding the corresponding metadata, would produce the result shown below:</t>
        <artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<instance-data-set xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-instance-data">
  <name>atRestYANG</name>
  <content-schema></content-schema>
  <revision>
    <date>2024-11-03</date>
    <description>For demos</description>
  </revision>
  <description>Sample for demonstrating provenance signatures</description>
  <contact>diego.r.lopez@telefonica.com</contact>
  <provenance xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-instance-data-provenance">
  0oRRowNjeG1sBGdlYzIua2V5ASag9lhAWff+fMbfNChKUYZ52UTOBmAlYPFe4
  vlZOLyZeW0CU7/2OutDeMCG28+m3rm58jqLjKbcueKLFq8qFJb4mvPY+Q==
  </provenance>
  <content-data>
   <interfaces-state xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
    <interface>
        <name>GigabitEthernet1</name>
        <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
            ianaift:ethernetCsmacd</type>
        <admin-status>up</admin-status>
        <oper-status>up</oper-status>
        <last-change>2024-02-03T11:22:41.081+00:00</last-change>
        <if-index>1</if-index>
        <phys-address>0c:00:00:37:d6:00</phys-address>
        <speed>1000000000</speed>
        <statistics>
            <discontinuity-time>2024-02-03T11:20:38+00:00</discontinuity-time>
            <in-octets>8157</in-octets>
            <in-unicast-pkts>94</in-unicast-pkts>
            <in-broadcast-pkts>0</in-broadcast-pkts>
            <in-multicast-pkts>0</in-multicast-pkts>
            <in-discards>0</in-discards>
            <in-errors>0</in-errors>
            <in-unknown-protos>0</in-unknown-protos>
            <out-octets>89363</out-octets>
            <out-unicast-pkts>209</out-unicast-pkts>
            <out-broadcast-pkts>0</out-broadcast-pkts>
            <out-multicast-pkts>0</out-multicast-pkts>
            <out-discards>0</out-discards>
            <out-errors>0</out-errors>
        </statistics>
    </interface>
   </interfaces-state>
 </content-data>
</instance-data-set>
]]></artwork>
        <t>Finally, using the fourth enclosing method, the YANG instance would incorporate the corresponding provenance metadata as an annotation, using the namespace prefix specified in the ietf-yang-provenance-annotation module, as introduced in <xref target="EMannotations"/>:</t>
        <artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<interfaces-state xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"
                  xmlns:ypmd="urn:ietf:params:xml:ns:yang:ietf-yang-provenance-annotation"
                  ypmd:provenance=
                  "0oRRowNjeG1sBGdlYzIua2V5ASag9lhAzen3Bm9AZoyXuetpoTB70SzZqKVxeu
                  OMW099sm+NXSqCfnqBKfXeuqDNEkuEr+E0XiAso986fbAHQCHbAJMOhw==">
    <interface>
        <name>GigabitEthernet1</name>
        <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
            ianaift:ethernetCsmacd</type>
        <admin-status>up</admin-status>
        <oper-status>up</oper-status>
        <last-change>2024-02-03T11:22:41.081+00:00</last-change>
        <if-index>1</if-index>
        <phys-address>0c:00:00:37:d6:00</phys-address>
        <speed>1000000000</speed>
        <statistics>
            <discontinuity-time>2024-02-03T11:20:38+00:00</discontinuity-time>
            <in-octets>8157</in-octets>
            <in-unicast-pkts>94</in-unicast-pkts>
            <in-broadcast-pkts>0</in-broadcast-pkts>
            <in-multicast-pkts>0</in-multicast-pkts>
            <in-discards>0</in-discards>
            <in-errors>0</in-errors>
            <in-unknown-protos>0</in-unknown-protos>
            <out-octets>89363</out-octets>
            <out-unicast-pkts>209</out-unicast-pkts>
            <out-broadcast-pkts>0</out-broadcast-pkts>
            <out-multicast-pkts>0</out-multicast-pkts>
            <out-discards>0</out-discards>
            <out-errors>0</out-errors>
        </statistics>
    </interface>
</interfaces>
]]></artwork>
      </section>
      <section numbered="false" anchor="json">
        <name>JSON</name>
        <t>Let us consider the following YANG instance, corresponding to the same monitoring interface statement, with JSON serialization:</t>
        <artwork><![CDATA[
{
  "ietf-interfaces:interfaces": {
    "interface": [
      {
        "name": "GigabitEthernet1",
        "type": "ianaift:ethernetCsmacd",
        "admin-status": "up",
        "oper-status": "up",
        "last-change": "2024-02-03T11:22:41.081+00:00",
        "if-index": 1,
        "phys-address": "0c:00:00:37:d6:00",
        "speed": 1000000000,
        "statistics": {
          "discontinuity-time": "2024-02-03T11:20:38+00:00",
          "in-octets": 8157,
          "in-unicast-pkts": 94,
          "in-broadcast-pkts": 0,
          "in-multicast-pkts": 0,
          "in-discards": 0,
          "in-errors": 0,
          "in-unknown-protos": 0,
          "out-octets": 89363,
          "out-unicast-pkts": 209,
          "out-broadcast-pkts": 0,
          "out-multicast-pkts": 0,
          "out-discards": 0,
          "out-errors": 0
        }
      }
    ]
  }
}
]]></artwork>
        <t>Applying the first enclosing method, a provenance-signature leaf at the top element (named "interfaces-provenance" in this case") would be included following the augmentation module previously defined for the XML example. This will produce the following output:</t>
        <artwork><![CDATA[
{
  "ietf-interfaces:interfaces": {
    "interface": [
      {
        "name": "GigabitEthernet1",
        "type": "ianaift:ethernetCsmacd",
        "admin-status": "up",
        "oper-status": "up",
        "last-change": "2024-02-03T11:22:41.081+00:00",
        "if-index": 1,
        "phys-address": "0c:00:00:37:d6:00",
        "speed": 1000000000,
        "statistics": {
          "discontinuity-time": "2024-02-03T11:20:38+00:00",
          "in-octets": 8157,
          "in-unicast-pkts": 94,
          "in-broadcast-pkts": 0,
          "in-multicast-pkts": 0,
          "in-discards": 0,
          "in-errors": 0,
          "in-unknown-protos": 0,
          "out-octets": 89363,
          "out-unicast-pkts": 209,
          "out-broadcast-pkts": 0,
          "out-multicast-pkts": 0,
          "out-discards": 0,
          "out-errors": 0
        }
      }
    ],
    "example-interfaces-provenance-augmented:interfaces-provenance":
      "0oRRowNjeG1sBGdlYzIua2V5ASag9lhAvzyFP5HP0nONaqTRxKmSqerrDS6C
       QXJSK+5NdprzQZLf0QsHtAi2pxzbuDJDy9kZoy1JTvNaJmMxGTLdm4ktug=="
  }
}

]]></artwork>
        <t>The second enclosing method would translate into a notification including the "provenance" element as follows:</t>
        <artwork><![CDATA[
{
  "ietf-yp-notification:envelope" : {
    "event-time" : "2013-12-21T00:01:00Z",
    "contents": {
      "ietf-yang-push:push-update": {
        "id": 1011,
        "datastore-contents": {
          "ietf-interfaces:interfaces-state": {
            "interface": [ {
                "name": "GigabitEthernet1",
                "type": "ianaift:ethernetCsmacd",
                "admin-status": "up",
                "oper-status": "up",
                "last-change": "2024-02-03T11:22:41.081+00:00",
                "if-index": 1,
                "phys-address": "0c:00:00:37:d6:00",
                "speed": 1000000000,
                "statistics": {
                  "discontinuity-time": "2024-02-03T11:20:38+00:00",
                  "in-octets": 8157,
                  "in-unicast-pkts": 94,
                  "in-broadcast-pkts": 0,
                  "in-multicast-pkts": 0,
                  "in-discards": 0,
                  "in-errors": 0,
                  "in-unknown-protos": 0,
                  "out-octets": 89363,
                  "out-unicast-pkts": 209,
                  "out-broadcast-pkts": 0,
                  "out-multicast-pkts": 0,
                  "out-discards": 0,
                  "out-errors": 0
                }
              }
            ]
          }
        }
      }
    },
    "ietf-yp-provenance:provenance":
    "0oRRowNjeG1sBGdlYzIua2V5ASag9lhAiKEKLQKJT12LsNgxt8WllEI65lyi
    E/m12drCfl+wh7T61cTYhFGdEeX8A5F0vmUWROZebq/VVFewUZeVYGZBOQ=="
  }
}
]]></artwork>
        <t>The third enclosing method, applicable if the instance is to be stored as YANG instance data at rest, by adding the corresponding metadata, would produce a results as shown below:</t>
        <artwork><![CDATA[
{
  "ietf-yang-instance-data:instance-data-set" : {
    "name" : "interfaces-labTID-status",
    "contact" : "sofia.garciarincon.practicas@telefonica.com",
    "timestamp" : "Thu Jul 18 11:42:06 CEST 2024",
    "content-data" : {
      "ietf-interfaces:interfaces": {
        "interface": [
          {
            "name": "GigabitEthernet1",
            "iana-if-type:type": "ianaift:ethernetCsmacd",
            "admin-status": "up",
            "oper-status": "up",
            "last-change": "2024-02-03T11:22:41.081+00:00",
            "if-index": 1,
            "phys-address": "0c:00:00:37:d6:00",
            "speed": 1000000000,
            "statistics": {
              "discontinuity-time": "2024-02-03T11:20:38+00:00",
              "in-octets": 8157,
              "in-unicast-pkts": 94,
              "in-broadcast-pkts": 0,
              "in-multicast-pkts": 0,
              "in-discards": 0,
              "in-errors": 0,
              "in-unknown-protos": 0,
              "out-octets": 89363,
              "out-unicast-pkts": 209,
              "out-broadcast-pkts": 0,
              "out-multicast-pkts": 0,
              "out-discards": 0,
              "out-errors": 0
            }
          }
        ]
      }
    },
    "ietf-yang-instance-data-provenance:provenance" :
    "0oRRowNjeG1sBGdlYzIua2V5ASag9lhAmop/c7wMcjRmiSPVy65F/N6O21dsG
    kjGQjIDRizhu3WMwi9Je+VUf5sqwlhSwQCdv5u7mRXa6Pd9dhCwdxdRCA=="
  }
}
]]></artwork>
        <t>Finally, using the fourth enclosing method, the YANG instance would incorporate the corresponding provenance metadata as an annotation, using the namespace prefix specified in the yang-provenance-metadata module, as introduced in <xref target="EMannotations"/>, and the recommendations in section 5.2.3 of <xref target="RFC7952"/>:</t>
        <artwork><![CDATA[
{
  "ietf-interfaces:interfaces" : {

    "interface" : [
      {
        "name" : "GigabitEthernet1",
        "iana-if-type:type" : "ianaift:ethernetCsmacd",
        "admin-status" : "up",
        "oper-status" : "up",
        "last-change" : "2024-02-03T11:22:41.081+00:00",
        "if-index" : 1,
        "phys-address" : "0c:00:00:37:d6:00",
        "speed" : 1000000000,
        "statistics" : {
          "discontinuity-time" : "2024-02-03T11:20:38+00:00",
          "in-octets" : 8157,
          "in-unicast-pkts" : 94,
          "in-broadcast-pkts" : 0,
          "in-multicast-pkts" : 0,
          "in-discards" : 0,
          "in-errors" : 0,
          "in-unknown-protos" : 0,
          "out-octets" : 89363,
          "out-unicast-pkts" : 209,
          "out-broadcast-pkts" : 0,
          "out-multicast-pkts" : 0,
          "out-discards" : 0,
          "out-errors" : 0
        }
      }
    ],
    "@": {
        "ypmd:provenance": "0oRRowNjeG1sBGdlYzIua2V5ASag9lhAM/Dx3HVc4GL91jmuU5nWgcmOPPVpARLJkWo5wwQYvGFJpKMXTkjAtArPp8v6Sl1ZD1qHimKMhAoHLMHVxBtrcA=="
    }
  }
}
]]></artwork>
      </section>
      <section numbered="false" anchor="cbor">
        <name>CBOR</name>
        <t>According to <xref target="RFC9254"/>, provenance information <bcp14>MAY</bcp14> be represented in CBOR using either YANG names (CBOR diagnostic notation) or YANG SIDs as map keys. The CBOR diagnostic notation when using name keys would be essentially similar to the JSON encoding presented in the previous section. Both representations are included in the examples below to provide a full reference.</t>
        <t>NOTE TO THE RFC EDITOR: The SID values shown below are illustrative and must be replaced by IANA-assigned values before publication.</t>
        <t>The first enclosing method will produce the following output, in CBOR diagnostic notation:</t>
        <artwork><![CDATA[
{
  "ietf-interfaces:interfaces": {
    "interface": [
      {
        "name": "GigabitEthernet1",
        "type": "ianaift:ethernetCsmacd",
        "admin-status": "up",
        "oper-status": "up",
        "last-change": "2024-02-03T11:22:41.081+00:00",
        "if-index": 1,
        "phys-address": "0c:00:00:37:d6:00",
        "speed": 1000000000,
        "statistics": {
          "discontinuity-time": "2024-02-03T11:20:38+00:00",
          "in-octets": 8157,
          "in-unicast-pkts": 94,
          "in-broadcast-pkts": 0,
          "in-multicast-pkts": 0,
          "in-discards": 0,
          "in-errors": 0,
          "in-unknown-protos": 0,
          "out-octets": 89363,
          "out-unicast-pkts": 209,
          "out-broadcast-pkts": 0,
          "out-multicast-pkts": 0,
          "out-discards": 0,
          "out-errors": 0
        }
      }
    ],
    "example-interfaces-provenance-augmented:interfaces-provenance": h'd28451a30363786d6c04676563322e6b65790126a0f6584033f0f1dc755ce062fdd639ae5399d681c98e3cf5690112c9916a39c30418bc6149a4a3174e48c0b40acfa7cbfa4a5d590f5a878a628c840a072cc1d5c41b6b70'
    }
}
]]></artwork>
        <t>Note that the provenance leaf in JSON would be represented in BASE64 value and in CBOR diagnostic is a byte string represented with an hexadecimal value.</t>
        <t>And the corresponding representation of the first enclosing method using YANG SIDs will be:</t>
        <artwork><![CDATA[
{
  1500: {                      / ietf-interfaces:interfaces /
    1: [                     / interface list /
      {
        1: "GigabitEthernet1",     / name /
        2: 1800,                   / type identityref /
        3: 1,                      / admin-status: up /
        4: 1,                      / oper-status: up /
        5: "2024-02-03T11:22:41.081+00:00", / last-change /
        6: 1,                      / if-index /
        7: "0c:00:00:37:d6:00",        / phys-address /
        8: 1000000000,             / speed /
        9: {                       / statistics /
          1: "2024-02-03T11:20:38+00:00",
          2: 8157,
          3: 94,
          4: 0,
          5: 0,
          6: 0,
          7: 0,
          8: 0,
          9: 89363,
          10: 209,
          11: 0,
          12: 0,
          13: 0,
          14: 0
        }
      }
    ],
    "example-interfaces-provenance-augmented:interfaces-provenance": h'd28451a30363786d6c04676563322e6b65790126a0f6584033f0f1dc755ce062fdd639ae5399d681c98e3cf5690112c9916a39c30418bc6149a4a3174e48c0b40acfa7cbfa4a5d590f5a878a628c840a072cc1d5c41b6b70'
  }
}

]]></artwork>
        <t>The following example illustrates the notification-based enclosing method (second method), represented in CBOR diagnostic notation.</t>
        <artwork><![CDATA[
{
    "ietf-yp-notification:envelope": {
        "event-time": "2013-12-21T00:01:00Z",
        "contents": {
            "ietf-yang-push:push-update": {
                "id": 1011,
                "datastore-contents": {
                    "ietf-interfaces:interfaces-state": {
                        "interface": [
                            {
                                "name": "GigabitEthernet1",
                                "type": "iana-if-type:ethernetCsmacd",
                                "admin-status": "up",
                                "oper-status": "up",
                                "last-change": "2024-02-03T11:22:41.081+00:00",
                                "if-index": 1,
                                "phys-address": "0c:00:00:37:d6:00",
                                "speed": 1000000000,
                                "statistics": {
                                    "discontinuity-time": "2024-02-03T11:20:38+00:00",
                                    "in-octets": 8157,
                                    "in-unicast-pkts": 94,
                                    "in-broadcast-pkts": 0,
                                    "in-multicast-pkts": 0,
                                    "in-discards": 0,
                                    "in-errors": 0,
                                    "in-unknown-protos": 0,
                                    "out-octets": 89363,
                                    "out-unicast-pkts": 209,
                                    "out-broadcast-pkts": 0,
                                    "out-multicast-pkts": 0,
                                    "out-discards": 0,
                                    "out-errors": 0
                                }
                            }
                        ]
                    }
                }
            }
        },
        "ietf-yp-provenance:provenance": h'd28451a30363786d6c04676563322e6b65790126a0f6584033f0f1dc755ce062fdd639ae5399d681c98e3cf5690112c9916a39c30418bc6149a4a3174e48c0b40acfa7cbfa4a5d590f5a878a628c840a072cc1d5c41b6b70'
    }
}
]]></artwork>
        <t>And this would be the second enclosing method example in YANG SID notation:</t>
        <artwork><![CDATA[
{
  2958: {                           / ietf-yp-notification:envelope: 2958 /
    2: "2024-10-10T08:00:11.22Z", / event-time: 2958 + 2 /
    1: {                           / contents: 2958 + 1 /
      "ietf-yang-push:push-update": {
        "id": 1011,
        "datastore-contents": {
          1500: {                     / ietf-interfaces:interfaces /
            1: [                    / interface /
              {
                1: "GigabitEthernet1",    / name /
                2: 1800,                  / type identityref /
                3: 1,                     / admin-status: up /
                4: 1,                     / oper-status: up /
                5: "2024-02-03T11:22:41.081+00:00", / last-change /
                6: 1,                     / if-index /
                7: "0c:00:00:37:d6:00",       / phys-address /
                8: 1000000000,            / speed /
                9: {                     / statistics /
                  1: "2024-02-03T11:20:38+00:00", / discontinuity-time /
                  2: 8157,
                  3: 94,
                  4: 0,
                  5: 0,
                  6: 0,
                  7: 0,
                  8: 0,
                  9: 89363,
                  10: 209,
                  11: 0,
                  12: 0,
                  13: 0,
                  14: 0
                }
              }
            ]
          }
        }
      }
    },
    44: h'd28451a30363786d6c04676563322e6b65790126a0f6584033f0f1dc755ce062fdd639ae5399d681c98e3cf5690112c9916a39c30418bc6149a4a3174e48c0b40acfa7cbfa4a5d590f5a878a628c840a072cc1d5c41b6b70'  / provenance-signature 3002 - 2958 = 44/
  }
}
]]></artwork>
        <t>The following example illustrates the third enclosing method, represented in CBOR diagnostic notation.</t>
        <artwork><![CDATA[
{
  "ietf-yang-instance-data:instance-data-set": {
    "name": "interfaces-labTID-status",
    "contact": "sofia.garciarincon.practicas@telefonica.com",
    "timestamp": "Thu Jul 18 11:42:06 CEST 2024",
    "content-data": {
      "ietf-interfaces:interfaces": {
        "interface": [
          {
            "name": "GigabitEthernet1",
            "iana-if-type:type": "ianaift:ethernetCsmacd",
            "admin-status": "up",
            "oper-status": "up",
            "last-change": "2024-02-03T11:22:41.081+00:00",
            "if-index": 1,
            "phys-address": "0c:00:00:37:d6:00",
            "speed": 1000000000,
            "statistics": {
              "discontinuity-time": "2024-02-03T11:20:38+00:00",
              "in-octets": 8157,
              "in-unicast-pkts": 94,
              "in-broadcast-pkts": 0,
              "in-multicast-pkts": 0,
              "in-discards": 0,
              "in-errors": 0,
              "in-unknown-protos": 0,
              "out-octets": 89363,
              "out-unicast-pkts": 209,
              "out-broadcast-pkts": 0,
              "out-multicast-pkts": 0,
              "out-discards": 0,
              "out-errors": 0
            }
          }
        ]
      }
    },
    "ietf-yang-instance-data-provenance:provenance":
      h'd28451a30363786d6c04676563322e6b65790126a0f6584033f0f1dc755ce062fdd639ae5399d681c98e3cf5690112c9916a39c30418bc6149a4a3174e48c0b40acfa7cbfa4a5d590f5a878a628c840a072cc1d5c41b6b70'
  }
}
]]></artwork>
        <t>And this would be the third enclosing method using YANG SID notation:</t>
        <artwork><![CDATA[
{
  "ietf-yang-instance-data:instance-data-set": {
    "name": "interfaces-labTID-status",
    "contact": "sofia.garciarincon.practicas@telefonica.com",
    "timestamp": "Thu Jul 18 11:42:06 CEST 2024",
    "content-data": {
      1500: {                           / ietf-interfaces:interfaces /
        1: [                          / interface/
          {
            1: "GigabitEthernet1",    / name /
            2: 1800,                  / type identityref /
            3: 1,                     / admin-status: up /
            4: 1,                     / oper-status: up /
            5: "2024-02-03T11:22:41.081+00:00", / last-change /
            6: 1,                     / if-index /
            7: "0c:00:00:37:d6:00",       / phys-address /
            8: 1000000000,            / speed /
            9: {                     / statistics /
              1: "2024-02-03T11:20:38+00:00", / discontinuity-time /
              2: 8157,
              3: 94,
              4: 0,
              5: 0,
              6: 0,
              7: 0,
              8: 0,
              9: 89363,
              10: 209,
              11: 0,
              12: 0,
              13: 0,
              14: 0
            }
          }
        ]
      }
    },
    3051: h'd28451a30363786d6c04676563322e6b65790126a0f6584033f0f1dc755ce062fdd639ae5399d681c98e3cf5690112c9916a39c30418bc6149a4a3174e48c0b40acfa7cbfa4a5d590f5a878a628c840a072cc1d5c41b6b70'   / provenance 3051 /
  }
}
]]></artwork>
        <t>Note that there is no IANA registered SID for ietf-yang-instance-data:instance-data-set, so name-keys were used.</t>
        <t>Finally, the following example illustrates the fourth and last enclosing method using CBOR diagnostic notation:</t>
        <artwork><![CDATA[
{
  "ietf-interfaces:interfaces": {

    "interface": [
      {
        "name": "GigabitEthernet1",
        "iana-if-type:type": "ianaift:ethernetCsmacd",
        "admin-status": "up",
        "oper-status": "up",
        "last-change": "2024-02-03T11:22:41.081+00:00",
        "if-index": 1,
        "phys-address": "0c:00:00:37:d6:00",
        "speed": 1000000000,
        "statistics": {
          "discontinuity-time": "2024-02-03T11:20:38+00:00",
          "in-octets": 8157,
          "in-unicast-pkts": 94,
          "in-broadcast-pkts": 0,
          "in-multicast-pkts": 0,
          "in-discards": 0,
          "in-errors": 0,
          "in-unknown-protos": 0,
          "out-octets": 89363,
          "out-unicast-pkts": 209,
          "out-broadcast-pkts": 0,
          "out-multicast-pkts": 0,
          "out-discards": 0,
          "out-errors": 0
        }
      }
    ],

    "@": {
      "ypmd:provenance":
        h'd28451a30363786d6c04676563322e6b65790126a0f6584033f0f1dc755ce062fdd639ae5399d681c98e3cf5690112c9916a39c30418bc6149a4a3174e48c0b40acfa7cbfa4a5d590f5a878a628c840a072cc1d5c41b6b70'
    }
  }
}
]]></artwork>
        <t>While this last example uses YANG SID notation for the fourth enclosing method:</t>
        <artwork><![CDATA[
{
  1500: {                             / ietf-interfaces:interfaces /
    1: [                              / interface list /
      {
        1: "GigabitEthernet1",
        2: 1800,
        3: 1,
        4: 1,
        5: "2024-02-03T11:22:41.081+00:00",
        6: 1,
        7: "0c:00:00:37:d6:00",
        8: 1000000000,
        9: {
          1: "2024-02-03T11:20:38+00:00",
          2: 8157,
          3: 94,
          4: 0,
          5: 0,
          6: 0,
          7: 0,
          8: 0,
          9: 89363,
          10: 209,
          11: 0,
          12: 0,
          13: 0,
          14: 0
        }
      }
    ],
    3101: h'd28451a30363786d6c04676563322e6b65790126a0f6584033f0f1dc755ce062fdd639ae5399d681c98e3cf5690112c9916a39c30418bc6149a4a3174e48c0b40acfa7cbfa4a5d590f5a878a628c840a072cc1d5c41b6b70'  / provenance /
  }
}


]]></artwork>
        <t>In the examples above, 3XXX are illustrative SIDs for the provenance signature. A provenance-signature typedef does not itself have a SID; the SID identifying a provenance leaf or annotation depends on the YANG module that defines it. Replace the illustrative SID values with the values assigned to the corresponding schema nodes.</t>
        <t>NOTE TO THE RFC EDITOR: Replace the illustrative SID values with the final values allocated by IANA according to <xref target="RFC9595"/>.</t>
      </section>
    </section>
    <section numbered="false" anchor="yang-sid-files">
      <name>Appendix B. Provisional YANG SID Files (.sid)</name>
      <t>The following <tt>.sid</tt> files are provided for IANA allocation as specified in <xref target="iana-considerations-sids"/>.</t>
      <artwork><![CDATA[
{
  "ietf-sid-file:sid-file": {
    "module-name": "ietf-yp-provenance",
    "module-revision": "2026-06-30",
    "sid-file-status": "unpublished",
    "description": "draft-ietf-opsawg-yang-provenance: Applying COSE Signatures for YANG Data Provenance",
    "reference": "RFC XXXX: Applying COSE Signatures for YANG Data Provenance",
    "dependency-revision": [
      {
        "module-name": "ietf-notification-capabilities",
        "module-revision": "2022-02-17"
      },
      {
        "module-name": "ietf-system-capabilities",
        "module-revision": "2022-02-17"
      },
      {
        "module-name": "ietf-yang-provenance",
        "module-revision": "2026-06-30"
      },
      {
        "module-name": "ietf-yang-structure-ext",
        "module-revision": "2020-06-17"
      },
      {
        "module-name": "ietf-yp-notification",
        "module-revision": "2026-09-25"
      }
    ],
    "assignment-range": [
      {
        "entry-point": "3000",
        "size": "50"
      }
    ],
    "item": [
      {
        "namespace": "module",
        "identifier": "ietf-yp-provenance",
        "status": "unstable",
        "sid": "3000"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system-capabilities:system-capabilities/ietf-notification-capabilities:subscription-capabilities/ietf-yp-notification:notification-metadata/metadata/ietf-yp-provenance:notification-provenance",
        "status": "unstable",
        "sid": "3001"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-yp-notification:envelope/ietf-yp-provenance:provenance",
        "status": "unstable",
        "sid": "3002"
      }
    ]
  }
}
]]></artwork>
      <artwork><![CDATA[
{
  "ietf-sid-file:sid-file": {
    "module-name": "ietf-yang-instance-data-provenance",
    "module-revision": "2026-06-30",
    "sid-file-status": "unpublished",
    "description": "draft-ietf-opsawg-yang-provenance: Applying COSE Signatures for YANG Data Provenance"
    "reference": "RFC XXXX: Applying COSE Signatures for YANG Data Provenance",
    "dependency-revision": [
      {
        "module-name": "ietf-yang-instance-data",
        "module-revision": "2022-02-17"
      },
      {
        "module-name": "ietf-yang-provenance",
        "module-revision": "2026-06-30"
      },
      {
        "module-name": "ietf-yang-structure-ext",
        "module-revision": "2020-06-17"
      }
    ],
    "assignment-range": [
      {
        "entry-point": "3050",
        "size": "50"
      }
    ],
    "item": [
      {
        "namespace": "module",
        "identifier": "ietf-yang-instance-data-provenance",
        "status": "unstable",
        "sid": "3050"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-yang-instance-data:instance-data-set/ietf-yang-instance-data-provenance:provenance",
        "status": "unstable",
        "sid": "3051"
      }
    ]
  }
}
]]></artwork>
      <artwork><![CDATA[
{
  "ietf-sid-file:sid-file": {
    "module-name": "ietf-yang-provenance-annotation",
    "module-revision": "2026-06-30",
    "sid-file-status": "unpublished",
    "description": "draft-ietf-opsawg-yang-provenance: Applying COSE Signatures for YANG Data Provenance"
    "reference": "RFC XXXX: Applying COSE Signatures for YANG Data Provenance",
    "dependency-revision": [
      {
        "module-name": "ietf-yang-metadata",
        "module-revision": "2016-08-05"
      },
      {
        "module-name": "ietf-yang-provenance",
        "module-revision": "2026-06-30"
      }
    ],
    "assignment-range": [
      {
        "entry-point": "3100",
        "size": "50"
      }
    ],
    "item": [
      {
        "namespace": "module",
        "identifier": "ietf-yang-provenance-annotation",
        "status": "unstable",
        "sid": "3100"
      },
      {
        "namespace": "annotation",
        "identifier": "provenance",
        "status": "unstable",
        "sid": "3101"
      }
    ]
  }
}
]]></artwork>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Sofia Garcia (UC3M, sgarciarincon01@gmail.com) for being instrumental in demonstrating the feasibility of the proposed approach, providing a first proof of concept of YANG provenance signatures. The authors would like to thank Vojtěch Vilímek for their review and valuable comments.</t>
      <t>This document is based on work partially funded by the EU Horizon Europe projects iTrust6G (grant 101139198), CYBERNEMO (grant 101168182), cPAID (grant 101168407), MARE (grant 101191436), and 6G-DALI (grant 101192750).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
0OcEMJpewNPdTWrr/JbrAcTd883zJnXJ/JjrRPdZZjtlfsx1wnV6sa+a66+5
hnTLl2omvxSsFHMLKSswjVTjzI9uJ7KRSDjubmxtAD6aX/JNHbC1m7vcfAEw
8XEemgW/5rvl4Vnwa76bDVHne76pgan1zaDyehaXEZyaIFlfEul2rbzTZRvL
ytFcyRu6LTGGq+tHOu+VTX5sDxcZwug453tzU+g81NXTuMgXcTrd0KpOqqK9
ZBNrbEeW1vmMK6blyOG6S4ZzSqcUl02xFuuGWQ1uF5n1dXGdg+y7SRyzBrbu
fczEM1SBjHXqrWa9ubMgXvsILwamAEjZTQpSatdVLobvZ2rr2xdOoojjzrNh
AhlM3nQ4sPbByQ8v3J47C/s2FfnIPeWuQwdZK6HDMVVnoq0rJqLWcsk6WbX6
joXEhqMjpGb3VMI4V67CqrsupfY4inSF/CAuysg1w1a48tiVcH4SuV/d8sn/
Us/xN0OX7JKRugnti/5Is/wccFy3azQazjvpaBUfxh9XS/fNwF5RFBvsSLdK
AlbV3ZDozh6a+zIIrNaGaAhjAxXLoPz9sfbqluAM1xCxvDTsrOSoGxsdvGyu
RLbQvr3rhdN7gLvki2ohRKs6TAZVkjWalnaluvI58JnpLP23itLOybfGW5WC
KwbZjE5Ooqs3vwXPWsmTZ/7oly9HM6/9vrN36p3vjoZ7l1/mT992nr9tTo7f
eJ/PTq5fjk8/A489ON1SYWM/f3xx+vJh540/jb/8/OnVoPlz8jzdC9vT6y+9
2cGLg/nuxado3npxdvnGezF+ff3s7JU/3rxIZ+c//JBlyPZs77WHe+3hXnuw
G95rD39+7eGsvJwG3TKQZO7AXpLopZP+l1UUzmZv2Zfb0N3LMMRYGsFGc7s0
hy6cIHt0KzdjbLqA2KpsLVsfUwLW1DfNEAWgSO1OY3fz06N1qw13KuaCN6gC
yeMsY4Nf5i+eTC8n0y9H62dhHP/Wv9jba+9+3vp5zNLbrLP1aufT8N3Hj8NZ
8+XT/sth6/PpydPr9tWzk/X5w+vzl+H5++e/hP397cF0vbk3en768UP48kk7
MUwwx/nUxtgkG29o4MCK1derrnaoZokFUvEW8gY/S6dV3cZ6fg4WrdFMmyyP
3y7WlA9d/JzarCQD5HrdoUyQ/awmI+RmtKLMkOu3kgyR63VbmSI34GIZI9f8
22SO3DBLZZB8jxKZJNfwbmWUPLxWk1mK+t1Mhika4cYyTdEgN5ZxigZZSeYp
6rhUBirqdGOZKDfI6jJSYdebykyFg9xchioc5uYyVeEwq8lYhV0Xy1y5LjkZ
LN9iAcNwtEtiVBlmt76I2wFFMixXSYCmGUgkUvqxxL90GMZFxdSsPJUwU6sg
VLGjNA/Kri8o4yKzSWpU0dwvyaFQqYM1eVGMyj9IdaG1gtuuVjdiZAtr3UgK
cboTO2U27qUnsC5csWHgSvypcxDGYw129QO2UXZYuTO0SUStWy2g1rS1atcs
W+djunksGEcJtLB+xhHX7SGdTqdsOxvIvmz3z5hHTaxsfmSZr/t4UXosLxJb
Vb5RuF1YOwtHXSbqfhgMHg5e9wZv9ocv3/3yqdN+d3b8ZLw3+uXt02AT+l+O
Ph2/mn8KPjT3322vt49n6UHwev9Ze+fheCMed3Z++/zqt5e9/ix4+erp553P
T1/0NseXb395+DMJulkxV+8yF8kTdypX3tuO7m1H97aje9vRn9J25H43oonh
c0wSsVGG6UpZQydzzYzDOpphcnrxBdeuRMHSAeWrTSMd0ZdND9EMyFQkoABz
E6Zpv964k1V5Qc5zMlecLStPom7T9Si4j0UXGcPkFl/69kimb+cqBcInswgM
UF7ZElNYM6VgaBzUcu39UNCkutRuFUw2nox39z5F84+zIJ1GZ0+2m6dfPn1+
+f46mBWMePz6Q3N3Nxk/fPPx9PP+YPL5ycvBx2D2+eDN4cXsMH542PwY7iXR
7s7WoLf3/Of95729F6+Ph1c//HDPc+957j3PdRre89w/Gc8tivb67jvx4vT4
zR8Rp0sB0RgYsixcl3xAOAuRBHGoK2tIFoeBPdUML7JDg7oy9MfENcBP/5Aw
+V3DporkFp5Us4S4WjNtiJZCm2ICare0SSX2mE3tpxaFzD+0qB8+XEgr7X6K
JkKnlvWzTfdwvBxptMcg2ocDaHpoP9TIo4Eqn+RpW8HMDTG03kj7Ik8n9EHK
l31on0VosruZbeCeO2jSzLZwj1hRC3Wmip7xMSp64hKiXAtDeHBpSIxyjzOL
AwKUa7JkeXkSUtikdIGGUOAj/eRrxf4XA7owZo3vfrSLvZcFga4QioT3WSs/
7A2Cj6pr5qp77QC2i5pkAuVkRJxVfkEF/6sCBJgPKkODZJ4Pxa/atsGS8KZ7
4qMOwz3xuSc+fxTx4S7VFcO5i6P7ql055lKtcIWgvltF9VUlLV0eEcNkjgpm
jVAph4VF2QAZ9+adqk00TVW1TDFiQ7UywSbWhVuacpmgEvwRzlVro95q19ut
MzxOLThRn+SRMtdjmxNadYMsupa/yDnH1ZBPfsumHnnXU/bsl5NetmNk2mcJ
ceYhNViBFOu2K5Nk3WMhaTbHYgGJ1o2+kVQbSBSSbP34JqRbd1pEwk2jMlKu
W9yGpJv1LSDtdqOFJN5uuJgW2i0Xk0S7ZRlltNsUswB3CYtYgW65mCU4zRaz
BqfpimBZziqcpksBU8I61OdrZdH3XytFT1y281VStXxYXDfHVpYylfDl4ctX
P798cdZqv0renF+nOx9Go8OjrQ5I0jTC4fq41fbj/cHo4dVw+2yr1T/7Zfj0
mX8YfNzZ6zxtXo7ffTg5/hT0Pq+/f/80uHr3KXj/y7NPT45/NhzlT+5j96SH
na4AyHvZLa6Uc9MWXRuhORRRbORNFvUfeb2zowNFQy3+5PWpazWJBqHXOPfi
fuhhlfZo0pjG8BDRM+N2Vt11sTUa4Gw4Ey9mI9HaEUCNNtvd5pbYPzw9w9qv
mxmOyB59kWWLi3UGblegN+Anw9VWZFpV2yjcvRH3Ws65lnKt23CsBdzqxpxq
KZdazKFuzZ2WcqaVuNJqHGk1brSMEy3mQqtxoBW4z4qcZ0WusyLHWcptFnEa
m6uYvxV3KeIjiyJQbL4iVmQs42i63t++et3/7WQcnr59P9/qPF1/s3XcbvnJ
Mxri4rdnP/92dHASfhnONj68vgp3XwQP378bdJLPV6Ph6dXP+/5lZ7Y9Pvno
bb31d/3h/pV/7Z/s72UYy1/RoZr1KephV/ek1nTR5xjUtDFeayYLD2KRDnX7
SKPd2MjcQLKiiYi4QtZIJMqtRGKJmShP4sXNjUZiodUo/9Sm7OKb7EZigeFI
rGY5EstNR2K57ahg+suNR2IF65FYwXwkltuPippo8lX0UJKuokcZqp1rYpFs
sZIRSaxkRSp8z7JlOmS68Km10CWWpJ9cISsTS0AyxBKy+3r94Hrj+fv+5rNX
u63fxrN3ncmH8/74+O3b99O9k1cvLj5Enaurn3+5fPb0xfTl649nF7/tpXvx
2+nO5dbpqPXpoPX5eTh++Xq4Fz1/9fr5++snadyXFNekiKv6bftPjk+KXXB7
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
zbVG5f8B8z0FGV8tAQA=

-->

</rfc>
