<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-meunier-webbotauth-httpsig-directory-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="HTTP Message Signatures Directory">HTTP Message Signatures Directory</title>
    <seriesInfo name="Internet-Draft" value="draft-meunier-webbotauth-httpsig-directory-00"/>
    <author fullname="Thibault Meunier">
      <organization>Cloudflare</organization>
      <address>
        <email>ot-ietf@thibault.uk</email>
      </address>
    </author>
    <author fullname="Sandor Major">
      <organization>Google</organization>
      <address>
        <email>ietf@sandormajor.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="26"/>
    <area>Web and Internet Transport</area>
    <workgroup>Web Bot Auth</workgroup>
    <keyword>not-yet</keyword>
    <abstract>
      <?line 57?>

<t>This document describes a method for clients using <xref target="HTTP-MESSAGE-SIGNATURES"/>
to advertise their signing keys.</t>
      <t>It defines a key directory format based on JWKS as defined in <xref section="5" sectionFormat="of" target="JWK"/>,
as well as a new HTTP Method Context for in-band key discovery.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://thibmeu.github.io/http-message-signatures-directory/draft-meunier-webbotauth-httpsig-directory.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-meunier-webbotauth-httpsig-directory/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Web Bot Auth Working Group mailing list (<eref target="mailto:web-bot-auth@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/web-bot-auth/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/web-bot-auth/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/thibmeu/http-message-signatures-directory"/>.</t>
    </note>
  </front>
  <middle>
    <?line 66?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="HTTP-MESSAGE-SIGNATURES"/> allow a signer to generate a signature over an HTTP message, and a verifier to validate it.
The specification assumes verifiers have prior knowledge of
signers' key material, requiring out-of-band key distribution mechanisms. This creates deployment
friction and limits the ability to dynamically verify signatures from previously unknown signers.</t>
      <t>This document defines:</t>
      <ol spacing="normal" type="1"><li>
          <t>A standardized key directory format based on JWKS for publishing HTTP Message Signatures keys,</t>
        </li>
        <li>
          <t>A well-known URI location for discovering these key directories,</t>
        </li>
        <li>
          <t>A new HTTP header field enabling in-band key material discovery.</t>
        </li>
      </ol>
      <t>Together, these mechanisms enable key distribution and discovery for HTTP Message Signatures cryptographic material.</t>
    </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?>

</section>
    <section anchor="configuration">
      <name>Configuration</name>
      <t>The key directory is served as a JSON Web Key Set (JWKS) as defined in <xref section="5" sectionFormat="of" target="JWK"/>.
The "alg" parameter are restricted to algorithm registered against HTTP Signature Algorithms Section of <xref target="HTTP-MESSAGE-SIGNATURES-IANA"/></t>
      <t>The directory <bcp14>SHOULD</bcp14> be served over HTTPS.
The directory <bcp14>MUST</bcp14> be served with media type <tt>application/http-message-signatures-directory+json</tt>.</t>
      <t>A client application <bcp14>SHOULD</bcp14> validate the directory format and reject malformed entries.</t>
    </section>
    <section anchor="http-method-context-signature-agent">
      <name>HTTP Method Context <tt>Signature-Agent</tt></name>
      <t>A service sending signed requests as defined in <xref target="HTTP-MESSAGE-SIGNATURES"/> <bcp14>MAY</bcp14> include a
<tt>Signature-Agent</tt> header field to communicate where its verification key material can be found.
This header field contains a URI and a <tt>type</tt> parameter that identifies the discovery mechanism.</t>
      <section anchor="header-field-definition">
        <name>Header Field Definition</name>
        <t>The <tt>Signature-Agent</tt> header field is a Dictionary Structured Header as defined
in <xref section="3.2" sectionFormat="of" target="STRUCTURED-HEADERS"/>.
Its member values <bcp14>MUST</bcp14> be String Items that contain a <xref target="URI"/>.</t>
        <t>The <tt>type</tt> parameter is a Token Item as defined in <xref section="3.3.4" sectionFormat="of" target="STRUCTURED-HEADERS"/>. If the <tt>type</tt> parameter is absent, its value is <tt>directory</tt>.</t>
        <t>The following <tt>type</tt> values are defined:</t>
        <dl>
          <dt><tt>directory</tt></dt>
          <dd>
            <t>The member value identifies an origin. For <tt>http</tt> and <tt>https</tt> URI values, a
client resolves the HTTP Message Signatures Directory using the well-known URI
registered in <xref target="wkuri-reg"/> at that origin. For <tt>data</tt> URI values, the member
value contains an inline HTTP Message Signatures Directory.</t>
          </dd>
          <dt><tt>jwks_uri</tt></dt>
          <dd>
            <t>The member value identifies a JWK Set URI.</t>
          </dd>
          <dt><tt>cimd</tt></dt>
          <dd>
            <t>The member value identifies a Client ID Metadata Document <xref target="CIMD"/> URI.</t>
          </dd>
        </dl>
        <t>A client that does not support a <tt>type</tt> value <bcp14>MUST</bcp14> ignore that member.
A client <bcp14>MUST NOT</bcp14> infer the discovery mechanism from the URI path, media type,
or response body.</t>
        <t>The URI scheme <bcp14>MUST</bcp14> be one of:</t>
        <ul spacing="normal">
          <li>
            <t><strong>https (<bcp14>RECOMMENDED</bcp14>)</strong>: Points to an HTTPS resource</t>
          </li>
          <li>
            <t><strong>http</strong>: Points to an HTTP resource</t>
          </li>
          <li>
            <t><strong>data</strong>: Contains inline key material</t>
          </li>
        </ul>
        <t>When using the <tt>data</tt> URI scheme with <tt>type=directory</tt>, the media type <bcp14>MUST</bcp14> be
<tt>application/http-message-signatures-directory+json</tt>. The content <bcp14>MAY</bcp14> be base64 encoded
as per <xref target="BASE64"/>.
The <tt>data</tt> URI scheme <bcp14>MUST NOT</bcp14> be used with other <tt>type</tt> values.</t>
        <t>If dictionary values are not valid URI-references, the entire header field <bcp14>MAY</bcp14> be
ignored.</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <section anchor="key-rotation">
        <name>Key rotation</name>
        <t>Clients <bcp14>SHOULD</bcp14> implement key rotation by including multiple keys in the directory
with a different validity period. When rotating keys, clients <bcp14>SHOULD</bcp14>:</t>
        <ol spacing="normal" type="1"><li>
            <t>Add the new key to the directory before its intended use date</t>
          </li>
          <li>
            <t>Continue to include the old key until its expiration date</t>
          </li>
          <li>
            <t>Remove expired keys from the directory</t>
          </li>
        </ol>
        <t>Servers <bcp14>SHOULD</bcp14> cache the directory contents and refresh upon expiration.</t>
      </section>
      <section anchor="binding-keys-to-the-directory-authority">
        <name>Binding keys to the directory authority</name>
        <t>To ensure the authenticity and integrity of the key material provided by the
directory, clients <strong><bcp14>SHOULD</bcp14></strong> validate the directory's response.</t>
        <t>When a directory server provides a key directory over HTTP or HTTPS, it is
<bcp14>RECOMMENDED</bcp14> that it constructs and includes one HTTP Message Signatures per keys
with the response, as defined in <xref target="HTTP-MESSAGE-SIGNATURES"/>.
Each key <bcp14>SHOULD</bcp14> be used to provide one signature.</t>
        <t>Directory server <bcp14>SHOULD</bcp14> include the following covered components:</t>
        <dl>
          <dt><tt>@authority</tt></dt>
          <dd>
            <t>as defined in <xref section="2.2.3" sectionFormat="of" target="HTTP-MESSAGE-SIGNATURES"/>. <tt>req</tt> flag defined in <xref section="2.4" sectionFormat="of" target="HTTP-MESSAGE-SIGNATURES"/> <bcp14>MUST</bcp14> be set.</t>
          </dd>
          <dt><tt>content-digest</tt></dt>
          <dd>
            <t>as defined in <xref target="DIGEST-FIELDS"/>.</t>
          </dd>
        </dl>
        <t>Directory server <bcp14>SHOULD</bcp14> include the following <tt>@signature-params</tt> as defined in
<xref section="2.3" sectionFormat="of" target="HTTP-MESSAGE-SIGNATURES"/></t>
        <dl>
          <dt><tt>created</tt></dt>
          <dd>
            <t>as defined in <xref section="2.3" sectionFormat="of" target="HTTP-MESSAGE-SIGNATURES"/></t>
          </dd>
          <dt><tt>expires</tt></dt>
          <dd>
            <t>as defined in <xref section="2.3" sectionFormat="of" target="HTTP-MESSAGE-SIGNATURES"/></t>
          </dd>
          <dt><tt>keyid</tt></dt>
          <dd>
            <t><bcp14>MUST</bcp14> be a base64url JWK SHA-256 Thumbprint as defined in <xref section="3.2" sectionFormat="of" target="JWK-THUMBPRINT"/> for RSA and EC, and in <xref section="A.3" sectionFormat="of" target="JWK-OKP"/> for ed25519.</t>
          </dd>
          <dt><tt>tag</tt></dt>
          <dd>
            <t><bcp14>MUST</bcp14> be <tt>http-message-signatures-directory</tt></t>
          </dd>
        </dl>
        <t>Clients <bcp14>SHOULD</bcp14> validate these signatures using the keys provided by the
directory. Clients <bcp14>SHOULD</bcp14> validate the <tt>Content-Digest</tt> field against the
response body. Clients <bcp14>SHOULD</bcp14> ignore keys from a directory response that do not
have a corresponding valid signature. This validation checks the integrity of the
key set and binds it to the intended authority.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Key directories enable discovery of signing keys which may reveal information about the
signing entity. Implementers should consider:</t>
      <section anchor="directory-content">
        <name>Directory Content</name>
        <t>Key directories should only contain keys actively used for signing. Including additional
keys or metadata may expose unnecessary information about the signing service.</t>
      </section>
      <section anchor="access-patterns">
        <name>Access Patterns</name>
        <t>Verifiers accessing key directories may reveal information about signature verification
patterns. Directory servers should avoid logging personally identifiable information
from directory requests.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This section contains considerations for IANA.</t>
      <section anchor="wkuri-reg">
        <name>Well-Known 'http-message-signatures-directory' URI</name>
        <t>This document updates the "Well-Known URIs" Registry <xref target="WellKnownURIs"/> with the
following values.</t>
        <table anchor="wellknownuri-values">
          <name>'http-message-signatures-directory' Well-Known URI</name>
          <thead>
            <tr>
              <th align="left">URI Suffix</th>
              <th align="left">Change Controller</th>
              <th align="left">Reference</th>
              <th align="left">Status</th>
              <th align="left">Related information</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">http-message-signatures-directory</td>
              <td align="left">IETF</td>
              <td align="left">this document</td>
              <td align="left">permanent</td>
              <td align="left">None</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="media-types">
        <name>Media Types</name>
        <t>The following entries should be added to the IANA "media types"
registry:</t>
        <ul spacing="normal">
          <li>
            <t>"application/http-message-signatures-directory+json"</t>
          </li>
        </ul>
        <t>The templates for these entries are listed below and the
reference should be this RFC.</t>
        <section anchor="applicationhttp-message-signatures-directoryjson-media-type">
          <name>"application/http-message-signatures-directory+json" media type</name>
          <dl spacing="compact">
            <dt>Type name:</dt>
            <dd>
              <t>application</t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t>http-message-signatures-directory</t>
            </dd>
            <dt>Required parameters:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Optional parameters:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Encoding considerations:</dt>
            <dd>
              <t>"binary"</t>
            </dd>
            <dt>Security considerations:</dt>
            <dd>
              <t>see <xref target="security"/></t>
            </dd>
            <dt>Interoperability considerations:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Published specification:</dt>
            <dd>
              <t>this specification</t>
            </dd>
            <dt>Applications that use this media type:</dt>
            <dd>
              <t>Services that implement the signer role for HTTP Message
Signatures and verifiers that interact with the signer for
the purpose of validating signatures.</t>
            </dd>
            <dt>Fragment identifier considerations:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Additional information:</dt>
            <dd>
              <dl spacing="compact">
                <dt>Magic number(s):</dt>
                <dd>N/A</dd>
                <dt>Deprecated alias names for this type:</dt>
                <dd>N/A</dd>
                <dt>File extension(s):</dt>
                <dd>N/A</dd>
                <dt>Macintosh file type code(s):</dt>
                <dd>N/A</dd>
              </dl>
            </dd>
            <dt>Person and email address to contact for further information:</dt>
            <dd>
              <t>see Authors' Addresses section</t>
            </dd>
            <dt>Intended usage:</dt>
            <dd>
              <t>COMMON</t>
            </dd>
            <dt>Restrictions on usage:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Author:</dt>
            <dd>
              <t>see Authors' Addresses section</t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
          </dl>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="CIMD">
          <front>
            <title>OAuth Client ID Metadata Document</title>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <author fullname="Emelia Smith" initials="E." surname="Smith">
         </author>
            <date day="1" month="March" year="2026"/>
            <abstract>
              <t>   This specification defines a mechanism through which an OAuth client
   can identify itself to authorization servers, without prior dynamic
   client registration or other existing registration.  This is through
   the usage of a URL as a client_id in an OAuth flow, where the URL
   refers to a document containing the necessary client metadata,
   enabling the authorization server to fetch the metadata about the
   client as needed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-client-id-metadata-document-01"/>
        </reference>
        <reference anchor="DIGEST-FIELDS">
          <front>
            <title>Digest Fields</title>
            <author fullname="R. Polli" initials="R." surname="Polli"/>
            <author fullname="L. Pardue" initials="L." surname="Pardue"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document defines HTTP fields that support integrity digests. The Content-Digest field can be used for the integrity of HTTP message content. The Repr-Digest field can be used for the integrity of HTTP representations. Want-Content-Digest and Want-Repr-Digest can be used to indicate a sender's interest and preferences for receiving the respective Integrity fields.</t>
              <t>This document obsoletes RFC 3230 and the Digest and Want-Digest HTTP fields.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9530"/>
          <seriesInfo name="DOI" value="10.17487/RFC9530"/>
        </reference>
        <reference anchor="HTTP">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="HTTP-MESSAGE-SIGNATURES">
          <front>
            <title>HTTP Message Signatures</title>
            <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Sporny" initials="M." surname="Sporny"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9421"/>
          <seriesInfo name="DOI" value="10.17487/RFC9421"/>
        </reference>
        <reference anchor="HTTP-MESSAGE-SIGNATURES-IANA" target="https://www.iana.org/assignments/http-message-signature/http-message-signature.xhtml">
          <front>
            <title>HTTP Message Signatures</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="JWK">
          <front>
            <title>JSON Web Key (JWK)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7517"/>
          <seriesInfo name="DOI" value="10.17487/RFC7517"/>
        </reference>
        <reference anchor="JWK-OKP">
          <front>
            <title>CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE)</title>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document defines how to use the Diffie-Hellman algorithms "X25519" and "X448" as well as the signature algorithms "Ed25519" and "Ed448" from the IRTF CFRG elliptic curves work in JSON Object Signing and Encryption (JOSE).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8037"/>
          <seriesInfo name="DOI" value="10.17487/RFC8037"/>
        </reference>
        <reference anchor="JWK-THUMBPRINT">
          <front>
            <title>JSON Web Key (JWK) Thumbprint</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This specification defines a method for computing a hash value over a JSON Web Key (JWK). It defines which fields in a JWK are used in the hash computation, the method of creating a canonical form for those fields, and how to convert the resulting Unicode string into a byte sequence to be hashed. The resulting hash value can be used for identifying or selecting the key represented by the JWK that is the subject of the thumbprint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7638"/>
          <seriesInfo name="DOI" value="10.17487/RFC7638"/>
        </reference>
        <reference anchor="STRUCTURED-HEADERS">
          <front>
            <title>Structured Field Values for HTTP</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="P-H. Kamp" surname="P-H. Kamp"/>
            <date month="February" year="2021"/>
            <abstract>
              <t>This document describes a set of data types and associated algorithms that are intended to make it easier and safer to define and handle HTTP header and trailer fields, known as "Structured Fields", "Structured Headers", or "Structured Trailers". It is intended for use by specifications of new HTTP fields that wish to use a common syntax that is more restrictive than traditional HTTP field values.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8941"/>
          <seriesInfo name="DOI" value="10.17487/RFC8941"/>
        </reference>
        <reference anchor="URI">
          <front>
            <title>URI Design and Ownership</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Section 1.1.1 of RFC 3986 defines URI syntax as "a federated and extensible naming system wherein each scheme's specification may further restrict the syntax and semantics of identifiers using that scheme." In other words, the structure of a URI is defined by its scheme. While it is common for schemes to further delegate their substructure to the URI's owner, publishing independent standards that mandate particular forms of substructure in URIs is often problematic.</t>
              <t>This document provides guidance on the specification of URI substructure in standards.</t>
              <t>This document obsoletes RFC 7320 and updates RFC 3986.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="190"/>
          <seriesInfo name="RFC" value="8820"/>
          <seriesInfo name="DOI" value="10.17487/RFC8820"/>
        </reference>
        <reference anchor="WellKnownURIs" target="https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml">
          <front>
            <title>Well-Known URIs</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="BASE64">
          <front>
            <title>The "data" URL scheme</title>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="August" year="1998"/>
            <abstract>
              <t>A new URL scheme, "data", is defined. It allows inclusion of small data items as "immediate" data, as if it had been included externally. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2397"/>
          <seriesInfo name="DOI" value="10.17487/RFC2397"/>
        </reference>
        <reference anchor="CRYPTO-TEST-KEYS">
          <front>
            <title>Standard Public Key Cryptography (PKC) Test Keys</title>
            <author fullname="P. Gutmann" initials="P." surname="Gutmann"/>
            <author fullname="C. Bonnell" initials="C." surname="Bonnell"/>
            <date month="December" year="2023"/>
            <abstract>
              <t>This document provides a set of standard Public Key Cryptography (PKC) test keys that may be used wherever pre-generated keys and associated operations like digital signatures are required. Like the European Institute for Computer Antivirus Research (EICAR) virus test and the Generic Test for Unsolicited Bulk Email (GTUBE) spam test files, these publicly known test keys can be detected and recognised by applications consuming them as being purely for testing purposes without assigning any security properties to them.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9500"/>
          <seriesInfo name="DOI" value="10.17487/RFC9500"/>
        </reference>
        <reference anchor="X509-PKI">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
      </references>
    </references>
    <?line 330?>

<section anchor="examples">
      <name>Examples</name>
      <section anchor="key-directory-on-examplecom">
        <name>Key Directory on example.com</name>
        <artwork><![CDATA[
GET /.well-known/http-message-signatures-directory HTTP/1.1
Host: example.com
Accept: application/http-message-signatures-directory+json

HTTP/1.1 200 OK
Content-Type: application/http-message-signatures-directory+json
Cache-Control: max-age=86400
{
  "keys": [{
    "kty": "OKP",
    "crv": "Ed25519",
    "kid": "NFcWBst6DXG-N35nHdzMrioWntdzNZghQSkjHNMMSjw",
    "x": "JrQLj5P_89iXES9-vFgrIy29clF9CC_oPPsw3c5D0bs",
    "use": "sig",
    "nbf": 1712793600,
    "exp": 1715385600
  }]
}
]]></artwork>
      </section>
      <section anchor="delegation-and-chaining">
        <name>Delegation and chaining</name>
        <t>There are multiple methods to perform delegation and chaining. There are no specific methods
that have been favored by implementation so far, should they even support them.
It is adviced to consider delegation as experimental for now, and provide input on the associated
<eref target="https://github.com/thibmeu/http-message-signatures-directory/issues/27">GitHub issue</eref>.</t>
        <section anchor="key-directory-on-subexamplecom-with-a-delegation-from-examplecom-via-x5c-full-certificate-chain">
          <name>Key Directory on sub.example.com with a delegation from example.com via x5c full certificate chain</name>
          <t>In this example, example.com key is testECCP256 provided in <xref section="2.3" sectionFormat="of" target="CRYPTO-TEST-KEYS"/>.
Certificate chain is passed via x5c key parameter defined in <xref section="4.7" sectionFormat="of" target="JWK"/>.</t>
          <artwork><![CDATA[
GET /.well-known/http-message-signatures-directory HTTP/1.1
Host: sub.example.com
Accept: application/http-message-signatures-directory

HTTP/1.1 200 OK
Content-Type: application/http-message-signatures-directory
Cache-Control: max-age=86400
{
  "keys": [{
    "kty": "OKP",
    "crv": "Ed25519",
    "kid": "NFcWBst6DXG-N35nHdzMrioWntdzNZghQSkjHNMMSjw",
    "x": "JrQLj5P_89iXES9-vFgrIy29clF9CC_oPPsw3c5D0bs",
    "use": "sig",
    "nbf": 1712793600,
    "exp": 1715385600,
    "x5c": [
      "MIIBYTCCAQagAwIBAgIUFDXRG3pgZ6txehQO2LT4aCqI3f0wCgYIKoZIzj0EAwIwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wHhcNMjUwNjEzMTA0MjQxWhcNMzUwNjExMTA0MjQxWjAaMRgwFgYDVQQDDA9zdWIuZXhhbXBsZS5jb20wKjAFBgMrZXADIQAmtAuPk//z2JcRL368WCsjLb1yUX0IL+g8+zDdzkPRu6NdMFswCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0OBBYEFKV3qaYNFbzQB1QmN4sa13+t4RmoMB8GA1UdIwQYMBaAFFtwp5gX95/2N9L349xEbCEJ17vUMAoGCCqGSM49BAMCA0kAMEYCIQC8r+GvvNnjI+zzOEDMOM/g9e8QLm00IZXP+tjDqah1UQIhAJHffLke9iEP1pUdm+oRLrq6bUqyLELi5TH2t+BaagKv",
      "MIIBcDCCARagAwIBAgIUS502rlCXxG2vviltGdfe3fmX4pIwCgYIKoZIzj0EAwIwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wHhcNMjUwNjEzMTA0MTQzWhcNMzUwNjExMTA0MTQzWjAWMRQwEgYDVQQDDAtleGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEIlSPiPt4L/teyjdERSxyoeVY+9b3O+XkjpMjLMRcWxbEzRDEy41bihcTnpSILImSVymTQl9BQZq36QpCpJQnKjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMB0GA1UdDgQWBBRbcKeYF/ef9jfS9+PcRGwhCde71DAKBggqhkjOPQQDAgNIADBFAiEAwTOqm1zNAvZuQ8Zb5AftQIZotq4Xe6GHz3+nJ04ybgoCIEEZtn1Pa+GCbmbWh12piHJBKh09TCA0feTedisbwzPV"
    ]
  }]
}
]]></artwork>
        </section>
        <section anchor="key-directory-on-subexamplecom-with-a-delegation-from-examplecom-via-a-leaf-certificate-and-aia-field">
          <name>Key Directory on sub.example.com with a delegation from example.com via a leaf certificate and AIA field</name>
          <t>In this example, example.com key is testECCP256 provided in <xref section="2.3" sectionFormat="of" target="CRYPTO-TEST-KEYS"/>.
Certificate chain is passed via x5c key parameter defined in <xref section="4.7" sectionFormat="of" target="JWK"/>,
and the root certificate is signaled by the presence of an Authority Information Access extension
as defined in <xref section="5.2.7" sectionFormat="of" target="X509-PKI"/>.</t>
          <artwork><![CDATA[
GET /.well-known/http-message-signatures-directory HTTP/1.1
Host: sub.example.com
Accept: application/http-message-signatures-directory

HTTP/1.1 200 OK
Content-Type: application/http-message-signatures-directory
Cache-Control: max-age=86400
{
  "keys": [{
    "kty": "OKP",
    "crv": "Ed25519",
    "kid": "NFcWBst6DXG-N35nHdzMrioWntdzNZghQSkjHNMMSjw",
    "x": "JrQLj5P_89iXES9-vFgrIy29clF9CC_oPPsw3c5D0bs",
    "use": "sig",
    "nbf": 1712793600,
    "exp": 1715385600,
    "x5c": [
      "MIIBYTCCAQagAwIBAgIUFDXRG3pgZ6txehQO2LT4aCqI3f0wCgYIKoZIzj0EAwIwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wHhcNMjUwNjEzMTA0MjQxWhcNMzUwNjExMTA0MjQxWjAaMRgwFgYDVQQDDA9zdWIuZXhhbXBsZS5jb20wKjAFBgMrZXADIQAmtAuPk//z2JcRL368WCsjLb1yUX0IL+g8+zDdzkPRu6NdMFswCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0OBBYEFKV3qaYNFbzQB1QmN4sa13+t4RmoMB8GA1UdIwQYMBaAFFtwp5gX95/2N9L349xEbCEJ17vUMAoGCCqGSM49BAMCA0kAMEYCIQC8r+GvvNnjI+zzOEDMOM/g9e8QLm00IZXP+tjDqah1UQIhAJHffLke9iEP1pUdm+oRLrq6bUqyLELi5TH2t+BaagKv"
    ]
  }]
}
]]></artwork>
          <t>The AIA extension is as follow</t>
          <artwork><![CDATA[
X509v3 extensions:
  Authority Information Access:
    CA Issuers - URI:https://example.com/.well-known/http-message-signatures-directory.crt
]]></artwork>
          <t>The verifier should validate the signature with the public key in the Signature-Agent,
match the public key with the leaf cert, then fetch the root cert from the AIA URI and verify the leaf cert with it.</t>
        </section>
        <section anchor="key-directory-on-subexamplecom-with-a-delegation-from-examplecom-via-x5u-field">
          <name>Key Directory on sub.example.com with a delegation from example.com via x5u field</name>
          <t>Leveraging x5c imposes that a PEM encoded certificate is present in the returned JWKS.
If size is a constraint, or deployment imposes a more dynamic certificate management,
directory server may use x5u key parameter defined in <xref section="4.6" sectionFormat="of" target="JWK"/>.</t>
          <artwork><![CDATA[
GET /.well-known/http-message-signatures-directory HTTP/1.1
Host: sub.example.com
Accept: application/http-message-signatures-directory

HTTP/1.1 200 OK
Content-Type: application/http-message-signatures-directory
Cache-Control: max-age=86400

{
  "keys": [{
    "kty": "OKP",
    "crv": "Ed25519",
    "kid": "NFcWBst6DXG-N35nHdzMrioWntdzNZghQSkjHNMMSjw",
    "x": "JrQLj5P_89iXES9-vFgrIy29clF9CC_oPPsw3c5D0bs",
    "use": "sig",
    "nbf": 1712793600,
    "exp": 1715385600,
    "x5u": "https://example.com/.well-known/http-message-signature-chain/sub.example.com.crt"
}
]]></artwork>
        </section>
      </section>
      <section anchor="request-with-http-signature-agent">
        <name>Request with HTTP Signature-Agent</name>
        <t>This extend the examples from <xref section="B" sectionFormat="of" target="HTTP-MESSAGE-SIGNATURES"/>.</t>
        <artwork><![CDATA[
POST /foo?param=Value&Pet=dog HTTP/1.1
Host: example.com
Signature-Agent: my_test="https://directory.test";type=directory
{"hello": "world"}

HTTP/1.1 200 OK
{"message": "good dog"}
]]></artwork>
      </section>
      <section anchor="request-with-data-uri-signature-agent">
        <name>Request with <tt>data</tt> URI Signature-Agent</name>
        <t>A Signature-Agent using <tt>data</tt> URI can be used to communicate an ephemeral keys, as long as there is a chain to a certificate trusted by the origin.</t>
        <t>In this example, the directory is signed by <tt>example.com</tt>. The CA is self-signed, even though it <bcp14>MAY</bcp14> be part of an existing PKI.</t>
        <artwork><![CDATA[
POST /foo?param=Value&Pet=dog HTTP/1.1
Host: example.com
Signature-Agent: my_test="data:application/http-message-signatures-directory;utf8,{\"keys\":[{\"kty\":\"OKP\",\"crv\":\"Ed25519\",\"kid\":\"NFcWBst6DXG-N35nHdzMrioWntdzNZghQSkjHNMMSjw\",\"x\":\"JrQLj5P_89iXES9-vFgrIy29clF9CC_oPPsw3c5D0bs\",\"use\":\"sig\",\"nbf\":1712793600,\"exp\":1715385600,\"x5c\":[\"MIIBYTCCAQagAwIBAgIUFDXRG3pgZ6txehQO2LT4aCqI3f0wCgYIKoZIzj0EAwIwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wHhcNMjUwNjEzMTA0MjQxWhcNMzUwNjExMTA0MjQxWjAaMRgwFgYDVQQDDA9zdWIuZXhhbXBsZS5jb20wKjAFBgMrZXADIQAmtAuPk//z2JcRL368WCsjLb1yUX0IL+g8+zDdzkPRu6NdMFswCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0OBBYEFKV3qaYNFbzQB1QmN4sa13+t4RmoMB8GA1UdIwQYMBaAFFtwp5gX95/2N9L349xEbCEJ17vUMAoGCCqGSM49BAMCA0kAMEYCIQC8r+GvvNnjI+zzOEDMOM/g9e8QLm00IZXP+tjDqah1UQIhAJHffLke9iEP1pUdm+oRLrq6bUqyLELi5TH2t+BaagKv\",\"MIIBcDCCARagAwIBAgIUS502rlCXxG2vviltGdfe3fmX4pIwCgYIKoZIzj0EAwIwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wHhcNMjUwNjEzMTA0MTQzWhcNMzUwNjExMTA0MTQzWjAWMRQwEgYDVQQDDAtleGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEIlSPiPt4L/teyjdERSxyoeVY+9b3O+XkjpMjLMRcWxbEzRDEy41bihcTnpSILImSVymTQl9BQZq36QpCpJQnKjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMB0GA1UdDgQWBBRbcKeYF/ef9jfS9+PcRGwhCde71DAKBggqhkjOPQQDAgNIADBFAiEAwTOqm1zNAvZuQ8Zb5AftQIZotq4Xe6GHz3+nJ04ybgoCIEEZtn1Pa+GCbmbWh12piHJBKh09TCA0feTedisbwzPV\"]}]}"
{"hello": "world"}

HTTP/1.1 200 OK
{"message": "good dog"}
]]></artwork>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Marwan Fayed,
Maxime Guerreiro,
Jonathan Hoyland,
Nikhil Kandoi,
Akshat Mahajan,
Eugenio Panero,
Lucas Pardue.</t>
    </section>
    <section numbered="false" anchor="changelog">
      <name>Changelog</name>
      <t>draft-meunier-webbotauth-httpsig-directory-00</t>
      <ul spacing="normal">
        <li>
          <t>Rename draft from <tt>draft-meunier-http-message-signatures-directory</tt>.</t>
        </li>
        <li>
          <t>Add typed <tt>Signature-Agent</tt> discovery with <tt>directory</tt>, <tt>jwks_uri</tt>, and
<tt>cimd</tt>; default to <tt>directory</tt> when no type is present.</t>
        </li>
        <li>
          <t>Add <tt>Content-Digest</tt> to directory response validation.</t>
        </li>
        <li>
          <t>Update <tt>Signature-Agent</tt> examples to use <tt>type=directory</tt>.</t>
        </li>
        <li>
          <t>Fix wording around URI values and directory response signatures.</t>
        </li>
      </ul>
      <t>draft-meunier-http-message-signatures-directory-05</t>
      <ul spacing="normal">
        <li>
          <t>Add Sandor Major as an author.</t>
        </li>
        <li>
          <t>Remove a stale author TODO from the examples.</t>
        </li>
      </ul>
      <t>draft-meunier-http-message-signatures-directory-04</t>
      <ul spacing="normal">
        <li>
          <t>Change <tt>Signature-Agent</tt> to a Structured Fields dictionary.</t>
        </li>
        <li>
          <t>Add the <tt>req</tt> flag on directory response signatures.</t>
        </li>
        <li>
          <t>Add contributors.</t>
        </li>
      </ul>
      <t>draft-meunier-http-message-signatures-directory-03</t>
      <ul spacing="normal">
        <li>
          <t>Remove the <tt>purpose</tt> field from the Web Bot Auth example.</t>
        </li>
      </ul>
      <t>draft-meunier-http-message-signatures-directory-02</t>
      <ul spacing="normal">
        <li>
          <t>Fix typos.</t>
        </li>
      </ul>
      <t>draft-meunier-http-message-signatures-directory-01</t>
      <ul spacing="normal">
        <li>
          <t>Change the media type from <tt>application/http-message-signatures-directory</tt> to
<tt>application/http-message-signatures-directory+json</tt>.</t>
        </li>
        <li>
          <t>Add delegation and chaining examples using a full <tt>x5c</tt> chain, AIA, and
<tt>x5u</tt>.</t>
        </li>
        <li>
          <t>Add an inline directory example using a <tt>data</tt> URI.</t>
        </li>
        <li>
          <t>Fix the well-known path in examples.</t>
        </li>
      </ul>
      <t>draft-meunier-http-message-signatures-directory-00</t>
      <ul spacing="normal">
        <li>
          <t>Initial draft.</t>
        </li>
        <li>
          <t>Define <tt>Signature-Agent</tt> for <tt>https</tt>, <tt>http</tt>, and <tt>data</tt> URI values.</t>
        </li>
        <li>
          <t>Use JWKS as a directory for HTTP Message Signatures keys.</t>
        </li>
        <li>
          <t>Define the well-known URI and media type.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
Pgv0sHOztXW//dbsnZb39i+qYno6LC3PL4vN043x/sZ9zbq/6fTCvbbVaohF
tQvwe8VBRW8u9Jp+Vhm33x139yv6aL9e0VvVyo6+OJZzziqVq3rj5F35o3HV
bgzvu5VSd9beEUapvBHs9GZeq7KPdFvNRfeqVTH0RiNYzHfHlwe7W9vtg9Py
zsFdfVitvy29vj1v6d5RtfrxqN/aOcB99OKN3qpfVZvd6r6/cXR723anzY37
+7N6rXXW2hof8P3u6axYbL6/7GwE09pHY1I67zYn+tvj0ej0hh/Y9U5pfm7N
Nrzeqf9xb3j+cXlaP7V3B8fbwUbFMMYnt0pBlJTNGki5l0i5v1vc9p3q5d3R
9u2t7QRH1oiXR7PLnXnzX5fyoHu/JmUcm+oXrV53UY+lDJnsUSMwj+6c01n7
djiovG9VWkeVpeSUPq7HXNMX9WO92NQr9abT79idYOd0K+DLqVXv9e+WHn93
tXEwLJ9tXN5M563paatnXtwN6/e9Wn25UxraE3PgzvvN0+as/245G3Sdg0r3
/cfyXndenb/tuifT7hTkokuJ1hf1ytai22jpLdSMRW1MGtHRu8dbFb1bA/7V
W5Uiza2NuxeVSm9onvCrxhYfHUxH/YONjtk7WkyqFn9dquknlfH44+Rmetbp
4tp2U69VGroNrBycfZyV7tv67fuwu/9+uKuPgm7zvRd83Lnke0fH9+UN921x
Zzkce9Vmvf4+cEsdY+OoOpwNLyal7bl9/LZyMikeDECfRnwAmZUYLu4773Ik
+N9X4o+/z/cZzOHGKOP50K/rTV1WbP9/esBNTRUWIOP0ggx1mOGiY3HikjZ2
qwqqPcByw1VJBebQzVSRSRUe47RLe7JdrbAtMYm6tL855G8O+ZtD/jdzyI+Y
ZSx+ot2MTQQlV0LVZKUJQJtwW06m0Icnzxkc+WFKVWdNzH58wfL0HUuUSKWM
wZdZloLpBwna8ccKKmHMXOUlNyRx/Y067qVVVv0lKw2MmxpQYa5NjgHEToda
aMA38Wh2bLCTZg5katSGqT44yMCQYPHbir85LQwjH3gKybNv0D0PeiPItj0R
FToN1qm3osakVVcjXUsQccnnwCL0GNjxXMCGI2Hfc9kzKXsowP0BT/BThPib
jHg7g83wSlR9f5HZama4IOkZcX6tyQPvv7BoiwR9liPd+5ZK/se5rjCX+rzz
y8xKnqK2rRURo4XJpUpmPXnbKU9ftglf2gx180i2UQZvCppqAEg1SFSe76mR
Sts564PWjjzvH6Twb97hndt/d3jwxvLGz1VfV/AC1Vj+gRHum5g/iRnF8dxP
2XZI7SE3AZ55yNGF5zsWFpdXNfchp/iIs8aeZzHAKvcEu1J9jWtM01eHVAdH
ao1qd4/6otLd8vCGz7FT0jcc1eoHLsvx8CKfLn39yDxRZI7NpRnDE/ihvM6T
Nll1ID+SNWQ75VQULhdep5ivuj/B4dHFtzPKy3mbsn4JjjIco62P+kJBtIGK
2/mdLejaB2Lu/zsVQK4efpGh+SkMRvubDx/ImnzIHf6GP4Ml/PqApuRDbvMD
2hF6VoaExsCK0NgXmBFad0ervsCI0CpQDloHFNAz2A94TtmPD2g75FBkOz5g
yIsUffgW7P4bB7ukD98KT/9ZhacPud8//f4p9zf4Mshkoo+Y6RN57eFQXpBz
601uZDgQugDMluEvwIg3jCUYe3i6s2ecHUHK43Pb9za1tx4Y1gl+2eAtHcgE
NrW2fTOxHXaCf3fB3tT0G4HheMuYGFPD3dTqIVhu22Mdw+UI4DQ0DWwc862Q
eslU05HjjR9H6Mv+9IiWB4+Nl/jyT5bIiOU6C+PlNs0CgKGueognrEe+Ckva
BVVYkPoCI/kqh67mIK6Tn9v8hFE+/bEMcN6pFfTJK14zUldAkqtEOKx1cOKn
3+sdmEkrJS48p26xRzCPQzmAgrnI6hckuLgBkR1+e0xdhD5+m5f6fEl9AL22
f6bH4wv5nS/uaora9N/8oM9UXdXYWSDJ0qcGBn6d7nD1gg3OamdJkhoR+DVY
7CAWql9hnXUUc6U++aNPCEXqU5VYa7DvNukmx28lnueXXEYdEviZued/FfZl
LWERoaCacaKe35hF6T+CE0dbX7HhtqaUBXTI+yqUSymGr3y5JA/uFwV4KCI8
bl/15a6UwRMNAcmxkTG9Ie+pryHsupaTNrE6Eh94SONikMk3fYkWKHAxtCRH
iM7fypeH+G0bVgf+Fe0m49jEz13xryDgatyMPoF9TN1H0ceVAo0afWUpew3W
vmgkgwMqHf1BESP7cfOzfwwihcL6x5a0XaITBe1/AURttZ/6SgAA

-->

</rfc>
