<?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-rfc2629 version 1.5.24 -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-pfeairheller-cesr-proof-00" category="info" tocInclude="true" sortRefs="true" symRefs="true" obsoletes="" updates="" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.0 -->
  <front>
    <title abbrev="CESR-PROOF">CESR Proof Signatures</title>
    <seriesInfo name="Internet-Draft" value="draft-pfeairheller-cesr-proof-00"/>
    <author initials="P." surname="Feairheller" fullname="Phil Feairheller">
      <organization>GLEIF</organization>
      <address>
        <email>Philip.Feairheller@gleif.org</email>
      </address>
    </author>
    <date year="2022" month="February" day="01"/>
    <area>TODO</area>
    <workgroup>TODO Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>CESR Proof Signatures are an extension to the Composable Event Streaming Representation <xref target="CESR" format="default"/> that provide transposable cryptographic signature attachments on self-addressing data (SAD) <xref target="SAID" format="default"/>. Any SAD, such as an Authentic Chained Data Container (ACDC) Verifiable Credential <xref target="ACDC" format="default"/> for example, may be signed with a CESR Proof Signature and streamed along with any other CESR content.  In addition, a signed SAD can be embedded inside another SAD and the CESR proof signature attachment can be transposed across envelope boundaries and streamed without losing any cryptographic integrity.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/WebOfTrust/ietf-cesr-proof"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>Composable Event Streaming Representation (CESR) is a dual text-binary encoding format that has the unique property of text-binary concatenation composability. The CESR specification not only provides the definition of the streaming format but also the attachment codes needed for differentiating the types of cryptographic material (such as signatures) used as attachments on all event types for the Key Event Receipt Infrastructure (KERI) <xref target="KERI" format="default"/>. While all KERI event messages are self-addressing data (SAD), there is a broad class of SADs that are not KERI events but that require signature attachments. ACDC Verifiable credentials fit into this class of SADs. With more complex data structures represented as SADs, such as verifiable credentials, there is a need to provide signature attachments on nested subsets of SADs. Similar to indices in indexed controller signatures in KERI that specify the location of the public key they represent, nested SAD signatures need a path mechanism to specify the exact location of the nested content that they are signing. CESR Proof Signatures provide this mechanism with the CESR SAD Path Language and new CESR attachment codes, detailed in this specification.</t>
      <section anchor="streamable-sads" numbered="true" toc="default">
        <name>Streamable SADs</name>
        <t>A primary goal of CESR Proof Signatures is to allow any signed self-addressing data (SAD) to be streamed inline with any other CESR content.  In support of that goal, CESR Proof Signatures leverage CESR attachments to define a signature scheme that can be attached to any SAD content serialized as JSON <xref target="JSON" format="default"/>, MessagePack <xref target="MGPK" format="default"/> or CBOR <xref target="CBOR" format="default"/>.  Using this capability, SADs signed with CESR Proof Signatures can be streamed inline in either the text (T) or binary (B) domain alongside any other KERI event message over, for example TCP or UDP.  In addition, signed SADs can be transported via HTTP as a CESR HTTP Request (todo: reference needed).</t>
      </section>
      <section anchor="nested-partial-signatures" numbered="true" toc="default">
        <name>Nested Partial Signatures</name>
        <t>CESR Proof Signatures can be used to sign as many portions of a SAD as needed, including the entire SAD. The signed subsets are either SADs themselves or the self-addressing identifer (SAID) of a SAD that will be provided out of band.  A new CESR count code is included with this specification to allow for multiple signatures on nested portions of a SAD to be grouped together under one attachment.  By including a SAD Path in the new CESR attachment for grouping signatures, the entire group of signatures can be transposed across envelope boundaries by changing only the root path of the group attachment code.</t>
      </section>
      <section anchor="transposable-signature-attachments" numbered="true" toc="default">
        <name>Transposable Signature Attachments</name>
        <t>There are several events in KERI that can contain context specific embedded self-addressing data (SADs). Exchange events (<tt>exn</tt>) for peer-to-peer communication and Replay events (<tt>rpy</tt>) for responding to data requests as well as Expose events (<tt>exp</tt>) for providing anchored data are all examples of KERI events that contain embedded SADs as part of their payload. If the SAD payload for one of these event types is signed with a CESR attachment, the resulting structure is not embeddable in one of the serializations of map or dictionary like data models. (JSON, CBOR, MessagePack) supported by CESR. To solve this problem, CESR Proof Signatures are transposable across envelope boundaries in that a single SAD signature or an entire signature group on any given SAD can be transposed to attach to the end of an enveloping SAD without losing its meaning. This unique feature is provided by the SAD Path language used in either a SAD signature or the root path designation in the outermost attachment code of any SAD signature group.  These paths can be updated to point to the embedded location of the signed SAD inside the envelope. Protocols for verifiable credential issuance and proof presentation can be defined using this capability to embed the same verifiable credential SAD at and location in an enveloping <tt>exn</tt> message as appropriate for the protocol without having to define a unique signature scheme for each protocol.</t>
      </section>
    </section>
    <section anchor="cesr-sad-path-language" numbered="true" toc="default">
      <name>CESR SAD Path Language</name>
      <t>CESR Proof Signatures defines a SAD Path Language to be used in signature attachments for specifying the location of the SAD content within the signed SAD that a signature attachment is verifying. This path language has a more limited scope than alternatives like JSONPtr <xref target="RFC6901" format="default"/> or JSONPath <xref target="JSONPath" format="default"/> and is therefore simpler and more compact when encoding in CESR signature attachments. SADs in CESR and therefore CESR Proof Signatures require static field ordering of all maps. The SAD path language takes advantage of this feature to allow for a Base64 compatible syntax into SADs even when a SAD uses non-Base64 compatible characters for field labels.</t>
      <section anchor="description-and-usage" numbered="true" toc="default">
        <name>Description and Usage</name>
        <t>The SAD path language contains a single reserved character, the <tt>-</tt> (dash) character. Similar to the <tt>/</tt> (forward slack) character in URLs, the <tt>-</tt> in the SAD Path Language is the path separator between components of the path. The <tt>-</tt> was selected because it is a one of the valid Base64 characters.</t>
        <t>The simplest path in the SAD Path Language is a single <tt>-</tt> character representing the root path which specifies the top level of the SAD content.</t>
        <t>Root Path</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
 -
]]></artwork>
        <t>After the root path, path components follow, delimited by the <tt>-</tt> character. Path components may be integer indices into field labels or arrays or may be full field labels. No wildcards are supported by the SAD Path Language.</t>
        <t>An example SAD Path using only labels that resolve to map contexts follows:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
-a-personal
]]></artwork>
        <t>In addition, integers can be specified and their meaning is dependent on the context of the SAD.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
-1-12-personal-0
]]></artwork>
        <t>The rules for a SAD Path Language processor are simple. If a path consists of only a single <tt>-</tt>, it represents the root of the SAD and therefore the entire SAD content. Following any <tt>-</tt> character is a path component that points to a field if the current context is a map in the SAD or is an index of an element if the current context is an array. It is an error for any sub-path to resolve to a value this is not a map or an array.  Any trailing <tt>-</tt> character in a SAD Path can be ignored.</t>
        <t>The root context (after the initial <tt>-</tt>) is always a map. Therefore, the first path component represents a field of that map. The SAD is traversed following the path components as field labels or indexes in arrays until the end of the path is reached. The value at the end of the path is then returned as the resolution of the SAD Path. If the current context is a map and the path component is an integer, the path component represents an index into fields of the map. This feature takes advantage of the static field ordering of SADs and is used against any SAD that contains field labels that use non-Base64 compatible characters or the <tt>-</tt> character. Any combination of integer and field label path components can be used when the current context is a map. All path components <bcp14>MUST</bcp14> be an integer when the current context is an array.</t>
      </section>
      <section anchor="cesr-encoding-for-sad-path-language" numbered="true" toc="default">
        <name>CESR Encoding for SAD Path Language</name>
        <t>SAD Paths are variable raw size primitives that require CESR variable size codes.  We will use the <tt>A</tt> small variable size code for SAD Paths which has 3 code entries being added to the Master Code Table, <tt>4A##</tt>, <tt>5A##</tt> and <tt>6A##</tt> for SAD Paths with 0 lead bytes, 1 lead byte and 2 lead bytes respecively.  This small variable size code is reserved for text values that only contain valid Base64 characters.  These codes are detailed in Table 2 below.  The selector not only encodes the table but also implicitly encodes the number of lead bytes. The variable size is measured in quadlets of 4 characters each in the T domain and equivalently in triplets of 3 bytes each in the B domain. Thus computing the number of characters when parsing or off-loading in the T domain means multiplying the variable size by 4. Computing the number of bytes when parsing or off-loading in the B domain means multiplying the variable size by 3. The two Base64 size characters provide value lengths in quadlets/triplets from 0 to 4095 (64**2 -1). This corresponds to path lengths of up to 16,380 characters (4095 * 4) or 12,285 bytes (4095 * 3).</t>
      </section>
      <section anchor="sad-path-examples" numbered="true" toc="default">
        <name>SAD Path Examples</name>
        <t>This section provides some more examples for SAD Path expressions. The examples are based on Authentic Chained Data
Containers (ACDCs) representing verifiable credentials.</t>
        <sourcecode type="json"><![CDATA[
{
  "v": "ACDC10JSON00011c_",
  "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
  "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
  "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
  "a": {
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "personal": {
      "legalName": "John Doe",
      "home-city": "Durham"
    }
  },
  "p": [
    {
      "qualifiedIssuerCredential": {
        "d": "EIl3MORH3dCdoFOLe71iheqcywJcnjtJtQIYPvAu6DZA",
        "i": "Et2DOOu4ivLsjpv89vgv6auPntSLx4CvOhGUxMhxPS24"
      }
    },
    {
      "certifiedLender": {
        "d": "EglG9JLG6UhkLrrv012NPuLEc1F3ne5vPH_sHGP_QPN0",
        "i": "E8YrUcVIqrMtDJHMHDde7LHsrBOpvN38PLKe_JCDzVrA"
      }
    }
  ]
}
]]></sourcecode>
        <t>Figure 1. Example ACDC Credential SAD</t>
        <t>The examples in Table 1 represent all the features of the SAD Path language when referring to the SAD in Figure 1. along with the CESR text encoding.</t>
        <table align="center">
          <thead>
            <tr>
              <th align="left">SAD Path</th>
              <th align="left">Result</th>
              <th align="left">CESR T Domain Encoding</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-</td>
              <td align="left">The root of the SAD</td>
              <td align="left">6AABAAA-</td>
            </tr>
            <tr>
              <td align="left">-a-personal</td>
              <td align="left">The personal map of the a field</td>
              <td align="left">4AADA-a-personal</td>
            </tr>
            <tr>
              <td align="left">-4-5</td>
              <td align="left">The personal map of the a field</td>
              <td align="left">4AAB-4-5</td>
            </tr>
            <tr>
              <td align="left">-4-5-legalName</td>
              <td align="left">"John Doe"</td>
              <td align="left">5AAEAA-4-5-legalName</td>
            </tr>
            <tr>
              <td align="left">-a-personal-1</td>
              <td align="left">"Durham"</td>
              <td align="left">6AAEAAA-a-personal-1</td>
            </tr>
            <tr>
              <td align="left">-p-1</td>
              <td align="left">The second element in the p array</td>
              <td align="left">4AAB-p-1</td>
            </tr>
            <tr>
              <td align="left">-a-LEI</td>
              <td align="left">"254900OPPU84GM83MG36"</td>
              <td align="left">5AACAA-a-LEI</td>
            </tr>
            <tr>
              <td align="left">-p-0-0-d</td>
              <td align="left">"EIl3MORH...6DZA"</td>
              <td align="left">4AAC-p-0-0-d</td>
            </tr>
            <tr>
              <td align="left">-p-0-certifiedLender-i</td>
              <td align="left">"E8YrUcVI...zVrA"</td>
              <td align="left">5AAGAA-p-0-certifiedLender-i</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="alternative-pathing-query-languages" numbered="true" toc="default">
        <name>Alternative Pathing / Query Languages</name>
        <t>The SAD Path language was chosen over alternatives such as JSONPtr and JSONPath in order to create a more compact representation of a pathing language in the text domain.  Many of the features of the alternatives are not needed for CESR Proof Signatures.  The only token in the language (<tt>-</tt>) is Base64 compatible.  The use of field indices in SADs (which require staticly ordered fields) allows for Base64 compatible pathing even when the field labels of the target SAD are not Base64 compatible.  The language accomplishes the goal of uniquely locating any path in a SAD using minimally sufficient means in a manner that allows it to be embedded in a CESR attachment as Base64.  Alternative syntaxes would need to be Base64 encoded to be used in a CESR attachment in the text domain thus incurring the additional bandwidth cost of such an encoding.</t>
      </section>
    </section>
    <section anchor="cesr-attachments" numbered="true" toc="default">
      <name>CESR Attachments</name>
      <t>This specification adds 2 <em>Counter Four Character Codes</em> to the Master Code Table and uses 1 <em>Small Variable Raw Size Code Type</em> and 1 <em>Large Variable Raw Size Code Type</em> from the Master Code Table (each of which have 3 code entries).</t>
      <section anchor="counter-four-character-codes" numbered="true" toc="default">
        <name>Counter Four Character Codes</name>
        <t>The SAD Path Signature counter code is represented by the four character code <tt>-J##</tt>.  The first two characters reserve this code for attaching the couplet (SAD Path, Signature Group).  The second two characters represent the count in hexidecimal of SAD path signatures are in this attachment.  The path is attached in the T domain using the codes described in the next section.  The signature group is from either a transferable identifier or a non-transferable identifier and therefore attached using the CESR codes <tt>-F##</tt> or <tt>-C##</tt> respectively as described in the CESR Specification <xref target="CESR" format="default"/>.</t>
      </section>
      <section anchor="variable-size-codes" numbered="true" toc="default">
        <name>Variable Size Codes</name>
        <t>The code <tt>A</tt> is reserved as a Small Variable Raw Size Code and <tt>AAA</tt> as a Large Variable Raw Size Code for Base64 URL safe strings.  SAD Paths are Base64 URL safe strings and so leverage these codes when encoded in the CESR T domain.  To account for the variable nature of path strings, the variable size types reserve 3 codes each with prefix indicators of lead byte size used for adjusting the T domain encoding to multiples of 4 characters and the B domain to multiples of 3 bytes.  For the <em>Small</em> codes the prefix indicators are <tt>4</tt>, <tt>5</tt> and <tt>6</tt> representing 0, 1 and 2 lead bytes respectively and for <em>Large</em> codes the prefix indicators are <tt>7</tt>, <tt>8</tt>, and <tt>9</tt> representing 0, 1 and 2 lead bytes respectively.  The resulting 6 code entries are displayed in the table that follows.</t>
        <t>The additions to the Master Code Table of CESR is shown below:</t>
        <table align="center">
          <thead>
            <tr>
              <th align="center">Code</th>
              <th align="left">Description</th>
              <th align="center">Code Length</th>
              <th align="center">Count or Index Length</th>
              <th align="center">Total Length</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center"> </td>
              <td align="left">
                <strong>Counter Four Character Codes</strong></td>
              <td align="center"> </td>
              <td align="center"> </td>
              <td align="center"> </td>
            </tr>
            <tr>
              <td align="center">-J##</td>
              <td align="left">Count of attached qualified Base64 SAD path sig groups path+sig group (trans or non-trans)</td>
              <td align="center">2</td>
              <td align="center">2</td>
              <td align="center">4</td>
            </tr>
            <tr>
              <td align="center">-K##</td>
              <td align="left">Count of attached qualified Base64 SAD Path groups</td>
              <td align="center">2</td>
              <td align="center">2</td>
              <td align="center">4</td>
            </tr>
            <tr>
              <td align="center"> </td>
              <td align="left">
                <strong>Small Variable Raw Size Code</strong></td>
              <td align="center"> </td>
              <td align="center"> </td>
              <td align="center"> </td>
            </tr>
            <tr>
              <td align="center">4A##</td>
              <td align="left">String Base64 Only with 0 Lead Bytes</td>
              <td align="center">2</td>
              <td align="center">2</td>
              <td align="center">4</td>
            </tr>
            <tr>
              <td align="center">5A##</td>
              <td align="left">String Base64 Only with 1 Lead Byte</td>
              <td align="center">2</td>
              <td align="center">2</td>
              <td align="center">4</td>
            </tr>
            <tr>
              <td align="center">6A##</td>
              <td align="left">String Base64 Only with 2 Lead Bytes</td>
              <td align="center">2</td>
              <td align="center">2</td>
              <td align="center">4</td>
            </tr>
            <tr>
              <td align="center"> </td>
              <td align="left">
                <strong>Large Variable Raw Size Code</strong></td>
              <td align="center"> </td>
              <td align="center"> </td>
              <td align="center"> </td>
            </tr>
            <tr>
              <td align="center">7AAA####</td>
              <td align="left">String Base64 Only with 0 Lead Bytes</td>
              <td align="center">4</td>
              <td align="center">4</td>
              <td align="center">8</td>
            </tr>
            <tr>
              <td align="center">8AAA####</td>
              <td align="left">String Base64 Only with 1 Lead Byte</td>
              <td align="center">4</td>
              <td align="center">4</td>
              <td align="center">8</td>
            </tr>
            <tr>
              <td align="center">9AAA####</td>
              <td align="left">String Base64 Only with 2 Lead Bytes</td>
              <td align="center">4</td>
              <td align="center">4</td>
              <td align="center">8</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="cesr-signature-attachments" numbered="true" toc="default">
        <name>CESR Signature Attachments</name>
        <t>CESR defines several counter codes for attaching signatures to serialized CESR event messages.  For KERI event messages, the signatures in the attachments apply to the entire serialized content of the KERI event message.  As all KERI event messages are SADs, the same rules for signing a KERI event message applies to signing SADs for CESR Proof Signatures.  A brief review of CESR signatures for transferable and non-transferable identifiers follows.  In addition, signatures on nested content must be specified.</t>
        <section anchor="signing-sad-content" numbered="true" toc="default">
          <name>Signing SAD Content</name>
          <t>Signatures on SAD content require signing the serialized encoding format of the data ensuring that the signature applies to the data over the wire.  The serialization for any SAD is identified in the version string which can be found in the <tt>v</tt> field of any KERI event message or ACDC credential.   An example version string follows:</t>
          <sourcecode type="json"><![CDATA[
 {
     "v": "KERI10JSON00011c_"
 }
]]></sourcecode>
          <t>where KERI is the identifier of KERI events followed by the hexidecimal major and minor version code and then the serialized encoding format of the event, JSON in this case.  KERI and ACDC support JSON, MessagePack and CBOR currently.  Field ordering is important when apply cryptographic signatures and all serialized encoding formats must support static field ordering.  Serializing a SAD starts with reading the version string from the SAD field (<tt>v</tt> for KERI and ACDC events message) to determine the serialized encoding format of the message.  The serialized encoding format is used to generate the SAID at creation and can not be changed.  The event map is serialized using a library that ensures the static field order perserved across serialization and deserialization and the private keys are used to generate the qualified cryptographic material that represents the signatures over the SAD content.</t>
          <t>The same serialized encoding format must be used when nesting a SAD in another SAD.  For example, an ACDC credential that was issued using JSON can only be embedded and presented in a KERI <tt>exn</tt> presentation event message that uses JSON as its serialized encoding format.  That same credential can not be transmitted using CBOR or MessagePack.  Controllers can rely on this restriction when verifying signatures of embedded SADs.  When processing the signature attachments and resolving the data at a given SAD path, the serialization of the outter most SAD can be used at any depth of the traversal.  New verison string processing does not need to occur at nested paths.  However, if credential signature verification is pipelined and processed in parallel to the event message such that the event message is not avaiable, the version string of the nested SAD will still be valid and can be used if needed.</t>
          <t>Each attached signature is accompanied by a SAD Path that indicates the content that is signed.  The path must resolve within the enveloping SAD to either a nested SAD (map) or a SAID (string) of an externally provided SAD.  This of course, includes a root path that resolves to the enveloping SAD itself.</t>
        </section>
        <section anchor="signatures-with-non-transferable-identifiers" numbered="true" toc="default">
          <name>Signatures with Non-Transferable Identifiers</name>
          <t>Non-transferable identifiers only ever have one public key.  In addition, the identifier prefix is identical to the qualified cryptographic material of the public key and therefore no KEL is required to validate the signature of a non-transferable identifier <xref target="KERI" format="default"/>.  The attachment code for witness receipt couplets, used for CESR Proof Signatures,  takes this into account.  The four character couner code <tt>-C##</tt> is used for non-transferable identifiers and contains the signing identfier prefix and the signature <xref target="CESR" format="default"/>.  Since the verification key can be extracted from the identifier prefix and the identifier can not be rotated, all that is required to validate the signature is the identifier prefix, the data signed and the signature.</t>
        </section>
        <section anchor="signatures-with-transferable-identifiers" numbered="true" toc="default">
          <name>Signatures with Transferable Identifiers</name>
          <t>Transferable identifiers require full KEL resolution and verfication to determine the correct public key used to sign some content <xref target="KERI" format="default"/>.  In addition, the attachment code used for transferable identifiers, <tt>-F##</tt> must specify the location in the KEL at which point the signature was generated <xref target="CESR" format="default"/>.  To accomplish this, this counter code includes the identifier prefix, the sequence number of the event in the KEL, the digest of the event in the KEL and the indexed signatures (transferable identifiers support multiple public/private keys and require index signatures).  Using all the values, one can verify the signature(s) by retrieving the KEL of the identifier prefix and determine the key state at the sequence number along with validating the digest of the event against the actual event.  Then using the key(s) at the determined key state, validate the signature(s).</t>
        </section>
      </section>
      <section anchor="additional-count-codes" numbered="true" toc="default">
        <name>Additional Count Codes</name>
        <t>This specification adds two Counter Four Character Codes to the CESR Master Code Table for attaching and grouping transposable signatures on SAD and nested SAD content.  The first code (<tt>-J##</tt>) is reserved for attaching a SAD path and the associated signatures on the content at the resolution of the SAD Path (either a SAD or its associated SAID).  The second reserved code (<tt>-K##</tt>) is for grouping all SAD Path signature groups under a root path for a given SAD.  The root path in the second grouping code provides signature attachment transposability for embedding SAD content in other messages.</t>
        <section anchor="sad-path-signature-group" numbered="true" toc="default">
          <name>SAD Path Signature Group</name>
          <t>The SAD Path Signature Group provides a four character counter code, <tt>-J##</tt>, for attaching an encoded variable length SAD Path along with either a transferable index signature group or non-transferable identifer receipt couplets.  The SAD Path identifies the content that this attachment is signing.  The path must resolve to either a nested SAD (map) or a SAID (string) of an externally provided SAD within the context of the SAD and root path against which this attachment is applied.  Using the following ACDC SAD embedded in a KERI <tt>exn</tt> message:</t>
          <sourcecode type="json"><![CDATA[
{
  "v": "KERI10JSON00011c_",
  "t": "exn",
  "dt": "2020-08-22T17:50:12.988921+00:00",
  "r": "/credential/offer",
  "a": {
    "credential": { // SIGNATURE TARGET OF TRANSPOSED SAD PATH GROUP
      "v": "ACDC10JSON00011c_",
      "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
      "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
      "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
      "a": {
        "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
        "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
        "dt": "2021-06-09T17:35:54.169967+00:00",
        "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
        "LEI": "254900OPPU84GM83MG36",
        "personal": {
          "legalName": "John Doe",
          "home": "Durham"
        }
      }
    }
  }
}
]]></sourcecode>
          <t>the following signature applies to the nested <tt>credential</tt> SAD signed by a transferable identifier using the transferable index signature group. The example is annotated with spaces and line feeds for clarity and an accompanied table is provided with comments.</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
-JAB
6AAEAAA-a-credential
-FAB
E_T2_p83_gRSuAYvGhqV3S0JzYEF2dIa-OCPLbIhBO7Y
-EAB0AAAAAAAAAAAAAAAAAAAAAAB
EwmQtlcszNoEIDfqD-Zih3N6o5B3humRKvBBln2juTEM
-AAD
AA5267UlFg1jHee4Dauht77SzGl8WUC_0oimYG5If3SdIOSzWM8Qs9SFajAilQcozXJVnbkY5stG_K4NbKdNB4AQ
ABBgeqntZW3Gu4HL0h3odYz6LaZ_SMfmITL-Btoq_7OZFe3L16jmOe49Ur108wH7mnBaq2E_0U0N0c5vgrJtDpAQ
ACTD7NDX93ZGTkZBBuSeSGsAQ7u0hngpNTZTK_Um7rUZGnLRNJvo5oOnnC1J2iBQHuxoq8PyjdT3BHS2LiPrs2Cg
]]></artwork>
          <table align="center">
            <thead>
              <tr>
                <th align="left">code</th>
                <th align="left">description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">-JAB</td>
                <td align="left">SAD path signature group counter code 1 following the group</td>
              </tr>
              <tr>
                <td align="left">6AAEAAA-a-credential</td>
                <td align="left">encoded SAD path designation</td>
              </tr>
              <tr>
                <td align="left">-FAB</td>
                <td align="left">Trans Indexed Sig Groups counter code 1 following group</td>
              </tr>
              <tr>
                <td align="left">E_T2_p83_gRSuAYvGhqV3S0JzYEF2dIa-OCPLbIhBO7Y</td>
                <td align="left">trans prefix of signer for sigs</td>
              </tr>
              <tr>
                <td align="left">-EAB0AAAAAAAAAAAAAAAAAAAAAAB</td>
                <td align="left">sequence number of est event of signer's public keys for sigs</td>
              </tr>
              <tr>
                <td align="left">EwmQtlcszNoEIDfqD-Zih3N6o5B3humRKvBBln2juTEM</td>
                <td align="left">digest of est event of signer's public keys for sigs</td>
              </tr>
              <tr>
                <td align="left">-AAD</td>
                <td align="left">Controller Indexed Sigs counter code 3 following sigs</td>
              </tr>
              <tr>
                <td align="left">AA5267...4AQ</td>
                <td align="left">sig 0</td>
              </tr>
              <tr>
                <td align="left">ABBgeq...pAQ</td>
                <td align="left">sig 1</td>
              </tr>
              <tr>
                <td align="left">ACTD7N...2Cg</td>
                <td align="left">sig 2</td>
              </tr>
            </tbody>
          </table>
          <t>The next example demostrates the use of a non-transferable identifier to sign SAD content.  In this example, the entire nested SAD located at the <tt>a</tt> field is signed by the non-transferable identfier:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
-JAB
5AABAA-a
-CAB
BmMfUwIOywRkyc5GyQXfgDA4UOAMvjvnXcaK9G939ArM
0BT7b5PzUBmts-lblgOBzdThIQjKCbq8gMinhymgr4_dD0JyfN6CjZhsOqqUYFmRhABQ-vPywggLATxBDnqQ3aBg
]]></artwork>
          <table align="center">
            <thead>
              <tr>
                <th align="left">code</th>
                <th align="left">description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">-JAB</td>
                <td align="left">SAD path signature group counter code 1 following the group</td>
              </tr>
              <tr>
                <td align="left">5AABAA-a</td>
                <td align="left">encoded SAD path designation</td>
              </tr>
              <tr>
                <td align="left">-CAB</td>
                <td align="left">NonTrans witness receipt couplet</td>
              </tr>
              <tr>
                <td align="left">BmMfUwIOywRkyc5GyQXfgDA4UOAMvjvnXcaK9G939ArM</td>
                <td align="left">non-trans prefix of signer of sig</td>
              </tr>
              <tr>
                <td align="left">0BT7b5... aBg</td>
                <td align="left">sig</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="sad-path-groups" numbered="true" toc="default">
          <name>SAD Path Groups</name>
          <t>The SAD Path Group provides a four character counter code, <tt>-K##</tt>, for attaching encoded variable length <strong>root</strong> SAD Path along with 1 or more SAD Path Signature Groups.  The root SAD Path identifies the root context against which the paths in all included SAD Path Signature Groups are resolved.  When parsing a SAD Path Group, if the root path is the single <tt>-</tt> character, all SAD paths are treated as absolute paths.  Otherwise, the root path is prepended to the SAD paths in each of the SAD Path Signature Groups.  Given the following snippet of a SAD Path Group:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
-KAB6AABAAA--JAB5AABAA-a...
]]></artwork>
          <t>The root path is the single <tt>-</tt> character meaning that all subsequent SAD Paths are absolute and therefore the first path is resolved as the <tt>a</tt> field of the root map of the SAD as seen in the following example:</t>
          <sourcecode type="json"><![CDATA[
{
  "v": "ACDC10JSON00011c_",
  "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
  "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
  "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
  "a": {  // SIGNATURE TARGET OF SAD PATH GROUP
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "personal": {
      "legalName": "John Doe",
      "city": "Durham"
    }
  }
}
]]></sourcecode>
          <section anchor="transposable-signature-attachments-1" numbered="true" toc="default">
            <name>Transposable Signature Attachments</name>
            <t>To support nesting of signed SAD content in other SAD content the root path of SAD Path Groups or the path of a SAD Path Signature Group provides transposability of CESR SAD signatures such that a single SAD Path Signature Group or an entire SAD Path Group attachment can be transposed across envelope boundaries by updating the single path or root path to indicate the new location.  Extending the example above, the SAD content is now embedded in a KERI <tt>exn</tt> event message as follows:</t>
            <sourcecode type="json"><![CDATA[
{
  "v": "KERI10JSON00011c_",
  "t": "exn",
  "dt": "2020-08-22T17:50:12.988921+00:00"
  "r": "/credential/offer"
  "a": {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": { // SIGNATURE TARGET OF TRANSPOSED SAD PATH GROUP
      "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
      "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
      "dt": "2021-06-09T17:35:54.169967+00:00",
      "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
      "LEI": "254900OPPU84GM83MG36",
      "personal": {
        "legalName": "John Doe",
        "city": "Durham"
      }
    }
  }
}
]]></sourcecode>
            <t>The same signature gets transposed to the outer <tt>exn</tt> SAD by updating the root path of the <tt>-K##</tt> attachment:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
-KAB5AABAA-a-JAB5AABAA-a...
]]></artwork>
            <t>Now the SAD Path of the first signed SAD content resolves to the <tt>a</tt> field of the <tt>a</tt> field of the streamed <tt>exn</tt> message</t>
          </section>
        </section>
      </section>
      <section anchor="small-variable-raw-size-sad-path-code" numbered="true" toc="default">
        <name>Small Variable Raw Size SAD Path Code</name>
        <t>The small variable raw side code reserved for SAD Path encoding is <tt>A</tt> which results in the addition of 3 entries (<tt>4A##</tt>, <tt>5A##</tt> and <tt>6A##</tt>) in the Master Code Table for each lead byte configuration.  These codes and their use are discussed in detail in <eref target="">CESR Encoding for SAD Path Language</eref>.</t>
      </section>
    </section>
    <section anchor="nested-partial-signatures-1" numbered="true" toc="default">
      <name>Nested Partial Signatures</name>
      <t>Additional signatures on nested content can be included in a SAD Path Group and are applied to the serialized data at the resolution of a SAD path in a SAD.  Signatures can be applied to the SAID or an entire nested SAD.   When verifying a CESR Proof Signature, the content at the resolution of the SAD path is the data that was signed.  The choice to sign a SAID or the full SAD effects how the data may be used in presentations and the rules for verifying the signature.</t>
      <section anchor="signing-nested-sads" numbered="true" toc="default">
        <name>Signing Nested SADs</name>
        <t>When signing nested SAD content, the serialization used at the time of signing is the only serialization that can be used when presenting the signed data.  When transposing the signatures and nesting the signed data, the enveloping SAD must use the same serialization that was used to create the signatures.  This is to ensure that all signatures apply to the data over the wire and not a transformation of that data.  The serialization can be determined from the version field (<tt>v</tt>) of the nested SAD or any parent of the nested SAD as they are guaranteed to be identical.  Consider the following ACDC Credential SAD:</t>
        <sourcecode type="json"><![CDATA[
{
  "v": "ACDC10JSON00011c_",
  "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
  "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
  "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
  "a": {   // SIGNATURE TARGET OF SAD PATH GROUP
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "personal": {
      "d": "E2X8OLaLnM0XRQEYgM5UV3bZmWg3UUn7CP4SoKkvsl-s",
        "first": "John",
        "last": "Doe"
    }
  }
}
]]></sourcecode>
        <t>To sign the SAD located at the path <tt>-a</tt>, JSON serialization would be used because the SAD at that path does not have a version field so the version field of its parent is used.  The serialization rules (spacing, field ordering, etc) for a SAD would be used for the SAD and the serialization encoding format and the signature would be applied to the bytes of the JSON for that map.  Any presentation of the signed data must always include the fully nested SAD.  The only valid nesting of this credential would be as follows:</t>
        <sourcecode type="json"><![CDATA[
{
  "v": "KERI10JSON00011c_",
  "t": "exn",
  "dt": "2020-08-22T17:50:12.988921+00:00"
  "r": "/credential/apply"
  "a": {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": {   // FULL SAD MUST BE PRESENT
      "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
      "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
      "dt": "2021-06-09T17:35:54.169967+00:00",
      "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
      "LEI": "254900OPPU84GM83MG36",
      "legalName": {
        "d": "E2X8OLaLnM0XRQEYgM5UV3bZmWg3UUn7CP4SoKkvsl-s",
        "first": "John",
        "last": "Doe"
      }
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="signing-saids" numbered="true" toc="default">
        <name>Signing SAIDs</name>
        <t>Applying signatures to a SAD with SAIDs in place of fully expanded nested SAD content enables compact credentials for domains with bandwidth restrictions such as IoT.  Consider the following fully expanded credential:</t>
        <sourcecode type="json"><![CDATA[
{
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": {
      "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
      "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
      "dt": "2021-06-09T17:35:54.169967+00:00",
      "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
      "LEI": "254900OPPU84GM83MG36",
      "legalName": {
        "d": "E2X8OLaLnM0XRQEYgM5UV3bZmWg3UUn7CP4SoKkvsl-s",
        "n": "sKHtYSiCdlibuLDS2PTJg1AZXtPhaySZ9O3DoKrRXWY",
        "first": "John
        "middle": "William"
        "last": "Doe"
      },
      "address": {
        "d": "E-0luqYSg6cPcMFmhiAz8VBQObZLmTQPrgsr7Z1j6CA4",
        "n": "XiSoVDNvqV8ldofPyTVqQ-EtVPlkIIQTln9Ai0yI05M",
        "street": "123 Main St",
        "city": "Salt Lake City",
        "state": "Utah",
        "zipcode": "84157"
      },
      "phone": {
        "d": "E6lty8H2sA_1acq8zg89_kqF194DbF1cDpwA7UPtwjPQ",
        "n": "_XKNVntbcIjp12DmsAGhv-R7JRwuzjD6KCHC7Fw3zvU"
        "mobile": "555-121-3434",
        "home": "555-121-3435",
        "work": "555-121-3436",
        "fax": "555-121-3437"
      }
    }
  }
}
]]></sourcecode>
        <t>The three nested blocks of the <tt>a</tt> block <tt>legalName</tt>, <tt>address</tt> and <tt>phone</tt> are SADs with a SAID in the <tt>d</tt> field and are candidates for SAID replacement in an issued credential.  A compact credential can be created and signed by replacing those three nested blocks with the SAID of each nested SAD.  The schema for this verifiable credential would need to specify conditional subschema for the field labels at each nesting location that requires the full schema of the nested SAD or a string for the SAID.  The commitment to a SAID in place of a SAD contains nearly the same cryptographic integrity as a commitment to the SAD itself since the SAID is the qualified cryptographic material of a digest of the SAD.  The same credential could be converted to a compact credential containing the SAIDs of each nested block and signed as follows:</t>
        <sourcecode type="json"><![CDATA[
{
   "v": "ACDC10JSON00011c_",
   "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
   "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
   "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
   "a": {
     "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
     "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
     "dt": "2021-06-09T17:35:54.169967+00:00",
     "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
     "LEI": "254900OPPU84GM83MG36",
     "legalName": "E2X8OLaLnM0XRQEYgM5UV3bZmWg3UUn7CP4SoKkvsl-s",
     "address": "E-0luqYSg6cPcMFmhiAz8VBQObZLmTQPrgsr7Z1j6CA4",
     "phone": "E6lty8H2sA_1acq8zg89_kqF194DbF1cDpwA7UPtwjPQ"
   }
}
]]></sourcecode>
        <t>It is important to note that if this version of the credential is the one issued to the holder and the signature over the entire credential is on the serialized data of this version of the credential it is the only version that can be presented.  The full SAD data of the three nested blocks would be delivered out of band from the signed credential.  The top level schema would describe the blocks with conditional subschema for each section.  The credential signature becomes a cryptographic commitment to the contents of the overall credential as well as the content of each of the blocks and will still validate the presented credential with significantly less bandwidth.</t>
        <t>With this approach, credential presentation request and exchange protocols can be created that modify the schema with the conditional subschema, removing the conditions that allow for SAIDs in place of the required (or presented) nested blocks.  The modified schema can be used in such a protocol to indicate the required sections to be delivered out of bounds or as a commitment to provide the nested blocks after the crendential presentation has occurred.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions" numbered="true" toc="default">
      <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" format="default"/> <xref target="RFC8174" format="default"/> when, and only when, they
appear in all capitals, as shown here.</t>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>The Internet Assigned Numbers Authority (IANA) is a standards organization that oversees global IP address allocation, autonomous system number allocation, root zone management in the Domain Name System (DNS), media types, and other Internet Protocol-related symbols and Internet numbers.</t>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="ACDC" target="https://datatracker.ietf.org/doc/draft-ssmith-acdc/">
          <front>
            <title>Authentic Data Chained Containers</title>
            <author initials="S." surname="Smith" fullname="Samuel M. Smith">
              <organization>ProSapien LLC</organization>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="CESR" target="https://datatracker.ietf.org/doc/draft-ssmith-cesr/">
          <front>
            <title>Composable Event Streaming Representation (CESR)</title>
            <author initials="S." surname="Smith" fullname="Samuel M. Smith">
              <organization>ProSapien LLC</organization>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="SAID" target="https://datatracker.ietf.org/doc/draft-ssmith-said/">
          <front>
            <title>Self-Addressing IDentifier (SAID)</title>
            <author initials="S." surname="Smith" fullname="Samuel M. Smith">
              <organization>ProSapien LLC</organization>
            </author>
            <date year="2021"/>
          </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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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>
        <name>Informative References</name>
        <reference anchor="KERI" target="https://arxiv.org/abs/1907.02143">
          <front>
            <title>Key Event Receipt Infrastructure (KERI)</title>
            <author initials="S." surname="Smith" fullname="Samuel M. Smith">
              <organization>ProSapien LLC</organization>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="JSON" target="https://www.json.org/json-en.html">
          <front>
            <title>JavaScript Object Notation Delimeters</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CBOR" target="https://en.wikipedia.org/wiki/CBOR">
          <front>
            <title>CBOR Mapping Object Codes</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC8949" target="https://datatracker.ietf.org/doc/rfc8949/">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author initials="C." surname="Bormann" fullname="Carsten Bormann">
              <organization/>
            </author>
            <author initials="P." surname="Hoffman" fullname="Paul Hoffman">
              <organization/>
            </author>
            <date year="2020" month="December" day="04"/>
          </front>
        </reference>
        <reference anchor="MGPK" target="https://github.com/msgpack/msgpack/blob/master/spec.md">
          <front>
            <title>Msgpack Mapping Object Codes</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC6901" target="https://datatracker.ietf.org/doc/html/rfc6901">
          <front>
            <title>JavaScript Object Notation (JSON) Pointer</title>
            <author initials="P.C." surname="Bryan" fullname="Paul C. Bryan">
              <organization/>
            </author>
            <author initials="K." surname="Zyp" fullname="Kris Zyp">
              <organization/>
            </author>
            <author initials="M." surname="Nottingham" fullname="Mark Nottingham">
              <organization/>
            </author>
            <date year="2003"/>
          </front>
        </reference>
        <reference anchor="JSONPath" target="https://datatracker.ietf.org/doc/draft-ietf-jsonpath-base/">
          <front>
            <title>JSONPath - Query expressions for JSON</title>
            <author initials="S." surname="Gössner" fullname="Stefan Gössner">
              <organization/>
            </author>
            <author initials="G." surname="Normington" fullname="Glyn Normington">
              <organization/>
            </author>
            <author initials="C." surname="Bormann" fullname="Carsten Bormann">
              <organization/>
            </author>
            <date year="2021" month="October" day="25"/>
          </front>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments" toc="default">
      <name>Acknowledgments</name>
      <t>Dr Sam Smith, Kevin Griffin and the Global Legal Entity Identifier Foundation (GLEIF)</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
UaO997VUOa43qvXCHxhpPv6Y+E78fBUenzcHj83KrTfautoNdxpbo+n4+mLW
aPjB5v20d3xZqtTrzVK9vrO5u3fjnwxr92dCbDft6SjZ2+s+n/r7n2+OvldD
b/z1dOd8sNV1z9vd58+X+x/jg+6JfV/3/I9O+Pzlw6eg//B1J05Ov19sX/Uv
3KvGdv1jqd5oDMVjkNx+3jqdbp+1qqOt0P36vNuyb793Lwfj816r0kjCx+97
7dsTsdWq7d6P22L74CaqVffnZ3vjoGE/bh5/r95Ur6rOzmwYfUiaExz4qNfc
u2p+Odi6Pe093DYa067onsb1j3vT6igYTq56t72L7zfjvejm9jRoXV99mIU7
YTsIjmofNr3Gx7PpU/i431ncu72txll3s+V1onjzaMhU+4ONkR8yb5Bzkiiz
vlKx6F/1g9/ixv4oyMeUOjrjENVyxefcBAYpIowf2m7QgxuXLuHMJzgzua6c
0YRNPfmOinj1zDQr9H8Nzf3grB7picjL5USkzlVjBOcFqvxR4Oah+8F+hx7u
v8aGrxybg7+Gqn8Yzs2rJkFu+JEGrk2k5tC5lZVqMe4hs9HGxgaQ/g9KkKrS
18QE8PVEfU0lIUzC8DWQHX+9SQf7PZVpq6SUKzD8HOngpqwTeDnCpSIMWYfl
XIbf9dmEcQZvmGwUJOAINx2g2uoANb0XTp5HFoOAEBwaUm+HKooqdqlyBJ8a
48vBzfy8vZhfPyycndPFxy+DYbO+fdOuX87uZ8EXx744OD3YOqhHl6Vqo7fX
3+k83zTGSVzx+/6w3Xh2e6Pzj/cXR/3H/eGlF4wW42G0/d1tVj8sBle7R/e3
o7j9+Hjz9WR8Pao3PlZmncV8OGzVe0+NZvD4cctuSEZ/JadbuBrrH+Z1S+HD
epnDeUpAGSaAXIUBM/qK0CQ1fg1qYUy9e8tszX/RoLwFQKgW4M36Ib/P+VMs
crJu1Gudp4sC52mV5/TuHZr/794VulA1upInjFa7dLHpla5yiDLXluR9DHVh
ncfXaetrRVfOSCeb0ldy9UmWLC+3c1grq7teDLdZBXmXr10qax99onPDE6qY
4uz0PkUNhD5SaqOXNvdiKQAycwAl0OU+rlkDqZeqijaSF9xlnOGUvP+c8Rd4
k4lI0stS0+UqYXFRb6jqQ2Q1xSdAe8bFQb+CEX1bkSoV4otoUQWl+y3fa6Cw
s3wlkHHlDId0aO/UJS2pWAyNvTKKGeV9ubFIq8FSbEgRXOhS/n9fhG6tckcL
fNB/16q/rlZ9ZZm69rkoU/EXruDFi1Jl7FvlMygFkIl0ptE088us5JAVSYYu
UBfwqMf2SoFhvEghF+BTCXWZe0Nj46A6cxVr4diZW1lzqul3X4cBxg9dUJom
IBAMvNLIPMkN9cG0dHPn+gQGpOQxvk8lvUFb2nt2P5xJyZzZBDyBn6+OUeWy
Gc0L4P7JUasXgla5mNWLwabfDjX9dqDpt8NMUsr9bszt92NS/0BE6rXxqH8g
GvVLsajiSNRP41CF8q8w9pRmdqVWOt6bk71yWWb5gHBjNsIdy/P30tXnbKsa
8sMwYJTRUmjAXAEHZ2wnVYNOlkaB6M2ngSwZHUtf6HcdZELX8r6eFaUpGhw8
L2PEZS/E4gvEXFkBmTncSu/w0ZfXxlQjqSrWsc4szQSXZ35cdadqztZWXvW1
rjoWH+iRPZrWDALWBnhXh52WqKa3bumbLNGBllVuzlSlRvGFXPjXt1+4aO2P
NT7EfOFtC8bp5ou52+rGROVAZO9TlIoKg446aqrp1sjjU7lty6eExpGjGpry
PvKvBsiNTWc1GeWZBggwN/pzNmuv+N1X5V8/xDQtelqMzpHMJG85o9BzRPqi
Cg0ncdFUukEClI8DRDeS7MaXyfMdraqE38yaTEtE02KBdG35xJKSkVl/pZES
lwglKgln+cC4KM1QJRJS9NobC2WASTYi4YQZWdle5qtX0pzU3M27Upjg0pW3
qSTf0qJifcZd0FtFiTL5Z3Typ64EzOTPGiDi7ql8F3mDR3ZalRHH78XhDGPD
ZTPAM4tGlisIZFVFok8J+KWhisJgPImG3tIO6EvddQaDTnNS6Y1p1vd6QY6j
rFMAT94oWzGes7fILzQC2QHgJeklEzpRjhNmUcRGRaeT2auP0KT7T+o3/ttx
/H3HkfGx+WW/3bJbwWX1y/XH46/Dy52bT1v92/Hn4dbNTbB31NnuhhcPs9iv
xKZZRRaIsrnMB77N36MZVmBkSUGsxHgudExS/a5i38nakizv8Z0rSoipW8t1
6ETdp0xhUZUuTWmpdo435Tv1sl/i1a5JrBhTplUWygAW+mt4+AccV85Vj5Qt
kTjrxlXVWbDVDQnGrdK54fPlBMvpmHrEnBLm6n0pUwiBPJu63pius83fgZQT
3yyq5dXK0srQ2nKR1eo9pW84VduICnBuXyqFUohzN43/q/1M0gz/yf1Mkoon
N60WERldItw4tjrXx93jq96/nUrTqTTdx6UskH+6aCzOgcgUYp7j6wIn8pLY
bNWtrROfuB1Zqb7t8LVgxK3iaWJTcH7ZvAQxg25RrG9Hy7zvEt+wRHefyETo
9PYpoxQnvZDtPOyttkhyoKTz5ENN/+k48d+89s/mtQA7xxdnydeud+T6Xn/a
anY3O70Pw1r99kvSGdmL7u1Be6sZXkTXXz5/Xcmn6df8+mH8/rPn+56ZuVTI
wWkmGb9Qrmh1lao/ffzaHe46HefyZDzy6s/7nxof2/3b1rj3sRMN42jvtna/
e1TfXlrdF68bfmpezR4/7ftuOOgsep8eP1aOk08d/+H8/GPPDw7qXnVxXt25
NPtiXEcQsLXNLesSrzHqZhLAVGCsa/uJ1bIfhHWE32SGANsMm9wk9sh88OxN
MEiCj/a3azt7y7iYjMKgcJ93/WSxf7YZ17/XbOdx/3m4f/D94fGkdrDd7J/U
nOZkXt+76STz+87HJUx8/3Jx9SlI+s75/aS22RzH9dPRrHK99+F6Pn2+b+5e
HJ0d7Z3Mt55nN8aejcO+x/u5s7NTqQE3bG1vZdCsEtWM5zvm83kYPeSeZ3Lk
BvZT7vHeT+KMyQg2RwnlPhjBD7EZoKNvrDvNMBjpktQlg12E3zt9fYF67x5F
N1Qdu6sifSocBL6rSxn26jZtaBwJUhnqTkJ80wDXmGZK2+sFWkK5wo46OQ5c
I9uDx+XwQBgXr1jfi8tBmQGH55YsTHr3mC1NWW/FC5NzFzKqGhbMGddhtWk/
M1TuKkusWVbz042gqvTFfPNBnAaO5FjFHn5a+B/pFaqQVDgeewknqIfGnmnV
bWs1Tfo3EHYk36kpy2wLX57Od8VlB1d+Blf/4bmTY9R9y4DRr9Ta2bnyD2Nz
8pW/ytAH+GGj5Ev57EL64RWqEBLbMDkqYE4wSGul//Cy7fC7psPvWg6/aziY
dsPvmw2/bzW80mj4fZvhV0yG7OHO75gIhk7+LSWs9djrFFfJMuQ9v2EpvccC
2CEIExm39AZapsWGP555y6QM6wolmSVjj0LfTS++NMtZVahTBuKzg4VLd3xw
fPTngCSZELNqaAaX9Z0DqthJBdjTKVZoAiU18PVrM7qh2Hg/cxpilUIgo5tI
n+oXw0mpzAOqezw5OGIondVqgYRP9tLSwir6vgCJRllqWam5LIClv6UVfEi3
K/nmsMYbgM0DECULZUe5AESIUSifqZpLL30wNaMnUw+pQI5euuJjRqD26TZK
pc/67db0ylCYtWwOkYkZyRcX86tc1MuSJ/qFqTmzgKNPoasLGuUGKd1fuBVl
mGQc6ipH3Sa20ructQ2TdXz5yEjWCq/Rm5MlTtazRCd3l0BD7ScBy9w1EEgP
N31paj5FQ08laSaWkfplQsZ8EH4N4LKiVq9xMSwJtdv67WeA0KBwP/CFSXQb
BL9BjW6BRuUbpEdVTbzaizHIBiiWXYJZCwC9wfjQmzL/tq7a9Pf18ceb8+vj
Jv7dPau3WvqPkmzRPWvftJrpX2nPo/bl5fFVkzvDt1bmq9KbyzroKYLqTbvT
O29f1Vtv9CVCbuhM+QLuSL0MFi2cCBbM2YmlzN28jaPO//lftW3rb3/7L9cn
R5u12sGff8oP+7W9bfiAR108G0kt/ogHLCUgdLCsVEKmY0+8xPbjMqXg0bWj
mNsH+Hz3DTHzx6H13/rOpLb9P+QXuODMlwpnmS8JZ8vfLHVmJBZ8VTCNxmbm
+xyms/DWv2Y+K7wbXyLVdAUQEZqSKpBjK4ppN9v6KbY8r1/Vl1sBXZ3jZgUi
seqxlNVXlL8f07t4Qhp9DXuvy7eCgkp06V2XYTS0g8xxYEjv3wMZO/TDPhD9
eceS6pwEAFvnsF/TJAzCcTiFfVsA64zTWua0EaVkPKMSHduBPcy8gkG+RINe
/dDlEdaaV931sjUWrmfzxcSShiitTS9SvSW6EgmfK3IX4z7KQGyrWzE4/M5U
k8SRb4OQcWmz8IA2mDvet50HRHPdeQjCuS/cIWfg/e2QxxLufwen04/Fmz9L
pSZIQXtsdUGcgNC+wNpw6xQ8pIGXXpl0yhhsoT1lHYNggG1IrzPA8ujAZcyv
nYJhdrJe+n8ZKz5UXpUAAA==

-->

</rfc>
