<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-opsawg-yang-provenance-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="yang-data-provenance">Applying COSE Signatures for YANG Data Provenance</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-yang-provenance-01"/>
    <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>INSA-Lyon</organization>
      <address>
        <email>alex.huang-feng@insa-lyon.fr</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="2025" month="July" day="07"/>
    <area>Operations and Management</area>
    <workgroup>Operations and Management Area Working Group</workgroup>
    <keyword>provenance</keyword>
    <keyword>signature</keyword>
    <keyword>COSE</keyword>
    <keyword>metadata</keyword>
    <abstract>
      <?line 75?>

<t>This document defines a mechanism based on 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 stream 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 integritu of datasets and/or data streams. 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 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 79?>

<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>
      <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 streaming 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 a documented trail accounting for the origin of a piece of data and where it has moved from to where it is presently. The signature mechanism provided here can be recursively applied to allow this accounting for YANG data.</t>
    </section>
    <section anchor="defining-provenance-elements">
      <name>Defining Provenance Elements</name>
      <t>The provenance for a given YANG element <bcp14>MUST</bcp14> be convened 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
       draft-ietf-opsawg-yang-provenance";
}
]]></artwork>
      <t>The use of this type is the proper method for identifying signature leaves, 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, serialization-method/
unprotected /algorithm-parameters/
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 serialization-method, a string identifying the YANG serialization in use. It <bcp14>MUST</bcp14> be one of the three possible values "xml" (for XML serialization <xref target="RFC7950"/>), "json" (for JSON serialization <xref target="RFC7951"/>) or "cbor" (for CBOR serialization <xref target="RFC9254"/>).</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>
      <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>
        </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>
      </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@2025-05-09.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@insa-lyon.fr>
               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) 2025 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 2025-05-09 {
    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's 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 eliminiating 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. And note that, 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>Note here that, to generate the YANG content to be processed in the case of the collection the provenance leafs of the indivual 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 the generated notifications directly from the publisher nodes. The signature is added to the notification envelope header <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 <xref target="I-D.ietf-netconf-notif-envelope"/>.</t>
        <t>The following sections define the YANG module augmenting 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
            /inotenv:notification-metadata/inotenv:metadata:
    +--ro notification-provenance?   boolean

  augment-structure /inotenv: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-notification

  structure envelope:
    +-- event-time         yang:date-and-time
    +-- hostname?          inet:host
    +-- sequence-number?   yang:counter32
    +-- provenance?        iyangprov:provenance-signature
    +-- contents?          <anydata>
]]></artwork>
        </section>
        <section anchor="yang-module">
          <name>YANG Module</name>
          <t>The module augments "ietf-yp-notification" module <xref target="I-D.ietf-netconf-notif-envelope"/> adding the signature leaf in the notification envelope header.</t>
          <sourcecode markers="true" name="ietf-yp-provenance@2024-05-09.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 inotenv;
    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@insa-lyon.fr>
               Diego Lopez
               <mailto:diego.r.lopez@telefonica.com>
               Antonio Pastor
               <mailto:antonio.pastorperales@telefonica.com>";

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

    Copyright (c) 2025 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 2025-05-09 {
    description
      "First revision";
    reference
      "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }

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

  augment "/sysc:system-capabilities"
        + "/notc:subscription-capabilities"
        + "/inotenv:notification-metadata/inotenv: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 instance-data-set:
    +--provenance-string?   provenance-signature
]]></artwork>
        <t>The provenance signature string in this enclosing method applies to whole content-data element in instance-data-set, independently of whether those data contain other provenance signature strings by applying other enclosing methods.</t>
        <t>The specific YANG content to be processed <bcp14>SHALL</bcp14> be generated by taking the contents of the content-data element 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@2025-07-07.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.mendezperz@telefonica.com>
               Diego Lopez
               <mailto:diego.r.lopez@telefonica.com>";
  description
        "Defines a binary provenance-signature type to be used as metadata
         in a YANG data instance.

         Copyright (c) 2025 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 2025-07-07 {
    description "First revision.";
    reference "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }
  sx:augment-structure "/id:instance-data-set" {
    leaf provenance-string {
      type iyangprov:provenance-signature;
      description
        "Provenance signature that applies to the full content-data block of an instance dataset.";
    }
  }
}
]]></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 and not requiring modification of existing YANG schemas. The provenance-string annotation is defined as follows:</t>
        <artwork><![CDATA[
 md:annotation provenance-string {
       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-string (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-provenance-annotation@2024-06-30.yang"><![CDATA[
module yang-annotation-provenance-metadata {
     yang-version 1.1;
     namespace
       "urn:ietf:params:xml:ns:yang:ietf-yang-annotation-pmd";
     prefix "ypmd";
     import ietf-yang-types {
       prefix "yang";
     }
     import ietf-yang-metadata {
       prefix "md";
     }
     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@insa-lyon.fr>
                 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 YANG
         metadata annotations

         Copyright (c) 2024 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 2024-02-28 {
        description
        "First revision";
        reference
        "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
     }
     md:annotation provenance-string {
       type yang: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 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, ec.) 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">
      <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-annotation-pmd
  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: yang-annotation-provenance-metadata
  namespace: urn:ietf:params:xml:ns:yang:ietf-yang-annotation-pmd
  prefix: ypmd
  reference: RFC XXXX
]]></artwork>
      </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.</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="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="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="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>INSA-Lyon</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>Huawei</organization>
            </author>
            <date day="17" month="June" year="2025"/>
            <abstract>
              <t>   This document defines a new extensible notification structure,
   defined in YANG, for use in YANG-Push Notification messages 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 changed data was
   observed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-notif-envelope-02"/>
        </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>Huawei</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 I+D</organization>
            </author>
            <author fullname="Thomas Graf" initials="T." surname="Graf">
              <organization>Swisscom</organization>
            </author>
            <date day="27" month="June" year="2025"/>
            <abstract>
              <t>   Network platforms use Network Telemetry, such as YANG-Push, 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-08"/>
        </reference>
      </references>
    </references>
    <?line 710?>

<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-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>
]]></artwork>
        <t>Applying the first enclosing method, a provenance leaf at the top element (named "signature-string" in this case") would be included and produce the following output:</t>
        <artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<interfaces-state xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
    <signature-string>
0oRRowNjeG1sBGdlYzIua2V5ASag9lhAvzyFP5HP0nONaqTRxKmSqerrDS6C
QXJSK+5NdprzQZLf0QsHtAi2pxzbuDJDy9kZoy1JTvNaJmMxGTLdm4ktug==
    </signature-string>
    <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>
]]></artwork>
        <t>The second enclosing method would translate into a notification including the "provenance" element as follows:</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">
            <subscription-id>2147483648</subscription-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 a results as 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-string>
0oRRowNjeG1sBGdlYzIua2V5ASag9lhAWff+fMbfNChKUYZ52UTOBmAlYPFe4
vlZOLyZeW0CU7/2OutDeMCG28+m3rm58jqLjKbcueKLFq8qFJb4mvPY+Q==
  </provenance-string>
  <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 yang-provenance-metadata 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-annotation-pmd"
ypmd:provenance-string=
"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-state>
]]></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-state": {
    "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
      }
    }
  }
}
]]></artwork>
        <t>Applying the first enclosing method, a provenance leaf at the top element (named "provenance-string" in this case") would be included and produce the following output:</t>
        <artwork><![CDATA[
{
  "ietf-interfaces:interfaces-state" : {
    "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
      }
    },
    "provenance-string" :
    "0oRRowNjeG1sBGdlYzIua2V5ASag9lhAnC4dNl5VSxkVCv8IOaiIhD7ymVZJ
     8Ol1NFH0GZ7bhe+CrnLTOyPazKl2PK33ZqkUGwZo0HmlkPOiAb1okaCZIw=="
  }
}
]]></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": {
        "subscription-id": 2147483648,
        "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-state": {
        "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-string" :
    "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-state" : {
    "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-string" :
    "0oRRowNjeG1sBGdlYzIua2V5ASag9lhAM/Dx3HVc4GL91jmuU5nWgcmOPPVp
     ARLJkWo5wwQYvGFJpKMXTkjAtArPp8v6Sl1ZD1qHimKMhAoHLMHVxBtrcA=="
  }
}
]]></artwork>
      </section>
      <section numbered="false" anchor="cbor">
        <name>CBOR</name>
        <t>TBD, as the reference implementation evolves.</t>
      </section>
    </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.</t>
      <t>This document is based on work partially funded by the EU H2020 project SPIRS (grant 952622), and the EU Horizon Europe projects PRIVATEER (grant 101096110), HORSE (grant 101096342), MARE (grant 101191436), ACROSS (grant 101097122) and CYBERNEMO (grant 101168182).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
z+7J9Oy+XM8WsH3+nc337BsYn83lfLYK67NlvM+WMX8J0Mu4ny1lf7aU/9ky
AVAsoNml+EqyS/FFTgawuUKArSAF2ApioKSHxQNzBEHJO2torigQ5cp4VhwK
udR5ivY3/bNw62337vrt/s3O8bkXHI8OnszGbz++FF3tnIfNs6MX688/PumN
+OP9JDq5Op9deF9eha2LVxsbHz9fv3l++zFefzEOry/Og06vGV97+x+P0YOy
RdU/I//CSJxcwoR1vq4WNyYxQjJEc6PebNVbzSvkgyawwkfJC+bmFUsuuQkD
bWttw1W+ufQA1Cs6ecCa9+LKidPMfWwnixmMDfVr7iUVWGpPWWVXNKasGgvM
KqvUfAPLKvRNppaNiRKjy3q9uvllVZpviNmFyk0yq8S3G2f2+OaaaW6hBQab
W3CRpeOWXGTyuCXLbR+3TJlhlx/CfBPPKrnI2MsVW2T25YquiJZlpmCu6FLE
lJqH5vO1sui3dTmk9UZ9czVLMdvLitFVV1QywavDVyevX728arZO0rPhXbbz
LgwPj7e3wHQVvR6ujZstP9kfhI9vR0+utpv9qw+jo+f+IX+/09k6Wr8Zv3l3
ef6R9z6vvX17xG/ffORvPzz/+Oz8dYmS+bdcI7Y0VWEtt+xsQa21tDlsif/Q
610dHyghauksr09Vq2k8CLzG0Ev6AV62Ca8akwReIn3mFk1VdRRE0OB4Qg1c
jabs5TRkzR0G4miz1V7fZvuH3Ss6JyWnJcV6NMurylU1V6nnb4a+TFt9UwSA
Ki5RV0sU1berqLnK6Z5qaYlCWqSK/qASWqJ+VlA8q6icVZTNYjWzSMGsolqW
KpWV1MlKimQlFbJEecxXG6upgUU7rotLNyv7ION4stZ/cnva/3Q5DroXb2fb
W0drZ9vnraafynO/rj89f/3p+OAy+DKabrw7vQ12X/LHb98MttLPt+Goe/t6
37/Zmj4ZX773ti/8XX+0f+vf+Zf7nZx6+G+6IljTZxgl4ICN8TRqT1+WnKrT
MRutxkbuhMwfgZsfgZsfgZs/L3DzS/mq98qi83Tt4G7jxdv+5vOT3ean8fTN
VvRu2B+fX1y8nYgOO5cnL6/fxVu3t68/3Dw/ejl5dfr+6vpTJ+skF5Odm+1u
2Px40Pz8Ihi/Oh114hcnpy/e3j3Lkn5edD54wPafnV+WLyhdPTuoyYNj555E
wfhNHN7Q+Qp4rEIf5zbkvrgysrTZK+DMa7LMu2ivsudkr7KHb/Y3Tmsstc3X
9eYvQzymEi3WR5RF2ONiXQqP6SYY8OSCXG4hyX/upYE4FsG6GEdcUAweAxBI
f1ST95CLi5BFmB2e4NlaA1xF6/MJnV1G6qI0YbGRP4sGvvc87AMPpcDzK/Dc
woDOlRrgsWH6lt/DN+wFsPg6tkvHPHYvji+77OGQTtABKb3daj0yAh6Lx0nw
BZo9nOIpbapeyi4uj992rg4PL1Xl5npzfXe72VyH+i/OL7uH7ouNTWz4tHNp
P2/uNjc3tuF5Z//yvNt1ajxpAigEyf6HZ4eXZ4en53bN7Z3mTutRo/L/AOBb
FZ40wgAA

-->

</rfc>
