<?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 rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-attestation-freshness-07" category="std" consensus="true" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Freshness for Evidence in CSRs">Requesting a Freshness Nonce for Attestation Evidence in Certificate Signing Requests</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-attestation-freshness-07"/>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization abbrev="Siemens">Siemens</organization>
      <address>
        <postal>
          <street>Werner-von-Siemens-Strasse 1</street>
          <city>Munich</city>
          <code>80333</code>
          <country>Germany</country>
        </postal>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="H." surname="Brockhaus" fullname="Hendrik Brockhaus">
      <organization abbrev="Siemens">Siemens</organization>
      <address>
        <postal>
          <street>Werner-von-Siemens-Strasse 1</street>
          <city>Munich</city>
          <code>80333</code>
          <country>Germany</country>
        </postal>
        <email>hendrik.brockhaus@siemens.com</email>
        <uri>https://www.siemens.com</uri>
      </address>
    </author>
    <author initials="J." surname="Mandel" fullname="Joe Mandel">
      <organization abbrev="AKAYLA">AKAYLA, Inc.</organization>
      <address>
        <email>joe@akayla.com</email>
      </address>
    </author>
    <author initials="S." surname="Turner" fullname="Sean Turner">
      <organization>sn3rd</organization>
      <address>
        <email>sean@sn3rd.com</email>
      </address>
    </author>
    <date year="2026"/>
    <area>sec</area>
    <workgroup>LAMPS Working Group</workgroup>
    <keyword>Remote Attestation</keyword>
    <keyword>Certificate Signing Request</keyword>
    <keyword>Certificate Management Protocol (CMP)</keyword>
    <keyword>Enrollment over Secure Transport (EST)</keyword>
    <keyword>Certificate Management over CMS (CMC)</keyword>
    <abstract>
      <?line 112?>

<t>When an end entity includes attestation statements in a Certificate Signing
Request (CSR), the freshness of the conveyed Evidence often needs to be
established. A common mechanism is a nonce that is obtained from a Relying
Party or Verifier and included by the Attester in the Evidence.</t>
      <t>This document specifies how an end entity requests such an attestation
freshness nonce from an RA/CA when using certificate lifecycle management protocols.
It defines message formats and protocol bindings for the conveyance of nonce
request and response messages in the Certificate Management Protocol (CMP),
Enrollment over Secure Transport (EST), and Certificate Management over CMS
(CMC), including optional type-specific information needed to produce fresh
Evidence for inclusion in a CSR.</t>
    </abstract>
  </front>
  <middle>
    <?line 127?>

<section anchor="Introduction">
      <name>Introduction</name>
      <t><xref target="I-D.ietf-lamps-csr-attestation"/> specifies how Attestation Evidence, as
defined in the RATS Architecture <xref target="RFC9334"/>, can be conveyed in a Certificate
Signing Request (CSR) using PKCS#10 <xref target="RFC2986"/> or CRMF <xref target="RFC4211"/>. The RATS
Architecture calls for establishing the freshness of Evidence, see
<xref section="10" sectionFormat="of" target="RFC9334"/>. A common method for establishing freshness is the
use of nonces. Such nonces must be provided by the Relying Party or Verifier
and included in the Evidence by the Attester.</t>
      <t>When the CSR is conveyed using a certificate lifecycle management protocol, such
as CMP <xref target="RFC9810"/>, EST <xref target="RFC7030"/>, or CMC <xref target="I-D.ietf-lamps-rfc5272bis"/>, the
end entity can request the required nonce from the RA/CA in a prior message
exchange and pass it to the Attester to produce fresh Evidence.</t>
      <t>This document describes how an end entity can request a nonce from an RA/CA
using CMP, EST, and CMC.</t>
      <t>The following topics are out of scope for this document and either covered
in other specifications or are implementation or deployment details:</t>
      <ul spacing="normal">
        <li>
          <t>whether a CSR requires one or more nonces,</t>
        </li>
        <li>
          <t>how the end entity forwards the nonce to the Attester,</t>
        </li>
        <li>
          <t>whether the RA/CA or the Verifier generates the nonce and how those entities
communicate with each other, and</t>
        </li>
        <li>
          <t>other methods for establishing freshness.</t>
        </li>
      </ul>
      <t>In this context, the end entity is a device that contains one or more Attesters,
and the RA/CA acts as a Relying Party that communicates with one or more Verifiers.</t>
    </section>
    <section anchor="terminology-and-requirements-language">
      <name>Terminology and Requirements Language</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 <xref target="RFC2119"/>.</t>
      <t>This document uses RATS and PKIX terminology as described in
<xref section="3" sectionFormat="of" target="I-D.ietf-lamps-csr-attestation"/>. It also uses terminology from
the applicable certificate lifecycle management protocols: CMP, EST, and CMC.</t>
    </section>
    <section anchor="Architecture">
      <name>Architecture and Message Formats</name>
      <t>According to <xref target="I-D.ietf-lamps-csr-attestation"/>, a CSR can contain multiple
<tt>AttestationStatements</tt> and multiple certificates for validating those
<tt>AttestationStatements</tt>. This document describes how an end entity can use CMP,
EST, or CMC to request a nonce from the RA/CA for a specific type of Evidence
to be included in the CSR.</t>
      <t>The end entity sends a nonce request message with the following fields:</t>
      <ul spacing="normal">
        <li>
          <t><tt>len</tt>: In this OPTIONAL field, the end entity can specify the desired length of
the requested nonce in bytes as a value between 8 and 64.</t>
        </li>
        <li>
          <t><tt>type</tt>: In this OPTIONAL field, the end entity can specify the type of the
reqInfo structure.</t>
        </li>
        <li>
          <t><tt>reqInfo</tt>: If type is set, this OPTIONAL field MUST contain the type-specific
content that the RA/CA requires to generate respInfo. If type is not set,
<tt>reqInfo</tt> MUST also be omitted.</t>
        </li>
      </ul>
      <t>The RA/CA can return the requested nonce in a nonce response message together
with information specific to the generation of the Evidence.</t>
      <t>The nonce response message has the following fields:</t>
      <ul spacing="normal">
        <li>
          <t><tt>nonce</tt>: This field MUST contain the nonce if the RA/CA is able and willing to
provide it. If a specific length was requested, the RA/CA SHOULD provide a
nonce of that size. If the RA/CA doesn't need a freshness proof, the nonce
MUST be an empty or zero-length string.</t>
        </li>
        <li>
          <t><tt>expiry</tt>: In this OPTIONAL field, the RA/CA can specify the validity period of
the nonce in seconds as an integer value. The nonce can be used during this
period; the response therefore needs to be conveyed promptly.</t>
        </li>
        <li>
          <t><tt>type</tt>: In this OPTIONAL field, the RA/CA can specify the type of the <tt>respInfo</tt>
structure. The type in the nonce response message is defined by the type in
the nonce request message.</t>
        </li>
        <li>
          <t><tt>respInfo</tt>: If type is set, this OPTIONAL field MUST contain the type-specific
content requested by the end entity for generating the Evidence. If type is
not set, <tt>respInfo</tt> MUST also be omitted.</t>
        </li>
      </ul>
      <t>This document does not further specify the content of the <tt>reqInfo</tt> and <tt>respInfo</tt>
structures; those structures must be defined elsewhere. Each definition must
assign an object identifier and specify the exact content of the corresponding
field. The definition of the <tt>reqInfo</tt> structure must also specify the type of the expected
<tt>respInfo</tt> structure. The message structure and the <tt>reqInfo</tt> or <tt>respInfo</tt> structures
can use different encodings. For example, an ASN.1 message can contain <tt>reqInfo</tt> or
<tt>respInfo</tt> encoded as JSON, if necessary. The <tt>reqInfo</tt> structure may be used to
provide the required information to the Relying Party to route the nonce request
to the appropriate Verifier when multiple verifiers are supported. The <tt>respInfo</tt>
structure may be used to convey Generic Information Elements
(<xref section="6" sectionFormat="of" target="I-D.ietf-rats-reference-interaction-models"/>) such as Attesting
Environment IDs and Claim Selection.</t>
      <t>The generic message flow between the end entity and the RA/CA is shown in
<xref target="fig-msgFlow"/>.</t>
      <figure anchor="fig-msgFlow">
        <name>Message Flow in Background Check Model</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="528" viewBox="0 0 528 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 40,64 L 40,384" fill="none" stroke="black"/>
              <path d="M 264,64 L 264,384" fill="none" stroke="black"/>
              <path d="M 496,64 L 496,384" fill="none" stroke="black"/>
              <path d="M 48,112 L 256,112" fill="none" stroke="black"/>
              <path d="M 48,144 L 256,144" fill="none" stroke="black"/>
              <path d="M 272,176 L 488,176" fill="none" stroke="black"/>
              <path d="M 272,208 L 488,208" fill="none" stroke="black"/>
              <path d="M 48,240 L 256,240" fill="none" stroke="black"/>
              <path d="M 48,272 L 256,272" fill="none" stroke="black"/>
              <path d="M 272,304 L 488,304" fill="none" stroke="black"/>
              <path d="M 272,336 L 488,336" fill="none" stroke="black"/>
              <path d="M 48,368 L 256,368" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="496,304 484,298.4 484,309.6" fill="black" transform="rotate(0,488,304)"/>
              <polygon class="arrowhead" points="496,176 484,170.4 484,181.6" fill="black" transform="rotate(0,488,176)"/>
              <polygon class="arrowhead" points="280,336 268,330.4 268,341.6" fill="black" transform="rotate(180,272,336)"/>
              <polygon class="arrowhead" points="280,208 268,202.4 268,213.6" fill="black" transform="rotate(180,272,208)"/>
              <polygon class="arrowhead" points="264,272 252,266.4 252,277.6" fill="black" transform="rotate(0,256,272)"/>
              <polygon class="arrowhead" points="264,144 252,138.4 252,149.6" fill="black" transform="rotate(0,256,144)"/>
              <polygon class="arrowhead" points="264,112 252,106.4 252,117.6" fill="black" transform="rotate(0,256,112)"/>
              <polygon class="arrowhead" points="56,368 44,362.4 44,373.6" fill="black" transform="rotate(180,48,368)"/>
              <polygon class="arrowhead" points="56,240 44,234.4 44,245.6" fill="black" transform="rotate(180,48,240)"/>
              <polygon class="arrowhead" points="56,112 44,106.4 44,117.6" fill="black" transform="rotate(180,48,112)"/>
              <g class="text">
                <text x="16" y="36">end</text>
                <text x="60" y="36">entity</text>
                <text x="264" y="36">RA/CA</text>
                <text x="28" y="52">device</text>
                <text x="76" y="52">with</text>
                <text x="132" y="52">Attester</text>
                <text x="248" y="52">Relying</text>
                <text x="304" y="52">Party</text>
                <text x="492" y="52">Verifier</text>
                <text x="104" y="84">certificate</text>
                <text x="192" y="84">lifecycle</text>
                <text x="116" y="100">management</text>
                <text x="196" y="100">protocol</text>
                <text x="88" y="132">request</text>
                <text x="144" y="132">nonce</text>
                <text x="312" y="164">request</text>
                <text x="368" y="164">nonce</text>
                <text x="436" y="164">(optional)</text>
                <text x="304" y="196">nonce</text>
                <text x="372" y="196">(optional)</text>
                <text x="80" y="228">nonce</text>
                <text x="92" y="260">attested</text>
                <text x="144" y="260">CSR</text>
                <text x="316" y="292">Evidence</text>
                <text x="328" y="324">Attestation</text>
                <text x="404" y="324">Result</text>
                <text x="104" y="356">certificate</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
end entity                    RA/CA
device with Attester       Relying Party                 Verifier
    |                           |                            |
    |  certificate lifecycle    |                            |
    |    management protocol    |                            |
    |<------------------------->|                            |
    |  request nonce            |                            |
    |-------------------------->|                            |
    |                           |  request nonce (optional)  |
    |                           |--------------------------->|
    |                           |  nonce (optional)          |
    |                           |<---------------------------|
    |  nonce                    |                            |
    |<--------------------------|                            |
    |  attested CSR             |                            |
    |-------------------------->|                            |
    |                           |  Evidence                  |
    |                           |--------------------------->|
    |                           |  Attestation Result        |
    |                           |<---------------------------|
    |  certificate              |                            |
    |<--------------------------|                            |
    |                           |                            |
]]></artwork>
        </artset>
      </figure>
      <t>The nonce request and nonce response messages allow the end entity to request
only one nonce and one <tt>respInfo</tt> structure from the RA/CA. If the end entity
wants to include multiple Evidence statements in a CSR, it can use the
composite Attester model described in <xref section="3.3" sectionFormat="of" target="RFC9334"/> and
<xref target="I-D.richardson-rats-composite-attesters"/>, i.e., together with a conceptual
message wrapper (CMW) <xref target="I-D.ietf-rats-msg-wrap"/> structure, as described in
<xref section="4.3" sectionFormat="of" target="I-D.ietf-lamps-csr-attestation"/>. The lead Attester
should then pass the nonce to the sub-Attesters. Based on Figure 2 of
<xref target="I-D.richardson-rats-composite-attesters"/>, <xref target="fig-lead-Attester"/> shows an
example of how a nonce can be distributed among several Attesters in an end
entity. If multiple <tt>respInfo</tt> structures are required, the <tt>reqInfo</tt> and <tt>respInfo</tt>
structures can also use a conceptual message wrapper (CMW).</t>
      <figure anchor="fig-lead-Attester">
        <name>Class 1 Composite Attester</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="528" width="544" viewBox="0 0 544 528" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,160 L 8,512" fill="none" stroke="black"/>
              <path d="M 24,256 L 24,480" fill="none" stroke="black"/>
              <path d="M 40,272 L 40,320" fill="none" stroke="black"/>
              <path d="M 88,328 L 88,432" fill="none" stroke="black"/>
              <path d="M 112,176 L 112,208" fill="none" stroke="black"/>
              <path d="M 152,272 L 152,320" fill="none" stroke="black"/>
              <path d="M 176,400 L 176,448" fill="none" stroke="black"/>
              <path d="M 184,32 L 184,64" fill="none" stroke="black"/>
              <path d="M 208,72 L 208,168" fill="none" stroke="black"/>
              <path d="M 208,216 L 208,392" fill="none" stroke="black"/>
              <path d="M 240,72 L 240,168" fill="none" stroke="black"/>
              <path d="M 240,216 L 240,392" fill="none" stroke="black"/>
              <path d="M 264,32 L 264,64" fill="none" stroke="black"/>
              <path d="M 288,400 L 288,448" fill="none" stroke="black"/>
              <path d="M 304,336 L 304,480" fill="none" stroke="black"/>
              <path d="M 352,176 L 352,208" fill="none" stroke="black"/>
              <path d="M 416,352 L 416,400" fill="none" stroke="black"/>
              <path d="M 416,432 L 416,480" fill="none" stroke="black"/>
              <path d="M 520,352 L 520,400" fill="none" stroke="black"/>
              <path d="M 520,432 L 520,480" fill="none" stroke="black"/>
              <path d="M 536,160 L 536,512" fill="none" stroke="black"/>
              <path d="M 184,32 L 264,32" fill="none" stroke="black"/>
              <path d="M 184,64 L 264,64" fill="none" stroke="black"/>
              <path d="M 8,160 L 200,160" fill="none" stroke="black"/>
              <path d="M 216,160 L 232,160" fill="none" stroke="black"/>
              <path d="M 248,160 L 536,160" fill="none" stroke="black"/>
              <path d="M 112,176 L 352,176" fill="none" stroke="black"/>
              <path d="M 112,208 L 352,208" fill="none" stroke="black"/>
              <path d="M 24,256 L 200,256" fill="none" stroke="black"/>
              <path d="M 216,256 L 232,256" fill="none" stroke="black"/>
              <path d="M 248,256 L 304,256" fill="none" stroke="black"/>
              <path d="M 40,272 L 152,272" fill="none" stroke="black"/>
              <path d="M 40,320 L 152,320" fill="none" stroke="black"/>
              <path d="M 416,352 L 520,352" fill="none" stroke="black"/>
              <path d="M 312,368 L 408,368" fill="none" stroke="black"/>
              <path d="M 312,384 L 408,384" fill="none" stroke="black"/>
              <path d="M 176,400 L 288,400" fill="none" stroke="black"/>
              <path d="M 416,400 L 520,400" fill="none" stroke="black"/>
              <path d="M 88,432 L 168,432" fill="none" stroke="black"/>
              <path d="M 416,432 L 520,432" fill="none" stroke="black"/>
              <path d="M 176,448 L 288,448" fill="none" stroke="black"/>
              <path d="M 312,448 L 408,448" fill="none" stroke="black"/>
              <path d="M 312,464 L 408,464" fill="none" stroke="black"/>
              <path d="M 24,480 L 112,480" fill="none" stroke="black"/>
              <path d="M 224,480 L 304,480" fill="none" stroke="black"/>
              <path d="M 416,480 L 520,480" fill="none" stroke="black"/>
              <path d="M 8,512 L 248,512" fill="none" stroke="black"/>
              <path d="M 336,512 L 536,512" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="416,448 404,442.4 404,453.6" fill="black" transform="rotate(0,408,448)"/>
              <polygon class="arrowhead" points="416,368 404,362.4 404,373.6" fill="black" transform="rotate(0,408,368)"/>
              <polygon class="arrowhead" points="320,464 308,458.4 308,469.6" fill="black" transform="rotate(180,312,464)"/>
              <polygon class="arrowhead" points="320,384 308,378.4 308,389.6" fill="black" transform="rotate(180,312,384)"/>
              <polygon class="arrowhead" points="248,216 236,210.4 236,221.6" fill="black" transform="rotate(270,240,216)"/>
              <polygon class="arrowhead" points="248,72 236,66.4 236,77.6" fill="black" transform="rotate(270,240,72)"/>
              <polygon class="arrowhead" points="216,392 204,386.4 204,397.6" fill="black" transform="rotate(90,208,392)"/>
              <polygon class="arrowhead" points="216,168 204,162.4 204,173.6" fill="black" transform="rotate(90,208,168)"/>
              <polygon class="arrowhead" points="176,432 164,426.4 164,437.6" fill="black" transform="rotate(0,168,432)"/>
              <g class="text">
                <text x="204" y="52">RA</text>
                <text x="224" y="52">/</text>
                <text x="244" y="52">CA</text>
                <text x="184" y="100">nonce</text>
                <text x="256" y="100">CSR</text>
                <text x="160" y="196">certificate</text>
                <text x="252" y="196">management</text>
                <text x="324" y="196">client</text>
                <text x="328" y="276">Evidence-collection</text>
                <text x="424" y="276">CMW</text>
                <text x="76" y="292">target</text>
                <text x="112" y="292">A</text>
                <text x="200" y="292">n</text>
                <text x="260" y="292">1:</text>
                <text x="360" y="292">CMW(Evidence(Attester</text>
                <text x="460" y="292">A)</text>
                <text x="96" y="308">environment</text>
                <text x="200" y="308">o</text>
                <text x="260" y="308">2:</text>
                <text x="376" y="308">Evidence(Attester</text>
                <text x="460" y="308">B)</text>
                <text x="200" y="324">n</text>
                <text x="260" y="324">3:</text>
                <text x="376" y="324">Evidence(Attester</text>
                <text x="464" y="324">C))</text>
                <text x="200" y="340">c</text>
                <text x="120" y="356">collect</text>
                <text x="200" y="356">e</text>
                <text x="344" y="356">nonce</text>
                <text x="116" y="372">Claims</text>
                <text x="460" y="372">Attester</text>
                <text x="504" y="372">B</text>
                <text x="356" y="404">Evidence</text>
                <text x="400" y="404">B</text>
                <text x="224" y="420">attesting</text>
                <text x="232" y="436">environment</text>
                <text x="344" y="436">nonce</text>
                <text x="460" y="452">Attester</text>
                <text x="504" y="452">C</text>
                <text x="124" y="468">Attester</text>
                <text x="168" y="468">A</text>
                <text x="132" y="484">lead</text>
                <text x="188" y="484">Attester</text>
                <text x="356" y="484">Evidence</text>
                <text x="400" y="484">C</text>
                <text x="264" y="516">end</text>
                <text x="308" y="516">entity</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                      .---------.
                      | RA / CA |
                      '---------'
                         |   ^
                    nonce|   |CSR
                         |   |
                         |   |
                         |   |
.------------------------v---|------------------------------------.
|            .-----------------------------.                      |
|            |certificate management client|                      |
|            '-----------------------------'                      |
|                        |   ^                                    |
|                        |   |                                    |
| .----------------------|---|-------.                            |
| | .-------------.      |   | Evidence-collection CMW            |
| | | target A    |     n|   | 1: CMW(Evidence(Attester A)        |
| | | environment |     o|   | 2:     Evidence(Attester B)        |
| | '-------------'     n|   | 3:     Evidence(Attester C))       |
| |       |             c|   |       |                            |
| |       |collect      e|   |       |  nonce      .------------. |
| |       |Claims        |   |       |------------>| Attester B | |
| |       |              v   |       |<------------|            | |
| |       |          .-------------. |  Evidence B '------------' |
| |       |          | attesting   | |                            |
| |       '--------->| environment | |  nonce      .------------. |
| |                  '-------------' |------------>| Attester C | |
| |        Attester A                |<------------|            | |
| '-----------lead Attester----------'  Evidence C '------------' |
|                                                                 |
'------------------------------end entity-------------------------'
]]></artwork>
        </artset>
      </figure>
      <t>The interaction between the end entity and the RA/CA is illustrated in <xref target="fig-msg"/>.</t>
      <figure anchor="fig-msg">
        <name>Exchange with Nonce and Evidence.</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="560" width="552" viewBox="0 0 552 560" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,46 L 80,46" fill="none" stroke="black"/>
              <path d="M 8,50 L 80,50" fill="none" stroke="black"/>
              <path d="M 360,46 L 456,46" fill="none" stroke="black"/>
              <path d="M 360,50 L 456,50" fill="none" stroke="black"/>
              <path d="M 144,80 L 184,80" fill="none" stroke="black"/>
              <path d="M 312,80 L 352,80" fill="none" stroke="black"/>
              <path d="M 144,176 L 176,176" fill="none" stroke="black"/>
              <path d="M 312,176 L 352,176" fill="none" stroke="black"/>
              <path d="M 344,304 L 360,304" fill="none" stroke="black"/>
              <path d="M 136,464 L 152,464" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="368,304 356,298.4 356,309.6" fill="black" transform="rotate(0,360,304)"/>
              <polygon class="arrowhead" points="360,80 348,74.4 348,85.6" fill="black" transform="rotate(0,352,80)"/>
              <polygon class="arrowhead" points="152,176 140,170.4 140,181.6" fill="black" transform="rotate(180,144,176)"/>
              <polygon class="arrowhead" points="144,464 132,458.4 132,469.6" fill="black" transform="rotate(180,136,464)"/>
              <circle cx="8" cy="528" r="6" class="closeddot" fill="black"/>
              <circle cx="168" cy="240" r="6" class="closeddot" fill="black"/>
              <g class="text">
                <text x="16" y="36">end</text>
                <text x="60" y="36">entity</text>
                <text x="408" y="36">RA/CA</text>
                <text x="216" y="84">nonce</text>
                <text x="272" y="84">request</text>
                <text x="372" y="116">Verify</text>
                <text x="432" y="116">request</text>
                <text x="380" y="132">Generate</text>
                <text x="428" y="132">or</text>
                <text x="468" y="132">obtain</text>
                <text x="524" y="132">nonce*</text>
                <text x="372" y="148">Create</text>
                <text x="436" y="148">response</text>
                <text x="208" y="180">nonce</text>
                <text x="268" y="180">response</text>
                <text x="216" y="196">(nonce,</text>
                <text x="280" y="196">expiry)</text>
                <text x="36" y="228">Generate</text>
                <text x="88" y="228">key</text>
                <text x="124" y="228">pair</text>
                <text x="36" y="244">Generate</text>
                <text x="120" y="244">Evidence(s)</text>
                <text x="36" y="260">Generate</text>
                <text x="128" y="260">certification</text>
                <text x="48" y="276">request</text>
                <text x="112" y="276">message</text>
                <text x="148" y="308">--</text>
                <text x="216" y="308">certification</text>
                <text x="304" y="308">request</text>
                <text x="180" y="324">+Evidence(s)</text>
                <text x="272" y="324">including</text>
                <text x="336" y="324">nonce</text>
                <text x="372" y="356">Verify</text>
                <text x="432" y="356">request</text>
                <text x="372" y="372">Verify</text>
                <text x="452" y="372">Evidence(s)*</text>
                <text x="368" y="388">Check</text>
                <text x="464" y="388">freshness/replay*</text>
                <text x="368" y="404">Issue</text>
                <text x="440" y="404">certificate</text>
                <text x="372" y="420">Create</text>
                <text x="436" y="420">response</text>
                <text x="372" y="436">Handle</text>
                <text x="436" y="436">response</text>
                <text x="216" y="468">certification</text>
                <text x="308" y="468">response</text>
                <text x="356" y="468">--</text>
                <text x="24" y="500">Store</text>
                <text x="96" y="500">certificate</text>
                <text x="16" y="532">:</text>
                <text x="48" y="532">These</text>
                <text x="96" y="532">steps</text>
                <text x="136" y="532">can</text>
                <text x="184" y="532">require</text>
                <text x="268" y="532">interactions</text>
                <text x="340" y="532">with</text>
                <text x="376" y="532">the</text>
                <text x="428" y="532">Attester</text>
                <text x="480" y="532">(on</text>
                <text x="512" y="532">the</text>
                <text x="40" y="548">end</text>
                <text x="84" y="548">entity</text>
                <text x="136" y="548">side)</text>
                <text x="176" y="548">and</text>
                <text x="212" y="548">with</text>
                <text x="248" y="548">the</text>
                <text x="300" y="548">Verifier</text>
                <text x="352" y="548">(on</text>
                <text x="384" y="548">the</text>
                <text x="424" y="548">RA/CA</text>
                <text x="476" y="548">side).</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
end entity                                      RA/CA
==========                                  =============

                 ------ nonce request ----->

                                           Verify request
                                           Generate or obtain nonce*
                                           Create response

                 <---- nonce response ------
                       (nonce, expiry)

Generate key pair
Generate Evidence(s)*
Generate certification
  request message

                 -- certification request -->
                +Evidence(s) including nonce

                                           Verify request
                                           Verify Evidence(s)*
                                           Check freshness/replay*
                                           Issue certificate
                                           Create response
                                           Handle response

                <-- certification response --

Store certificate

*: These steps can require interactions with the Attester (on the
   end entity side) and with the Verifier (on the RA/CA side).
]]></artwork>
        </artset>
      </figure>
      <t>The following sections define the generic data structures for nonce request and
nonce response message content. CMP and CMC use ASN.1, while EST uses JSON and CBOR,
both defined CDDL.</t>
      <section anchor="ASN.1">
        <name>ASN.1 Representation</name>
        <t>This section defines nonce request and nonce response message content as ASN.1 types for use in
CMP, see <xref target="CMP"/>, and CMC, see <xref target="CMC"/>. Nonce values conveyed as ASN.1 OCTET STRING values
in CMP and CMC are between 8 and 64 bytes in length. A zero-length OCTET STRING indicates
that the RA/CA does not require proof of freshness for the upcoming certificate request.</t>
        <artwork><![CDATA[
ATTESTATION-NONCE-REQUEST ::= TYPE-IDENTIFIER
AttestationNonceRequestSet ATTESTATION-NONCE-REQUEST ::= {
   ... -- None defined in this document --
}

ATTESTATION-NONCE-RESPONSE ::= TYPE-IDENTIFIER
AttestationNonceResponseSet ATTESTATION-NONCE-RESPONSE ::= {
   ... -- None defined in this document --
}

NonceRequest ::= SEQUENCE {
   len INTEGER (8..64) OPTIONAL,
   -- Indicates the required length of the requested nonce
   type ATTESTATION-NONCE-REQUEST.&id(
      {AttestationNonceRequestSet}) OPTIONAL,
   -- Identifies the nonce-request syntax for the
   --   selected Attestation statement type
   reqInfo ATTESTATION-NONCE-REQUEST.&Type(
      {AttestationNonceRequestSet}{@type}) OPTIONAL
   -- Contains type-specific nonce-request information
}

NonceResponse ::= SEQUENCE {
   nonce OCTET STRING (SIZE(0 | 8..64)),
   -- Contains the nonce of length len
   -- A zero-length OCTET STRING indicates that no freshness
   -- proof is required
   expiry INTEGER OPTIONAL,
   -- Indicates how long in seconds the nonce issuer
   --   considers the nonce valid
   type ATTESTATION-NONCE-RESPONSE.&id(
      {AttestationNonceResponseSet}) OPTIONAL,
   -- Identifies the nonce-response syntax for the
   --   selected Attestation statement type
   respInfo ATTESTATION-NONCE-RESPONSE.&Type(
      {AttestationNonceResponseSet}{@type}) OPTIONAL
   -- Contains type-specific nonce-response information
}
]]></artwork>
      </section>
      <section anchor="CDDL">
        <name>CDDL Representation</name>
        <t>This section provides a CDDL <xref target="RFC8610"/> definition for the JSON and CBOR nonce
request and nonce response message content. The nonce-request rule applies to
both JSON and CBOR. The nonce-response-json and nonce-response-cbor rules define
the encoding-specific representation of the nonce value. For JSON, the
base64url-nonce rule captures the allowed character set and encoded length; the
decoded nonce length requirements are specified in <xref target="EST-https"/>.</t>
        <sourcecode type="cddl"><![CDATA[
nonce-request = {
  ? "len": nonce-length,
  ? "type": dotted-decimal-oid,
  ? "reqInfo": any
}

nonce-response-json = {
    "nonce": json-nonce,
  ? "expiry": uint,
  ? "type": dotted-decimal-oid,
  ? "respInfo": any
}

nonce-response-cbor = {
    "nonce": cbor-nonce,
  ? "expiry": uint,
  ? "type": dotted-decimal-oid,
  ? "respInfo": any
}

nonce-length = 8..64
cbor-nonce = h'' / bstr .size (8..64)
json-nonce = "" / base64url-nonce
base64url-nonce = tstr .regexp "[A-Za-z0-9_-]{11,86}"
dotted-decimal-oid = tstr
]]></sourcecode>
      </section>
    </section>
    <section anchor="CMP">
      <name>Use with CMP</name>
      <t>The nonce request and nonce response message content is conveyed as ASN.1 content,
see <xref target="ASN.1"/>, in a general message (<tt>genm</tt>) <xref section="5.3.19" sectionFormat="of" target="RFC9810"/>
and general response (<tt>genp</tt>) <xref section="5.3.20" sectionFormat="of" target="RFC9810"/>, respectively.</t>
      <artwork><![CDATA[
GenMsg:    {id-it TBD1}, NonceRequest
GenRep:    {id-it TBD2}, NonceResponse

id-it-nonceRequest OBJECT IDENTIFIER ::= { id-it TBD1 }
NonceRequestValue ::= NonceRequest

id-it-nonceResponse OBJECT IDENTIFIER ::= { id-it TBD2 }
NonceResponseValue ::= NonceResponse
]]></artwork>
      <t>When CMP is transferred over HTTP, the OPTIONAL <tt>&lt;operation&gt;</tt> path segment
defined in <xref section="3.4" sectionFormat="of" target="RFC9811"/> MAY be used for the nonce request message.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Operation</th>
            <th align="left">Operation path</th>
            <th align="left">Details</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Get Attestation Freshness Nonce</td>
            <td align="left">
              <tt>getnonce</tt></td>
            <td align="left">
              <xref target="CMP"/></td>
          </tr>
        </tbody>
      </table>
      <t>When CMP is transferred over CoAP, the OPTIONAL <tt>&lt;operation&gt;</tt> path segment
defined in <xref section="2.1" sectionFormat="of" target="RFC9482"/> MAY be used for the nonce request message.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Operation</th>
            <th align="left">Operation path</th>
            <th align="left">Details</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Get Attestation Freshness Nonce</td>
            <td align="left">
              <tt>nonce</tt></td>
            <td align="left">
              <xref target="CMP"/></td>
          </tr>
        </tbody>
      </table>
      <t>In the event of a possible error or if the RA/CA is unable or unwilling to deliver the
requested nonce, CMP offers several ways to indicate this. Which variant fits depends
on the circumstances.</t>
      <ul spacing="normal">
        <li>
          <t>Respond with an error message containing the <tt>PKIFailureInfo</tt> bit as defined by <xref target="RFC9483"/>.</t>
        </li>
        <li>
          <t>If HTTP or CoAP is used for transferring the general message, return a status code
on transfer level as described in <xref target="RFC9811"/> or <xref target="RFC9482"/>.</t>
        </li>
      </ul>
    </section>
    <section anchor="EST">
      <name>Use with EST</name>
      <t>The nonce request and nonce response message content is conveyed as JSON or CBOR
according to the CDDL definition, see <xref target="CDDL"/>, between end entity (EST client) and
RA/CA (EST server). A compliant EST server MUST provide an EST endpoint with
the path-segment /nonce for this operation.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Operation</th>
            <th align="left">Operation path</th>
            <th align="left">Details</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Request of a nonce</td>
            <td align="left">
              <tt>/nonce</tt></td>
            <td align="left">
              <xref target="EST"/></td>
          </tr>
        </tbody>
      </table>
      <t>Depending on whether additional parameters are to be transferred, the client
uses either the <tt>GET</tt> or <tt>POST</tt> method:</t>
      <ul spacing="normal">
        <li>
          <t>The <tt>GET</tt> method MUST be used if no optional content is to be transferred</t>
        </li>
        <li>
          <t>The <tt>POST</tt> method MUST be used if nonce request message content encoded in JSON
or CBOR is to be transferred.</t>
        </li>
      </ul>
      <section anchor="EST-https">
        <name>EST over HTTPS</name>
        <t>If the nonce request and nonce response message content is transferred over HTTPS,
the specification in <xref target="RFC7030"/> applies.</t>
        <t>The JSON nonce request object is formally described by the nonce-request CDDL
rule in <xref target="CDDL"/>. The JSON nonce response object is formally described by the
nonce-response-json CDDL rule in <xref target="CDDL"/>.</t>
        <t>The JSON structure has the following members:</t>
        <ul spacing="normal">
          <li>
            <t>The OPTIONAL "len" and "expiry" members, if present, MUST be unsigned
integers.</t>
          </li>
          <li>
            <t>The "nonce" member MUST either contain a zero-length string or the nonce
value between 8 and 64 bytes in length conveyed as a JSON string containing
the unpadded base64url encoding, as specified in <xref section="5" sectionFormat="of" target="RFC4648"/>.
Such encodings are between 11 and 86 characters in length.</t>
          </li>
          <li>
            <t>The OPTIONAL "type" member, if present, MUST be a text string containing the
object identifier as a dotted-decimal OID.</t>
          </li>
          <li>
            <t>The OPTIONAL "reqInfo" and "respInfo" members MUST only be included if the
corresponding "type" member contains an OID. Their contents are defined by
that OID.</t>
          </li>
        </ul>
        <t>If the nonce request message was successful, the EST server MUST respond with an HTTP 200
status code and the nonce response message content MUST be encoded as a JSON object.
The HTTP 200 status code MUST also be used if the nonce is an empty string.</t>
        <t>In the event of a possible error, the EST server MUST respond with an HTTP
status code 400 (Bad Request) and MUST omit the nonce response message content. If the
nonce request message has been made correctly, but the EST server is unable or unwilling
to deliver the requested nonce, it MUST respond with an HTTP 503 (Service
Unavailable).</t>
        <t>The EST server MAY request HTTP-based client authentication as described in
<xref section="3.2.3" sectionFormat="of" target="RFC7030"/>.</t>
        <t>The following media types MUST be used as the Content-Type of the <tt>POST</tt> request
and the response.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Message type (per operation)</th>
              <th align="left">Media type(s)</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">NonceRequest</td>
              <td align="left">N/A (for GET) or<br/>application/est-attestation-freshness+json (for POST)</td>
              <td align="left">
                <xref target="EST-https"/></td>
            </tr>
            <tr>
              <td align="left">NonceResponse</td>
              <td align="left">application/est-attestation-freshness+json</td>
              <td align="left">
                <xref target="EST-https"/></td>
            </tr>
          </tbody>
        </table>
        <t>The following example shows a nonce request and nonce response message exchange without
transmitting optional parameters in the request:</t>
        <artwork><![CDATA[
GET /.well-known/est/nonce HTTP/1.1

HTTP/1.1 200 OK
Content-Type: application/est-attestation-freshness+json

{
  "nonce": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI",
  "expiry": 600
}
]]></artwork>
        <t>The following example shows a nonce request and nonce response message exchange
transmitting optional parameters in the request:</t>
        <artwork><![CDATA[
POST /.well-known/est/nonce HTTP/1.1
Content-Type: application/est-attestation-freshness+json

{
  "len": 32,
  "type": "1.2.3.4.5",
  "reqInfo": {
    "pcr-index": [0, 1, 2, 3],
    "certificate-name": ["aik-1"]
  }
}

HTTP/1.1 200 OK
Content-Type: application/est-attestation-freshness+json

{
  "nonce": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI",
  "expiry": 600,
  "type": "1.2.3.4.6",
  "respInfo": {
    "certificate-name": "aik-1"
  }
}
]]></artwork>
      </section>
      <section anchor="EST-coaps">
        <name>EST over Secure CoAP</name>
        <t>If the nonce request and nonce response message content is transferred via
secure CoAP, the specification in <xref target="RFC9148"/> applies.</t>
        <t>The CBOR nonce request object is formally described by the nonce-request CDDL
rule in <xref target="CDDL"/>. The CBOR nonce response object is formally described by the
nonce-response-cbor CDDL rule in <xref target="CDDL"/>.</t>
        <t>The CBOR structure has the following members:</t>
        <ul spacing="normal">
          <li>
            <t>All map keys are text strings.</t>
          </li>
          <li>
            <t>The "nonce" member MUST either contain a zero-length octet string or the nonce
value between 8 and 64 bytes in length conveyed as a CBOR byte string.</t>
          </li>
          <li>
            <t>The OPTIONAL dotted-decimal-oid "type" member denotes a text string containing
an object identifier in dotted-decimal notation.</t>
          </li>
          <li>
            <t>The OPTIONAL "reqInfo" and "respInfo" members contain type-specific CBOR
values. They MUST only be included if the corresponding "type" member contains
an OID. Their CBOR encoding is defined by that OID.</t>
          </li>
        </ul>
        <t>If the nonce request was successful, the EST server MUST respond to a GET
request with a code 2.05 and to a POST request with code 2.04 and the
nonce response message content MUST be encoded as a CBOR object.
The code 2.05 or code 2.04 MUST also be used if the nonce is a zero-length
byte string.</t>
        <t>In the event of a possible error, the EST server MUST respond with a code
4.00 (Bad Request) and MUST omit the nonce response message content. If the
nonce request has been made correctly, but the EST server is unable or
unwilling to deliver the requested nonce, it MUST respond with a code 5.03
(Service Unavailable).</t>
        <t>The following media type MUST be used for nonce request and nonce response message
content. The corresponding CoAP Content-Format value is used in the CoAP
Content-Format and Accept options as specified in <xref target="RFC9148"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Message type (per operation)</th>
              <th align="left">Media type</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">NonceRequest<br/>NonceResponse</td>
              <td align="left">application/est-attestation-freshness+cbor</td>
              <td align="left">
                <xref target="EST-coaps"/></td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="CMC">
      <name>Use with CMC</name>
      <t>The nonce request and nonce response message content is conveyed as ASN.1,
see <xref target="ASN.1"/>, as CMC Controls in a Full PKI Request, see
<xref section="6" sectionFormat="of" target="I-D.ietf-lamps-rfc5272bis"/>. The received nonce can be
used for a CSR to be transferred in a Simple or Full PKI request.</t>
      <t>To transfer the controls, the content type <tt>id-data</tt> SHOULD be used.</t>
      <artwork><![CDATA[
cmc-nonceReq CMC-CONTROL ::=
    { NonceRequest IDENTIFIED BY id-cmc-nonceReq }
id-cmc-nonceReq OBJECT IDENTIFIER ::= { id-cmc TBD4 }

cmc-nonceResp CMC-CONTROL ::=
    { NonceResponse IDENTIFIED BY id-cmc-nonceResp }
id-cmc-nonceResp OBJECT IDENTIFIER ::= { id-cmc TBD5 }
]]></artwork>
      <t>The following example shows the nonce request and nonce response message content:</t>
      <artwork><![CDATA[
ContentInfo.contentType = id-data
ContentInfo.content
   controlSequence
      {101, id-cmc-senderNonce, 10001}
      {102, id-cmc-nonceReq, <NonceRequest>}

ContentInfo.contentType = id-data
ContentInfo.content
   controlSequence
      {101, id-cmc-senderNonce, 10005}
      {102, id-cmc-recipientNonce, 10001}
      {103, id-cmc-nonceResp, <NonceResponse>}
]]></artwork>
      <t>In the event of an error, or if the server is unable to provide the requested nonce, the CMC Server MAY return status information about the request using either an Extended CMC Status Info Control or a CMC Status Info Control, as defined in <xref section="6.1" sectionFormat="of" target="I-D.ietf-lamps-rfc5272bis"/>.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="cmp">
        <name>CMP</name>
        <section anchor="well-known-uri-path-segment">
          <name>Well-Known URI Path Segment</name>
          <t>IANA is requested to add the following entry to the "CMP Well-Known URI Path
Segments" registry defined in <xref target="RFC8615"/>:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Path Segment</th>
                <th align="left">Description</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>getnonce</tt></td>
                <td align="left">Get Attestation Freshness Nonce over HTTP</td>
                <td align="left">This-RFC</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>nonce</tt></td>
                <td align="left">Get Attestation Freshness Nonce over CoAP</td>
                <td align="left">This-RFC</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="information-type">
          <name>Information Type</name>
          <t>IANA is requested to register the following object identifier in the
"SMI Security for PKIX CMP Information Types" registry
(1.3.6.1.5.5.7.4):</t>
          <table>
            <thead>
              <tr>
                <th align="left">Decimal</th>
                <th align="left">Description</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">TBD1</td>
                <td align="left">id-it-nonceRequest</td>
                <td align="left">This-RFC</td>
              </tr>
              <tr>
                <td align="left">TBD2</td>
                <td align="left">id-it-nonceResponse</td>
                <td align="left">This-RFC</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="est">
        <name>EST</name>
        <t>IANA is requested to register the following media types in the "Media Types"
registry <xref target="RFC6838"/>:</t>
        <section anchor="json-media-type">
          <name>JSON Media Type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t>application</t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t>est-attestation-freshness+json</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="sec-cons"/> of this RFC.</t>
            </dd>
            <dt>Interoperability considerations:</dt>
            <dd>
              <t>The same media type is used for EST attestation freshness nonce requests and
nonce responses. The protocol context determines whether the JSON payload is a
request or response.</t>
            </dd>
            <dt>Published specification:</dt>
            <dd>
              <t>This RFC.</t>
            </dd>
            <dt>Applications that use this media type:</dt>
            <dd>
              <t>EST implementations using attestation freshness nonces over HTTP.</t>
            </dd>
            <dt>Fragment identifier considerations:</dt>
            <dd>
              <t>The syntax and semantics of fragment identifiers are as specified for
"application/json". At publication of this specification, no fragment
identification syntax is defined for "application/json".</t>
            </dd>
            <dt>Additional information:</dt>
            <dd>
              <t>Deprecated alias names for this type: N/A</t>
            </dd>
            <dt/>
            <dd>
              <t>Magic number(s): N/A</t>
            </dd>
            <dt/>
            <dd>
              <t>File extension(s): N/A</t>
            </dd>
            <dt/>
            <dd>
              <t>Macintosh file type code(s): N/A</t>
            </dd>
            <dt>Person &amp; email address to contact for further information:</dt>
            <dd>
              <t>IETF LAMPS Working Group (spasm@ietf.org)</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>IETF LAMPS Working Group</t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
          </dl>
        </section>
        <section anchor="cbor-media-type">
          <name>CBOR Media Type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t>application</t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t>est-attestation-freshness+cbor</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="sec-cons"/> of this RFC.</t>
            </dd>
            <dt>Interoperability considerations:</dt>
            <dd>
              <t>The same media type is used for EST attestation freshness nonce requests and
nonce responses. The protocol context determines whether the CBOR payload is a
request or response.</t>
            </dd>
            <dt>Published specification:</dt>
            <dd>
              <t>This RFC.</t>
            </dd>
            <dt>Applications that use this media type:</dt>
            <dd>
              <t>EST implementations using attestation freshness nonces over CoAP.</t>
            </dd>
            <dt>Fragment identifier considerations:</dt>
            <dd>
              <t>The syntax and semantics of fragment identifiers are as specified for
"application/cbor". At publication of this specification, no fragment
identification syntax is defined for "application/cbor".</t>
            </dd>
            <dt>Additional information:</dt>
            <dd>
              <t>Deprecated alias names for this type: N/A</t>
            </dd>
            <dt/>
            <dd>
              <t>Magic number(s): N/A</t>
            </dd>
            <dt/>
            <dd>
              <t>File extension(s): N/A</t>
            </dd>
            <dt/>
            <dd>
              <t>Macintosh file type code(s): N/A</t>
            </dd>
            <dt>Person &amp; email address to contact for further information:</dt>
            <dd>
              <t>IETF LAMPS Working Group (spasm@ietf.org)</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>IETF LAMPS Working Group</t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
          </dl>
        </section>
        <section anchor="coap-content-format">
          <name>CoAP Content-Format</name>
          <t>IANA is requested to register the following Content-Format in the "CoAP
Content-Formats" subregistry within the "CoRE Parameters" registry
<xref target="RFC7252"/>. This registration uses the IETF Review or IESG Approval range
defined for that registry.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Media Type</th>
                <th align="left">ID</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">application/est-attestation-freshness+cbor</td>
                <td align="left">TBD3</td>
                <td align="left">This-RFC</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="cmc">
        <name>CMC</name>
        <section anchor="control">
          <name>Control</name>
          <t>IANA is requested to register the following object identifier in the
"SMI Security for PKIX CMC Controls" registry (1.3.6.1.5.5.7.7):</t>
          <table>
            <thead>
              <tr>
                <th align="left">Decimal</th>
                <th align="left">Description</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">TBD4</td>
                <td align="left">
                  <tt>id-cmc-nonceReq</tt></td>
                <td align="left">This-RFC</td>
              </tr>
              <tr>
                <td align="left">TBD5</td>
                <td align="left">
                  <tt>id-cmc-nonceResp</tt></td>
                <td align="left">This-RFC</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="asn1-module">
        <name>ASN.1 Module</name>
        <t>IANA is requested to register the following ASN.1 <xref target="X.680"/> module OID in the
"SMI Security for PKIX Module Identifier" registry (1.3.6.1.5.5.7.0). This
OID is defined in <xref target="asn1"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Decimal</th>
              <th align="left">Description</th>
              <th align="left">References</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBDMOD</td>
              <td align="left">
                <tt>id-mod-att-fresh-req</tt></td>
              <td align="left">This-RFC</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="operations">
      <name>Operational Considerations</name>
      <t>When the RA/CA is requested to provide a nonce to an end entity, it
can generate the nonce locally or obtain it through an interaction
with the Verifier. According to the IETF RATS architecture <xref target="RFC9334"/>,
the Verifier is responsible for validating Evidence about an Attester
and generating Attestation Results for use by a Relying Party.</t>
      <t>The nonce value MUST contain a random byte sequence with at least 64 bits
of entropy. The RA/CA MUST ensure that a nonce it generates is unique and
MUST NOT be reused. If the RA/CA obtains a nonce from the Verifier, it
MUST ensure that the Verifier utilizes the same policy for uniqueness and
non-reuse properties. The length of the nonce depends on the remote
attestation technology in use, as specific nonce
lengths may be required by the end entity. This specification assumes
that the RA/CA possesses knowledge, either out-of-band or through the
len field in the nonce request message, regarding the required nonce length for
the attestation technology. Nonces of incorrect length may cause the
remote attestation protocol to fail.</t>
      <t>For instance, the PSA attestation token <xref target="RFC9783"/>
supports nonce lengths of 32, 48, and 64 bytes. Other attestation
technologies employ nonces of similar lengths.</t>
      <t>The end entity MUST use the received nonce if the remote attestation
technology used supports the requested length. If the selected attestation
statement type defines a deterministic nonce transformation for use by a
specific Attester or sub-Attester, the end entity MUST apply only that
transformation and only for the purpose defined by that specification.</t>
      <t>If attestation-type-specific response information is returned with the
nonce, the end entity MUST process that information according to the
selected type when invoking the attestation technology. Such information
MAY include parameters or metadata needed to apply, identify, or validate
a deterministic nonce transformation defined by the attestation statement
type.</t>
      <t>While this specification does not address the semantics of the attestation API
or the underlying software/hardware architecture, the API returns Evidence from
the Attester in a format specific to the attestation technology used and
identified by the <tt>AttestationStatement</tt> type. The returned Evidence is encapsulated
in the <tt>AttestationStatement</tt> within the <tt>AttestationBundle</tt> carried in the CSR, as
defined in <xref target="I-D.ietf-lamps-csr-attestation"/>. The software generating the CSR
treats the attestation statement payload as an opaque blob and does not
interpret its format. It is crucial to note that the nonce is included in the
Evidence, either implicitly or explicitly, and MUST NOT be conveyed in CSR
structures outside of the attestation payload.</t>
      <t>The freshness established by the nonce applies to the Evidence as
bound to the nonce used by the attestation technology. This
specification does not assign independent freshness semantics to other claims
contained in the Evidence. The interpretation of any other claim, including
whether it represents current state, historical state, configuration state, or
measurement results, is defined by the attestation technology, the appraisal
policy, and the Verifier or Relying Party processing rules.</t>
      <t>Using nonces causes the Relying Party to create state for outstanding
freshness challenges. This state increases the attack surface for denial-of-service
attacks, for example by causing the Relying Party to allocate memory for many
nonce requests that never result in corresponding Evidence. Relying Parties
SHOULD reduce this exposure by limiting nonce lifetimes, bounding the number of
outstanding nonces, applying rate limits, associating nonce state with an
authenticated or otherwise constrained requester where possible, and promptly
discarding expired state. The use of a stateless cookie mechanism to reduce this
state-management burden is also possible but not further detailed in this
specification.</t>
    </section>
    <section anchor="sec-cons">
      <name>Security Considerations</name>
      <t>This specification details the process of obtaining a nonce via CMP, EST,
and CMC. Therefore, the security considerations of these protocols apply. Regarding
the use of attestation statements in a CSR, the security considerations
outlined in <xref target="I-D.ietf-lamps-csr-attestation"/> are pertinent to this
specification.</t>
      <t>The nonce itself does not generally require confidentiality
protection while maintaining the security properties of the remote
attestation protocol. However, optional attestation-type-specific
request or response information conveyed together with the nonce MAY
reveal privacy-sensitive or deployment-sensitive information, such as
platform topology, certificate identifiers, or measurement selections.
<xref target="RFC9334"/> defines the IETF remote attestation architecture and
extensively discusses nonce-based freshness.</t>
      <t>Specific attestation technology specifications such as <xref target="RFC9711"/> and
<xref target="RFC9783"/> offer guidance on replay protection using nonces. This
document defers specific recommendations to those specifications.</t>
      <t>If an attestation technology or Composite Attester profile transforms a
received nonce before embedding it in Evidence, that transformation MUST
be deterministic, MUST preserve at least the minimum entropy required by
the attestation technology, and MUST provide the Verifier with enough
information to reconstruct or validate the transformed value when needed.
Specifications defining such transformations SHOULD use well-analyzed
cryptographic mechanisms for nonce expansion or size adjustment to ensure
that the resulting entropy and security properties remain acceptable.</t>
      <t>If attestation-type-specific nonce exchange information is used, the
corresponding specification MUST define the syntax and semantics of that
information, including any confidentiality requirements. Implementations
SHOULD minimize the amount of such information returned by the RA/CA and
SHOULD protect it using the message or transport security mechanisms of
the enrollment protocol when confidentiality is required by deployment
policy or by the attestation technology specification.</t>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We would like to thank Russ Housley, Thomas Fossati, Watson Ladd, Ionut Mihalcea,
Carl Wallace, and Michael StJohns for their review comments.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="I-D.ietf-lamps-csr-attestation">
          <front>
            <title>Use of Remote Attestation with Certification Signing Requests</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Cryptic Forest Software</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Siemens</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Monty Wiseman" initials="M." surname="Wiseman">
              <organization>Independent</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
         </author>
            <date day="16" month="June" year="2026"/>
            <abstract>
              <t>   Certification Authorities (CAs) issuing certificates to Public Key
   Infrastructure (PKI) end entities may require a certificate signing
   request (CSR) to include additional verifiable information to confirm
   policy compliance.  For example, a CA may require an end entity to
   demonstrate that the private key corresponding to a CSR's public key
   is secured by a hardware security module (HSM), is not exportable,
   etc.  The process of generating, transmitting, and verifying
   additional information required by the CA is called remote
   attestation.  While work is currently underway to standardize various
   aspects of remote attestation, a variety of proprietary mechanisms
   have been in use for years, particularly regarding protection of
   private keys.

   This specification defines ASN.1 structures which may carry
   attestation data for PKCS#10 and Certificate Request Message Format
   (CRMF) messages.  Both standardized and proprietary attestation
   formats are supported by this specification.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-csr-attestation-28"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-rfc5272bis">
          <front>
            <title>Certificate Management over CMS (CMC)</title>
            <author fullname="Joe Mandel" initials="J." surname="Mandel">
              <organization>AKAYLA, Inc.</organization>
            </author>
            <author fullname="Sean Turner" initials="S." surname="Turner">
              <organization>sn3rd</organization>
            </author>
            <date day="26" month="February" year="2026"/>
            <abstract>
              <t>   This document defines the base syntax for CMC, a Certificate
   Management protocol using the Cryptographic Message Syntax (CMS).
   This protocol addresses two immediate needs within the Internet
   Public Key Infrastructure (PKI) community:

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-rfc5272bis-11"/>
        </reference>
        <reference anchor="RFC9810">
          <front>
            <title>Internet X.509 Public Key Infrastructure -- Certificate Management Protocol (CMP)</title>
            <author fullname="H. Brockhaus" initials="H." surname="Brockhaus"/>
            <author fullname="D. von Oheimb" initials="D." surname="von Oheimb"/>
            <author fullname="M. Ounsworth" initials="M." surname="Ounsworth"/>
            <author fullname="J. Gray" initials="J." surname="Gray"/>
            <date month="July" year="2025"/>
            <abstract>
              <t>This document describes the Internet X.509 Public Key Infrastructure (PKI) Certificate Management Protocol (CMP). Protocol messages are defined for X.509v3 certificate creation and management. CMP provides interactions between client systems and PKI components such as a Registration Authority (RA) and a Certification Authority (CA).</t>
              <t>This document adds support for management of certificates containing a Key Encapsulation Mechanism (KEM) public key and uses EnvelopedData instead of EncryptedValue. This document also includes the updates specified in Section 2 and Appendix A.2 of RFC 9480.</t>
              <t>This document obsoletes RFC 4210, and together with RFC 9811, it also obsoletes RFC 9480. Appendix F of this document updates Section 9 of RFC 5912.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9810"/>
          <seriesInfo name="DOI" value="10.17487/RFC9810"/>
        </reference>
        <reference anchor="RFC7030">
          <front>
            <title>Enrollment over Secure Transport</title>
            <author fullname="M. Pritikin" initials="M." role="editor" surname="Pritikin"/>
            <author fullname="P. Yee" initials="P." role="editor" surname="Yee"/>
            <author fullname="D. Harkins" initials="D." role="editor" surname="Harkins"/>
            <date month="October" year="2013"/>
            <abstract>
              <t>This document profiles certificate enrollment for clients using Certificate Management over CMS (CMC) messages over a secure transport. This profile, called Enrollment over Secure Transport (EST), describes a simple, yet functional, certificate management protocol targeting Public Key Infrastructure (PKI) clients that need to acquire client certificates and associated Certification Authority (CA) certificates. It also supports client-generated public/private key pairs as well as key pairs generated by the CA.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7030"/>
          <seriesInfo name="DOI" value="10.17487/RFC7030"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC9148">
          <front>
            <title>EST-coaps: Enrollment over Secure Transport with the Secure Constrained Application Protocol</title>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="S. Raza" initials="S." surname="Raza"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>Enrollment over Secure Transport (EST) is used as a certificate provisioning protocol over HTTPS. Low-resource devices often use the lightweight Constrained Application Protocol (CoAP) for message exchanges. This document defines how to transport EST payloads over secure CoAP (EST-coaps), which allows constrained devices to use existing EST functionality for provisioning certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9148"/>
          <seriesInfo name="DOI" value="10.17487/RFC9148"/>
        </reference>
        <reference anchor="RFC8615">
          <front>
            <title>Well-Known Uniform Resource Identifiers (URIs)</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
              <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8615"/>
          <seriesInfo name="DOI" value="10.17487/RFC8615"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9482">
          <front>
            <title>Constrained Application Protocol (CoAP) Transfer for the Certificate Management Protocol</title>
            <author fullname="M. Sahni" initials="M." role="editor" surname="Sahni"/>
            <author fullname="S. Tripathi" initials="S." role="editor" surname="Tripathi"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies the use of the Constrained Application Protocol (CoAP) as a transfer mechanism for the Certificate Management Protocol (CMP). CMP defines the interaction between various PKI entities for the purpose of certificate creation and management. CoAP is an HTTP-like client-server protocol used by various constrained devices in the Internet of Things space.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9482"/>
          <seriesInfo name="DOI" value="10.17487/RFC9482"/>
        </reference>
        <reference anchor="RFC9811">
          <front>
            <title>Internet X.509 Public Key Infrastructure -- HTTP Transfer for the Certificate Management Protocol (CMP)</title>
            <author fullname="H. Brockhaus" initials="H." surname="Brockhaus"/>
            <author fullname="D. von Oheimb" initials="D." surname="von Oheimb"/>
            <author fullname="M. Ounsworth" initials="M." surname="Ounsworth"/>
            <author fullname="J. Gray" initials="J." surname="Gray"/>
            <date month="July" year="2025"/>
            <abstract>
              <t>This document describes how to layer the Certificate Management Protocol (CMP) over HTTP.</t>
              <t>It includes the updates to RFC 6712 specified in Section 3 of RFC 9480; these updates introduce CMP URIs using a well-known prefix. It obsoletes RFC 6712; and, together with RFC 9810, it also obsoletes RFC 9480.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9811"/>
          <seriesInfo name="DOI" value="10.17487/RFC9811"/>
        </reference>
        <reference anchor="X.680" target="https://www.itu.int/rec/T-REC.X.680">
          <front>
            <title>Information Technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation X.680" value=""/>
        </reference>
        <reference anchor="X.690" target="https://www.itu.int/rec/T-REC.X.690">
          <front>
            <title>Information Technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation X.690" value=""/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-rats-msg-wrap">
          <front>
            <title>RATS Conceptual Messages Wrapper (CMW)</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Independent</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Dionna Glaze" initials="D." surname="Glaze">
              <organization>Google LLC</organization>
            </author>
            <date day="11" month="December" year="2025"/>
            <abstract>
              <t>   The Conceptual Messages introduced by the RATS architecture (RFC
   9334) are protocol-agnostic data units that are conveyed between RATS
   roles during remote attestation procedures.  Conceptual Messages
   describe the meaning and function of such data units within RATS data
   flows without specifying a wire format, encoding, transport
   mechanism, or processing details.  The initial set of Conceptual
   Messages is defined in Section 8 of RFC 9334 and includes Evidence,
   Attestation Results, Endorsements, Reference Values, and Appraisal
   Policies.

   This document introduces the Conceptual Message Wrapper (CMW) that
   provides a common structure to encapsulate these messages.  It
   defines a dedicated CBOR tag, corresponding JSON Web Token (JWT) and
   CBOR Web Token (CWT) claims, and an X.509 extension.

   This allows CMWs to be used in CBOR-based protocols, web APIs using
   JWTs and CWTs, and PKIX artifacts like X.509 certificates.
   Additionally, the draft defines a media type and a CoAP content
   format to transport CMWs over protocols like HTTP, MIME, and CoAP.

   The goal is to improve the interoperability and flexibility of remote
   attestation protocols.  Introducing a shared message format such as
   CMW enables consistent support for different attestation message
   types, evolving message serialization formats without breaking
   compatibility, and avoiding the need to redefine how messages are
   handled within each protocol.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-msg-wrap-23"/>
        </reference>
        <reference anchor="I-D.richardson-rats-composite-attesters">
          <front>
            <title>Taxonomy of Composite Attesters</title>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>Arm</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   This document clarifies and extends the meaning of Composite Attester
   from RFC9334.  A system of annotated diagram components is defined as
   a small language to explain the different ways that components can
   interact to form composites.  These diagram components are then used
   to define a few popular classes of composites.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-richardson-rats-composite-attesters-04"/>
        </reference>
        <reference anchor="I-D.ietf-rats-reference-interaction-models">
          <front>
            <title>Reference Interaction Models for Remote Attestation Procedures</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Michael Eckel" initials="M." surname="Eckel">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems</organization>
            </author>
            <date day="2" month="April" year="2026"/>
            <abstract>
              <t>   This document describes interaction models for remote attestation
   procedures (RATS) [RFC9334].  Three conveying mechanisms --
   Challenge/Response, Uni-Directional, and Streaming Remote Attestation
   -- are illustrated and defined.  Analogously, a general overview
   about the information elements typically used by corresponding
   conveyance protocols are highlighted.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-reference-interaction-models-17"/>
        </reference>
        <reference anchor="RFC2986">
          <front>
            <title>PKCS #10: Certification Request Syntax Specification Version 1.7</title>
            <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <date month="November" year="2000"/>
            <abstract>
              <t>This memo represents a republication of PKCS #10 v1.7 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, and change control is retained within the PKCS process. The body of this document, except for the security considerations section, is taken directly from the PKCS #9 v2.0 or the PKCS #10 v1.7 document. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2986"/>
          <seriesInfo name="DOI" value="10.17487/RFC2986"/>
        </reference>
        <reference anchor="RFC4211">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="September" year="2005"/>
            <abstract>
              <t>This document describes the Certificate Request Message Format (CRMF) syntax and semantics. This syntax is used to convey a request for a certificate to a Certification Authority (CA), possibly via a Registration Authority (RA), for the purposes of X.509 certificate production. The request will typically include a public key and the associated registration information. This document does not define a certificate request protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4211"/>
          <seriesInfo name="DOI" value="10.17487/RFC4211"/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="RFC9483">
          <front>
            <title>Lightweight Certificate Management Protocol (CMP) Profile</title>
            <author fullname="H. Brockhaus" initials="H." surname="Brockhaus"/>
            <author fullname="D. von Oheimb" initials="D." surname="von Oheimb"/>
            <author fullname="S. Fries" initials="S." surname="Fries"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document aims at simple, interoperable, and automated PKI management operations covering typical use cases of industrial and Internet of Things (IoT) scenarios. This is achieved by profiling the Certificate Management Protocol (CMP), the related Certificate Request Message Format (CRMF), and transfer based on HTTP or Constrained Application Protocol (CoAP) in a succinct but sufficiently detailed and self-contained way. To make secure certificate management for simple scenarios and constrained devices as lightweight as possible, only the most crucial types of operations and options are specified as mandatory. More specialized or complex use cases are supported with optional features.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9483"/>
          <seriesInfo name="DOI" value="10.17487/RFC9483"/>
        </reference>
        <reference anchor="RFC9783">
          <front>
            <title>Arm's Platform Security Architecture (PSA) Attestation Token</title>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="S. Frost" initials="S." surname="Frost"/>
            <author fullname="M. Brossard" initials="M." surname="Brossard"/>
            <author fullname="A. Shaw" initials="A." surname="Shaw"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>Arm's Platform Security Architecture (PSA) is a family of hardware and firmware security specifications, along with open-source reference implementations, aimed at helping device makers and chip manufacturers integrate best-practice security into their products. Devices that comply with PSA can generate attestation tokens as described in this document, which serve as the foundation for various protocols, including secure provisioning and network access control. This document specifies the structure and semantics of the PSA attestation token.</t>
              <t>The PSA attestation token is a profile of the Entity Attestation Token (EAT). This specification describes the claims used in an attestation token generated by PSA-compliant systems, how these claims are serialized for transmission, and how they are cryptographically protected.</t>
              <t>This Informational document is published as an Independent Submission to improve interoperability with Arm's architecture. It is not a standard nor a product of the IETF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9783"/>
          <seriesInfo name="DOI" value="10.17487/RFC9783"/>
        </reference>
        <reference anchor="RFC9711">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (IoT) device, network equipment, or such. This claims set is used by a relying party, server, or service to determine the type and degree of trust placed in the entity.</t>
              <t>An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9711"/>
          <seriesInfo name="DOI" value="10.17487/RFC9711"/>
        </reference>
      </references>
    </references>
    <?line 942?>

<section anchor="asn1">
      <name>ASN.1 Module</name>
      <t>The following module adheres to ASN.1 specifications <xref target="X.680"/> and
<xref target="X.690"/>.</t>
      <sourcecode type="asn1"><![CDATA[
<CODE BEGINS>

att-fresh-req
  { iso(1) identified-organization(3) dod(6) internet(1)
  security(5) mechanisms(5) pkix(7) id-mod(0)
  id-mod-att-fresh-req (TBDMOD) }

DEFINITIONS IMPLICIT TAGS ::=
BEGIN
EXPORTS ALL;
IMPORTS

id-it, InfoTypeAndValue{}
  FROM PKIXCMP-2023
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7) id-mod(0)
      id-mod-cmp2023-02(116) }

id-cmc, CMC-CONTROL
FROM EnrollmentMessageSyntax-2025
   { iso(1) identified-organization(3) dod(6) internet(1)
   security(5) mechanisms(5) pkix(7) id-mod(0)
   id-mod-enrollMsgSyntax-2025(TBDCMC) }
-- RFC Editor: TBDCMC shall be TBD1 as defined by
--   Section 11 of draft-ietf-lamps-rfc5272bis

;

-- NonceRequest and NonceResponse types

ATTESTATION-NONCE-REQUEST ::= TYPE-IDENTIFIER

AttestationNonceRequestSet ATTESTATION-NONCE-REQUEST ::= {
   ... -- None defined in this document --
}

ATTESTATION-NONCE-RESPONSE ::= TYPE-IDENTIFIER

AttestationNonceResponseSet ATTESTATION-NONCE-RESPONSE ::= {
   ... -- None defined in this document --
}

 NonceRequest ::= SEQUENCE {
    len    INTEGER (8..64) OPTIONAL,
    -- indicates the required length of the requested nonce
    type   ATTESTATION-NONCE-REQUEST.&id(
              {AttestationNonceRequestSet}) OPTIONAL,
    -- identifies the nonce-request syntax for the selected
    --   attestation statement type
    reqInfo ATTESTATION-NONCE-REQUEST.&Type(
              {AttestationNonceRequestSet}{@type}) OPTIONAL
    -- contains type-specific nonce-request information
 }

 NonceResponse ::= SEQUENCE {
    nonce  OCTET STRING (SIZE(0 | 8..64)),
    -- contains the nonce of length len
    -- a zero-length OCTET STRING indicates that no freshness
    --   proof is required
    expiry INTEGER OPTIONAL,
    -- indicates how long in seconds the nonce issuer considers
    --   the nonce valid
    type   ATTESTATION-NONCE-RESPONSE.&id(
              {AttestationNonceResponseSet}) OPTIONAL,
    -- identifies the nonce-response syntax for the selected
    --   attestation statement type
    respInfo ATTESTATION-NONCE-RESPONSE.&Type(
               {AttestationNonceResponseSet}{@type}) OPTIONAL
    -- contains type-specific nonce-response information
 }

 id-it-nonceRequest OBJECT IDENTIFIER ::= { id-it TBD1 }
    NonceRequestValue ::= NonceRequest

 id-it-nonceResponse OBJECT IDENTIFIER ::= { id-it TBD2 }
    NonceResponseValue ::= NonceResponse

 cmc-nonceReq CMC-CONTROL ::=
     { NonceRequest IDENTIFIED BY id-cmc-nonceReq }
 id-cmc-nonceReq OBJECT IDENTIFIER ::= { id-cmc TBD4 }

 cmc-nonceResp CMC-CONTROL ::=
     { NonceResponse IDENTIFIED BY id-cmc-nonceResp }
 id-cmc-nonceResp OBJECT IDENTIFIER ::= { id-cmc TBD5 }

END
<CODE ENDS>
]]></sourcecode>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1deXfbRpL/vz9FP/m9tTRD0rrs2JokG1qSHSXWsSKzmey+
2TUINiXEIMAFQMmMrP3sW0efAEhRjjM7+95qDktAo4/q6qpfVVdXd7tdcXMg
98Q4j7Noqg6kHBfRpOomqpp002g6K7tRVamyiqokz7qTQpXXmSrL7vZXIo6q
A1lWY5HMigNZFfOy2t3efrW9K+I8K1VWzssD+RSeq6einI+mSVlCHdViBs2c
HA/fiDTKrg6kysQsORBSFpNYjctqkcL7hSrhSZXH3q9JNlZZZR6UeVEValLa
vxfT4M+qSGJbOM6nU/jWvk2yNMlcM+pj1U2TsupCJaM8hWLd/E9/hjdAlmk0
myXYTyxbJRX27lL91xxoAo9lJN8YmsizPIuVnOSF7DuayeObBPoNL5JMHqqi
SiYJUE7JQXKVYQ26slJEo1GhYDZchVhV8PngEooVKgK6q1jcQq/e9U8vBvLn
vPiAdb0t8vlMfFCL27wYH4guVD7NoS2vP/BwRS9qb0+jLLpSSDp5UeQwB3kq
Nw9PL7ag3HFW5GlK7/IbVciBiueFksMiysoZTI7cPB4Mt5ZXSB8dng6wwsMt
MYbXB3J3e/eFuEqq6/noQG7cXjEPPlvBiRsCHmXj/4zS3MxoNK+u8wJYqisl
zjXM5/c9OSzj63yisuRKSPphhv8+yqCa5tu8AOoOEuxrqR+ZCQqfAqcpBZz2
syoyVXRvoHO6QHdQFVFZKrmji8b5GFp8+nJ7b2/vqXmWVIsDeTrPkvjaFptn
VQFP36piGmUL/VhNoyQ9kNfU4V5lO/zd1fRjL1NVbbyvizz+cB3Ny3C4KhsX
yYfG23/c4XKHeyPT4e9Kbq4Hi1oXnRcJFKyqWXnw7Nnt7W0vKOKo8kMPGXCs
0oAkP+QqfEy06P/Y/+VdvyNPsrhXIwi/Crv5a66+iz5EizSqNzoA1psjrYJG
ByrKwufUapntFeOw5hJKfkfPqWaR5UClKrlRKDMv3xzu7uy8wl9Pukc9T2zH
ZeEvmJYSIG+f7361O0pKXdOrlzvb+tevtvfsr7vPd02Bnf2X+teXL3aeu19N
2Ze7z1/pX/df2LIvXu7Zz17tmwKv9l/uuoZ38Ne/9l68pKpAJkfFFbKZP6tJ
Ne8lWfWsUPGzYffy+LBHH3B5lszfatqdZBMmEwjgoYqvszzNrxYwK/0RMHAU
V3KwyKroI8hsLabPMyU3+4Oz3s7Wga5kMFMxCy4skE/kKCqTWGb6EyplZY2b
w5PhT90hPWCZ9hSE2k53e5eXQKmKRJUJ9M98ROVBALOSGnNrZmTw76vHkuTV
I0mCgwY1DMsVNUExT1W5lASviQTHpvAlFpabr48vtzr6k8Moy2F1R2mj1CGU
MkspG8ujhFToPCmv1bhR+MgU/gMpDIRKDFV4PdklUkRV2Z2WV93bIpqZNwAp
rqNiXILMo/dQ3ywvk0rplaaKslkJoBJVoAbvwkQp5D3UX1OQjalZeLuvXr4w
y2aXlwKuir29fbdW9syvX3m/YlnR7XZBNDFbC/EzCEwgL8znGP4HPLAAMRSn
8zEQ1ZMHEv8lRVwisojaQIHQoABmbgDzK6trQDcWnAAz4APAejdqgRNogEo+
qaALmQIwB7BNjpTARkcpzXNP9gmNQQ+mwIRRlpRTmUDXYFnhx9V1VOHf+aiK
AKKNocF8Cm8vVbrALl1EBYwIcNG/wixPEoAQyEp6hGM5WlCn+no6cGj4t+lb
T4jhNdQOuG5OIKRk/gbaXOe3NbIVGpjJch5f4zuPfMLRgfvN3czkZf/ZYV/e
4iTMS2Tn2KNrmkxUvIhTJacOB800sCp74qSSYzVJEI9MoWooIZk7SxqlKSlH
AIWhbgaIbhIipj73SOju05fQ2RliclNtaQizFtjriPWwXofaegDuCYJ7HT1l
SKF8hhQFeYGmQVfPSCwTT14hM8HsAjcBDcbzWPOhsDyHhKAa0cTQDD247PHi
mCbjcaqEEE9ACFZUAdV698T/816Iu7vVSvT+vsYwbTgfqFAKnsaxIfNlfziQ
/SK+BlkRV0i6uzu9wu/vOzIGxhl5S6m+IEUNpfOC1Ax28ePh4MnONteIkgR6
CdQ4vDx9w89QpNzfAwrRHRFBR0BQp8xIdpVirY217oZXKgWUAhagYUPL8NYO
JljfILjHzapdtbASoR0xLx3blj05wOXGf8gpGJVIGph2bN8ucC0OZEMciEAc
1JZ/XTz0tLiklTC4xP7YOWDiRuuv3w7JCRGVwOUXen4BUOH8wuLgBwir8AHO
z+mhbPCbg2RYCmnjySPkErOoscf4e1JAVz0JxMyGIoh4aFYk0JRe9EJ9RIEL
QoWESYQTUOGaCiRmfY0tl52gUeIiGbXKTr+vUZuIFExfIBWRR4uO00NqBddz
mua3xIj5LIlB/gGr5vMK+aSM85nSos/vD9agwHSEQcQobdQYtLvM6UHp45gS
6Y8VJtNZSpOo4U0BY5ql+UIPDzQQqmgwYUGeUzUkVQzhoRrAjEjfHOpihu1A
YaQGktQjB3T2FoEDPdeKLqR7x2vFTaIW71bXXSmwF4AT/Ypw2NxkXipuEMST
wEWIVhby7S1QRaoIlhVRg4gN7TFpeJm2iAC7TmFOTjImNiwP9JZ06gMkDT5W
N4lR4VgQFHhIIzNYIBP22o0TkAtUUDo9rxe2rsqOpOSh+HUa2mAvnwCwLaaJ
RrbYxCVPFeOcd8D8c1wIxGIf1EKim6SUG6c/DYYbHf5Xnp3T75fH//LTyeXx
Ef4++L7/7p39hUsI+OP8p3f6Pf7mvjw8Pz09Pjvij0/7v2wwe2+cXwxPzs/6
7zZYMCWlcMxbKAZLklDirFAVrGwgiVllJMxAhEi097Swh99A4tbXJYjTkjUO
Nnrx48lfZeWTJazTE+V7uLoe0oA9CSglSsuc2/FrxgUucFKj2SyF+RqBoFwf
/hy0CoMnodrEF6caGr3R0OjuiV8E1Hg/jmFeWXg0ZWxjRB29rFFmabYFvZNW
CQgH8d5T8QMLmd9TR0whf5C8jm6iNEEzgxQpLMtl1aBSfoxIRU2JVBJEJa1F
YJCtotYtL+xSZGUg4SxfpQvDeKHWZAA1DBd6Cb87tG7aNWiVVmcVyG9Ym+mY
pej7VGXvwXrTssSsBi7SECk4Xu4yK22gDWk7qOQKZcAEPbfXtg9WD0LvRwuc
CJInMBNz0PuqulWg6F/SvL3Y72FvkAyf3x1DRFTSEjuB9jV6x+bEhtSCfoqN
TPgDaKdUJD4bLUqSPoYBTRMWD5MXG0RDVrFUdLNr1RFMo1EQhPix7Z7fdJZX
1DzUZfvGzdKCBh7Ipwkw6ljPO9fPuhwGlS2jt2OH0MyAHl2RShPEGD6id8zI
elB3XHsZGjabWtbCdVSuYDj6CMhPq2wJlfUoJj52As5B4YXMcpukKYsSoJqG
oYCbiK7emtJceQvdsQTqeFVqFWEqiKAybphGC/NZJr8pniz7zThXZfa0IusH
2nK4GWrJJx3Xe6iMhjVSJDOmM8bEv6ki7+qO4X5IdkVcqT7OkmLxAOe7qfeZ
nuQaroYZaF3A9nYRWlYoFdB2zIsvI112pQpehWyBcElt8YA8G8vxvGBBmaCP
mWv+i2Y1PdvIQ2pCMMu5FRxWB3rAmNPFusu6fXDeisblwevnPe8l6UVNI+DV
5DNPgytRpmsLcORVnmQBuWrSU4sM3e4Xlhlu1eoOhejUrj9t+tnF5/WCWJYF
iNfP5fIjUGzAyvT1ZF54gHxhvBfUR0d7LZpw/XkzYeeh/ItGu+6JtRQN3VVa
qltkm548RuRLzxMSMFgU7LQSjGpk0nz0K0AHiQOunEvJ76D6iB7jWjcBY/C8
I9IQNB3MH15LjRHZDnN/iWzLeBDWKfQLrBiP2DVWNPzmqjW42jUJk9tWAVgI
GlCMkwl5KCvrAwYj/A1aAx8jNJAQjmknsWnPh0p+S35XqTLGsD8Mzs86KGIz
FWMNxYK730qXaGElA8hcIzADg9dXJFp/1OwGgERgLarmYhO6PEDUIgfzGHWl
Na/IbWdR3Y2xLAicl/MZerrU2Ha9wZa1vmv5JN/i0gIV4Tvgj9nuLMWmg98v
Avj9oO/4/n5LeyZLbVghHx5nN0mRZ7ToTo7Yb3iYRslUDlTKDWmFeqW7ZT2N
oD8tUKpJiNBaQ4EE+DRj62GSXKGj/A18TsbIf8OPjKLy5sp3XrT8sB9AG40E
EKwTQhcI5rT+Yz0++Mentgb0z6p38pP5vN1QWftz2WbTrPv5191lP9+u17rR
JMzqjxz70sbXbX15iXrPNo2vd2utz5f3DLq2TuvNVh/R+eWz0u3azxsU91pf
UfdD895dj/J622lM9utjW/9D5926XD/n8989775f/lKVINEf0fpa8+6Li3rr
K+r+QvO+auyrPkfZLO4O5BNPaPM+8Tcb1q2Cz0Cvv47iD1egRVGBXKv4gzxF
tbNxH5pjbo+pHQqDBkrTpkPU+SxEnqUL8ug5dyb+1YZZan4Nay65isVthJ4+
qF57M5w6txzZ2PkcXHbQE27wEFr0dmfX6STSuqE7znOd9faCbRDysLLraY1N
Y/RBJT3V61iDmfVhhBAiVrNqHqXC+lgKwC5QYvPw9Oct370VbFnjVpUhW2eF
z2+/t6bXDyc9VdHYEkQABpinhAsy3k1oOLfL+ahrfb49jB1QOLnyTXKFs7mL
9uOjiMRoA7th68WBAhhBpCM0YMUBkf8sNDbHCRrBozk5Vqc5AItSAcaLUueX
JoYgr5tgfiIWsyzUiqMJHRpo2lnXgqFOGTdqMNGydaJDYNW+vntWivSWlPgE
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
bL2jcOL47EijUvgNMCmeq/of1mnPRy+YAAA=

-->

</rfc>
