<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.23 (Ruby 2.7.4) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc compact="yes"?>
<?rfc iprnotified="no"?>
<?rfc strict="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-anima-brski-prm-07" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="BRSKI-PRM">BRSKI with Pledge in Responder Mode (BRSKI-PRM)</title>

    <author initials="S." surname="Fries" fullname="Steffen Fries">
      <organization abbrev="Siemens">Siemens AG</organization>
      <address>
        <postal>
          <street>Otto-Hahn-Ring 6</street>
          <city>Munich</city>
          <code>81739</code>
          <country>Germany</country>
        </postal>
        <email>steffen.fries@siemens.com</email>
        <uri>https://www.siemens.com/</uri>
      </address>
    </author>
    <author initials="T." surname="Werner" fullname="Thomas Werner">
      <organization abbrev="Siemens">Siemens AG</organization>
      <address>
        <postal>
          <street>Otto-Hahn-Ring 6</street>
          <city>Munich</city>
          <code>81739</code>
          <country>Germany</country>
        </postal>
        <email>thomas-werner@siemens.com</email>
        <uri>https://www.siemens.com/</uri>
      </address>
    </author>
    <author initials="E." surname="Lear" fullname="Eliot Lear">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>Richtistrasse 7</street>
          <city>Wallisellen</city>
          <code>CH-8304</code>
          <country>Switzerland</country>
        </postal>
        <phone>+41 44 878 9200</phone>
        <email>lear@cisco.com</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael C. Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
        <uri>http://www.sandelman.ca/</uri>
      </address>
    </author>

    <date year="2023"/>

    <area>Operations and Management</area>
    <workgroup>ANIMA WG</workgroup>
    

    <abstract>


<t>This document defines enhancements to bootstrapping a remote secure key infrastructure (BRSKI, RFC8995) to facilitate bootstrapping in domains featuring no or only time limited connectivity between a pledge and the domain registrar.
It specifically targets situations in which the interaction model changes from a pledge-initiated-mode, as used in BRSKI, to a pledge-responding-mode as described in this document.
To support the pledge-responding mode, BRSKI-PRM introduces a new component, the registrar-agent, which facilitates the communication between pledge and registrar during the bootstrapping phase.
To establish the trust relation between pledge and domain registrar, BRSKI-PRM relies on object security rather than transport security.</t>

<t>The approach defined here is agnostic with respect to the underlying enrollment protocol which connects the pledge and the domain registrar to the Domain CA.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-anima-brski-prm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/anima-wg/anima-brski-prm"/>.</t>
    </note>


  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>BRSKI as defined in <xref target="RFC8995"/> specifies a solution for secure zero-touch (automated) bootstrapping of devices (pledges) in a (customer) site domain.
This includes the discovery of network elements in the customer site/domain and the exchange of security information necessary to establish trust between a pledge and the domain.</t>

<t>Security information about the customer site/domain, specifically the customer site/domain certificate, is exchanged utilizing voucher request objects and voucher response objects as defined in <xref target="RFC8995"/>.
Voucher objects are specified in <xref target="RFC8366"/>. Vouchers are signed objects from the Manufacturer's Authorized Signing Authority (MASA).
The MASA issues the voucher object and provides it via the domain registrar to the pledge.</t>

<t>For the certificate enrollment of devices, BRSKI relies on EST <xref target="RFC7030"/> to request and distribute customer site/domain specific device certificates.
EST in turn relies on a binding of the certification request to an underlying TLS connection between the EST client and the EST server.</t>

<t>BRSKI addresses scenarios in which the pledge initiates the bootstrapping acting as a client (this document refers to this approach as pledge-initiator-mode).
In industrial environments the pledge may behave as a server and thus does not initiate the bootstrapping with the domain registrar.
In this scenario, it is expected that the pledge will be triggered to generate bootstrapping requests in the customer site/domain.
This document refers to this approach as pledge-responder-mode and</t>

<t><list style="symbols">
  <t>introduces the registrar-agent as new component to facilitate the communication between the pledge and the registrar, as the pledge is in responder mode, and acts as server.
For the interaction with the domain registrar the registrar-agent will use existing BRSKI <xref target="RFC8995"/> endpoints as well as additional endpoints defined in this document.
The registrar-agent may be implemented as an integrated functionality of a commissioning tool or be co-located with the registrar itself.</t>
  <t>specifies the interaction (data exchange and data objects) between a pledge acting as server and a registrar-agent and the domain registrar.
The security is addressed on the application layer only to enable usage of arbitrary transport means between the pledge and the domain registrar via the registrar-agent.
Connectivity between the pledge and the registrar-agent may be via IP-based networks (wired or wireless) but also via Bluetooth or NFC.</t>
  <t>allows the application of registrar-agent credentials to establish TLS connections to the domain registrar. These registrar-agent credentials are different from the pledge's IDevID.</t>
</list></t>

<t>The term endpoint used in the context of this document is similar to resources in CoAP <xref target="RFC7252"/> and also in HTTP <xref target="RFC9110"/>.
It is not used to describe a device.
Endpoints are accessible via .well-known URIs.</t>

<t>To utilize the EST server endpoints on the domain registrar, the registrar-agent will act as client towards the domain registrar.</t>

<t>The registrar-agent also acts as a client when communicating with a pledge in responder mode.
Here, TLS with server-side, certificate-based authentication is not directly applicable, as the pledge only possesses an IDevID certificate.
The IDevID does not contain any anchor for which any kind of <xref target="RFC6125"/> validation can be done.
Second, the registrar-agent may not be aware of manufacturer trust anchors to validate the IDevIDs.
Finally, IDevIDs do not typically set Extended Key Usage (EKU) for TLS WWW Server authentication.</t>

<t>The inability to effectively do TLS in responder mode is one reason for relying on object security.
Another reason is the application on different transports channels, for which TLS may not be available, such as Bluetooth and NFC.</t>

<t>Therefore, BRSKI-PRM relies on an additional signature wrapping of the exchanged data objects.
For EST <xref target="RFC7030"/> the registrar then needs to do some pre-processing to verify this signature, which is not present in EST.</t>

</section>
<section anchor="terminology"><name>Terminology</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>

<t>This document relies on the terminology defined in <xref target="RFC8995"/>, section 1.2.
The following terms are defined additionally:</t>

<dl>
  <dt>authenticated self-contained object:</dt>
  <dd>
    <t>Describes an object, which is cryptographically bound to the end entity (EE) certificate (IDevID certificate or LDEVID certificate).
The binding is assumed to be provided through a digital signature of the actual object using the corresponding private key of the EE certificate.</t>
  </dd>
  <dt>CA:</dt>
  <dd>
    <t>Certification authority, issues certificates.</t>
  </dd>
  <dt>Commissioning tool:</dt>
  <dd>
    <t>Tool to interact with devices to provide configuration data</t>
  </dd>
  <dt>CSR:</dt>
  <dd>
    <t>Certificate Signing Request</t>
  </dd>
  <dt>EE:</dt>
  <dd>
    <t>End entity</t>
  </dd>
  <dt>mTLS:</dt>
  <dd>
    <t>Mutual authenticated Transport Layer Security.</t>
  </dd>
  <dt>on-site:</dt>
  <dd>
    <t>Describes a component or service or functionality available in the customer site/domain.</t>
  </dd>
  <dt>off-site:</dt>
  <dd>
    <t>Describes a component or service or functionality not available within the customer site/domain.
It may be at a central site or an internet resident "cloud" service.
The connection may also be temporary and, e.g., only available at times when workers are present on a construction side, for instance.</t>
  </dd>
  <dt>PER:</dt>
  <dd>
    <t>Pledge-enrollment-request is a signature wrapped CSR, signed by the pledge that requests enrollment to a domain</t>
  </dd>
  <dt>POP:</dt>
  <dd>
    <t>Proof of possession (of a private key)</t>
  </dd>
  <dt>POI:</dt>
  <dd>
    <t>Proof of identity (see <xref target="req-sol"/>)</t>
  </dd>
  <dt>PVR:</dt>
  <dd>
    <t>Pledge-Voucher-Request is a request for a voucher signed by the Pledge to the Registrar.</t>
  </dd>
  <dt>RA:</dt>
  <dd>
    <t>Registration authority, an optional system component to which a CA delegates certificate management functions such as authorization checks.</t>
  </dd>
  <dt>RER:</dt>
  <dd>
    <t>Registrar-enrollment-request is the CSR of PER sent to the CA by the registrar (RA/LRA)</t>
  </dd>
  <dt>RVR:</dt>
  <dd>
    <t>Registrar-Voucher-Request is a request for a voucher signed by the Registrar to the MASA.
It may contain the PVR received from the pledge.</t>
  </dd>
</dl>

<t>This document includes many examples that would contain many long sequences of base64 encoded objects with no content directly comprehensible to a human reader.
In order to keep them readable the examples use the token "base64encodedvalue==" whenever such a thing occurs.
This token is in fact valid base64.
The full examples are in appendix.</t>

<t>This protocol unavoidably has a mix of both base64 encoded data (as is normal for many JSON encoded protocols), and also BASE64URL encoded data, as specified by JWS.
The latter is indicated by a string like "BASE64URL(THING)"</t>

</section>
<section anchor="scope-of-solution"><name>Scope of Solution</name>

<section anchor="sup-env"><name>Supported Environments and Use Case Examples</name>

<t>BRSKI-PRM is applicable to environments where pledges may have different behavior: pledge-responder-mode, or pledges may have no direct connection to the domain registrar.
Either way pledges are expected to be managed by the same registrar.</t>

<t>This can be motivated by pledges deployed in environments not yet connected to the operational customer site/domain network, e.g., at a construction site where a building is going up.</t>

<t>Another environment relates to the assembly of cabinets, which are prepared in advance to be installed on a customer site/domain.</t>

<t>As there is no direct connection to the registrar available in these environments the solution specified allows the pledges to act in a server role so they can be triggered for bootstrapping e.g., by a commissioning tool.</t>

<t>As BRSKI focuses on the pledge in a client role, initiating the bootstrapping (pledge-initiated-mode), BRSKI-PRM defines pledges acting as a server (pledge-responder-mode) responding to PVR and PER and consumption of the results.</t>

<t>The following examples motivate support of BRSKI-PRM to support pledges acting as server as well as pledges with limited connectivity to the registrar.</t>

<t>While BRSKI-PRM defines support for pledges in responder mode, there may be pledges which can act as both initiator or responder.
In these cases BRSKI-PRM can be combined with BRSKI as defined in <xref target="RFC8995"/> or BRSKI-AE <xref target="I-D.ietf-anima-brski-ae"/> to allow for more bootstrapping flexibility.</t>

<t>A pledge which can initiate, <bcp14>SHOULD</bcp14> listen for BRSKI messages as described in <xref section="4.1" sectionFormat="comma" target="RFC8995"/>.  Upon discovery of a potential Registrar, it <bcp14>SHOULD</bcp14> initiate the bootstrapping to that Registrar.
At the same time (so as to avoid the Slowloris-attack described in <xref target="RFC8995"/>), it <bcp14>SHOULD</bcp14> also respond to the pledge-responder-mode connections described in this document.</t>

<t>Once a pledge with such combined functionality has been bootstrapped, it <bcp14>MAY</bcp14> act as client for enrollment or re-enrollment of further certificates needed, e.g., using the enrollment protocol of choice.
If it still acts as server, the defined endpoints can be used to trigger a Pledge-Enrollment-Request (PER) for further certificates.</t>

<section anchor="building-automation"><name>Building Automation</name>

<t>In building automation a typical use case exists where a detached building (or a cabinet) or the basement of a building is equipped with sensors, actuators and controllers, but with only limited or no connection to the central building management system.
This limited connectivity may exist during installation time or also during operation time.</t>

<t>During the installation, for instance, in the basement, a service technician collects the device specific information from the basement network and provides them to the central building management system.  This could be done using a laptop, common mobile device, or dedicated commissioning tool to transport the information.
The service technician may visit every new house in a subdivision collecting device specific information before connecting to the Registrar.</t>

<t>A domain registrar may be part of the central building management system and already be operational in the installation network.
The central building management system can then provide operational parameters for the specific devices in the basement.
These operational parameters may comprise values and settings required in the operational phase of the sensors/actuators, among them a certificate issued by the operator to authenticate against other components and services.
These operational parameters are then provided to the devices in the basement facilitated by the service technician's laptop.</t>

</section>
<section anchor="infrastructure-isolation-policy"><name>Infrastructure Isolation Policy</name>

<t>This refers to any case in which the network infrastructure is normally isolated from the Internet as a matter of policy, most likely for security reasons.
In such a case, limited access to a domain registrar may be allowed in carefully controlled short periods of time, for example when a batch of new devices are deployed, but prohibited at other times.</t>

</section>
<section anchor="less-operational-security-in-the-target-domain"><name>Less Operational Security in the Target-Domain</name>

<t>The registration authority (RA) performing the authorization of a certificate request is a critical PKI component and therefore requires higher operational security than other components utilizing the issued certificates.
CAs may also require higher security in the registration procedures.
There may be situations in which the customer site/domain does not offer enough security to operate a RA/CA and therefore this service is transferred to a backend that offers a higher level of operational security.</t>

</section>
</section>
<section anchor="limitations"><name>Limitations</name>

<t>The mechanism described in this document presumes the availability of the pledge and the registrar-agent to communicate with another.
This may not be possible in constrained environments where, in particular, power must be conserved.
In these situations, it is anticipated that the transceiver will be powered down most of the time.
This presents a rendezvous problem: the pledge is unavailable for certain periods of time, and the registrar-agent is similarly presumed to be unavailable for certain periods of time.</t>

</section>
</section>
<section anchor="req-sol"><name>Requirements Discussion and Mapping to Solution-Elements</name>

<t>Based on the intended target environment described in <xref target="sup-env"/> the following requirements are derived to support bootstrapping of pledges in responder mode (acting as server).</t>

<t><list style="symbols">
  <t>To facilitate the communication between a pledge in responder mode and registrar, additional functionality is needed either on the registrar or as a stand-alone component.
This new functionality is defined as registrar-agent and acts as an agent of the registrar to trigger the pledge to generate requests for voucher and enrollment. These requests are then provided by the  registrar-agent to the registrar.
This requires the definition of pledge endpoints to allow interaction with the registrar-agent.</t>
  <t>The communication between the registrar-agent and the pledge <bcp14>MUST NOT</bcp14> rely on transport layer security (TLS) because the pledge does not have a certificate that can easily be verified by <xref target="RFC6125"/> methods.
It is also more difficult to use TLS over other technology stacks (e.g., BTLE).</t>
  <t>The use of authenticated self-contained objects provides a work around for both the TLS challenges, and the technology stack challenge.</t>
  <t>By contrast, the registrar-agent can be authenticated by the registrar as a component, acting on behalf of the registrar.
In addition the registrar must be able to verify, which registrar-agent was in direct contact with the pledge.</t>
  <t>It would be inaccurate for the voucher request and voucher response to use an assertion with value "proximity" in the voucher, as the pledge was not in direct contact with the registrar for bootstrapping.
Therefore, a new "agent-proximity" assertion value is necessary for distinguishing assertions the MASA can state.</t>
</list></t>

<t>At least the following properties are required for the voucher and enrollment processing:</t>

<t><list style="symbols">
  <t>Proof of Identity (POI): provides data-origin authentication of a data object, e.g., a voucher request or an enrollment request, utilizing an existing IDevID.
Certificate updates may utilize the certificate that is to be updated.</t>
  <t>Proof of Possession (POP): proves that an entity possesses and controls the private key corresponding to the public key contained in the certification request, typically by adding a signature computed using the private key to the certification request.</t>
</list></t>

<t>Solution examples based on existing technology are provided with the focus on existing IETF RFCs:</t>

<t><list style="symbols">
  <t>Voucher requests and responses as used in <xref target="RFC8995"/> already provide both, POP and POI, through a digital signature to protect the integrity of the voucher, while the corresponding signing certificate contains the identity of the signer.</t>
  <t>Certification requests are data structures containing the information from a requester for a CA to create a certificate.
The certification request format in BRSKI is PKCS#10 <xref target="RFC2986"/>.
In PKCS#10, the structure is signed to ensure integrity protection and proof of possession of the private key of the requester that corresponds to the contained public key.
In the application examples, this POP alone is not sufficient.
A POI is also required for the certification request and therefore the certification request needs to be additionally bound to the existing credential of the pledge (IDevID).
This binding supports the authorization decision for the certification request and may be provided directly with the certification request.
While BRSKI uses the binding to TLS, BRSKI-PRM aims at an additional signature of the PKCS#10 using existing credentials on the pledge (IDevID). This allows the process to be independent of the selected transport.</t>
</list></t>

</section>
<section anchor="architecture"><name>Architectural Overview</name>

<t>For BRSKI with pledge in responder mode, the base system architecture defined in BRSKI <xref target="RFC8995"/> is enhanced to facilitate the new use cases in which the pledge acts as server.
The pledge-responder-mode allows delegated bootstrapping using a registrar-agent instead of a direct connection between the pledge and the domain registrar.</t>

<t>Necessary enhancements to support authenticated self-contained objects for certificate enrollment are kept at a minimum to enable reuse of already defined architecture elements and interactions.</t>

<t>For the authenticated self-contained objects used for the certification request, BRSKI-PRM relies on the defined message wrapping mechanisms of the enrollment protocols stated in <xref target="req-sol"/> above.</t>

<t>The security used within the document for bootstrapping objects produced or consumed by the pledge bases on JOSE <xref target="RFC7515"/>. In constrained environments it may be provided based on COSE <xref target="RFC9052"/> and <xref target="RFC9053"/>.</t>

<t>An abstract overview of the BRSKI-PRM protocol can be found in  <xref target="BRSKI-PRM-abstract"/>.</t>

<section anchor="uc2"><name>Pledge-Responder-Mode (PRM): Registrar-Agent Communication with Pledges</name>

<t>To support mutual trust establishment between the domain registrar and pledges not directly connected to the customer site/domain, this document specifies the exchange of authenticated self-contained objects (the voucher request/response as known from BRSKI and the enrollment request/response as introduced by BRSKI-PRM) with the help of a registrar-agent.</t>

<t>This leads to extensions of the logical components in the BRSKI architecture as shown in <xref target="uc2figure"/>.
Note that the Join Proxy is neglected in the figure as not needed by the registrar-agent.
The registrar-agent interacts with the pledge to transfer the required data objects for bootstrapping, which are then also exchanged between the registrar-agent and the domain registrar.
The addition of the registrar-agent influences the sequences of the data exchange between the pledge and the domain registrar as described in <xref target="RFC8995"/>.
To enable reuse of BRSKI defined functionality as much as possible, BRSKI-PRM:</t>

<t><list style="symbols">
  <t>uses existing endpoints where the required functionality is provided</t>
  <t>enhances existing endpoints with new supported media types, e.g., for JWS voucher</t>
  <t>defines new endpoints where additional functionality is required, e.g., for wrapped certification request, CA certificates, or new status information.</t>
</list></t>

<figure title="BRSKI-PRM Architecture overview using registrar-agent" anchor="uc2figure"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="480" width="448" viewBox="0 0 448 480" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
<path d="M 8,240 L 8,384" fill="none" stroke="black"/>
<path d="M 32,48 L 32,232" fill="none" stroke="black"/>
<path d="M 72,240 L 72,384" fill="none" stroke="black"/>
<path d="M 144,240 L 144,336" fill="none" stroke="black"/>
<path d="M 200,368 L 200,432" fill="none" stroke="black"/>
<path d="M 240,32 L 240,144" fill="none" stroke="black"/>
<path d="M 240,240 L 240,336" fill="none" stroke="black"/>
<path d="M 304,240 L 304,336" fill="none" stroke="black"/>
<path d="M 352,152 L 352,232" fill="none" stroke="black"/>
<path d="M 352,336 L 352,368" fill="none" stroke="black"/>
<path d="M 360,72 L 360,144" fill="none" stroke="black"/>
<path d="M 400,240 L 400,336" fill="none" stroke="black"/>
<path d="M 400,368 L 400,432" fill="none" stroke="black"/>
<path d="M 440,32 L 440,144" fill="none" stroke="black"/>
<path d="M 240,32 L 440,32" fill="none" stroke="black"/>
<path d="M 32,48 L 64,48" fill="none" stroke="black"/>
<path d="M 160,48 L 232,48" fill="none" stroke="black"/>
<path d="M 240,64 L 440,64" fill="none" stroke="black"/>
<path d="M 240,144 L 440,144" fill="none" stroke="black"/>
<path d="M 8,240 L 72,240" fill="none" stroke="black"/>
<path d="M 144,240 L 240,240" fill="none" stroke="black"/>
<path d="M 304,240 L 400,240" fill="none" stroke="black"/>
<path d="M 80,304 L 136,304" fill="none" stroke="black"/>
<path d="M 248,304 L 296,304" fill="none" stroke="black"/>
<path d="M 144,336 L 240,336" fill="none" stroke="black"/>
<path d="M 304,336 L 400,336" fill="none" stroke="black"/>
<path d="M 200,368 L 400,368" fill="none" stroke="black"/>
<path d="M 8,384 L 72,384" fill="none" stroke="black"/>
<path d="M 200,432 L 400,432" fill="none" stroke="black"/>
<polygon class="arrowhead" points="360,232 348,226.4 348,237.6" fill="black" transform="rotate(90,352,232)"/>
<polygon class="arrowhead" points="360,152 348,146.4 348,157.6" fill="black" transform="rotate(270,352,152)"/>
<polygon class="arrowhead" points="304,304 292,298.4 292,309.6" fill="black" transform="rotate(0,296,304)"/>
<polygon class="arrowhead" points="256,304 244,298.4 244,309.6" fill="black" transform="rotate(180,248,304)"/>
<polygon class="arrowhead" points="144,304 132,298.4 132,309.6" fill="black" transform="rotate(0,136,304)"/>
<polygon class="arrowhead" points="88,304 76,298.4 76,309.6" fill="black" transform="rotate(180,80,304)"/>
<polygon class="arrowhead" points="40,232 28,226.4 28,237.6" fill="black" transform="rotate(90,32,232)"/>
<g class="text">
<text x="92" y="52">Drop</text>
<text x="132" y="52">Ship</text>
<text x="276" y="52">Vendor</text>
<text x="336" y="52">Service</text>
<text x="256" y="84">M</text>
<text x="312" y="84">anufacturer</text>
<text x="256" y="100">A</text>
<text x="304" y="100">uthorized</text>
<text x="400" y="100">Ownership</text>
<text x="256" y="116">S</text>
<text x="292" y="116">igning</text>
<text x="392" y="116">Tracker</text>
<text x="256" y="132">A</text>
<text x="300" y="132">uthority</text>
<text x="396" y="180">BRSKI-</text>
<text x="104" y="196">BRSKI-PRM</text>
<text x="396" y="196">MASA</text>
<text x="232" y="212">.............................</text>
<text x="392" y="212">.........</text>
<text x="120" y="228">.</text>
<text x="424" y="228">.</text>
<text x="120" y="244">.</text>
<text x="424" y="244">.</text>
<text x="120" y="260">.</text>
<text x="424" y="260">.</text>
<text x="36" y="276">Pledge</text>
<text x="120" y="276">.</text>
<text x="192" y="276">Registrar</text>
<text x="272" y="276">BRSKI</text>
<text x="340" y="276">Domain</text>
<text x="424" y="276">.</text>
<text x="120" y="292">.</text>
<text x="176" y="292">Agent</text>
<text x="272" y="292">EST</text>
<text x="352" y="292">Registrar</text>
<text x="424" y="292">.</text>
<text x="332" y="308">(PKI</text>
<text x="368" y="308">RA)</text>
<text x="424" y="308">.</text>
<text x="120" y="324">.</text>
<text x="212" y="324">LDevID</text>
<text x="424" y="324">.</text>
<text x="120" y="340">.</text>
<text x="424" y="340">.</text>
<text x="36" y="356">IDevID</text>
<text x="120" y="356">.</text>
<text x="424" y="356">.</text>
<text x="120" y="372">.</text>
<text x="424" y="372">.</text>
<text x="120" y="388">.</text>
<text x="224" y="388">Key</text>
<text x="300" y="388">Infrastructure</text>
<text x="424" y="388">.</text>
<text x="120" y="404">.</text>
<text x="236" y="404">(e.g.,</text>
<text x="280" y="404">PKI</text>
<text x="344" y="404">Certificate</text>
<text x="424" y="404">.</text>
<text x="120" y="420">.</text>
<text x="300" y="420">Authority)</text>
<text x="424" y="420">.</text>
<text x="120" y="436">.</text>
<text x="424" y="436">.</text>
<text x="272" y="452">.......................................</text>
<text x="220" y="468">&quot;Domain&quot;</text>
<text x="300" y="468">components</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
                             +------------------------+
   +---- Drop Ship ----------| Vendor Service         |
   |                         +------------------------+
   |                         | M anufacturer|         |
   |                         | A uthorized  |Ownership|
   |                         | S igning     |Tracker  |
   |                         | A uthority   |         |
   |                         +--------------+---------+
   |                                       ^
   |                                       |  BRSKI-
   |    BRSKI-PRM                          |   MASA
   |          .............................|.........
   V          .                            v        .
+-------+     .  +-----------+       +-----------+  .
|       |     .  |           |       |           |  .
|Pledge |     .  | Registrar | BRSKI | Domain    |  .
|       |     .  | Agent     |  EST  | Registrar |  .
|       |<------>|           |<----->| (PKI RA)  |  .
|       |     .  |     LDevID|       |           |  .
|       |     .  +-----------+       +-----+-----+  .
|IDevID |     .                            |        .
|       |     .         +------------------+-----+  .
+-------+     .         | Key Infrastructure     |  .
              .         | (e.g., PKI Certificate |  .
              .         |       Authority)       |  .
              .         +------------------------+  .
              .......................................
                       "Domain" components
]]></artwork></artset></figure>

<t>The following list describes the components in a (customer) site domain:</t>

<t><list style="symbols">
  <t>Pledge: The pledge is expected to respond with the necessary data objects for bootstrapping to the registrar-agent.
The protocol used between the pledge and the registrar-agent is assumed to be HTTP in the context of this document.
Other protocols may be used like CoAP, Bluetooth, or NFC, but are out of scope of this document.
A pledge acting as a server during bootstrapping leads to some differences to BRSKI:  <list style="symbols">
      <t>Discovery of the pledge by the registrar-agent must be possible.</t>
      <t>As the registrar-agent must be able to request data objects for bootstrapping of the pledge, the pledge must offer corresponding endpoints.</t>
      <t>The registrar-agent <bcp14>MAY</bcp14> provide additional data to the pledge in the context of the voucher triggering request, that the pledge includes into the PVR.
This allows the registrar to identify, with which registrar-agent the pledge was in contact.</t>
      <t>Order of exchanges in the call flow may be different as the registrar-agent collects both, PVR and PER, at once and provides them to the registrar.
This approach is used in order to allow for bulk bootstrapping of several devices in a single pass through a new site by the commissioning personnel.</t>
      <t>The data objects utilized for the data exchange between the pledge and the registrar are self-contained authenticated objects (signature-wrapped objects).</t>
    </list></t>
  <t>Registrar-agent: provides a communication path to exchange data objects between the pledge and the domain registrar.
The registrar-agent brokers in situations in which the domain registrar is not directly reachable by the pledge.
This may be due to a different technology stack or due to missing connectivity.
The registrar-agent triggers a pledge to create bootstrapping artifacts such as the voucher-request and the enrollment-request on one or multiple pledges and performs a (bulk) bootstrapping based on the collected data.
The registrar-agent is expected to possess information about the domain registrar: the registrar EE certificate, LDevID(CA) certificate, IP address, either by configuration or by using the discovery mechanism defined in <xref target="RFC8995"/>.
There is no trust assumption between the pledge and the registrar-agent as only authenticated self-contained objects are used, which are transported via the registrar-agent and provided either by the pledge or the registrar.
The trust assumption between the registrar-agent and the registrar is based on the LDevID of the registrar-agent, provided by the PKI responsible for the domain.
This allows the registrar-agent to authenticate towards the registrar, e.g., in a TLS handshake.
Based on this, the registrar is able to distinguish a pledge from a registrar-agent during the TLS session establishment and also to verify that the registrar-agent is authorized to perform the bootstrapping of the distinct pledge.</t>
  <t>Join Proxy (not shown): same functionality as described in <xref target="RFC8995"/> if needed.
Note that a registrar-agent may use a join proxy to facilitate the TLS connection to the registrar, in the same way that a BRSKI pledge would use a join proxy. This is useful in cases where the registrar-agent does not have full IP connectivity via the domain network, or cases where it has no other means to locate the registrar on the network.</t>
  <t>Domain Registrar: In general, the domain registrar fulfills the same functionality regarding the bootstrapping of the pledge in a (customer) site domain by facilitating the communication of the pledge with the MASA service and the domain PKI service.
In contrast to <xref target="RFC8995"/>, the domain registrar does not interact with a pledge directly but through the registrar-agent.
The registrar detects if the bootstrapping is performed by the pledge directly or by the registrar-agent.</t>
  <t>The manufacturer provided components/services (MASA and Ownership tracker) are used as defined in <xref target="RFC8995"/>.
For issuing a voucher, the MASA may perform additional checks on a voucher-request, to issue a voucher indicating agent-proximity instead of (registrar-)proximity.</t>
</list></t>

</section>
<section anchor="agt_prx"><name>Agent-Proximity Assertion</name>

<t>"Agent-proximity" is a statement, that the proximity registrar certificate was provided via the registrar-agent as defined in <xref target="exchanges_uc2"/> and not directly to the pledge.
"Agent-proximity" is therefore a weaker assertion then "proximity".
It is defined as additional assertion type in <xref target="I-D.ietf-anima-rfc8366bis"/>.
This can be verified by the registrar and also by the MASA during the voucher-request processing.
Note that at the time of creating the voucher-request, the pledge cannot verify the registrar's registrar EE  certificate and has no proof-of-possession of the corresponding private key for the certificate.
The pledge therefore accepts the registrar EE certificate provisionally until it receives the voucher as described in <xref target="exchanges_uc2_3"/>.
See also <xref target="RFC8995"/> "PROVISIONAL accept of server cert".</t>

<t>Trust handover to the domain is established via the "pinned-domain-certificate" in the voucher.</t>

<t>In contrast to the above, "proximity" provides a statement, that the pledge was in direct contact with the registrar and was able to verify proof-of-possession of the private key in the context of the TLS handshake.
The provisionally accepted registrar EE certificate can be verified after the voucher has been processed by the pledge.
As the returned voucher includes an additional signature by the registrar as defined in <xref target="exchanges_uc2_2_vs"/>, the pledge can also verify that the registrar possesses the corresponding private key.</t>

</section>
<section anchor="pledge_ep"><name>Behavior of Pledge in Pledge-Responder-Mode</name>

<t>The pledge is triggered by the registrar-agent to generate the PVR and PER as well as for the processing of the responses and the generation of status information.
Due to the use of the registrar-agent, the interaction with the domain registrar is changed as shown in <xref target="exchangesfig_uc2_1"/>.
To enable interaction with the registrar-agent, the pledge provides endpoints using the BRSKI defined endpoints based on the "/.well-known/brski" URI tree.</t>

<t>The following endpoints are defined for the <em>pledge</em> in this document.
The endpoints are defined with short names to also accommodate for the constraint case.
The URI path begins with "http://www.example.com/.well-known/brski" followed by a path-suffix that indicates the intended operation.</t>

<t>Operations and their corresponding URIs:</t>

<texttable title="Endpoints on the pledge" anchor="eppfigure1">
      <ttcol align='left'>Operation</ttcol>
      <ttcol align='left'>Operation path</ttcol>
      <ttcol align='left'>Details</ttcol>
      <c>Trigger pledge-voucher-request creation - Returns PVR</c>
      <c>/tv</c>
      <c><xref target="exchanges_uc2_1"/></c>
      <c>Trigger pledge-enrollment-request - Returns PER</c>
      <c>/te</c>
      <c><xref target="exchanges_uc2_1"/></c>
      <c>Provide voucher to pledge - Returns pledge-voucher-status</c>
      <c>/sv</c>
      <c><xref target="exchanges_uc2_3"/></c>
      <c>Provide enrollment response to pledge - Returns pledge-enrollment-status</c>
      <c>/se</c>
      <c><xref target="exchanges_uc2_3"/></c>
      <c>Provide CA certs to pledge</c>
      <c>/cc</c>
      <c><xref target="exchanges_uc2_3"/></c>
      <c>Query bootstrapping status of pledge - Returns pledge-status</c>
      <c>/ps</c>
      <c><xref target="exchanges_uc2_5"/></c>
</texttable>

</section>
<section anchor="behavior-of-registrar-agent"><name>Behavior of Registrar-Agent</name>

<t>The registrar-agent as a new component provides connectivity between the pledge and the domain registrar.
It facilitates the exchange of data between the pledge and the domain registrar, which are the voucher request/response, the enrollment request/response, as well as related telemetry and status information.</t>

<t>For the communication with the pledge the registrar-agent utilizes communication endpoints provided by the pledge.
The transport in this specification is based on HTTP but may also be done using other transport mechanisms.
This new component changes the general interaction between the pledge and the domain registrar as shown in <xref target="uc2figure"/>.</t>

<t>For the communication with the registrar, the registrar-agent uses the endpoints of the domain registrar side already specified in <xref target="RFC8995"/> if suitable.
The EST <xref target="RFC7030"/> standard endpoints used by BRSKI do not expect signature wrapped-objects, which are used b BRSKI-PRM.
This specifically applies for the enrollment request and the provisioning of CA certificates.
To accommodate the use of signature-wrapped object, the following additional endpoints are defined for the <em>registrar</em>.
Operations and their corresponding URIs:</t>

<texttable title="Additional endpoints on the registrar" anchor="eppfigure2">
      <ttcol align='left'>Operation</ttcol>
      <ttcol align='left'>Operation path</ttcol>
      <ttcol align='left'>Details</ttcol>
      <c>Supply PER to registrar</c>
      <c>/requestenroll</c>
      <c><xref target="exchanges_uc2_2_per"/></c>
      <c>Request (wrapped) CA certificates - Returns wrapped CA Certificates</c>
      <c>/wrappedcacerts</c>
      <c><xref target="exchanges_uc2_2_wca"/></c>
</texttable>

<t>For authentication to the domain registrar, the registrar-agent uses its LDevID(RegAgt).
The provisioning of the registrar-agent LDevID is out of scope for this document, but may be done in advance using a separate BRSKI run or by other means like configuration.
It is recommended to use short lived registrar-agent LDevIDs in the range of days or weeks as outlined in <xref target="sec_cons_reg-agt"/>.</t>

<t>The registrar-agent will use its LDevID(RegAgt) when establishing a TLS session with the domain registrar for TLS client authentication.
The LDevID(RegAgt) certificate <bcp14>MUST</bcp14> include a SubjectKeyIdentifier (SKID), which is used as reference in the context of an agent-signed-data object as defined in <xref target="exchanges_uc2_1"/>.
Note that this is an additional requirement for issuing the certificate, as <xref target="IEEE-802.1AR"/> only requires the SKID to be included for intermediate CA certificates.
<xref target="RFC8995"/> makes a similar requirement.
In BRSKI-PRM, the SKID is used in favor of a certificate fingerprint to avoid additional computations.</t>

<t>Using an LDevID for TLS client authentication of the registrar-agent is a deviation from <xref target="RFC8995"/>, in which the pledge's IDevID credential is used to perform TLS client authentication.
The use of the LDevID(RegAgt) allows the domain registrar to distinguish, if bootstrapping is initiated from a pledge or from a registrar-agent and to adopt different internal handling accordingly.
If a registrar detects a request that originates from a registrar-agent it is able to switch the operational mode from BRSKI to BRSKI-PRM.
This may be supported by a specific naming in the SAN (subject alternative name) component of the LDevID(RegAgt) certificate.
Alternatively, the domain may feature a CA specifically for issuing registrar-agent LDevID certificates.
This allows the registrar to detect registrar-agents based on the issuing CA.</t>

<t>As BRSKI-PRM uses authenticated self-contained data objects between the pledge and the domain registrar, the binding of the pledge identity to the requests is provided by the data object signature employing the pledge's IDevID.
The objects exchanged between the pledge and the domain registrar used in the context of this specifications are JOSE objects.</t>

<t>In addition to the LDevID(RegAgt), the registrar-agent is provided with the product-serial-number(s) of the pledge(s) to be bootstrapped.
This is necessary to allow the discovery of pledge(s) by the registrar-agent using mDNS (see <xref target="discovery_uc2_ppa"/>)
The list may be provided by administrative means or the registrar agent may get the information via an interaction with the pledge.
For instance, <xref target="RFC9238"/> describes scanning of a QR code, the product-serial-number would be initialized from the 12N B005 Product Serial Number.</t>

<t>According to <xref target="RFC8995"/> section 5.3, the domain registrar performs the pledge authorization for bootstrapping within his domain based on the pledge voucher-request object.</t>

<t>The following information <bcp14>MUST</bcp14> be available at the registrar-agent:</t>

<t><list style="symbols">
  <t>LDevID(RegAgt): own operational key pair.</t>
  <t>Registrar EE certificate: certificate of the domain registrar.</t>
  <t>Serial-number(s): product-serial-number(s) of pledge(s) to be bootstrapped.</t>
</list></t>

<section anchor="discovery_uc2_reg"><name>Discovery of Registrar by Registrar-Agent</name>

<t>The discovery of the domain registrar may be done as specified in <xref target="RFC8995"/> with the
deviation that it is done between the registrar-agent and the domain registrar.
Alternatively, the registrar-agent may be configured with the address of the domain registrar and the certificate of the domain registrar.</t>

</section>
<section anchor="discovery_uc2_ppa"><name>Discovery of Pledge by Registrar-Agent</name>

<t>The discovery of the pledge by registrar-agent should be done by using DNS-based Service Discovery <xref target="RFC6763"/> over Multicast DNS <xref target="RFC6762"/> to discover the pledge. The pledge constructs a local host name based on device local information (product-serial-number), which results in "product-serial-number._brski-pledge._tcp.local".</t>

<t>The registrar-agent <bcp14>MAY</bcp14> use</t>

<t><list style="symbols">
  <t>"product-serial-number._brski-pledge._tcp.local", to discover a specific pledge, e.g., when connected to a local network.</t>
  <t>"_brski-pledge._tcp.local" to get a list of pledges to be bootstrapped.</t>
</list></t>

<t>A manufacturer may allow the pledge to react on mDNS discovery without his product-serial-number contained. This allows a commissioning tool to discover pledges to be bootstrapped in the domain. The manufacturer may opt out of this functionality as outlined in <xref target="sec_cons_mDNS"/>.</t>

<t>To be able to detect the pledge using mDNS, network connectivity is required.
For Ethernet it is provided by simply connecting the network cable.
For WiFi networks, connectivity can be provided by using a pre-agreed SSID for bootstrapping.
The same approach can be used by 6LoWPAN/mesh using a pre-agreed PAN ID.
How to gain network connectivity is out of scope of this document.</t>

</section>
</section>
</section>
<section anchor="exchanges_uc2"><name>Bootstrapping Data Objects and Corresponding Exchanges</name>

<t>The interaction of the pledge with the registrar-agent may be accomplished using different transport means (protocols and/or network technologies).
This specification describes the usage of HTTP as in BRSKI <xref target="RFC8995"/>.
Alternative transport channels may be CoAP, Bluetooth Low Energy (BLE), or Nearfield Communication (NFC).
These transport means may differ from, and are independent of, the ones used between the registrar-agent and the registrar.
Transport channel independence is realized by data objects which are not bound to specific transport security.
Therefore, authenticated self-contained objects (here: signature-wrapped objects) are applied for data exchanges between the pledge and the registrar.</t>

<t>The registrar-agent provides the domain registrar certificate (registrar EE certificate) to the pledge to be included in the PVR leaf "agent-provided-proximity-registrar-certificate".
This enables the registrar to verify that it is the desired registrar for handling the request.</t>

<t>The registrar certificate may be configured at the registrar-agent or may be fetched by the registrar-agent based on a prior TLS connection with this domain registrar.
In addition, the registrar-agent provides agent-signed-data containing the pledge product-serial-number, signed with the LDevID(RegAgt).
This enables the registrar to verify and log, which registrar-agent was in contact with the pledge, when verifying the PVR.</t>

<t>The registrar <bcp14>MUST</bcp14> fetch the LDevID(RegAgt) certificate based on the SubjectKeyIdentifier (SKID) in the header of the agent-signed-data from the PVR.
The registrar includes the LDevID(RegAgt) certificate information into the RVR if the PVR asked for the assertion "agent-proximity".</t>

<t>The MASA in turn verifies the registrar EE certificate is included in the PVR ("prior-signed-voucher-request" of RVR) in the "agent-provided-proximity-registrar-certificate" leaf
and may assert the PVR as "verified" or "logged" instead of "proximity", as there is no direct connection between the pledge and the registrar.</t>

<t>In addition, the MASA can state the assertion "agent-proximity" as follows:
The MASA can verify the signature of the agent-signed-data contained in the prior-signed-voucher-request, based on the provided LDevID(RegAgt) certificate in the "agent-sign-cert" leaf of the RVR.
If both can be verified successfully, the MASA can assert "agent-proximity" in the voucher.</t>

<t>Depending on the MASA verification policy, it may also respond with a suitable 4xx or 5xx status code as described in section 5.6 of <xref target="RFC8995"/>.
The voucher then can be supplied via the registrar to the registrar-agent.</t>

<t><xref target="exchangesfig_uc2_all"/> provides an overview of the exchanges detailed in the following sub sections.</t>

<figure title="Overview pledge-responder-mode exchanges" anchor="exchangesfig_uc2_all"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1056" width="560" viewBox="0 0 560 1056" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 32,104 L 32,208" fill="none" stroke="black"/>
<path d="M 32,256 L 32,320" fill="none" stroke="black"/>
<path d="M 32,384 L 32,576" fill="none" stroke="black"/>
<path d="M 32,624 L 32,688" fill="none" stroke="black"/>
<path d="M 32,720 L 32,736" fill="none" stroke="black"/>
<path d="M 32,800 L 32,864" fill="none" stroke="black"/>
<path d="M 32,928 L 32,1040" fill="none" stroke="black"/>
<path d="M 80,32 L 80,96" fill="none" stroke="black"/>
<path d="M 112,32 L 112,96" fill="none" stroke="black"/>
<path d="M 168,104 L 168,208" fill="none" stroke="black"/>
<path d="M 168,248 L 168,320" fill="none" stroke="black"/>
<path d="M 168,384 L 168,576" fill="none" stroke="black"/>
<path d="M 168,624 L 168,688" fill="none" stroke="black"/>
<path d="M 168,720 L 168,736" fill="none" stroke="black"/>
<path d="M 168,800 L 168,864" fill="none" stroke="black"/>
<path d="M 168,928 L 168,1040" fill="none" stroke="black"/>
<path d="M 208,32 L 208,96" fill="none" stroke="black"/>
<path d="M 240,32 L 240,96" fill="none" stroke="black"/>
<path d="M 312,104 L 312,208" fill="none" stroke="black"/>
<path d="M 312,256 L 312,320" fill="none" stroke="black"/>
<path d="M 312,496 L 312,576" fill="none" stroke="black"/>
<path d="M 312,624 L 312,688" fill="none" stroke="black"/>
<path d="M 312,720 L 312,736" fill="none" stroke="black"/>
<path d="M 312,800 L 312,864" fill="none" stroke="black"/>
<path d="M 312,928 L 312,976" fill="none" stroke="black"/>
<path d="M 312,1008 L 312,1040" fill="none" stroke="black"/>
<path d="M 336,32 L 336,96" fill="none" stroke="black"/>
<path d="M 376,32 L 376,96" fill="none" stroke="black"/>
<path d="M 432,104 L 432,208" fill="none" stroke="black"/>
<path d="M 432,256 L 432,320" fill="none" stroke="black"/>
<path d="M 432,384 L 432,480" fill="none" stroke="black"/>
<path d="M 432,560 L 432,576" fill="none" stroke="black"/>
<path d="M 432,624 L 432,688" fill="none" stroke="black"/>
<path d="M 432,720 L 432,736" fill="none" stroke="black"/>
<path d="M 432,800 L 432,864" fill="none" stroke="black"/>
<path d="M 432,928 L 432,944" fill="none" stroke="black"/>
<path d="M 432,1008 L 432,1040" fill="none" stroke="black"/>
<path d="M 448,32 L 448,96" fill="none" stroke="black"/>
<path d="M 472,32 L 472,96" fill="none" stroke="black"/>
<path d="M 536,104 L 536,208" fill="none" stroke="black"/>
<path d="M 536,256 L 536,320" fill="none" stroke="black"/>
<path d="M 536,384 L 536,496" fill="none" stroke="black"/>
<path d="M 536,544 L 536,576" fill="none" stroke="black"/>
<path d="M 536,624 L 536,688" fill="none" stroke="black"/>
<path d="M 536,720 L 536,736" fill="none" stroke="black"/>
<path d="M 536,800 L 536,864" fill="none" stroke="black"/>
<path d="M 536,928 L 536,976" fill="none" stroke="black"/>
<path d="M 536,1008 L 536,1040" fill="none" stroke="black"/>
<path d="M 552,32 L 552,96" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 112,32 L 208,32" fill="none" stroke="black"/>
<path d="M 240,32 L 336,32" fill="none" stroke="black"/>
<path d="M 376,32 L 448,32" fill="none" stroke="black"/>
<path d="M 472,32 L 552,32" fill="none" stroke="black"/>
<path d="M 8,96 L 80,96" fill="none" stroke="black"/>
<path d="M 112,96 L 208,96" fill="none" stroke="black"/>
<path d="M 240,96 L 336,96" fill="none" stroke="black"/>
<path d="M 376,96 L 448,96" fill="none" stroke="black"/>
<path d="M 472,96 L 552,96" fill="none" stroke="black"/>
<path d="M 40,176 L 160,176" fill="none" stroke="black"/>
<path d="M 40,192 L 160,192" fill="none" stroke="black"/>
<path d="M 40,256 L 80,256" fill="none" stroke="black"/>
<path d="M 136,256 L 160,256" fill="none" stroke="black"/>
<path d="M 40,272 L 80,272" fill="none" stroke="black"/>
<path d="M 128,272 L 160,272" fill="none" stroke="black"/>
<path d="M 40,304 L 80,304" fill="none" stroke="black"/>
<path d="M 136,304 L 160,304" fill="none" stroke="black"/>
<path d="M 40,320 L 80,320" fill="none" stroke="black"/>
<path d="M 128,320 L 160,320" fill="none" stroke="black"/>
<path d="M 176,384 L 216,384" fill="none" stroke="black"/>
<path d="M 264,384 L 304,384" fill="none" stroke="black"/>
<path d="M 176,432 L 208,432" fill="none" stroke="black"/>
<path d="M 256,432 L 304,432" fill="none" stroke="black"/>
<path d="M 320,496 L 408,496" fill="none" stroke="black"/>
<path d="M 456,496 L 528,496" fill="none" stroke="black"/>
<path d="M 320,544 L 392,544" fill="none" stroke="black"/>
<path d="M 472,544 L 528,544" fill="none" stroke="black"/>
<path d="M 176,560 L 200,560" fill="none" stroke="black"/>
<path d="M 280,560 L 304,560" fill="none" stroke="black"/>
<path d="M 176,624 L 216,624" fill="none" stroke="black"/>
<path d="M 264,624 L 304,624" fill="none" stroke="black"/>
<path d="M 320,640 L 344,640" fill="none" stroke="black"/>
<path d="M 392,640 L 424,640" fill="none" stroke="black"/>
<path d="M 320,656 L 344,656" fill="none" stroke="black"/>
<path d="M 400,656 L 424,656" fill="none" stroke="black"/>
<path d="M 176,672 L 192,672" fill="none" stroke="black"/>
<path d="M 288,672 L 304,672" fill="none" stroke="black"/>
<path d="M 288,720 L 304,720" fill="none" stroke="black"/>
<path d="M 176,736 L 192,736" fill="none" stroke="black"/>
<path d="M 40,800 L 64,800" fill="none" stroke="black"/>
<path d="M 144,800 L 160,800" fill="none" stroke="black"/>
<path d="M 40,816 L 64,816" fill="none" stroke="black"/>
<path d="M 144,816 L 160,816" fill="none" stroke="black"/>
<path d="M 40,832 L 64,832" fill="none" stroke="black"/>
<path d="M 144,832 L 160,832" fill="none" stroke="black"/>
<path d="M 40,848 L 56,848" fill="none" stroke="black"/>
<path d="M 40,864 L 56,864" fill="none" stroke="black"/>
<path d="M 136,864 L 160,864" fill="none" stroke="black"/>
<path d="M 176,928 L 224,928" fill="none" stroke="black"/>
<path d="M 272,928 L 304,928" fill="none" stroke="black"/>
<path d="M 176,944 L 200,944" fill="none" stroke="black"/>
<path d="M 288,944 L 304,944" fill="none" stroke="black"/>
<path d="M 320,960 L 336,960" fill="none" stroke="black"/>
<path d="M 512,960 L 528,960" fill="none" stroke="black"/>
<path d="M 320,976 L 352,976" fill="none" stroke="black"/>
<path d="M 504,976 L 528,976" fill="none" stroke="black"/>
<path d="M 176,1024 L 200,1024" fill="none" stroke="black"/>
<path d="M 280,1024 L 304,1024" fill="none" stroke="black"/>
<polygon class="arrowhead" points="536,960 524,954.4 524,965.6" fill="black" transform="rotate(0,528,960)"/>
<polygon class="arrowhead" points="536,496 524,490.4 524,501.6" fill="black" transform="rotate(0,528,496)"/>
<polygon class="arrowhead" points="432,640 420,634.4 420,645.6" fill="black" transform="rotate(0,424,640)"/>
<polygon class="arrowhead" points="328,976 316,970.4 316,981.6" fill="black" transform="rotate(180,320,976)"/>
<polygon class="arrowhead" points="328,656 316,650.4 316,661.6" fill="black" transform="rotate(180,320,656)"/>
<polygon class="arrowhead" points="328,544 316,538.4 316,549.6" fill="black" transform="rotate(180,320,544)"/>
<polygon class="arrowhead" points="312,1024 300,1018.4 300,1029.6" fill="black" transform="rotate(0,304,1024)"/>
<polygon class="arrowhead" points="312,944 300,938.4 300,949.6" fill="black" transform="rotate(0,304,944)"/>
<polygon class="arrowhead" points="312,928 300,922.4 300,933.6" fill="black" transform="rotate(0,304,928)"/>
<polygon class="arrowhead" points="312,720 300,714.4 300,725.6" fill="black" transform="rotate(0,304,720)"/>
<polygon class="arrowhead" points="312,624 300,618.4 300,629.6" fill="black" transform="rotate(0,304,624)"/>
<polygon class="arrowhead" points="312,432 300,426.4 300,437.6" fill="black" transform="rotate(0,304,432)"/>
<polygon class="arrowhead" points="312,384 300,378.4 300,389.6" fill="black" transform="rotate(0,304,384)"/>
<polygon class="arrowhead" points="184,928 172,922.4 172,933.6" fill="black" transform="rotate(180,176,928)"/>
<polygon class="arrowhead" points="184,736 172,730.4 172,741.6" fill="black" transform="rotate(180,176,736)"/>
<polygon class="arrowhead" points="184,672 172,666.4 172,677.6" fill="black" transform="rotate(180,176,672)"/>
<polygon class="arrowhead" points="184,560 172,554.4 172,565.6" fill="black" transform="rotate(180,176,560)"/>
<polygon class="arrowhead" points="184,384 172,378.4 172,389.6" fill="black" transform="rotate(180,176,384)"/>
<polygon class="arrowhead" points="168,864 156,858.4 156,869.6" fill="black" transform="rotate(0,160,864)"/>
<polygon class="arrowhead" points="168,816 156,810.4 156,821.6" fill="black" transform="rotate(0,160,816)"/>
<polygon class="arrowhead" points="168,320 156,314.4 156,325.6" fill="black" transform="rotate(0,160,320)"/>
<polygon class="arrowhead" points="168,272 156,266.4 156,277.6" fill="black" transform="rotate(0,160,272)"/>
<polygon class="arrowhead" points="168,192 156,186.4 156,197.6" fill="black" transform="rotate(0,160,192)"/>
<polygon class="arrowhead" points="48,848 36,842.4 36,853.6" fill="black" transform="rotate(180,40,848)"/>
<polygon class="arrowhead" points="48,832 36,826.4 36,837.6" fill="black" transform="rotate(180,40,832)"/>
<polygon class="arrowhead" points="48,800 36,794.4 36,805.6" fill="black" transform="rotate(180,40,800)"/>
<polygon class="arrowhead" points="48,304 36,298.4 36,309.6" fill="black" transform="rotate(180,40,304)"/>
<polygon class="arrowhead" points="48,256 36,250.4 36,261.6" fill="black" transform="rotate(180,40,256)"/>
<polygon class="arrowhead" points="48,176 36,170.4 36,181.6" fill="black" transform="rotate(180,40,176)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="160" y="52">Registrar</text>
<text x="276" y="52">Domain</text>
<text x="412" y="52">Domain</text>
<text x="508" y="52">Vendor</text>
<text x="144" y="68">Agent</text>
<text x="288" y="68">Registrar</text>
<text x="396" y="68">CA</text>
<text x="512" y="68">Service</text>
<text x="156" y="84">(RegAgt)</text>
<text x="280" y="84">(JRC)</text>
<text x="508" y="84">(MASA)</text>
<text x="492" y="116">Internet</text>
<text x="92" y="132">discover</text>
<text x="92" y="148">pledge</text>
<text x="60" y="164">mDNS</text>
<text x="104" y="164">query</text>
<text x="56" y="244">trigger</text>
<text x="104" y="244">PVR</text>
<text x="148" y="244">(tPVR)</text>
<text x="192" y="244">and</text>
<text x="224" y="244">PER</text>
<text x="268" y="244">(tPER)</text>
<text x="340" y="244">generation</text>
<text x="396" y="244">on</text>
<text x="436" y="244">pledge</text>
<text x="108" y="260">tPVR</text>
<text x="104" y="276">PVR</text>
<text x="108" y="308">tPER</text>
<text x="104" y="324">PER</text>
<text x="32" y="340">~</text>
<text x="168" y="340">~</text>
<text x="312" y="340">~</text>
<text x="432" y="340">~</text>
<text x="536" y="340">~</text>
<text x="56" y="372">provide</text>
<text x="104" y="372">PVR</text>
<text x="132" y="372">to</text>
<text x="204" y="372">infrastructure</text>
<text x="240" y="388">TLS</text>
<text x="312" y="388">|</text>
<text x="276" y="404">[Reg-Agt</text>
<text x="368" y="404">authenticated</text>
<text x="264" y="420">and</text>
<text x="332" y="420">authorized?]</text>
<text x="232" y="436">PVR</text>
<text x="312" y="436">|</text>
<text x="276" y="452">[Reg-Agt</text>
<text x="364" y="452">authorized?]</text>
<text x="272" y="468">[accept</text>
<text x="340" y="468">device?]</text>
<text x="276" y="484">[contact</text>
<text x="344" y="484">vendor]</text>
<text x="432" y="500">RVR</text>
<text x="436" y="516">[extract</text>
<text x="512" y="516">DomainID]</text>
<text x="432" y="532">[update</text>
<text x="488" y="532">audit</text>
<text x="532" y="532">log]</text>
<text x="432" y="548">Voucher</text>
<text x="240" y="564">Voucher</text>
<text x="56" y="612">provide</text>
<text x="104" y="612">PER</text>
<text x="132" y="612">to</text>
<text x="204" y="612">infrastructure</text>
<text x="240" y="628">PER</text>
<text x="368" y="644">CSR</text>
<text x="372" y="660">Cert</text>
<text x="240" y="676">Enroll-Resp</text>
<text x="48" y="708">query</text>
<text x="104" y="708">cACerts</text>
<text x="156" y="708">from</text>
<text x="236" y="708">infrastructure</text>
<text x="180" y="724">--</text>
<text x="236" y="724">cACert-Req</text>
<text x="256" y="740">cACert-Resp--</text>
<text x="32" y="756">~</text>
<text x="168" y="756">~</text>
<text x="312" y="756">~</text>
<text x="432" y="756">~</text>
<text x="536" y="756">~</text>
<text x="56" y="788">provide</text>
<text x="120" y="788">voucher</text>
<text x="168" y="788">and</text>
<text x="232" y="788">certificate</text>
<text x="296" y="788">and</text>
<text x="344" y="788">collect</text>
<text x="404" y="788">status</text>
<text x="452" y="788">info</text>
<text x="104" y="804">Voucher</text>
<text x="104" y="820">vStatus</text>
<text x="104" y="836">cACerts</text>
<text x="112" y="852">Enroll-Resp--</text>
<text x="96" y="868">eStatus</text>
<text x="32" y="884">~</text>
<text x="168" y="884">~</text>
<text x="312" y="884">~</text>
<text x="432" y="884">~</text>
<text x="536" y="884">~</text>
<text x="56" y="916">provide</text>
<text x="120" y="916">voucher</text>
<text x="180" y="916">status</text>
<text x="224" y="916">and</text>
<text x="268" y="916">enroll</text>
<text x="324" y="916">status</text>
<text x="364" y="916">to</text>
<text x="416" y="916">registrar</text>
<text x="248" y="932">TLS</text>
<text x="248" y="948">vStatus</text>
<text x="360" y="964">req</text>
<text x="404" y="964">device</text>
<text x="456" y="964">audit</text>
<text x="496" y="964">log</text>
<text x="388" y="980">device</text>
<text x="440" y="980">audit</text>
<text x="480" y="980">log</text>
<text x="288" y="996">[verify</text>
<text x="344" y="996">audit</text>
<text x="388" y="996">log]</text>
<text x="240" y="1028">eStatus</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+--------+   +-----------+   +-----------+    +--------+  +---------+
| Pledge |   | Registrar |   | Domain    |    | Domain |  | Vendor  |
|        |   | Agent     |   | Registrar |    | CA     |  | Service |
|        |   | (RegAgt)  |   |  (JRC)    |    |        |  | (MASA)  |
+--------+   +-----------+   +-----------+    +--------+  +---------+
   |                |                 |              |   Internet |
   |   discover     |                 |              |            |
   |    pledge      |                 |              |            |
   | mDNS query     |                 |              |            |
   |<---------------|                 |              |            |
   |--------------->|                 |              |            |
   |                |                 |              |            |

   trigger PVR (tPVR) and PER (tPER) generation on pledge
   |<----- tPVR ----|                 |              |            |
   |------ PVR ---->|                 |              |            |
   |                |                 |              |            |
   |<----- tPER ----|                 |              |            |
   |------ PER ---->|                 |              |            |
   ~                ~                 ~              ~            ~

   provide PVR to infrastructure
   |                |<----- TLS ----->|              |            |
   |                |         [Reg-Agt authenticated |            |
   |                |          and authorized?]      |            |
   |                |----- PVR ------>|              |            |
   |                |         [Reg-Agt authorized?]  |            |
   |                |         [accept device?]       |            |
   |                |         [contact vendor]       |            |
   |                |                 |------------ RVR --------->|
   |                |                 |           [extract DomainID]
   |                |                 |           [update audit log]
   |                |                 |<--------- Voucher --------|
   |                |<--- Voucher ----|              |            |
   |                |                 |              |            |

   provide PER to infrastructure
   |                |------ PER ----->|              |            |
   |                |                 |---- CSR ---->|            |
   |                |                 |<--- Cert ----|            |
   |                |<--Enroll-Resp---|              |            |
   |                |                 |              |            |
   query cACerts from infrastructure
   |                |-- cACert-Req -->|              |            |
   |                |<-- cACert-Resp--|              |            |
   ~                ~                 ~              ~            ~

   provide voucher and certificate and collect status info
   |<--- Voucher ---|                 |              |            |
   |---- vStatus -->|                 |              |            |
   |<--- cACerts ---|                 |              |            |
   |<--Enroll-Resp--|                 |              |            |
   |--- eStatus --->|                 |              |            |
   ~                ~                 ~              ~            ~

   provide voucher status and enroll status to registrar
   |                |<------ TLS ---->|              |            |
   |                |----  vStatus -->|              |            |
   |                |                 |--- req device audit log-->|
   |                |                 |<---- device audit log ----|
   |                |           [verify audit log]
   |                |                 |              |            |
   |                |---- eStatus --->|              |            |
   |                |                 |              |            |
]]></artwork></artset></figure>

<t>The following sub sections split the interactions between the different components into:</t>

<t><list style="symbols">
  <t><xref target="exchanges_uc2_1"/> describes the request object acquisition by the registrar-agent from pledge.</t>
  <t><xref target="exchanges_uc2_2"/> describes the request object processing initiated by the registrar-agent to the registrar and also the interaction of the registrar with the MASA and the domain CA including the response object processing by these entities.</t>
  <t><xref target="exchanges_uc2_3"/> describes the supply of response objects between the registrar-agent and the pledge including the status information.</t>
  <t><xref target="exchanges_uc2_5"/> describes the general status handling and addresses corresponding exchanges between the registrar-agent and the registrar.</t>
</list></t>

<section anchor="exchanges_uc2_1"><name>Request Objects Acquisition by Registrar-Agent from Pledge</name>

<t>The following description assumes that the registrar-agent has already discovered the pledge.
This may be done as described in <xref target="discovery_uc2_ppa"/> based on mDNS or similar.</t>

<t>The focus is on the exchange of signature-wrapped objects using endpoints defined for the pledge in <xref target="pledge_ep"/>.</t>

<t>Preconditions:</t>

<t><list style="symbols">
  <t>Pledge: possesses IDevID</t>
  <t>Registrar-agent: possesses/trusts IDevID CA certificate and has own LDevID(RegAgt) credentials for the registrar domain (site).
In addition, the registrar-agent <bcp14>MUST</bcp14> know the product-serial-number(s) of the pledge(s) to be bootstrapped.
The registrar-agent <bcp14>MAY</bcp14> be provided with the product-serial-number(s) in different ways:
  <list style="symbols">
      <t>configured, e.g., as a list of pledges to be bootstrapped via QR code scanning</t>
      <t>discovered by using standard approaches like mDNS as described in <xref target="discovery_uc2_ppa"/></t>
      <t>discovered by using a vendor specific approach, e.g., RF beacons.
The registrar-agent <bcp14>SHOULD</bcp14> have synchronized time.</t>
    </list></t>
  <t>Registrar: possesses/trusts IDevID CA certificate and has own registrar EE credentials.</t>
</list></t>

<figure title="Request collection (registrar-agent - pledge)" anchor="exchangesfig_uc2_1"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="520" viewBox="0 0 520 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,104 L 40,304" fill="none" stroke="black"/>
<path d="M 80,32 L 80,96" fill="none" stroke="black"/>
<path d="M 320,32 L 320,96" fill="none" stroke="black"/>
<path d="M 368,104 L 368,304" fill="none" stroke="black"/>
<path d="M 416,32 L 416,96" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 320,32 L 416,32" fill="none" stroke="black"/>
<path d="M 8,96 L 80,96" fill="none" stroke="black"/>
<path d="M 320,96 L 416,96" fill="none" stroke="black"/>
<path d="M 48,144 L 72,144" fill="none" stroke="black"/>
<path d="M 336,144 L 360,144" fill="none" stroke="black"/>
<path d="M 48,208 L 80,208" fill="none" stroke="black"/>
<path d="M 280,208 L 360,208" fill="none" stroke="black"/>
<path d="M 48,240 L 88,240" fill="none" stroke="black"/>
<path d="M 320,240 L 360,240" fill="none" stroke="black"/>
<path d="M 48,288 L 88,288" fill="none" stroke="black"/>
<path d="M 312,288 L 360,288" fill="none" stroke="black"/>
<polygon class="arrowhead" points="368,288 356,282.4 356,293.6" fill="black" transform="rotate(0,360,288)"/>
<polygon class="arrowhead" points="368,208 356,202.4 356,213.6" fill="black" transform="rotate(0,360,208)"/>
<polygon class="arrowhead" points="56,240 44,234.4 44,245.6" fill="black" transform="rotate(180,48,240)"/>
<polygon class="arrowhead" points="56,144 44,138.4 44,149.6" fill="black" transform="rotate(180,48,144)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="368" y="52">Registrar</text>
<text x="352" y="68">Agent</text>
<text x="364" y="84">(RegAgt)</text>
<text x="400" y="116">-create</text>
<text x="448" y="132">agent-signed-data</text>
<text x="112" y="148">trigger</text>
<text x="236" y="148">pledge-voucher-request</text>
<text x="204" y="164">-agent-provided-proximity-registrar-cert</text>
<text x="116" y="180">-agent-signed-data</text>
<text x="180" y="212">pledge-voucher-request</text>
<text x="396" y="212">-store</text>
<text x="440" y="212">PVR</text>
<text x="128" y="244">trigger</text>
<text x="204" y="244">enrollment</text>
<text x="280" y="244">request</text>
<text x="128" y="260">(empty)</text>
<text x="200" y="292">pledge-enrollment-request</text>
<text x="396" y="292">-store</text>
<text x="448" y="292">(PER)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+--------+                             +-----------+
| Pledge |                             | Registrar |
|        |                             | Agent     |
|        |                             | (RegAgt)  |
+--------+                             +-----------+
    |                                        |-create
    |                                        | agent-signed-data
    |<--- trigger pledge-voucher-request ----|
    |-agent-provided-proximity-registrar-cert|
    |-agent-signed-data                      |
    |                                        |
    |----- pledge-voucher-request ---------->|-store PVR
    |                                        |
    |<----- trigger enrollment request ------|
    |       (empty)                          |
    |                                        |
    |------ pledge-enrollment-request ------>|-store (PER)
    |                                        |
]]></artwork></artset></figure>

<t>Note: The registrar-agent may trigger the pledge for the PVR or the PER or both. It is expected that this will be aligned with a service technician workflow, visiting and installing each pledge.</t>

<section anchor="pledge-voucher-request-pvr-trigger"><name>Pledge-Voucher-Request (PVR) - Trigger</name>

<t>Triggering the pledge to create the PVR is done using HTTP POST on the defined pledge endpoint: "/.well-known/brski/tv"</t>

<t>The registrar-agent PVR trigger Content-Type header is: <spanx style="verb">application/json</spanx>.
Following parameters are provided in the JSON object:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: base64-encoded registrar EE TLS certificate.</t>
  <t>agent-signed-data: base64-encoded JSON-in-JWS object.</t>
</list></t>

<t>The trigger for the pledge to create a PVR is depicted in the following figure:</t>

<figure title="Representation of trigger to create PVR" anchor="pavrt"><artwork align="left"><![CDATA[
{
  "agent-provided-proximity-registrar-cert": "base64encodedvalue==",
  "agent-signed-data": "base64encodedvalue=="
}
]]></artwork></figure>

<t>The pledge provisionally accepts the agent-provided-proximity-registrar-cert, it <bcp14>SHOULD</bcp14> verify it after a voucher is received.
The pledge will be unable to verify the agent-signed-data itself as it does not possess the LDevID(RegAgt) certificate and the domain trust has not been established at this point of the communication.
It <bcp14>SHOULD</bcp14> be done, after the voucher has been received.</t>

<t>The agent-signed-data is a JSON-in-JWS object and contains the following information:</t>

<t>The header of the agent-signed-data contains:</t>

<t><list style="symbols">
  <t>alg: algorithm used for creating the object signature.</t>
  <t>kid: <bcp14>MUST</bcp14> contain the base64-encoded bytes of the SubjectKeyIdentifier (the "KeyIdentifier" OCTET STRING value), excluding the ASN.1 encoding of "OCTET STRING" of the LDevID(RegAgt) certificate.</t>
</list></t>

<t>The body of the agent-signed-data contains an "ietf-voucher-request:agent-signed-data" element (defined in <xref target="RFC8366bis"/>):</t>

<t><list style="symbols">
  <t>created-on: <bcp14>MUST</bcp14> contain the creation date and time in yang:date-and-time format.</t>
  <t>serial-number: <bcp14>MUST</bcp14> contain the product-serial-number as type string as defined in <xref target="RFC8995"/>, section 2.3.1.
The serial-number corresponds with the product-serial-number contained in the X520SerialNumber field of the IDevID certificate of the pledge.</t>
</list></t>

<figure title="Representation of agent-signed-data in General JWS Serialization syntax" anchor="asd"><artwork align="left"><![CDATA[
# The agent-signed-data in General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-voucher-request-prm:agent-signed-data)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded payload "ietf-voucher-request-prm:agent-signed-data"
  representation in JSON syntax

"ietf-voucher-request-prm:agent-signed-data": {
  "created-on": "2021-04-16T00:00:01.000Z",
  "serial-number": "callee4711"
}

# Decoded "JWS Protected Header" representation in JSON syntax
{
  "alg": "ES256",
  "kid": "base64encodedvalue=="
}
]]></artwork></figure>

</section>
<section anchor="pledge-voucher-request-pvr-response"><name>Pledge-Voucher-Request (PVR) - Response</name>

<t>Upon receiving the voucher-request trigger, the pledge <bcp14>SHALL</bcp14> construct the body of the PVR as defined in <xref target="RFC8995"/>.
It will contain additional information provided by the registrar-agent as specified in the following.
This PVR becomes a JSON-in-JWS object as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.
If the pledge is unable to construct the PVR it <bcp14>SHOULD</bcp14> respond with a HTTP error code to the registrar-agent to indicate that it is not able to create the PVR.</t>

<t>The following client error responses <bcp14>MAY</bcp14> be used:</t>

<t><list style="symbols">
  <t>400 Bad Request: if the pledge detected an error in the format of the request, e.g. missing field, wrong data types, etc. or if the request is not valid JSON even though the PVR media type was set to <spanx style="verb">application/json</spanx>.</t>
  <t>403 Forbidden: if the pledge detected that one or more security parameters from the trigger message to create the PVR were not valid, e.g., the LDevID (Reg) certificate.</t>
</list></t>

<t>The header of the PVR <bcp14>SHALL</bcp14> contain the following parameters as defined in <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t>alg: algorithm used for creating the object signature.</t>
  <t>x5c: contains the base64-encoded pledge IDevID certificate.
It may optionally contain the certificate chain for this certificate.</t>
</list></t>

<t>The payload of the PVR <bcp14>MUST</bcp14> contain the following parameters as part of the ietf-voucher-request-prm:voucher as defined in <xref target="RFC8995"/>:</t>

<t><list style="symbols">
  <t>created-on: <bcp14>SHALL</bcp14> contain the current date and time in yang:date-and-time format.
If the pledge does not have synchronized time, it <bcp14>SHALL</bcp14> use the created-on time from the agent-signed-data, received in the trigger to create a PVR.</t>
  <t>nonce: <bcp14>SHALL</bcp14> contain a cryptographically strong pseudo-random number.</t>
  <t>serial-number: <bcp14>SHALL</bcp14> contain the pledge product-serial-number as X520SerialNumber.</t>
  <t>assertion: <bcp14>SHALL</bcp14> contain the requested voucher assertion "agent-proximity".</t>
</list></t>

<t>The ietf-voucher-request:voucher is enhanced with additional parameters:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: <bcp14>MUST</bcp14> be included and contains the base64-encoded registrar EE certificate (provided as trigger parameter by the registrar-agent).</t>
  <t>agent-signed-data: <bcp14>MUST</bcp14> contain the base64-encoded agent-signed-data (as defined in <xref target="asd"/>) and provided as trigger parameter.</t>
</list></t>

<t>The enhancements of the YANG module for the ietf-voucher-request with these new leaves are defined in <xref target="RFC8366bis"/>.</t>

<t>The PVR is signed using the pledge's IDevID credential contained as x5c parameter of the JOSE header.</t>

<figure title="Representation of PVR" anchor="pvr"><artwork align="left"><![CDATA[
# The PVR in General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-voucher-request-prm:voucher)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded Payload "ietf-voucher-request-prm:voucher" Representation
  in JSON syntax
"ietf-voucher-request-prm:voucher": {
   "created-on": "2021-04-16T00:00:02.000Z",
   "nonce": "eDs++/FuDHGUnRxN3E14CQ==",
   "serial-number": "callee4711",
   "assertion": "agent-proximity",
   "agent-provided-proximity-registrar-cert": "base64encodedvalue==",
   "agent-signed-data": "base64encodedvalue=="
}

# Decoded "JWS Protected Header" Representation in JSON syntax
{
    "alg": "ES256",
    "x5c": [
      "base64encodedvalue==",
      "base64encodedvalue=="
    ],
    "typ": "voucher-jws+json"
}
]]></artwork></figure>

<t>The PVR Content-Type is defined in <xref target="I-D.ietf-anima-jws-voucher"/> as <spanx style="verb">application/voucher-jws+json</spanx>.</t>

<t>The pledge <bcp14>SHOULD</bcp14> include this Content-Type header field indicating the included media type for the PVR.
Note that this is also an indication regarding the acceptable format of the voucher response.
This format is included by the registrar as described in <xref target="exchanges_uc2_2"/>.</t>

</section>
<section anchor="pledge-enrollment-request-per-trigger"><name>Pledge-Enrollment-Request (PER) - Trigger</name>

<t>Once the registrar-agent has received the PVR it can trigger the pledge to generate a PER.
As in BRSKI the PER contains a PKCS#10, but additionally signed using the pledge's IDevID.
Note, as the initial enrollment aims to request a generic certificate, no certificate attributes are provided to the pledge.</t>

<t>Triggering the pledge to create the enrollment-request is done using HTTP POST on the defined pledge endpoint: "/.well-known/brski/te"</t>

<t>The registrar-agent PER trigger Content-Type header is: <spanx style="verb">application/json</spanx> with an empty body by default.
Note that using HTTP POST allows for an empty body, but also to provide additional data, like CSR attributes or information about the enroll type "enroll-generic-cert" or "re-enroll-generic-cert".
The "enroll-generic-cert" case is shown in <xref target="raer"/>.</t>

<figure title="Example of trigger to create a PER" anchor="raer"><artwork align="left"><![CDATA[
{
  "enroll-type" : "enroll-generic-cert"
}
]]></artwork></figure>

</section>
<section anchor="pledge-enrollment-request-per-response"><name>Pledge-Enrollment-Request (PER) - Response</name>

<t>In the following the enrollment is described as initial enrollment with an empty HTTP POST body.</t>

<t>Upon receiving the enrollment-trigger, the pledge <bcp14>SHALL</bcp14> construct the PER as authenticated self-contained object.
The CSR already assures proof of possession of the private key corresponding to the contained public key.
In addition, based on the additional signature using the IDevID, proof of identity is provided.
Here, a JOSE object is being created in which the body utilizes the YANG module ietf-ztp-types with the grouping for csr-grouping for the CSR as defined in <xref target="I-D.ietf-netconf-sztp-csr"/>.</t>

<t>Depending on the capability of the pledge, it constructs the enrollment request (PER) as plain PKCS#10.
Note, the focus in this use case is placed on PKCS#10 as PKCS#10 can be transmitted in different enrollment protocols in the infrastructure like EST, CMP, CMS, and SCEP.
If the pledge has already implemented an enrollment protocol, it may leverage that functionality for the creation of the CSR.
Note, <xref target="I-D.ietf-netconf-sztp-csr"/> also allows for inclusion of certification requests in different formats used by CMP or CMC.</t>

<t>The pledge <bcp14>SHOULD</bcp14> construct the PER as PKCS#10.
In BRSKI-PRM it <bcp14>MUST</bcp14> sign it additionally with its IDevID credentials to provide proof-of-identity bound to the PKCS#10 as described below.</t>

<t>If the pledge is unable to construct the PER it <bcp14>SHOULD</bcp14> respond with a HTTP 4xx/5xx error code to the registrar-agent to indicate that it is not able to create the PER.</t>

<t>The following 4xx client error codes <bcp14>MAY</bcp14> be used:</t>

<t><list style="symbols">
  <t>400 Bad Request: if the pledge detected an error in the format of the request or detected invalid JSON even though the PER media type was set to <spanx style="verb">application/json</spanx>.</t>
  <t>403 Forbidden: if the pledge detected that one or more security parameters (if provided) from the trigger message to create the PER are not valid.</t>
  <t>406 Not Acceptable: if the request's Accept header indicates a type that is unknown or unsupported. For example, a type other than <spanx style="verb">application/jose+json</spanx>.</t>
  <t>415 Unsupported Media Type: if the request's Content-Type header indicates a type that is unknown or unsupported. For example, a type other than 'application/json'.</t>
</list></t>

<t>A successful enrollment will result in a generic LDevID certificate for the pledge in the new domain, which can be used to request further (application specific) LDevID certificates if necessary for operation.
The registrar-agent <bcp14>SHALL</bcp14> use the endpoints specified in this document.</t>

<t><xref target="I-D.ietf-netconf-sztp-csr"/> considers PKCS#10 but also CMP and CMC as certification request format. Note that the wrapping signature is only necessary for plain PKCS#10 as other request formats like CMP and CMS support the signature wrapping as part of their own certificate request format.</t>

<t>The registrar-agent enrollment-request Content-Type header for a signature-wrapped PKCS#10 is: <spanx style="verb">application/jose+json</spanx></t>

<t>The header of the pledge enrollment-request <bcp14>SHALL</bcp14> contain the following parameter as defined in <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t>alg: algorithm used for creating the object signature.</t>
  <t>x5c: contains the base64-encoded pledge IDevID certificate.
It may optionally contain the certificate chain for this certificate.</t>
</list></t>

<t>The body of the pledge enrollment-request <bcp14>SHOULD</bcp14> contain a P10 parameter (for PKCS#10) as defined for ietf-ztp-types:p10-csr in <xref target="I-D.ietf-netconf-sztp-csr"/>:</t>

<t><list style="symbols">
  <t>P10: contains the base64-encoded PKCS#10 of the pledge.</t>
</list></t>

<t>The JOSE object is signed using the pledge's IDevID credential, which corresponds to the certificate signaled in the JOSE header.</t>

<figure title="Representation of PER" anchor="per"><artwork align="left"><![CDATA[
# The PER in General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-ztp-types)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded Payload "ietf-ztp-types" Representation in JSON Syntax
"ietf-ztp-types": {
  "p10-csr": "base64encodedvalue=="
}

# Decoded "JWS Protected Header" Representation in JSON Syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "crit":["created-on"],
  "created-on": "2022-09-13T00:00:02.000Z"
}
]]></artwork></figure>

<t>With the collected PVR and PER, the registrar-agent starts the interaction with the domain registrar.</t>

<t>The new protected header field "created-on" is introduced to reflect freshness of the PER.
The field is marked critical "crit" to ensure that it must be understood and validated by the receiver (here the domain registrar) according to section 4.1.11 of <xref target="RFC7515"/>.
It allows the registrar to verify the timely correlation between the PER and previously exchanged messages, i.e., created-on of PER &gt;= created-on of PVR &gt;= created-on of PVR trigger.</t>

<t>As the registrar-agent is intended to facilitate communication between the pledge and the domain registrar, a collection of requests from more than one pledge is possible.
This allows bulk bootstrapping of several pledges using the same connection between the registrar-agent and the domain registrar.</t>

</section>
</section>
<section anchor="exchanges_uc2_2"><name>Request Object Handling initiated by the Registrar-Agent on Registrar, MASA and Domain CA</name>

<t>The BRSKI-PRM bootstrapping exchanges between registrar-agent and domain registrar resemble the BRSKI exchanges between pledge and domain registrar (pledge-initiator-mode) with some deviations.</t>

<t>Preconditions:</t>

<t><list style="symbols">
  <t>Registrar-agent: possesses its own LDevID(RegAgt) credentials of the site domain.
In addition, it <bcp14>MAY</bcp14> possess the IDevID CA certificate of the pledge vendor/manufacturer to verify the pledge certificate in the received request messages.
It has the address of the domain registrar through configuration or by discovery, e.g., mDNS/DNSSD.
The registrar-agent has acquired one or more PVR and PER objects.</t>
  <t>Registrar: possesses the IDevID CA certificate of the pledge vendor/manufacturer and its own registrar EE credentials of the site domain.</t>
  <t>MASA: possesses its own vendor/manufacturer credentials (voucher signing key, TLS server certificate) related to pledges IDevID and <bcp14>MAY</bcp14> possess the site-specific domain CA certificate.
The latter is only necessary if the MASA needs to verify that the domain of the Registrar is a-priori authorized to enroll a particular pledge, or a particular type of pledge.
In such case is out of scope of this document how the MASA will obtain the domain CA certificate.
In other cases, a MASA may allow the pledge to enroll into an anonymous and/or yet-unknown domain and then the a-priori possession of the domain CA certificate is not needed.</t>
</list></t>

<figure title="Request processing between registrar-agent and bootstrapping services" anchor="exchangesfig_uc2_2"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="624" width="504" viewBox="0 0 504 624" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,144 L 40,608" fill="none" stroke="black"/>
<path d="M 104,32 L 104,96" fill="none" stroke="black"/>
<path d="M 152,32 L 152,96" fill="none" stroke="black"/>
<path d="M 200,104 L 200,176" fill="none" stroke="black"/>
<path d="M 200,224 L 200,256" fill="none" stroke="black"/>
<path d="M 200,320 L 200,608" fill="none" stroke="black"/>
<path d="M 248,32 L 248,96" fill="none" stroke="black"/>
<path d="M 312,32 L 312,96" fill="none" stroke="black"/>
<path d="M 352,104 L 352,288" fill="none" stroke="black"/>
<path d="M 352,416 L 352,608" fill="none" stroke="black"/>
<path d="M 384,32 L 384,96" fill="none" stroke="black"/>
<path d="M 416,32 L 416,96" fill="none" stroke="black"/>
<path d="M 456,104 L 456,352" fill="none" stroke="black"/>
<path d="M 456,400 L 456,608" fill="none" stroke="black"/>
<path d="M 496,32 L 496,96" fill="none" stroke="black"/>
<path d="M 8,32 L 104,32" fill="none" stroke="black"/>
<path d="M 152,32 L 248,32" fill="none" stroke="black"/>
<path d="M 312,32 L 384,32" fill="none" stroke="black"/>
<path d="M 416,32 L 496,32" fill="none" stroke="black"/>
<path d="M 8,96 L 104,96" fill="none" stroke="black"/>
<path d="M 152,96 L 248,96" fill="none" stroke="black"/>
<path d="M 312,96 L 384,96" fill="none" stroke="black"/>
<path d="M 416,96 L 496,96" fill="none" stroke="black"/>
<path d="M 48,176 L 88,176" fill="none" stroke="black"/>
<path d="M 144,176 L 192,176" fill="none" stroke="black"/>
<path d="M 48,240 L 64,240" fill="none" stroke="black"/>
<path d="M 176,240 L 192,240" fill="none" stroke="black"/>
<path d="M 208,320 L 304,320" fill="none" stroke="black"/>
<path d="M 360,320 L 448,320" fill="none" stroke="black"/>
<path d="M 208,336 L 272,336" fill="none" stroke="black"/>
<path d="M 384,336 L 448,336" fill="none" stroke="black"/>
<path d="M 208,400 L 288,400" fill="none" stroke="black"/>
<path d="M 368,400 L 448,400" fill="none" stroke="black"/>
<path d="M 48,416 L 80,416" fill="none" stroke="black"/>
<path d="M 160,416 L 192,416" fill="none" stroke="black"/>
<path d="M 48,448 L 64,448" fill="none" stroke="black"/>
<path d="M 168,448 L 192,448" fill="none" stroke="black"/>
<path d="M 208,480 L 248,480" fill="none" stroke="black"/>
<path d="M 304,480 L 344,480" fill="none" stroke="black"/>
<path d="M 208,496 L 224,496" fill="none" stroke="black"/>
<path d="M 328,496 L 344,496" fill="none" stroke="black"/>
<path d="M 208,528 L 224,528" fill="none" stroke="black"/>
<path d="M 328,528 L 344,528" fill="none" stroke="black"/>
<path d="M 48,544 L 64,544" fill="none" stroke="black"/>
<path d="M 176,544 L 192,544" fill="none" stroke="black"/>
<path d="M 48,576 L 64,576" fill="none" stroke="black"/>
<path d="M 176,576 L 192,576" fill="none" stroke="black"/>
<path d="M 48,592 L 64,592" fill="none" stroke="black"/>
<path d="M 176,592 L 192,592" fill="none" stroke="black"/>
<polygon class="arrowhead" points="456,336 444,330.4 444,341.6" fill="black" transform="rotate(0,448,336)"/>
<polygon class="arrowhead" points="456,320 444,314.4 444,325.6" fill="black" transform="rotate(0,448,320)"/>
<polygon class="arrowhead" points="352,496 340,490.4 340,501.6" fill="black" transform="rotate(0,344,496)"/>
<polygon class="arrowhead" points="352,480 340,474.4 340,485.6" fill="black" transform="rotate(0,344,480)"/>
<polygon class="arrowhead" points="216,528 204,522.4 204,533.6" fill="black" transform="rotate(180,208,528)"/>
<polygon class="arrowhead" points="216,480 204,474.4 204,485.6" fill="black" transform="rotate(180,208,480)"/>
<polygon class="arrowhead" points="216,400 204,394.4 204,405.6" fill="black" transform="rotate(180,208,400)"/>
<polygon class="arrowhead" points="200,576 188,570.4 188,581.6" fill="black" transform="rotate(0,192,576)"/>
<polygon class="arrowhead" points="200,448 188,442.4 188,453.6" fill="black" transform="rotate(0,192,448)"/>
<polygon class="arrowhead" points="200,240 188,234.4 188,245.6" fill="black" transform="rotate(0,192,240)"/>
<polygon class="arrowhead" points="200,176 188,170.4 188,181.6" fill="black" transform="rotate(0,192,176)"/>
<polygon class="arrowhead" points="56,592 44,586.4 44,597.6" fill="black" transform="rotate(180,48,592)"/>
<polygon class="arrowhead" points="56,544 44,538.4 44,549.6" fill="black" transform="rotate(180,48,544)"/>
<polygon class="arrowhead" points="56,416 44,410.4 44,421.6" fill="black" transform="rotate(180,48,416)"/>
<polygon class="arrowhead" points="56,176 44,170.4 44,181.6" fill="black" transform="rotate(180,48,176)"/>
<g class="text">
<text x="60" y="52">Registrar-</text>
<text x="188" y="52">Domain</text>
<text x="348" y="52">Domain</text>
<text x="452" y="52">Vendor</text>
<text x="40" y="68">agent</text>
<text x="200" y="68">Registrar</text>
<text x="332" y="68">CA</text>
<text x="456" y="68">Service</text>
<text x="52" y="84">(RegAgt)</text>
<text x="192" y="84">(JRC)</text>
<text x="452" y="84">(MASA)</text>
<text x="40" y="116">|</text>
<text x="412" y="116">Internet</text>
<text x="36" y="132">[voucher</text>
<text x="80" y="132">+</text>
<text x="136" y="132">enrollment]</text>
<text x="20" y="148">[PVR</text>
<text x="64" y="148">PER</text>
<text x="120" y="148">available</text>
<text x="168" y="148">]</text>
<text x="116" y="180">mTLS</text>
<text x="164" y="196">[Reg-Agt</text>
<text x="256" y="196">authenticated</text>
<text x="152" y="212">and</text>
<text x="220" y="212">authorized?]</text>
<text x="120" y="244">Voucher-Req</text>
<text x="120" y="260">(PVR)</text>
<text x="164" y="276">[Reg-Agt</text>
<text x="252" y="276">authorized?]</text>
<text x="160" y="292">[accept</text>
<text x="228" y="292">device?]</text>
<text x="164" y="308">[contact</text>
<text x="232" y="308">vendor]</text>
<text x="332" y="324">mTLS</text>
<text x="328" y="340">Voucher-Req</text>
<text x="328" y="356">(RVR)</text>
<text x="388" y="372">[extract</text>
<text x="464" y="372">DomainID]</text>
<text x="384" y="388">[update</text>
<text x="440" y="388">audit</text>
<text x="484" y="388">log]</text>
<text x="328" y="404">Voucher</text>
<text x="120" y="420">Voucher</text>
<text x="116" y="452">Enroll-Req</text>
<text x="112" y="468">(PER)</text>
<text x="276" y="484">mTLS</text>
<text x="276" y="500">Enroll-Req</text>
<text x="264" y="516">(RER)</text>
<text x="280" y="532">Enroll-Resp</text>
<text x="120" y="548">Enroll-Resp</text>
<text x="120" y="580">caCerts-Req</text>
<text x="120" y="596">caCerts-Res</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+-----------+     +-----------+       +--------+   +---------+
| Registrar-|     | Domain    |       | Domain |   | Vendor  |
| agent     |     | Registrar |       | CA     |   | Service |
| (RegAgt)  |     |  (JRC)    |       |        |   | (MASA)  |
+-----------+     +-----------+       +--------+   +---------+
    |                   |                  |   Internet |
[voucher + enrollment]  |                  |            |
[PVR, PER available ]   |                  |            |
    |                   |                  |            |
    |<----- mTLS ------>|                  |            |
    |           [Reg-Agt authenticated     |            |
    |            and authorized?]          |            |
    |                   |                  |            |
    |--- Voucher-Req -->|                  |            |
    |       (PVR)       |                  |            |
    |           [Reg-Agt authorized?]      |            |
    |           [accept device?]           |            |
    |           [contact vendor]                        |
    |                   |------------- mTLS ----------->|
    |                   |--------- Voucher-Req -------->|
    |                   |             (RVR)             |
    |                   |                   [extract DomainID]
    |                   |                   [update audit log]
    |                   |<---------- Voucher -----------|
    |<---- Voucher -----|                  |            |
    |                   |                  |            |
    |--- Enroll-Req --->|                  |            |
    |      (PER)        |                  |            |
    |                   |<----- mTLS ----->|            |
    |                   |--- Enroll-Req -->|            |
    |                   |     (RER)        |            |
    |                   |<-- Enroll-Resp---|            |
    |<-- Enroll-Resp ---|                  |            |
    |                   |                  |            |
    |--- caCerts-Req -->|                  |            |
    |<-- caCerts-Res ---|                  |            |
    |                   |                  |            |
]]></artwork></artset></figure>

<t>The registrar-agent establishes a TLS connection to the registrar.
As already stated in <xref target="RFC8995"/>, the use of TLS 1.3 (or newer) is encouraged.
TLS 1.2 or newer is <bcp14>REQUIRED</bcp14> on the registrar-agent side.
TLS 1.3 (or newer) <bcp14>SHOULD</bcp14> be available on the registrar, but TLS 1.2 <bcp14>MAY</bcp14> be used.
TLS 1.3 (or newer) <bcp14>SHOULD</bcp14> be available on the MASA, but TLS 1.2 <bcp14>MAY</bcp14> be used.</t>

<section anchor="connection-establishment-registrar-agent-to-registrar"><name>Connection Establishment (Registrar-Agent to Registrar)</name>

<t>In contrast to BRSKI <xref target="RFC8995"/> TLS client authentication to the registrar is achieved by using registrar-agent LDevID(RegAgt) credentials instead of pledge IDevID credentials.
Consequently BRSKI (pledge-initiator-mode) is distinguishable from BRSKI-PRM (pledge-responder-mode) by the registrar.
The registrar <bcp14>SHOULD</bcp14> verify that the registrar-agent is authorized to establish a connection to the registrar by TLS client authentication using LDevID(RegAgt) credentials.
If the connection from registrar-agent to registrar is established, the authorization <bcp14>SHALL</bcp14> be verified again based on agent-signed-data contained in the PVR.
This ensures that the pledge has been triggered by an authorized registrar-agent.</t>

<t>The registrar can receive request objects in different formats as defined in <xref target="RFC8995"/>.
Specifically, the registrar will receive JSON-in-JWS objects generated by the pledge for voucher-request and enrollment-request (instead of BRSKI voucher-request as CMS-signed JSON and enrollment-request as PKCS#10).</t>

<t>The registrar-agent <bcp14>SHALL</bcp14> send the PVR by HTTP POST to the registrar endpoint: "/.well-known/brski/requestvoucher"</t>

<t>The Content-Type header field for JSON-in-JWS PVR is: <spanx style="verb">application/voucher-jws+json</spanx> (see <xref target="pvr"/> for the content definition), as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

<t>The registrar-agent <bcp14>SHOULD</bcp14> set the Accept field in the request-header indicating the acceptable Content-Type for the voucher-response.
The voucher-response Content-Type header field <bcp14>SHOULD</bcp14> be set to <spanx style="verb">application/voucher-jws+json</spanx> as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

</section>
<section anchor="pledge-voucher-request-pvr-processing-by-registrar"><name>Pledge-Voucher-Request (PVR) Processing by Registrar</name>

<t>After receiving the PVR from registrar-agent, the registrar <bcp14>SHALL</bcp14> perform the verification as defined in section 5.3 of <xref target="RFC8995"/>.
In addition, the registrar <bcp14>SHALL</bcp14> verify the following parameters from the PVR:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: <bcp14>MUST</bcp14> contain registrar's own registrar EE certificate to ensure the registrar in proximity of the registrar-agent is the desired registrar for this PVR.</t>
  <t>agent-signed-data: The registrar <bcp14>MUST</bcp14> verify that the agent provided data has been signed with the LDevID(RegAgt) credentials indicated in the "kid" JOSE header parameter.
The registrar <bcp14>MUST</bcp14> verify that the LDevID(ReAgt) certificate, corresponding to the signature, is still valid.
If the certificate is already expired, the registrar <bcp14>SHALL</bcp14> reject the request.
Validity of used signing certificates at the time of signing the agent-signed-data is necessary to avoid that a rogue registrar-agent generates agent-signed-data objects to onboard arbitrary pledges at a later point in time, see also <xref target="sec_cons_reg-agt"/>.
The registrar <bcp14>MUST</bcp14> fetch the LDevID(RegAgt) certificate, based on the provided SubjectKeyIdentifier (SKID) contained in the "kid" header parameter of the agent-signed-data, and perform this verification.
This requires, that the registrar can fetch the LDevID(RegAgt) certificate data (including intermediate CA certificates if existent) based on the SKID.</t>
</list></t>

<t>If the registrar is unable to validate the PVR it <bcp14>SHOULD</bcp14> respond with a HTTP 4xx/5xx error code to the registrar-agent.</t>

<t>The following 4xx client error codes <bcp14>SHOULD</bcp14> be used:</t>

<t><list style="symbols">
  <t>403 Forbidden: if the registrar detected that one or more security related parameters are not valid.</t>
  <t>404 Not Found status code if the pledge provided information could not be used with automated allowance, as described in section 5.3 of <xref target="RFC8995"/>.</t>
  <t>406 Not Acceptable: if the Content-Type indicated by the Accept header is unknown or unsupported.</t>
</list></t>

<t>If the validation succeeds, the registrar <bcp14>SHOULD</bcp14> accept the PVR to join the domain as defined in section 5.3 of <xref target="RFC8995"/>.
The registrar then establishes a TLS connection to MASA as described in section 5.4 of <xref target="RFC8995"/> to obtain a voucher for the pledge.</t>

</section>
<section anchor="registrar-voucher-request-rvr-processing-registrar-to-masa"><name>Registrar-Voucher-Request (RVR) Processing (Registrar to MASA)</name>

<t>The registrar <bcp14>SHALL</bcp14> construct the payload of the RVR as defined in <xref target="RFC8995"/>.
The RVR encoding <bcp14>SHALL</bcp14> be JSON-in-JWS as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

<t>The header of the RVR <bcp14>SHALL</bcp14> contain the following parameter as defined for JWS <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t>alg: algorithm used to create the object signature</t>
  <t>x5c: base64-encoded registrar LDevID certificate(s)
(It optionally contains the certificate chain for this certificate)</t>
</list></t>

<t>The payload of the RVR <bcp14>MUST</bcp14> contain the following parameter as part of the voucher-request as defined in <xref target="RFC8995"/>:</t>

<t><list style="symbols">
  <t>created-on: current date and time in yang:date-and-time format of RVR creation</t>
  <t>nonce: copied from the PVR</t>
  <t>serial-number: product-serial-number of pledge.
The registrar <bcp14>MUST</bcp14> verify that the IDevID certificate subject serialNumber of the pledge (X520SerialNumber) matches the serial-number value in the PVR.
In addition, it <bcp14>MUST</bcp14> be equal to the serial-number value contained in the agent-signed data of PVR.</t>
  <t>assertion: voucher assertion requested by the pledge (agent-proximity).
The registrar provides this information to assure successful verification of agent proximity based on the agent-signed-data.</t>
  <t>prior-signed-voucher-request: PVR as in <xref target="RFC8995"/></t>
</list></t>

<t>The RVR <bcp14>MUST</bcp14> be enhanced with the following parameter, when the assertion "agent-proximity" is requested, as defined in <xref target="RFC8366bis"/>:</t>

<t><list style="symbols">
  <t>agent-sign-cert: LDevID(RegAgt) certificate or the LDevID(RegAgt) certificate including certificate chain.
In the context of this document it is a JSON array of base64encoded certificate information and handled in the same way as x5c header objects.</t>
</list></t>

<t>If only a single object is contained in the x5c it <bcp14>MUST</bcp14> be the base64-encoded LDevID(RegAgt) certificate.
If multiple certificates are included in the x5c, the first <bcp14>MUST</bcp14> be the base64-encoded LDevID(RegAgt) certificate.</t>

<t>The MASA uses this information for verification that the registrar-agent is in proximity to the registrar to state the corresponding assertion "agent-proximity".</t>

<t>The object is signed using the registrar EE credentials, which corresponds to the certificate referenced in the JOSE header.</t>

<figure title="Representation of RVR" anchor="rvr"><artwork align="left"><![CDATA[
# The RVR in General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-voucher-request-prm:voucher)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded payload "ietf-voucher-request-prm:voucher" representation
  in JSON syntax
"ietf-voucher-request-prm:voucher": {
   "created-on": "2022-01-04T02:37:39.235Z",
   "nonce": "eDs++/FuDHGUnRxN3E14CQ==",
   "serial-number": "callee4711",
   "assertion": "agent-proximity",
   "prior-signed-voucher-request": "base64encodedvalue==",
   "agent-sign-cert": [
     "base64encodedvalue==",
     "base64encodedvalue==",
     "..."
   ]
}

# Decoded "JWS Protected Header" representation in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "typ": "voucher-jws+json"
}
]]></artwork></figure>

<t>The registrar <bcp14>SHALL</bcp14> send the RVR to the MASA endpoint by HTTP POST: "/.well-known/brski/requestvoucher"</t>

<t>The RVR Content-Type header field is defined in <xref target="I-D.ietf-anima-jws-voucher"/> as: <spanx style="verb">application/voucher-jws+json</spanx></t>

<t>The registrar <bcp14>SHOULD</bcp14> set the Accept header of the RVR indicating the desired media type for the voucher-response.
The media type is <spanx style="verb">application/voucher-jws+json</spanx> as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

<t>Once the MASA receives the RVR it <bcp14>SHALL</bcp14> perform the verification as described in section 5.5 in <xref target="RFC8995"/>.</t>

<t>In addition, the following processing <bcp14>SHALL</bcp14> be performed for PVR contained in RVR "prior-signed-voucher-request" field:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: The MASA <bcp14>MAY</bcp14> verify that this field contains the registrar EE certificate.
If so, it <bcp14>MUST</bcp14> correspond to the registrar EE credentials used to sign the RVR.
Note: Correspond here relates to the case that a single registrar EE certificate is used or that different registrar EE certificates are used, which are issued by the same CA.</t>
  <t>agent-signed-data: The MASA <bcp14>MAY</bcp14> verify this data to issue "agent-proximity" assertion.
If so, the agent-signed-data <bcp14>MUST</bcp14> contain the pledge product-serial-number, contained in the "serial-number" field of the PVR (from "prior-signed-voucher-request" field) and also in "serial-number" field of the RVR.
The LDevID(RegAgt) certificate to be used for signature verification is identified by the "kid" parameter of the JOSE header.
If the assertion "agent-proximity" is requested, the RVR <bcp14>MUST</bcp14> contain the corresponding LDevID(RegAgt) certificate data in the "agent-sign-cert" field of the RVR.
It <bcp14>MUST</bcp14> be verified by the MASA to the same domain CA as the registrar EE certificate.
If the "agent-sign-cert" field is not set, the MASA <bcp14>MAY</bcp14> state a lower level assertion value, e.g.: "logged" or "verified".
Note: Sub-CA certificate(s) <bcp14>MUST</bcp14> also be carried by "agent-sign-cert", in case the LDevID(RegAgt) certificate is issued by a sub-CA and not the domain CA known to the MASA.
As the "agent-sign-cert" field is defined as array (x5c), it can handle multiple certificates.</t>
</list></t>

<t>If validation fails, the MASA <bcp14>SHOULD</bcp14> respond with an HTTP 4xx client error status code to the registrar.
The HTTP error status codes are kept the same as defined in section 5.6 of <xref target="RFC8995"/> and comprise the codes: 403, 404, 406, and 415.</t>

</section>
<section anchor="voucher-issuance-by-masa"><name>Voucher Issuance by MASA</name>

<t>The expected voucher-response format for BRSKI-PRM (pledge-responder-mode) <spanx style="verb">application/voucher-jws+json</spanx> as defined in <xref target="I-D.ietf-anima-jws-voucher"/> <bcp14>SHOULD</bcp14> be applied.
If the MASA detects that the Accept header of the PVR does not match the <spanx style="verb">application/voucher-jws+json</spanx> it <bcp14>SHOULD</bcp14> respond with the HTTP status code 406 Not Acceptable as the pledge will not be able to parse the response.
The voucher syntax is described in detail by <xref target="RFC8366"/>. <xref target="MASA-vr"/> shows an example of the contents of a voucher.</t>

<figure title="Representation of MASA issued voucher" anchor="MASA-vr"><artwork align="left"><![CDATA[
# The MASA issued voucher in General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-voucher:voucher)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded payload "ietf-voucher:voucher" representation in
  JSON syntax
"ietf-voucher:voucher": {
  "assertion": "agent-proximity",
  "serial-number": "callee4711",
  "nonce": "base64encodedvalue==",
  "created-on": "2022-01-04T00:00:02.000Z",
  "pinned-domain-cert": "base64encodedvalue=="
}

# Decoded "JWS Protected Header" representation in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "typ": "voucher-jws+json"
}
]]></artwork></figure>

<t>The MASA returns the voucher-response (voucher) to the registrar.</t>

</section>
<section anchor="exchanges_uc2_2_vs"><name>MASA issued Voucher Processing by Registrar</name>

<t>After receiving the voucher the registrar <bcp14>SHOULD</bcp14> evaluate it for transparency and logging purposes as outlined in section 5.6 of <xref target="RFC8995"/>.
The registrar <bcp14>MUST</bcp14> add an additional signature to the MASA provided voucher using its registrar credentials.
The signature is created by signing the original "JWS Payload" produced by MASA and the registrar added "JWS Protected Header" using the registrar EE credentials (see <xref target="RFC7515"/>, section 5.2 point 8.
The x5c component of the "JWS Protected Header" <bcp14>MUST</bcp14> contain the registrar EE certificate as well as potential intermediate CA certificates up to the pinned domain certificate.
The pinned domain certificate is already contained in the voucher payload ("pinned-domain-cert").</t>

<t>This signature provides a proof of possession of the private key corresponding to the registrar EE certificate the pledge received in the trigger for the PVR (see <xref target="pavrt"/>).
The registrar <bcp14>MUST</bcp14> use the same registrar EE credentials used for authentication in the TLS handshake to authenticate towards the registrar-agent.
This ensures that the same registrar EE certificate can be used to verify the signature as transmitted in the voucher request as also transferred in the PVR in the "agent-provided-proximity-registrar-cert".
<xref target="MASA-REG-vr"/> below provides an example of the voucher with two signatures.</t>

<figure title="Representation of MASA issued voucher with additional registrar signature" anchor="MASA-REG-vr"><artwork align="left"><![CDATA[
# The MASA issued voucher with additional registrar signature in
  General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-voucher:voucher)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header (MASA)))",
      "signature": "base64encodedvalue=="
    },
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header (Reg)))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded payload "ietf-voucher:voucher" representation in
  JSON syntax
"ietf-voucher:voucher": {
   "assertion": "agent-proximity",
   "serial-number": "callee4711",
   "nonce": "base64encodedvalue==",
   "created-on": "2022-01-04T00:00:02.000Z",
   "pinned-domain-cert": "base64encodedvalue=="
}

# Decoded "JWS Protected Header (MASA)" representation in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "typ": "voucher-jws+json"
}

# Decoded "JWS Protected Header (Reg)" representation in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

<t>Depending on the security policy of the operator, this signature can also be interpreted by the pledge as explicit authorization of the registrar to install the contained trust anchor.
The registrar sends the voucher to the registrar-agent.</t>

</section>
<section anchor="exchanges_uc2_2_per"><name>Pledge-Enrollment-Request (PER) Processing (Registrar-Agent to Registrar)</name>

<t>After receiving the voucher, the registrar-agent sends the PER to the registrar.
Deviating from BRSKI the PER is not a raw PKCS#10.
As the registrar-agent is involved in the exchange, the PKCS#10 is wrapped in a JWS object by the pledge and signed with pledge's IDevID to ensure proof-of-identity as outlined in <xref target="per"/>.</t>

<t>EST <xref target="RFC7030"/> standard endpoints (/simpleenroll, /simplereenroll, /serverkeygen, /cacerts) on the registrar cannot be used for BRSKI-PRM.
This is caused by the utilization of signature wrapped-objects in BRSKI-PRM.
As EST requires to sent a raw PKCS#10 request to e.g., "/.well-known/est/simpleenroll" endpoint, this document makes an enhancement by utilizing EST but with the exception to transport a signature wrapped PKCS#10 request.
Therefore a new endpoint for BRSKI-PRM on the registrar is defined as "/.well-known/brski/requestenroll"</t>

<t>The Content-Type header of PER is: <spanx style="verb">application/jose+json</spanx>.</t>

<t>This is a deviation from the Content-Type header values used in <xref target="RFC7030"/> and results in additional processing at the domain registrar (as EST server).
Note, the registrar is already aware that the bootstrapping is performed in a pledge-responder-mode due to the use of the LDevID(RegAgt) certificate for TLS and the provided PVR as JSON-in-JWS object.</t>

<t><list style="symbols">
  <t>If the registrar receives a PER with Content-Type header: <spanx style="verb">application/jose+json</spanx>, it <bcp14>MUST</bcp14> verify the wrapping signature using the certificate indicated in the JOSE header.</t>
  <t>The registrar verifies that the pledge's certificate (here IDevID), carried in "x5c" header field, is accepted to join the domain after successful validation of the PVR.</t>
  <t>If both succeed, the registrar utilizes the PKCS#10 request contained in the JWS object body as "P10" parameter of "ietf-sztp-csr:csr" for further processing of the enrollment request with the corresponding domain CA.
It creates a registrar-enrollment-request (RER) by utilizing the protocol expected by the domain CA.
The domain registrar may either directly forward the provided PKCS#10 request to the CA or provide additional information about attributes to be included by the CA into the requested LDevID certificate.
The approach of sending this information to the CA depends on the utilized certificate management protocol between the RA and the CA and is out of scope for this document.</t>
</list></t>

<t>The registrar-agent <bcp14>SHALL</bcp14> send the PER to the registrar by HTTP POST to the endpoint: "/.well-known/brski/requestenroll"</t>

<t>The registrar <bcp14>SHOULD</bcp14> respond with an HTTP 200 OK in the success case or fail with HTTP 4xx/5xx status codes as defined by the HTTP standard.</t>

<t>A successful interaction with the domain CA will result in a pledge LDevID certificate, which is then forwarded by the registrar to the registrar-agent using the Content-Type header: <spanx style="verb">application/pkcs7-mime</spanx>.</t>

</section>
<section anchor="exchanges_uc2_2_wca"><name>Request Wrapped-CA-certificate(s) (Registrar-Agent to Registrar)</name>

<t>As the pledge will verify it own certificate LDevID certificate when received, it also needs the corresponding CA certificates.
This is done in EST <xref target="RFC7030"/> using the "/.well-known/est/cacerts" endpoint, which provides the CA certificates over a TLS protected connection.
BRSKI-PRM requires a signature wrapped CA certificate object, to avoid that the pledge can be provided with arbitrary CA certificates in an authorized way.
The registrar signed CA certificate object will allow the pledge to verify the authorization to install the received CA certificate(s).
As the CA certificate(s) are provided to the pledge after the voucher, the pledge has the required information (the domain certificate) to verify the wrapped CA certificate object.</t>

<t>To support registrar-agents requesting a signature wrapped CA certificate(s) object, a new endpoint for BRSKI-PRM is defined on the registrar: "/.well-known/brski/wrappedcacerts"</t>

<t>The registrar-agent <bcp14>SHALL</bcp14> requests the EST CA trust anchor database information (in form of CA certificates) by HTTP GET.</t>

<t>The Content-Type header of the response <bcp14>SHALL</bcp14> be: <spanx style="verb">application/jose+json</spanx>.</t>

<t>This is a deviation from the Content-Type header values used in EST <xref target="RFC7030"/> and results in additional processing at the domain registrar (as EST server).
The additional processing is to sign the CA certificate(s) information using the registrar EE credentials.
This results in a signed CA certificate(s) object (JSON-in-JWS), the CA certificates are provided as base64 encoded "x5b" in the JWS payload.</t>

<figure title="Representation of CA certificate(s) data with additional registrar signature" anchor="PCAC"><artwork align="left"><![CDATA[
# The CA certificates data with additional registrar signature in
  General JWS Serialization syntax
{
  "payload": "BASE64URL(certs)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded payload "certs" representation in JSON syntax
{
  "x5b": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}


# Decoded "JWS Protected Header" representation in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

</section>
</section>
<section anchor="exchanges_uc2_3"><name>Response Object Supply by Registrar-Agent to Pledge</name>

<t>It is assumed that the registrar-agent already obtained the bootstrapping response objects from the domain registrar and can supply them to the pledge:</t>

<t><list style="symbols">
  <t>voucher-response - Voucher (from MASA via Registrar)</t>
  <t>wrapped-CA-certificate(s)-response - CA certificates</t>
  <t>enrollment-response - LDevID(Pledge) certificate (from CA via Registrar)</t>
</list></t>

<t>The registrar-agent will re-connect to the pledge.
To contact the pledge, it may either discover the pledge as described in <xref target="discovery_uc2_ppa"/> or use stored information from the first contact with the pledge.</t>

<t>Preconditions in addition to <xref target="exchanges_uc2_2"/>:</t>

<t><list style="symbols">
  <t>Registrar-agent: possesses voucher and LDevID certificate and optionally CA certificates.</t>
</list></t>

<figure title="Responses and status handling between pledge and registrar-agent" anchor="exchangesfig_uc2_3"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="528" viewBox="0 0 528 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,104 L 40,336" fill="none" stroke="black"/>
<path d="M 80,32 L 80,96" fill="none" stroke="black"/>
<path d="M 280,32 L 280,96" fill="none" stroke="black"/>
<path d="M 328,144 L 328,336" fill="none" stroke="black"/>
<path d="M 376,32 L 376,96" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 280,32 L 376,32" fill="none" stroke="black"/>
<path d="M 8,96 L 80,96" fill="none" stroke="black"/>
<path d="M 280,96 L 376,96" fill="none" stroke="black"/>
<path d="M 48,160 L 104,160" fill="none" stroke="black"/>
<path d="M 240,160 L 320,160" fill="none" stroke="black"/>
<path d="M 48,192 L 112,192" fill="none" stroke="black"/>
<path d="M 248,192 L 320,192" fill="none" stroke="black"/>
<path d="M 48,224 L 88,224" fill="none" stroke="black"/>
<path d="M 296,224 L 320,224" fill="none" stroke="black"/>
<path d="M 48,256 L 72,256" fill="none" stroke="black"/>
<path d="M 304,256 L 320,256" fill="none" stroke="black"/>
<path d="M 48,288 L 112,288" fill="none" stroke="black"/>
<path d="M 240,288 L 320,288" fill="none" stroke="black"/>
<path d="M 48,320 L 72,320" fill="none" stroke="black"/>
<path d="M 296,320 L 320,320" fill="none" stroke="black"/>
<polygon class="arrowhead" points="328,288 316,282.4 316,293.6" fill="black" transform="rotate(0,320,288)"/>
<polygon class="arrowhead" points="328,192 316,186.4 316,197.6" fill="black" transform="rotate(0,320,192)"/>
<polygon class="arrowhead" points="56,320 44,314.4 44,325.6" fill="black" transform="rotate(180,48,320)"/>
<polygon class="arrowhead" points="56,256 44,250.4 44,261.6" fill="black" transform="rotate(180,48,256)"/>
<polygon class="arrowhead" points="56,224 44,218.4 44,229.6" fill="black" transform="rotate(180,48,224)"/>
<polygon class="arrowhead" points="56,160 44,154.4 44,165.6" fill="black" transform="rotate(180,48,160)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="332" y="52">Registrar-</text>
<text x="312" y="68">Agent</text>
<text x="324" y="84">(RegAgt)</text>
<text x="284" y="116">[voucher</text>
<text x="336" y="116">and</text>
<text x="400" y="116">enrollment]</text>
<text x="292" y="132">[responses</text>
<text x="380" y="132">available]</text>
<text x="140" y="164">supply</text>
<text x="200" y="164">voucher</text>
<text x="152" y="196">voucher</text>
<text x="212" y="196">status</text>
<text x="344" y="196">-</text>
<text x="376" y="196">store</text>
<text x="380" y="212">pledge</text>
<text x="440" y="212">voucher</text>
<text x="500" y="212">status</text>
<text x="124" y="228">supply</text>
<text x="164" y="228">CA</text>
<text x="228" y="228">certificates</text>
<text x="108" y="260">supply</text>
<text x="180" y="260">enrollment</text>
<text x="260" y="260">response</text>
<text x="148" y="292">enroll</text>
<text x="204" y="292">status</text>
<text x="344" y="292">-</text>
<text x="376" y="292">store</text>
<text x="380" y="308">pledge</text>
<text x="436" y="308">enroll</text>
<text x="492" y="308">status</text>
<text x="108" y="324">supply</text>
<text x="168" y="324">CAcerts</text>
<text x="244" y="324">(optional)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+--------+                        +-----------+
| Pledge |                        | Registrar-|
|        |                        | Agent     |
|        |                        | (RegAgt)  |
+--------+                        +-----------+
    |                          [voucher and enrollment]
    |                          [responses available]
    |                                   |
    |<------- supply voucher -----------|
    |                                   |
    |--------- voucher status --------->| - store
    |                                   |   pledge voucher status
    |<----- supply CA certificates  ----|
    |                                   |
    |<--- supply enrollment response ---|
    |                                   |
    |--------- enroll status ---------->| - store
    |                                   |   pledge enroll status
    |<--- supply CAcerts (optional) ----|
    |                                   |

]]></artwork></artset></figure>
<t>The content of the response objects is defined by the voucher <xref target="RFC8366"/> and the certificate <xref target="RFC5280"/>.</t>

<t>The registrar-agent provides the information via distinct pledge endpoints as following.</t>

<section anchor="pledge-voucher-response-processing"><name>Pledge: Voucher Response Processing</name>

<t>The registrar-agent <bcp14>SHALL</bcp14> send the voucher-response to the pledge by HTTP POST to the endpoint: "/.well-known/brski/sv".</t>

<t>The registrar-agent voucher-response Content-Type header is <spanx style="verb">application/voucher-jws+json</spanx> and contains the voucher as provided by the MASA. An example is given in <xref target="MASA-vr"/> for a MASA  signed voucher and in <xref target="MASA-REG-vr"/> for the voucher with the additional signature of the registrar.</t>

<t>A nonceless voucher may be accepted as in <xref target="RFC8995"/> and may be allowed by a manufacture's pledge implementation.</t>

<t>To perform the validation of multiple signatures on the voucher object, the pledge <bcp14>SHALL</bcp14> perform the signature verification in the following order:</t>

<t><list style="numbers">
  <t>Verify MASA signature as described in section 5.6.1 in <xref target="RFC8995"/></t>
  <t>Install trust anchor contained in the voucher ("pinned-domain-cert")  provisionally</t>
  <t>Verify registrar signature as described in section 5.6.1 in <xref target="RFC8995"/>, but take the registrar certificate instead of the MASA certificate for the verification</t>
  <t>Validate the registrar certificate received in the agent-provided-proximity-registrar-cert in the pledge-voucher-request trigger request (in the field "agent-provided-proximity-registrar-cert").</t>
</list></t>

<t>If all steps stated above have been performed successfully, the pledge <bcp14>SHALL</bcp14> terminate the "PROVISIONAL accept" state for the domain trust anchor and the registrar EE certificate.</t>

<t>If an error occurs during the verification and validation of the voucher, this <bcp14>SHALL</bcp14> be reported in the reason field of the pledge voucher status.</t>

</section>
<section anchor="pledge-voucher-status-telemetry"><name>Pledge: Voucher Status Telemetry</name>

<t>After voucher verification and validation the pledge <bcp14>MUST</bcp14> reply with a status telemetry message as defined in section 5.7 of <xref target="RFC8995"/>.
The pledge generates the voucher-status and provides it as signed JSON-in-JWS object in response to the registrar-agent.</t>

<t>The response has the Content-Type <spanx style="verb">application/jose+json</spanx> and is signed using the IDevID of the pledge as shown in <xref target="vstat"/>.
As the reason field is optional (see <xref target="RFC8995"/>), it <bcp14>MAY</bcp14> be omitted in case of success.</t>

<figure title="Representation of pledge voucher status telemetry" anchor="vstat"><artwork align="left"><![CDATA[
# The "pledge-voucher-status" telemetry in general JWS
  serialization syntax
{
  "payload": "BASE64URL(pledge-voucher-status)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded payload "pledge-voucher-status" representation in JSON
  syntax
{
  "version": 1,
  "status": true,
  "reason": "Voucher successfully processed",
  "reason-context": {
    "additional": "JSON"
  }
}

# Decoded "JWS Protected Header" representation in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

</section>
<section anchor="pledge-wrapped-ca-certificates-processing"><name>Pledge: Wrapped-CA-Certificate(s) Processing</name>

<t>The registrar-agent <bcp14>SHALL</bcp14> provide the set of CA certificates requested from the registrar to the pledge by HTTP POST to the endpoint: "/.well-known/brski/cc".</t>

<t>As the CA certificate provisioning is crucial from a security perspective, this provisioning <bcp14>SHALL</bcp14> only be done, if the voucher-response has been successfully processed by pledge.</t>

<t>The supply CA certificates message has the Content-Type <spanx style="verb">application/jose+json</spanx> and is signed using the credential of the registrar pledge as shown in <xref target="PCAC"/>.</t>

<t>The CA certificates are provided as base64 encoded "x5b".
The pledge <bcp14>SHALL</bcp14> install the received CA certificates as trust anchor after successful verification of the registrar's signature.</t>

<t>The following 4xx client error codes <bcp14>SHOULD</bcp14> be used by the pledge:</t>

<t><list style="symbols">
  <t>403 Forbidden: if the validation of the wrapping signature or another security check fails.</t>
  <t>415 Unsupported Media Type: if the Content-Type of the request is in an unknown or unsupported format.</t>
  <t>400 Bad Request: if the pledge detects errors in the encoding of the payload.</t>
</list></t>

</section>
<section anchor="pledge-enrollment-response-processing"><name>Pledge: Enrollment Response Processing</name>

<t>The registrar-agent <bcp14>SHALL</bcp14> send the enroll-response to the pledge by HTTP POST to the endpoint: "/.well-known/brski/se".</t>

<t>The registrar-agent enroll-response Content-Type header, when using EST <xref target="RFC7030"/> as enrollment protocol between the registrar-agent and the infrastructure is: <spanx style="verb">application/pkcs7-mime</spanx>.
Note: It only contains the LDevID certificate for the pledge, not the certificate chain.</t>

<t>Upon reception, the pledge <bcp14>SHALL</bcp14> verify the received LDevID certificate.
The pledge <bcp14>SHALL</bcp14> generate the enroll status and provide it in the response to the registrar-agent.
If the verification of the LDevID certificate succeeds, the status <bcp14>SHALL</bcp14> be set to true, otherwise to FALSE.</t>

</section>
<section anchor="pledge-enrollment-status-telemetry"><name>Pledge: Enrollment Status Telemetry</name>

<t>The pledge <bcp14>MUST</bcp14> reply with a status telemetry message as defined in section 5.9.4 of <xref target="RFC8995"/>.
As for the other objects, the enroll-status is signed and results in a JSON-in-JWS object.
If the pledge verified the received LDevID certificate successfully it <bcp14>SHALL</bcp14> sign the response using its new LDevID credentials as shown in <xref target="estat"/>.
In the failure case, the pledge <bcp14>SHALL</bcp14> use the available IDevID credentials.
As the reason field is optional, it <bcp14>MAY</bcp14> be omitted in case of success.</t>

<t>The response has the Content-Type <spanx style="verb">application/jose+json</spanx>.</t>

<figure title="Representation of pledge enroll status telemetry" anchor="estat"><artwork align="left"><![CDATA[
# The "pledge-enroll-status" telemetry in General JWS Serialization
  syntax
{
  "payload": "BASE64URL(pledge-enroll-status)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded payload "pledge-enroll-status" representation in
  JSON syntax
{
  "version": 1,
  "status": true,
  "reason": "Enrollment response successfully processed",
  "reason-context": {
    "additional": "JSON"
  }
}

# Decoded "JWS Protected Header" representation in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

<t>Once the registrar-agent has collected the information, it can connect to the registrar to provide it with the status responses.</t>

</section>
<section anchor="exchanges_uc2_4"><name>Telemetry Voucher Status and Enroll Status Handling (Registrar-Agent to Domain Registrar)</name>

<t>The following description requires that the registrar-agent has collected the status information from the pledge.
It <bcp14>SHALL</bcp14> provide the status information to the registrar for further processing.</t>

<t>Preconditions in addition to <xref target="exchanges_uc2_2"/>:</t>

<t><list style="symbols">
  <t>Registrar-agent: possesses voucher status and enroll status from pledge.</t>
</list></t>

<figure title="Bootstrapping status handling" anchor="exchangesfig_uc2_4"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="496" viewBox="0 0 496 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,160 L 40,304" fill="none" stroke="black"/>
<path d="M 104,32 L 104,96" fill="none" stroke="black"/>
<path d="M 176,32 L 176,96" fill="none" stroke="black"/>
<path d="M 224,104 L 224,240" fill="none" stroke="black"/>
<path d="M 224,272 L 224,304" fill="none" stroke="black"/>
<path d="M 272,32 L 272,96" fill="none" stroke="black"/>
<path d="M 304,32 L 304,96" fill="none" stroke="black"/>
<path d="M 344,104 L 344,208" fill="none" stroke="black"/>
<path d="M 344,272 L 344,304" fill="none" stroke="black"/>
<path d="M 376,32 L 376,96" fill="none" stroke="black"/>
<path d="M 408,32 L 408,96" fill="none" stroke="black"/>
<path d="M 448,104 L 448,240" fill="none" stroke="black"/>
<path d="M 448,272 L 448,304" fill="none" stroke="black"/>
<path d="M 488,32 L 488,96" fill="none" stroke="black"/>
<path d="M 8,32 L 104,32" fill="none" stroke="black"/>
<path d="M 176,32 L 272,32" fill="none" stroke="black"/>
<path d="M 304,32 L 376,32" fill="none" stroke="black"/>
<path d="M 408,32 L 488,32" fill="none" stroke="black"/>
<path d="M 8,96 L 104,96" fill="none" stroke="black"/>
<path d="M 176,96 L 272,96" fill="none" stroke="black"/>
<path d="M 304,96 L 376,96" fill="none" stroke="black"/>
<path d="M 408,96 L 488,96" fill="none" stroke="black"/>
<path d="M 48,176 L 104,176" fill="none" stroke="black"/>
<path d="M 160,176 L 216,176" fill="none" stroke="black"/>
<path d="M 48,208 L 64,208" fill="none" stroke="black"/>
<path d="M 200,208 L 216,208" fill="none" stroke="black"/>
<path d="M 232,224 L 248,224" fill="none" stroke="black"/>
<path d="M 424,224 L 440,224" fill="none" stroke="black"/>
<path d="M 232,240 L 264,240" fill="none" stroke="black"/>
<path d="M 416,240 L 440,240" fill="none" stroke="black"/>
<path d="M 48,288 L 64,288" fill="none" stroke="black"/>
<path d="M 192,288 L 216,288" fill="none" stroke="black"/>
<polygon class="arrowhead" points="448,224 436,218.4 436,229.6" fill="black" transform="rotate(0,440,224)"/>
<polygon class="arrowhead" points="240,240 228,234.4 228,245.6" fill="black" transform="rotate(180,232,240)"/>
<polygon class="arrowhead" points="224,288 212,282.4 212,293.6" fill="black" transform="rotate(0,216,288)"/>
<polygon class="arrowhead" points="224,208 212,202.4 212,213.6" fill="black" transform="rotate(0,216,208)"/>
<polygon class="arrowhead" points="224,176 212,170.4 212,181.6" fill="black" transform="rotate(0,216,176)"/>
<polygon class="arrowhead" points="56,176 44,170.4 44,181.6" fill="black" transform="rotate(180,48,176)"/>
<g class="text">
<text x="56" y="52">Registrar</text>
<text x="212" y="52">Domain</text>
<text x="340" y="52">Domain</text>
<text x="444" y="52">Vendor</text>
<text x="40" y="68">Agent</text>
<text x="224" y="68">Registrar</text>
<text x="324" y="68">CA</text>
<text x="448" y="68">Service</text>
<text x="48" y="84">RegAgt)</text>
<text x="216" y="84">(JRC)</text>
<text x="444" y="84">(MASA)</text>
<text x="40" y="116">|</text>
<text x="404" y="116">Internet</text>
<text x="36" y="132">[voucher</text>
<text x="80" y="132">+</text>
<text x="116" y="132">enroll</text>
<text x="152" y="132">]</text>
<text x="32" y="148">[status</text>
<text x="84" y="148">info</text>
<text x="148" y="148">available]</text>
<text x="132" y="180">mTLS</text>
<text x="104" y="212">Voucher</text>
<text x="164" y="212">Status</text>
<text x="300" y="228">req-device</text>
<text x="368" y="228">audit</text>
<text x="408" y="228">log</text>
<text x="300" y="244">device</text>
<text x="352" y="244">audit</text>
<text x="392" y="244">log</text>
<text x="184" y="260">[verify</text>
<text x="240" y="260">audit</text>
<text x="280" y="260">log</text>
<text x="304" y="260">]</text>
<text x="100" y="292">Enroll</text>
<text x="156" y="292">Status</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+-----------+        +-----------+   +--------+   +---------+
| Registrar |        | Domain    |   | Domain |   | Vendor  |
| Agent     |        | Registrar |   | CA     |   | Service |
| RegAgt)   |        |  (JRC)    |   |        |   | (MASA)  |
+-----------+        +-----------+   +--------+   +---------+
    |                      |              |   Internet |
[voucher + enroll ]        |              |            |
[status info available]    |              |            |
    |                      |              |            |
    |<------- mTLS ------->|              |            |
    |                      |              |            |
    |--- Voucher Status -->|              |            |
    |                      |--- req-device audit log-->|
    |                      |<---- device audit log ----|
    |              [verify audit log ]
    |                      |              |            |
    |--- Enroll Status --->|              |            |
    |                      |              |            |
]]></artwork></artset></figure>

<t>The registrar-agent <bcp14>MUST</bcp14> provide the collected pledge voucher status to the registrar.
This status indicates if the pledge could process the voucher successfully or not.</t>

<t>If the TLS connection to the registrar was closed, the registrar-agent establishes a TLS connection with the registrar as stated in <xref target="exchanges_uc2_2"/>.</t>

<t>The registrar-agent sends the pledge voucher status without modification to the registrar with an HTTP-over-TLS POST using the registrar endpoint "/.well-known/brski/voucher_status". The Content-Type header is kept as <spanx style="verb">application/jose+json</spanx> as described in <xref target="exchangesfig_uc2_3"/> and depicted in the example in <xref target="vstat"/>.</t>

<t>The registrar <bcp14>SHALL</bcp14> verify the signature of the pledge voucher status and validate that it belongs to an accepted device in his domain based on the contained "serial-number" in the IDevID certificate referenced in the header of the voucher status.</t>

<t>According to <xref target="RFC8995"/> section 5.7, the registrar <bcp14>SHOULD</bcp14> respond with an HTTP 200 OK in the success case or fail with HTTP 4xx/5xx status codes as defined by the HTTP standard.
The registrar-agent may use the response to signal success / failure to the service technician operating the registrar agent.
Within the server logs the server <bcp14>SHOULD</bcp14> capture this telemetry information.</t>

<t>The registrar <bcp14>SHOULD</bcp14> proceed with collecting and logging status information by requesting the MASA audit-log from the MASA service as described in section 5.8 of <xref target="RFC8995"/>.</t>

<t>The registrar-agent <bcp14>MUST</bcp14> provide the pledge's enroll status to the registrar.
The status indicates the pledge could process the enroll-response (certificate) and holds the corresponding private key.</t>

<t>The registrar-agent sends the pledge enroll status without modification to the registrar with an HTTP-over-TLS POST using the registrar endpoint "/.well-known/brski/enrollstatus".
The Content-Type header is kept as <spanx style="verb">application/jose+json</spanx> as described in <xref target="exchangesfig_uc2_3"/> and depicted in the example in <xref target="estat"/>.</t>

<t>The registrar <bcp14>MUST</bcp14> verify the signature of the pledge enroll status.
Also, the registrar <bcp14>SHALL</bcp14> validate that the pledge is an accepted device in his domain based on the contained product-serial-number in the LDevID certificate referenced in the header of the enroll status.
The registrar <bcp14>SHOULD</bcp14> log this event.
In case the pledge enroll status indicates a failure, the pledge was unable to verify the received LDevID certificate and therefore signed the enroll status with its IDevID credential.
Note that the verification of a signature of the status information is an addition to the described handling in section 5.9.4 of <xref target="RFC8995"/>.</t>

<t>According to <xref target="RFC8995"/> section 5.9.4, the registrar <bcp14>SHOULD</bcp14> respond with an HTTP 200 OK in the success case or fail with HTTP 4xx/5xx status codes as defined by the HTTP standard.
Based on the failure case the registrar <bcp14>MAY</bcp14> decide that for security reasons the pledge is not allowed to reside in the domain. In this case the registrar <bcp14>MUST</bcp14> revoke the certificate.
The registrar-agent may use the response to signal success / failure to the service technician operating the registrar agent.
Within the server log the registrar <bcp14>SHOULD</bcp14> capture this telemetry information.</t>

</section>
</section>
<section anchor="exchanges_uc2_5"><name>Request Pledge-Status by Registrar-Agent from Pledge</name>

<t>The following assumes that a registrar-agent may need to query the status of a pledge.
This information may be useful to solve errors, when the pledge was not able to connect to the target domain during the bootstrapping.
The pledge <bcp14>MAY</bcp14> provide a dedicated endpoint to accept status-requests.</t>

<t>Preconditions:</t>

<t><list style="symbols">
  <t>Registrar-agent: possesses LDevID (RegAgt), list of serial numbers of pledges to be queried and a list of corresponding manufacturer trust anchors to be able to verify signatures performed with the IDevID credential.</t>
  <t>Pledge: may already possess domain credentials and LDevID(Pledge), or may not possess one or both of these.</t>
</list></t>

<figure title="Pledge-status handling between registrar-agent and pledge" anchor="exchangesfig_uc2_5"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="360" viewBox="0 0 360 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,104 L 40,176" fill="none" stroke="black"/>
<path d="M 80,32 L 80,96" fill="none" stroke="black"/>
<path d="M 256,32 L 256,96" fill="none" stroke="black"/>
<path d="M 304,104 L 304,176" fill="none" stroke="black"/>
<path d="M 352,32 L 352,96" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 256,32 L 352,32" fill="none" stroke="black"/>
<path d="M 8,96 L 80,96" fill="none" stroke="black"/>
<path d="M 256,96 L 352,96" fill="none" stroke="black"/>
<path d="M 48,128 L 72,128" fill="none" stroke="black"/>
<path d="M 264,128 L 296,128" fill="none" stroke="black"/>
<path d="M 48,160 L 72,160" fill="none" stroke="black"/>
<path d="M 272,160 L 296,160" fill="none" stroke="black"/>
<polygon class="arrowhead" points="304,160 292,154.4 292,165.6" fill="black" transform="rotate(0,296,160)"/>
<polygon class="arrowhead" points="56,128 44,122.4 44,133.6" fill="black" transform="rotate(180,48,128)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="308" y="52">Registrar-</text>
<text x="288" y="68">Agent</text>
<text x="300" y="84">(RegAgt)</text>
<text x="136" y="132">pledge-status</text>
<text x="224" y="132">request</text>
<text x="136" y="164">pledge-status</text>
<text x="228" y="164">response</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+--------+                     +-----------+
| Pledge |                     | Registrar-|
|        |                     | Agent     |
|        |                     | (RegAgt)  |
+--------+                     +-----------+
    |                                |
    |<--- pledge-status request -----|
    |                                |
    |---- pledge-status response --->|
    |                                |
]]></artwork></artset></figure>

<section anchor="pledge-status-trigger-registrar-agent-to-pledge"><name>Pledge-Status - Trigger (Registrar-Agent to Pledge)</name>

<t>The registrar-agent requests the pledge-status via HTTP POST on the defined pledge endpoint: "/.well-known/brski/ps"</t>

<t>The registrar-agent Content-Type header for the pledge-status request is: <spanx style="verb">application/jose+json</spanx>.
It contains information on the requested status-type, the time and date the request is created, and the product serial-number of the pledge contacted as shown in <xref target="stat_req_def"/>.
The pledge-status request is signed by registrar-agent using the LDevID(RegAgt) credential.</t>

<t>The following Concise Data Definition Language (CDDL) <xref target="RFC8610"/> explains the structure of the format for the pledge-status request. It is defined following the status telemetry definitions in BRSKI <xref target="RFC8995"/>.
Consequently, format and semantics of pledge-status requests below are for version 1.
The version field is included to permit significant changes to the pledge-status request and response in the future.
A pledge or a registrar-agent that receives a pledge-status request with a version larger than it knows about <bcp14>SHOULD</bcp14> log the contents and alert a human.</t>

<figure title="CDDL for pledge-status request" anchor="stat_req_def"><artwork align="left"><![CDATA[
<CODE BEGINS>
  status-request = {
      "version": uint,
      "created-on": tdate ttime,
      "serial-number": text,
      "status-type": text
  }
<CODE ENDS>
]]></artwork></figure>

<t>The status-type defined for BRSKI-PRM is "bootstrap".
This indicates the pledge to provide current status information regarding the bootstrapping status (voucher processing and enrollment of the pledge into the new domain).
As the pledge-status request is defined generic, it may be used by other specifications to request further status information, e.g., for onboarding to get further information about enrollment of application specific LDevIDs or other parameters.
This is out of scope for this specification.</t>

<t><xref target="stat_req"/> below shows an example for querying pledge-status using status-type bootstrap.</t>

<figure title="Example of registrar-agent request of pledge-status using status-type bootstrap" anchor="stat_req"><artwork align="left"><![CDATA[
# The registrar-agent request of "pledge-status" in general JWS
  serialization syntax
{
  "payload": "BASE64URL(status-request)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded payload "status-request" representation in JSON syntax
{
  "version": 1,
  "created-on": "2022-08-12T02:37:39.235Z",
  "serial-number": "pledge-callee4711",
  "status-type": "bootstrap"
}

# Decoded "JWS Protected Header" representation in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

</section>
<section anchor="pledge-status-response-pledge-registrar-agent"><name>Pledge-Status - Response (Pledge - Registrar-Agent)</name>

<t>If the pledge receives the pledge-status request with status-type "bootstrap" it <bcp14>SHALL</bcp14> react with a status response message based on the telemetry information described in <xref target="exchanges_uc2_3"/>.</t>

<t>The pledge-status response Content-Type header is <spanx style="verb">application/jose+json</spanx>.</t>

<t>The following CDDL explains the structure of the format for the status response, which is:</t>

<figure title="CDDL for pledge-status response" anchor="stat_res_def"><artwork align="left"><![CDATA[
<CODE BEGINS>
  status-response = {
    "version": uint,
    "status":
      "factory-default" /
      "voucher-success" /
      "voucher-error" /
      "enroll-success" /
      "enroll-error" /
      "connect-success" /
      "connect-error",
    ?"reason" : text,
    ?"reason-context": { $$arbitrary-map }
  }
<CODE ENDS>
]]></artwork></figure>

<t>Different cases for pledge bootstrapping status may occur, which <bcp14>SHOULD</bcp14> be reflected using the status enumeration.
This document specifies the status values in the context of the bootstrapping process and credential application.
Other documents may enhance the above enumeration to reflect further status information.</t>

<t>The pledge-status response message is signed with IDevID or LDevID, depending on bootstrapping state of the pledge.</t>

<t><list style="symbols">
  <t>"factory-default": Pledge has not been bootstrapped.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its IDevID(Pledge).</t>
  <t>"voucher-success": Pledge processed the voucher exchange successfully.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its IDevID(Pledge).</t>
  <t>"voucher-error": Pledge voucher processing terminated with error.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its IDevID(Pledge).</t>
  <t>"enroll-success": Pledge has processed the enrollment exchange successfully.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its LDevID(Pledge).</t>
  <t>"enroll-error": Pledge enrollment response processing terminated with error.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its IDevID(Pledge).</t>
</list></t>

<t>The reason and the reason-context <bcp14>SHOULD</bcp14> contain the telemetry information as described in section <xref target="exchanges_uc2_3"/>.</t>

<t>As the pledge is assumed to utilize the bootstrapped credential information in communication with other peers, additional status information is provided for the connectivity to other peers, which may be helpful in analyzing potential error cases.</t>

<t><list style="symbols">
  <t>"connect-success": Pledge could successfully establish a connection to another peer.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its LDevID(Pledge).</t>
  <t>"connect-error": Pledge connection establishment terminated with error.
Additional information may be provided in the reason or reason-context.
The pledge signs the response message using its LDevID(Pledge).</t>
</list></t>

<t>The pledge-status responses are cumulative in the sense that connect-success implies enroll-success, which in turn implies voucher-success.</t>

<t><xref target="stat_res"/> provides an example for the bootstrapping-status information.</t>

<figure title="Example of pledge-status response" anchor="stat_res"><artwork align="left"><![CDATA[
# The pledge "status-response" in General JWS Serialization syntax
{
  "payload": "BASE64URL(status-response)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded payload "status-response" representation in JSON syntax
{
  "version": 1,
  "status": "enroll-success",
  "reason-context": {
    "additional" : "JSON"
  }
}

# Decoded "JWS Protected Header" representation in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "typ": "jose+json
}
]]></artwork></figure>

<t>In case "factory-default" the pledge does not possess the domain certificate resp. the domain trust-anchor.
It will not be able to verify the signature of the registrar-agent in the bootstrapping-status request.
In cases "vouchered" and "enrolled" the pledge already possesses the domain certificate (has domain trust-anchor) and can therefore validate the signature of the registrar-agent.
If validation of the JWS signature fails, the pledge <bcp14>SHOULD</bcp14> respond with the HTTP 403 Forbidden status code.
The HTTP 406 Not Acceptable status code <bcp14>SHOULD</bcp14> be used, if the Accept header in the request indicates an unknown or unsupported format.
The HTTP 415 Unsupported Media Type status code <bcp14>SHOULD</bcp14> be used, if the Content-Type of the request is an unknown or unsupported format.
The HTTP 400 Bad Request status code <bcp14>SHOULD</bcp14> be used, if the Accept/Content-Type headers are correct but nevertheless the status-request cannot be correctly parsed.</t>

</section>
</section>
</section>
<section anchor="artifacts"><name>Artifacts</name>

<section anchor="voucher-request-prm-yang"><name>Voucher Request Artifact</name>

<t><xref target="RFC8366bis"/> extends the voucher-request as defined in <xref target="RFC8995"/> to include additional fields necessary for handling bootstrapping in the pledge-responder-mode.
These additional fields are defined in <xref target="exchanges_uc2_1"/> as:</t>

<t><list style="symbols">
  <t>agent-signed-data to provide a JSON encoded artifact from the involved registrar-agent, which allows the registrar to verify the agent's involvement</t>
  <t>agent-provided-proximity-registrar-cert to provide the registrar certificate visible to the registrar-agent, comparable to the registrar-proximity-certificate used in <xref target="RFC8995"/></t>
  <t>agent-signing certificate to optionally provide the registrar agent signing certificate.</t>
</list></t>

<t>Examples for the application of these fields in the context of a PVR are provided in <xref target="exchanges_uc2_2"/>.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document requires the following IANA actions.</t>

<section anchor="brski-well-known-registry"><name>BRSKI .well-known Registry</name>

<t>IANA is requested to enhance the Registry entitled: "BRSKI Well-Known URIs" with the following endpoints:</t>

<figure><artwork align="left"><![CDATA[
 URI                Description                       Reference
 tv                 create pledge-voucher-request     [THISRFC]
 te                 create pledge-enrollment-request  [THISRFC]
 sv                 supply voucher response           [THISRFC]
 se                 supply enrollment response        [THISRFC]
 cc                 supply CA certificates to pledge  [THISRFC]
 ps                 query pledge status               [THISRFC]
 requestenroll      supply PER to registrar           [THISRFC]
 wrappedcacerts     request wrapped CA certificates   [THISRFC]

]]></artwork></figure>

</section>
</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<t>In general, the privacy considerations of <xref target="RFC8995"/> apply for BRSKI-PRM also.
Further privacy aspects need to be considered for:</t>

<t><list style="symbols">
  <t>the introduction of the additional component registrar-agent</t>
  <t>no transport layer security between registrar-agent and pledge</t>
</list></t>

<t>The credential used by the registrar-agent to sign the data for the pledge should not contain any personal information.
Therefore, it is recommended to use an LDevID certificate associated with the commissioning device instead of an LDevID certificate associated with the service technician operating the device.
This avoids revealing potentially included personal information to Registrar and MASA.</t>

<t>The communication between the pledge and the registrar-agent is performed over plain HTTP.
Therefore, it is subject to disclosure by a Dolev-Yao attacker (an "oppressive observer")<xref target="onpath"/>.
Depending on the requests and responses, the following information is disclosed.</t>

<t><list style="symbols">
  <t>the Pledge product-serial-number is contained in the trigger message for the PVR and in all responses from the pledge.
This information reveals the identity of the devices being bootstrapped and allows deduction of which products an operator is using in their environment.
As the communication between the pledge and the registrar-agent may be realized over wireless link, this information could easily be eavesdropped, if the wireless network is unencrypted.
Even if the wireless network is encrypted, if it uses a network-wide key, then layer-2 attacks (ARP/ND spoofing) could insert an on-path observer into the path.</t>
  <t>the Timestamp data could reveal the activation time of the device.</t>
  <t>the Status data of the device could reveal information about the current state of the device in the domain network.</t>
</list></t>

</section>
<section anchor="sec_cons"><name>Security Considerations</name>

<t>In general, the security considerations of <xref target="RFC8995"/> apply for BRSKI-PRM also.
Further security aspects are considered here related to:</t>

<t><list style="symbols">
  <t>the introduction of the additional component registrar-agent</t>
  <t>the reversal of the pledge communication direction (push mode, compared to BRSKI)</t>
  <t>no transport layer security between registrar-agent and pledge</t>
</list></t>

<section anchor="denial-of-service-dos-attack-on-pledge"><name>Denial of Service (DoS) Attack on Pledge</name>

<t>Disrupting the pledge behavior by a DoS attack may prevent the bootstrapping of the pledge to a new domain.</t>

<t>A DoS attack with a faked registrar-agent may block the bootstrapping of the pledge due to state creation on the pledge (the pledge may produce a voucher-request, and refuse to produce another one).
One mitigation may be that the pledge does not limited the number of voucher requests it creates until at least one has finished, or a single onboarding state may expire after a certain time.</t>

</section>
<section anchor="misuse-of-acquired-pvr-and-per-by-registrar-agent"><name>Misuse of acquired PVR and PER by Registrar-Agent</name>

<t>A registrar-agent that uses previously requested PVR and PER for domain-A, may attempt to onboard the device into domain-B.  This can be detected by the domain registrar while PVR processing.
The domain registrar needs to verify that the "proximity-registrar-cert" field in the PVR matches its own registrar EE certificate.
In addition, the domain registrar needs to verify the association of the pledge to its domain based on the product-serial-number contained in the PVR and in the IDevID certificate of the pledge. (This is just part of the supply chain integration)
Moreover, the domain registrar verifies if the registrar-agent is authorized to interact with the pledge for voucher-requests and enroll-requests, based on the LDevID(RegAgt) certificate data contained in the PVR.</t>

<t>Misbinding of a pledge by a faked domain registrar is countered as described in BRSKI security considerations <xref target="RFC8995"/> (section 11.4).</t>

</section>
<section anchor="sec_cons_reg-agt"><name>Misuse of Registrar-Agent Credentials</name>

<t>Concerns of misusage of a registrar-agent with a valid LDevID(RegAgt), may be addressed by utilizing short-lived certificates (e.g., valid for a day) to authenticate the registrar-agent against the domain registrar.
The LDevID(RegAgt) certificate may be acquired by a prior BRSKI run for the registrar-agent, if an IDevID is available on registrar-agent.
Alternatively, the LDevID may be acquired by a service technician from the domain PKI system in an authenticated way.</t>

<t>In addition it is required that the LDevID(RegAgt) certificate is valid for the complete bootstrapping phase.
This avoids that a registrar-agent could be misused to create arbitrary "agent-signed-data" objects to perform an authorized bootstrapping of a rogue pledge at a later point in time.
In this misuse "agent-signed-data" could be dated after the validity time of the LDevID(RegAgt) certificate, due to missing trusted timestamp in the registrar-agents signature.
To address this, the registrar <bcp14>SHOULD</bcp14> verify the certificate used to create the signature on "agent-signed-data".
Furthermore the registrar also verifies the LDevID(RegAgt) certificate used in the TLS handshake with the registrar-agent. If both certificates are verified successfully, the registrar-agent's signature can be considered as valid.</t>

</section>
<section anchor="sec_cons_mDNS"><name>Misuse of mDNS to obtain list of pledges</name>

<t>To discover a specific pledge a registrar-agent may request the service name in combination with the product-serial-number of a specific pledge.
The pledge reacts on this if its product-serial-number is part of the request message.</t>

<t>If the registrar-agent performs DNS-based Service Discovery without a specific product-serial-number, all  pledges in the domain react if the functionality is supported.
This functionality enumerates and reveals the information of devices available in the domain.
The information about this is provided here as a feature to support the commissioning of devices.
A manufacturer may decide to support this feature only for devices not possessing a LDevID or to not support this feature at all, to avoid an enumeration in an operative domain.</t>

</section>
<section anchor="yang-module-security-considerations"><name>YANG Module Security Considerations</name>

<t>The enhanced voucher-request described in <xref target="RFC8366bis"/> is based on <xref target="RFC8995"/>, but uses a different encoding based on <xref target="I-D.ietf-anima-jws-voucher"/>.
The security considerations as described in <xref target="RFC8995"/> section 11.7 (Security Considerations) apply.</t>

<t>The YANG module specified in <xref target="RFC8366bis"/> defines the schema for data that is subsequently encapsulated by a JOSE signed-data Content-type as described in <xref target="I-D.ietf-anima-jws-voucher"/>.
As such, all of the YANG-modeled data is protected against modification.</t>

<t>The use of YANG to define data structures via the <xref target="RFC8971"/> "structure" statement, is relatively
new and distinct from the traditional use of YANG to define an API accessed by network management protocols such as NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>.
For this reason, these guidelines do not follow the template described by <xref target="RFC8407"/> section 3.7 (Security Considerations Section).</t>

</section>
</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>We would like to thank the various reviewers, in particular Brian E. Carpenter, Oskar Camenzind, Hendrik Brockhaus, and Ingo Wenda for their input and discussion on use cases and call flows.
Further review input was provided by Jesser Bouzid, Dominik Tacke, and Christian Spindler.
Special thanks to Esko Dijk for the in deep review and the improving proposals.
Support in PoC implementations and comments resulting from the implementation was provided by Hong Rui Li and He Peng Jia.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>





<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'><organization/></author>
<author fullname='S. Santesson' initials='S.' surname='Santesson'><organization/></author>
<author fullname='S. Farrell' initials='S.' surname='Farrell'><organization/></author>
<author fullname='S. Boeyen' initials='S.' surname='Boeyen'><organization/></author>
<author fullname='R. Housley' initials='R.' surname='Housley'><organization/></author>
<author fullname='W. Polk' initials='W.' surname='Polk'><organization/></author>
<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='RFC6762'>
<front>
<title>Multicast DNS</title>
<author fullname='S. Cheshire' initials='S.' surname='Cheshire'><organization/></author>
<author fullname='M. Krochmal' initials='M.' surname='Krochmal'><organization/></author>
<date month='February' year='2013'/>
<abstract><t>As networked devices become smaller, more portable, and more ubiquitous, the ability to operate with less configured infrastructure is increasingly important.  In particular, the ability to look up DNS resource record data types (including, but not limited to, host names) in the absence of a conventional managed DNS server is useful.</t><t>Multicast DNS (mDNS) provides the ability to perform DNS-like operations on the local link in the absence of any conventional Unicast DNS server.  In addition, Multicast DNS designates a portion of the DNS namespace to be free for local use, without the need to pay any annual fee, and without the need to set up delegations or otherwise configure a conventional DNS server to answer for those names.</t><t>The primary benefits of Multicast DNS names are that (i) they require little or no administration or configuration to set them up, (ii) they work when no infrastructure is present, and (iii) they work during infrastructure failures.</t></abstract>
</front>
<seriesInfo name='RFC' value='6762'/>
<seriesInfo name='DOI' value='10.17487/RFC6762'/>
</reference>



<reference anchor='RFC6763'>
<front>
<title>DNS-Based Service Discovery</title>
<author fullname='S. Cheshire' initials='S.' surname='Cheshire'><organization/></author>
<author fullname='M. Krochmal' initials='M.' surname='Krochmal'><organization/></author>
<date month='February' year='2013'/>
<abstract><t>This document specifies how DNS resource records are named and structured to facilitate service discovery.  Given a type of service that a client is looking for, and a domain in which the client is looking for that service, this mechanism allows clients to discover a list of named instances of that desired service, using standard DNS queries. This mechanism is referred to as DNS-based Service Discovery, or DNS-SD.</t></abstract>
</front>
<seriesInfo name='RFC' value='6763'/>
<seriesInfo name='DOI' value='10.17487/RFC6763'/>
</reference>



<reference anchor='RFC7030'>
<front>
<title>Enrollment over Secure Transport</title>
<author fullname='M. Pritikin' initials='M.' role='editor' surname='Pritikin'><organization/></author>
<author fullname='P. Yee' initials='P.' role='editor' surname='Yee'><organization/></author>
<author fullname='D. Harkins' initials='D.' role='editor' surname='Harkins'><organization/></author>
<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='RFC7515'>
<front>
<title>JSON Web Signature (JWS)</title>
<author fullname='M. Jones' initials='M.' surname='Jones'><organization/></author>
<author fullname='J. Bradley' initials='J.' surname='Bradley'><organization/></author>
<author fullname='N. Sakimura' initials='N.' surname='Sakimura'><organization/></author>
<date month='May' year='2015'/>
<abstract><t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures.  Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification.  Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t></abstract>
</front>
<seriesInfo name='RFC' value='7515'/>
<seriesInfo name='DOI' value='10.17487/RFC7515'/>
</reference>



<reference anchor='RFC8040'>
<front>
<title>RESTCONF Protocol</title>
<author fullname='A. Bierman' initials='A.' surname='Bierman'><organization/></author>
<author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/></author>
<author fullname='K. Watsen' initials='K.' surname='Watsen'><organization/></author>
<date month='January' year='2017'/>
<abstract><t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t></abstract>
</front>
<seriesInfo name='RFC' value='8040'/>
<seriesInfo name='DOI' value='10.17487/RFC8040'/>
</reference>



<reference anchor='RFC8366'>
<front>
<title>A Voucher Artifact for Bootstrapping Protocols</title>
<author fullname='K. Watsen' initials='K.' surname='Watsen'><organization/></author>
<author fullname='M. Richardson' initials='M.' surname='Richardson'><organization/></author>
<author fullname='M. Pritikin' initials='M.' surname='Pritikin'><organization/></author>
<author fullname='T. Eckert' initials='T.' surname='Eckert'><organization/></author>
<date month='May' year='2018'/>
<abstract><t>This document defines a strategy to securely assign a pledge to an owner using an artifact signed, directly or indirectly, by the pledge's manufacturer.  This artifact is known as a &quot;voucher&quot;.</t><t>This document defines an artifact format as a YANG-defined JSON document that has been signed using a Cryptographic Message Syntax (CMS) structure.  Other YANG-derived formats are possible.  The voucher artifact is normally generated by the pledge's manufacturer (i.e., the Manufacturer Authorized Signing Authority (MASA)).</t><t>This document only defines the voucher artifact, leaving it to other documents to describe specialized protocols for accessing it.</t></abstract>
</front>
<seriesInfo name='RFC' value='8366'/>
<seriesInfo name='DOI' value='10.17487/RFC8366'/>
</reference>


<reference anchor='RFC8366bis'>
   <front>
      <title>A Voucher Artifact for Bootstrapping Protocols</title>
      <author fullname='Kent Watsen' initials='K.' surname='Watsen'>
         <organization>Watsen Networks</organization>
      </author>
      <author fullname='Michael Richardson' initials='M.' surname='Richardson'>
         <organization>Sandelman Software</organization>
      </author>
      <author fullname='Max Pritikin' initials='M.' surname='Pritikin'>
         <organization>Cisco Systems</organization>
      </author>
      <author fullname='Toerless Eckert' initials='T. T.' surname='Eckert'>
         <organization>Futurewei Technologies Inc.</organization>
      </author>
      <author fullname='Qiufang Ma' initials='Q.' surname='Ma'>
         <organization>Huawei</organization>
      </author>
      <date day='7' month='February' year='2023'/>
      <abstract>
	 <t>   This document defines a strategy to securely assign a pledge to an
   owner using an artifact signed, directly or indirectly, by the
   pledge&#39;s manufacturer.  This artifact is known as a &quot;voucher&quot;.

   This document defines an artifact format as a YANG-defined JSON or
   CBOR document that has been signed using a variety of cryptographic
   systems.

   The voucher artifact is normally generated by the pledge&#39;s
   manufacturer (i.e., the Manufacturer Authorized Signing Authority
   (MASA)).

   This document updates RFC8366, merging a number of extensions into
   the YANG.  The RFC8995 voucher request is also merged into this
   document.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-anima-rfc8366bis-07'/>
   
</reference>



<reference anchor='RFC8610'>
<front>
<title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
<author fullname='H. Birkholz' initials='H.' surname='Birkholz'><organization/></author>
<author fullname='C. Vigano' initials='C.' surname='Vigano'><organization/></author>
<author fullname='C. Bormann' initials='C.' surname='Bormann'><organization/></author>
<date month='June' year='2019'/>
<abstract><t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049).  Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t></abstract>
</front>
<seriesInfo name='RFC' value='8610'/>
<seriesInfo name='DOI' value='10.17487/RFC8610'/>
</reference>



<reference anchor='RFC8995'>
<front>
<title>Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
<author fullname='M. Pritikin' initials='M.' surname='Pritikin'><organization/></author>
<author fullname='M. Richardson' initials='M.' surname='Richardson'><organization/></author>
<author fullname='T. Eckert' initials='T.' surname='Eckert'><organization/></author>
<author fullname='M. Behringer' initials='M.' surname='Behringer'><organization/></author>
<author fullname='K. Watsen' initials='K.' surname='Watsen'><organization/></author>
<date month='May' year='2021'/>
<abstract><t>This document specifies automated bootstrapping of an Autonomic Control Plane.  To do this, a Secure Key Infrastructure is bootstrapped.  This is done using manufacturer-installed X.509 certificates, in combination with a manufacturer's authorizing service, both online and offline.  We call this process the Bootstrapping Remote Secure Key Infrastructure (BRSKI) protocol. Bootstrapping a new device can occur when using a routable address and a cloud service, only link-local connectivity, or limited/disconnected networks. Support for deployment models with less stringent security requirements is included. Bootstrapping is complete when the cryptographic identity of the new key infrastructure is successfully deployed to the device.  The established secure connection can be used to deploy a locally issued certificate to the device as well.</t></abstract>
</front>
<seriesInfo name='RFC' value='8995'/>
<seriesInfo name='DOI' value='10.17487/RFC8995'/>
</reference>


<reference anchor='I-D.ietf-anima-jws-voucher'>
   <front>
      <title>JWS signed Voucher Artifacts for Bootstrapping Protocols</title>
      <author fullname='Thomas Werner' initials='T.' surname='Werner'>
         <organization>Siemens AG</organization>
      </author>
      <author fullname='Michael Richardson' initials='M.' surname='Richardson'>
         <organization>Sandelman Software Works</organization>
      </author>
      <date day='24' month='October' year='2022'/>
      <abstract>
	 <t>   [RFC8366] defines a digital artifact called voucher as a YANG-defined
   JSON document that has been signed using a Cryptographic Message
   Syntax (CMS) structure.  This memo introduces a variant of the
   voucher structure in which CMS is replaced by the JSON Object Signing
   and Encryption (JOSE) mechanism described in [RFC7515] to support
   deployments in which JOSE is preferred over CMS.

   In addition to explaining how the format is created, MIME types are
   registered and examples are provided.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-anima-jws-voucher-05'/>
   
</reference>


<reference anchor='I-D.ietf-netconf-sztp-csr'>
   <front>
      <title>Conveying a Certificate Signing Request (CSR) in a Secure Zero Touch Provisioning (SZTP) Bootstrapping Request</title>
      <author fullname='Kent Watsen' initials='K.' surname='Watsen'>
         <organization>Watsen Networks</organization>
      </author>
      <author fullname='Russ Housley' initials='R.' surname='Housley'>
         <organization>Vigil Security, LLC</organization>
      </author>
      <author fullname='Sean Turner' initials='S.' surname='Turner'>
         <organization>sn3rd</organization>
      </author>
      <date day='2' month='March' year='2022'/>
      <abstract>
	 <t>   This draft extends the input to the &quot;get-bootstrapping-data&quot; RPC
   defined in RFC 8572 to include an optional certificate signing
   request (CSR), enabling a bootstrapping device to additionally obtain
   an identity certificate (e.g., an LDevID from IEEE 802.1AR) as part
   of the &quot;onboarding information&quot; response provided in the RPC-reply.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-netconf-sztp-csr-14'/>
   
</reference>


<reference anchor='I-D.ietf-anima-rfc8366bis'>
   <front>
      <title>A Voucher Artifact for Bootstrapping Protocols</title>
      <author fullname='Kent Watsen' initials='K.' surname='Watsen'>
         <organization>Watsen Networks</organization>
      </author>
      <author fullname='Michael Richardson' initials='M.' surname='Richardson'>
         <organization>Sandelman Software</organization>
      </author>
      <author fullname='Max Pritikin' initials='M.' surname='Pritikin'>
         <organization>Cisco Systems</organization>
      </author>
      <author fullname='Toerless Eckert' initials='T. T.' surname='Eckert'>
         <organization>Futurewei Technologies Inc.</organization>
      </author>
      <author fullname='Qiufang Ma' initials='Q.' surname='Ma'>
         <organization>Huawei</organization>
      </author>
      <date day='7' month='February' year='2023'/>
      <abstract>
	 <t>   This document defines a strategy to securely assign a pledge to an
   owner using an artifact signed, directly or indirectly, by the
   pledge&#39;s manufacturer.  This artifact is known as a &quot;voucher&quot;.

   This document defines an artifact format as a YANG-defined JSON or
   CBOR document that has been signed using a variety of cryptographic
   systems.

   The voucher artifact is normally generated by the pledge&#39;s
   manufacturer (i.e., the Manufacturer Authorized Signing Authority
   (MASA)).

   This document updates RFC8366, merging a number of extensions into
   the YANG.  The RFC8995 voucher request is also merged into this
   document.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-anima-rfc8366bis-07'/>
   
</reference>



<reference anchor='RFC2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></author>
<date month='March' year='1997'/>
<abstract><t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>



<reference anchor='RFC8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></author>
<date month='May' year='2017'/>
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>




    </references>

    <references title='Informative References'>





<reference anchor='RFC2986'>
<front>
<title>PKCS #10: Certification Request Syntax Specification Version 1.7</title>
<author fullname='M. Nystrom' initials='M.' surname='Nystrom'><organization/></author>
<author fullname='B. Kaliski' initials='B.' surname='Kaliski'><organization/></author>
<date month='November' year='2000'/>
<abstract><t>This memo represents a republication of PKCS #10 v1.7 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, and change control is retained within the PKCS process.  The body of this document, except for the security considerations section, is taken directly from the PKCS #9 v2.0 or the PKCS #10 v1.7 document.  This memo provides information for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='2986'/>
<seriesInfo name='DOI' value='10.17487/RFC2986'/>
</reference>



<reference anchor='RFC6241'>
<front>
<title>Network Configuration Protocol (NETCONF)</title>
<author fullname='R. Enns' initials='R.' role='editor' surname='Enns'><organization/></author>
<author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'><organization/></author>
<author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenwaelder'><organization/></author>
<author fullname='A. Bierman' initials='A.' role='editor' surname='Bierman'><organization/></author>
<date month='June' year='2011'/>
<abstract><t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices.  It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages.  The NETCONF protocol operations are realized as remote procedure calls (RPCs).  This document obsoletes RFC 4741.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6241'/>
<seriesInfo name='DOI' value='10.17487/RFC6241'/>
</reference>



<reference anchor='RFC7252'>
<front>
<title>The Constrained Application Protocol (CoAP)</title>
<author fullname='Z. Shelby' initials='Z.' surname='Shelby'><organization/></author>
<author fullname='K. Hartke' initials='K.' surname='Hartke'><organization/></author>
<author fullname='C. Bormann' initials='C.' surname='Bormann'><organization/></author>
<date month='June' year='2014'/>
<abstract><t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks.  The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s.  The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t><t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types.  CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t></abstract>
</front>
<seriesInfo name='RFC' value='7252'/>
<seriesInfo name='DOI' value='10.17487/RFC7252'/>
</reference>



<reference anchor='RFC8407'>
<front>
<title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
<author fullname='A. Bierman' initials='A.' surname='Bierman'><organization/></author>
<date month='October' year='2018'/>
<abstract><t>This memo provides guidelines for authors and reviewers of specifications containing YANG modules.  Recommendations and procedures are defined, which are intended to increase interoperability and usability of Network Configuration Protocol (NETCONF) and RESTCONF protocol implementations that utilize YANG modules.  This document obsoletes RFC 6087.</t></abstract>
</front>
<seriesInfo name='BCP' value='216'/>
<seriesInfo name='RFC' value='8407'/>
<seriesInfo name='DOI' value='10.17487/RFC8407'/>
</reference>



<reference anchor='RFC8792'>
<front>
<title>Handling Long Lines in Content of Internet-Drafts and RFCs</title>
<author fullname='K. Watsen' initials='K.' surname='Watsen'><organization/></author>
<author fullname='E. Auerswald' initials='E.' surname='Auerswald'><organization/></author>
<author fullname='A. Farrel' initials='A.' surname='Farrel'><organization/></author>
<author fullname='Q. Wu' initials='Q.' surname='Wu'><organization/></author>
<date month='June' year='2020'/>
<abstract><t>This document defines two strategies for handling long lines in width-bounded text content.  One strategy, called the &quot;single backslash&quot; strategy, is based on the historical use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first character that is not a space character (' ') on the next line.  The second strategy, called the &quot;double backslash&quot; strategy, extends the first strategy by adding a second backslash character to identify where the continuation begins and is thereby able to handle cases not supported by the first strategy.  Both strategies use a self-describing header enabling automated reconstitution of the original content.</t></abstract>
</front>
<seriesInfo name='RFC' value='8792'/>
<seriesInfo name='DOI' value='10.17487/RFC8792'/>
</reference>



<reference anchor='RFC9052'>
<front>
<title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
<author fullname='J. Schaad' initials='J.' surname='Schaad'><organization/></author>
<date month='August' year='2022'/>
<abstract><t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size.  There is a need to be able to define basic security services for this data format.  This document defines the CBOR Object Signing and Encryption (COSE) protocol.  This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization.  This specification additionally describes how to represent cryptographic keys using CBOR.  </t><t>This document, along with RFC 9053, obsoletes RFC 8152.</t></abstract>
</front>
<seriesInfo name='STD' value='96'/>
<seriesInfo name='RFC' value='9052'/>
<seriesInfo name='DOI' value='10.17487/RFC9052'/>
</reference>



<reference anchor='RFC9053'>
<front>
<title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
<author fullname='J. Schaad' initials='J.' surname='Schaad'><organization/></author>
<date month='August' year='2022'/>
<abstract><t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052). </t><t>This document, along with RFC 9052, obsoletes RFC 8152.</t></abstract>
</front>
<seriesInfo name='RFC' value='9053'/>
<seriesInfo name='DOI' value='10.17487/RFC9053'/>
</reference>



<reference anchor='RFC9110'>
<front>
<title>HTTP Semantics</title>
<author fullname='R. Fielding' initials='R.' role='editor' surname='Fielding'><organization/></author>
<author fullname='M. Nottingham' initials='M.' role='editor' surname='Nottingham'><organization/></author>
<author fullname='J. Reschke' initials='J.' role='editor' surname='Reschke'><organization/></author>
<date month='June' year='2022'/>
<abstract><t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the &quot;http&quot; and &quot;https&quot; Uniform Resource Identifier (URI) schemes. </t><t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t></abstract>
</front>
<seriesInfo name='STD' value='97'/>
<seriesInfo name='RFC' value='9110'/>
<seriesInfo name='DOI' value='10.17487/RFC9110'/>
</reference>



<reference anchor='RFC9238'>
<front>
<title>Loading Manufacturer Usage Description (MUD) URLs from QR Codes</title>
<author fullname='M. Richardson' initials='M.' surname='Richardson'><organization/></author>
<author fullname='J. Latour' initials='J.' surname='Latour'><organization/></author>
<author fullname='H. Habibi Gharakheili' initials='H.' surname='Habibi Gharakheili'><organization/></author>
<date month='May' year='2022'/>
<abstract><t>This informational document details a protocol to load Manufacturer Usage Description (MUD) definitions from RFC 8520 for devices that do not have them integrated.</t><t>This document is published to inform the Internet community of this mechanism to allow interoperability and to serve as a basis of other standards work if there is interest.</t></abstract>
</front>
<seriesInfo name='RFC' value='9238'/>
<seriesInfo name='DOI' value='10.17487/RFC9238'/>
</reference>


<reference anchor='I-D.ietf-anima-brski-ae'>
   <front>
      <title>BRSKI-AE: Alternative Enrollment Protocols in BRSKI</title>
      <author fullname='David von Oheimb' initials='D.' surname='von Oheimb'>
         <organization>Siemens AG</organization>
      </author>
      <author fullname='Steffen Fries' initials='S.' surname='Fries'>
         <organization>Siemens AG</organization>
      </author>
      <author fullname='Hendrik Brockhaus' initials='H.' surname='Brockhaus'>
         <organization>Siemens AG</organization>
      </author>
      <date day='24' month='October' year='2022'/>
      <abstract>
	 <t>   This document enhances Bootstrapping Remote Secure Key Infrastructure
   (BRSKI, RFC 8995) to allow employing alternative enrollment
   protocols, such as CMP.

   Using self-contained signed objects, the origin of enrollment
   requests and responses can be authenticated independently of message
   transfer.  This supports end-to-end security and asynchronous
   operation of certificate enrollment and provides flexibility where to
   authenticate and authorize certification requests.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-anima-brski-ae-03'/>
   
</reference>


<reference anchor="IEEE-802.1AR" >
  <front>
    <title>IEEE 802.1AR Secure Device Identifier</title>
    <author >
      <organization>Institute of Electrical and Electronics Engineers</organization>
    </author>
    <date year="2018" month="June"/>
  </front>
  <seriesInfo name="IEEE" value="802.1AR "/>
</reference>
<reference anchor="BRSKI-PRM-abstract" >
  <front>
    <title>Abstract BRSKI-PRM Protocol Overview</title>
    <author >
      <organization></organization>
    </author>
    <date year="2022" month="April"/>
  </front>
  <format type="PNG" target="https://raw.githubusercontent.com/anima-wg/anima-brski-prm/main/pics/brski_prm_overview.png"/>
</reference>
<reference anchor="onpath" target="https://mailarchive.ietf.org/arch/msg/saag/m1r9uo4xYznOcf85Eyk0Rhut598/">
  <front>
    <title>can an on-path attacker drop traffic?</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>




<reference anchor='RFC6125'>
<front>
<title>Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS)</title>
<author fullname='P. Saint-Andre' initials='P.' surname='Saint-Andre'><organization/></author>
<author fullname='J. Hodges' initials='J.' surname='Hodges'><organization/></author>
<date month='March' year='2011'/>
<abstract><t>Many application technologies enable secure communication between two entities by means of Internet Public Key Infrastructure Using X.509 (PKIX) certificates in the context of Transport Layer Security (TLS). This document specifies procedures for representing and verifying the identity of application services in such interactions.   [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6125'/>
<seriesInfo name='DOI' value='10.17487/RFC6125'/>
</reference>



<reference anchor='RFC8971'>
<front>
<title>Bidirectional Forwarding Detection (BFD) for Virtual eXtensible Local Area Network (VXLAN)</title>
<author fullname='S. Pallagatti' initials='S.' role='editor' surname='Pallagatti'><organization/></author>
<author fullname='G. Mirsky' initials='G.' role='editor' surname='Mirsky'><organization/></author>
<author fullname='S. Paragiri' initials='S.' surname='Paragiri'><organization/></author>
<author fullname='V. Govindan' initials='V.' surname='Govindan'><organization/></author>
<author fullname='M. Mudigonda' initials='M.' surname='Mudigonda'><organization/></author>
<date month='December' year='2020'/>
<abstract><t>This document describes the use of the Bidirectional Forwarding Detection (BFD) protocol in point-to-point Virtual eXtensible Local Area Network (VXLAN) tunnels used to form an overlay network.</t></abstract>
</front>
<seriesInfo name='RFC' value='8971'/>
<seriesInfo name='DOI' value='10.17487/RFC8971'/>
</reference>




    </references>


<section anchor="examples"><name>Examples</name>

<t>These examples are folded according to <xref target="RFC8792"/> Single Backslash rule.</t>

<section anchor="example-pledge-voucher-request-pvr-from-pledge-to-registrar-agent"><name>Example Pledge Voucher Request - PVR (from Pledge to Registrar-agent)</name>

<t>The following is an example request sent from a Pledge to the Registrar-agent, in "General JWS JSON Serialization".
The message size of this PVR is: 4649 bytes</t>

<figure title="Example Pledge Voucher Request - PVR" anchor="ExamplePledgeVoucherRequestfigure"><artwork align="left"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "payload":
    "eyJpZXRmLXZvdWNoZXItcmVxdWVzdC1wcm06dm91Y2hlciI6eyJhc3NlcnRpb24\
iOiJhZ2VudC1wcm94aW1pdHkiLCJzZXJpYWwtbnVtYmVyIjoiMDEyMzQ1Njc4OSIsIm5\
vbmNlIjoiTDNJSjZocHRIQ0lRb054YWFiOUhXQT09IiwiY3JlYXRlZC1vbiI6IjIwMjI\
tMDQtMjZUMDU6MTY6MTcuNzA5WiIsImFnZW50LXByb3ZpZGVkLXByb3hpbWl0eS1yZWd\
pc3RyYXItY2VydCI6Ik1JSUI0akNDQVlpZ0F3SUJBZ0lHQVhZNzJiYlpNQW9HQ0NxR1N\
NNDlCQU1DTURVeEV6QVJCZ05WQkFvTUNrMTVRblZ6YVc1bGMzTXhEVEFMQmdOVkJBY01\
CRk5wZEdVeER6QU5CZ05WQkFNTUJsUmxjM1JEUVRBZUZ3MHlNREV5TURjd05qRTRNVEp\
hRncwek1ERXlNRGN3TmpFNE1USmFNRDR4RXpBUkJnTlZCQW9NQ2sxNVFuVnphVzVsYzN\
NeERUQUxCZ05WQkFjTUJGTnBkR1V4R0RBV0JnTlZCQU1NRDBSdmJXRnBibEpsWjJsemR\
ISmhjakJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQmsxNksvaTc5b1J\
rSzVZYmVQZzhVU1I4L3VzMWRQVWlaSE10b2tTZHFLVzVmbldzQmQrcVJMN1dSZmZlV2t\
5Z2Vib0pmSWxsdXJjaTI1d25oaU9WQ0dqZXpCNU1CMEdBMVVkSlFRV01CUUdDQ3NHQVF\
VRkJ3TUJCZ2dyQmdFRkJRY0RIREFPQmdOVkhROEJBZjhFQkFNQ0I0QXdTQVlEVlIwUkJ\
FRXdQNElkY21WbmFYTjBjbUZ5TFhSbGMzUXVjMmxsYldWdWN5MWlkQzV1WlhTQ0huSmx\
aMmx6ZEhKaGNpMTBaWE4wTmk1emFXVnRaVzV6TFdKMExtNWxkREFLQmdncWhrak9QUVF\
EQWdOSUFEQkZBaUJ4bGRCaFpxMEV2NUpMMlByV0N0eVM2aERZVzF5Q08vUmF1YnBDN01\
hSURnSWhBTFNKYmdMbmdoYmJBZzBkY1dGVVZvL2dHTjAvand6SlowU2wyaDR4SVhrMSI\
sImFnZW50LXNpZ25lZC1kYXRhIjoiZXlKd1lYbHNiMkZrSWpvaVpYbEtjRnBZVW0xTVd\
GcDJaRmRPYjFwWVNYUmpiVlo0WkZkV2VtUkRNWGRqYlRBMldWZGtiR0p1VVhSak1teHV\
ZbTFXYTB4WFVtaGtSMFZwVDI1emFWa3pTbXhaV0ZKc1drTXhkbUpwU1RaSmFrbDNUV3B\
KZEUxRVVYUk5hbHBWVFVSVk5rMUVZelpPUkVWMVRrUlJORmRwU1hOSmJrNXNZMjFzYUd\
KRE1YVmtWekZwV2xoSmFVOXBTWGROVkVsNlRrUlZNazU2WnpWSmJqRTVJaXdpYzJsbmJ\
tRjBkWEpsY3lJNlczc2ljSEp2ZEdWamRHVmtJam9pWlhsS2NtRlhVV2xQYVVwWlkwaHd\
jMVJWZERSaVNFSkNUbXBvYWxaVVZrZFZWVEZaVmxoYWRWTldVVEpWV0dNNVNXbDNhVmx\
YZUc1SmFtOXBVbFpOZVU1VVdXbG1VU0lzSW5OcFoyNWhkSFZ5WlNJNklrY3pWM2hHU0d\
WMFdGQTRiR3hTVmkwNWRXSnlURmxxU25aUllUWmZlUzFRYWxGWk5FNWhkMW81Y0ZKaGI\
yeE9TbTlFTm1SbFpXdHVTVjlGV0daemVWWlRZbmM0VTBONlRWcE1iakJoUVhWb2FVZFp\
UakJSSW4xZGZRPT0iLCJhZ2VudC1zaWduLWNlcnQiOlsiTUlJQjFEQ0NBWHFnQXdJQkF\
nSUVZbWQ0T1RBS0JnZ3Foa2pPUFFRREFqQStNUk13RVFZRFZRUUtEQXBOZVVKMWMybHV\
aWE56TVEwd0N3WURWUVFIREFSVGFYUmxNUmd3RmdZRFZRUUREQTlVWlhOMFVIVnphRTF\
2WkdWc1EwRXdIaGNOTWpJd05ESTJNRFEwTWpNeldoY05Nekl3TkRJMk1EUTBNak16V2p\
BOU1STXdFUVlEVlFRS0RBcE5lVUoxYzJsdVpYTnpNUTB3Q3dZRFZRUUhEQVJUYVhSbE1\
SY3dGUVlEVlFRRERBNVNaV2RwYzNSeVlYSkJaMlZ1ZERCWk1CTUdCeXFHU000OUFnRUd\
DQ3FHU000OUF3RUhBMElBQkd4bHJOZmozaVJiNy9CUW9kVys1WWlvT3poK2pJdHlxdVJ\
JTy9XejdZb1czaXdEYzNGeGV3TFZmekNyNU52RDEzWmFGYjdmcmFuK3Q5b3RZNVdMaEo\
2alp6QmxNQTRHQTFVZER3RUIvd1FFQXdJSGdEQWZCZ05WSFNNRUdEQVdnQlJ2b1QxdWR\
lMmY2TEVRaFU3SEhqK3ZKL2Q3SXpBZEJnTlZIUTRFRmdRVVhwemxNS3hscEE2OGNVNUZ\
RTVhVdm5JVDZRd3dFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUhBd0l3Q2dZSUtvWkl6ajB\
FQXdJRFNBQXdSUUlnYzJ5NnhvT3RvUUJsSnNnbE9MMVZ4SEdvc1R5cEVxUmZ6MFF2NFp\
FUHY0d0NJUUNWeWIyRjl6VjNuOTUrb2xnZkZKZ1pUV0V6NGRTYUYzaHpSUWIzWnVCMjl\
RPT0iLCJNSUlCekRDQ0FYR2dBd0lCQWdJRVhYakhwREFLQmdncWhrak9QUVFEQWpBMU1\
STXdFUVlEVlFRS0RBcE5lVUoxYzJsdVpYTnpNUTB3Q3dZRFZRUUhEQVJUYVhSbE1ROHd\
EUVlEVlFRRERBWlVaWE4wUTBFd0hoY05NVGt3T1RFeE1UQXdPRE0yV2hjTk1qa3dPVEV\
4TVRBd09ETTJXakErTVJNd0VRWURWUVFLREFwTmVVSjFjMmx1WlhOek1RMHdDd1lEVlF\
RSERBUlRhWFJsTVJnd0ZnWURWUVFEREE5VVpYTjBVSFZ6YUUxdlpHVnNRMEV3V1RBVEJ\
nY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRsRzBmd1QzM29leloxdmtIUWJldGV\
ibWorQm9WK1pGc2pjZlF3MlRPa0pQaE9rT2ZBYnU5YlMxcVppOHlhRVY4b2VyS2wvNlp\
YYmZ4T21CanJScmNYbzJZd1pEQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQTRHQTF\
VZER3RUIvd1FFQXdJQ0JEQWZCZ05WSFNNRUdEQVdnQlRvWklNelFkc0Qvai8rZ1gvN2N\
CSnVjSC9YbWpBZEJnTlZIUTRFRmdRVWI2RTliblh0bitpeEVJVk94eDQvcnlmM2V5TXd\
DZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBUG5CMHcxTkN1cmhNeEp3d2ZqejdnRGlpeGt\
VWUxQU1o5ZU45a29oTlFVakFpRUF3NFk3bHR4V2lQd0t0MUo5bmp5ZkRObDVNdUVEQml\
teFIzQ1hvWktHUXJVPSJdfX0",
    "signatures":[{
      "protected":"eyJ4NWMiOlsiTUlJQitUQ0NBYUNnQXdJQkFnSUdBWG5WanNVN\
U1Bb0dDQ3FHU000OUJBTUNNRDB4Q3pBSkJnTlZCQVlUQWtGUk1SVXdFd1lEVlFRS0RBe\
EthVzVuU21sdVowTnZjbkF4RnpBVkJnTlZCQU1NRGtwcGJtZEthVzVuVkdWemRFTkJNQ\
0FYRFRJeE1EWXdOREExTkRZeE5Gb1lEems1T1RreE1qTXhNak0xT1RVNVdqQlNNUXN3Q\
1FZRFZRUUdFd0pCVVRFVk1CTUdBMVVFQ2d3TVNtbHVaMHBwYm1kRGIzSndNUk13RVFZR\
FZRUUZFd293TVRJek5EVTJOemc1TVJjd0ZRWURWUVFEREE1S2FXNW5TbWx1WjBSbGRtb\
GpaVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQzc5bGlhUmNCalpjR\
UVYdzdyVWVhdnRHSkF1SDRwazRJNDJ2YUJNc1UxMWlMRENDTGtWaHRVVjIxbXZhS0N2T\
XgyWStTTWdROGZmd0wyM3ozVElWQldqZFRCek1Dc0dDQ3NHQVFVRkJ3RWdCQjhXSFcxa\
GMyRXRkR1Z6ZEM1emFXVnRaVzV6TFdKMExtNWxkRG81TkRRek1COEdBMVVkSXdRWU1CY\
UFGRlFMak56UFwvU1wva291alF3amc1RTVmdndjWWJNQk1HQTFVZEpRUU1NQW9HQ0NzR\
0FRVUZCd01DTUE0R0ExVWREd0VCXC93UUVBd0lIZ0RBS0JnZ3Foa2pPUFFRREFnTkhBR\
EJFQWlCdTN3UkJMc0pNUDVzTTA3MEgrVUZyeU5VNmdLekxPUmNGeVJST2xxcUhpZ0lnW\
ENtSkxUekVsdkQycG9LNmR4NmwxXC91eW1UbmJRRERmSmxhdHVYMlJvT0U9Il0sImFsZ\
yI6IkVTMjU2In0",
      "signature":"Y_ohapnmvbwjLuUicOB7NAmbGM7igBfpUlkKUuSNdG-eDI4BQ\
yuXZ2aw93zZId45R7XxAK-12YKIx6qLjiPjMw"
  }]
}
]]></artwork></figure>

</section>
<section anchor="example-parboiled-registrar-voucher-request-rvr-from-registrar-to-masa"><name>Example Parboiled Registrar Voucher Request - RVR (from Registrar to MASA)</name>

<t>The term parboiled refers to food which is partially cooked.  In <xref target="RFC8995"/>, the term refers to a Pledge voucher-request (PVR) which has
been received by the Registrar, and then has been processed by the Registrar ("cooked"), and is now being forwarded to the MASA.</t>

<t>The following is an example Registrar voucher-request (RVR) sent from the Registrar to the MASA, in "General JWS JSON Serialization".
Note that the previous PVR can be seen in the payload as "prior-signed-voucher-request".
The message size of this RVR is: 13257 bytes</t>

<figure title="Example Registrar Voucher Request - RVR" anchor="ExampleRegistrarVoucherRequestfigure"><artwork align="left"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "payload":
    "eyJpZXRmLXZvdWNoZXItcmVxdWVzdC1wcm06dm91Y2hlciI6eyJhc3NlcnRpb24\
iOiJhZ2VudC1wcm94aW1pdHkiLCJzZXJpYWwtbnVtYmVyIjoiY2FmZmUtOTg3NDUiLCJ\
ub25jZSI6ImM1VEVPb29NTE5hNEN4L1UrVExoQ3c9PSIsInByaW9yLXNpZ25lZC12b3V\
jaGVyLXJlcXVlc3QiOiJleUp3WVhsc2IyRmtJam9pWlhsS2NGcFlVbTFNV0ZwMlpGZE9\
iMXBZU1hSamJWWjRaRmRXZW1SRE1YZGpiVEEyWkcwNU1Wa3lhR3hqYVVrMlpYbEthR01\
6VG14amJsSndZakkwYVU5cFNtaGFNbFoxWkVNeGQyTnRPVFJoVnpGd1pFaHJhVXhEU25\
wYVdFcHdXVmQzZEdKdVZuUlpiVlo1U1dwdmFWa3lSbTFhYlZWMFQxUm5NMDVFVldsTVE\
wcDFZakkxYWxwVFNUWkpiVTB4VmtWV1VHSXlPVTVVUlRWb1RrVk9ORXd4VlhKV1JYaHZ\
VVE5qT1ZCVFNYTkpiVTU1V2xkR01GcFhVWFJpTWpScFQybEplVTFFU1hsTVZFRjVURlJ\
KZVZaRVFUTlBhazE2VDJwQk5FeHFSVFZPYkc5cFRFTkthRm95Vm5Wa1F6RjNZMjA1TW1\
GWFVteGFRekYzWTIwNU5HRlhNWEJrU0d0MFkyMVdibUZZVGpCamJVWjVURmRPYkdOdVV\
XbFBhVXBPVTFWc1JGSkdVa1JSTUVacFZESmtRbVF3YkVOUlYyUktVakJHV1ZkWVRuZFR\
WMVoyVkZWR2RsSXdUa1JqVldSVVZGUlJOVkZyUms1Uk1ERkhaRE5vUkdWclJrdFJiV1J\
QVm10S1FsZFdVa0poTUZwVFZGWktTbVF3VmtKWFZWSlhWVlpHVEZKRlJuTlViVlpXVkc\
1YWFWZEZTbTlaYlRWeVpVVmFWVkZXVWtOYU1EVlhVV3RHZWxSVlVrWk5WRlpXVFRGYWN\
GbDZTbk5oTWtaWVVtNXNiRlpGVmxGVVZVVjNVakJGZUZaVlZrTmtNMlJJVmtab2MxWkh\
SbGxWYlhoT1ZXdFdNMUpJWkZwU1JscFNWVlZTUlZGWGFFOWFWbHBQWTBkU1NGWnJVbEp\
XUlVac1VtNWpkMlZWTVVWU1dHeE9Va1pHTTFSdWNFcE5WVFZGWVVkR1IyUjZRalpVVlZ\
KR1pWVXhSVlZZWkU5bGEydDRWR3RTYjFsVk1VaFRXR2hFWld0R1MxRnRaRTlXYTBwQ1Y\
xWlNRbUV3V2xOVVZrcEtaREJXUWxkVlVsZFZWa1pNVWtWR2MxUnRWbFpVYmxwcFYwVkt\
iMWx0TlhKbFJWcEZVVlpPUTFvd05WZFJhMFo2VkZWTmQwMVVWbFpOTVZwd1dYcEtjMkV\
4YkZsVGFsWk9WVlJvTTFKR1JscFNSbHBTVlZWb1JWRldjRTlhVmxwUFkwZFNTRlpZYUV\
oU1JVWllVVzFrVDFaclNrSlVWVEZGVFVSRk1WWlVTbk5OUm5CWFUyMTRZVTF0ZURaYVJ\
XaExZVWRPY1ZGc2NFNVJhekZJVVc1c2VGSXhUazVPUkd4Q1dqQldTRkV3VG5oU01VNU9\
Ua1JzUW1Rd1ZrbFJWRUpLVVZWS1NsVklhRmhrVlRGSlVucG9TMVJIV2taVlJVVTFUMWh\
hZDAxdVZrbFNWVFZxVlROc2JWa3pWVE5VUjJSYVRraEJlRTVGUmtOT01GSk9XbFJGTkU\
xSVRrWmxSV1J4VkZOME0yTnJOVFJPTURVMVdWaE9lRXQ2Um5CTlJXUlVVVEZKTlU1VVV\
UTk5SRVp0VWpKV1dGUldSbWxqVjNCWVpXdEtZVlJWU1hkU01FVjRWbGRTUzFWV1JsaFV\
WVXBTVWpCT1JHTXdaRUpWVmxaSFVXNWtUbEZyU201YU0wcERXakJXUjFGc1JtcFNSV2h\
GVVZVNVExb3dOVmRUUmtVMFVXdEdiVTlGVmtOUlZURkVVV3BTUW1Rd2RFSlhWVkpYVld\
wQ1UxRnJUa1prTUdjd1UxZFNhVmRIZURaWlZtaFRZa2RPZEZadE5XaFhSVFIzV1RJeFI\
yVlZlSFJOVkZaYVRXcHNNRmt3WkVka1YxWlVUbGR3YVUxcVFqTlJNbVJhVTFWMGRsZHJ\
iRFpoYWtKR1VWaGtTbEpHVGtKUldHUlRWVlZzYjFGV1FqVlBXRnBOVTFkR01WVnJWbEp\
qYlhnMVlteGtNRlI2VmxOaVZYQXdZVmhTVW1GNlpFOVhSRkpMVlVoV2RWVklRazlVYXp\
BeFZWUnNRbUZWUm5sa1JVNTBWRVprWVZSVmJFMVdiRTEyVFZWc1JWbFhjR2xqTVU1Sll\
tNXdkbUpYYjNkV1F6a3paVmhKY21Nd2RFdGpRM1IxVFhwU1VsQlVNR2xNUTBwb1dqSld\
kV1JETVhwaFYyUjFXbGRSZEZwSFJqQlpVMGsyU1cxV05WTnVaRnBYUjNoNldXcEtSMkV\
3YkhGaU1teGhWMGQ0VEZrd1duZFhWbFowVFZVeFdGSnVRWGxYYTFwclZESkplR05HYkZ\
SWFJrcHhXV3hhWVU1R2NFZGFSbVJzWWxaS1JWUldhR3RoYlVwVlVWUktXRlp0VW5KWmE\
yUkxaRlpXV1ZWdGNFNWlXR2d4VjFjd2VGWXlSWGRsUm1oV1lsZG9jbFZxUWxkalJsRjV\
UbGh3YUZadGREWlZNakUwVjJ4a1IxTnVUbGhoTURFMFdrY3hTMk5HVGxWWGEzQm9ZVEo\
zZWxaR1pIZFNiVkpHVFZaV1UxZEdTazlXYTFwM1ZteFNWbFZyY0U5aGVrVXlWVlpTWVZ\
Sc1NrWlNha1pWVmxaS1ExcEVSbXRqUms1WlZHdHdhV0Y2Vm5wWFZFbDRZekpHU0ZOclV\
rNVhSbHB5Vm01d1IyTkdaSE5oUlhCb1ZsUnNkMVV5TVhkWGJGbDRZMGhTV0dKRk1UTlV\
iRlUxVWxac05sRnJPVlpOUnpneFYyMTRSbUZWZUVSVGJuQm9WakpTTVZkV2FGTk5WMDU\
wVm01d1NtRnVRbWxhV0d4TFpESk9kRTlVUW1GV01EUjNWMnhrVW1GVk9YQlRiWGhzVmx\
oQ2RsZFhkR3RoYlVaV1QxaENWR0V4Y0ZkYVYzUnlaVVpTZEdKRmNHcE5SM2d3V2tWb1E\
xbFdSWGRoZWtwVVZqTm9kbFZ0ZEhwbFZsWlpVMnhTYVdKclNrcFdhMVpUVVcxV2MxSnV\
VbFJpVlZwVlZXdGFjbVZzVFhwalJ6bFhUVlpHTmxkWWNFTmhiRWw1V1ROa1ZVMUdSak5\
aVm1SaFZXdHNjR1F5YkdwTmJYaDFXVzB4UjAxSFVsbFRiWGhLWVcwNWNGZEVRazlsYXp\
sV1QxWm9VMkpyY0dGWmJHTTFaV3hOZDA5WVZsSlhSMUpUVjFSR1YyRXhiM2RqUlZaWVV\
qRndUVmxzVWt0WFZUbFhVMnhXVjFJd05URlVSazE0WXpGUmQwNVdRbWxTZWxaMlZqSjB\
SazFGT1VaWGJYUlhZa2hCZDFReFVrOWhNbEY0Vld0d1YxWlVWbGRYUkVwaFYyczVWMWR\
1UWxkaVJHdzFWWHBPVDFaV1JuSmhSa3BRVmpOQ2Vsa3haSHBsVjBsNldUSnNiVlpxUlR\
WSmFYZHBXVmRrYkdKdVVYUmpNbXh1WW1reGFscFlTakJKYW5CaVNXc3hTbE5WVGt0U1J\
VNUVVVmRPZUZvd1JqTlRWVXBDV2pCc1JsZEhlSEZSTURGRlVWVjBRMW95WkhoaFIzUnh\
WREZDVWxWVlVrSmhhMHB6VkZaR2VtUXdUbEpYVlZKWFZWWkdTRkpZWkV0UmJGWlZVbFp\
PVGxGclJraFJWRVpXVWxWT2JtUXdjRlZYUjNoRldXcEplR1F4YkZoT1ZGWk9WV3hXTTF\
KWVpGcFNSbHBTVlZWNFJWRllhRTlhVmxwUFRWWnNkVlJ1UW1GU01uaHZXVEkxY21WRlV\
qWlJWVFZEV2pBMVYxRnJSbXBVVlVweVRWUldWazF0ZDNkWGJGSkdXVlV4UTFvd1pFSk5\
WbFpHVVZoa00xVnNVbGxpUmxKb1YwWktjMVpWYUZkbGJVWkdUVmhhWVZJeFducFZWRUp\
HWkRCb2Ixa3dOVTVoYTBZelZGZHdTazVGTVVWWk0zQk9aV3RGZDFZeWFHcFVhekUyVVZ\
oa1RtRnJhekJVVlZKcVpXc3hObEZVUWxoaGEwcDBWRlpHZW1Rd1RsSlhWVkpYVlZaR1N\
GSllaRXRSYkZaVlVsWk9UbEZyUmtoUlZFWldVbFZPYm1Rd2NGVlhSM2hGV1dwSmVHUXh\
iRmhPVkZaT1ZXeFdNMUpZWkZwU1JscFNWVlY0UlZGWWFFOWFWbHBQVFZac2RWUnVRbUZ\
TTW5odldUSTFjbVZGVWpaUlZUVkRXakExVjFGclJtcFVWVXB5VFZSV1ZrMXRkM2RYYkZ\
KR1dXc3hRMkV3WkVKTlZsWkdVVmhrTTFVeFVsbGlSbEpvVjBaS2MxWlZhRmRsYlVaR1R\
WaGFZVkl4V25wVlZtaERaREF4UjJFelpFWmtNV3hKVXpJNVlWTlljSEZOUlU1Q1ZWWnN\
TbE15T1dGVFdIQnhUVVZTUWxWWFRrVlZWMlJDVWxSWmQwMVZPSEppTW5CRVlUTktSVlZ\
1WXpOYU1Hd3lWMnRWTUdGVVRUQmFSMHB2VVROR2NGSjZaSEZpTWprelYyNUJNR1ZJV2p\
aU2JsSk5XbnBhVlZaNlFtOVViVkpKWkd4Q1JWVXhVbnBrVm1oVVpWWmpOV1JJU1hwUld\
HUkVZa2RhUkdJd1VsZFVia1pRWkhwc05WUldaekpVYlRWT1VqRldNMUpIWkZwU1JscFR\
UVVpDUWxWVlozWlJhMFpTVWtWR2JscFZSazVSYW1oSVVWUkdWbHBGYkROVlZteE9VVzF\
HUWxKcmJ6TlRTRkpVWkROQ1RWUklWbEJYYW1ScVlUQkdjMVZWYUZaTk1tUkNWRmRqZGx\
Ock1VTk5SV1JDVFZaV2ExSkhaRkpXTUVwRFZXMU9WVTVVVFRCaWF6RmFaR3hTYWxKdVV\
uSmFia295VGpOb1ZrNHdVbkJpVldoeFpXdEdWVkZ0WkU5V2EyaFVWbFZXUlZKRlJreFJ\
iV1J1WTJ0S2JsSlZXa05WVjA1RlVWZHdRbE13U201YU0wWnZZVEp3VUZWR1JsSlNSVVp\
1Vkd0c1FsSkZTa2RSVjJ4R1VWaENTMDR6YUhkVWJGWXlWVlZ3U0UxRk5XOVVSMGwyV2x\
oU2FVMXFRazFTUmxWNFRtMTRkMVV3YUZCT01rWnNZbnBDVjFkWVozZGxTR1JFVTFWRmN\
sUjZWWFpYVkZwRllVTjBhVkZxU1RSTmFsSXhZVmRHVUZWWFJsWlNSRnB1VVZVMWIxZFV\
iRmRTYlZGeVlXNUtlVmt3VmpKVGJsRnBURU5LVGxOVmJFUlNNVkpFVVRCR2FVc3laRUp\
rTUd4RFVWZGtTbEpXYUhOaGEwVjJaV3RHVEZGdFpHNWpWMmh5WVdzNVVWVldSa1ZSVjN\
CRFdUQXhVbU16WkVSVlZteEZWbXhHVWxJd1ZqTlRhMHBXVmtWV1ZGUlZTa0pTTUVWNFZ\
sVldSRm96WkV0V1JtaHpVa2RKZVUxWVpGcFdlbFV4VkZaS1ZtUXdWak5YVlZKWFZWWkd\
UVkpGUmpSVWJWWlhWR3BHV21Kck5YZFhhMlJ6WVVkT2RXRXphRVZsYTBaUFVXMWtUMVp\
yU2tKWk1ERkRZWHBGTVZaVVNuTk5SbkJWVWxaS1RsRlVhRWhSVkVaV1VsVkdNMlF3YkZ\
WWFIzaFZXVlpvVTJKR1JYZFNXR1JKWVVkT1QxUlhjRUprTURGeFUxUlNUbEpIVGpWVWJ\
uQldUbFprYjFrd05VNWxhMFl6VkZkd1NrNUZNVVZaTTJ4UFpXeFZNVll5Y0VOaVJURlN\
Zek5rUkZWV2JFVldiRVpTVWpCV00xTnJTbFpXUlZaVVZGVktRbEl3UlhoV1ZWWkVXak5\
rUzFaR2FITlNSMGw1VFZoa1dsWjZWVEZVVmtwV1pEQldNMWRWVWxkVlZrWk5Va1ZHTkZ\
SdFZsZFVha1phWW1zMWQxZHJaSE5oUjA1MVlUTm9SV1ZyUms5UmJXUlBWbXRLUWxrd01\
VTmhla1V4VmxSS2MwMUdjRlZTVjBaT1VXMWtTRkZVUmxaU1ZVWXpaREZLVlZkSGVGVlp\
WbWhUWWtaV1NWWnVjR2hTVkVZeVYydGtWMk14UlhkU1dHUllWa1ZHVlZGdFpHcGpWMmh\
5WVdzNVVWVlZiRU5SYldSdVkxZG9jbUZyT1ZGVlZURkRVVzVrVDFFd1JrSlZhM0JEVm0\
wNWVscEZkRE5YVlRVMFlWWkNORk5JV25CU2JrWk1aV3RTYzA5WFdqQlVTRlpPV1ZjeGQ\
xSnNSbXBYU0dONFRXcGthRlJ0T1ZOWmJrNUpUREJhVG1OdE1UWlJNRVpKVFhwak0wMTZ\
UbXBOYlRscFZVZE9jMlJzVG5sWFZVb3lUVVZPTUZZeFJqQlpWRnBvU3pKT2RrMXNiRE5\
YYTFKQ1ZUQktibFJzV2tsVmF6RkRVVmRaTkZKVlRrVlJWV1JDVlZWbmRsRlhaRVpSVlR\
GQ1RrVmtRazFXVm10U1NHUkdVV2s1TTFWVlZrSmtNR3hFVVd0U1FscHJTbTVVYkZwSlZ\
UQXhSbEl3VWtKV01tUkRWVmh3TkdWdVpIZFZia0pOWlZNNWVWUldWbHBsYlVadlRXNU5\
lRTB5VmxaUFYyUkhaV3RHYTFGdFpFOVdhMmhTVGtWV1Ixb3hSbFppYms1c1RWVjRSR0V\
6VGpGT1JGWjFaRWhzVWxFeFdrSmFSbEpzVVZWR05WSkVhSEprTUU1dVYxVnNUR0l4Y0V\
wbGJXOTNVbFZHTTFOVlVsUlJWVVl6Vld4R1NtRkZSa3BqTVd4eldsWndUR015Y0VkVWE\
wNTZVMnQwYkZWSGVFaFVWVVpOV2xoQ1YxcFViRVpVUkdSUFlqTlJNVTFVVmpObFJ6Rlh\
aRlZ3UTFGWGJFSlpNRlpPVmxaV2IxSldUbnBVUm1SUlRsaG9WRlZXVlhkWFNFWTJWbTV\
GTkZkWVduQlNha1pwVm0wNU5sSXpjRFJPV0hCUFdqSk9lbVI2TURsSmJERTVabEVpTEN\
KemFXZHVZWFIxY21WeklqcGJleUp3Y205MFpXTjBaV1FpT2lKbGVVbzBUbGROYVU5c2M\
ybFVWV3hLVVRCb2NWRXdUa0paTVU1dVVWaGtTbEZyUm01VFZXUkNWMGRvTUUxVVVucGl\
NREZDWWpCa1JGRXpSa2hWTURBd1QxVktRbFJWVGs1U1ZtdzBVVE53UWxOclNtNVViRnB\
EVVZac1ZWRlhkRTlUVlRGVFZGaGtSbFZXYkVWV2JFWlNVekJTUW1OR1VtaFdNVm93VjJ\
4ak1XVnJiRVpTYTJoT1ZWUm9NMUpHUmxwU1JscFNWVlY0UlZGV2NFUldhMDVEVWtaV1I\
xUllhRVpXUlVaUlVXMWtUMVpyU2tKVVZURkVVbXh3YzFsdE1WTmtiVTV5Vkd0S1RsRXd\
SbGxTUmxKS1pVVXhSVlJZYkU5aGEwVXhWRmR3U21WVk5WZGlNV3hGWlcxek1WUXhVbkp\
sUlRGeFZGaG9UbUZyTUhoVU1WSldUbFprY1ZGdGFFNVZXRTR6VVRGR1dsSkdXbEpWVld\
SR1pEQndSVlV3VWtaV1JURkRVbFZrUWsxV1ZrWlJNbVF6VXpGVmVXSkhlR2xXTVZveFd\
UTnNRMUZzU2paU1ZrSk9VVlJDU0ZGVVJsWlNWVTR6WkRCa1VtSkdSbTVWVkVaRFZrVXh\
VMVZZWkVaYU1XeEZWbXhHVWxKclZqTmtSM0JhVmpGd2RGZHNUWGRPVlRsRldYcENUMVp\
GVmxoVVZVcFNVakJGZUZaVlZrSmtNMlJQVmxWYWIxSkZNVFZPVlZwUFpXeFdNRlJXVWt\
Ka01VWlZVV3h3VGxGck1VaFJibXg0VWpGT1RrNUViRUphTUZaSVVUQk9lRkl4VGs1T1J\
HeENaREJXU1ZGVVFrcFJWVXBQVFVSb2NWWXdlSHBOUjBadlV6Qm9XbGR1Vm05aVZ6Rmp\
UREpqTkdScVVsaFRNR2d5VVZoU2FGcHNSazFSVTNSS1pGVXhUMkZITVc1aFZ6RllUakJ\
HVG1OdVJtOWlWMHBWVFRCc2FGVkZUalZoUnpGaFUxWk9kMVI2V20xaVUzTXlVMWhhWTB\
3eldrcGphM1J2VlZaU01WWnRPVXhoYldSYVVWaGtiV0ZyUm5aUmJXUnVZMnRLYmxKVld\
rTlZWMDVEVTFWR1Vsa3dVa05qU0ZKYVYwVTFiMVJHYUZOaVIwMTZWVmhXYWsxdGVITlp\
iR1JYWkZkT05VNVhjR2xOYWtFeVZERlNVazFGTVRaUlZsSkRXakExVjFOR1RsWlNWVkp\
GVVZWMFExb3laSGxSYldSR1VtdEtVbGt3VWtKV1JVWlFVVzFrVDFacmFGSlBSVXBDV21\
wb1JsRnJSazVSTUVrd1VWaGtUVlZXYkVWV2JFbDNWV3RLUkZkWVpFdFRWV3h3V2tWa2I\
ySkZlSFZYYlhocFlsWktNbGt5YXpGaGJHeFlUa2hXYVdKVWEzZFVSekV3WkZkSmVsa3p\
WbXRTTW1oM1dUTnJNVTFzYkZobFJFWmhWa1ZHVEZGdFpHNWpWMmh5WVdzNVVWVldSa1Z\
SVjJSUFUxVkdSVkZyV2tKaFZVazFVVzB4ZUZRemNIRlZWR2hzV1ZkamVWTnVVblprVmx\
KdlVsWm9lVm93T1VOWFZsRjNVWHBvWVdSRGREVlBWemxKVWtad1JWbHNVbEpUVjJoQ1Z\
HMXpNbVJIT1ZOaU1sWkVXVmMxYUZSWGNFNVdSWGgwWWxaV2RXSlhTbkphYWtKNldsaGF\
jbEV3YnpSTmJXc3hWbGhHY1ZWcldsZFZVMHBrVEVOS2FHSkhZMmxQYVVwR1ZYcEpNVTV\
wU2praUxDSnphV2R1WVhSMWNtVWlPaUphWTFwa1dYbzBiMUl3UjJKc09UWnFNWGxZWm5\
kdlRYZGxVVGt6VGpCdFNVUmxjVFkyVTBacWRFdG9lR1pSWjNJMGRUWkpOVEJKWldNMmE\
xWTJhSEV3YVcxdlptTlBhVGs0VW1OSVpXUmpNVzFuZHpCWVp5SjlYWDA9IiwiY3JlYXR\
lZC1vbiI6IjIwMjItMDItMjJUMDc6MzM6MjUuMDIwWiIsImFnZW50LXNpZ24tY2VydCI\
6WyJNSUlDSkRDQ0FjcWdBd0lCQWdJRVhsakNNREFLQmdncWhrak9QUVFEQWpCbE1Rc3d\
DUVlEVlFRR0V3SkJVVEVTTUJBR0ExVUVDZ3dKVFhsRGIyMXdZVzU1TVJVd0V3WURWUVF\
MREF4TmVWTjFZbk5wWkdsaGNua3hEekFOQmdOVkJBY01CazE1VTJsMFpURWFNQmdHQTF\
VRUF3d1JUWGxUYVhSbFVIVnphRTF2WkdWc1EwRXdIaGNOTWpBd01qSTRNRGN6TXpBMFd\
oY05NekF3TWpJNE1EY3pNekEwV2pCbU1Rc3dDUVlEVlFRR0V3SkJVVEVTTUJBR0ExVUV\
DZ3dKVFhsRGIyMXdZVzU1TVJVd0V3WURWUVFMREF4TmVWTjFZbk5wWkdsaGNua3hEekF\
OQmdOVkJBY01CazE1VTJsMFpURWJNQmtHQTFVRUF3d1NUWGxUYVhSbFVIVnphRTF2Wkd\
Wc1FYQndNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUU2MDFPK29qQ2t\
yRFJ3N2dJdlpFNGkzNGRiaENxaUc3am9vd1pwNHh2ekZ0TGc2VFcwaE5kSHZQRFNUc3V\
YU3lXOXRyM0F3Q2xmQ29EVk5xT3c5eU1YNk5uTUdVd0RnWURWUjBQQVFIL0JBUURBZ2V\
BTUI4R0ExVWRJd1FZTUJhQUZKN0h0U3dwTEx1T1o3Y2tBbFFIVTNnQU1nL0pNQjBHQTF\
VZERnUVdCQlJjVDUzNG5NWXZUY0Z0a2Zydjd4VTdEaW1IanpBVEJnTlZIU1VFRERBS0J\
nZ3JCZ0VGQlFjREFqQUtCZ2dxaGtqT1BRUURBZ05JQURCRkFpRUFwSjd4cE5VdlFKRzB\
OaExiL2V0YjIwTERVMTZscFNITzdhZW8wVll4MHh3Q0lBK081L1k2RGgrYkIyODI0dWl\
hT1FhVUQ2Z0FOaFk5VkZkK2pycmNFdkp0IiwiTUlJQ0dUQ0NBYitnQXdJQkFnSUVYbGp\
BL3pBS0JnZ3Foa2pPUFFRREFqQmNNUXN3Q1FZRFZRUUdFd0pCVVRFU01CQUdBMVVFQ2d\
3SlRYbERiMjF3WVc1NU1SVXdFd1lEVlFRTERBeE5lVk4xWW5OcFpHbGhjbmt4RHpBTkJ\
nTlZCQWNNQmsxNVUybDBaVEVSTUE4R0ExVUVBd3dJVFhsVGFYUmxRMEV3SGhjTk1qQXd\
Nakk0TURjeU56VTVXaGNOTXpBd01qSTRNRGN5TnpVNVdqQmxNUXN3Q1FZRFZRUUdFd0p\
CVVRFU01CQUdBMVVFQ2d3SlRYbERiMjF3WVc1NU1SVXdFd1lEVlFRTERBeE5lVk4xWW5\
OcFpHbGhjbmt4RHpBTkJnTlZCQWNNQmsxNVUybDBaVEVhTUJnR0ExVUVBd3dSVFhsVGF\
YUmxVSFZ6YUUxdlpHVnNRMEV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkN\
BQVJKQlZvc2RLd1lOeGlQeEh2aUZxS3pEbDlmdEx1TWFtcEZRY1h3MTI3YU5vUmJzSC9\
GTXJtekNBSDM3NzMzYzJvYlBjbHZTcllCdjBDdFdRdGE2YStjbzJZd1pEQVNCZ05WSFJ\
NQkFmOEVDREFHQVFIL0FnRUFNQTRHQTFVZER3RUIvd1FFQXdJQ0JEQWZCZ05WSFNNRUd\
EQVdnQlF6eHp3cFJwTHkvck1VWXphaDJzMTNlVTlnRnpBZEJnTlZIUTRFRmdRVW5zZTF\
MQ2tzdTQ1bnR5UUNWQWRUZUFBeUQ4a3dDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBSXN\
ZbGVaS3NqRk5Dc0pLZVBsR01BTGVwVmU5RUw3Tm90NTE1d3htVnVKQkFpQWNFTVVVaEV\
Tc0xXUDV4U1FVMFhxelZxOFl2aUYxYlZvekd6eDV6Tmdjc3c9PSJdfX0",
  "signatures":[{
    "protected":"eyJ4NWMiOlsiTUlJQjhEQ0NBWmFnQXdJQkFnSUdBWEJoTUtZSU1\
Bb0dDQ3FHU000OUJBTUNNRnd4Q3pBSkJnTlZCQVlUQWtGUk1SSXdFQVlEVlFRS0RBbE5\
lVU52YlhCaGJua3hGVEFUQmdOVkJBc01ERTE1VTNWaWMybGthV0Z5ZVRFUE1BMEdBMVV\
FQnd3R1RYbFRhWFJsTVJFd0R3WURWUVFEREFoTmVWTnBkR1ZEUVRBZUZ3MHlNREF5TWp\
Bd05qQXlNak5hRncwek1EQXlNakF3TmpBeU1qTmFNSGt4Q3pBSkJnTlZCQVlUQWtGUk1\
SSXdFQVlEVlFRS0RBbE5lVU52YlhCaGJua3hGVEFUQmdOVkJBc01ERTE1VTNWaWMybGt\
hV0Z5ZVRFUE1BMEdBMVVFQnd3R1RYbFRhWFJsTVM0d0xBWURWUVFERENWU1pXZHBjM1J\
5WVhJZ1ZtOTFZMmhsY2lCU1pYRjFaWE4wSUZOcFoyNXBibWNnUzJWNU1Ga3dFd1lIS29\
aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRUJUVFwvc1JmTDlsSnVGbVwvY24zU2pHcWp\
QXC9xdnBrNytoSTIwOE5oVkRvR2hcLzdLUCt2TXpYeVFRQStqUjZrNnJhTTI4ZlwvbHV\
FK1h1aHVwN1Vmem05Q3FNbk1DVXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUhBeHd3RGd\
ZRFZSMFBBUUhcL0JBUURBZ2VBTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSUhOK3VBbUp\
ldVhlc1wveWQxd1M0Mlo0RFhKNEptMWErZzNYa1pnZjhUaGxuQWlFQXBVdTZzZnljRWt\
veDdSWlhtZitLOHc0cDZzUldyamExUVJwWTAyNjQxSFk9IiwiTUlJQjhEQ0NBWmVnQXd\
JQkFnSUdBWEJoTUtZQk1Bb0dDQ3FHU000OUJBTUNNRnd4Q3pBSkJnTlZCQVlUQWtGUk1\
SSXdFQVlEVlFRS0RBbE5lVU52YlhCaGJua3hGVEFUQmdOVkJBc01ERTE1VTNWaWMybGt\
hV0Z5ZVRFUE1BMEdBMVVFQnd3R1RYbFRhWFJsTVJFd0R3WURWUVFEREFoTmVWTnBkR1Z\
EUVRBZUZ3MHlNREF5TWpBd05qQXlNak5hRncwek1EQXlNakF3TmpBeU1qTmFNRnd4Q3p\
BSkJnTlZCQVlUQWtGUk1SSXdFQVlEVlFRS0RBbE5lVU52YlhCaGJua3hGVEFUQmdOVkJ\
Bc01ERTE1VTNWaWMybGthV0Z5ZVRFUE1BMEdBMVVFQnd3R1RYbFRhWFJsTVJFd0R3WUR\
WUVFEREFoTmVWTnBkR1ZEUVRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMEl\
BQkluQ3VoV1ZzZ2NONzFvWmVzMUZHXC9xZFZnTVBva01wZlMyNzFcL2V5SWNcL29EVmJ\
NRkhDYmV2SjVMTTgxOTVOYVpLTlNvSFAzS3dMeXVCaDh2MncwOVp1alJUQkRNQklHQTF\
VZEV3RUJcL3dRSU1BWUJBZjhDQVFFd0RnWURWUjBQQVFIXC9CQVFEQWdJRU1CMEdBMVV\
kRGdRV0JCUXp4endwUnBMeVwvck1VWXphaDJzMTNlVTlnRnpBS0JnZ3Foa2pPUFFRREF\
nTkhBREJFQWlCZGJIU212YW9qaDBpZWtaSUtOVzhRMGxTbGI1K0RLTlFcL05LY1I3dWx\
6dGdJZ2RwejZiUkYyREZtcGlKb3JCMkd5VmE4YVdkd2xIc0RvRVdZY0k0UEdKYmc9Il0\
sImFsZyI6IkVTMjU2In0",
    "signature":"67t3n8zyEek4IM2Ko3Y_UvE1hzp794QFNTqG-HzTrBQtE4_4-yS\
yyFd3kP6YCn35YYJ7yK35d3styo_yoiPfKA"
  }]
}
]]></artwork></figure>

</section>
<section anchor="example-voucher-response-from-masa-to-pledge-via-registrar-and-registrar-agent"><name>Example Voucher Response (from MASA to Pledge, via Registrar and Registrar-agent)</name>

<t>The following is an example voucher response from MASA to Pledge via Registrar and Registrar-agent, in "General JWS JSON Serialization". The message size of this Voucher is: 1916 bytes</t>

<figure title="Example Voucher Response from MASA" anchor="ExampleVoucherResponsefigure"><artwork align="left"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "payload":"eyJpZXRmLXZvdWNoZXI6dm91Y2hlciI6eyJhc3NlcnRpb24iOiJhZ2V\
udC1wcm94aW1pdHkiLCJzZXJpYWwtbnVtYmVyIjoiMDEyMzQ1Njc4OSIsIm5vbmNlIjo\
iTDNJSjZocHRIQ0lRb054YWFiOUhXQT09IiwiY3JlYXRlZC1vbiI6IjIwMjItMDQtMjZ\
UMDU6MTY6MjguNzI2WiIsInBpbm5lZC1kb21haW4tY2VydCI6Ik1JSUJwRENDQVVtZ0F\
3SUJBZ0lHQVcwZUx1SCtNQW9HQ0NxR1NNNDlCQU1DTURVeEV6QVJCZ05WQkFvTUNrMTV\
RblZ6YVc1bGMzTXhEVEFMQmdOVkJBY01CRk5wZEdVeER6QU5CZ05WQkFNTUJsUmxjM1J\
EUVRBZUZ3MHhPVEE1TVRFd01qTTNNekphRncweU9UQTVNVEV3TWpNM016SmFNRFV4RXp\
BUkJnTlZCQW9NQ2sxNVFuVnphVzVsYzNNeERUQUxCZ05WQkFjTUJGTnBkR1V4RHpBTkJ\
nTlZCQU1NQmxSbGMzUkRRVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUF\
CT2t2a1RIdThRbFQzRkhKMVVhSTcrV3NIT2IwVVMzU0FMdEc1d3VLUURqaWV4MDYvU2N\
ZNVBKaWJ2Z0hUQitGL1FUamdlbEhHeTFZS3B3Y05NY3NTeWFqUlRCRE1CSUdBMVVkRXd\
FQi93UUlNQVlCQWY4Q0FRRXdEZ1lEVlIwUEFRSC9CQVFEQWdJRU1CMEdBMVVkRGdRV0J\
CVG9aSU16UWRzRC9qLytnWC83Y0JKdWNIL1htakFLQmdncWhrak9QUVFEQWdOSkFEQkd\
BaUVBdHhRMytJTEdCUEl0U2g0YjlXWGhYTnVocVNQNkgrYi9MQy9mVllEalE2b0NJUUR\
HMnVSQ0hsVnEzeWhCNThUWE1VYnpIOCtPbGhXVXZPbFJEM1ZFcURkY1F3PT0ifX0",
  "signatures":[{
    "protected":"eyJ4NWMiOlsiTUlJQmt6Q0NBVGlnQXdJQkFnSUdBV0ZCakNrWU1\
Bb0dDQ3FHU000OUJBTUNNRDB4Q3pBSkJnTlZCQVlUQWtGUk1SVXdFd1lEVlFRS0RBeEt\
hVzVuU21sdVowTnZjbkF4RnpBVkJnTlZCQU1NRGtwcGJtZEthVzVuVkdWemRFTkJNQjR\
YRFRFNE1ERXlPVEV3TlRJME1Gb1hEVEk0TURFeU9URXdOVEkwTUZvd1R6RUxNQWtHQTF\
VRUJoTUNRVkV4RlRBVEJnTlZCQW9NREVwcGJtZEthVzVuUTI5eWNERXBNQ2NHQTFVRUF\
3d2dTbWx1WjBwcGJtZERiM0p3SUZadmRXTm9aWElnVTJsbmJtbHVaeUJMWlhrd1dUQVR\
CZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTQzZiZUxBbWVxMVZ3NmlRclJzOFI\
wWlcrNGIxR1d5ZG1XczJHQU1GV3diaXRmMm5JWEgzT3FIS1Z1OHMyUnZpQkdOaXZPS0d\
CSEh0QmRpRkVaWnZiN294SXdFREFPQmdOVkhROEJBZjhFQkFNQ0I0QXdDZ1lJS29aSXp\
qMEVBd0lEU1FBd1JnSWhBSTRQWWJ4dHNzSFAyVkh4XC90elVvUVwvU3N5ZEwzMERRSU5\
FdGNOOW1DVFhQQWlFQXZJYjNvK0ZPM0JUbmNMRnNhSlpSQWtkN3pPdXNuXC9cL1pLT2F\
FS2JzVkRpVT0iXSwiYWxnIjoiRVMyNTYifQ",
    "signature":"0TB5lr-cs1jqka2vNbQm3bBYWfLJd8zdVKIoV53eo2YgSITnKKY\
TvHMUw0wx9wdyuNVjNoAgLysNIgEvlcltBw"
  }]
}
]]></artwork></figure>

</section>
<section anchor="example-voucher-response-masa-issued-voucher-with-additional-registrar-signature-from-masa-to-pledge-via-registrar-and-registrar-agent"><name>Example Voucher Response, MASA issued Voucher with additional Registrar signature (from MASA to Pledge, via Registrar and Registrar-agent)</name>

<t>The following is an example voucher response from MASA to Pledge via Registrar and Registrar-agent, in "General JWS JSON Serialization".
The message size of this Voucher is: 3006 bytes</t>

<figure title="Example Voucher Response from MASA, with additional Registrar signature" anchor="ExampleVoucherResponseWithRegSignfigure"><artwork align="left"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "payload":"eyJpZXRmLXZvdWNoZXI6dm91Y2hlciI6eyJhc3NlcnRpb24iOiJhZ2V\
udC1wcm94aW1pdHkiLCJzZXJpYWwtbnVtYmVyIjoiMDEyMzQ1Njc4OSIsIm5vbmNlIjo\
iUUJiSXMxNTJzbkFvVzdSeVFMWENvZz09IiwiY3JlYXRlZC1vbiI6IjIwMjItMDktMjl\
UMDM6Mzc6MjYuMzgyWiIsInBpbm5lZC1kb21haW4tY2VydCI6Ik1JSUJwRENDQVVtZ0F\
3SUJBZ0lHQVcwZUx1SCtNQW9HQ0NxR1NNNDlCQU1DTURVeEV6QVJCZ05WQkFvTUNrMTV\
RblZ6YVc1bGMzTXhEVEFMQmdOVkJBY01CRk5wZEdVeER6QU5CZ05WQkFNTUJsUmxjM1J\
EUVRBZUZ3MHhPVEE1TVRFd01qTTNNekphRncweU9UQTVNVEV3TWpNM016SmFNRFV4RXp\
BUkJnTlZCQW9NQ2sxNVFuVnphVzVsYzNNeERUQUxCZ05WQkFjTUJGTnBkR1V4RHpBTkJ\
nTlZCQU1NQmxSbGMzUkRRVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUF\
CT2t2a1RIdThRbFQzRkhKMVVhSTcrV3NIT2IwVVMzU0FMdEc1d3VLUURqaWV4MDYvU2N\
ZNVBKaWJ2Z0hUQitGL1FUamdlbEhHeTFZS3B3Y05NY3NTeWFqUlRCRE1CSUdBMVVkRXd\
FQi93UUlNQVlCQWY4Q0FRRXdEZ1lEVlIwUEFRSC9CQVFEQWdJRU1CMEdBMVVkRGdRV0J\
CVG9aSU16UWRzRC9qLytnWC83Y0JKdWNIL1htakFLQmdncWhrak9QUVFEQWdOSkFEQkd\
BaUVBdHhRMytJTEdCUEl0U2g0YjlXWGhYTnVocVNQNkgrYi9MQy9mVllEalE2b0NJUUR\
HMnVSQ0hsVnEzeWhCNThUWE1VYnpIOCtPbGhXVXZPbFJEM1ZFcURkY1F3PT0ifX0",
  "signatures":[{
    "protected":"eyJ4NWMiOlsiTUlJQmt6Q0NBVGlnQXdJQkFnSUdBV0ZCakNrWU1\
Bb0dDQ3FHU000OUJBTUNNRDB4Q3pBSkJnTlZCQVlUQWtGUk1SVXdFd1lEVlFRS0RBeEt\
hVzVuU21sdVowTnZjbkF4RnpBVkJnTlZCQU1NRGtwcGJtZEthVzVuVkdWemRFTkJNQjR\
YRFRFNE1ERXlPVEV3TlRJME1Gb1hEVEk0TURFeU9URXdOVEkwTUZvd1R6RUxNQWtHQTF\
VRUJoTUNRVkV4RlRBVEJnTlZCQW9NREVwcGJtZEthVzVuUTI5eWNERXBNQ2NHQTFVRUF\
3d2dTbWx1WjBwcGJtZERiM0p3SUZadmRXTm9aWElnVTJsbmJtbHVaeUJMWlhrd1dUQVR\
CZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTQzZiZUxBbWVxMVZ3NmlRclJzOFI\
wWlcrNGIxR1d5ZG1XczJHQU1GV3diaXRmMm5JWEgzT3FIS1Z1OHMyUnZpQkdOaXZPS0d\
CSEh0QmRpRkVaWnZiN294SXdFREFPQmdOVkhROEJBZjhFQkFNQ0I0QXdDZ1lJS29aSXp\
qMEVBd0lEU1FBd1JnSWhBSTRQWWJ4dHNzSFAyVkh4XC90elVvUVwvU3N5ZEwzMERRSU5\
FdGNOOW1DVFhQQWlFQXZJYjNvK0ZPM0JUbmNMRnNhSlpSQWtkN3pPdXNuXC9cL1pLT2F\
FS2JzVkRpVT0iXSwidHlwIjoidm91Y2hlci1qd3MranNvbiIsImFsZyI6IkVTMjU2In0\
",
    "signature":"ShqW8uFRkuAXIzjAhB4bolMMndcY7GYq3Kbo94yvGtjCaxEX3Hp\
6QXZUTEJ_kulQ1G7DnaU4igDPdUGtcV9Lkw"},{
    "protected":"eyJ4NWMiOlsiTUlJQjRqQ0NBWWlnQXdJQkFnSUdBWFk3MmJiWk1\
Bb0dDQ3FHU000OUJBTUNNRFV4RXpBUkJnTlZCQW9NQ2sxNVFuVnphVzVsYzNNeERUQUx\
CZ05WQkFjTUJGTnBkR1V4RHpBTkJnTlZCQU1NQmxSbGMzUkRRVEFlRncweU1ERXlNRGN\
3TmpFNE1USmFGdzB6TURFeU1EY3dOakU0TVRKYU1ENHhFekFSQmdOVkJBb01DazE1UW5\
WemFXNWxjM014RFRBTEJnTlZCQWNNQkZOcGRHVXhHREFXQmdOVkJBTU1EMFJ2YldGcGJ\
sSmxaMmx6ZEhKaGNqQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJCazE\
2S1wvaTc5b1JrSzVZYmVQZzhVU1I4XC91czFkUFVpWkhNdG9rU2RxS1c1Zm5Xc0JkK3F\
STDdXUmZmZVdreWdlYm9KZklsbHVyY2kyNXduaGlPVkNHamV6QjVNQjBHQTFVZEpRUVd\
NQlFHQ0NzR0FRVUZCd01CQmdnckJnRUZCUWNESERBT0JnTlZIUThCQWY4RUJBTUNCNEF\
3U0FZRFZSMFJCRUV3UDRJZGNtVm5hWE4wY21GeUxYUmxjM1F1YzJsbGJXVnVjeTFpZEM\
1dVpYU0NIbkpsWjJsemRISmhjaTEwWlhOME5pNXphV1Z0Wlc1ekxXSjBMbTVsZERBS0J\
nZ3Foa2pPUFFRREFnTklBREJGQWlCeGxkQmhacTBFdjVKTDJQcldDdHlTNmhEWVcxeUN\
PXC9SYXVicEM3TWFJRGdJaEFMU0piZ0xuZ2hiYkFnMGRjV0ZVVm9cL2dHTjBcL2p3ekp\
aMFNsMmg0eElYazEiXSwidHlwIjoidm91Y2hlci1qd3MranNvbiIsImFsZyI6IkVTMjU\
2In0",
    "signature":"N4oXV48V6umsHMKkhdSSmJYFtVb6agjD32uXpIlGx6qVE7Dh0-b\
qhRRyjnxp80IV_Fy1RAOXIIzs3Q8CnMgBgg"
  }]
}
]]></artwork></figure>

</section>
</section>
<section anchor="app_history"><name>History of Changes [RFC Editor: please delete]</name>

<t>Proof of Concept Code available</t>

<t>From IETF draft 06 -&gt; IETF draft 07:</t>

<t><list style="symbols">
  <t>WGLC resulted in a removal of the voucher enhancements completely from this document to RFC 8366bis, containing all enhancements and augmentations of the voucher, including the voucher-request as well as the tree diagrams</t>
  <t>smaller editorial corrections</t>
</list></t>

<t>From IETF draft 05 -&gt; IETF draft 06:</t>

<t><list style="symbols">
  <t>Update of list of reviewers</t>
  <t>Issue #67, shortened the pledge endpoints to prepare for constraint deployments</t>
  <t>Included table for new endpoints on the registrar in the overview of the registrar-agent</t>
  <t>addressed review comments from SECDIR early review (terminology clarifications, editorial improvements)</t>
  <t>addressed review comments from IOTDIR early review (terminology clarifications, editorial improvements)</t>
</list></t>

<t>From IETF draft 04 -&gt; IETF draft 05:</t>

<t><list style="symbols">
  <t>Restructured document to have a distinct section for the object flow and handling and shortened introduction, issue #72</t>
  <t>Added security considerations for using mDNS without a specific product-serial-number, issue #75</t>
  <t>Clarified pledge-status responses are cumulative, issue #73</t>
  <t>Removed agent-sign-cert from trigger data to save bandwidth and remove complexity through options, issue #70</t>
  <t>Changed terminology for LDevID(Reg) certificate to registrar EE certificate, as it does not need to be an LDevID, issue #66</t>
  <t>Added new protected header parameter (created-on) in PER to support freshness validation, issue #63</t>
  <t>Removed reference to CAB Forum as not needed for BRSKI-PRM specifically, issue #65</t>
  <t>Enhanced error codes in section 5.5.1, issue #39, #64</t>
  <t>Enhanced security considerations and privacy considerations, issue #59</t>
  <t>Issue #50 addressed by referring to the utilized enrollment protocol</t>
  <t>Issue #47 MASA verification of LDevID(RegAgt) to the same registrar EE certificate domain CA</t>
  <t>Reworked terminology of "enrollment object", "certification object", "enrollment request object", etc., issue #27</t>
  <t>Reworked all message representations to align with encoding</t>
  <t>Added explanation of MASA requiring domain CA cert in section 5.5.1 and section 5.5.2, issue #36</t>
  <t>Defined new endpoint for pledge bootstrapping status inquiry, issue #35 in section <xref target="exchanges_uc2_5"/>, IANA considerations and section <xref target="pledge_ep"/></t>
  <t>Included examples for several objects in section <xref target="examples"/> including message example sizes, issue #33</t>
  <t>PoP for private key to registrar certificate included as mandatory, issues #32 and #49</t>
  <t>Issue #31, clarified that combined pledge may act as client/server for further (re)enrollment</t>
  <t>Issue #42, clarified that Registrar needs to verify the status responses with and ensure that they match the audit log response from the MASA, otherwise it needs drop the pledge and revoke the certificate</t>
  <t>Issue #43, clarified that the pledge shall use the create time from the trigger message if the time has not been synchronized, yet.</t>
  <t>Several editorial changes and enhancements to increasing readability.</t>
</list></t>

<t>From IETF draft 03 -&gt; IETF draft 04:</t>

<t><list style="symbols">
  <t>In deep Review by Esko Dijk lead to issues #22-#61, which are bein stepwise integrated</t>
  <t>Simplified YANG definition by augmenting the voucher request from RFC 8995 instead of redefining it.</t>
  <t>Added explanation for terminology "endpoint" used in this document, issue #16</t>
  <t>Added clarification that registrar-agent may collect PVR or PER or both in one run, issue #17</t>
  <t>Added a statement that nonceless voucher may be accepted, issue #18</t>
  <t>Simplified structure in section <xref target="sup-env"/>, issue #19</t>
  <t>Removed join proxy in <xref target="uc2figure"/> and added explanatory text, issue #20</t>
  <t>Added description of pledge-CAcerts endpoint plus further handling of providing a wrapped CA certs response to the pledge in section <xref target="exchanges_uc2_3"/>; also added new required registrar endpoint (section <xref target="exchanges_uc2_2"/> and IANA considerations) for the registrar to provide a wrapped CA certs response, issue #21</t>
  <t>utilized defined abbreviations in the document consistently, issue #22</t>
  <t>Reworked text on discovery according to issue #23 to clarify scope and handling</t>
  <t>Added several clarifications based on review comments</t>
</list></t>

<t>From IETF draft 02 -&gt; IETF draft 03:</t>

<t><list style="symbols">
  <t>Updated examples to state "base64encodedvalue==" for x5c occurrences</t>
  <t>Include link to SVG graphic as general overview</t>
  <t>Restructuring of section 5 to flatten hierarchy</t>
  <t>Enhanced requirements and motivation in <xref target="req-sol"/></t>
  <t>Several editorial improvements based on review comments</t>
</list></t>

<t>From IETF draft 01 -&gt; IETF draft 02:</t>

<t><list style="symbols">
  <t>Issue #15 included additional signature on voucher from registrar in section <xref target="exchanges_uc2_2"/> and section <xref target="agt_prx"/>
The verification of multiple signatures is described in section <xref target="exchanges_uc2_3"/></t>
  <t>Included representation for General JWS JSON Serialization for examples</t>
  <t>Included error responses from pledge if it is not able to create a pledge-voucher request or an enrollment request in section <xref target="exchanges_uc2_1"/></t>
  <t>Removed open issue regarding handling of multiple CSRs and enrollment responses during the bootstrapping as the initial target it the provisioning of a generic LDevID certificate. The defined endpoint on the pledge may also be used for management of further certificates.</t>
</list></t>

<t>From IETF draft 00 -&gt; IETF draft 01:</t>

<t><list style="symbols">
  <t>Issue #15 lead to the inclusion of an option for an additional signature of the registrar on the voucher received from the MASA before forwarding to the registrar-agent to support verification of POP of the registrars private key in section <xref target="exchanges_uc2_2"/> and <xref target="exchanges_uc2_3"/>.</t>
  <t>Based on issue #11, a new endpoint was defined for the registrar to enable delivery of the wrapped enrollment request from the pledge (in contrast to plain PKCS#10 in simple enroll).</t>
  <t>Decision on issue #8 to not provide an additional signature on the enrollment-response object by the registrar. As the enrollment response will only contain the generic LDevID certificate. This credential builds the base for further configuration outside the initial enrollment.</t>
  <t>Decision on issue #7 to not support multiple CSRs during the bootstrapping, as based on the generic LDevID certificate the pledge may enroll for further certificates.</t>
  <t>Closed open issue #5 regarding verification of ietf-ztp-types usage as verified
via a proof-of-concept in section {#exchanges_uc2_1}.</t>
  <t>Housekeeping: Removed already addressed open issues stated in the draft directly.</t>
  <t>Reworked text in from introduction to section pledge-responder-mode</t>
  <t>Fixed "serial-number" encoding in PVR/RVR</t>
  <t>Added prior-signed-voucher-request in the parameter description of the
registrar-voucher-request in <xref target="exchanges_uc2_2"/>.</t>
  <t>Note added in <xref target="exchanges_uc2_2"/> if sub-CAs are used, that the
corresponding information is to be provided to the MASA.</t>
  <t>Inclusion of limitation section (pledge sleeps and needs to be waked
up. Pledge is awake but registrar-agent is not available) (Issue #10).</t>
  <t>Assertion-type aligned with voucher in RFC8366bis, deleted related
open issues. (Issue #4)</t>
  <t>Included table for endpoints in <xref target="pledge_ep"/> for better readability.</t>
  <t>Included registrar authorization check for registrar-agent during
TLS handshake  in section <xref target="exchanges_uc2_2"/>. Also enhanced figure
<xref target="exchangesfig_uc2_2"/> with the authorization step on TLS level.</t>
  <t>Enhanced description of registrar authorization check for registrar-agent
based on the agent-signed-data in section <xref target="exchanges_uc2_2"/>. Also
enhanced figure <xref target="exchangesfig_uc2_2"/> with the authorization step
on pledge-voucher-request level.</t>
  <t>Changed agent-signed-cert to an array to allow for providing further
certificate information like the issuing CA cert for the LDevID(RegAgt)
certificate in case the registrar and the registrar-agent have different
issuing CAs in <xref target="exchangesfig_uc2_2"/> (issue #12).
This also required changes in the YANG module in <xref target="RFC8366bis"/></t>
  <t>Addressed YANG warning (issue #1)</t>
  <t>Inclusion of examples for a trigger to create a pledge-voucher-request
and an enrollment-request.</t>
</list></t>

<t>From IETF draft-ietf-anima-brski-async-enroll-03 -&gt; IETF anima-brski-prm-00:</t>

<t><list style="symbols">
  <t>Moved UC2 related parts defining the pledge in responder mode from
draft-ietf-anima-brski-async-enroll-03 to this document
This required changes and adaptations in several sections to remove
the description and references to UC1.</t>
  <t>Addressed feedback for voucher-request enhancements from YANG doctor
early review in <xref target="voucher-request-prm-yang"/> as well as in the
security considerations (formerly named ietf-async-voucher-request).</t>
  <t>Renamed ietf-async-voucher-request to IETF-voucher-request-prm to
to allow better listing of voucher related extensions; aligned with
constraint voucher (#20)</t>
  <t>Utilized ietf-voucher-request-async instead of ietf-voucher-request
in voucher exchanges to utilize the enhanced voucher-request.</t>
  <t>Included changes from draft-ietf-netconf-sztp-csr-06 regarding the
YANG definition of csr-types into the enrollment request exchange.</t>
</list></t>

<t>From IETF draft 02 -&gt; IETF draft 03:</t>

<t><list style="symbols">
  <t>Housekeeping, deleted open issue regarding YANG voucher-request
in <xref target="exchanges_uc2_1"/> as voucher-request was
enhanced with additional leaf.</t>
  <t>Included open issues in YANG model in <xref target="uc2"/> regarding assertion
value agent-proximity and csr encapsulation using SZTP sub module).</t>
</list></t>

<t>From IETF draft 01 -&gt; IETF draft 02:</t>

<t><list style="symbols">
  <t>Defined call flow and objects for interactions in UC2. Object format
based on draft for JOSE signed voucher artifacts and aligned the
remaining objects with this approach in <xref target="exchanges_uc2"/>.</t>
  <t>Terminology change: issue #2 pledge-agent -&gt; registrar-agent to
better underline agent relation.</t>
  <t>Terminology change: issue #3 PULL/PUSH -&gt; pledge-initiator-mode
and pledge-responder-mode to better address the pledge operation.</t>
  <t>Communication approach between pledge and registrar-agent
changed by removing TLS-PSK (former section TLS establishment)
and associated references to other drafts in favor of relying on
higher layer exchange of signed data objects. These data objects
are included also in the pledge-voucher-request and lead to an
extension of the YANG module for the voucher-request (issue #12).</t>
  <t>Details on trust relationship between registrar-agent and
registrar (issue #4, #5, #9) included in <xref target="uc2"/>.</t>
  <t>Recommendation regarding short-lived certificates for
registrar-agent authentication towards registrar (issue #7) in
the security considerations.</t>
  <t>Introduction of reference to agent signing certificate using SKID
in agent signed data (issue #37).</t>
  <t>Enhanced objects in exchanges between pledge and registrar-agent
to allow the registrar to verify agent-proximity to the pledge
(issue #1) in <xref target="exchanges_uc2"/>.</t>
  <t>Details on trust relationship between registrar-agent and
pledge (issue #5) included in <xref target="uc2"/>.</t>
  <t>Split of use case 2 call flow into sub sections in <xref target="exchanges_uc2"/>.</t>
</list></t>

<t>From IETF draft 00 -&gt; IETF draft 01:</t>

<t><list style="symbols">
  <t>Update of scope in <xref target="sup-env"/> to include in
which the pledge acts as a server. This is one main motivation
for use case 2.</t>
  <t>Rework of use case 2 in <xref target="uc2"/> to consider the
transport between the pledge and the pledge-agent. Addressed is
the TLS channel establishment between the pledge-agent and the
pledge as well as the endpoint definition on the pledge.</t>
  <t>First description of exchanged object types (needs more work)</t>
  <t>Clarification in discovery options for enrollment endpoints at
the domain registrar based on well-known endpoints do not
result in additional /.well-known URIs. Update of the illustrative example.
Note that the change to /brski for the voucher related endpoints
has been taken over in the BRSKI main document.</t>
  <t>Updated references.</t>
  <t>Included Thomas Werner as additional author for the document.</t>
</list></t>

<t>From individual version 03 -&gt; IETF draft 00:</t>

<t><list style="symbols">
  <t>Inclusion of discovery options of enrollment endpoints at
the domain registrar based on well-known endpoints in
new section as replacement of section 5.1.3
in the individual draft. This is intended to support both use
cases in the document. An illustrative example is provided.</t>
  <t>Missing details provided for the description and call flow in
pledge-agent use case <xref target="uc2"/>, e.g. to
accommodate distribution of CA certificates.</t>
  <t>Updated CMP example in to use lightweight CMP instead of CMP, as the draft already provides
the necessary /.well-known endpoints.</t>
  <t>Requirements discussion moved to separate section in
<xref target="req-sol"/>. Shortened description of proof
of identity binding and mapping to existing protocols.</t>
  <t>Removal of copied call flows for voucher exchange and registrar
discovery flow from <xref target="RFC8995"/> in UC1 to avoid doubling or text or
inconsistencies.</t>
  <t>Reworked abstract and introduction to be more crisp regarding
the targeted solution. Several structural changes in the document
to have a better distinction between requirements, use case
description, and solution description as separate sections.
History moved to appendix.</t>
</list></t>

<t>From individual version 02 -&gt; 03:</t>

<t><list style="symbols">
  <t>Update of terminology from self-contained to authenticated
self-contained object to be consistent in the wording and to
underline the protection of the object with an existing
credential. Note that the naming of this object may be discussed.
An alternative name may be attestation object.</t>
  <t>Simplification of the architecture approach for the initial use
case having an offsite PKI.</t>
  <t>Introduction of a new use case utilizing authenticated
self-contain objects to onboard a pledge using a commissioning
tool containing a pledge-agent. This requires additional changes
in the BRSKI call flow sequence and led to changes in the
introduction, the application example,and also in the
related BRSKI-PRM call flow.</t>
</list></t>

<t>From individual version 01 -&gt; 02:</t>

<t><list style="symbols">
  <t>Update of introduction text to clearly relate to the usage of
IDevID and LDevID.</t>
  <t>Update of description of architecture elements and
changes to BRSKI in <xref target="architecture"/>.</t>
  <t>Enhanced consideration of existing enrollment protocols in the
context of mapping the requirements to existing solutions in
<xref target="req-sol"/>.</t>
</list></t>

<t>From individual version 00 -&gt; 01:</t>

<t><list style="symbols">
  <t>Update of examples, specifically for building automation as
well as two new application use cases in <xref target="sup-env"/>.</t>
  <t>Deletion of asynchronous interaction with MASA to not
complicate the use case. Note that the voucher exchange can
already be handled in an asynchronous manner and is therefore
not considered further. This resulted in removal of the
alternative path the MASA in Figure 1 and the associated
description in <xref target="architecture"/>.</t>
  <t>Enhancement of description of architecture elements and
changes to BRSKI in <xref target="architecture"/>.</t>
  <t>Consideration of existing enrollment protocols in the context
of mapping the requirements to existing solutions in <xref target="req-sol"/>.</t>
  <t>New section starting with the
mapping to existing enrollment protocols by collecting
boundary conditions.</t>
</list></t>

</section>

    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
        <name>Contributors</name>
    <contact initials="E." surname="Dijk" fullname="Esko Dijk">
      <organization>IoTconsultancy.nl</organization>
      <address>
        <email>esko.dijk@iotconsultancy.nl</email>
      </address>
    </contact>
    </section>

  </back>

<!-- ##markdown-source:
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
0Yf+o+PuQXEwfvxL46Y3Phrht6d7R6+6H95n/Zedgzcbo05v4/Gjdxf76fHZ
8O2b041nB+lt+u7hq9G7t53R+93Nmx6s6eDDwe3hh4NfGuXh3pvy8MP7s8O9
syeHp+/g3/7s6NPO44sU59mfvL94vPH67fO73sP30/cvzq/59+G0dzHaSLqb
d+8vBr80pv2Hnbt3AId3W+d3g10Y/3rzVffsYCO+Ptp7cz6avt/Yf9g9e/X8
/cbo5Zvz4fujT6/Sd6Pp0ZuLZy/fbBx97Gwe/dI4Otob7b4529w7PeucJ+3z
J2/OX+2+33h88eZ6/+b07Cg/PD3v9Ebvn7w772/2Xhx+On07bJ+39w/fjAfH
59evnr/b2Pylsdu5fnz7vj2AETpP3pw9ViMcnZ69Ks7GHz8cbr5qn513nr8/
e//w8OXoqNM+fwwzfhhsPP5H57RzdN6e/tIYdib92+R6s915C0+8OHp4Op7u
H7U3z7rj/aPOXudR5+30+dn1q8kpwBR2cfRmq/h4dL4/O59Mh+efzot3n3BH
sIazN2cf1Ro+wBpenE6eX3c2zx91NjrPzzdkhLNNGPV5dzB+9bYzeZ722tPi
4sOrIhl3fmkcdMfDD/H1qxjePupsvHrcPxucnp6+efzmYrDf2Tja03+/Hex3
2+3b7tn+7psxrOe6uIlP+497m69+aeTdT+fvAaPevP80PD/bPHj0+uH5p8OL
zpvzi1HcbW9u9LbK0/cv91/D6se90eDTm/GbvH/+6vBoc9B9P34/Ot8qf2k8
BrxNexvTcffiYzF4++pDfHqwOdh6nMVnzy7ebAz+8f7tdPfobHP3sD14fnh+
ft0d7XfONzZ3z84Ge28eHsHp7//SOO9cv3oIu9l9vzW4g9Pbh7877zY6B532
/gmf5rBz3AZ8+TDcx7N7s3GwAbs7BVxqn48ObgHyvzT2O28Hb47ao+t3W5sX
vfH+u9MPzz/0zt4/Pt0fdhE/zt6efzgcfyzejQYXcFMfH16Mrt98Ot+8GA1P
32wMZ93xx18aMTzx5H17+HP84mh6ePo8vmg/uj0dX28m4/2355NODPB4cro/
+Pmw/bE8uvh4DWt8DWuc9C+GeXz97M0Z7qgNZ3EMcG+/uX7/PD579aj3orMb
708/HrbPt47OpoeHo+d35xtHG8n54Vbc7rw//7T/+M3G05uz8f7mu8nzvSPE
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
uDuWlnVmQ/uaK/kklirJZKvurCi7QWaPZ7fcihlXJwXiqEq0EfRbijFXQzY1
+INjxN+mUnvO7vxc5P9660Qkic5ryzNPaW9eMUp7PrPatIekF/c9veuFSwAS
Uqncn0nxGVgbfYgokhnXk07Zd1rxwnM28Sod6dDh0xa06kBNEHYVyZknpsgI
1dXWXQaLWaZd28uyz7Mz8aJX20g3qqD5PEfSg3jR3Axu8/UDwYZmGwhN1ZvG
Y4QIzG4HidrVZ3heUmxkhO4af38ECUTaAwmVbQ6Yf5zklsWmVgetyG2yRi+l
csC5rfE6SZHU0AClHZdbFZJ3aA77W7+QM1sfHZxlfEr2gEZqIdBipYdPo09Z
V+WuMU6KSEYoQwYG9lkoy46iTS2v6848gMGiD2FhVzPQ4zJEEP9rkuwAKabn
KSusAdLWAn1h3I8P8Z57PIXTDZ1Mk51bexsebMO6NRQfrUcy20G4mLZq3bp6
5YVDZKDFaDebBqkjWYr79cP0+95zKtf1YnusB0UsbfdmZ3Xgau5NckgyzQZ4
y7eRdJRgQoDZXjyYLNKpo0W7ECMy9/bUhjQNIIfM9+WP/oeMubPR4mDcirxp
DIPJAx8j0nQ718ww694wbfvM5O0zwkYOAUohLIwciTQRLzyP4ERuUjaiCT7U
FAMONvkLEmQwiCUqBqiSLak77tkqgHowHfQ6jIlwHgXSm/Ru6WZpH62ohjbx
8kHsWh0IRjOSkGZu+cF1v3RM9fsaT9gnrMutIr5Pst0D5kVPuOG4ym4XsbQM
pHzpoRWrcrIdSyAQ4myyj/TevVXY11ax3aEvcuLJDMKA0lIBQZmC9vpmbjy7
EuuNconE2AbkYE9FEe6aC6aMltKbR5d/8f9cpWG5LJ5n28X9E5tH4/7v1pcC
Uvb3+ff+t5Ll2R17cqxY/5Tcjq77CIn90zRQwm2vcwhG8XXX/n26+3L3SVb8
u9Hu5vF+MX9YmFtxnPjilVxNLbCuzTWVwKYQ+G3+XayXXZ7b/VHR8Acv4DoV
HcP1bDWnVYrTfvjXjdnHCuTpU9VKbJpvKo/03gAqdzeNiVfrizrwt9UqPr5Z
qi6Ii/350WqVJfFnuiDrcuWqals7tRG+eCPLcWnsV4zyt6b1NNx8mNWbQpsX
5Te74o5dPr62dXm6L/riiuiLT1/9+kvdx19++9je8bxcbZsN5t9W6224bo5L
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

-->

</rfc>

