<?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.17 (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-05" category="std" consensus="true" 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="2022"/>

    <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 establishment 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 scenarios 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 i this document.</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 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, IDevID 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 a 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 send 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 later 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 describe in <xref section="4.1" sectionFormat="comma" target="RFC8995"/>.  Upon discovery of a potential Registrar, it <bcp14>SHOULD</bcp14> initiate 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 may 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.
This 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 presume the availability of the pledge to communicate with the registrar-agent.
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 than 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 certificate a 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 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 needs to be additionally bound to the existing credential of the pledge (IDevID).
This binding supports the authorization decision for the certification request 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 constraint environments it may provided based on COSE <xref target="RFC9052"/>.</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 were the required functionality is provided</t>
  <t>enhances existing with new supported media types, e.g., for JWS voucher</t>
  <t>defines new endpoints were additional functionality is required, e.g., for wrapped certification request, CA certificates, or new status information.</t>
</list></t>

<figure title="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 may provide additional data to the pledge in the context of the voucher triggering request, to make itself visible to the domain registrar.</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.
The registrar-agent may be implemented as an integrated functionality of a commissioning tool or be co-located with the registrar itself.</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 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="eppfigure">
      <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>/pledge-voucher-request</c>
      <c><xref target="exchanges_uc2_1"/></c>
      <c>Trigger pledge-enrollment-request - Returns PER</c>
      <c>/pledge-enrollment-request</c>
      <c><xref target="exchanges_uc2_1"/></c>
      <c>Provide voucher to pledge - Returns pledge-voucher-status</c>
      <c>/pledge-voucher</c>
      <c><xref target="exchanges_uc2_3"/></c>
      <c>Provide enrollment response to pledge - Returns pledge-enrollment-status</c>
      <c>/pledge-enrollment</c>
      <c><xref target="exchanges_uc2_3"/></c>
      <c>Provide CA certs to pledge</c>
      <c>/pledge-CACerts</c>
      <c><xref target="exchanges_uc2_3"/></c>
      <c>Query bootstrapping status of pledge - Returns pledge-status</c>
      <c>/pledge-bootstrap-status</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 and reuses the endpoints of the domain registrar side already specified in <xref target="RFC8995"/>.
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.
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 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 descibes 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="576" viewBox="0 0 576 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 120,32 L 120,96" fill="none" stroke="black"/>
<path d="M 176,104 L 176,208" fill="none" stroke="black"/>
<path d="M 176,256 L 176,320" fill="none" stroke="black"/>
<path d="M 176,384 L 176,576" fill="none" stroke="black"/>
<path d="M 176,624 L 176,688" fill="none" stroke="black"/>
<path d="M 176,720 L 176,736" fill="none" stroke="black"/>
<path d="M 176,800 L 176,864" fill="none" stroke="black"/>
<path d="M 176,928 L 176,1040" fill="none" stroke="black"/>
<path d="M 216,32 L 216,96" fill="none" stroke="black"/>
<path d="M 256,32 L 256,96" fill="none" stroke="black"/>
<path d="M 328,104 L 328,208" fill="none" stroke="black"/>
<path d="M 328,256 L 328,320" fill="none" stroke="black"/>
<path d="M 328,496 L 328,576" fill="none" stroke="black"/>
<path d="M 328,624 L 328,688" fill="none" stroke="black"/>
<path d="M 328,720 L 328,736" fill="none" stroke="black"/>
<path d="M 328,800 L 328,864" fill="none" stroke="black"/>
<path d="M 328,928 L 328,976" fill="none" stroke="black"/>
<path d="M 328,1008 L 328,1040" fill="none" stroke="black"/>
<path d="M 352,32 L 352,96" fill="none" stroke="black"/>
<path d="M 392,32 L 392,96" fill="none" stroke="black"/>
<path d="M 448,104 L 448,208" fill="none" stroke="black"/>
<path d="M 448,256 L 448,320" fill="none" stroke="black"/>
<path d="M 448,384 L 448,480" fill="none" stroke="black"/>
<path d="M 448,560 L 448,576" fill="none" stroke="black"/>
<path d="M 448,624 L 448,688" fill="none" stroke="black"/>
<path d="M 448,720 L 448,736" fill="none" stroke="black"/>
<path d="M 448,800 L 448,864" fill="none" stroke="black"/>
<path d="M 448,928 L 448,944" fill="none" stroke="black"/>
<path d="M 448,1008 L 448,1040" fill="none" stroke="black"/>
<path d="M 464,32 L 464,96" fill="none" stroke="black"/>
<path d="M 488,32 L 488,96" fill="none" stroke="black"/>
<path d="M 552,104 L 552,208" fill="none" stroke="black"/>
<path d="M 552,256 L 552,320" fill="none" stroke="black"/>
<path d="M 552,384 L 552,496" fill="none" stroke="black"/>
<path d="M 552,544 L 552,576" fill="none" stroke="black"/>
<path d="M 552,624 L 552,688" fill="none" stroke="black"/>
<path d="M 552,720 L 552,736" fill="none" stroke="black"/>
<path d="M 552,800 L 552,864" fill="none" stroke="black"/>
<path d="M 552,928 L 552,976" fill="none" stroke="black"/>
<path d="M 552,1008 L 552,1040" fill="none" stroke="black"/>
<path d="M 568,32 L 568,96" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 120,32 L 216,32" fill="none" stroke="black"/>
<path d="M 256,32 L 352,32" fill="none" stroke="black"/>
<path d="M 392,32 L 464,32" fill="none" stroke="black"/>
<path d="M 488,32 L 568,32" fill="none" stroke="black"/>
<path d="M 8,96 L 80,96" fill="none" stroke="black"/>
<path d="M 120,96 L 216,96" fill="none" stroke="black"/>
<path d="M 256,96 L 352,96" fill="none" stroke="black"/>
<path d="M 392,96 L 464,96" fill="none" stroke="black"/>
<path d="M 488,96 L 568,96" fill="none" stroke="black"/>
<path d="M 40,176 L 168,176" fill="none" stroke="black"/>
<path d="M 40,192 L 168,192" fill="none" stroke="black"/>
<path d="M 40,256 L 80,256" fill="none" stroke="black"/>
<path d="M 136,256 L 168,256" fill="none" stroke="black"/>
<path d="M 40,272 L 80,272" fill="none" stroke="black"/>
<path d="M 128,272 L 168,272" fill="none" stroke="black"/>
<path d="M 40,304 L 80,304" fill="none" stroke="black"/>
<path d="M 136,304 L 168,304" fill="none" stroke="black"/>
<path d="M 40,320 L 80,320" fill="none" stroke="black"/>
<path d="M 128,320 L 168,320" fill="none" stroke="black"/>
<path d="M 184,384 L 232,384" fill="none" stroke="black"/>
<path d="M 280,384 L 320,384" fill="none" stroke="black"/>
<path d="M 184,432 L 224,432" fill="none" stroke="black"/>
<path d="M 272,432 L 320,432" fill="none" stroke="black"/>
<path d="M 336,496 L 424,496" fill="none" stroke="black"/>
<path d="M 472,496 L 544,496" fill="none" stroke="black"/>
<path d="M 336,544 L 408,544" fill="none" stroke="black"/>
<path d="M 488,544 L 544,544" fill="none" stroke="black"/>
<path d="M 184,560 L 216,560" fill="none" stroke="black"/>
<path d="M 296,560 L 320,560" fill="none" stroke="black"/>
<path d="M 184,624 L 232,624" fill="none" stroke="black"/>
<path d="M 280,624 L 320,624" fill="none" stroke="black"/>
<path d="M 336,640 L 360,640" fill="none" stroke="black"/>
<path d="M 408,640 L 440,640" fill="none" stroke="black"/>
<path d="M 336,656 L 360,656" fill="none" stroke="black"/>
<path d="M 416,656 L 440,656" fill="none" stroke="black"/>
<path d="M 184,672 L 200,672" fill="none" stroke="black"/>
<path d="M 304,672 L 320,672" fill="none" stroke="black"/>
<path d="M 184,720 L 200,720" fill="none" stroke="black"/>
<path d="M 304,720 L 320,720" fill="none" stroke="black"/>
<path d="M 184,736 L 200,736" fill="none" stroke="black"/>
<path d="M 304,736 L 320,736" fill="none" stroke="black"/>
<path d="M 40,800 L 64,800" fill="none" stroke="black"/>
<path d="M 144,800 L 168,800" fill="none" stroke="black"/>
<path d="M 40,816 L 64,816" fill="none" stroke="black"/>
<path d="M 144,816 L 168,816" fill="none" stroke="black"/>
<path d="M 40,832 L 64,832" fill="none" stroke="black"/>
<path d="M 144,832 L 168,832" fill="none" stroke="black"/>
<path d="M 40,848 L 56,848" fill="none" stroke="black"/>
<path d="M 152,848 L 168,848" fill="none" stroke="black"/>
<path d="M 40,864 L 56,864" fill="none" stroke="black"/>
<path d="M 136,864 L 168,864" fill="none" stroke="black"/>
<path d="M 184,928 L 232,928" fill="none" stroke="black"/>
<path d="M 280,928 L 320,928" fill="none" stroke="black"/>
<path d="M 184,944 L 208,944" fill="none" stroke="black"/>
<path d="M 296,944 L 320,944" fill="none" stroke="black"/>
<path d="M 336,960 L 352,960" fill="none" stroke="black"/>
<path d="M 528,960 L 544,960" fill="none" stroke="black"/>
<path d="M 336,976 L 368,976" fill="none" stroke="black"/>
<path d="M 520,976 L 544,976" fill="none" stroke="black"/>
<path d="M 184,1024 L 208,1024" fill="none" stroke="black"/>
<path d="M 296,1024 L 320,1024" fill="none" stroke="black"/>
<polygon class="arrowhead" points="552,960 540,954.4 540,965.6" fill="black" transform="rotate(0,544,960)"/>
<polygon class="arrowhead" points="552,496 540,490.4 540,501.6" fill="black" transform="rotate(0,544,496)"/>
<polygon class="arrowhead" points="448,640 436,634.4 436,645.6" fill="black" transform="rotate(0,440,640)"/>
<polygon class="arrowhead" points="344,976 332,970.4 332,981.6" fill="black" transform="rotate(180,336,976)"/>
<polygon class="arrowhead" points="344,656 332,650.4 332,661.6" fill="black" transform="rotate(180,336,656)"/>
<polygon class="arrowhead" points="344,544 332,538.4 332,549.6" fill="black" transform="rotate(180,336,544)"/>
<polygon class="arrowhead" points="328,1024 316,1018.4 316,1029.6" fill="black" transform="rotate(0,320,1024)"/>
<polygon class="arrowhead" points="328,944 316,938.4 316,949.6" fill="black" transform="rotate(0,320,944)"/>
<polygon class="arrowhead" points="328,928 316,922.4 316,933.6" fill="black" transform="rotate(0,320,928)"/>
<polygon class="arrowhead" points="328,720 316,714.4 316,725.6" fill="black" transform="rotate(0,320,720)"/>
<polygon class="arrowhead" points="328,624 316,618.4 316,629.6" fill="black" transform="rotate(0,320,624)"/>
<polygon class="arrowhead" points="328,432 316,426.4 316,437.6" fill="black" transform="rotate(0,320,432)"/>
<polygon class="arrowhead" points="328,384 316,378.4 316,389.6" fill="black" transform="rotate(0,320,384)"/>
<polygon class="arrowhead" points="192,928 180,922.4 180,933.6" fill="black" transform="rotate(180,184,928)"/>
<polygon class="arrowhead" points="192,736 180,730.4 180,741.6" fill="black" transform="rotate(180,184,736)"/>
<polygon class="arrowhead" points="192,672 180,666.4 180,677.6" fill="black" transform="rotate(180,184,672)"/>
<polygon class="arrowhead" points="192,560 180,554.4 180,565.6" fill="black" transform="rotate(180,184,560)"/>
<polygon class="arrowhead" points="192,384 180,378.4 180,389.6" fill="black" transform="rotate(180,184,384)"/>
<polygon class="arrowhead" points="176,864 164,858.4 164,869.6" fill="black" transform="rotate(0,168,864)"/>
<polygon class="arrowhead" points="176,816 164,810.4 164,821.6" fill="black" transform="rotate(0,168,816)"/>
<polygon class="arrowhead" points="176,320 164,314.4 164,325.6" fill="black" transform="rotate(0,168,320)"/>
<polygon class="arrowhead" points="176,272 164,266.4 164,277.6" fill="black" transform="rotate(0,168,272)"/>
<polygon class="arrowhead" points="176,192 164,186.4 164,197.6" fill="black" transform="rotate(0,168,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="168" y="52">Registrar</text>
<text x="292" y="52">Domain</text>
<text x="428" y="52">Domain</text>
<text x="524" y="52">Vendor</text>
<text x="152" y="68">Agent</text>
<text x="304" y="68">Registrar</text>
<text x="412" y="68">CA</text>
<text x="528" y="68">Service</text>
<text x="164" y="84">(RegAgt)</text>
<text x="296" y="84">(JRC)</text>
<text x="524" y="84">(MASA)</text>
<text x="508" 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="176" y="340">~</text>
<text x="328" y="340">~</text>
<text x="448" y="340">~</text>
<text x="552" 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="256" y="388">TLS</text>
<text x="328" y="388">|</text>
<text x="292" y="404">[Reg-Agt</text>
<text x="384" y="404">authenticated</text>
<text x="280" y="420">and</text>
<text x="348" y="420">authorized?]</text>
<text x="248" y="436">PVR</text>
<text x="328" y="436">|</text>
<text x="292" y="452">[Reg-Agt</text>
<text x="380" y="452">authorized?]</text>
<text x="288" y="468">[accept</text>
<text x="356" y="468">device?]</text>
<text x="292" y="484">[contact</text>
<text x="360" y="484">vendor]</text>
<text x="448" y="500">RVR</text>
<text x="452" y="516">[extract</text>
<text x="528" y="516">DomainID]</text>
<text x="448" y="532">[update</text>
<text x="504" y="532">audit</text>
<text x="548" y="532">log]</text>
<text x="448" y="548">Voucher</text>
<text x="256" 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="256" y="628">PER</text>
<text x="384" y="644">CSR</text>
<text x="388" y="660">Cert</text>
<text x="256" 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="252" y="724">cACert-Req</text>
<text x="256" y="740">cACert-Resp</text>
<text x="32" y="756">~</text>
<text x="176" y="756">~</text>
<text x="336" y="756">~</text>
<text x="456" y="756">~</text>
<text x="560" 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="104" y="852">Enroll-Resp</text>
<text x="96" y="868">eStatus</text>
<text x="32" y="884">~</text>
<text x="176" y="884">~</text>
<text x="328" y="884">~</text>
<text x="448" y="884">~</text>
<text x="552" 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="256" y="932">TLS</text>
<text x="256" y="948">vStatus</text>
<text x="376" y="964">req</text>
<text x="420" y="964">device</text>
<text x="472" y="964">audit</text>
<text x="512" y="964">log</text>
<text x="404" y="980">device</text>
<text x="456" y="980">audit</text>
<text x="496" y="980">log</text>
<text x="296" y="996">[verify</text>
<text x="352" y="996">audit</text>
<text x="396" y="996">log]</text>
<text x="256" 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/pledge-voucher-request"</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-prm:agent-signed-data" element (defined in <xref target="voucher-request-prm-yang"/>):</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 it's 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 the 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="voucher-request-prm-yang"/>.</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/pledge-enrollment-request"</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 it's own LDevID(RegAgt) credentials of the site domain.
In addition, it may 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 it's own registrar EE credentials of the site domain.</t>
  <t>MASA: possesses it's 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-rvr-processing-by-registrar"><name>Pledge-Voucher-Request (RVR) 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 validation fails the registrar <bcp14>SHOULD</bcp14> respond with HTTP 404 Not Found status code to the registrar-agent.
HTTP 406 Not Acceptable status code <bcp14>SHOULD</bcp14> be used if the Content-Type indicated by the Accept header is unknown or unsupported.</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 form 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="voucher-request-prm-yang"/>:</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 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="pledge-enrollment-request-per-processing-registrar-agent-to-registrar"><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="request-wrapped-ca-certificates-registrar-agent-to-registrar"><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:
* voucher-response - Voucher (from MASA via Registrar)
* wrapped-CA-certificate(s)-response - CA certificates
* enrollment-response - LDevID(Pledge) certificate (from CA via Registrar)</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 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/pledge-voucher".</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 if 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 manufactures 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/pledge-CAcerts".</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>If validation of the wrapping signature or another security check fails, the pledge <bcp14>SHOULD</bcp14> respond with the HTTP 403 Forbidden status code.
The HTTP 415 Unsupported Media Type status code <bcp14>SHOULD</bcp14> be used, if the Content-Type of the request is in an unknown or unsupported format.
The HTTP 400 Bad Request status code <bcp14>SHOULD</bcp14> be used, if the pledge detects errors in the encoding of the payload.</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/pledge-enrollment".</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-agent to provide the status responses to the registrar.</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/pledge-status"</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 section <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 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>The following enhancement extends the voucher-request as defined in <xref target="RFC8995"/> to include additional fields necessary for handling bootstrapping in the pledge-responder-mode.</t>

<section anchor="tree-diagram"><name>Tree Diagram</name>

<t>The following tree diagram is mostly a duplicate of the contents of <xref target="RFC8995"/>, with the addition of the fields agent-signed-data, the registrar-proximity-certificate, and agent-signing certificate.
The tree diagram is described in <xref target="RFC8340"/>.
Each node in the diagram is fully described by the YANG module in Section <xref target="voucher-request-prm-yang-module"/>.</t>

<figure><artwork align="left"><![CDATA[
module: ietf-voucher-request-prm

 grouping voucher-request-prm-grouping
  +-- voucher
     +-- created-on?                               yang:date-and-time
     +-- expires-on?                               yang:date-and-time
     +-- assertion?                                enumeration
     +-- serial-number                             string
     +-- idevid-issuer?                            binary
     +-- pinned-domain-cert?                       binary
     +-- domain-cert-revocation-checks?            boolean
     +-- nonce?                                    binary
     +-- last-renewal-date?                        yang:date-and-time
     +-- prior-signed-voucher-request?             binary
     +-- proximity-registrar-cert?                 binary
     +-- agent-signed-data?                        binary
     +-- agent-provided-proximity-registrar-cert?  binary
     +-- agent-sign-cert?                          binary
]]></artwork></figure>

</section>
<section anchor="voucher-request-prm-yang-module"><name>YANG Module</name>

<t>The following YANG module extends the <xref target="RFC8995"/> Voucher Request to include a signed artifact from the registrar-agent (agent-signed-data) as well as the registrar-proximity-certificate and the
agent-signing certificate.</t>

<figure><artwork align="left"><![CDATA[
<CODE BEGINS> file "ietf-voucher-request-prm@2022-07-05.yang"

module ietf-voucher-request-prm {
  yang-version 1.1;

  namespace "urn:ietf:params:xml:ns:yang:ietf-voucher-request-prm";
  prefix vrprm;

  import ietf-restconf {
    prefix rc;
    description
      "This import statement is only present to access
       the yang-data extension defined in RFC 8040.";
    reference "RFC 8040: RESTCONF Protocol";
  }

  import ietf-voucher-request {
    prefix vcr;
    description
      "This module defines the format for a voucher request,
          which is produced by a pledge as part of the RFC8995
          onboarding process.";
    reference
      "RFC 8995: Bootstrapping Remote Secure Key Infrastructure";
  }

  organization
   "IETF ANIMA Working Group";

  contact
   "WG Web:   <http://tools.ietf.org/wg/anima/>
    WG List:  <mailto:anima@ietf.org>
    Author:   Steffen Fries
              <mailto:steffen.fries@siemens.com>
    Author:   Eliot Lear
              <mailto: lear@cisco.com>
    Author:   Thomas Werner
              <mailto: thomas-werner@siemens.com>
    Author:   Michael Richardson
              <mailto: mcr+ietf@sandelman.ca>";

  description
   "This module defines the format for a voucher-request form the
    pledge in responder mode. It bases on the voucher-request
    defined in RFC 8995, which is a superset of the voucher itself.
    It provides content to the MASA for consideration
    during a voucher-request.

    The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
    NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
    'MAY', and 'OPTIONAL' in this document are to be interpreted as
    described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
    they appear in all capitals, as shown here.

    Copyright (c) 2021 IETF Trust and the persons identified as
    authors of the code. All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, is permitted pursuant to, and subject
    to the license terms contained in, the Simplified BSD License
    set forth in Section 4.c of the IETF Trust's Legal Provisions
    Relating to IETF Documents
    (https://trustee.ietf.org/license-info).

    This version of this YANG module is part of RFC xxxx; see the
    RFC itself for full legal notices.";


  revision 2022-07-05 {
    description
     "Initial version";
    reference
     "RFC XXXX: BRSKI for Pledge in Responder Mode";
  }

  // Top-level statement
  rc:yang-data voucher-request-prm-artifact {
    // YANG data template for a voucher-request.
    uses voucher-request-prm-grouping;
  }
  // Grouping defined for future usage
  grouping voucher-request-prm-grouping {
    description
      "Grouping to allow reuse/extensions in future work.";
    uses vcr:voucher-request-grouping {

      augment voucher {
        description "Base the voucher-request-prm upon the
          regular one";

        leaf agent-signed-data {
          type binary;
          description
            "The agent-signed-data field contains a JOSE [RFC7515]
             object provided by the Registrar-Agent to the Pledge.

             This artifact is signed by the Registrar-Agent
             and contains a copy of the pledge's serial-number.";
        }

        leaf agent-provided-proximity-registrar-cert {
          type binary;
          description
            "An X.509 v3 certificate structure, as specified by
             RFC 5280, Section 4, encoded using the ASN.1
             distinguished encoding rules (DER), as specified
             in ITU X.690.
             The first certificate in the registrar TLS server
             certificate_list sequence (the end-entity TLS
             certificate; see RFC 8446) presented by the
             registrar to the registrar-agent and provided to
             the pledge.
             This MUST be populated in a pledge's voucher-request
             when an agent-proximity assertion is requested.";
          reference
            "ITU X.690: Information Technology - ASN.1 encoding
             rules: Specification of Basic Encoding Rules (BER),
             Canonical Encoding Rules (CER) and Distinguished
             Encoding Rules (DER)
             RFC 5280: Internet X.509 Public Key Infrastructure
             Certificate and Certificate Revocation List (CRL)
             Profile
             RFC 8446: The Transport Layer Security (TLS)
             Protocol Version 1.3";
        }

        leaf-list agent-sign-cert{
          type binary;
          min-elements 1;
          description
            "An X.509 v3 certificate structure, as specified by
             RFC 5280, Section 4, encoded using the ASN.1
             distinguished encoding rules (DER), as specified
             in ITU X.690.
             This certificate can be used by the pledge,
             the registrar, and the MASA to verify the signature
             of agent-signed-data. It is an optional component
             for the pledge-voucher request.
             This MUST be populated in a registrar's
             voucher-request when an agent-proximity assertion
             is requested.
             It is defined as list to enable inclusion of further
             certificates along the certificate chain if different
             issuing CAs have been used for the registrar-agent
             and the registrar.";
          reference
            "ITU X.690: Information Technology - ASN.1 encoding
             rules: Specification of Basic Encoding Rules (BER),
             Canonical Encoding Rules (CER) and Distinguished
             Encoding Rules (DER)
             RFC 5280: Internet X.509 Public Key Infrastructure
             Certificate and Certificate Revocation List (CRL)
             Profile";
        }
      }
    }
  }
}

<CODE ENDS>
]]></artwork></figure>

<t>Examples for the PVR are provided in <xref target="exchanges_uc2_2"/>.</t>

</section>
</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
 pledge-voucher-request     create pledge-voucher-request     [THISRFC]
 pledge-enrollment-request  create pledge-enrollment-request  [THISRFC]
 pledge-voucher             supply voucher response           [THISRFC]
 pledge-enrollment          supply enrollment response        [THISRFC]
 pledge-cacerts             supply CA certificates to pledge  [THISRFC]
 pledge-status              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 (a "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 be 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 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, and refuse to produce another one).
One mitigation may be that the pledge does 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 on misusage of an 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 rouge 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 his 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 section <xref target="voucher-request-prm-yang"/> is bases on <xref target="RFC8995"/>, but uses a different encoding based on <xref target="I-D.ietf-anima-jws-voucher"/>.
Therefore similar considerations as described in <xref target="RFC8995"/> section 11.7 (Security Considerations) apply.
The YANG module specified in this document 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.
The use of YANG to define data structures via the "yang-data" 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, and Hendrik Brockhaus for their input and discussion on use cases and call flows.
Special thanks to Esko Dijk for the in deep review and the improving proposals.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>





<reference anchor='RFC5280' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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='RFC8610' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-anima-jws-voucher-05.txt' type='TXT'/>
</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'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-netconf-sztp-csr-14.txt' type='TXT'/>
</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>Juniper 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='31' month='January' year='2022'/>
      <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
   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&#39;s manufacturer
   (i.e., the Manufacturer Authorized Signing Authority (MASA)).

   This document only defines the voucher artifact, leaving it to other
   documents to describe specialized protocols for accessing it.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-anima-rfc8366bis-00'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-anima-rfc8366bis-00.txt' type='TXT'/>
</reference>



<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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='RFC8340' target='https://www.rfc-editor.org/info/rfc8340'>
<front>
<title>YANG Tree Diagrams</title>
<author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/></author>
<author fullname='L. Berger' initials='L.' role='editor' surname='Berger'><organization/></author>
<date month='March' year='2018'/>
<abstract><t>This document captures the current syntax used in YANG module tree diagrams.  The purpose of this document is to provide a single location for this definition.  This syntax may be updated from time to time based on the evolution of the YANG language.</t></abstract>
</front>
<seriesInfo name='BCP' value='215'/>
<seriesInfo name='RFC' value='8340'/>
<seriesInfo name='DOI' value='10.17487/RFC8340'/>
</reference>



<reference anchor='RFC8407' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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='RFC9110' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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>
      <author fullname='Eliot Lear' initials='E.' surname='Lear'>
         <organization>Cisco Systems</organization>
      </author>
      <date day='3' month='June' 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-02'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-anima-brski-ae-02.txt' type='TXT'/>
</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' target='https://www.rfc-editor.org/info/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>




    </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".<br />
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 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="voucher-request-prm-yang-module"/></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:
H4sIAAAAAAAAA+y9/VobR7Y3+r+uoo/yPo8hkWTA2InZmQ8MOCFjYwLYniQz
J7uRGuhYUmt3t8DE9r6Wcy3nys76qqpV1dWScJzZmfc9PDMxSN31Xet7/Va/
3+/UeT3OdpInJ6d/O0xu8voqOR5no8ssyafJSVbNiukoK5PnxShL1uih/vHJ
8/VOen5eZtfyHn7UGRXDaTqBpkZlelH386y+6KfTfJL2z8vqTd6flZP+xsNO
WmbpTvJilpVpnRfTKkmno+R5Ok0vs0k2rTs3lzvJ7tHh893k9TedUVpDg1sb
W1udqoYHf07HxRQ+qct51slnJf1W1VsbG483tjrDtN5JqnrUmeU7nSSpi+FO
cu82q+7BH8NiMkuHtfugup2U2UWlPijK2v8EOpgWdX6RZyP4cFrQU3WZu2bS
eX1VlDudPqwWvHg6SJ6WeVbBc7wUp3V2cZFN7adFCbM7zXGmVbL7DXxi1lE+
5B6yDHp4UddF/9v0ato/yaeXySOcRF7f7iTP59N8eEVzGkEf977a/PLBY57j
fFqX8MQ3WTlJp7fwUTZJ8zEuCo1jcIHj+GvFfQ1gTeCReZnvJFd1Pat27t+/
ubkZqK/vm5mdDZLXWTnNSju1s6tiklbu0/+pqdU0jv4NjeNjpnYwSJ5lqZvY
wTgvavMRzWovr4ZFcnoLqzjR0ziBsdY5/JVWVZZ8aWfxOh2P8yobj7Opncre
t/2vHmxs66mcwm37NSvHcK7h49kVnezuF9ubyfZ28tWXXyWP4Vx33UzHMKS/
DnEsND0Z/vMBjSMtR1UxtZN4jh9l42Qv+JZ3CXrMxrCMyWlxUd/AjUxeF+Wb
ynU1GZZf4AX+a2UeHQxTvaBmPdXX9zvDAiaWn89rdSVgdffzX9641a3eFOYT
GsxhcQbvVfMx3O/h7WA6dqPI4NnBCJ79K+xI8NB1Np1neMsvy2I+E5KBhw4p
TsLvv6M//ooTGUBfH/BpIHDz8x1+rH9zeT+gUJ1pAeerzq+p7ZOnew+3vtqQ
Xx99+WjL/fpAfv1y44F54MuHmw/l1682ts2nXz149Mj8+mjTfvr4MT172N8f
KFL5y03Vvy7mw6us9L6dZrgAF/3q13rWH1Zl5NXyYohdnefVTiefXgTz2Hr8
lRnFo63tTTPirYdbdphuxNsbX5pfv3xsHni8YZ99vGnn8XjrwVeRwfCCptT7
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
daHo6MiojnXIT5h67NfP32pIayTxjuf45W2ldlkrvK7B+71xnASoQoBHPpI0
XjCaTul+7MY/HQsAN0GB7MSmkqVVTw1pl9RiV1GRyuRYAvmiDmT7TkcW5ZY6
vv+AJ8vZRQhxFhzUYHRhDptTGdumiiWVFK6rdr5BHe016nQk6vCyLm5+9K7E
YskiPvxEjd9cSxYyS8Bjn2f//b//JAW+68YfVjGoomSum5OXpkWsjJpwhfkB
AFQCn8iXfW0W00gS1NGLcKtRvyM3kRfEIwyp6Er2Od5bx+n+nKU2WlRjL4mr
WFXksZsCxf/5n3jg42aVS/7wFsbrEp/N69+W4FsRqq9FqNXA3Vh194wTnILh
izLrLaRIVD2p7HesqFX+09+jr9Uf5XqHwX2Qu8hes2OEcNW8ZjjtOgAtk36j
tPIbm70651yXBFXO/ffXReUjrS5dNFWHJCeqIUXQosifxBTmtUeWJbdPpeqj
Fshee6bVui5O/YaFf2d8aj2+FnthbsvGFDEZUW2d55B4lGXfZa3fP/teO5ak
VmLCiEuaHLUVxueVrEcbrb/OKhprU9P9ZX5W/juqzQQW09TqPmNF9YbBFp2O
mLlanoOxJI8EuNNZ7WBpMs5KFOMbLe6fNS3r277RdeW1rquvdL2lJPX4MMmb
Rv9kffCjLuCn943hVTH5diinWW7qNVxwS4xM1uJuCi2cRZSvScFZMP7aQB5H
j28+v7kg/T9gj+9YzicSUK/Fk9bXg6VFl0HVVhbXrmfyXfc1W0oboMLP0nM0
nW192TsqfxRSowk/YwRwUmhwI0UB8kBJivu++zdVkcObyyCobuoX2fO7WTxv
Sys3nf+9rRV/dKjfms168k49+3jkC012rCmkcRznpw+fN6/eOXGM7ZyqiC9l
QRBgT+N+v28dQI+YOOlSWtr0eZ4n9QcI4S/CJ7QpGVajEM8VEYoLOz316VuS
+a2VTKtkl0jxLUCQ6aijy/n+oF5bdt2py5FcWjGl+VabS1z7W/cM2l5bgqzn
fqhKWfN9A8ygKAk9rJ9D8PBB7paJaP5Xf37Ef+ImyXpuIX97jbGyK4MVIChD
QIMP/8cpg5hTdLQ/Sw+d+rqpiUdypFsSeBJ4+hg869PVG3qF56Tin2dWpeE3
PWscR61W4IyyGD01Y8x3aOOni3zpT8d8i8znCfZ3JtjVkYB9rwTKqWRKmx58
RcXxR4jyBFHvvP8OzsgRy6ItNYF+/ylynpvnKXh+ncMl4P/1GC3js2CdjQTq
sUGBioYrbZpMaGPer8vWNN67BfZ8XswbItBK+Oc2GM8x0bWDPOYZ0O42yqQS
PZef2t1XtGGLfg0LfRvJtQygTd7/8uHn1uEoNUh9hs6s6dNSZetsGfot8xat
64CcqHJQ5+ZmOt/82iwcEJfJZUD84VzlPh2/cP3LBV2pJARLNtPg9qaegLPs
lPzzdFZV0l+dgv5XFOq41ey5SsFAG6KErsZ1NfrXUqjBg9jdgyvZyCYlgf2F
VwKgkuuftSS5DiLRytmz+N1RbaTI6nzOebcohUDYRN/OQZ1zOZoj9X6l2P/0
4NCfC/g7rSjArOQKwo+MEq28Gud/YZSkCMtX5PJokaeht4sRFz2VGVbK1sIf
rtfRvs7c0gJQnT9sA+kGqMkKL1KHJxvM500KjPSRXmnzty0zuEx2v2npQxw1
KbD1xZ7G9ziRXMhK5n/KFQeaitM3N6/Q5VyGP7dURoMNfqhdraSZx2i+TYw1
OCizTMDa53xWN/tKuh/LdfFxj1c+1g/VpPzz0SXI98HvJDE+fv2XN4B0kRGO
jum+b8cObQcwCplaWV4yFvm3T2/I8EfpJqPlvIg+TtebbP4xooThx/rdj2f5
vPNnaIyKIkmzLV0f72stBsmKZw0JbHnCKaFy9FckwzqdiQ7/YFckgp/l1NoJ
ezNXdW4pKqtTjqNNMjT2t6mT3+S40Yr0yGfWX2dwm8Ur+Sjvq58uJ/JP+IJp
1CDBaxO7yKBKP15nJ1cx4nSy8Gid79uw/LtqRJR882E7AzuKWiVEA99azPqZ
rG9GjS/hrpOaBdVyfPWFXxrS8VfP0ehJAV7/nnqIv5H0Wnxo3EUuF5Nl2HeK
ePImE1PNlqTim/924d+kK1+SPVMQ0b718980RVoGb1NYspuvOyK7fZ6+fe+p
K+lj2paPWECdbxJkDWNvoPfV65d+r31ZzuyZ8i5nFRHwjxvinfFm/VG5OWOo
9cy9TlOjv/RkzVIx+tXbyKHRqabPb434mwmwc556IgvvZgZkt96V2Tt5Bsmj
X6kJIr9z1/V63wRC6j8vhXhOjvGZFlhn+TFXjA+dOhi17IiIOyXsGq9F6WUi
b3tptRAlcd2o3MjFfsi33l7ght4jUckGun95T4jfSIG1i4e0Jn3aCNEuzpH1
04rEOoqPWAM0/PRh1OyckN7wnBrUjdN71sjVP9Re96iZVC7yzyhukn+tjbQk
m1ZBpWk1X28oADmtEoKI4vSdGYMYpeS9s+WK+s//cczVts6kdqaQw9ucA42h
NvBnAnC5pb/+m7RuDP6vvtL58MgfHv7+yN0BfaL5ZB2YAhfrEKZ2X++GNzXz
ll1oYqxz7wJ9Wp+60V8VxfOyjQeP0sHrW1kF83yp7jWLixtaJFf34SJI4uCM
Hx/d+xZgjzyOuCTUH4x6vkkLeYyjccCbzSqeR9XstSuRK4i1Fkht+TN6gS5I
wpnv5eSSiqfzr/RYHu3P4EqmkmuNkHyyUQOZQKNtRGe/o16sz1dyidTMz1Nq
b4Ceet1mviLqwxGt2yzNOflpOdybyp7njEqaT4WIZyNJ8fp5c9KWTTovj/Px
Wt3Ql/Oo8tjq9a+I+vHf219OQzvBRePS6jx3vTPlDEHkdqWPucy8nWcXaCgX
IWzThWcqnFodl+dWlJXbvNOn36gvDYv4hl9ukO8slJfzfbY9pv4mTS519ZwH
NwB2P7yr8fj0ZKsGbUc6v/1yGdGc7SA4ebwfMoGjT3+TwGuW2F+D78XSGRo4
Udt3EelfVo1jMrDJBH1bH9wSgSvJm9bTZUShnWG59LjkGI7E8Bvd/eE0cr3q
JE1VrnnNLxZKm/V0uaAktaZe5j7fPiDBf0Ort3J7RJMAnG/kUq/cB3NaE0ID
9R66dmhnqaRXYz7zqhRFNPrZuBbId7mRyb5W7K82NJzhhpyGT2dUeL5ptJ/A
kOS2hBO/AMV3Wj3NZtOF9mMntlsToSazfE6Zztv5VCe91pvqdQDfzmFrBx9q
jvVzncUpKNdOYvrl6rSHMD4utJ3WNpttfE2+5EjLTqkT6d7rNVQ5OydzOfp8
GtHHbLnaLs/eS2SWVSIP2IrMlJ0Rpr9/OnuJsyFQ/qRZMqjOES1Wa7mlsQ0X
KYa9LIXcOA7M+N9lUPUat0/UvO0XOZ+2WHQVZfhfkkPrO+RWvVoL2zDs0/la
68nXXbI9L4VwNh/82XpJ7ntzPtQ6f3Hs2Vm7tdHNl8n8ZZ4841H0RDqktxtN
lP94E0O/nUPSiv+VUygtmBZAWjoQkYMo8yg+rkqdtqWpnzo1gtfp+OOY5ABO
Vk5sctkkLNsMvNzsAVsmchJtZm9W7WGNy3cVQpYgbzKgckJsAKbcUddg7zE9
epT+qzj4HCqPVtoY7xFdGmD59cPs09dPNVekLQEFuILcoEjCnE+fW8ts8kAX
6f1Wgfr246nzMuVNXwEPToEg9L/yibNoDz/+2qJFrQttIr4ZW4tOyxkVPo+g
Dhe2dZzNBjrP1t9JgZ43Up3qFL9MwFMqvJodJ1aK5Wxd/tMH97gv+vW2FVpq
oNwcYlS5mgPHOZ3XyWu51t8srdI62a6Jotuto2330BHabICocVXOz8OSzXkm
4kQZL/w75VqORiEnVYawZ+Xo6/hFlQTgZTWn3eLP03rJeN1s/FhLLT7uE4nn
s82Z15EbTOhjcQ3urxcwprMaeiGXTXliZ80c1avItClklUt1+XTc5NBuqTjb
rPbKCmre0mxpbwKFdme73BF2ZBSnOf71qMQkm9N0/VrvTGh6cWkVmzdKsCHg
bTf7H1WFljQxubvvApkM3S82rEiAP98eTq9uZrlcoaIVw6b1Ez+Vmf9XT7Q+
T0r8tKmnldm22a8j/S/Z6ymoa9bvq9mRqZ6dBGh2UR71kxDpuDT56ZXzWUZF
kwiSMWrTRLPnrDEuwqUPBF9RjkEva/SipNRxbxrmcVOd71CuaV2zOe204idT
4es4nVPPKW9+jPpabGvXQE9IStpSiwEt/LnBqx8e74fv0vV6pfsIeXXWSL77
nYk4UnAK/JbTFZT9mLltmH0k9+XMN81uCanEq7xdHa6fuGRe50nPC0fa2MXJ
y9Te+gThGwrSKOKoYz2pR5fGJN89P8whpVpC1I2gG2z+tU5PHINKSWNqJnHa
zX/88KfvGIBMuzS5lpMBXMIG4Y7cTNYmTvPmbITccC+XdiWwDuuVZupbvbbw
6bLVV3h8oS2z/LTr6pgEkBNXS1Hy5/M3mvjiGG1dhHw1AW0w/J2TAGfyppmW
wPrnyQHIqOvME517hBaUNm9dz/eARoYrb2KUdp3h14ujF/XqH+0zaBR81Szp
yCTfkZ9vV9ImztWjtY/Nq7inCfjy2VH27cbk1fPmPINWI0x7r0VNkOXhmtPG
gfYbr+Hmje+LZRqjpQPTWb3/qQ4RaXnrvAsFhS31+tJckom13I5D/G5VHeeW
iFK97nU0Q+LudZPrk3OuZ/Yc0sqoWa2rrxVZImaRi3vqMbw6ZYwuXdFfaV7L
NP93KHf/v6LTrUbXTOef1ulXGv1/fXDOCDY8wVq+0a5+4iPv0aZ3uzc9bqau
gXa6gtcjQhjTDoLGkf8/leql7GttAgA=

-->

</rfc>

