<?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.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-skokan-oauth-additional-hashes-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Additional Hashes for OAuth PoP and PKCE">Additional Hash Algorithms for OAuth 2.0 PKCE and Proof-of-Possession</title>
    <seriesInfo name="Internet-Draft" value="draft-skokan-oauth-additional-hashes-04"/>
    <author fullname="Filip Skokan">
      <organization>Okta</organization>
      <address>
        <email>panva.ip@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="February" day="28"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>oauth</keyword>
    <keyword>pkce</keyword>
    <keyword>dpop</keyword>
    <keyword>mtls</keyword>
    <abstract>
      <?line 57?>

<t>This document defines SHA-512 as an additional hash algorithm for
OAuth 2.0 Proof Key for Code Exchange (PKCE), mutual-TLS
certificate-bound access tokens, and Demonstrating Proof of
Possession (DPoP), for use in deployments operating under security
policies that prohibit the use of SHA-256, which is otherwise
mandated or the only option in these mechanisms.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-skokan-oauth-additional-hashes/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/panva/draft-oauth-additional-hashes"/>.</t>
    </note>
  </front>
  <middle>
    <?line 67?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Several OAuth 2.0 mechanisms exclusively mandate the use of SHA-256:
Proof Key for Code Exchange (PKCE) <xref target="RFC7636"/>, mutual-TLS
certificate-bound access tokens <xref target="RFC8705"/>, and Demonstrating Proof
of Possession (DPoP) <xref target="RFC9449"/>.</t>
      <t>Security policies, such as the US Commercial National Security
Algorithm (CNSA 2.0) Suite <xref target="cnsafaq"/>, prohibit the use of SHA-256 and
require SHA-384 or SHA-512. This prevents the deployment of these
OAuth 2.0 mechanisms in such environments.</t>
      <t>This document addresses this gap by defining SHA-512 alternatives
for each of these mechanisms, for use in deployments operating
under such constrained policies. For PKCE, a new <tt>S512</tt> code challenge
method is defined. For mutual-TLS certificate-bound access tokens,
a new <tt>x5t#S512</tt> confirmation method is defined. For DPoP, this
document defines SHA-512 alternatives for the JWK Thumbprint
confirmation method (<tt>jkt#S512</tt>) and the access token hash claim
(<tt>ath#S512</tt>), as well as an extensible framework for
authorization code binding and access token hash algorithm
negotiation.</t>
      <t>[[TODO:
(<eref target="https://github.com/panva/draft-oauth-additional-hashes/issues/1">#1</eref>)
The hash algorithm chosen by this document is currently SHA-512.
The working group should determine whether to define SHA-384 or
SHA-512.]]</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?>

<t>All references to "CNSA 2.0" in this document refer to CNSA 2.0
<xref target="cnsafaq"/>, unless stated otherwise.</t>
    </section>
    <section anchor="purpose-and-scope">
      <name>Purpose and Scope</name>
      <t>The sole purpose of this document is to enable deployments operating
under security policies that prohibit SHA-256 to use PKCE,
mutual-TLS certificate-bound access tokens, and DPoP. In such
constrained
deployments, the SHA-512 alternatives defined herein are used in
place of their SHA-256 counterparts, since those deployments cannot
use SHA-256 at all.</t>
      <t>This document does not deprecate the SHA-256 based methods defined
in existing specifications. The SHA-256 based methods remain the
widely deployed, interoperable and recommended defaults for all
mechanisms addressed by this document. Deployments that are not
subject to such security policies <bcp14>SHOULD NOT</bcp14> offer or use the
SHA-512 based methods defined herein.</t>
      <t>The negotiation mechanisms defined herein may however facilitate a
broader transition away from SHA-256 in the future, should that
become necessary.</t>
    </section>
    <section anchor="pkce">
      <name>PKCE</name>
      <t>Proof Key for Code Exchange (PKCE) <xref target="RFC7636"/> defines <tt>plain</tt> and
<tt>S256</tt> as code challenge methods, with <tt>S256</tt> being the only method
that applies a
cryptographic hash to the code verifier. The specification
establishes the "PKCE Code Challenge Methods" registry, which this
document uses to register the <tt>S512</tt> code challenge method.</t>
      <section anchor="S512">
        <name><tt>S512</tt> Code Challenge Method</name>
        <t>This document defines a new code challenge method for use with
PKCE <xref target="RFC7636"/>. The client creates a code challenge derived from
the code verifier by using the following transformation on the code
verifier:</t>
        <dl>
          <dt>S512:</dt>
          <dd>
            <t>code_challenge = BASE64URL(SHA-512(ASCII(code_verifier)))</t>
          </dd>
        </dl>
        <t>The server-side verification of the code verifier follows
<xref section="4.6" sectionFormat="of" target="RFC7636"/>, using SHA-512 as the hash algorithm.</t>
      </section>
      <section anchor="as-metadata">
        <name>Authorization Server Metadata</name>
        <t>An Authorization Server that supports the <tt>S512</tt> code challenge
method <bcp14>MUST</bcp14> advertise its support in its Authorization Server
metadata (e.g., <xref target="RFC8414"/> or <xref target="OpenID.Discovery"/>) by including
<tt>S512</tt> in the <tt>code_challenge_methods_supported</tt> metadata parameter
value as defined in <xref target="RFC8414"/>.</t>
      </section>
    </section>
    <section anchor="mtls">
      <name>Mutual-TLS</name>
      <t>OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound
Access Tokens <xref target="RFC8705"/> exclusively uses SHA-256 for
certificate-bound access tokens via the <tt>x5t#S256</tt> confirmation
method. No alternative hash algorithms or extension points for hash
algorithm negotiation are defined. This document defines the
<tt>x5t#S512</tt> confirmation method and a Resource Server metadata
parameter for negotiating the confirmation method.</t>
      <section anchor="x5t-S512">
        <name><tt>x5t#S512</tt> Confirmation Method</name>
        <t>RFC 8705 <xref target="RFC8705"/> defines the <tt>x5t#S256</tt> confirmation method
member for binding access tokens to a client certificate using a
SHA-256 hash of the DER-encoded X.509 certificate.</t>
        <t>This document defines an analogous confirmation method member
<tt>x5t#S512</tt> that uses SHA-512 as the hash algorithm:</t>
        <dl>
          <dt>x5t#S512:</dt>
          <dd>
            <t>The value is a base64url-encoded SHA-512 hash of the
DER encoding of the X.509 certificate.</t>
          </dd>
        </dl>
        <t>When using <tt>x5t#S512</tt>, the Authorization Server computes the
SHA-512 hash of the client certificate presented during mutual-TLS
and includes the result as the <tt>x5t#S512</tt> member of the <tt>cnf</tt>
claim in the access token (for JWT access tokens) or associates
it with the token for later retrieval via token introspection
<xref target="RFC7662"/>.</t>
        <t>The Resource Server <bcp14>MUST</bcp14> compute the SHA-512 hash of the client
certificate presented during mutual-TLS and compare it with the
<tt>x5t#S512</tt> value in the <tt>cnf</tt> claim. If the values do not match,
the Resource Server <bcp14>MUST</bcp14> reject the request.</t>
        <t>The choice of <tt>x5t#S512</tt> over <tt>x5t#S256</tt> is a deployment decision.
It can be configured out of band or by the Authorization Server
using the Resource Server's metadata (<xref target="mtls-rs-metadata"/>).</t>
        <t>[[TODO:
(<eref target="https://github.com/panva/draft-oauth-additional-hashes/issues/2">#2</eref>)
<xref section="3.1" sectionFormat="of" target="RFC7800"/> does not preclude the presence of
both <tt>x5t#S256</tt> and <tt>x5t#S512</tt> in the same <tt>cnf</tt> claim.
Including both would not represent confirmations for two
different keys but rather two different hash confirmations of
the same certificate. This may actually be useful during a
transition period in possible future non-constrained deployment
scenarios. The working group should determine whether to
prohibit or allow this.]]</t>
      </section>
      <section anchor="mtls-rs-metadata">
        <name>Resource Server Metadata</name>
        <t>This document defines the <tt>mtls_confirmation_methods_supported</tt>
Resource Server metadata parameter <xref target="RFC9728"/>. Its value is a JSON
array containing the mutual-TLS confirmation method names that the
Resource Server supports. Defined values are <tt>x5t#S256</tt> and
<tt>x5t#S512</tt>. If omitted, the default is <tt>["x5t#S256"]</tt>.</t>
      </section>
    </section>
    <section anchor="dpop">
      <name>DPoP</name>
      <t>OAuth 2.0 Demonstrating Proof of Possession (DPoP) <xref target="RFC9449"/>
exclusively uses SHA-256 for all of its hash
operations: the <tt>jkt</tt> confirmation method, the <tt>ath</tt> access token
hash claim, and the <tt>dpop_jkt</tt> authorization code binding parameter.
No alternative hash algorithms or extension points for hash
algorithm negotiation are defined.</t>
      <t><xref section="11.10" sectionFormat="of" target="RFC9449"/> anticipated the need for hash algorithm
agility and foresaw that a future specification would define a new
confirmation method, JWT claim, and authorization request parameter
for use as alternatives to their SHA-256 counterparts. This document
defines those DPoP mechanisms: the <tt>dpop_jkt_method</tt> authorization
request parameter, the <tt>jkt#S512</tt> confirmation method, and the
<tt>ath#S512</tt> JWT claim. In constrained deployments where SHA-256 is
prohibited, these are used in place of their SHA-256 counterparts
rather than alongside them.</t>
      <section anchor="authorization-code-binding-methods">
        <name>Authorization Code Binding Methods</name>
        <section anchor="dpop-jkt-method">
          <name><tt>dpop_jkt_method</tt> Authorization Request Parameter</name>
          <t>RFC 9449 <xref target="RFC9449"/> defines the <tt>dpop_jkt</tt> authorization request
parameter as the JWK Thumbprint <xref target="RFC7638"/> of the DPoP public key
using SHA-256. This document changes the definition of <tt>dpop_jkt</tt>
to allow alternative hash algorithms indicated by the
<tt>dpop_jkt_method</tt> parameter.</t>
          <t>This document defines the <tt>dpop_jkt_method</tt> authorization request
parameter, sent alongside <tt>dpop_jkt</tt>, to indicate the hash algorithm
used to compute the JWK Thumbprint. The following method values are
defined:</t>
          <dl>
            <dt>S256:</dt>
            <dd>
              <t>JWK Thumbprint <xref target="RFC7638"/> using SHA-256, as originally
defined in <xref section="10" sectionFormat="of" target="RFC9449"/>.</t>
            </dd>
            <dt>S512:</dt>
            <dd>
              <t>JWK Thumbprint <xref target="RFC7638"/> using SHA-512.</t>
            </dd>
          </dl>
          <t>For backwards compatibility, when <tt>dpop_jkt_method</tt> is absent from
the authorization request, the Authorization Server <bcp14>MUST</bcp14> assume the
value <tt>S256</tt>.</t>
          <t>The value of <tt>dpop_jkt</tt> <bcp14>MUST</bcp14> be computed using the hash algorithm
indicated by <tt>dpop_jkt_method</tt>.</t>
        </section>
        <section anchor="dpop-as-metadata">
          <name>Authorization Server Metadata</name>
          <t>This document defines the <tt>dpop_jkt_methods_supported</tt> Authorization
Server metadata parameter. Its value is a JSON array containing the
<tt>dpop_jkt_method</tt> values that the Authorization Server supports.</t>
          <t>An Authorization Server that supports <tt>dpop_jkt_method</tt> values
beyond <tt>S256</tt> <bcp14>MUST</bcp14> advertise its support by including the supported
values in the <tt>dpop_jkt_methods_supported</tt> metadata parameter.</t>
        </section>
      </section>
      <section anchor="sha-512-hash-algorithms">
        <name>SHA-512 Hash Algorithms</name>
        <section anchor="jkt-S512">
          <name><tt>jkt#S512</tt> Confirmation Method</name>
          <t>RFC 9449 <xref target="RFC9449"/> defines the <tt>jkt</tt> confirmation method member
for binding access tokens to a DPoP public key using a SHA-256
JWK Thumbprint <xref target="RFC7638"/>.</t>
          <t>This document defines an analogous confirmation method member
<tt>jkt#S512</tt> that uses SHA-512 as the hash algorithm:</t>
          <dl>
            <dt>jkt#S512:</dt>
            <dd>
              <t>The value is the base64url encoding of the JWK
Thumbprint <xref target="RFC7638"/> computed using SHA-512 of the DPoP
public key (in JWK format) to which the access token is bound.</t>
            </dd>
          </dl>
          <t>When using <tt>jkt#S512</tt>, the Authorization Server computes the
SHA-512 JWK Thumbprint of the DPoP public key and includes the
result as the <tt>jkt#S512</tt> member of the <tt>cnf</tt> claim in the access
token (for JWT access tokens) or associates it with the token
for later retrieval via token introspection <xref target="RFC7662"/>.</t>
          <t>The Resource Server <bcp14>MUST</bcp14> compute the SHA-512 JWK Thumbprint of
the DPoP public key and compare it with the <tt>jkt#S512</tt> value in
the <tt>cnf</tt> claim. If the values do not match, the Resource Server
<bcp14>MUST</bcp14> reject the request.</t>
          <t>The choice of <tt>jkt#S512</tt> over <tt>jkt</tt> is a deployment decision. It
can be configured out of band or by the Authorization Server using
the Resource Server's metadata (<xref target="dpop-rs-metadata"/>).</t>
          <t>[[TODO:
(<eref target="https://github.com/panva/draft-oauth-additional-hashes/issues/2">#2</eref>)
<xref section="3.1" sectionFormat="of" target="RFC7800"/> does not preclude the presence of
both <tt>jkt</tt> and <tt>jkt#S512</tt> in the same <tt>cnf</tt> claim. Including
both would not represent confirmations for two different keys
but rather two different hash confirmations of the same key.
This may actually be useful during a transition period in
possible future non-constrained deployment scenarios. The
working group should determine whether to prohibit or allow
this.]]</t>
        </section>
        <section anchor="dpop-ath">
          <name><tt>ath#S512</tt> Access Token Hash</name>
          <t>RFC 9449 <xref target="RFC9449"/> defines the <tt>ath</tt> claim in the DPoP proof JWT
as the base64url-encoded SHA-256 hash of the ASCII encoding of the
access token value.</t>
          <t>This document defines an analogous claim <tt>ath#S512</tt> that uses
SHA-512 as the hash algorithm:</t>
          <dl>
            <dt>ath#S512:</dt>
            <dd>
              <t>The value is the base64url encoding of the SHA-512 hash of
the ASCII encoding of the associated access token's value.</t>
            </dd>
          </dl>
          <t>[[TODO:
(<eref target="https://github.com/panva/draft-oauth-additional-hashes/issues/2">#2</eref>)
Including both <tt>ath</tt> and <tt>ath#S512</tt> in the same DPoP proof JWT
would not represent hashes of two different access tokens but
rather two different hash confirmations of the same access
token. This may actually be useful during a transition period
in possible future non-constrained deployment scenarios. The
working group should determine whether to prohibit or allow
this.]]</t>
          <t>The Resource Server <bcp14>MUST</bcp14> compute the SHA-512 hash of the ASCII
encoding of the access token value and compare it with the
<tt>ath#S512</tt> value in the DPoP proof JWT. If the values do not
match, the Resource Server <bcp14>MUST</bcp14> reject the request.</t>
          <t>A Resource Server <bcp14>MAY</bcp14> signal the acceptable access token hash
methods by including the <tt>ath_methods</tt> parameter in the
<tt>WWW-Authenticate: DPoP</tt> challenge. The value of <tt>ath_methods</tt> is a
space-delimited list of access token hash claim names that the
Resource Server supports, analogous to the <tt>algs</tt> parameter defined
in <xref section="7.1" sectionFormat="of" target="RFC9449"/>. When <tt>ath_methods</tt> is absent, the
Client <bcp14>MUST</bcp14> use <tt>ath</tt>. When <tt>ath_methods</tt> is present, the Client
<bcp14>MUST</bcp14> use one of the listed methods. Additionally, Resource Server
metadata for the supported access token hash methods is defined in
<xref target="dpop-rs-metadata"/>.</t>
          <t>The following is a non-normative example of an HTTP response
signalling the client to use <tt>ath#S512</tt>:</t>
          <sourcecode type="http-message"><![CDATA[
HTTP/1.1 401 Unauthorized
WWW-Authenticate: DPoP algs="Ed25519", ath_methods="ath#S512"
]]></sourcecode>
        </section>
        <section anchor="dpop-rs-metadata">
          <name>Resource Server Metadata</name>
          <t>This document defines the following Resource Server metadata
parameters <xref target="RFC9728"/>:</t>
          <dl>
            <dt>dpop_confirmation_methods_supported:</dt>
            <dd>
              <t>JSON array containing the DPoP confirmation method names
that the Resource Server supports. Defined values are <tt>jkt</tt>
and <tt>jkt#S512</tt>. If omitted, the default is <tt>["jkt"]</tt>.</t>
            </dd>
            <dt>dpop_access_token_hash_methods_supported:</dt>
            <dd>
              <t>JSON array containing the access token hash claim names
that the Resource Server supports. Defined values are <tt>ath</tt>
and <tt>ath#S512</tt>. If omitted, the default is <tt>["ath"]</tt>.</t>
            </dd>
          </dl>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The <tt>S512</tt> code challenge method provides the same structural
security properties as <tt>S256</tt>. It is a one-way transformation of
the code verifier that prevents an attacker who intercepts the
authorization code from computing the code verifier needed to exchange
it for tokens.</t>
      <t>The <tt>x5t#S512</tt> confirmation method provides the same structural
security properties as <tt>x5t#S256</tt> defined in <xref target="RFC8705"/>.</t>
      <t>The <tt>jkt#S512</tt> confirmation method, <tt>dpop_jkt</tt> combined with
<tt>dpop_jkt_method</tt> parameter, and <tt>ath#S512</tt> claim provide the same
structural security properties as their SHA-256 counterparts
defined in DPoP <xref target="RFC9449"/>.</t>
      <t>SHA-512 provides a 256-bit collision resistance and 512-bit preimage
resistance, exceeding the 128-bit and 256-bit levels provided by
SHA-256. The use of SHA-512 is suitable for deployments with elevated
security requirements.</t>
      <t>Deployments that do not have restrictions on use of SHA-256
do not need to migrate away from the established SHA-256 based
mechanisms.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="pkce-code-challenge-method-registration">
        <name>PKCE Code Challenge Method Registration</name>
        <t>This document requests registration of the following value in the
"PKCE Code Challenge Methods" registry established by <xref section="6.2" sectionFormat="of" target="RFC7636"/>:</t>
        <dl>
          <dt>Code Challenge Method Parameter Name:</dt>
          <dd>
            <t><tt>S512</tt></t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="S512"/> of this document</t>
          </dd>
        </dl>
      </section>
      <section anchor="dpop-binding-registry">
        <name>DPoP Authorization Code Binding Methods Registry</name>
        <t>This document establishes the "DPoP Authorization Code Binding
Methods" registry for <tt>dpop_jkt_method</tt> values.</t>
        <t>New entries are registered using the Specification Required policy
<xref target="RFC5226"/>.</t>
        <t>The initial contents of the registry are:</t>
        <dl>
          <dt>Method Name:</dt>
          <dd>
            <t><tt>S256</tt></t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref section="10" sectionFormat="of" target="RFC9449"/></t>
          </dd>
          <dt>Method Name:</dt>
          <dd>
            <t><tt>S512</tt></t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="dpop-jkt-method"/> of this document</t>
          </dd>
        </dl>
      </section>
      <section anchor="oauth-parameters-registrations">
        <name>OAuth Parameters Registrations</name>
        <t>This document requests registration of the following value in the
"OAuth Parameters" registry established by <xref target="RFC6749"/>:</t>
        <dl>
          <dt>Parameter Name:</dt>
          <dd>
            <t><tt>dpop_jkt_method</tt></t>
          </dd>
          <dt>Parameter Usage Location:</dt>
          <dd>
            <t>authorization request</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="dpop-jkt-method"/> of this document</t>
          </dd>
        </dl>
      </section>
      <section anchor="oauth-authorization-server-metadata-registration">
        <name>OAuth Authorization Server Metadata Registration</name>
        <t>This document requests registration of the following value in the
"OAuth Authorization Server Metadata" registry established by
<xref target="RFC8414"/>:</t>
        <dl>
          <dt>Metadata Name:</dt>
          <dd>
            <t><tt>dpop_jkt_methods_supported</tt></t>
          </dd>
          <dt>Metadata Description:</dt>
          <dd>
            <t>JSON array containing a list of the <tt>dpop_jkt_method</tt>
values supported by the Authorization Server</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="dpop-as-metadata"/> of this document</t>
          </dd>
        </dl>
      </section>
      <section anchor="jwt-claims-registration">
        <name>JWT Claims Registration</name>
        <t>This document requests registration of the following value in the
"JSON Web Token Claims" registry established by <xref target="RFC7519"/>:</t>
        <dl>
          <dt>Claim Name:</dt>
          <dd>
            <t><tt>ath#S512</tt></t>
          </dd>
          <dt>Claim Description:</dt>
          <dd>
            <t>The base64url-encoded SHA-512 hash of the ASCII encoding
of the associated access token's value</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="dpop-ath"/> of this document</t>
          </dd>
        </dl>
      </section>
      <section anchor="oauth-protected-resource-metadata-registrations">
        <name>OAuth Protected Resource Metadata Registrations</name>
        <t>This document requests registration of the following values in the
"OAuth Protected Resource Metadata" registry established by
<xref target="RFC9728"/>:</t>
        <dl>
          <dt>Metadata Name:</dt>
          <dd>
            <t><tt>dpop_confirmation_methods_supported</tt></t>
          </dd>
          <dt>Metadata Description:</dt>
          <dd>
            <t>JSON array containing a list of the DPoP confirmation
method names supported by the Resource Server</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="dpop-rs-metadata"/> of this document</t>
          </dd>
          <dt>Metadata Name:</dt>
          <dd>
            <t><tt>dpop_access_token_hash_methods_supported</tt></t>
          </dd>
          <dt>Metadata Description:</dt>
          <dd>
            <t>JSON array containing a list of the access token hash
claim names supported by the Resource Server</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="dpop-rs-metadata"/> of this document</t>
          </dd>
          <dt>Metadata Name:</dt>
          <dd>
            <t><tt>mtls_confirmation_methods_supported</tt></t>
          </dd>
          <dt>Metadata Description:</dt>
          <dd>
            <t>JSON array containing a list of the mutual-TLS
confirmation method names supported by the Resource Server</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="mtls-rs-metadata"/> of this document</t>
          </dd>
        </dl>
      </section>
      <section anchor="jwt-confirmation-methods-registrations">
        <name>JWT Confirmation Methods Registrations</name>
        <t>This document requests registration of the following values in the
"JWT Confirmation Methods" registry established by <xref target="RFC7800"/>:</t>
        <dl>
          <dt>Confirmation Method Value:</dt>
          <dd>
            <t><tt>x5t#S512</tt></t>
          </dd>
          <dt>Confirmation Method Description:</dt>
          <dd>
            <t>X.509 Certificate SHA-512 Thumbprint</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="x5t-S512"/> of this document</t>
          </dd>
          <dt>Confirmation Method Value:</dt>
          <dd>
            <t><tt>jkt#S512</tt></t>
          </dd>
          <dt>Confirmation Method Description:</dt>
          <dd>
            <t>JWK SHA-512 Thumbprint</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="jkt-S512"/> of this document</t>
          </dd>
        </dl>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7636">
          <front>
            <title>Proof Key for Code Exchange by OAuth Public Clients</title>
            <author fullname="N. Sakimura" initials="N." role="editor" surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Agarwal" initials="N." surname="Agarwal"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>OAuth 2.0 public clients utilizing the Authorization Code Grant are susceptible to the authorization code interception attack. This specification describes the attack as well as a technique to mitigate against the threat through the use of Proof Key for Code Exchange (PKCE, pronounced "pixy").</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7636"/>
          <seriesInfo name="DOI" value="10.17487/RFC7636"/>
        </reference>
        <reference anchor="RFC7638">
          <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="RFC8414">
          <front>
            <title>OAuth 2.0 Authorization Server Metadata</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <date month="June" year="2018"/>
            <abstract>
              <t>This specification defines a metadata format that an OAuth 2.0 client can use to obtain the information needed to interact with an OAuth 2.0 authorization server, including its endpoint locations and authorization server capabilities.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8414"/>
          <seriesInfo name="DOI" value="10.17487/RFC8414"/>
        </reference>
        <reference anchor="RFC8705">
          <front>
            <title>OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes OAuth client authentication and certificate-bound access and refresh tokens using mutual Transport Layer Security (TLS) authentication with X.509 certificates. OAuth clients are provided a mechanism for authentication to the authorization server using mutual TLS, based on either self-signed certificates or public key infrastructure (PKI). OAuth authorization servers are provided a mechanism for binding access tokens to a client's mutual-TLS certificate, and OAuth protected resources are provided a method for ensuring that such an access token presented to it was issued to the client presenting the token.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8705"/>
          <seriesInfo name="DOI" value="10.17487/RFC8705"/>
        </reference>
        <reference anchor="RFC9449">
          <front>
            <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Waite" initials="D." surname="Waite"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9449"/>
          <seriesInfo name="DOI" value="10.17487/RFC9449"/>
        </reference>
        <reference anchor="RFC9728">
          <front>
            <title>OAuth 2.0 Protected Resource Metadata</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <author fullname="A. Parecki" initials="A." surname="Parecki"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>This specification defines a metadata format that an OAuth 2.0 client or authorization server can use to obtain the information needed to interact with an OAuth 2.0 protected resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9728"/>
          <seriesInfo name="DOI" value="10.17487/RFC9728"/>
        </reference>
        <reference anchor="OpenID.Discovery" target="https://openid.net/specs/openid-connect-discovery-1_0-errata2.html">
          <front>
            <title>OpenID Connect Discovery 1.0 incorporating errata set 2</title>
            <author initials="N." surname="Sakimura">
              <organization/>
            </author>
            <author initials="J." surname="Bradley">
              <organization/>
            </author>
            <author initials="M." surname="Jones">
              <organization/>
            </author>
            <author initials="E." surname="Jay">
              <organization/>
            </author>
            <date year="2023" month="December"/>
          </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>
        <reference anchor="RFC5226">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="H. Alvestrand" initials="H." surname="Alvestrand"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>Many protocols make use of identifiers consisting of constants and other well-known values. Even after a protocol has been defined and deployment has begun, new values may need to be assigned (e.g., for a new option type in DHCP, or a new encryption or authentication transform for IPsec). To ensure that such quantities have consistent values and interpretations across all implementations, their assignment must be administered by a central authority. For IETF protocols, that role is provided by the Internet Assigned Numbers Authority (IANA).</t>
              <t>In order for IANA to manage a given namespace prudently, it needs guidelines describing the conditions under which new values can be assigned or when modifications to existing values can be made. If IANA is expected to play a role in the management of a namespace, IANA must be given clear and concise instructions describing that role. This document discusses issues that should be considered in formulating a policy for assigning values to a namespace and provides guidelines for authors on the specific text that must be included in documents that place demands on IANA.</t>
              <t>This document obsoletes RFC 2434. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5226"/>
          <seriesInfo name="DOI" value="10.17487/RFC5226"/>
        </reference>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7800">
          <front>
            <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7800"/>
          <seriesInfo name="DOI" value="10.17487/RFC7800"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7662">
          <front>
            <title>OAuth 2.0 Token Introspection</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This specification defines a method for a protected resource to query an OAuth 2.0 authorization server to determine the active state of an OAuth 2.0 token and to determine meta-information about this token. OAuth 2.0 deployments can use this method to convey information about the authorization context of the token from the authorization server to the protected resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7662"/>
          <seriesInfo name="DOI" value="10.17487/RFC7662"/>
        </reference>
        <reference anchor="cnsafaq" target="https://media.defense.gov/2022/Sep/07/2003071836/-1/-1/0/CSI_CNSA_2.0_FAQ_.PDF">
          <front>
            <title>The Commercial National Security Algorithm Suite 2.0 and Quantum Computing FAQ</title>
            <author>
              <organization>National Security Agency</organization>
            </author>
            <date year="2024" month="December"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 602?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
    <section numbered="false" anchor="document-history">
      <name>Document History</name>
      <t>draft-skokan-oauth-additional-hashes-04</t>
      <ul spacing="normal">
        <li>
          <t>Opened issues for spec TODOs and inlined their links</t>
        </li>
      </ul>
      <t>draft-skokan-oauth-additional-hashes-03</t>
      <ul spacing="normal">
        <li>
          <t>Added Document History</t>
        </li>
        <li>
          <t>Changed <tt>ath_method</tt> to <tt>ath_methods</tt> (plural, space-delimited list),
analogous to the <tt>algs</tt> parameter in <xref section="7.1" sectionFormat="of" target="RFC9449"/></t>
        </li>
        <li>
          <t>Removed premature "in place of <tt>ath</tt>" language for <tt>ath#S512</tt>,
pending resolution of the dual-hash coexistence TODO</t>
        </li>
      </ul>
      <t>draft-skokan-oauth-additional-hashes-02</t>
      <ul spacing="normal">
        <li>
          <t>Removed client-side <bcp14>MUST NOT</bcp14> requirements for using unadvertised
PKCE and DPoP authorization code binding methods</t>
        </li>
      </ul>
      <t>draft-skokan-oauth-additional-hashes-01</t>
      <ul spacing="normal">
        <li>
          <t>Changed hash algorithm from SHA-384 to SHA-512</t>
        </li>
        <li>
          <t>Added Purpose and Scope section</t>
        </li>
        <li>
          <t>Added Mutual-TLS section with <tt>x5t#S512</tt> confirmation method
and <tt>mtls_confirmation_methods_supported</tt> RS metadata</t>
        </li>
        <li>
          <t>Added <tt>dpop_confirmation_methods_supported</tt> RS metadata for DPoP</t>
        </li>
        <li>
          <t>Added <tt>WWW-Authenticate</tt> challenge parameter for access token
hash method signalling</t>
        </li>
        <li>
          <t>Added TODO notes for dual-hash coexistence questions</t>
        </li>
        <li>
          <t>Expanded Security Considerations</t>
        </li>
      </ul>
      <t>draft-skokan-oauth-additional-hashes-00</t>
      <ul spacing="normal">
        <li>
          <t>Initial draft</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9Vc63LbRpb+30/RS/0YaYukRFq3qCYzq0jyWI4tKaK83pTj
kppAk0QEAggukrkq51nmWebJ9pzT3UDjRlKRs7WbSpUpsC+nz/18fcBer8dS
L/XlEe8cu66XemEgfP5GJDN+7E/D2Etn84RPwphfHmfpjA/7O/zqx5MzLgKX
X8VhOOnB/1dhksgkgckdJsbjWD7U15P2MlfhlVoBluowR6QS9loc8SR1GXND
JxBzIMmNxSTtJffhvQh6oYCJPZEv2pvRor2dXZZk47lH26eLCOadn928ZkE2
H8v4iLmw+BFzwiCRQZIlRzyNM8mAwFdMxFIAoSPpZHDQRYc9hvH9NA6zCJ5+
lGOOtAIP/lvglnjcNHRCv8Pu5QKGukeM9zjRhR+ie0fiv24URvjvPPUT9iCD
DLbnfJ1lOVf0dz4CHV4w5f/ASfh8CnLIxvBNJIIHsa0Y08KRDmOCNkDyYC7n
k8z3FUdfe74X8RFxlL4K46kINCVH/PI+FfRYzoXnH3Hare9F/zHFv/tOOGcs
COM5DH+gU12/PjnYf7VffDzUHw93B7vm48HOnv743e7ud+bjwZDGXkYyOD/t
n3qJEz5I0AHaX+uk+pKfhEEgnZTng/gA1NALnDCOwhiIAVbJGD4InsiUD9US
Ip7K9IjP0jRKjra3Q1jLc/uBTLeTSDqJftBz1OI91yzeG9zu9NRyw/4snfu0
HKkRP5WORLXig70uH+4MX9F3Obvpvx5QBmp20ecjce/Ns1iUv3jb5z/EwvXl
ovz8fZ+/DQOZlJ+ewVOxYMwLJjXG7w/xoxMkYiJ+KzGuczOTwLb5XMaOBwZ4
IbQlGl0vrJuPMi+VZNhokT9lIkizOU6OMuLs6+OfOg3HBM05alp3KgNnYbEM
uLTbGzTLZC5dT/RdOQHTlP1p+LANo4fbIxlt7xzA551XOweDw1f7270B/r+z
fTI6vz25GB3fArm3QNht/+r0Nev3+4z1ej0uxkkaCydl7GbmJRwcSTaXQcph
Bw84y0dvjnt7gyEXCZyVF5bD0XK4yFkCrGaWv0M3x3+UC3JgJ6Er+dkXZyaC
qeSb6MG2unyepRlY4M27EXNknHoTD51abxxmwFPhOOAdeRrewzm7xOZTOQeP
lGrlVTuEE1Y4Ur55Ck4SVsY9s0SCNsAxIj9c4IkSDtqrJ8MOoJCJFgCLQt9z
PDhsOhMpj+Jw5o29FP6StAzsg1wY7u13+ePMc2YcGBXCt/Gjl0g2B+KAcBfE
S1PCwF/AXuSogAJ4BGvMJZ7eS+YJ8J0YP/dcUGjGNvh5kMahmzk4g7GRBIsC
/hbMLOZy+cXxswQUGrbQ+zaQecRW858/PWlP9PXrc2Sh5qGDwnktcmGweU0u
aib6s69f+3hOrf6G+12eZMBbkdCJPoyWGiMrjHETtRsZtaXt8ulJ2zdSuESa
SD2L5W+ZF0t69upwF4WoVb7PySIiCM2kPrhAoU64DomWNQoKBE+nkcGDF4cB
KWC/amNgTbFELsFK8HwqIj5eKMtDVuam56cyDsiPJQzlKQWsbPa3dl2t+Uxr
PpLmKKmBlbu5DPr8NayACgKy5YF85HcjIOEOBoMKwT6+L0GH2FyCX3PRDpSf
cNXEQo34KpNmevkve+mG2SKYeOSvQWVaNkBF6hK3WLunsthFDEHBvf34I4gT
8pso9oKUNe21effrvaZlixQb59lEK5fn+MKbs807kc704C7q7KP0fe0k5ZcU
TuiNfcknMeQQmCKRfxSlJIZYOvYCF2UtKgyquFcWQLaXejQR1OiXT798urk8
vTxim582Bp83TXBQOQ8mHdtrZD3bkABm8M9ga4th8Kt4dGcWQv6HGpmWtBY+
gw3G8BGckLEVWuBR52CUuPFkFma+C+IBccxBQuA7JTpNOKCWmWV0zCz0y+df
PjP0ipDBoN0BwYl2M2gW9Dej3SCjxB3dhHfefxjddLrqX35xSZ+vz376cH59
doqfYfF37/IPTI8Yvbn88O60+FTMPLl8//7s4lRNhqe89Ih13h//3FHOr3N5
dXN+eXH8rqN8fcm8wa3AWcdojsADcCQYJQSorkyc2BvDHzDnh5Orf/1zsAte
69/APQ4HA3CP+o/DwcEu/AF8C9RuFFrUn8DJBRNRJEWMq4BhckdEXir8hPQR
uP8IWiRjCfry75+QM5+P+F/HTjTY/Zt+gAcuPTQ8Kz0kntWf1CYrJjY8atgm
52bpeYXTZXqPfy79bfhuPfzr331Uqt7g8O9/AxU6BpbEkCeBpjroYkPeMZGi
QVg0EgeZMawURrLAR9tMUhXpTfDvk6peZZBUg9dFEY0ccLZKQZMQPECkvyN3
XTEj2E0GAv3EUmddDZSVNMVEM1gNXT85b/YMT6ysCxxrHzIRCg3MCg3MIo20
rtnPai9NCofqGFOwRQVnkS8cfX7pxTm5DpCCViFiXDiB0gRTGWSVzQxHBEGY
MjxYHrVT1PZaMHVDIAPG4vRYOiYzMrPGAslRrj4nF0oE8NZeQpkLljiKT+hj
MPq3zY6x1qPMjj16LuZiimTpdpWpkwhRrshaIAYTGZAlOsOJyPxUxSU4BbNS
BpMNuDWX2wfnV7CEpI8MRsZAHf8r1nkgfArqdWUpbBBkgDquUwSk3oiykTla
ln2lzFYAsvOcitznYsHB8WAKyyfCgdIZDYYLNo5DgcoMWgWhkVYRjzB4Eofz
nMuKp1B7p1ksuyaA4HnZGJmIVKDminihDQ90nT0z2c3zhTtQTC+4oyzwbgT7
36HfLCc6hieQ+ENM5HrYWKK+5Lm+GsOUXKLIR64L5sSLKA2nsYigZFCxFYSE
k2gL4BAom4yVnpV0j0lwM2PfIwAIJ3QIPqKDneSUvVeUdUC/pqDB8cIUJ+Xs
KEuU71OjpMqGGpM6fQ7g7MaGGdG4J3+ixOdrW8moMrvGxfMEFdnJ6FiWaBQv
HGAgrObEElQHV6usBGoELscl1WE1fqLxQIWk5TMJfT98pL9Q8TQeAMoXBrko
mJl6BEUJnOuIHdHz22LL7/kPx6Oz/d0P1+82tc1sHo9Ozs83aaBZYAsSKeX5
ZQzPeomXE+bobSd1DdBEJhBwoLqhYbv9fRxqFWjqSFYxntYSNiW4MlA2IkJQ
bsJFrOdpQyS9uf4LBHgcNE8gXU6yKApjXfksrQMomRDuA0YarD5gjp6MNo1/
Nu3CDCF8U/an/a4uLXcHmPSAnjw9VZGur1+3UL4QK/wM02amqdKO464stltt
vLeaFune8XxLiDuQmoNBsAfhZxJZanwZrGZRojzN+yKePm0gTAnMKwo/69sT
pb34FWavWu4YB06sOPwDxmF2rOLwTa2wLtX5ZMHGRWIZsapCf/CEYgfVVuSx
7HpHC63PL0I7hle0KUEJ6EoGDhCFXqDDFo5jRZlgBwaMSnm91uwcMOysKPqo
FuLXMgmzGJICrZJGciyXHFGTb68tvmFB7dGKTU/sMblPg+972q+BIDhKoiQT
6wRtrDWhYK4QT6QvL/BKIgKHLHJHV4hTm7lgRtwkE+00Ts+ue5DKhphH/Fd/
b+c7e2Y9HTLOGJVP+OE0zJJGbitabZmQ8eda1+pvwF2aOegy0e8pU/LQaWNK
sb+bxX5Os1nMOhPjeCpOI/Dg+qRNp/sI5qTZU5CqEtJGD+YQGKsVrmHrJu5D
3ggVLyb4LiRRsJMFi6FSKr+jVQDGQiZnWGOxTwtfb3PnBJM7RqCBcVOlOn8T
leTtx5uygmyh9YkkCR0PgyCDNJ8SEJyu5uE0X6AVQFkZexJYrwyfvvUQUsSk
ggxeh9j9IXkzFFTVuMiBa5aVkvw6x9iaHCMzxiXRKVj025qm9SUoOKXgFahE
1JY0ALWaMntQXGfWpZjfeIBYqlyYpPMbTEz1cZ1Z6KkaxNocI4ptyKS2FsDn
QkqWEN5ynmIdgoU8GdAUslOoATPCAMdUl8cqZ2/WRVbkIxWy/5IUAWnz6Qnj
Si+2AvTXrSrYM3wp2DOEHKVINF71BybRONzZQSdnqiisoVDZiWwlZuIgG4eY
CBdsw/NbXNXCTMBFlyTKzk3Q5rTCI+X2uFMstRaV3JOG7h5D5noTKuJTRHwS
Pga+Q31MQNJjyItvFTpXWgLIzYmx3YmKTVisCAf1FaLsmArWSeYbTRbMqlWg
nvNCygygmNfQHlUpcIKgZyOphQKxxIHqHubpWnJtdIzlpb0qEsNHyuk1NAah
rKb8RXpXU6G2uEAWh6NvbZY1pEysLRAXKZRG9g+Gh5jDn0OeYAWCt6PLCybi
GJgNO6VCYdu4vY1RNAQmvH7V1S66jSoZJjvtK2QQWK+dBfqbsn5aLoc8Szj3
0hSLdQXpU0mOxN596ph5nc93KvFDYMRO9ZpvoZbfdrBl6RxBd7ACZsmUWmn8
J8SrTJLSr/dpY5qh6Ecg+q4UPViBU3dzIPsO79hvaaklMHQu0j77c7NDZjmh
waA/2NFuSDEMqIbU2YsIbEsJfZBuvrwFi4spQgwLOiV8LRPxqPERY5+lylp7
HY0+U53adBXQpYBsMbDMMR1brBLCVLWI/9uomCr4W0CvSobMCstEEAyVyAJa
jspC1HZakSWrUdbNNag93851hBV3GgUDCBRsdnAJ+qy4AMm8JPdc2riQJQUS
yNdAAplx7TNMXP0wmFIRDc8a61vCJ37QyqsRERy20cCq8sxrzaqrwolt4JQe
TOmpKboQQJW0rbnsQtvMSovCqlZ0pli+icrhj0OseXWij6KPsrHvORjyWFH7
A7eqdZXCucztpLkioVQnJ41huUFxZJlFIxcdsjiVy7A6Cy33sCysLNfSOmu6
nMJ/Ie6C9C7akKGsoQhhpFswxk5eyyxW0bdAgnR4KaKFtjwX8R+6PT9aJqSS
NOiqBSiZegFmEVDPlECE3MOV3Vu/AJrW2ogu2Bjef46Fc/8o8M6LMusUbA39
X5cuhRoYjxF4TMzN0bJGWSwppBS2A8njXGHGKrQrJFSn1+pRSeXUNMqYSS6u
BcpVJFjSu9oR+sqcV8FaZLpi3bynskkJISrtxFpznsY8hzflOQ12pHXP5DbN
p8sTnHVhurZ92FguQszSVUK0BKyzsTWVxhu+ME2yqdWWcbCBWYx8tykqK72S
2mEXQaoZn0HHbOEzy91yW85k4I4V0EzFBRtcxpg9azfblwMxBR/WB2LMnBoQ
g6NzKKYGtMAxwGW1+J+K5RoSrCAFcy0ebYJuIF8UyL6FjDQXEhXMA+gi3LIC
6+QHfy6sU5FGcxjlVQSHVRCcgu8NCA5vQHDYMxAcXkNw2DMQHP4CBKfGHNbG
nAawxuaKAWvYc8CaJtSDrQ3WFJsrsIasuhWnAY/MXoLTKD1sgpcqOA0Fm/8f
OI3KTNH5F7xsg2h4DtGw50E0vAzRsOdBNAUxMLnP1oFmeBM0w9aHZngZmmHr
Ny7VoBlWgmY2uFVD2dc7KuaZPCWdrRXEqLIvOR5ltgQ6gMdhouLgS1h79f6A
LiyrIYCVHDNZ8JoRjMiyTpsHK7YqWJk5zwxWFUgaW//bTlU43vLd2F+S/Ijf
3lorAKfGZdD0CibZpleRZZO1qU3oUCU7KmcsYG7sj5ibHcXWg0TrdseeBYn+
SXb3h280SHlYTXlqJtF+l1GItnSXUZZtc4Rk7RFyyXXGcX3s8c888abYHW2o
j1LVfVRtKGWmxaeW6ONBTC5v1fn6POzu48ePPetOG9/rgCPeFa0AfcuUMXSX
1sOQzZJIOLLnSt+bI0DEfS+hyNzSYrsu/tu1nJJusLkDb1M6hdXuVcTUgzym
6qqcUzJap5wKaJIT07f7JB4E/MjI2yZqK1YSVjNZPjMMDBJGjCjar/q8eAvM
h8q+mjzliYhpbc4rrwZOGnl7dncDa8pgdPJVwCSUZqEp528vcflFzCOf6IZY
8Obm5gpvQSN8T4wpDfTza3jFKN2TWJgJuP/ff/+d3maBzZNETCXDhbYHII3d
nQH/EBiAAuTVrHUYTJLvO2fucG9v8B024haM/75jturgRiomL7kvqTFiGW5Q
MGd1c0JiX4rAqalgXn7VQnhQG4qgTt56T0LRUKMJz7spIYCQV3LEVdckMFDd
kNCxlN7dkt7dot4992xLXcAfPxoapzlaroGrjgYD88uf/B2VE9BxzzX3MspU
ljXRoe9/8EyrAEVbCIcZRNZY+Kxo0qRO0ZQaBhODqUEZo4wPXEQPeySrrWuT
hq433RKsX1XBTC1NhXMP3zzOQtWUimFBFb4NF0DUh+nkL7DVN8AbGIW0St1b
iU0J5IMoC9H+Y0Vrzx9iS3GXV+vQos4cs/WKWw4LnISDjmkhakNcgnN3qwmc
0kt9jPwUrDgFbznFkisP61Rk5JX3pHTekrNOcFihh7mQA/6ISl90wxBEBJZ+
SDCMpwGgEN4cXWzxfRflB7I0Uh4MD2koTjPr+qBGfmJ2RFyWWbcPpdeokDIP
AURPpRyoEKUbIsyUJCyIuXghYf3WlXktqtberDGEmXigRps09hydvwaVl7iY
Hko3hKCdc28aU8tx3l2Mpyw6at1yTzcrv5i3wc+PL45r5r6hWo1b2mGvVQOu
Aowr4UMnbonp0i21gRbxxE4e2XrtvqUzQT5XJDb7fUTpWN49CtGnmfDi7usC
X3UGF618GoxX3dPAhzQGIrE3Vr8jzkalC9VTfdDNZAuHABGI0H6tve6gAGBS
79U3eIajCxOgNVLbM2evRelax/SKnVidnai5bQg6qMaFfIQqE3E6FVxMP3Xp
ZqPMm2ul5PrtugVTL/XsDYf7uc+i6zpwGhgP1csfE53va6pgKxCfllchJfSG
L5JS88VUw04v1YfqnWqTaoBm6N84KLIn26iSb2JV1S2WmRIKav8AWQLcbzCT
qp7Ygz5gUsvfhYojOLz5+vN/i6nLr86+ufNaY9NWzjOr71qpvSKyje+lPqVi
+Cm9XxcZ9jfnnSIvQBvvrCFv1KlkUV8t6/F7qTTtu8sWceIdwwnmH8m3lxrx
CH9oQ6GVaptVFnKwN1AWQsMLKeXpkvmmIpCbVsyyEaDJ0T2QyXr43sulkc5W
eKo4TMGHSrcoSRpN6kWuK6n6rvZNV5hUXoa2mNSqHsAX2VatcgU5lnr8ahZW
xTxeKs54hXG1cGWNuvaFrKkjdLyEfv0f5MxaPaMvYorVdc+XdIb+mbypd2Iv
ccn1boVvmL4UPqBtr5Vemm4MqQiot1X8J+5Bcs0L9+aBFTmqVzSsV5py9239
ysILBJC/jNPE+OUHyWGAtQ6C1+PflvS8T6WxCsKffsEuLqw1j537IHz0pTul
0pc9Half4JLu952J8BPZwULn8vQS/IQZiXdXG/mm/A0IPowXzVPX/TEw1qOf
jUIIgq6zqBbC3gOOmye6c8InkELhGPD5Pll3g1e4wbGLMb5Gd48rRrs2fH6H
hXwZTt+MfERXurzpFmGrSyjfqluApeg/UHIt5yG+WBrh+910k9Wxm1YJTuxw
H8jNMMOngjFPdZAE4CGVsTE4Ij+zjdrNND/An9EL53RLj9xdl4lDZlGo0HX1
fqn5IYcSpqLfs1W/dZT3erlAY/5LdApJb28Fn5tu2vXoGzBLltXfhjIveeNv
fYB0tL3lWlH7/QQE0ShRMCOsFyz1V/qF7KVwo8F+1wlZ/HpUoPhm27WSI3sm
8Z1ao/IlqncY1p0ZL7/KWOrh5/YFDi9uV/KFyS8EYarNtVnDKM5QCOrxsy+R
oB8haEW115P0Dkr6XAMXNIX9D7dTlVYUUQAA

-->

</rfc>
