<?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.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-liao-ace-est-c509-03" category="std" consensus="true" submissionType="IETF" tocDepth="4" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="EST-C509">EST for C509 Certificates</title>
    <seriesInfo name="Internet-Draft" value="draft-liao-ace-est-c509-03"/>
    <author initials="L." surname="Liao" fullname="Lijun Liao">
      <organization>NIO</organization>
      <address>
        <email>lijun.liao@nio.io</email>
      </address>
    </author>
    <date year="2026" month="July" day="19"/>
    <abstract>
      <?line 69?>

<t>This document defines Enrollment over Secure Transport (EST) protocol operations over HTTPS and secure CoAP for use with C509 certificates. The operations specified in this document support CA certificate distribution, C509 certificate enrollment, C509 certificate re-enrollment, and server-side key generation using C509 certificates. This document also defines operations for Certificate Revocation List (CRL) distribution.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-liao-ace-est-c509/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Authentication and Authorization for Constrained Environments Working Group mailing list (<eref target="mailto:ace@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ace/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ace/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ace-wg/xxx"/>.</t>
    </note>
  </front>
  <middle>
    <?line 73?>

<section anchor="intro">
      <name>Introduction</name>
      <t>Enrollment over Secure Transport (EST) <xref target="RFC7030"/> defines HTTPS-based operations for X.509 <xref target="RFC5280"/> certificate enrollment and CA certificate distribution.  Payloads are DER-encoded and wrapped in CMS (Cryptographic Message Syntax, <xref target="RFC5652"/>) structures.  C509 <xref target="I-D.ietf-cose-cbor-encoded-cert"/> defines a compact, CBOR-encoded alternative to DER X.509 certificates.  C509 certificates are substantially smaller.</t>
      <t>Although C509 was developed with constrained devices in mind, its benefits extend to unconstrained devices operating over low-bandwidth links and to large-scale deployments.  Smaller, CBOR-encoded certificates reduce bandwidth and storage requirements, accelerate TLS handshakes, and lower parsing and serialization overhead even on powerful endpoints; because C509 does not use ASN.1/DER, implementations can avoid complex ASN.1 parsing code, which reduces code size and complexity and lowers the attack surface for certificate parsing libraries.  In complex systems (for example, connected cars) that contain diverse device classes—microcontrollers, sensor chips, and SoCs—using a common certificate format wherever practical simplifies integration and provisioning.  Using C509 consistently across device classes simplifies provisioning, interoperability, and over-the-air updates, and can reduce overall operational costs and latency.</t>
      <t>This document defines EST operations that carry C509 objects in place of DER X.509 objects, following the same secure transport and URI path structure as <xref target="RFC7030"/> and <xref target="RFC9148"/>.</t>
      <t>A key property of this design is that EST clients do not require a CBOR parser or generator:</t>
      <ul spacing="normal">
        <li>
          <t>For non-KEM-only key types, the C509 CSR is typically pre-provisioned as an opaque binary blob by the device manufacturer or a provisioning tool; the EST client sends it verbatim as the POST body of <tt>simpleenroll</tt> / <tt>sen</tt> or <tt>simplereenroll</tt> / <tt>sren</tt> without interpreting its contents.</t>
        </li>
        <li>
          <t>For KEM-only key types, the EST client needs to communicate with the key device to get the public key (<tt>C509PublicKey</tt>) and the certification request (<tt>C509CertificationRequest</tt>) after receiving the KEM challenge object (<tt>C509KemChall</tt>) from the EST server; in this case, the EST client considers the <tt>C509PublicKey</tt>, <tt>C509KemChall</tt>, and <tt>C509CertificationRequest</tt> opaque binary blobs.</t>
        </li>
        <li>
          <t>For all key types, the C509 certificate (and private key in the operation <tt>serverkeygen</tt> / <tt>skc</tt>) returned in the response is stored directly to persistent memory without parsing.  This property makes the EST client implementation extremely lightweight.</t>
        </li>
      </ul>
      <t>This document uses <tt>C509CertificationRequest</tt> as defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/> as the C509 Certificate Signing Request (C509 CSR) format.  An EST client uses a C509 CSR to request issuance of a C509 certificate from an EST server.</t>
      <t>The operations for EST over HTTPS used in this document are (those wit <tt>new</tt> marked are new operations defined in this document) in <xref target="tab-ops-https-overview"/>, and for EST over CoAP in <xref target="tab-ops-coaps-overview"/>.</t>
      <figure anchor="tab-ops-https-overview">
        <name>Operations for EST over CoAP/DTLS Used in This Document (M/O: MANDDATORY / OPTIONAL)</name>
        <artwork><![CDATA[
+==========+===+=============+==============+===================+
| Opera-   | M | Description |  Request     | Response          |
| tion     | / |             |  Media Type  | Media Type        |
|          | O |             |              |                   |
+==========+===+=============+==============+===================+
| caps     | M | Capability  | (none)       | text/plain;       |
| (new)    |   | discovery   |              | charset=utf-8     |
+----------+---+-------------+--------------+-------------------+
| cacerts  | M | CA          | (none)       | - application/    |
|          |   | certificate |              |   cose-c509+cbor  |
|          |   | retrieval   |              | - application/    |
|          |   |             |              |   cose-c509+cbor, |
|          |   |             |              |   usage=chain     |
|          |   |             |              | - cose-c509-cert  |
|          |   |             |              |   +cbor           |
+----------+---+-------------+--------------+-------------------+
| crli     | O | CRL         | (none)       | application/      |
| (new)    |   | metadata    |              | c509-crlinfo+cbor |
|          |   | retrieval   |              |                   |
+----------+---+-------------+--------------+-------------------+
| crl      | O | CRL         | (none)       | application/      |
| (new)    |   | retrieval   |              | c509-crl+cbor     |
+----------+---+-------------+--------------+-------------------+
| csr      | O | CSR         | (none)       | application/      |
| attrs    |   | attributes  |              | cose-c509-        |
|          |   | retrieval   |              | crtemplate+cbor   |
+----------+---+-------------+--------------+-------------------+
| kemc     | O | KEM         | application/ | application/      |
| (new)    |   | challenge   | c509-pubkey  | c509-kemchall     |
|          |   | issuance    | +cbor        | +cbor             |
+----------+---+-------------+--------------+-------------------+
| simple   | M | Certificate | application/ | application/      |
| enroll   |   | enrollment  | cose-c509-   | cose-c509-        |
|          |   |             | pkcs10+cbor  | cert+cbor         |
+----------+---+-------------+--------------+-------------------+
| simple   | M | Certificate | application/ | application/      |
| reenroll |   | reenroll-   | cose-c509-   | cose-c509-        |
|          |   | ment        | pkcs10+cbor  | cert+cbor         |
+----------+---+-------------+--------------+-------------------+
| server   | O | Server-side | application/ | application/      |
| keygen   |   | key         | cose-c509-   | cose-c509-        |
|          |   | generation  | pkcs10+cbor  | pem+cbor          |
+----------+---+-------------+--------------+-------------------+
]]></artwork>
      </figure>
      <figure anchor="tab-ops-coaps-overview">
        <name>Operations for EST over CoAP/DTLS Used in This Document (M/O: MANDDATORY / OPTIONAL)</name>
        <artwork><![CDATA[
+===============+================+=====+==========+==========+
| EST over      | Corresponding  | M/O | Request  | Response |
| CoAP/DTLS     | EST over HTTPS |     | Content- | Content- |
| Operation     | Operation      |     | Format   | Format   |
+===============+================+=====+==========+==========+
| (Not Related) |                |     |          |          |
+---------------+----------------+-----+----------+----------+
| crts          | cacerts        | M   | (none)   | - TBD    |
|               |                |     |          | - TBD    |
|               |                |     |          | - TBD    |
+---------------+----------------+-----+----------+----------+
| crli (new)    | crli           | O   | (none)   | TBD      |
+---------------+----------------+-----+----------+----------+
| crl (new)     | crl            | O   | (none)   | TBD      |
+---------------+----------------+-----+----------+----------+
| attr          | csrattrs       | O   | (none)   | TBD      |
+---------------+----------------+-----+----------+----------+
| kemc (new)    | kemc           | O   | TBD      | TBD      |
+---------------+----------------+-----+----------+----------+
| sen           | simpleenroll   | M   | TBD      | TBD      |
+---------------+----------------+-----+----------+----------+
| sren          | simplereenroll | M   | TBD      | TBD      |
+---------------+----------------+-----+----------+----------+
| skc           | serverkeygen   | O   | TBD      | TBD      |
+---------------+----------------+-----+----------+----------+
]]></artwork>
      </figure>
    </section>
    <section anchor="conventions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The following terms are used in this document:</t>
      <dl>
        <dt>EST client:</dt>
        <dd>
          <t>The entity that contacts the EST server to obtain certificates or CA information, as defined in <xref section="1" sectionFormat="comma" target="RFC7030"/>.</t>
        </dd>
        <dt>EST server:</dt>
        <dd>
          <t>The entity that processes EST requests, typically acting as an RA between the EST client and the CA, as defined in <xref section="1" sectionFormat="comma" target="RFC7030"/>.</t>
        </dd>
        <dt>CA:</dt>
        <dd>
          <t>Certification Authority.  The entity that issues C509 certificates.</t>
        </dd>
        <dt>C509 CSR:</dt>
        <dd>
          <t>C509 Certification Request.  A CBOR-encoded certification request used by an EST client to request issuance of a C509 certificate.</t>
        </dd>
        <dt>PoP:</dt>
        <dd>
          <t>Proof of Possession.  Verification that the requester holds the private key corresponding to the public key in the C509 CSR.</t>
        </dd>
      </dl>
    </section>
    <section anchor="protocol-design">
      <name>Protocol Design</name>
      <section anchor="client-auth">
        <name>Client Authentication</name>
        <t>While <xref target="RFC7030"/> permits a number of the EST functions to be used without authentication, this document requires that the client <bcp14>MUST</bcp14> be authenticated for all functions, as in <xref target="RFC9148"/>. This document require the use of EST to support certificate-based client authentication only, neither HTTP Basic nor Digest authentication (as described in Section 3.2.3 of <xref target="RFC7030"/>) is supported, as in <xref target="RFC9148"/>.</t>
      </section>
      <section anchor="discovery-uris">
        <name>Discovery and URIs</name>
        <t>In EST over HTTPS, the capabilities of EST server is retrieved by using the operation <tt>caps</tt>.</t>
        <t>In EST over CoAP/DTLS, the capabilities is retrieved by sending a GET method to the EST server (as in <xref section="4.1" sectionFormat="of" target="RFC9148"/>) (TODO: the TBD will be replaced with the real value once the Content-Formats are assigned in <xref target="I-D.ietf-cose-cbor-encoded-cert"/> and <xref target="I-D.liao-cose-c509-revocation"/>). Linefeeds are included only for readability.</t>
        <artwork><![CDATA[
REQ: GET /.well-known/core?rt=ace.est*

RES: 2.05 Content
</est/crts>;rt="ace.est.crts";ct="TBD TBD TBD",
</est/sen>;rt="ace.est.sen";ct=TBD,
</est/sren>;rt="ace.est.sren";ct=TBD,
</est/att>;rt="ace.est.att";ct=TBD,
</est/skc>;rt="ace.est.skc";ct=TBD,
</est/crli>;rt="ace.est.crli";ct=TBD,
</est/crl>;rt="ace.est.crl";ct=TBD,
</est/kemc>;rt="ace.est.kemc";ct=TBD7
]]></artwork>
      </section>
      <section anchor="est-url-structure">
        <name>EST URL Structure and Path Components</name>
        <t>The operations in this document follow the same URI path structure defined in <xref section="3.2.2" sectionFormat="comma" target="RFC7030"/> for HTTPS and the corresponding secure CoAP mapping defined in <xref target="RFC9148"/>.  Retrieval operations <tt>caps</tt>, <tt>cacerts</tt> / <tt>crts</tt>, <tt>csrattrs</tt> / <tt>att</tt>, <tt>crli</tt>, and <tt>crl</tt> use GET method.</t>
        <artwork><![CDATA[
Method: GET
Request target: /.well-known/est/<operation>
Request target: /.well-known/est/<label>/<operation>
]]></artwork>
        <t>Enrollment operations <tt>kemc</tt>, <tt>simpleenroll</tt> / <tt>sen</tt>, <tt>simplereenroll</tt> / <tt>sren</tt>, and <tt>serverkeygen</tt> / <tt>skc</tt> use HTTP POST or CoAP POST:</t>
        <artwork><![CDATA[
Method: POST
Request target: /.well-known/est/<operation>
Request target: /.well-known/est/<label>/<operation>
]]></artwork>
        <t>An EST server <bcp14>MUST</bcp14> return HTTP 405 / CoAP 4.05 (Method Not Allowed) if a client uses POST for a retrieval operation or GET for an enrollment operation.</t>
        <t>The optional <tt>&lt;label&gt;</tt> path segment follows <xref section="3.2.2" sectionFormat="comma" target="RFC7030"/> for HTTPS and the equivalent path structure in <xref target="RFC9148"/> for CoAP: an EST server <bcp14>MAY</bcp14> use an additional path segment before the operation name to distinguish services for multiple CAs and / or certificate profiles.</t>
      </section>
      <section anchor="channel-binding">
        <name>Channel Binding</name>
        <t>Channel binding is <bcp14>OPTIONAL</bcp14>. The challel binding mechanisms specified in {RFC7030} and <xref target="RFC9148"/> apply.</t>
      </section>
      <section anchor="message-binding">
        <name>Message Binding</name>
        <t>The message binding mechanism specified in <xref section="4.4" sectionFormat="comma" target="RFC9148"/> applies for CoAP in this document.</t>
      </section>
      <section anchor="message-fragmentation">
        <name>Message Fragmentation</name>
        <t>The message fragmentation mechanism specified in <xref section="4.6" sectionFormat="comma" target="RFC9148"/> applies for CoAP in this document.</t>
      </section>
      <section anchor="delayed-responses">
        <name>Delayed Responses</name>
        <t>The mechanism for delayed responses specified in <xref section="4.7" sectionFormat="comma" target="RFC9148"/> applies for CoAP in this document. And the mechanism with retry-later for the operarions <tt>simpleenroll</tt> and <tt>simplereenroll</tt> specified in <xref section="4.2.3" sectionFormat="comma" target="RFC7030"/> applies for HTTP in this document.</t>
      </section>
      <section anchor="response-cache">
        <name>Response Cache</name>
        <t>Successful responses, if will not be changed in the next short period, may include caching metadata:</t>
        <ul spacing="normal">
          <li>
            <t>For EST over HTTPS, EST servers <bcp14>SHOULD</bcp14> include <tt>ETag</tt>, <tt>Last-Modified</tt>, <tt>Cache-Control</tt>, and <tt>Expires</tt> headers.</t>
          </li>
          <li>
            <t>For EST over secure CoAP, EST servers <bcp14>SHOULD</bcp14> include the options <tt>E-Tag</tt> and <tt>Max-Age</tt>.</t>
          </li>
        </ul>
      </section>
      <section anchor="cbor-transfer">
        <name>CBOR Transfer</name>
        <t>All POST request bodies in this document are CBOR-encoded.  For HTTPS, CBOR-based response bodies are base64-encoded for transport.  For CoAP, CBOR payloads are carried directly in the message body using the relevant CoAP Content-Format.  The CBOR encoding <bcp14>MUST</bcp14> be deterministic as specified in Sections <xref target="RFC8949" section="4.2.1" sectionFormat="bare"/> and <xref target="RFC8949" section="4.2.2" sectionFormat="bare"/> of <xref target="RFC8949"/>.  Servers <bcp14>MUST NOT</bcp14> include a <tt>Content-Transfer-Encoding</tt> header for CBOR payloads.</t>
        <t>The media types used in this document are:</t>
        <table anchor="tab-media-types">
          <name>Media Types Used in This Document</name>
          <thead>
            <tr>
              <th align="left">Media Type</th>
              <th align="left">CoAP Content Format</th>
              <th align="left">Structure</th>
              <th align="left">Defined in</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/cose-c509-cert+cbor</td>
              <td align="left">TBD</td>
              <td align="left">C509Certificate</td>
              <td align="left">
                <xref target="I-D.ietf-cose-cbor-encoded-cert"/></td>
            </tr>
            <tr>
              <td align="left">application/cose-c509+cbor</td>
              <td align="left">TBD</td>
              <td align="left">COSE_C509</td>
              <td align="left">
                <xref target="I-D.ietf-cose-cbor-encoded-cert"/></td>
            </tr>
            <tr>
              <td align="left">application/cose-c509+cbor;usage=chain</td>
              <td align="left">TBD</td>
              <td align="left">COSE_C509</td>
              <td align="left">
                <xref target="I-D.ietf-cose-cbor-encoded-cert"/></td>
            </tr>
            <tr>
              <td align="left">application/cose-c509-pkcs10+cbor</td>
              <td align="left">TBD</td>
              <td align="left">C509CertificationRequest</td>
              <td align="left">
                <xref target="I-D.ietf-cose-cbor-encoded-cert"/></td>
            </tr>
            <tr>
              <td align="left">application/c509-pubkey+cbor</td>
              <td align="left">TBD3</td>
              <td align="left">C509PublicKey</td>
              <td align="left">this document</td>
            </tr>
            <tr>
              <td align="left">application/c509-kemchall+cbor</td>
              <td align="left">TBD7</td>
              <td align="left">C509KemChall</td>
              <td align="left">this document</td>
            </tr>
            <tr>
              <td align="left">application/cose-c509-crtemplate+cbor</td>
              <td align="left">TBD</td>
              <td align="left">C509CertificationRequestTemplate</td>
              <td align="left">
                <xref target="I-D.ietf-cose-cbor-encoded-cert"/></td>
            </tr>
            <tr>
              <td align="left">application/cose-c509-pem+cbor</td>
              <td align="left">TBD</td>
              <td align="left">C509PEM (key + certificate)</td>
              <td align="left">
                <xref target="I-D.ietf-cose-cbor-encoded-cert"/></td>
            </tr>
            <tr>
              <td align="left">application/c509-crl+cbor</td>
              <td align="left">TBD</td>
              <td align="left">C509CRL</td>
              <td align="left">
                <xref target="I-D.liao-cose-c509-revocation"/></td>
            </tr>
            <tr>
              <td align="left">application/c509-crlinfo+cbor</td>
              <td align="left">TBD</td>
              <td align="left">C509CRLInfo</td>
              <td align="left">
                <xref target="I-D.liao-cose-c509-revocation"/></td>
            </tr>
          </tbody>
        </table>
        <t>The <tt>caps</tt> operation returns <tt>text/plain; charset=utf-8</tt> with a list of capability keywords.</t>
      </section>
    </section>
    <section anchor="c509-csr">
      <name>C509 Certification Request (C509 CSR)</name>
      <t>A C509 CSR is a CBOR-encoded certification request used to request issuance of a C509 certificate.  It is the C509 analogue of the PKCS#10 CSR <xref target="RFC2986"/> used in standard EST operations.</t>
      <t>This document uses <tt>C509CertificationRequest</tt> as defined in <xref section="4" sectionFormat="comma" target="I-D.ietf-cose-cbor-encoded-cert"/>.  An EST client sends a C509 CSR to request certificate issuance or re-enrollment. The media type is <tt>application/cose-c509-pkcs10+cbor</tt>.</t>
      <t>For server-side key generation requests (<xref target="skc"/>), the EST client does not possess the private key and does not know the public key that the EST server will generate.  In this case, the <tt>subjectPublicKeyAlgorithm</tt> in <tt>TBSCertificationRequest</tt> <bcp14>MUST</bcp14> be set to the integer code for <tt>empty-publickey</tt> (see <xref target="empty-publickey"/>) and <tt>subjectPublicKey</tt> <bcp14>MUST</bcp14> be a zero-leght byte string (<tt>h''</tt>).  Because no private/public key is available, no PoP signature can be computed/verified: the <tt>signatureAlgorithm</tt> <bcp14>MUST</bcp14> be set to the <tt>id-alg-unsigned</tt> integer code and <tt>signatureValue</tt> <bcp14>MUST</bcp14> be a zero-length byte string.  EST servers <bcp14>MUST</bcp14> accept C509 CSRs using <tt>empty-publickey</tt> and <tt>id-alg-unsigned</tt> for <tt>serverkeygen</tt> / <tt>skc</tt> requests and <bcp14>MUST NOT</bcp14> verify a PoP signature in this case.</t>
      <section anchor="empty-publickey">
        <name>empty-publickey Algorithm</name>
        <t>This document defines a new C509 public key algorithm, <tt>empty-publickey</tt>, to be used exclusively in C509 CSRs for <tt>serverkeygen</tt> / <tt>skc</tt> (server key generation) requests to indicate that no public key is available in the CSR.</t>
        <t>The <tt>empty-publickey</tt> algorithm code (TBD1) <bcp14>MUST NOT</bcp14> appear in C509 certificates.  It is only valid in the <tt>subjectPublicKeyAlgorithm</tt> field of <tt>TBSCertificationRequest</tt> when the corresponding <tt>subjectPublicKey</tt> is a zero-length byte string (<tt>h''</tt>).  EST servers <bcp14>MUST</bcp14> reject any C509 CSR using <tt>empty-publickey</tt> in a <tt>simpleenroll</tt> / <tt>sen</tt> or <tt>simplereenroll</tt> / <tt>sren</tt> request.</t>
      </section>
      <section anchor="change-subject-name">
        <name>CRAttribute C509ChangeSubjectName</name>
        <t>The C509ChangeSubjectName for X.509 PKI is defined in <xref target="RFC6402"/>. The corresponding definition for C509 certification request is a CBOR-array consisting of a <tt>subject</tt> and a <tt>subjectAlt</tt>. At least one of <tt>subject</tt> and <tt>subjectAlt</tt> <bcp14>MUST NOT</bcp14> be <tt>null</tt>.</t>
        <sourcecode type="cddl" name="c509est.cddl"><![CDATA[
C509ChangeSubjectName = [
  subject     C509Name / null,
  subjectAlt  SubjectAltName / null
]
]]></sourcecode>
        <t>This CRAttribute <bcp14>MAY</bcp14> be included in a <tt>simplereenroll</tt> / <tt>sren</tt> request to change the <tt>Subject</tt> field and/or the <tt>SubjectAltName</tt> extension in the newly generated certificate.</t>
      </section>
      <section anchor="proof-of-possession">
        <name>Proof of Possession</name>
        <t><tt>simpleenroll</tt> / <tt>sen</tt> and <tt>simplereenroll</tt> / <tt>sren</tt> <bcp14>MUST</bcp14> verify the PoP signature in the C509 CSR before issuing a certificate.  The <tt>serverkeygen</tt> / <tt>skc</tt> operation does not require PoP verification because the EST server generates the key pair itself.</t>
        <section anchor="c509pubkey">
          <name>C509PublicKey</name>
          <t>A <tt>C509PublicKey</tt> contains a subject public key in the C509 encoding.  It uses the same field types as <tt>TbsCertificate</tt> in <xref target="I-D.ietf-cose-cbor-encoded-cert"/> and is defined as:</t>
          <artwork name="c509est.cddl"><![CDATA[
C509PublicKey = [
  subjectPublicKeyAlgorithm : AlgorithmIdentifier,
  subjectPublicKey          : Defined
]
]]></artwork>
          <t>The <tt>subjectPublicKeyAlgorithm</tt> field uses the full <tt>AlgorithmIdentifier</tt> encoding as defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>, without limitation.
The <tt>subjectPublicKey</tt> field uses the same encoding as in C509 certificates: for most algorithms it is a CBOR byte string, but for RSA public keys it is encoded as an array of two unwrapped CBOR unsigned bignums <tt>[~biguint, ~biguint]</tt> when the exponent is not 65537, as specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
          <t>The media type of <tt>C509PublicKey</tt> is <tt>application/c509-pubkey+cbor</tt> (see <xref target="iana-c509-pubkey"/>); the corresponding CoAP Content-Format is defined in <xref target="content-format"/>.  The "magic number" is TBD2, using the reserved CBOR tag 55799 and Content-Format TBD3, as described in <xref section="2.2" sectionFormat="comma" target="RFC9277"/>.</t>
        </section>
        <section anchor="pop-kem">
          <name>Proof of Possession for KEM Private Keys</name>
          <t>Some public-key algorithms are KEM-only (key-encapsulation mechanisms) and do not provide a signature operation suitable for the traditional PoP signature carried in a <tt>C509CertificationRequest</tt>.  For CSRs whose <tt>subjectPublicKeyAlgorithm</tt> is a KEM algorithm, an EST server <bcp14>MUST</bcp14> obtain explicit proof that the requester holds the corresponding KEM private key.  This document specifies an interactive KEM challenge–response PoP mechanism.</t>
          <t>The recommended KEM PoP flow is:</t>
          <ul spacing="normal">
            <li>
              <t>Challenge issuance: Upon receipt of a KEM public key (<tt>C509PublicKey</tt>) in the <tt>kemc</tt> operation, an EST server returns a CBOR-encoded KEM challenge object (<tt>C509KemChall</tt>) with media type <tt>application/c509-kemchall+cbor</tt>.</t>
            </li>
          </ul>
          <sourcecode type="cddl" name="c509est.cddl"><![CDATA[
C509KemChall = [
  keyId         : bstr,
  encapAlg      : int,
  encapsulation : bstr
]
]]></sourcecode>
          <t>The media type of <tt>C509KemChall</tt> is <tt>application/c509-kemchall+cbor</tt> (see <xref target="iana-c509-kemchall"/>); the corresponding CoAP Content-Format is defined in <xref target="content-format"/>.  The "magic number" is TBD6, using the reserved CBOR tag 55799 and Content-Format TBD7, as described in <xref section="2.2" sectionFormat="comma" target="RFC9277"/>.</t>
          <t>In particular (TBD: check consistency with <xref target="NIST.SP.800-227"/>):</t>
          <ul spacing="normal">
            <li>
              <t><tt>keyId</tt> is the SHA-256 fingerprint of the CBOR-encoded <tt>C509PublicKey</tt>,</t>
            </li>
            <li>
              <t><tt>encapAlg</tt> is the encapsulation algorithm (TBD: define a new registry or reuse a COSE algorithm), and</t>
            </li>
            <li>
              <t><tt>encapsulation</tt> is the KEM ciphertext produced by encapsulating a freshly generated one-time secret key <tt>K</tt> to the client's KEM public key.</t>
            </li>
          </ul>
          <t>The server <bcp14>MUST</bcp14> retain the challenge state (at least <tt>keyId</tt>, <tt>K</tt>, and the lifetime) for the duration of the challenge.</t>
          <ul spacing="normal">
            <li>
              <t>Client decapsulation and response: The client decapsulates <tt>encapsulation</tt> to recover the one-time secret key <tt>K</tt>.  The client computes a MAC value over the <tt>TBSCertificationRequest</tt> with the key <tt>K</tt>.  The client then submits a follow-up operation as usual.</t>
            </li>
            <li>
              <t>Server verification: The server computes the <tt>keyId</tt>, retrieves the challenge state for that <tt>keyId</tt>, and verifies that the state is still within its validity period.  The server then verifies the received MAC value against the <tt>TBSCertificationRequest</tt>.  The server proceeds with certificate issuance as for signature-based PoP.  If verification fails or the challenge has expired, the server <bcp14>MUST</bcp14> reject the request.</t>
            </li>
          </ul>
          <t>Implementations <bcp14>SHOULD</bcp14> use HMAC-SHA256 (with integer value TBD4) by default, unless constrained by the KEM's security requirements.  Servers <bcp14>MUST</bcp14> enforce challenge timeouts and retry limits to mitigate replay and denial-of-service risks.</t>
        </section>
      </section>
    </section>
    <section anchor="caps-section">
      <name>EST Operations for Server Capability Discovery</name>
      <section anchor="caps">
        <name>caps</name>
        <t>This operation is only related to EST over HTTPS, but not to EST over CoAP/DTLS.</t>
        <t>The <tt>caps</tt> operation allows an EST client to discover which C509-specific operations the EST server supports before invoking them. EST clients and EST servers <bcp14>MUST</bcp14> support <tt>caps</tt>.</t>
        <section anchor="caps-request">
          <name>Request</name>
          <t>The EST client sends a GET request for the server's C509 capability list.  No request body is sent.</t>
          <artwork><![CDATA[
Method: GET
HTTP request target: /.well-known/est/<label>/caps
]]></artwork>
        </section>
        <section anchor="caps-response">
          <name>Response</name>
          <t>On success, the EST server returns a HTTP 200 response with:</t>
          <ul spacing="normal">
            <li>
              <t>Media type: <tt>text/plain; charset=utf-8</tt></t>
            </li>
            <li>
              <t>Body: A plain-text list of capability keywords, one keyword per line.  The EST server <bcp14>MUST</bcp14> terminate each line with <tt>&lt;CR&gt;&lt;LF&gt;</tt>.  The EST client <bcp14>MUST</bcp14> be able to parse lines terminated by <tt>&lt;CR&gt;&lt;LF&gt;</tt>, <tt>&lt;CR&gt;</tt>, or <tt>&lt;LF&gt;</tt>.  Keywords are unquoted and case-insensitive.</t>
            </li>
          </ul>
          <t>The following keywords are defined.  An EST server <bcp14>MUST</bcp14> include a keyword in the <tt>caps</tt> response if and only if it supports the corresponding operation.</t>
          <table anchor="tab-caps-keywords">
            <name>caps Keywords Defined in This Document</name>
            <thead>
              <tr>
                <th align="left">Keyword</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>cacerts</tt></td>
                <td align="left">EST server supports <tt>cacerts</tt> (<xref target="crts"/>)</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>crli</tt></td>
                <td align="left">EST server supports <tt>crli</tt> (<xref target="crli"/>)</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>crl</tt></td>
                <td align="left">EST server supports <tt>crl</tt> (<xref target="crl"/>)</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>csrattrs</tt></td>
                <td align="left">EST server supports <tt>csrattrs</tt> (<xref target="att"/>)</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>kemc</tt></td>
                <td align="left">EST server supports <tt>kemc</tt> (<xref target="kemc"/>)</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>simpleenroll</tt></td>
                <td align="left">EST server supports <tt>simpleenroll</tt> (<xref target="sen"/>)</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>simplereenroll</tt></td>
                <td align="left">EST server supports <tt>simplereenroll</tt> (<xref target="sren"/>)</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>serverkeygen</tt></td>
                <td align="left">EST server supports <tt>serverkeygen</tt> (<xref target="skc"/>)</td>
              </tr>
            </tbody>
          </table>
          <t>An EST client that receives an error response to a <tt>caps</tt> request <bcp14>MUST NOT</bcp14> attempt the operations defined in this document.</t>
          <t>Successful <tt>caps</tt> responses <bcp14>MAY</bcp14> include caching metadata as specified in <xref target="response-cache"/>.</t>
          <t>Example response:</t>
          <artwork><![CDATA[
cacerts
crli
crl
csrattrs
kemc
simpleenroll
simplereenroll
serverkeygen
]]></artwork>
        </section>
      </section>
      <section anchor="att">
        <name>csrattrs / att</name>
        <t>The <tt>csrattrs</tt> / <tt>att</tt> operation returns a <tt>C509CertificationRequestTemplate</tt> that an EST client <bcp14>MAY</bcp14> use to construct a C509 CSR.</t>
        <section anchor="att-request">
          <name>Request</name>
          <t>The EST client sends a GET request for the CSR template.  No request body is sent.</t>
          <artwork><![CDATA[
Method: GET
HTTP Request target: /.well-known/est/<label>/csrattrs
CoAP Request target: /.well-known/est/<label>/attr
]]></artwork>
        </section>
        <section anchor="att-response">
          <name>Response</name>
          <t>On success, the EST server returns a HTTP 200 / CoAP 2.05 response with:</t>
          <ul spacing="normal">
            <li>
              <t>Media type: <tt>application/cose-c509-crtemplate+cbor</tt> (HTTP) / Content-Format TBD (CoAP)</t>
            </li>
            <li>
              <t>Body: A <tt>C509CertificationRequestTemplate</tt> as defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
            </li>
          </ul>
          <t>An response code of HTTP 404 / CoAP 4.04 indicates that CSR attributes are not available.</t>
          <t>Successful <tt>csrattrs</tt> / <tt>att</tt> responses <bcp14>MAY</bcp14> include caching metadata as specified in <xref target="response-cache"/>.</t>
        </section>
      </section>
    </section>
    <section anchor="ca-certificates">
      <name>EST Operations for Distribution of CA Certificates</name>
      <section anchor="crts">
        <name>cacerts / crts</name>
        <t>Successful <tt>cacerts</tt> / <tt>crts</tt> responses <bcp14>MAY</bcp14> include caching metadata as specified in <xref target="response-cache"/>.</t>
        <t>Depending on the <tt>Accept</tt> option, the cacerts / <tt>crts</tt> operation returns different forms of the CA certificates (TODO: the TBD will be replaced with the real value once the Content-Formats are assigned in <xref target="I-D.ietf-cose-cbor-encoded-cert"/> and <xref target="I-D.liao-cose-c509-revocation"/>):</t>
        <ul spacing="normal">
          <li>
            <t><tt>Accept: application/cose-c509-cert</tt> (HTTP) / <tt>Accept=TBD</tt> (CoAP): C509Certificate (a single certificate)</t>
          </li>
          <li>
            <t><tt>Accept: application/cose-c509; usage=chain</tt> (HTTP) / <tt>Accept=TBD</tt> (CoAP): COSE_C509 (certificate chain)</t>
          </li>
          <li>
            <t>No Accept or <tt>Accept: application/cose-c509</tt> (HTTP) / <tt>Accept=TBD</tt> (CoAP): COSE_C509 (certificate set (unsorted certificates))</t>
          </li>
        </ul>
        <section anchor="request">
          <name>Request</name>
          <t>The EST client sends a GET request for the CA certificate(s).  No request body is sent. The <tt>Accept</tt> option specifies the expected Media-Type / Content-Formats of the response. If an <tt>Accept</tt> Option is not included in the request, the client is not expressing any preference and the server <bcp14>SHOULD</bcp14> choose format TBD for certificate set.</t>
          <artwork><![CDATA[
Method: GET

HTTP request target: /.well-known/est/<label>/cacerts
                     (Accept: <accepted media type>)
CoAP request target: /.well-known/est/<label>/crts
                     (Accept=<accepted Content-Format>)
]]></artwork>
        </section>
        <section anchor="response">
          <name>Response</name>
          <t>On success, the EST server returns a CoAP 2.05 response with:</t>
          <ul spacing="normal">
            <li>
              <t>For Request with <tt>Accept: application/cose-c509-cert+cbor</tt> (HTTP) / <tt>Accept=TBD</tt> (CoAP):  </t>
              <ul spacing="normal">
                <li>
                  <t>Media type: application/cose-c509-cert+cbor (HTTP) / Content-Format TBD (CoAP)</t>
                </li>
                <li>
                  <t>Body: A <tt>C509Certificate</tt> representing a single certificate.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>For Request with <tt>Accept: application/cose-c509+cbor; usage=chain</tt> (HTTP) / <tt>Accept=TBD</tt> (CoAP):  </t>
              <ul spacing="normal">
                <li>
                  <t>Media type: application/cose-c509+cbor; usage=chain (HTTP) / Content-Format TBD (CoAP)</t>
                </li>
                <li>
                  <t>Body: A <tt>COSE_C509</tt> representing an ordered certificate chain.  The first element is the issuing CA certificate; subsequent elements are intermediate and root CA certificates in chain order.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>For Request without <tt>Accept</tt> option or with <tt>Accept: application/cose-c509+cbor</tt> (HTTP) / <tt>Accept=TBD</tt> (CoAP):  </t>
              <ul spacing="normal">
                <li>
                  <t>Media type: application/cose-c509+cbor (HTTP) / Content-Format TBD (CoAP)</t>
                </li>
                <li>
                  <t>Body: A <tt>COSE_C509</tt> representing an unordered certificate set.  The first element is the issuing CA certificate; subsequent elements are not sorted. If a Root CA key update applies, the EST server <bcp14>SHOULD</bcp14> include the four "Root CA Key Update" certificates OldWithOld, OldWithNew, NewWithOld, and NewWithNew in the response chain.  These are defined in <xref section="4.4" sectionFormat="comma" target="RFC9810"/>.</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>Successful <tt>cacerts</tt> / <tt>crts</tt> responses <bcp14>MAY</bcp14> include caching metadata as specified in <xref target="response-cache"/>.</t>
        </section>
      </section>
    </section>
    <section anchor="crl-operations">
      <name>EST Operations for Distribution of C509 CRLs</name>
      <t>The <tt>crli</tt> and <tt>crl</tt> operations provide C509 CRL access.  The C509 CRL format is defined in <xref target="I-D.liao-cose-c509-revocation"/>.</t>
      <section anchor="crli">
        <name>crli</name>
        <t>The <tt>crli</tt> operation returns metadata about the current C509 CRL for the target CA as a <tt>C509CRLInfo</tt> object without the full revocation list.  This enables an EST client to check whether its locally cached CRL is still current before requesting the full <tt>crl</tt>.  <tt>C509CRLInfo</tt> is defined in <xref target="I-D.liao-cose-c509-revocation"/>.</t>
        <section anchor="crli-request">
          <name>Request</name>
          <t>The EST client sends a GET request for CRL metadata.  No request body is sent.</t>
          <artwork><![CDATA[
Method: GET
Request target: /.well-known/est/<label>/crli
Request target: /.well-known/est/<label>/crli
                [?crlnumber=<n>][&crldp=<dp>]
]]></artwork>
          <t>The optional <tt>crlnumber</tt> query parameter carries the decimal representation of the CRL number the client is interested in.  When present, the EST server <bcp14>MUST</bcp14> return the <tt>C509CRLInfo</tt> for the CRL with that exact <tt>crlNumber</tt>.  If no CRL with the requested <tt>crlnumber</tt> is available, the EST server <bcp14>MUST</bcp14> return HTTP status 404 (Not Found).  When <tt>crlnumber</tt> is absent, the server returns the <tt>C509CRLInfo</tt> for the most recent CRL.</t>
          <t>The optional <tt>crldp</tt> query parameter carries the CRL Distribution Point identifier.  When present, the EST server <bcp14>MUST</bcp14> return the <tt>C509CRLInfo</tt> for the CRL associated with that distribution point.  When both <tt>crlnumber</tt> and <tt>crldp</tt> are present, the server <bcp14>MUST</bcp14> return the <tt>C509CRLInfo</tt> matching both criteria.</t>
        </section>
        <section anchor="crli-response">
          <name>Response</name>
          <t>On success, the EST server returns a HTTP 200 / CoAP 2.05 response with:</t>
          <ul spacing="normal">
            <li>
              <t>Media type: <tt>application/c509-crlinfo+cbor</tt> (HTTP) / Content-Format TBD (CoAP)</t>
            </li>
            <li>
              <t>Body: A <tt>C509CRLInfo</tt> as defined in <xref target="I-D.liao-cose-c509-revocation"/>.</t>
            </li>
          </ul>
          <t><tt>C509CRLInfo</tt> carries all CRL fields from <tt>C509CRLInfoData</tt> — including <tt>crlType</tt>, <tt>signatureAlgorithm</tt>, <tt>authoritySubject</tt>, <tt>authorityKeyIdentifier</tt>, <tt>crlNumber</tt>, <tt>thisUpdate</tt>, <tt>nextUpdate</tt>, <tt>baseCrlNumber</tt>, and <tt>crlExtensions</tt> — without the <tt>revokedCertsList</tt>.  An EST client can use these fields to compare <tt>crlNumber</tt>, <tt>nextUpdate</tt>, or compute a freshness check against its local cache before deciding whether to download the full <tt>C509CRL</tt> via <tt>crl</tt>.</t>
          <t>If no matching CRL is available, the EST server <bcp14>MUST</bcp14> return HTTP 404 / CoAP 4.04 (Not Found).</t>
          <t>Successful <tt>crli</tt> responses <bcp14>MAY</bcp14> include caching metadata as specified in <xref target="response-cache"/>.</t>
        </section>
      </section>
      <section anchor="crl">
        <name>crl</name>
        <t>The <tt>crl</tt> operation returns the C509 CRL for the target CA.</t>
        <section anchor="crl-request">
          <name>Request</name>
          <t>The EST client sends a GET request for the C509 CRL.  No request body is sent.</t>
          <artwork><![CDATA[
Method: GET
Request target: /.well-known/est/<label>/crl
Request target: /.well-known/est/<label>/crl
                [?crlnumber=<n>][&crldp=<dp>]
]]></artwork>
          <t>The optional <tt>crlnumber</tt> query parameter carries the decimal representation of the CRL number.  When present, the EST server <bcp14>MUST</bcp14> return the full <tt>C509CRL</tt> with that exact <tt>crlnumber</tt>.  When <tt>crlnumber</tt> is absent, the server returns the most recent CRL.</t>
          <t>The optional <tt>crldp</tt> query parameter carries the CRL Distribution Point identifier.  When present, the EST server <bcp14>MUST</bcp14> return the full <tt>C509CRL</tt> for the CRL associated with that distribution point.  When both <tt>crlnumber</tt> and <tt>crldp</tt> are present, the server <bcp14>MUST</bcp14> return the <tt>C509CRL</tt> matching both criteria.</t>
          <t>If no matching CRL is available, the EST server <bcp14>MUST</bcp14> return HTTP 404 / CoAP 4.04 (Not Found).</t>
        </section>
        <section anchor="crl-response">
          <name>Response</name>
          <t>On success, the EST server returns a HTTP 200/ CoAP 2.05 response with:</t>
          <ul spacing="normal">
            <li>
              <t>Media type: <tt>application/c509-crl+cbor</tt> (HTTP) / Content-Format TBD (CoAP)</t>
            </li>
            <li>
              <t>Body: A <tt>C509CRL</tt> as defined in <xref target="I-D.liao-cose-c509-revocation"/>.</t>
            </li>
          </ul>
          <t>If no matching CRL is available, the EST server <bcp14>MUST</bcp14> return HTTP 404 / CoAP 4.04 (Not Found).</t>
          <t>Successful <tt>crl</tt> responses <bcp14>MAY</bcp14> include caching metadata as specified in <xref target="response-cache"/>.</t>
        </section>
      </section>
    </section>
    <section anchor="enrollment-ops">
      <name>EST Operations for Certificate Enrollment</name>
      <section anchor="kemc">
        <name>kemc</name>
        <t>The <tt>kemc</tt> operation requests a KEM-based Proof-of-Possession challenge for a submitted C509 public key whose <tt>subjectPublicKeyAlgorithm</tt> is a KEM algorithm.</t>
        <section anchor="kemc-request">
          <name>Request</name>
          <t>An authenticated EST client sends a POST request containing a <tt>C509PublicKey</tt> (<xref target="c509pubkey"/>) to request a KEM challenge.</t>
          <artwork><![CDATA[
Method: POST
Request target: /.well-known/est/<label>/kemc
Media type: application/c509-pubkey+cbor (HTTP)/ Content-Format TBD (CoAP)
Body: C509PublicKey
]]></artwork>
          <t>If the request does not contain a KEM public key, the EST server <bcp14>MUST</bcp14> return HTTP 400 / CoAP 4.00 (Bad Request).  If the server supports KEM PoP for the submitted algorithm, it issues a challenge; otherwise, it <bcp14>MUST</bcp14> return HTTP 501 / CoAP 5.01 (Not Implemented).</t>
        </section>
        <section anchor="kemc-response">
          <name>Response</name>
          <t>On success, the EST server returns a HTTP 200 / CoAP 2.05 response with:</t>
          <ul spacing="normal">
            <li>
              <t>Media type: <tt>application/c509-kemchall+cbor</tt> (HTTP) / Content-Format TBD7 (CoAP)</t>
            </li>
            <li>
              <t>Body: A <tt>C509KemChall</tt> (<xref target="pop-kem"/>).</t>
            </li>
          </ul>
          <t>A client that receives a <tt>C509KemChall</tt> uses the recovered one-time secret key to produce the PoP MAC and then proceeds with a normal enrollment request (<tt>simpleenroll</tt> / <tt>sen</tt> or <tt>simplereenroll</tt> / <tt>sren</tt>) including the computed MAC in the request (see <xref target="pop-kem"/> for the PoP flow). The EST server verifies the MAC using the stored challenge state and issues the certificate on success.</t>
        </section>
      </section>
      <section anchor="sen">
        <name>simpleenroll / sen</name>
        <t>The <tt>simpleenroll</tt> / <tt>sen</tt> operation requests issuance of a new C509 certificate from the EST server.</t>
        <section anchor="sen-request">
          <name>Request</name>
          <t>An authenticated EST client sends a POST request containing a C509 CSR (<xref target="c509-csr"/>).</t>
          <artwork><![CDATA[
Method: POST
HTTP Request target: /.well-known/est/<label>/simpleenroll
CoAP Request target: /.well-known/est/<label>/sen
Media type: application/cose-c509-pkcs10+cbor (HTTP) / Content-Format TBD (CoAP)
Body: C509CertificationRequest
]]></artwork>
          <t>The <tt>C509CertificationRequest</tt> <bcp14>MUST</bcp14> include a valid PoP signature.  The EST server <bcp14>MUST</bcp14> verify the PoP signature against the public key in the C509 CSR before issuing a certificate, as required by <xref section="3.4" sectionFormat="comma" target="RFC7030"/>.</t>
        </section>
        <section anchor="sen-response">
          <name>Response</name>
          <t>On success, the EST server returns a HTTP 200 / CoAP 2.05 response with:</t>
          <ul spacing="normal">
            <li>
              <t>Media type: <tt>application/cose-c509-cert+cbor</tt> (HTTP) / Content-Format TBD (CoAP)</t>
            </li>
            <li>
              <t>Body: A <tt>C509Certificate</tt> issued for the subject in the C509 CSR, as defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="sren">
        <name>simplereenroll / sren</name>
        <t>The <tt>simplereenroll</tt> / <tt>sren</tt> operation renews or rekeys an existing C509 certificate.</t>
        <section anchor="sren-request">
          <name>Request</name>
          <t>An authenticated EST client sends a POST request containing a C509 CSR for re-enrollment.  The request Subject field and SubjectAltName extension <bcp14>MUST</bcp14> be identical to the corresponding fields in the certificate being renewed or rekeyed.</t>
          <t>The <tt>C509ChangeSubjectName</tt> attribute defined in <xref target="change-subject-name"/> <bcp14>MAY</bcp14> be included in the CSR to request that these fields be changed in the new certificate.</t>
          <artwork><![CDATA[
Method: POST
HTTP Request target: /.well-known/est/<label>/simplereenroll
CoAP Request target: /.well-known/est/<label>/sren
Media type: application/cose-c509-pkcs10+cbor (HTTP) / Content-Format TBD (CoAP)
Body: C509CertificationRequest
]]></artwork>
          <t>Re-enrollment processing follows <xref section="4.2.2" sectionFormat="comma" target="RFC7030"/>.  The EST server <bcp14>MUST</bcp14> verify the PoP signature in the C509 CSR.</t>
        </section>
        <section anchor="sren-response">
          <name>Response</name>
          <t>On success, the EST server returns a HTTP 200 / CoAP 2.05 response with:</t>
          <ul spacing="normal">
            <li>
              <t>Media type: <tt>application/cose-c509-cert+cbor</tt> (HTTP) / Content-Format TBD (CoAP)</t>
            </li>
            <li>
              <t>Body: A renewed <tt>C509Certificate</tt>, as defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="skc">
        <name>serverkeygen / skc</name>
        <t>The <tt>serverkeygen</tt> / <tt>skc</tt> operation requests server-side key generation and returns the generated private key and the issued C509 certificate.</t>
        <t>As discussed in <xref section="9" sectionFormat="comma" target="RFC9148"/>, transporting private keys generated by the EST server is inherently risky. The use of server-generated private keys increases the risk of digital identity theft. Therefore, implementations <bcp14>SHOULD NOT</bcp14> use EST functions that rely on server-generated private keys.</t>
        <section anchor="skc-request">
          <name>Request</name>
          <t>An authenticated EST client sends a POST request containing a C509 CSR.  The <tt>subjectPublicKeyAlgorithm</tt> in the C509 CSR <bcp14>SHOULD</bcp14> be set to <tt>empty-publickey</tt> (<xref target="empty-publickey"/>) and <tt>subjectPublicKey</tt> <bcp14>SHOULD</bcp14> be a zero-length byte string (<tt>h''</tt>), because the key pair is generated by the EST server.  The <tt>signatureAlgorithm</tt> <bcp14>SHOULD</bcp14> be the <tt>id-alg-unsigned</tt> integer code and <tt>signatureValue</tt> <bcp14>SHOULD</bcp14> be a zero-length byte string.  EST servers <bcp14>MUST</bcp14> accept C509 CSRs that use <tt>empty-publickey</tt> and <tt>id-alg-unsigned</tt> for <tt>serverkeygen</tt> / <tt>skc</tt> and <bcp14>MUST NOT</bcp14> verify a PoP signature in this case.</t>
          <artwork><![CDATA[
Method: POST
HTTP Request target: /.well-known/est/<label>/serverkeygen
CoAP Request target: /.well-known/est/<label>/skc
Media type: application/cose-c509-pkcs10+cbor (HTTP) / Content-Format TBD (CoAP)
Body: C509CertificationRequest
]]></artwork>
        </section>
        <section anchor="skc-response">
          <name>Response</name>
          <t>On success, the EST server returns a HTTP 200 / CoAP 2.05 response with:</t>
          <ul spacing="normal">
            <li>
              <t>Media type: <tt>application/cose-c509-pem+cbor</tt> (HTTP) / Content-Format TBD (CoAP)</t>
            </li>
            <li>
              <t>Body: A <tt>C509PEM</tt>.</t>
            </li>
          </ul>
          <t>The <tt>C509CertData</tt> field in the <tt>C509PEM</tt> <bcp14>MUST</bcp14> contain only the issued C509 certificate for the generated key pair.</t>
          <t>The EST server <bcp14>SHOULD</bcp14> delete the private key from its storage as soon as the response has been transmitted successfully, unless the deployment policy requires retention for key escrow or disaster recovery (see <xref target="security"/>).  The private key is protected only by the TLS channel; no additional encryption is applied.</t>
        </section>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>The security requirements of <xref target="RFC7030"/> apply in full to all operations defined in this document.</t>
      <section anchor="transport-security">
        <name>Transport Security</name>
        <t>All operations defined in this document <bcp14>MUST</bcp14> be carried out over HTTPS (HTTP over TLS) or secure CoAP (CoAP over DTLS) as required by <xref section="3" sectionFormat="comma" target="RFC7030"/> and <xref target="RFC9148"/>.  Implementations <bcp14>MUST NOT</bcp14> fall back to plain HTTP or unsecured CoAP.</t>
        <t>EST clients and servers <bcp14>SHOULD</bcp14> use C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/> for TLS or DTLS authentication when both peers support C509.  This enables end-to-end C509 usage, including the handshake itself, and reduces size and parsing overhead consistently.  EST servers <bcp14>SHOULD</bcp14> continue to accept X.509 certificates <xref target="RFC5280"/> for TLS or DTLS client authentication for interoperability with clients that do not yet support C509.</t>
        <section anchor="tls-certificate-type-negotiation">
          <name>TLS Certificate Type Negotiation</name>
          <t>When C509 certificates are used for TLS authentication, the client and server negotiate the certificate type using the <tt>server_certificate_type</tt> and <tt>client_certificate_type</tt> TLS extensions as defined in <xref target="RFC7250"/>.</t>
        </section>
        <section anchor="client-authentication">
          <name>Client Authentication</name>
          <t>All operations <bcp14>MUST</bcp14> require client authentication.</t>
        </section>
      </section>
      <section anchor="server-key-generation">
        <name>Server Key Generation</name>
        <t>The <tt>skc</tt> operation delivers a generated private key to the EST client over TLS.  EST servers <bcp14>SHOULD</bcp14> delete the private key after successful transmission.  EST clients <bcp14>MUST</bcp14> store the key material securely immediately upon receipt.</t>
        <t>As discussed in <xref section="9" sectionFormat="comma" target="RFC9148"/>, transporting private keys generated by the EST server is inherently risky. The use of server-generated private keys increases the risk of digital identity theft. Therefore, implementations <bcp14>SHOULD NOT</bcp14> use EST functions that rely on server-generated private keys.</t>
      </section>
      <section anchor="c509-certificate-validation">
        <name>C509 Certificate Validation</name>
        <t>EST clients <bcp14>MUST</bcp14> validate received C509 certificates against an independently configured trust anchor according to <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.  The trust model for C509 certificates differs from classical X.509 certificate chain validation when C509 is used in the HyPKI trust architecture; in that case, validation uses the cosigner-signed Merkle tree or signed allowlist rather than a certificate chain.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="iana-pubkey">
        <name>C509 Public Key Algorithms Registry</name>
        <t>IANA is requested to register the following entry in the "C509 Public Key Algorithms" registry under the registry group "CBOR Encoded X.509 (C509)" defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>:</t>
        <table anchor="tab-iana-pubkey">
          <name>empty-publickey Registration</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Value</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Value</td>
              <td align="left">TBD1</td>
            </tr>
            <tr>
              <td align="left">Name</td>
              <td align="left">empty-publickey</td>
            </tr>
            <tr>
              <td align="left">Identifiers</td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">OID</td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">Parameters</td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">DER</td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">Comments</td>
              <td align="left">Exclusively for use in <tt>subjectPublicKeyAlgorithm</tt> of a <tt>TBSCertificationRequest</tt> for server-side key generation (<tt>serverkeygen</tt> / <tt>skc</tt>).  <bcp14>MUST NOT</bcp14> appear in C509 certificates.</td>
            </tr>
            <tr>
              <td align="left">Reference</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="iana-sigalg">
        <name>C509 Signature Algorithms Registry</name>
        <t>IANA is requested to register the following entry in the "C509 Signature Algorithms" registry under the registry group "CBOR Encoded X.509 (C509)" defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>:</t>
        <table anchor="tab-iana-sigalg">
          <name>HMAC-SHA256 Registration</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Value</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Value</td>
              <td align="left">TBD4</td>
            </tr>
            <tr>
              <td align="left">Name</td>
              <td align="left">hmacWithSHA256</td>
            </tr>
            <tr>
              <td align="left">Identifiers</td>
              <td align="left">id-hmacWithSHA256</td>
            </tr>
            <tr>
              <td align="left">OID</td>
              <td align="left">1.2.840.113549.2.9</td>
            </tr>
            <tr>
              <td align="left">Parameters</td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">OID</td>
              <td align="left">06 08 2A 86 48 86 F7 0D 02 09</td>
            </tr>
            <tr>
              <td align="left">Comments</td>
              <td align="left">HMAC over SHA256</td>
            </tr>
            <tr>
              <td align="left">Reference</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="iana-cratttype">
        <name>C509 CR Attributes Registry</name>
        <t>IANA is requested to register the following entry in the "C509 CR Attributes" registry under the registry group "CBOR Encoded X.509 (C509)" defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>:</t>
        <artwork><![CDATA[
+-------+-----------------------------------------------------------+
| Value | CR Attribute                                              |
+=======+===========================================================+
|  TBD5 | Name:            CMC Change Subject Name                  |
|       | Identifiers:     id-cmc-changeSubjectName                 |
|       | OID:             1.3.6.1.5.5.7.7.36                       |
|       | DER:             06 08 2B 06 01 05 05 07 07 24            |
|       | Comments:        RFC 6402                                 |
|       | attributeValue:  C509ChangeSubjectName                    |
+-------+-----------------------------------------------------------+
]]></artwork>
        <section anchor="iana-c509-pubkey">
          <name>Media Type application/c509-pubkey+cbor</name>
          <t>When the <tt>application/c509-pubkey+cbor</tt> media type is used, the payload is a <tt>C509PublicKey</tt> structure.</t>
          <t>Type name: application</t>
          <t>Subtype name: c509-pubkey+cbor</t>
          <t>Required parameters: N/A</t>
          <t>Optional parameters: N/A</t>
          <t>Encoding considerations: binary</t>
          <t>Security considerations: See the Security Considerations section of [[this document]].</t>
          <t>Interoperability considerations: N/A</t>
          <t>Published specification: [[this document]]</t>
          <t>Applications that use this media type: Applications that employ C509 public keys.</t>
          <t>Fragment identifier considerations: N/A</t>
          <t>Additional information:</t>
          <ul spacing="normal">
            <li>
              <t>Deprecated alias names for this type: N/A</t>
            </li>
            <li>
              <t>Magic number(s): TBD2</t>
            </li>
            <li>
              <t>File extension(s): .c509</t>
            </li>
            <li>
              <t>Macintosh file type code(s): N/A</t>
            </li>
          </ul>
          <t>Person &amp; email address to contact for further information: iesg@ietf.org</t>
          <t>Intended usage: COMMON</t>
          <t>Restrictions on usage: N/A</t>
          <t>Author: ACE WG</t>
          <t>Change controller: IETF</t>
        </section>
        <section anchor="iana-c509-kemchall">
          <name>Media Type application/c509-kemchall+cbor</name>
          <t>When the <tt>application/c509-kemchall+cbor</tt> media type is used, the payload is a <tt>C509KemChall</tt> structure.</t>
          <t>Type name: application</t>
          <t>Subtype name: c509-kemchall+cbor</t>
          <t>Required parameters: N/A</t>
          <t>Optional parameters: N/A</t>
          <t>Encoding considerations: binary</t>
          <t>Security considerations: See the Security Considerations section of [[this document]].</t>
          <t>Interoperability considerations: N/A</t>
          <t>Published specification: [[this document]]</t>
          <t>Applications that use this media type: Applications that employ C509 KEM challenges.</t>
          <t>Fragment identifier considerations: N/A</t>
          <t>Additional information:</t>
          <ul spacing="normal">
            <li>
              <t>Deprecated alias names for this type: N/A</t>
            </li>
            <li>
              <t>Magic number(s): TBD6</t>
            </li>
            <li>
              <t>File extension(s): .c509</t>
            </li>
            <li>
              <t>Macintosh file type code(s): N/A</t>
            </li>
          </ul>
          <t>Person &amp; email address to contact for further information: iesg@ietf.org</t>
          <t>Intended usage: COMMON</t>
          <t>Restrictions on usage: N/A</t>
          <t>Author: ACE WG</t>
          <t>Change controller: IETF</t>
        </section>
      </section>
      <section anchor="content-format">
        <name>CoAP Content-Formats Registry</name>
        <t>IANA is requested to add entries for <tt>application/c509-pubkey+cbor</tt> and <tt>application/c509-kemchall+cbor</tt> to the "CoAP Content-Formats" registry in the registry group "Constrained RESTful Environments (CoRE) Parameters".</t>
        <figure anchor="tab-format-ids">
          <name>CoAP Content-Format IDs</name>
          <artwork><![CDATA[
+----------------------+---------+-----------+-------+------------+
| Content              | Content | Media     | ID    | Reference  |
| Format               | Coding  | Type      |       |            |
+======================+=========+===========+=======+============+
| application/         | -       | [[link    | TBD3  | [[this     |
| c509-pubkey+cbor     |         | to x.y]]  |       | document]] |
+----------------------+---------+-----------+-------+------------+
| application/         | -       | [[link    | TBD7  | [[this     |
| c509-kemchall+cbor   |         | to x.y]]  |       | document]] |
+----------------------+---------+-----------+-------+------------+
]]></artwork>
        </figure>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC5652">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
        </reference>
        <reference anchor="RFC6402">
          <front>
            <title>Certificate Management over CMS (CMC) Updates</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="November" year="2011"/>
            <abstract>
              <t>This document contains a set of updates to the base syntax for CMC, a Certificate Management protocol using the Cryptographic Message Syntax (CMS). This document updates RFC 5272, RFC 5273, and RFC 5274.</t>
              <t>The new items in this document are: new controls for future work in doing server side key generation, definition of a Subject Information Access value to identify CMC servers, and the registration of a port number for TCP/IP for the CMC service to run on. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6402"/>
          <seriesInfo name="DOI" value="10.17487/RFC6402"/>
        </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="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="RFC7250">
          <front>
            <title>Using Raw Public Keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="P. Wouters" initials="P." role="editor" surname="Wouters"/>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="J. Gilmore" initials="J." surname="Gilmore"/>
            <author fullname="S. Weiler" initials="S." surname="Weiler"/>
            <author fullname="T. Kivinen" initials="T." surname="Kivinen"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>This document specifies a new certificate type and two TLS extensions for exchanging raw public keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS). The new certificate type allows raw public keys to be used for authentication.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7250"/>
          <seriesInfo name="DOI" value="10.17487/RFC7250"/>
        </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="RFC9277">
          <front>
            <title>On Stable Storage for Items in Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document defines a stored ("file") format for Concise Binary Object Representation (CBOR) data items that is friendly to common systems that recognize file types, such as the Unix file(1) command.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9277"/>
          <seriesInfo name="DOI" value="10.17487/RFC9277"/>
        </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="I-D.ietf-cose-cbor-encoded-cert">
          <front>
            <title>CBOR Encoded X.509 Certificates (C509 Certificates)</title>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Shahid Raza" initials="S." surname="Raza">
              <organization>University of Glasgow</organization>
            </author>
            <author fullname="Joel Höglund" initials="J." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
              <organization>IN Groupe</organization>
            </author>
            <author fullname="Lijun Liao" initials="L." surname="Liao">
              <organization>NIO</organization>
            </author>
            <date day="30" month="June" year="2026"/>
            <abstract>
              <t>   This document specifies a CBOR encoding of X.509 certificates.  The
   resulting certificates are called C509 certificates.  The CBOR
   encoding supports a large subset of RFC 5280 and common certificate
   profiles, and it is extensible.

   Two types of C509 certificates are defined.  One type is an
   invertible CBOR re-encoding of DER-encoded X.509 certificates with
   the signature field copied from the DER encoding.  The other type is
   identical except that the signature is computed over the CBOR
   encoding instead of the DER encoding, thereby avoiding the use of
   ASN.1.  Both types of certificates have the same semantics as X.509
   while providing comparable size reduction.

   This document also specifies CBOR-encoded data structures for
   certification requests and certification request templates, new COSE
   headers, as well as a TLS certificate type and a file format for
   C509.  This document updates RFC 6698 by extending the TLSA selectors
   registry to include C509 certificates.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-20"/>
        </reference>
        <reference anchor="I-D.liao-cose-c509-revocation">
          <front>
            <title>CBOR Encoded Certificate Revocation Management</title>
            <author fullname="Lijun Liao" initials="L." surname="Liao">
              <organization>NIO</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Joel Höglund" initials="J." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Shahid Raza" initials="S." surname="Raza">
              <organization>University of Glasgow</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This document specifies CBOR-encoded PKI structures for use with C509
   certificates (draft-ietf-cose-cbor-encoded-cert), X.509 certificates
   (RFC 5280), and future certificate types.  It defines C509 CRL and
   C509 OCSP, compact CBOR encodings of X.509 Certificate Revocation
   Lists (RFC 5280) and OCSP messages (RFC 6960), respectively.  The
   structures defined in this document are certificate-type agnostic and
   can be used with C509 certificates, X.509 certificates, or future
   certificate types without modification.  C509 OCSP improves on RFC
   6960 by signing a wider set of fields to prevent algorithm-
   substitution and certificate-chain substitution attacks, replacing
   plaintext serial numbers with hashes to preserve requestor privacy,
   replacing the two-hash issuer identity with a single certificate
   hash, and identifying all participants (requestor, responder, issuer)
   by a uniform certificate hash rather than type-specific fields.  C509
   CRL and C509 OCSP are not wire-format-compatible with their DER-
   encoded X.509 counterparts and cannot be converted to or from them
   without semantic interpretation.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-liao-cose-c509-revocation-00"/>
        </reference>
        <reference anchor="NIST.SP.800-227" target="https://doi.org/10.6028/NIST.SP.800-227">
          <front>
            <title>Recommendation for Key-Encapsulation Mechanisms</title>
            <author initials="G." surname="Alagic">
              <organization/>
            </author>
            <author initials="E." surname="Barker">
              <organization/>
            </author>
            <author initials="L." surname="Chen">
              <organization/>
            </author>
            <author initials="D." surname="Moody">
              <organization/>
            </author>
            <author initials="A." surname="Roginsky">
              <organization/>
            </author>
            <author initials="H." surname="Silberg">
              <organization/>
            </author>
            <author initials="N." surname="Waller">
              <organization/>
            </author>
            <date year="2025" month="September"/>
          </front>
          <seriesInfo name="NIST" value="Special Publication 800-227"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="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>
      </references>
    </references>
    <?line 876?>

<section anchor="flows-http">
      <name>Message Flow Diagrams of EST over HTTPS Operations</name>
      <section anchor="flow-caps-http">
        <name>caps</name>
        <figure anchor="fig-crts-http">
          <name>HTTP cacerts message flow</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="440" viewBox="0 0 440 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,224" fill="none" stroke="black"/>
                <path d="M 400,48 L 400,224" fill="none" stroke="black"/>
                <path d="M 32,96 L 392,96" fill="none" stroke="black"/>
                <path d="M 32,208 L 392,208" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="400,96 388,90.4 388,101.6" fill="black" transform="rotate(0,392,96)"/>
                <polygon class="arrowhead" points="40,208 28,202.4 28,213.6" fill="black" transform="rotate(180,32,208)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="368" y="36">EST</text>
                  <text x="412" y="36">Server</text>
                  <text x="64" y="68">Method:</text>
                  <text x="112" y="68">GET</text>
                  <text x="64" y="84">Request</text>
                  <text x="128" y="84">target:</text>
                  <text x="264" y="84">/.well-known/est/&lt;p&gt;/caps</text>
                  <text x="64" y="132">Status:</text>
                  <text x="112" y="132">200</text>
                  <text x="140" y="132">OK</text>
                  <text x="56" y="148">Media</text>
                  <text x="104" y="148">type:</text>
                  <text x="228" y="148">text/plain;charset=utf-8</text>
                  <text x="60" y="180">&lt;CR-LF</text>
                  <text x="128" y="180">seperated</text>
                  <text x="188" y="180">list</text>
                  <text x="220" y="180">of</text>
                  <text x="272" y="180">supported</text>
                  <text x="88" y="196">operations&gt;</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                  EST Server
  |                                              |
  | Method: GET                                  |
  | Request target: /.well-known/est/<p>/caps    |
  |--------------------------------------------->|
  |                                              |
  | Status: 200 OK                               |
  | Media type: text/plain;charset=utf-8         |
  |                                              |
  | <CR-LF seperated list of supported           |
  |  operations>                                 |
  |<---------------------------------------------|
  |                                              |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="flow-crts-single-http">
        <name>cacerts for single CA certificate</name>
        <figure anchor="fig-crts-single-http">
          <name>Message flow of EST over HTTPS operation cacerts for single CA certificate</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="440" viewBox="0 0 440 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,224" fill="none" stroke="black"/>
                <path d="M 400,48 L 400,224" fill="none" stroke="black"/>
                <path d="M 32,112 L 392,112" fill="none" stroke="black"/>
                <path d="M 32,208 L 392,208" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="400,112 388,106.4 388,117.6" fill="black" transform="rotate(0,392,112)"/>
                <polygon class="arrowhead" points="40,208 28,202.4 28,213.6" fill="black" transform="rotate(180,32,208)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="368" y="36">EST</text>
                  <text x="412" y="36">Server</text>
                  <text x="64" y="68">Method:</text>
                  <text x="112" y="68">GET</text>
                  <text x="64" y="84">Request</text>
                  <text x="128" y="84">target:</text>
                  <text x="276" y="84">/.well-known/est/&lt;p&gt;/cacerts</text>
                  <text x="64" y="100">Accept:</text>
                  <text x="204" y="100">application/cose-c509-cert</text>
                  <text x="64" y="148">Status:</text>
                  <text x="112" y="148">200</text>
                  <text x="140" y="148">OK</text>
                  <text x="56" y="164">Media</text>
                  <text x="104" y="164">type:</text>
                  <text x="236" y="164">application/cose-c509+cbor</text>
                  <text x="96" y="196">&lt;Base64-encoded</text>
                  <text x="204" y="196">COSE_C509&gt;</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                  EST Server
  |                                              |
  | Method: GET                                  |
  | Request target: /.well-known/est/<p>/cacerts |
  | Accept: application/cose-c509-cert           |
  |--------------------------------------------->|
  |                                              |
  | Status: 200 OK                               |
  | Media type: application/cose-c509+cbor       |
  |                                              |
  | <Base64-encoded COSE_C509>                   |
  |<---------------------------------------------|
  |                                              |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="flow-crts-set-http">
        <name>cacerts for CA certificate set</name>
        <figure anchor="fig-crts-set-http">
          <name>Message flow of EST over HTTPS operation cacerts for CA certificate set</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="440" viewBox="0 0 440 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,208" fill="none" stroke="black"/>
                <path d="M 400,48 L 400,208" fill="none" stroke="black"/>
                <path d="M 32,96 L 392,96" fill="none" stroke="black"/>
                <path d="M 32,192 L 392,192" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="400,96 388,90.4 388,101.6" fill="black" transform="rotate(0,392,96)"/>
                <polygon class="arrowhead" points="40,192 28,186.4 28,197.6" fill="black" transform="rotate(180,32,192)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="368" y="36">EST</text>
                  <text x="412" y="36">Server</text>
                  <text x="64" y="68">Method:</text>
                  <text x="112" y="68">GET</text>
                  <text x="64" y="84">Request</text>
                  <text x="128" y="84">target:</text>
                  <text x="276" y="84">/.well-known/est/&lt;p&gt;/cacerts</text>
                  <text x="64" y="132">Status:</text>
                  <text x="112" y="132">200</text>
                  <text x="140" y="132">OK</text>
                  <text x="56" y="148">Media</text>
                  <text x="104" y="148">type:</text>
                  <text x="236" y="148">application/cose-c509+cbor</text>
                  <text x="96" y="180">&lt;Base64-encoded</text>
                  <text x="204" y="180">COSE_C509&gt;</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                  EST Server
  |                                              |
  | Method: GET                                  |
  | Request target: /.well-known/est/<p>/cacerts |
  |--------------------------------------------->|
  |                                              |
  | Status: 200 OK                               |
  | Media type: application/cose-c509+cbor       |
  |                                              |
  | <Base64-encoded COSE_C509>                   |
  |<---------------------------------------------|
  |                                              |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="flow-crts-chain-http">
        <name>cacerts for CA certificate chain</name>
        <figure anchor="fig-crts-chain-http">
          <name>Message flow of EST over HTTPS cacerts for CA certificate chain</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="440" viewBox="0 0 440 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,224" fill="none" stroke="black"/>
                <path d="M 400,48 L 400,224" fill="none" stroke="black"/>
                <path d="M 32,112 L 392,112" fill="none" stroke="black"/>
                <path d="M 32,208 L 392,208" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="400,112 388,106.4 388,117.6" fill="black" transform="rotate(0,392,112)"/>
                <polygon class="arrowhead" points="40,208 28,202.4 28,213.6" fill="black" transform="rotate(180,32,208)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="368" y="36">EST</text>
                  <text x="412" y="36">Server</text>
                  <text x="64" y="68">Method:</text>
                  <text x="112" y="68">GET</text>
                  <text x="64" y="84">Request</text>
                  <text x="128" y="84">target:</text>
                  <text x="276" y="84">/.well-known/est/&lt;p&gt;/cacerts</text>
                  <text x="64" y="100">Accept:</text>
                  <text x="188" y="100">application/cose-c509;</text>
                  <text x="328" y="100">usage=chain</text>
                  <text x="64" y="148">Status:</text>
                  <text x="112" y="148">200</text>
                  <text x="140" y="148">OK</text>
                  <text x="56" y="164">Media</text>
                  <text x="104" y="164">type:</text>
                  <text x="236" y="164">application/cose-c509+cbor</text>
                  <text x="96" y="196">&lt;Base64-encoded</text>
                  <text x="204" y="196">COSE_C509&gt;</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                  EST Server
  |                                              |
  | Method: GET                                  |
  | Request target: /.well-known/est/<p>/cacerts |
  | Accept: application/cose-c509; usage=chain   |
  |--------------------------------------------->|
  |                                              |
  | Status: 200 OK                               |
  | Media type: application/cose-c509+cbor       |
  |                                              |
  | <Base64-encoded COSE_C509>                   |
  |<---------------------------------------------|
  |                                              |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="flow-crli-http">
        <name>crli</name>
        <figure anchor="fig-crli-http">
          <name>Message flow of EST over HTTPS operation crli</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="456" viewBox="0 0 456 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,224" fill="none" stroke="black"/>
                <path d="M 408,48 L 408,224" fill="none" stroke="black"/>
                <path d="M 32,112 L 400,112" fill="none" stroke="black"/>
                <path d="M 32,208 L 400,208" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="408,112 396,106.4 396,117.6" fill="black" transform="rotate(0,400,112)"/>
                <polygon class="arrowhead" points="40,208 28,202.4 28,213.6" fill="black" transform="rotate(180,32,208)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="384" y="36">EST</text>
                  <text x="428" y="36">Server</text>
                  <text x="64" y="68">Method:</text>
                  <text x="112" y="68">GET</text>
                  <text x="64" y="84">Request</text>
                  <text x="128" y="84">target:</text>
                  <text x="264" y="84">/.well-known/est/&lt;p&gt;/crli</text>
                  <text x="168" y="100">[?crlnumber=&lt;n&gt;][&amp;crldp=&lt;dp&gt;]</text>
                  <text x="64" y="148">Status:</text>
                  <text x="112" y="148">200</text>
                  <text x="140" y="148">OK</text>
                  <text x="56" y="164">Media</text>
                  <text x="104" y="164">type:</text>
                  <text x="248" y="164">application/c509-crlinfo+cbor</text>
                  <text x="96" y="196">&lt;Base64-encoded</text>
                  <text x="212" y="196">C509CRLInfo&gt;</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                    EST Server
  |                                               |
  | Method: GET                                   |
  | Request target: /.well-known/est/<p>/crli     |
  |   [?crlnumber=<n>][&crldp=<dp>]               |
  |---------------------------------------------->|
  |                                               |
  | Status: 200 OK                                |
  | Media type: application/c509-crlinfo+cbor     |
  |                                               |
  | <Base64-encoded C509CRLInfo>                  |
  |<----------------------------------------------|
  |                                               |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="flow-crl-http">
        <name>crl</name>
        <figure anchor="fig-crl-http">
          <name>Message flow of EST over HTTPS operation crl</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="448" viewBox="0 0 448 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,224" fill="none" stroke="black"/>
                <path d="M 408,48 L 408,224" fill="none" stroke="black"/>
                <path d="M 32,112 L 400,112" fill="none" stroke="black"/>
                <path d="M 32,208 L 400,208" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="408,112 396,106.4 396,117.6" fill="black" transform="rotate(0,400,112)"/>
                <polygon class="arrowhead" points="40,208 28,202.4 28,213.6" fill="black" transform="rotate(180,32,208)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="376" y="36">EST</text>
                  <text x="420" y="36">Server</text>
                  <text x="64" y="68">Method:</text>
                  <text x="112" y="68">GET</text>
                  <text x="64" y="84">Request</text>
                  <text x="128" y="84">target:</text>
                  <text x="260" y="84">/.well-known/est/&lt;p&gt;/crl</text>
                  <text x="168" y="100">[?crlnumber=&lt;n&gt;][&amp;crldp=&lt;dp&gt;]</text>
                  <text x="72" y="148">Status:</text>
                  <text x="120" y="148">200</text>
                  <text x="148" y="148">OK</text>
                  <text x="64" y="164">Media</text>
                  <text x="112" y="164">type:</text>
                  <text x="240" y="164">application/c509-crl+cbor</text>
                  <text x="104" y="196">&lt;Base64-encoded</text>
                  <text x="204" y="196">C509CRL&gt;</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                   EST Server
  |                                               |
  | Method: GET                                   |
  | Request target: /.well-known/est/<p>/crl      |
  |   [?crlnumber=<n>][&crldp=<dp>]               |
  |---------------------------------------------->|
  |                                               |
  |  Status: 200 OK                               |
  |  Media type: application/c509-crl+cbor        |
  |                                               |
  |  <Base64-encoded C509CRL>                     |
  |<----------------------------------------------|
  |                                               |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="flow-kemc-http">
        <name>kemc</name>
        <figure anchor="fig-kemc-http">
          <name>Message flow of EST over HTTPS operation kemc</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="432" viewBox="0 0 432 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,48 L 8,304" fill="none" stroke="black"/>
                <path d="M 392,48 L 392,304" fill="none" stroke="black"/>
                <path d="M 16,176 L 384,176" fill="none" stroke="black"/>
                <path d="M 16,288 L 384,288" fill="none" stroke="black"/>
                <path d="M 304,128 L 312,112" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="392,176 380,170.4 380,181.6" fill="black" transform="rotate(0,384,176)"/>
                <polygon class="arrowhead" points="24,288 12,282.4 12,293.6" fill="black" transform="rotate(180,16,288)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="360" y="36">EST</text>
                  <text x="404" y="36">Server</text>
                  <text x="36" y="68">[TLS</text>
                  <text x="84" y="68">client</text>
                  <text x="164" y="68">certificate]</text>
                  <text x="48" y="100">Method:</text>
                  <text x="100" y="100">POST</text>
                  <text x="48" y="116">Request</text>
                  <text x="112" y="116">target:</text>
                  <text x="228" y="116">/.well-known/est/&lt;p&gt;</text>
                  <text x="332" y="116">kemc</text>
                  <text x="40" y="132">Media</text>
                  <text x="88" y="132">type:</text>
                  <text x="208" y="132">application/c509-pubkey</text>
                  <text x="324" y="132">cbor</text>
                  <text x="80" y="164">&lt;Base64-encoded</text>
                  <text x="204" y="164">C509PublicKey&gt;</text>
                  <text x="48" y="228">Status:</text>
                  <text x="96" y="228">200</text>
                  <text x="124" y="228">OK</text>
                  <text x="40" y="244">Media</text>
                  <text x="88" y="244">type:</text>
                  <text x="236" y="244">application/c509-kemchall+cbor</text>
                  <text x="80" y="276">&lt;Base64-encoded</text>
                  <text x="200" y="276">C509KemChall&gt;</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                 EST Server
|                                               |
| [TLS client certificate]                      |
|                                               |
| Method: POST                                  |
| Request target: /.well-known/est/<p>/kemc     |
| Media type: application/c509-pubkey+cbor      |
|                                               |
| <Base64-encoded C509PublicKey>                |
|---------------------------------------------->|
|                                               |
|                                               |
| Status: 200 OK                                |
| Media type: application/c509-kemchall+cbor    |
|                                               |
| <Base64-encoded C509KemChall>                 |
|<----------------------------------------------|
|                                               |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="flow-sen-htt">
        <name>simpleenroll</name>
        <figure anchor="fig-sen-http">
          <name>Message flow of EST over HTTPS operation simpleenroll</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="336" width="512" viewBox="0 0 512 336" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,320" fill="none" stroke="black"/>
                <path d="M 408,48 L 408,320" fill="none" stroke="black"/>
                <path d="M 32,192 L 400,192" fill="none" stroke="black"/>
                <path d="M 32,304 L 400,304" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="408,192 396,186.4 396,197.6" fill="black" transform="rotate(0,400,192)"/>
                <polygon class="arrowhead" points="40,304 28,298.4 28,309.6" fill="black" transform="rotate(180,32,304)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="360" y="36">EST</text>
                  <text x="404" y="36">Server</text>
                  <text x="52" y="68">[TLS</text>
                  <text x="100" y="68">client</text>
                  <text x="180" y="68">certificate]</text>
                  <text x="64" y="100">Method:</text>
                  <text x="116" y="100">POST</text>
                  <text x="64" y="116">Request</text>
                  <text x="128" y="116">target:</text>
                  <text x="244" y="116">/.well-known/est/&lt;p&gt;</text>
                  <text x="232" y="132">/simpleenroll</text>
                  <text x="56" y="148">Media</text>
                  <text x="104" y="148">type:</text>
                  <text x="264" y="148">application/cose-c509-pkcs10+cbor</text>
                  <text x="96" y="180">&lt;Base64-encoded</text>
                  <text x="264" y="180">C509CertificationRequest&gt;</text>
                  <text x="444" y="196">Verify</text>
                  <text x="492" y="196">PoP,</text>
                  <text x="440" y="212">Issue</text>
                  <text x="484" y="212">C509</text>
                  <text x="436" y="228">cert</text>
                  <text x="64" y="244">Status:</text>
                  <text x="112" y="244">200</text>
                  <text x="140" y="244">OK</text>
                  <text x="56" y="260">Media</text>
                  <text x="104" y="260">type:</text>
                  <text x="256" y="260">application/cose-c509-cert+cbor</text>
                  <text x="96" y="292">&lt;Base64-encoded</text>
                  <text x="228" y="292">C509Certificate&gt;</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                 EST Server
  |                                               |
  | [TLS client certificate]                      |
  |                                               |
  | Method: POST                                  |
  | Request target: /.well-known/est/<p>          |
  |                   /simpleenroll               |
  | Media type: application/cose-c509-pkcs10+cbor |
  |                                               |
  | <Base64-encoded C509CertificationRequest>     |
  |---------------------------------------------->| Verify PoP,
  |                                               | Issue C509
  |                                               | cert
  | Status: 200 OK                                |
  | Media type: application/cose-c509-cert+cbor   |
  |                                               |
  | <Base64-encoded C509Certificate>              |
  |<----------------------------------------------|
  |                                               |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="flow-sren-htt">
        <name>simplereenroll</name>
        <figure anchor="fig-sren-http">
          <name>Message flow of EST over HTTPS operation simplereenroll</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="336" width="496" viewBox="0 0 496 336" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,48 L 8,320" fill="none" stroke="black"/>
                <path d="M 392,48 L 392,320" fill="none" stroke="black"/>
                <path d="M 16,192 L 384,192" fill="none" stroke="black"/>
                <path d="M 16,304 L 384,304" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="392,192 380,186.4 380,197.6" fill="black" transform="rotate(0,384,192)"/>
                <polygon class="arrowhead" points="24,304 12,298.4 12,309.6" fill="black" transform="rotate(180,16,304)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="360" y="36">EST</text>
                  <text x="404" y="36">Server</text>
                  <text x="36" y="68">[TLS</text>
                  <text x="84" y="68">client</text>
                  <text x="164" y="68">certificate]</text>
                  <text x="48" y="100">Method:</text>
                  <text x="100" y="100">POST</text>
                  <text x="48" y="116">Request</text>
                  <text x="112" y="116">target:</text>
                  <text x="228" y="116">/.well-known/est/&lt;p&gt;</text>
                  <text x="224" y="132">/simplereenroll</text>
                  <text x="40" y="148">Media</text>
                  <text x="88" y="148">type:</text>
                  <text x="248" y="148">application/cose-c509-pkcs10+cbor</text>
                  <text x="80" y="180">&lt;Base64-encoded</text>
                  <text x="248" y="180">C509CertificationRequest&gt;</text>
                  <text x="428" y="196">Verify</text>
                  <text x="476" y="196">PoP,</text>
                  <text x="424" y="212">Issue</text>
                  <text x="468" y="212">C509</text>
                  <text x="420" y="228">cert</text>
                  <text x="48" y="244">Status:</text>
                  <text x="96" y="244">200</text>
                  <text x="124" y="244">OK</text>
                  <text x="40" y="260">Media</text>
                  <text x="88" y="260">type:</text>
                  <text x="240" y="260">application/cose-c509-cert+cbor</text>
                  <text x="80" y="292">&lt;Base64-encoded</text>
                  <text x="212" y="292">C509Certificate&gt;</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                 EST Server
|                                               |
| [TLS client certificate]                      |
|                                               |
| Method: POST                                  |
| Request target: /.well-known/est/<p>          |
|                   /simplereenroll             |
| Media type: application/cose-c509-pkcs10+cbor |
|                                               |
| <Base64-encoded C509CertificationRequest>     |
|---------------------------------------------->| Verify PoP,
|                                               | Issue C509
|                                               | cert
| Status: 200 OK                                |
| Media type: application/cose-c509-cert+cbor   |
|                                               |
| <Base64-encoded C509Certificate>              |
|<----------------------------------------------|
|                                               |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="flow-skc-http">
        <name>serverkeygen</name>
        <figure anchor="fig-skc-http">
          <name>Message flow of EST over HTTPS operation serverkeygen</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="544" viewBox="0 0 544 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,352" fill="none" stroke="black"/>
                <path d="M 408,48 L 408,352" fill="none" stroke="black"/>
                <path d="M 32,192 L 400,192" fill="none" stroke="black"/>
                <path d="M 32,320 L 400,320" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="408,192 396,186.4 396,197.6" fill="black" transform="rotate(0,400,192)"/>
                <polygon class="arrowhead" points="40,320 28,314.4 28,325.6" fill="black" transform="rotate(180,32,320)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="368" y="36">EST</text>
                  <text x="412" y="36">Server</text>
                  <text x="52" y="68">[TLS</text>
                  <text x="100" y="68">client</text>
                  <text x="180" y="68">certificate]</text>
                  <text x="64" y="100">Method:</text>
                  <text x="116" y="100">POST</text>
                  <text x="64" y="116">Request</text>
                  <text x="128" y="116">target:</text>
                  <text x="244" y="116">/.well-known/est/&lt;p&gt;</text>
                  <text x="232" y="132">/serverkeygen</text>
                  <text x="56" y="148">Media</text>
                  <text x="104" y="148">type:</text>
                  <text x="264" y="148">application/cose-c509-pkcs10+cbor</text>
                  <text x="56" y="180">&lt;CBOR</text>
                  <text x="100" y="180">C509</text>
                  <text x="136" y="180">CSR</text>
                  <text x="168" y="180">(no</text>
                  <text x="220" y="180">pubkey)&gt;</text>
                  <text x="452" y="212">Generate</text>
                  <text x="452" y="228">keypair,</text>
                  <text x="440" y="244">Issue</text>
                  <text x="484" y="244">C509</text>
                  <text x="64" y="260">Status:</text>
                  <text x="112" y="260">200</text>
                  <text x="140" y="260">OK</text>
                  <text x="440" y="260">cert,</text>
                  <text x="492" y="260">Delete</text>
                  <text x="56" y="276">Media</text>
                  <text x="104" y="276">type:</text>
                  <text x="252" y="276">application/cose-c509-pem+cbor</text>
                  <text x="432" y="276">key</text>
                  <text x="468" y="276">from</text>
                  <text x="516" y="276">server</text>
                  <text x="96" y="308">&lt;Base64-encoded</text>
                  <text x="196" y="308">C509PEM&gt;</text>
                  <text x="52" y="340">(key</text>
                  <text x="84" y="340">no</text>
                  <text x="124" y="340">longer</text>
                  <text x="164" y="340">on</text>
                  <text x="192" y="340">EST</text>
                  <text x="240" y="340">server)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                  EST Server
  |                                               |
  | [TLS client certificate]                      |
  |                                               |
  | Method: POST                                  |
  | Request target: /.well-known/est/<p>          |
  |                   /serverkeygen               |
  | Media type: application/cose-c509-pkcs10+cbor |
  |                                               |
  | <CBOR C509 CSR (no pubkey)>                   |
  |---------------------------------------------->|
  |                                               | Generate
  |                                               | keypair,
  |                                               | Issue C509
  | Status: 200 OK                                | cert, Delete
  | Media type: application/cose-c509-pem+cbor    | key from server
  |                                               | 
  | <Base64-encoded C509PEM>                      |
  |<----------------------------------------------|
  | (key no longer on EST server)                 |
  |                                               |
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section anchor="flows-coap">
      <name>Message Flow Diagrams of EST over CoAP/DTLS Operations</name>
      <section anchor="flow-crts-single-coap">
        <name>cacerts for single CA certificate</name>
        <figure anchor="fig-crts-single-coap">
          <name>Message flow of EST over CoAP/DTLS operation cacerts for single CA certificate</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="440" viewBox="0 0 440 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,192" fill="none" stroke="black"/>
                <path d="M 400,48 L 400,192" fill="none" stroke="black"/>
                <path d="M 32,96 L 392,96" fill="none" stroke="black"/>
                <path d="M 32,176 L 392,176" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="400,96 388,90.4 388,101.6" fill="black" transform="rotate(0,392,96)"/>
                <polygon class="arrowhead" points="40,176 28,170.4 28,181.6" fill="black" transform="rotate(180,32,176)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="368" y="36">EST</text>
                  <text x="412" y="36">Server</text>
                  <text x="48" y="68">GET</text>
                  <text x="176" y="68">example.com/est/&lt;p&gt;/cacerts</text>
                  <text x="68" y="84">(Accept:</text>
                  <text x="124" y="84">TBD)</text>
                  <text x="52" y="132">2.05</text>
                  <text x="104" y="132">Content</text>
                  <text x="204" y="132">(Content-Format:</text>
                  <text x="292" y="132">TBD)</text>
                  <text x="40" y="148">{</text>
                  <text x="80" y="148">payload</text>
                  <text x="132" y="148">with</text>
                  <text x="204" y="148">CBOR-encoded</text>
                  <text x="320" y="148">C509Certificate</text>
                  <text x="60" y="164">in</text>
                  <text x="100" y="164">binary</text>
                  <text x="156" y="164">format</text>
                  <text x="192" y="164">}</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                  EST Server
  |                                              |
  | GET example.com/est/<p>/cacerts              |
  | (Accept: TBD)                                |
  |--------------------------------------------->|
  |                                              |
  | 2.05 Content (Content-Format: TBD)           |
  | { payload with CBOR-encoded C509Certificate  |
  |   in binary format }                         |
  |<---------------------------------------------|
  |                                              |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="flow-crts-set-coap">
        <name>cacerts for CA certificate set</name>
        <figure anchor="fig-crts-set-coap">
          <name>Message flow of EST over CoAP/DTLS operation cacerts for CA certificate set</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="440" viewBox="0 0 440 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,192" fill="none" stroke="black"/>
                <path d="M 400,48 L 400,192" fill="none" stroke="black"/>
                <path d="M 32,96 L 392,96" fill="none" stroke="black"/>
                <path d="M 32,176 L 392,176" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="400,96 388,90.4 388,101.6" fill="black" transform="rotate(0,392,96)"/>
                <polygon class="arrowhead" points="40,176 28,170.4 28,181.6" fill="black" transform="rotate(180,32,176)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="368" y="36">EST</text>
                  <text x="412" y="36">Server</text>
                  <text x="64" y="68">Method:</text>
                  <text x="112" y="68">GET</text>
                  <text x="48" y="84">GET</text>
                  <text x="176" y="84">example.com/est/&lt;p&gt;/cacerts</text>
                  <text x="52" y="132">2.05</text>
                  <text x="104" y="132">Content</text>
                  <text x="204" y="132">(Content-Format:</text>
                  <text x="292" y="132">TBD)</text>
                  <text x="40" y="148">{</text>
                  <text x="80" y="148">payload</text>
                  <text x="132" y="148">with</text>
                  <text x="204" y="148">CBOR-encoded</text>
                  <text x="296" y="148">COSE_C509</text>
                  <text x="100" y="164">(certificate</text>
                  <text x="172" y="164">set)</text>
                  <text x="204" y="164">in</text>
                  <text x="244" y="164">binary</text>
                  <text x="300" y="164">format</text>
                  <text x="336" y="164">}</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                  EST Server
  |                                              |
  | Method: GET                                  |
  | GET example.com/est/<p>/cacerts              |
  |--------------------------------------------->|
  |                                              |
  | 2.05 Content (Content-Format: TBD)           |
  | { payload with CBOR-encoded COSE_C509        |
  |   (certificate set) in binary format }       |
  |<---------------------------------------------|
  |                                              |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="flow-crts-chain-coap">
        <name>cacerts for CA certificate chain</name>
        <figure anchor="fig-crts-chain-coap">
          <name>Message flow of EST over CoAP/DTLS operation cacerts for CA certificate chain</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="440" viewBox="0 0 440 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,192" fill="none" stroke="black"/>
                <path d="M 400,48 L 400,192" fill="none" stroke="black"/>
                <path d="M 32,96 L 392,96" fill="none" stroke="black"/>
                <path d="M 32,176 L 392,176" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="400,96 388,90.4 388,101.6" fill="black" transform="rotate(0,392,96)"/>
                <polygon class="arrowhead" points="40,176 28,170.4 28,181.6" fill="black" transform="rotate(180,32,176)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="368" y="36">EST</text>
                  <text x="412" y="36">Server</text>
                  <text x="48" y="68">GET</text>
                  <text x="176" y="68">example.com/est/&lt;p&gt;/cacerts</text>
                  <text x="68" y="84">(Accept:</text>
                  <text x="124" y="84">TBD)</text>
                  <text x="52" y="132">2.05</text>
                  <text x="104" y="132">Content</text>
                  <text x="204" y="132">(Content-Format:</text>
                  <text x="292" y="132">TBD)</text>
                  <text x="40" y="148">{</text>
                  <text x="80" y="148">payload</text>
                  <text x="132" y="148">with</text>
                  <text x="204" y="148">CBOR-encoded</text>
                  <text x="296" y="148">COSE_C509</text>
                  <text x="100" y="164">(certificate</text>
                  <text x="180" y="164">chain)</text>
                  <text x="220" y="164">in</text>
                  <text x="260" y="164">binary</text>
                  <text x="316" y="164">format</text>
                  <text x="352" y="164">}</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                  EST Server
  |                                              |
  | GET example.com/est/<p>/cacerts              |
  | (Accept: TBD)                                |
  |--------------------------------------------->|
  |                                              |
  | 2.05 Content (Content-Format: TBD)           |
  | { payload with CBOR-encoded COSE_C509        |
  |   (certificate chain) in binary format }     |
  |<---------------------------------------------|
  |                                              |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="flow-crli-coap">
        <name>crli</name>
        <figure anchor="fig-crli-coap">
          <name>Message flow of EST over CoAP/DTLS operation crli</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="440" viewBox="0 0 440 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,176" fill="none" stroke="black"/>
                <path d="M 400,48 L 400,176" fill="none" stroke="black"/>
                <path d="M 32,80 L 392,80" fill="none" stroke="black"/>
                <path d="M 32,160 L 392,160" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="400,80 388,74.4 388,85.6" fill="black" transform="rotate(0,392,80)"/>
                <polygon class="arrowhead" points="40,160 28,154.4 28,165.6" fill="black" transform="rotate(180,32,160)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="368" y="36">EST</text>
                  <text x="412" y="36">Server</text>
                  <text x="48" y="68">GET</text>
                  <text x="164" y="68">example.com/est/&lt;p&gt;/crli</text>
                  <text x="52" y="116">2.05</text>
                  <text x="104" y="116">Content</text>
                  <text x="204" y="116">(Content-Format:</text>
                  <text x="292" y="116">TBD)</text>
                  <text x="40" y="132">{</text>
                  <text x="80" y="132">payload</text>
                  <text x="132" y="132">with</text>
                  <text x="204" y="132">CBOR-encoded</text>
                  <text x="304" y="132">C509CRLInfo</text>
                  <text x="60" y="148">in</text>
                  <text x="100" y="148">binary</text>
                  <text x="156" y="148">format</text>
                  <text x="192" y="148">}</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                  EST Server
  |                                              |
  | GET example.com/est/<p>/crli                 |
  |--------------------------------------------->|
  |                                              |
  | 2.05 Content (Content-Format: TBD)           |
  | { payload with CBOR-encoded C509CRLInfo      |
  |   in binary format }                         |
  |<---------------------------------------------|
  |                                              |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="flow-crl-coap">
        <name>crl</name>
        <figure anchor="fig-crl-coap">
          <name>Message flow of EST over CoAP/DTLS operation crl</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="440" viewBox="0 0 440 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,176" fill="none" stroke="black"/>
                <path d="M 400,48 L 400,176" fill="none" stroke="black"/>
                <path d="M 32,80 L 392,80" fill="none" stroke="black"/>
                <path d="M 32,160 L 392,160" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="400,80 388,74.4 388,85.6" fill="black" transform="rotate(0,392,80)"/>
                <polygon class="arrowhead" points="40,160 28,154.4 28,165.6" fill="black" transform="rotate(180,32,160)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="368" y="36">EST</text>
                  <text x="412" y="36">Server</text>
                  <text x="48" y="68">GET</text>
                  <text x="160" y="68">example.com/est/&lt;p&gt;/crl</text>
                  <text x="52" y="116">2.05</text>
                  <text x="104" y="116">Content</text>
                  <text x="204" y="116">(Content-Format:</text>
                  <text x="292" y="116">TBD)</text>
                  <text x="40" y="132">{</text>
                  <text x="80" y="132">payload</text>
                  <text x="132" y="132">with</text>
                  <text x="204" y="132">CBOR-encoded</text>
                  <text x="288" y="132">C509CRL</text>
                  <text x="60" y="148">in</text>
                  <text x="100" y="148">binary</text>
                  <text x="156" y="148">format</text>
                  <text x="192" y="148">}</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                  EST Server
  |                                              |
  | GET example.com/est/<p>/crl                  |
  |--------------------------------------------->|
  |                                              |
  | 2.05 Content (Content-Format: TBD)           |
  | { payload with CBOR-encoded C509CRL          |
  |   in binary format }                         |
  |<---------------------------------------------|
  |                                              |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="flow-kemc-coap">
        <name>kemc</name>
        <figure anchor="fig-kemc-coap">
          <name>Message flow of EST over CoAP/DTLS operation kemc</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="440" viewBox="0 0 440 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,224" fill="none" stroke="black"/>
                <path d="M 400,48 L 400,224" fill="none" stroke="black"/>
                <path d="M 32,128 L 392,128" fill="none" stroke="black"/>
                <path d="M 32,208 L 392,208" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="400,128 388,122.4 388,133.6" fill="black" transform="rotate(0,392,128)"/>
                <polygon class="arrowhead" points="40,208 28,202.4 28,213.6" fill="black" transform="rotate(180,32,208)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="368" y="36">EST</text>
                  <text x="412" y="36">Server</text>
                  <text x="52" y="68">POST</text>
                  <text x="172" y="68">example.com/est/&lt;p&gt;/kemc</text>
                  <text x="100" y="84">(Content-Format:</text>
                  <text x="188" y="84">TBD)</text>
                  <text x="40" y="100">{</text>
                  <text x="80" y="100">payload</text>
                  <text x="132" y="100">with</text>
                  <text x="204" y="100">CBOR-encoded</text>
                  <text x="312" y="100">C509PublicKey</text>
                  <text x="60" y="116">in</text>
                  <text x="100" y="116">binary</text>
                  <text x="156" y="116">format</text>
                  <text x="192" y="116">}</text>
                  <text x="52" y="164">2.05</text>
                  <text x="104" y="164">Content</text>
                  <text x="204" y="164">(Content-Format:</text>
                  <text x="292" y="164">TBD)</text>
                  <text x="40" y="180">{</text>
                  <text x="80" y="180">payload</text>
                  <text x="132" y="180">with</text>
                  <text x="204" y="180">CBOR-encoded</text>
                  <text x="308" y="180">C509KemChall</text>
                  <text x="60" y="196">in</text>
                  <text x="100" y="196">binary</text>
                  <text x="156" y="196">format</text>
                  <text x="192" y="196">}</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                  EST Server
  |                                              |
  | POST example.com/est/<p>/kemc                |
  | (Content-Format: TBD)                        |
  | { payload with CBOR-encoded C509PublicKey    |
  |   in binary format }                         |
  |--------------------------------------------->|
  |                                              |
  | 2.05 Content (Content-Format: TBD)           |
  | { payload with CBOR-encoded C509KemChall     |
  |   in binary format }                         |
  |<---------------------------------------------|
  |                                              |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="flow-sen-coap">
        <name>sen</name>
        <figure anchor="fig-sen-coap">
          <name>Message flow of EST over CoAP/DTLS operation sen</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="440" viewBox="0 0 440 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,224" fill="none" stroke="black"/>
                <path d="M 400,48 L 400,224" fill="none" stroke="black"/>
                <path d="M 32,128 L 392,128" fill="none" stroke="black"/>
                <path d="M 32,208 L 392,208" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="400,128 388,122.4 388,133.6" fill="black" transform="rotate(0,392,128)"/>
                <polygon class="arrowhead" points="40,208 28,202.4 28,213.6" fill="black" transform="rotate(180,32,208)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="368" y="36">EST</text>
                  <text x="412" y="36">Server</text>
                  <text x="52" y="68">POST</text>
                  <text x="168" y="68">example.com/est/&lt;p&gt;/sen</text>
                  <text x="100" y="84">(Content-Format:</text>
                  <text x="188" y="84">TBD)</text>
                  <text x="40" y="100">{</text>
                  <text x="80" y="100">payload</text>
                  <text x="132" y="100">with</text>
                  <text x="204" y="100">CBOR-encoded</text>
                  <text x="140" y="116">C509CertificationRequest</text>
                  <text x="252" y="116">in</text>
                  <text x="292" y="116">binary</text>
                  <text x="348" y="116">format</text>
                  <text x="384" y="116">}</text>
                  <text x="52" y="164">2.05</text>
                  <text x="104" y="164">Content</text>
                  <text x="204" y="164">(Content-Format:</text>
                  <text x="292" y="164">TBD)</text>
                  <text x="40" y="180">{</text>
                  <text x="80" y="180">payload</text>
                  <text x="132" y="180">with</text>
                  <text x="204" y="180">CBOR-encoded</text>
                  <text x="320" y="180">C509Certificate</text>
                  <text x="60" y="196">in</text>
                  <text x="100" y="196">binary</text>
                  <text x="156" y="196">format</text>
                  <text x="192" y="196">}</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                  EST Server
  |                                              |
  | POST example.com/est/<p>/sen                 |
  | (Content-Format: TBD)                        |
  | { payload with CBOR-encoded                  |
  |  C509CertificationRequest in binary format } |
  |--------------------------------------------->|
  |                                              |
  | 2.05 Content (Content-Format: TBD)           |
  | { payload with CBOR-encoded C509Certificate  |
  |   in binary format }                         |
  |<---------------------------------------------|
  |                                              |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="flow-sren-coap">
        <name>sren</name>
        <figure anchor="fig-sren-coap">
          <name>Message flow of EST over CoAP/DTLS operation sren</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="440" viewBox="0 0 440 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,224" fill="none" stroke="black"/>
                <path d="M 400,48 L 400,224" fill="none" stroke="black"/>
                <path d="M 32,128 L 392,128" fill="none" stroke="black"/>
                <path d="M 32,208 L 392,208" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="400,128 388,122.4 388,133.6" fill="black" transform="rotate(0,392,128)"/>
                <polygon class="arrowhead" points="40,208 28,202.4 28,213.6" fill="black" transform="rotate(180,32,208)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="368" y="36">EST</text>
                  <text x="412" y="36">Server</text>
                  <text x="52" y="68">POST</text>
                  <text x="172" y="68">example.com/est/&lt;p&gt;/sren</text>
                  <text x="100" y="84">(Content-Format:</text>
                  <text x="188" y="84">TBD)</text>
                  <text x="40" y="100">{</text>
                  <text x="80" y="100">payload</text>
                  <text x="132" y="100">with</text>
                  <text x="204" y="100">CBOR-encoded</text>
                  <text x="140" y="116">C509CertificationRequest</text>
                  <text x="252" y="116">in</text>
                  <text x="292" y="116">binary</text>
                  <text x="348" y="116">format</text>
                  <text x="384" y="116">}</text>
                  <text x="52" y="164">2.05</text>
                  <text x="104" y="164">Content</text>
                  <text x="204" y="164">(Content-Format:</text>
                  <text x="292" y="164">TBD)</text>
                  <text x="40" y="180">{</text>
                  <text x="80" y="180">payload</text>
                  <text x="132" y="180">with</text>
                  <text x="204" y="180">CBOR-encoded</text>
                  <text x="320" y="180">C509Certificate</text>
                  <text x="60" y="196">in</text>
                  <text x="100" y="196">binary</text>
                  <text x="156" y="196">format</text>
                  <text x="192" y="196">}</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                  EST Server
  |                                              |
  | POST example.com/est/<p>/sren                |
  | (Content-Format: TBD)                        |
  | { payload with CBOR-encoded                  |
  |  C509CertificationRequest in binary format } |
  |--------------------------------------------->|
  |                                              |
  | 2.05 Content (Content-Format: TBD)           |
  | { payload with CBOR-encoded C509Certificate  |
  |   in binary format }                         |
  |<---------------------------------------------|
  |                                              |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="flow-skc-coap">
        <name>skc</name>
        <figure anchor="fig-skc-coap">
          <name>Message flow of EST over CoAP/DTLS operation skc</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="448" viewBox="0 0 448 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,224" fill="none" stroke="black"/>
                <path d="M 408,48 L 408,224" fill="none" stroke="black"/>
                <path d="M 32,128 L 400,128" fill="none" stroke="black"/>
                <path d="M 32,208 L 400,208" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="408,128 396,122.4 396,133.6" fill="black" transform="rotate(0,400,128)"/>
                <polygon class="arrowhead" points="40,208 28,202.4 28,213.6" fill="black" transform="rotate(180,32,208)"/>
                <g class="text">
                  <text x="16" y="36">EST</text>
                  <text x="60" y="36">Client</text>
                  <text x="376" y="36">EST</text>
                  <text x="420" y="36">Server</text>
                  <text x="52" y="68">POST</text>
                  <text x="168" y="68">example.com/est/&lt;p&gt;/skc</text>
                  <text x="100" y="84">(Content-Format:</text>
                  <text x="188" y="84">TBD)</text>
                  <text x="40" y="100">{</text>
                  <text x="80" y="100">payload</text>
                  <text x="132" y="100">with</text>
                  <text x="204" y="100">CBOR-encoded</text>
                  <text x="148" y="116">C509CertificationRequest</text>
                  <text x="260" y="116">in</text>
                  <text x="300" y="116">binary</text>
                  <text x="356" y="116">format</text>
                  <text x="392" y="116">}</text>
                  <text x="52" y="164">2.05</text>
                  <text x="104" y="164">Content</text>
                  <text x="204" y="164">(Content-Format:</text>
                  <text x="292" y="164">TBD)</text>
                  <text x="40" y="180">{</text>
                  <text x="80" y="180">payload</text>
                  <text x="132" y="180">with</text>
                  <text x="204" y="180">CBOR-encoded</text>
                  <text x="288" y="180">C509PEM</text>
                  <text x="60" y="196">in</text>
                  <text x="100" y="196">binary</text>
                  <text x="156" y="196">format</text>
                  <text x="192" y="196">}</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
EST Client                                   EST Server
  |                                               |
  | POST example.com/est/<p>/skc                  |
  | (Content-Format: TBD)                         |
  | { payload with CBOR-encoded                   |
  |   C509CertificationRequest in binary format } |
  |---------------------------------------------->|
  |                                               |
  | 2.05 Content (Content-Format: TBD)            |
  | { payload with CBOR-encoded C509PEM           |
  |   in binary format }                          |
  |<----------------------------------------------|
  |                                               |
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The authors thank xxx for reviewing and commenting on intermediate versions of the draft.</t>
    </section>
    <section numbered="false" anchor="change-log">
      <name>Change log</name>
      <ul empty="true">
        <li>
          <t><strong>RFC Editor's Note:</strong> Please remove this section prior to publication of a
final version of this document.</t>
        </li>
      </ul>
      <section numbered="false" anchor="since-draft-liao-ace-est-c509-02">
        <name>Since draft-liao-ace-est-c509-02</name>
        <ul spacing="normal">
          <li>
            <t>Use both long name and short name of operations.</t>
          </li>
          <li>
            <t>Add message flows for the cacerts / crts operation to retrieve single CA certificate, and CA certificate chain.</t>
          </li>
          <li>
            <t>Add message flows for EST over CoAP/DTLS.</t>
          </li>
          <li>
            <t>Editorial changes.</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="since-draft-liao-ace-est-c509-01">
        <name>Since draft-liao-ace-est-c509-01</name>
        <ul spacing="normal">
          <li>
            <t>Add EST of C509 certificate over secure CoAP (updates <xref target="RFC9148"/>).</t>
          </li>
          <li>
            <t>Use short operation names defined in <xref target="RFC9148"/> to replace the long names defined in <xref target="RFC7030"/>.</t>
          </li>
        </ul>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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
h2eHdvXa1IXbVRmCNuDortHm0GikaJufectWJ+vbu2zwOS4td9RNUjfp9EYv
xA2Ye5WjODvG/+M/wmC8TYw2ozSxqm22DGYvfMDoHPfHhGkvNaC5PzWjzkns
dnb7Tums+9quJnl7elfTDPrDJ9OfD193Ts3NoC9+MJ19D+3Ezn4zjPPKtDKG
deVOHSP3RsndYTw37WRQvGYm5OwkS5CwMSSu0iVI3xiWcZKvajkTftidjCFl
v5DmkHlONryie2Dh0DIDy0kb6Coxv6b0k5InV3lre6mWFQ4rKAwwKX+ywZNW
SeOkW4hc7dUa0CzwFUu0kKLxr5amtRbSSsvd/Ja/iy13N8yVDXO/fQ0xAOIf
yVWr5OpVhYbElCleHZ1/1OWN8TW5zhKn4pcpJ5k7GRM1BQvTL6ZfKf1CQTK/
Op355oDZBjrCz9wN+zRqYV7vgkpYXUmgW013KOSZks2Ad3HsFRq46igQyzjZ
iqO/Z6CIud3zbWJ2sxiKVYNdoG5hbDm3MLZMeFwdj5ACnIJXVMoRrFETJa+y
co3qH5KtGw3yXadSOq5qp+O9+4OMssCNJWi7nGuSrHG1EmiFOrIqmCpXkB50
NbtypO4iZsrU6FA6SFflXOvLjBpOBUJdjPTifh8kFV1awWvi2tHT8S91fyP3
FdmdxajYnpIY7PCVao336bqKo7ZrKcLL6I9PB4n0Mi3vnuylW+nwzklNJu+y
e26nvjQXiFDuRybu1IkXnAvzmJbHWJy8EsAuVlY8xTCfJvCIablYmaIOOBrt
E7Pj71dhMi7CTvI0oGTyqnw0hKx5p42eDdCEZujDkT5Fo0xy0wYcv8Wqe6Vb
NYXpcwwQUa18qq1NDBRJ48NT+kF5OKLzDOMqfSu3q7XoAesNanDuYyXbJ6Lp
z7Imlh84awwWal3sr1dYd84+1V3zvLLT+NsCU9V07ow6dppixRCW1vx8uLxb
BFT1axObtOgdRK7avuuuwQzqmsacoLElagkkLwysk5e6LnbaC6yY7w/MIYxm
XHl93AUwoEVRde14IbMnc18QsThULoN+nMP6JfsVdQhAp7n4UuclvRoEMZaa
HvpOO7oUcKUls3CeZdX33FBiAa+PYGrcA0xhqEquLJ95ex5wRx50E8Zp0zag
zHrATUDBylqHBbU4VpuA8QF+mYS+qleTEQ0Xz/rZOBdLegxMl/mZxljyN/Uw
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
d8X6plh/USVtrOLEhoIz88yUw9urKcetCDWJanaORcdeLq+SS4R3ydEuuz/F
eBN9dlJBJ4h+aX3t9fZz/HnskJW7osZ7nBP/3LQev+I/+t9F/iAsSNtPBFP2
tjvFzsGO4JiSCXUR9TfAcqM/uVzAgwEjRMMoiGoVy6eNAlTvgQIs8337aXuj
/QT+9wz+9/3TiXixo4Dw90dRbPSGPmyI9Sf0/2f4/82tSaNozjJDgUErsKz8
BAiaRzGRONr6bTGhnn3jKA9DdcaJ57z6a2oulmZgp96wOgrS4Wx6xWL/zS1o
wPFxUL2wjNPfqjlp5k2b6CnDrinRpDMTphuelfan6sQtSkwjP4hJtIWdA2na
ah3qhNzaL/r9anySN3bcNr6SMsyvYVLtTao2OJF8Tprkl1JV5Oj93L96LqDf
fqOioZWze3V8Ao8wVOAFNV3mTVVWrA0J5y+LK8dJTs2Gjlu13gwLk2TX1URG
PKPoF2Y62cjNcHasBw+vlaAbFsFstb4Tu5jSzXEXsMvhRI7bVyhfKV5VJahw
lO/EgVPGdblY2aYS1PD8Lb5K3pzr6Zc27j91ieK0zIpzgW8/ZbJD8U2NGIew
27AP/wHrDOMEnY05+UMzduxGnHzfH+dk8bvgi1gWgz+hdmhn+YD3jEoVkw8J
KzgcHBy+R8LD8IU6BNKpg35mzNBtE0D7zp745c/80tWBpKkxPCzhp/2907d3
86f/ajWXQ01d3ak8WsnJm51LbUrdgkzqzfw7mz4Em3pJul8Lpz79t+HUplrV
nv1bqVM9wf6FBZKxq19+e4diJdfnXXytHIdLTRA6hrPJLa1YzU411+O9k1N0
Ge6ll3GepXzGWN7JjvdWnAPLkl/HvDXBUnnc8Ml+9jo9pjMNv5HUN4fMY/0S
U34K5yT61x50yP5S0cD6GCRI8DCEFKie+v9q62uC6dzwyX72Oj2uvH3RgSMw
n379NYnTC/5Mr96kZ8Ry2pasWWg+tDe47R/a17/95q7FSh3Hkrzfvsy7lmeT
1lJ9UehnX0ulJD6dgplbg9hWY2yqSb+/W+AZGEahMBl6As0LxvHVBbtxOADu
oJCjXw3Yvc3y8RGmbBfBeVmOvErD+JhLQ6qfAMIwLC4H5BFWEYs7/2Bbjke0
KmR9958b6uJcMJy1y92ZDCOuvWu6NG/khD+vbxZdywndkN+mBITDn2ZcvtXF
TuFer25vpcsCgP2wcxy8ewtGyEgFCXTNXxWsk71aFycy9Xq2WX6YC8sLrUVz
UT8eYP1Epl3jScLwsa6Dp9/JjWS+5Jfy44roVGvJr1ljuAJH5hb/3zIHo4K7
3F1BqzrLt8FPd77De3F+euO/Rd7UVGpilS/GHA4J27ckW7ZoUBw2cnwnszQw
VYWbMBnR4yhZ/juw0++88U3whiLGezFGneDv5gqOQ7t8QU/+HThjuqLxawv+
rmi+IWayFDwjO93FH5qNuBScYpUkvheT3I9NFuGTuRgFl2r73FECpWmeufZ9
IV5ZhFnu4pZqkSgPB/PDVuMXW9mpgWMWYJhFOKbGMoqS59c90NOyhsMZ92OM
r5wv3D5fM18sokXuZAxXi9yDLyYxRvPR/ovxxcJsseSVYiG2oLIU9+ALhyvm
X9eN+NXJqXb0W5VEnR7zz+HeD5qtx0w8R1i0c8xYWOUe62giThO0r5Eo9Jib
pxeBav4e82rGO7BbdV4/IHZ1sLXO/9Bjbs6/H98bRp2b8bGn4nyvSIiSAFhg
4ZxetXNP/l9U6s4rA+6rfWeVA7Nq37th8+qMTIBtnpuED2z5NaTRvrZ95pUi
4i98c/MoO1pdBE6xjxf6CLKFuiMJPbwF3vBqgwe3wC3tv27o89ktDSUY5hc4
LrV7gievip78oWTPv5ftcRdUlTodDVDNJ20eSp9OkzT3kzP3kjILypgHtWQm
yJeHx3xdtnxuS0Zz/aKCJa+IFreOiBYsF/c61Pxu1cxm1biYb4btM1k1dL/A
VolLM8FnrpWJDuB5pc1Cpoi6eCoX6gzgY7GCB7Gh5hRURLCrYpeusc66k6oS
hAGeLxsWC3ORmGgoHe0dTEi2WNxQWkaIgW6SLMXCKZn7UuOV5nnmXZAvBC8W
PM25TEcScIZ8J/OK86acpygLR/dI/VDdv1BEDj2pkt9P246yYS2i1tDFvPrt
9M1ufWebZvnkooK7UBUWnVS57Oe51aDlLh9NhjgVG0AxOEntW6KNU5WorV9A
dDsdsC+YlIHEdSeHWOr+5IkZX5bYFwg/z88f3yixm9d3el1E7W2eK5PJ/4tm
WTwIpT9kpsXvcv2bJnV+Se4kYv/CORCfgtinZkR8pcSssxlqXb5RyrRpBG6X
b8DiUCSyGE1OTDf4aqluQpdvmuqqXb4FqrsX0U0K5n9ZqiM3VBPZmXB5rctd
JNDQ5S56MGFx22V+evh22UHHrZ0uXz07GNpdiB/cGLfjBpZf2o6dyA5FzWX6
idhhQpeJ8ZgmOvnG2eFb9IJo0l2IGwqpLWH1Fggbbf1a2SGv88Pv7PA7O3gx
w8X5IbcMcRG5QcL7sMNDRAknM8RFzVpaiCMWYQlDFJ+WKe6TRTwXW8xqNO4d
NOBgDsb4Unk6F/cwnKAzR5E6EYZ/E9kbqBrdHx+FlUe3MOU45axy2VMFvvkF
zlQVJb0QHz58UO/ruYwl1Y/DOhkRl+6iYs0pF0pWhWuxzD9XB1Zvl+3lYZ/q
euuSZ0k2qE77Wnz3HRb/2uvFZZb/oRDvs1Juf/edOEqwrCxMPoT1cpkUXVFm
lMcZvUuZayqZN9qGMFo/xgIsChIGpFZk/CTGUhYEXUCv+QwjGQArcPBzfRNg
1BC+WuqHSUERhkD8DPBQbWwMLFINFy7BfI7Fn+krzGcvkbexT6fX825m66ov
0vi/1gR605xtpPp9WLsE1t0Y7+Aa2k0+sylT1imHGjPesRIxV5MrZkLRxiQU
4dw0U79exJ9m90quj+kl24VbQH2lrTHNaLVo4Zo51arT3ItxNkpC9bJBs0EN
ZaqpTH279f8AtAiTRSbzAAA=

-->

</rfc>
