<?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-06" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="BRSKI-PRM">BRSKI with Pledge in Responder Mode (BRSKI-PRM)</title>

    <author initials="S." surname="Fries" fullname="Steffen Fries">
      <organization abbrev="Siemens">Siemens AG</organization>
      <address>
        <postal>
          <street>Otto-Hahn-Ring 6</street>
          <city>Munich</city>
          <code>81739</code>
          <country>Germany</country>
        </postal>
        <email>steffen.fries@siemens.com</email>
        <uri>https://www.siemens.com/</uri>
      </address>
    </author>
    <author initials="T." surname="Werner" fullname="Thomas Werner">
      <organization abbrev="Siemens">Siemens AG</organization>
      <address>
        <postal>
          <street>Otto-Hahn-Ring 6</street>
          <city>Munich</city>
          <code>81739</code>
          <country>Germany</country>
        </postal>
        <email>thomas-werner@siemens.com</email>
        <uri>https://www.siemens.com/</uri>
      </address>
    </author>
    <author initials="E." surname="Lear" fullname="Eliot Lear">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>Richtistrasse 7</street>
          <city>Wallisellen</city>
          <code>CH-8304</code>
          <country>Switzerland</country>
        </postal>
        <phone>+41 44 878 9200</phone>
        <email>lear@cisco.com</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael C. Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
        <uri>http://www.sandelman.ca/</uri>
      </address>
    </author>

    <date year="2023"/>

    <area>Operations and Management</area>
    <workgroup>ANIMA WG</workgroup>
    

    <abstract>


<t>This document defines enhancements to bootstrapping a remote secure key infrastructure (BRSKI, RFC8995) to facilitate bootstrapping in domains featuring no or only time limited connectivity between a pledge and the domain registrar.
It specifically targets situations in which the interaction model changes from a pledge-initiated-mode, as used in BRSKI, to a pledge-responding-mode as described in this document.
To support the pledge-responding mode, BRSKI-PRM introduces a new component, the registrar-agent, which facilitates the communication between pledge and registrar during the bootstrapping phase.
To establish the trust relation between pledge and domain registrar, BRSKI-PRM relies on object security rather than transport security.</t>

<t>The approach defined here is agnostic with respect to the underlying enrollment protocol which connects the pledge and the domain registrar to the Domain CA.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-anima-brski-prm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/anima-wg/anima-brski-prm"/>.</t>
    </note>


  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>BRSKI as defined in <xref target="RFC8995"/> specifies a solution for secure zero-touch (automated) bootstrapping of devices (pledges) in a (customer) site domain.
This includes the discovery of network elements in the customer site/domain and the exchange of security information necessary to establish trust between a pledge and the domain.</t>

<t>Security information about the customer site/domain, specifically the customer site/domain certificate, is exchanged utilizing voucher request objects and voucher response objects as defined in <xref target="RFC8995"/>.
Voucher objects are specified in <xref target="RFC8366"/>. Vouchers are signed objects from the Manufacturer's Authorized Signing Authority (MASA).
The MASA issues the voucher object and provides it via the domain registrar to the pledge.</t>

<t>For the certificate enrollment of devices, BRSKI relies on EST <xref target="RFC7030"/> to request and distribute customer site/domain specific device certificates.
EST in turn relies on a binding of the certification request to an underlying TLS connection between the EST client and the EST server.</t>

<t>BRSKI addresses scenarios in which the pledge initiates the bootstrapping acting as a client (this document refers to this approach as pledge-initiator-mode).
In industrial environments the pledge may behave as a server and thus does not initiate the bootstrapping with the domain registrar.
In this scenario, it is expected that the pledge will be triggered to generate bootstrapping requests in the customer site/domain.
This document refers to this approach as pledge-responder-mode and</t>

<t><list style="symbols">
  <t>introduces the registrar-agent as new component to facilitate the communication between the pledge and the registrar, as the pledge is in responder mode, and acts as server.
For the interaction with the domain registrar the registrar-agent will use existing BRSKI <xref target="RFC8995"/> endpoints as well as additional endpoints defined in this document.
The registrar-agent may be implemented as an integrated functionality of a commissioning tool or be co-located with the registrar itself.</t>
  <t>specifies the interaction (data exchange and data objects) between a pledge acting as server and a registrar-agent and the domain registrar.
The security is addressed on the application layer only to enable usage of arbitrary transport means between the pledge and the domain registrar via the registrar-agent.
Connectivity between the pledge and the registrar-agent may be via IP-based networks (wired or wireless) but also via Bluetooth or NFC.</t>
  <t>allows the application of registrar-agent credentials to establish TLS connections to the domain registrar. These registrar-agent credentials are different from the pledge's IDevID.</t>
</list></t>

<t>The term endpoint used in the context of this document is similar to resources in CoAP <xref target="RFC7252"/> and also in HTTP <xref target="RFC9110"/>.
It is not used to describe a device.
Endpoints are accessible via .well-known URIs.</t>

<t>To utilize the EST server endpoints on the domain registrar, the registrar-agent will act as client towards the domain registrar.</t>

<t>The registrar-agent also acts as a client when communicating with a pledge in responder mode.
Here, TLS with server-side, certificate-based authentication is not directly applicable, as the pledge only possesses an IDevID certificate.
The IDevID does not contain any anchor for which any kind of <xref target="RFC6125"/> validation can be done.
Second, the registrar-agent may not be aware of manufacturer trust anchors to validate the IDevIDs.
Finally, IDevIDs do not typically set Extended Key Usage (EKU) for TLS WWW Server authentication.</t>

<t>The inability to effectively do TLS in responder mode is one reason for relying on object security.
Another reason is the application on different transports channels, for which TLS may not be available, such as Bluetooth and NFC.</t>

<t>Therefore, BRSKI-PRM relies on an additional signature wrapping of the exchanged data objects .
For EST <xref target="RFC7030"/> the registrar then needs to do some pre-processing to verify this signature, which is not present in EST.</t>

</section>
<section anchor="terminology"><name>Terminology</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<t>This document relies on the terminology defined in <xref target="RFC8995"/>, section 1.2.
The following terms are defined additionally:</t>

<dl>
  <dt>authenticated self-contained object:</dt>
  <dd>
    <t>Describes an object, which is cryptographically bound to the end entity (EE) certificate (IDevID certificate or LDEVID certificate).
The binding is assumed to be provided through a digital signature of the actual object using the corresponding private key of the EE certificate.</t>
  </dd>
  <dt>CA:</dt>
  <dd>
    <t>Certification authority, issues certificates.</t>
  </dd>
  <dt>Commissioning tool:</dt>
  <dd>
    <t>Tool to interact with devices to provide configuration data</t>
  </dd>
  <dt>CSR:</dt>
  <dd>
    <t>Certificate Signing Request</t>
  </dd>
  <dt>EE:</dt>
  <dd>
    <t>End entity</t>
  </dd>
  <dt>mTLS:</dt>
  <dd>
    <t>Mutual authenticated Transport Layer Security.</t>
  </dd>
  <dt>on-site:</dt>
  <dd>
    <t>Describes a component or service or functionality available in the customer site/domain.</t>
  </dd>
  <dt>off-site:</dt>
  <dd>
    <t>Describes a component or service or functionality not available within the customer site/domain.
It may be at a central site or an internet resident "cloud" service.
The connection may also be temporary and, e.g., only available at times when workers are present on a construction side, for instance.</t>
  </dd>
  <dt>PER:</dt>
  <dd>
    <t>Pledge-enrollment-request is a signature wrapped CSR, signed by the pledge that requests enrollment to a domain</t>
  </dd>
  <dt>POP:</dt>
  <dd>
    <t>Proof of possession (of a private key)</t>
  </dd>
  <dt>POI:</dt>
  <dd>
    <t>Proof of identity (see <xref target="req-sol"/>)</t>
  </dd>
  <dt>PVR:</dt>
  <dd>
    <t>Pledge-Voucher-Request is a request for a voucher signed by the Pledge to the Registrar.</t>
  </dd>
  <dt>RA:</dt>
  <dd>
    <t>Registration authority, an optional system component to which a CA delegates certificate management functions such as authorization checks.</t>
  </dd>
  <dt>RER:</dt>
  <dd>
    <t>Registrar-enrollment-request is the CSR of PER sent to the CA by the registrar (RA/LRA)</t>
  </dd>
  <dt>RVR:</dt>
  <dd>
    <t>Registrar-Voucher-Request is a request for a voucher signed by the Registrar to the MASA.
It may contain the PVR received from the pledge.</t>
  </dd>
</dl>

<t>This document includes many examples that would contain many long sequences of base64 encoded objects with no content directly comprehensible to a human reader.
In order to keep them readable the examples use the token "base64encodedvalue==" whenever such a thing occurs.
This token is in fact valid base64.
The full examples are in appendix.</t>

<t>This protocol unavoidably has a mix of both base64 encoded data (as is normal for many JSON encoded protocols), and also BASE64URL encoded data, as specified by JWS.
The 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 described in <xref section="4.1" sectionFormat="comma" target="RFC8995"/>.  Upon discovery of a potential Registrar, it <bcp14>SHOULD</bcp14> initiate the bootstrapping to that Registrar.
At the same time (so as to avoid the Slowloris-attack described in <xref target="RFC8995"/>), it <bcp14>SHOULD</bcp14> also respond to the pledge-responder-mode connections described in this document.</t>

<t>Once a pledge with such combined functionality has been bootstrapped, it <bcp14>MAY</bcp14> act as client for enrollment or re-enrollment of further certificates needed, e.g., using the enrollment protocol of choice.
If it still acts as server, the defined endpoints can be used to trigger a Pledge-Enrollment-Request (PER) for further certificates.</t>

<section anchor="building-automation"><name>Building Automation</name>

<t>In building automation a typical use case exists where a detached building (or a cabinet) or the basement of a building is equipped with sensors, actuators and controllers, but with only limited or no connection to the central building management system.
This limited connectivity may exist during installation time or also during operation time.</t>

<t>During the installation, for instance, in the basement, a service technician collects the device specific information from the basement network and provides them to the central building management system.  This could be done using a laptop, common mobile device, or dedicated commissioning tool to transport the information.
The service technician may visit every new house in a subdivision collecting device specific information before connecting to the Registrar.</t>

<t>A domain registrar may be part of the central building management system and already be operational in the installation network.
The central building management system can then provide operational parameters for the specific devices in the basement.
These operational parameters may comprise values and settings required in the operational phase of the sensors/actuators, among them a certificate issued by the operator to authenticate against other components and services.
These operational parameters are then provided to the devices in the basement facilitated by the service technician's laptop.</t>

</section>
<section anchor="infrastructure-isolation-policy"><name>Infrastructure Isolation Policy</name>

<t>This refers to any case in which the network infrastructure is normally isolated from the Internet as a matter of policy, most likely for security reasons.
In such a case, limited access to a domain registrar may be allowed in carefully controlled short periods of time, for example when a batch of new devices are deployed, but prohibited at other times.</t>

</section>
<section anchor="less-operational-security-in-the-target-domain"><name>Less Operational Security in the Target-Domain</name>

<t>The registration authority (RA) performing the authorization of a certificate request is a critical PKI component and therefore requires higher operational security than other components utilizing the issued certificates.
CAs may also require higher security in the registration procedures.
There may be situations in which the customer site/domain does not offer enough security to operate a RA/CA and therefore this service is transferred to a backend that offers a higher level of operational security.</t>

</section>
</section>
<section anchor="limitations"><name>Limitations</name>

<t>The mechanism described in this document presumes the availability of the pledge and the registrar-agent to communicate with another.
This may not be possible in constrained environments where, in particular, power must be conserved.
In these situations, it is anticipated that the transceiver will be powered down most of the time.
This presents a rendezvous problem: the pledge is unavailable for certain periods of time, and the registrar-agent is similarly presumed to be unavailable for certain periods of time.</t>

</section>
</section>
<section anchor="req-sol"><name>Requirements Discussion and Mapping to Solution-Elements</name>

<t>Based on the intended target environment described in <xref target="sup-env"/> the following requirements are derived to support bootstrapping of pledges in responder mode (acting as server).</t>

<t><list style="symbols">
  <t>To facilitate the communication between a pledge in responder mode and registrar, additional functionality is needed either on the registrar or as a stand-alone component.
This new functionality is defined as registrar-agent and acts as an agent of the registrar to trigger the pledge to generate requests for voucher and enrollment. These requests are then provided by the  registrar-agent to the registrar.
This requires the definition of pledge endpoints to allow interaction with the registrar-agent.</t>
  <t>The communication between the registrar-agent and the pledge <bcp14>MUST NOT</bcp14> rely on transport layer security (TLS) because the pledge does not have a certificate that can easily be verified by <xref target="RFC6125"/> methods.
It is also more difficult to use TLS over other technology stacks (e.g., BTLE).</t>
  <t>The use of authenticated self-contained objects provides a work around for both the TLS challenges, and the technology stack challenge.</t>
  <t>By contrast, the registrar-agent can be authenticated by the registrar as a component, acting on behalf of the registrar.
In addition the registrar must be able to verify, which registrar-agent was in direct contact with the pledge.</t>
  <t>It would be inaccurate for the voucher request and voucher response to use an assertion with value "proximity" in the voucher, as the pledge was not in direct contact with the registrar for bootstrapping.
Therefore a new "agent-proximity" assertion value is necessary for distinguishing assertions the MASA can state.</t>
</list></t>

<t>At least the following properties are required for the voucher and enrollment processing:</t>

<t><list style="symbols">
  <t>Proof of Identity (POI): provides data-origin authentication of a data object, e.g., a voucher request or an enrollment request, utilizing an existing IDevID.
Certificate updates may utilize the certificate that is to be updated.</t>
  <t>Proof of Possession (POP): proves that an entity possesses and controls the private key corresponding to the public key contained in the certification request, typically by adding a signature computed using the private key to the certification request.</t>
</list></t>

<t>Solution examples based on existing technology are provided with the focus on existing IETF RFCs:</t>

<t><list style="symbols">
  <t>Voucher requests and responses as used in <xref target="RFC8995"/> already provide both, POP and POI, through a digital signature to protect the integrity of the voucher, while the corresponding signing certificate contains the identity of the signer.</t>
  <t>Certification requests are data structures containing the information from a requester for a CA to create a certificate.
The certification request format in BRSKI is PKCS#10 <xref target="RFC2986"/>.
In PKCS#10, the structure is signed to ensure integrity protection and proof of possession of the private key of the requester that corresponds to the contained public key.
In the application examples, this POP alone is not sufficient.
A POI is also required for the certification request and therefore the certification request needs to be additionally bound to the existing credential of the pledge (IDevID).
This binding supports the authorization decision for the certification request and may be provided directly with the certification request.
While BRSKI uses the binding to TLS, BRSKI-PRM aims at an additional signature of the PKCS#10 using existing credentials on the pledge (IDevID). This allows the process to be independent of the selected transport.</t>
</list></t>

</section>
<section anchor="architecture"><name>Architectural Overview</name>

<t>For BRSKI with pledge in responder mode, the base system architecture defined in BRSKI <xref target="RFC8995"/> is enhanced to facilitate the new use cases in which the pledge acts as server.
The pledge-responder-mode allows delegated bootstrapping using a registrar-agent instead of a direct connection between the pledge and the domain registrar.</t>

<t>Necessary enhancements to support authenticated self-contained objects for certificate enrollment are kept at a minimum to enable reuse of already defined architecture elements and interactions.</t>

<t>For the authenticated self-contained objects used for the certification request, BRSKI-PRM relies on the defined message wrapping mechanisms of the enrollment protocols stated in <xref target="req-sol"/> above.</t>

<t>The security used within the document for bootstrapping objects produced or consumed by the pledge bases on JOSE <xref target="RFC7515"/>. In constrained environments it may provided based on COSE <xref target="RFC9052"/> and <xref target="RFC9053"/>.</t>

<t>An abstract overview of the BRSKI-PRM protocol can be found in  <xref target="BRSKI-PRM-abstract"/>.</t>

<section anchor="uc2"><name>Pledge-Responder-Mode (PRM): Registrar-Agent Communication with Pledges</name>

<t>To support mutual trust establishment between the domain registrar and pledges not directly connected to the customer site/domain, this document specifies the exchange of authenticated self-contained objects (the voucher request/response as known from BRSKI and the enrollment request/response as introduced by BRSKI-PRM) with the help of a registrar-agent.</t>

<t>This leads to extensions of the logical components in the BRSKI architecture as shown in <xref target="uc2figure"/>.
Note that the Join Proxy is neglected in the figure as not needed by the registrar-agent.
The registrar-agent interacts with the pledge to transfer the required data objects for bootstrapping, which are then also exchanged between the registrar-agent and the domain registrar.
The addition of the registrar-agent influences the sequences of the data exchange between the pledge and the domain registrar as described in <xref target="RFC8995"/>.
To enable reuse of BRSKI defined functionality as much as possible, BRSKI-PRM:</t>

<t><list style="symbols">
  <t>uses existing endpoints where the required functionality is provided</t>
  <t>enhances existing endpoints with new supported media types, e.g., for JWS voucher</t>
  <t>defines new endpoints where additional functionality is required, e.g., for wrapped certification request, CA certificates, or new status information.</t>
</list></t>

<figure title="Architecture overview using registrar-agent" anchor="uc2figure"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="480" width="448" viewBox="0 0 448 480" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
<path d="M 8,240 L 8,384" fill="none" stroke="black"/>
<path d="M 32,48 L 32,232" fill="none" stroke="black"/>
<path d="M 72,240 L 72,384" fill="none" stroke="black"/>
<path d="M 144,240 L 144,336" fill="none" stroke="black"/>
<path d="M 200,368 L 200,432" fill="none" stroke="black"/>
<path d="M 240,32 L 240,144" fill="none" stroke="black"/>
<path d="M 240,240 L 240,336" fill="none" stroke="black"/>
<path d="M 304,240 L 304,336" fill="none" stroke="black"/>
<path d="M 352,152 L 352,232" fill="none" stroke="black"/>
<path d="M 352,336 L 352,368" fill="none" stroke="black"/>
<path d="M 360,72 L 360,144" fill="none" stroke="black"/>
<path d="M 400,240 L 400,336" fill="none" stroke="black"/>
<path d="M 400,368 L 400,432" fill="none" stroke="black"/>
<path d="M 440,32 L 440,144" fill="none" stroke="black"/>
<path d="M 240,32 L 440,32" fill="none" stroke="black"/>
<path d="M 32,48 L 64,48" fill="none" stroke="black"/>
<path d="M 160,48 L 232,48" fill="none" stroke="black"/>
<path d="M 240,64 L 440,64" fill="none" stroke="black"/>
<path d="M 240,144 L 440,144" fill="none" stroke="black"/>
<path d="M 8,240 L 72,240" fill="none" stroke="black"/>
<path d="M 144,240 L 240,240" fill="none" stroke="black"/>
<path d="M 304,240 L 400,240" fill="none" stroke="black"/>
<path d="M 80,304 L 136,304" fill="none" stroke="black"/>
<path d="M 248,304 L 296,304" fill="none" stroke="black"/>
<path d="M 144,336 L 240,336" fill="none" stroke="black"/>
<path d="M 304,336 L 400,336" fill="none" stroke="black"/>
<path d="M 200,368 L 400,368" fill="none" stroke="black"/>
<path d="M 8,384 L 72,384" fill="none" stroke="black"/>
<path d="M 200,432 L 400,432" fill="none" stroke="black"/>
<polygon class="arrowhead" points="360,232 348,226.4 348,237.6" fill="black" transform="rotate(90,352,232)"/>
<polygon class="arrowhead" points="360,152 348,146.4 348,157.6" fill="black" transform="rotate(270,352,152)"/>
<polygon class="arrowhead" points="304,304 292,298.4 292,309.6" fill="black" transform="rotate(0,296,304)"/>
<polygon class="arrowhead" points="256,304 244,298.4 244,309.6" fill="black" transform="rotate(180,248,304)"/>
<polygon class="arrowhead" points="144,304 132,298.4 132,309.6" fill="black" transform="rotate(0,136,304)"/>
<polygon class="arrowhead" points="88,304 76,298.4 76,309.6" fill="black" transform="rotate(180,80,304)"/>
<polygon class="arrowhead" points="40,232 28,226.4 28,237.6" fill="black" transform="rotate(90,32,232)"/>
<g class="text">
<text x="92" y="52">Drop</text>
<text x="132" y="52">Ship</text>
<text x="276" y="52">Vendor</text>
<text x="336" y="52">Service</text>
<text x="256" y="84">M</text>
<text x="312" y="84">anufacturer</text>
<text x="256" y="100">A</text>
<text x="304" y="100">uthorized</text>
<text x="400" y="100">Ownership</text>
<text x="256" y="116">S</text>
<text x="292" y="116">igning</text>
<text x="392" y="116">Tracker</text>
<text x="256" y="132">A</text>
<text x="300" y="132">uthority</text>
<text x="396" y="180">BRSKI-</text>
<text x="104" y="196">BRSKI-PRM</text>
<text x="396" y="196">MASA</text>
<text x="232" y="212">.............................</text>
<text x="392" y="212">.........</text>
<text x="120" y="228">.</text>
<text x="424" y="228">.</text>
<text x="120" y="244">.</text>
<text x="424" y="244">.</text>
<text x="120" y="260">.</text>
<text x="424" y="260">.</text>
<text x="36" y="276">Pledge</text>
<text x="120" y="276">.</text>
<text x="192" y="276">Registrar</text>
<text x="272" y="276">BRSKI</text>
<text x="340" y="276">Domain</text>
<text x="424" y="276">.</text>
<text x="120" y="292">.</text>
<text x="176" y="292">Agent</text>
<text x="272" y="292">EST</text>
<text x="352" y="292">Registrar</text>
<text x="424" y="292">.</text>
<text x="332" y="308">(PKI</text>
<text x="368" y="308">RA)</text>
<text x="424" y="308">.</text>
<text x="120" y="324">.</text>
<text x="212" y="324">LDevID</text>
<text x="424" y="324">.</text>
<text x="120" y="340">.</text>
<text x="424" y="340">.</text>
<text x="36" y="356">IDevID</text>
<text x="120" y="356">.</text>
<text x="424" y="356">.</text>
<text x="120" y="372">.</text>
<text x="424" y="372">.</text>
<text x="120" y="388">.</text>
<text x="224" y="388">Key</text>
<text x="300" y="388">Infrastructure</text>
<text x="424" y="388">.</text>
<text x="120" y="404">.</text>
<text x="236" y="404">(e.g.,</text>
<text x="280" y="404">PKI</text>
<text x="344" y="404">Certificate</text>
<text x="424" y="404">.</text>
<text x="120" y="420">.</text>
<text x="300" y="420">Authority)</text>
<text x="424" y="420">.</text>
<text x="120" y="436">.</text>
<text x="424" y="436">.</text>
<text x="272" y="452">.......................................</text>
<text x="220" y="468">&quot;Domain&quot;</text>
<text x="300" y="468">components</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
                             +------------------------+
   +---- Drop Ship ----------| Vendor Service         |
   |                         +------------------------+
   |                         | M anufacturer|         |
   |                         | A uthorized  |Ownership|
   |                         | S igning     |Tracker  |
   |                         | A uthority   |         |
   |                         +--------------+---------+
   |                                       ^
   |                                       |  BRSKI-
   |    BRSKI-PRM                          |   MASA
   |          .............................|.........
   V          .                            v        .
+-------+     .  +-----------+       +-----------+  .
|       |     .  |           |       |           |  .
|Pledge |     .  | Registrar | BRSKI | Domain    |  .
|       |     .  | Agent     |  EST  | Registrar |  .
|       |<------>|           |<----->| (PKI RA)  |  .
|       |     .  |     LDevID|       |           |  .
|       |     .  +-----------+       +-----+-----+  .
|IDevID |     .                            |        .
|       |     .         +------------------+-----+  .
+-------+     .         | Key Infrastructure     |  .
              .         | (e.g., PKI Certificate |  .
              .         |       Authority)       |  .
              .         +------------------------+  .
              .......................................
                       "Domain" components
]]></artwork></artset></figure>

<t>The following list describes the components in a (customer) site domain:</t>

<t><list style="symbols">
  <t>Pledge: The pledge is expected to respond with the necessary data objects for bootstrapping to the registrar-agent.
The protocol used between the pledge and the registrar-agent is assumed to be HTTP in the context of this document.
Other protocols may be used like CoAP, Bluetooth, or NFC, but are out of scope of this document.
A pledge acting as a server during bootstrapping leads to some differences to BRSKI:  <list style="symbols">
      <t>Discovery of the pledge by the registrar-agent must be possible.</t>
      <t>As the registrar-agent must be able to request data objects for bootstrapping of the pledge, the pledge must offer corresponding endpoints.</t>
      <t>The registrar-agent <bcp14>MAY</bcp14> provide additional data to the pledge in the context of the voucher triggering request, that the pledge includes into the PVR. 
This allows the registrar to identify, with which registrar-agent the pledge was in contact.</t>
      <t>Order of exchanges in the call flow may be different as the registrar-agent collects both, PVR and PER, at once and provides them to the registrar.
This approach is used in order to allow for bulk bootstrapping of several devices in a single pass through a new site by the commissioning personnel.</t>
      <t>The data objects utilized for the data exchange between the pledge and the registrar are self-contained authenticated objects (signature-wrapped objects).</t>
    </list></t>
  <t>Registrar-agent: provides a communication path to exchange data objects between the pledge and the domain registrar.
The registrar-agent brokers in situations in which the domain registrar is not directly reachable by the pledge.
This may be due to a different technology stack or due to missing connectivity.
The registrar-agent triggers a pledge to create bootstrapping artifacts such as the voucher-request and the enrollment-request on one or multiple pledges and performs a (bulk) bootstrapping based on the collected data.
The registrar-agent is expected to possess information about the domain registrar: the registrar EE certificate, LDevID(CA) certificate, IP address, either by configuration or by using the discovery mechanism defined in <xref target="RFC8995"/>.
There is no trust assumption between the pledge and the registrar-agent as only authenticated self-contained objects are used, which are transported via the registrar-agent and provided either by the pledge or the registrar.
The trust assumption between the registrar-agent and the registrar is based on the LDevID of the registrar-agent, provided by the PKI responsible for the domain.
This allows the registrar-agent to authenticate towards the registrar, e.g., in a TLS handshake.
Based on this, the registrar is able to distinguish a pledge from a registrar-agent during the TLS session establishment and also to verify that the registrar-agent is authorized to perform the bootstrapping of the distinct pledge.</t>
  <t>Join Proxy (not shown): same functionality as described in <xref target="RFC8995"/> if needed.
Note that a registrar-agent may use a join proxy to facilitate the TLS connection to the registrar, in the same way that a BRSKI pledge would use a join proxy. This is useful in cases where the registrar-agent does not have full IP connectivity via the domain network, or cases where it has no other means to locate the registrar on the network.</t>
  <t>Domain Registrar: In general the domain registrar fulfills the same functionality regarding the bootstrapping of the pledge in a (customer) site domain by facilitating the communication of the pledge with the MASA service and the domain PKI service.
In contrast to <xref target="RFC8995"/>, the domain registrar does not interact with a pledge directly but through the registrar-agent.
The registrar detects if the bootstrapping is performed by the pledge directly or by the registrar-agent.</t>
  <t>The manufacturer provided components/services (MASA and Ownership tracker) are used as defined in <xref target="RFC8995"/>.
For issuing a voucher, the MASA may perform additional checks on a voucher-request, to issue a voucher indicating agent-proximity instead of (registrar-)proximity.</t>
</list></t>

</section>
<section anchor="agt_prx"><name>Agent-Proximity Assertion</name>

<t>"Agent-proximity" is a statement, that the proximity registrar certificate was provided via the registrar-agent as defined in <xref target="exchanges_uc2"/> and not directly to the pledge.
"Agent-proximity" is therefore a weaker assertion then "proximity".
It is defined as additional assertion type in <xref target="I-D.ietf-anima-rfc8366bis"/>.
This can be verified by the registrar and also by the MASA during the voucher-request processing.
Note that at the time of creating the voucher-request, the pledge cannot verify the registrar's registrar EE  certificate and has no proof-of-possession of the corresponding private key for the certificate.
The pledge therefore accepts the registrar EE certificate provisionally until it receives the voucher as described in <xref target="exchanges_uc2_3"/>.
See also <xref target="RFC8995"/> "PROVISIONAL accept of server cert".</t>

<t>Trust handover to the domain is established via the "pinned-domain-certificate" in the voucher.</t>

<t>In contrast to the above, "proximity" provides a statement, that the pledge was in direct contact with the registrar and was able to verify proof-of-possession of the private key in the context of the TLS handshake.
The provisionally accepted registrar EE certificate can be verified after the voucher has been processed by the pledge.
As the returned voucher includes an additional signature by the registrar as defined in <xref target="exchanges_uc2_2_vs"/>, the pledge can also verify that the registrar possesses the corresponding private key.</t>

</section>
<section anchor="pledge_ep"><name>Behavior of Pledge in Pledge-Responder-Mode</name>

<t>The pledge is triggered by the registrar-agent to generate the PVR and PER as well as for the processing of the responses and the generation of status information.
Due to the use of the registrar-agent, the interaction with the domain registrar is changed as shown in <xref target="exchangesfig_uc2_1"/>.
To enable interaction with the registrar-agent, the pledge provides endpoints using the BRSKI defined endpoints based on the "/.well-known/brski" URI tree.</t>

<t>The following endpoints are defined for the <em>pledge</em> in this document.
The endpoints are defined with short names to also accommodate for the constraint case.
The URI path begins with "http://www.example.com/.well-known/brski" followed by a path-suffix that indicates the intended operation.</t>

<t>Operations and their corresponding URIs:</t>

<texttable title="Endpoints on the pledge" anchor="eppfigure1">
      <ttcol align='left'>Operation</ttcol>
      <ttcol align='left'>Operation path</ttcol>
      <ttcol align='left'>Details</ttcol>
      <c>Trigger pledge-voucher-request creation - Returns PVR</c>
      <c>/tv</c>
      <c><xref target="exchanges_uc2_1"/></c>
      <c>Trigger pledge-enrollment-request - Returns PER</c>
      <c>/te</c>
      <c><xref target="exchanges_uc2_1"/></c>
      <c>Provide voucher to pledge - Returns pledge-voucher-status</c>
      <c>/sv</c>
      <c><xref target="exchanges_uc2_3"/></c>
      <c>Provide enrollment response to pledge - Returns pledge-enrollment-status</c>
      <c>/se</c>
      <c><xref target="exchanges_uc2_3"/></c>
      <c>Provide CA certs to pledge</c>
      <c>/cc</c>
      <c><xref target="exchanges_uc2_3"/></c>
      <c>Query bootstrapping status of pledge - Returns pledge-status</c>
      <c>/ps</c>
      <c><xref target="exchanges_uc2_5"/></c>
</texttable>

</section>
<section anchor="behavior-of-registrar-agent"><name>Behavior of Registrar-Agent</name>

<t>The registrar-agent as a new component provides connectivity between the pledge and the domain registrar. 
It facilitates the exchange of data between the pledge and the domain registrar, which are the voucher request/response, the enrollment request/response, as well as related telemetry and status information.</t>

<t>For the communication with the pledge the registrar-agent utilizes communication endpoints provided by the pledge.
The transport in this specification is based on HTTP but may also be done using other transport mechanisms.
This new component changes the general interaction between the pledge and the domain registrar as shown in <xref target="uc2figure"/>.</t>

<t>For the communication with the registrar, the registrar-agent uses the endpoints of the domain registrar side already specified in <xref target="RFC8995"/> if suitable.
The EST <xref target="RFC7030"/> standard endpoints used by BRSKI do not expect signature wrapped-objects, which are used b BRSKI-PRM.
This specifically applies for the enrollment request and the provisioning of CA certificates. 
To accommodate the use of signature-wrapped object, the following additional endpoints are defined for the <em>registrar</em>.
Operations and their corresponding URIs:</t>

<texttable title="Additional endpoints on the registrar" anchor="eppfigure2">
      <ttcol align='left'>Operation</ttcol>
      <ttcol align='left'>Operation path</ttcol>
      <ttcol align='left'>Details</ttcol>
      <c>Supply PER to registrar</c>
      <c>/requestenroll</c>
      <c><xref target="exchanges_uc2_2_per"/></c>
      <c>Request (wrapped) CA certificates - Returns wrapped CA Certificates</c>
      <c>/wrappedcacerts</c>
      <c><xref target="exchanges_uc2_2_wca"/></c>
</texttable>

<t>For authentication to the domain registrar, the registrar-agent uses its LDevID(RegAgt).
The provisioning of the registrar-agent LDevID is out of scope for this document, but may be done in advance using a separate BRSKI run or by other means like configuration.
It is recommended to use short lived registrar-agent LDevIDs in the range of days or weeks as outlined in <xref target="sec_cons_reg-agt"/>.</t>

<t>The registrar-agent will use its LDevID(RegAgt) when establishing a TLS session with the domain registrar for TLS client authentication.
The LDevID(RegAgt) certificate <bcp14>MUST</bcp14> include a SubjectKeyIdentifier (SKID), which is used as reference in the context of an agent-signed-data object as defined in <xref target="exchanges_uc2_1"/>.
Note that this is an additional requirement for issuing the certificate, as <xref target="IEEE-802.1AR"/> only requires the SKID to be included for intermediate CA certificates.
<xref target="RFC8995"/> makes a similar requirement.
In BRSKI-PRM, the SKID is used in favor of a certificate fingerprint to avoid additional computations.</t>

<t>Using an LDevID for TLS client authentication of the registrar-agent is a deviation from <xref target="RFC8995"/>, in which the pledge's IDevID credential is used to perform TLS client authentication.
The use of the LDevID(RegAgt) allows the domain registrar to distinguish, if bootstrapping is initiated from a pledge or from a registrar-agent and to adopt different internal handling accordingly.
If a registrar detects a request that originates from a registrar-agent it is able to switch the operational mode from BRSKI to BRSKI-PRM.
This may be supported by a specific naming in the SAN (subject alternative name) component of the LDevID(RegAgt) certificate.
Alternatively, the domain may feature a CA specifically for issuing registrar-agent LDevID certificates.
This allows the registrar to detect registrar-agents based on the issuing CA.</t>

<t>As BRSKI-PRM uses authenticated self-contained data objects between the pledge and the domain registrar, the binding of the pledge identity to the requests is provided by the data object signature employing the pledge's IDevID.
The objects exchanged between the pledge and the domain registrar used in the context of this specifications are JOSE objects.</t>

<t>In addition to the LDevID(RegAgt), the registrar-agent is provided with the product-serial-number(s) of the pledge(s) to be bootstrapped.
This is necessary to allow the discovery of pledge(s) by the registrar-agent using mDNS (see <xref target="discovery_uc2_ppa"/>)
The list may be provided by administrative means or the registrar agent may get the information via an interaction with the pledge.
For instance, <xref target="RFC9238"/> describes scanning of a QR code, the product-serial-number would be initialized from the 12N B005 Product Serial Number.</t>

<t>According to <xref target="RFC8995"/> section 5.3, the domain registrar performs the pledge authorization for bootstrapping within his domain based on the pledge voucher-request object.</t>

<t>The following information <bcp14>MUST</bcp14> be available at the registrar-agent:</t>

<t><list style="symbols">
  <t>LDevID(RegAgt): own operational key pair.</t>
  <t>Registrar EE certificate: certificate of the domain registrar.</t>
  <t>Serial-number(s): product-serial-number(s) of pledge(s) to be bootstrapped.</t>
</list></t>

<section anchor="discovery_uc2_reg"><name>Discovery of Registrar by Registrar-Agent</name>

<t>The discovery of the domain registrar may be done as specified in <xref target="RFC8995"/> with the
deviation that it is done between the registrar-agent and the domain registrar.
Alternatively, the registrar-agent may be configured with the address of the domain registrar and the certificate of the domain registrar.</t>

</section>
<section anchor="discovery_uc2_ppa"><name>Discovery of Pledge by Registrar-Agent</name>

<t>The discovery of the pledge by registrar-agent should be done by using DNS-based Service Discovery <xref target="RFC6763"/> over Multicast DNS <xref target="RFC6762"/> to discover the pledge. The pledge constructs a local host name based on device local information (product-serial-number), which results in "product-serial-number._brski-pledge._tcp.local".</t>

<t>The registrar-agent <bcp14>MAY</bcp14> use</t>

<t><list style="symbols">
  <t>"product-serial-number._brski-pledge._tcp.local", to discover a specific pledge, e.g., when connected to a local network.</t>
  <t>"_brski-pledge._tcp.local" to get a list of pledges to be bootstrapped.</t>
</list></t>

<t>A manufacturer may allow the pledge to react on mDNS discovery without his product-serial-number contained. This allows a commissioning tool to discover pledges to be bootstrapped in the domain. The manufacturer may opt out of this functionality as outlined in <xref target="sec_cons_mDNS"/>.</t>

<t>To be able to detect the pledge using mDNS, network connectivity is required.
For Ethernet it is provided by simply connecting the network cable.
For WiFi networks, connectivity can be provided by using a pre-agreed SSID for bootstrapping.
The same approach can be used by 6LoWPAN/mesh using a pre-agreed PAN ID.
How to gain network connectivity is out of scope of this document.</t>

</section>
</section>
</section>
<section anchor="exchanges_uc2"><name>Bootstrapping Data Objects and Corresponding Exchanges</name>

<t>The interaction of the pledge with the registrar-agent may be accomplished using different transport means (protocols and/or network technologies).
This specification 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/tv"</t>

<t>The registrar-agent PVR trigger Content-Type header is: <spanx style="verb">application/json</spanx>.
Following parameters are provided in the JSON object:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: base64-encoded registrar EE TLS certificate.</t>
  <t>agent-signed-data: base64-encoded JSON-in-JWS object.</t>
</list></t>

<t>The trigger for the pledge to create a PVR is depicted in the following figure:</t>

<figure title="Representation of trigger to create PVR" anchor="pavrt"><artwork align="left"><![CDATA[
{
  "agent-provided-proximity-registrar-cert": "base64encodedvalue==",
  "agent-signed-data": "base64encodedvalue=="
}
]]></artwork></figure>

<t>The pledge provisionally accepts the agent-provided-proximity-registrar-cert, it <bcp14>SHOULD</bcp14> verify it after a voucher is received.
The pledge will be unable to verify the agent-signed-data itself as it does not possess the LDevID(RegAgt) certificate and the domain trust has not been established at this point of the communication.
It <bcp14>SHOULD</bcp14> be done, after the voucher has been received.</t>

<t>The agent-signed-data is a JSON-in-JWS object and contains the following information:</t>

<t>The header of the agent-signed-data contains:</t>

<t><list style="symbols">
  <t>alg: algorithm used for creating the object signature.</t>
  <t>kid: <bcp14>MUST</bcp14> contain the base64-encoded bytes of the SubjectKeyIdentifier (the "KeyIdentifier" OCTET STRING value), excluding the ASN.1 encoding of "OCTET STRING" of the LDevID(RegAgt) certificate.</t>
</list></t>

<t>The body of the agent-signed-data contains an "ietf-voucher-request-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 if the request is not valid JSON even though the PVR media type was set to <spanx style="verb">application/json</spanx>.</t>
  <t>403 Forbidden: if the pledge detected that one or more security parameters from the trigger message to create the PVR were not valid, e.g., the LDevID (Reg) certificate.</t>
</list></t>

<t>The header of the PVR <bcp14>SHALL</bcp14> contain the following parameters as defined in <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t>alg: algorithm used for creating the object signature.</t>
  <t>x5c: contains the base64-encoded pledge IDevID certificate.
It may optionally contain the certificate chain for this certificate.</t>
</list></t>

<t>The payload of the PVR <bcp14>MUST</bcp14> contain the following parameters as part of the ietf-voucher-request-prm:voucher as defined in <xref target="RFC8995"/>:</t>

<t><list style="symbols">
  <t>created-on: <bcp14>SHALL</bcp14> contain the current date and time in yang:date-and-time format.
If the pledge does not have synchronized time, it <bcp14>SHALL</bcp14> use the created-on time from the agent-signed-data, received in the trigger to create a PVR.</t>
  <t>nonce: <bcp14>SHALL</bcp14> contain a cryptographically strong pseudo-random number.</t>
  <t>serial-number: <bcp14>SHALL</bcp14> contain the pledge product-serial-number as X520SerialNumber.</t>
  <t>assertion: <bcp14>SHALL</bcp14> contain the requested voucher assertion "agent-proximity".</t>
</list></t>

<t>The ietf-voucher-request:voucher is enhanced with additional parameters:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: <bcp14>MUST</bcp14> be included and contains the base64-encoded registrar EE certificate (provided as trigger parameter by the registrar-agent).</t>
  <t>agent-signed-data: <bcp14>MUST</bcp14> contain the base64-encoded agent-signed-data (as defined in <xref target="asd"/>) and provided as trigger parameter.</t>
</list></t>

<t>The enhancements of the YANG module for the ietf-voucher-request with these new leaves are defined in <xref target="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/te"</t>

<t>The registrar-agent PER trigger Content-Type header is: <spanx style="verb">application/json</spanx> with an empty body by default.
Note that using HTTP POST allows for an empty body, but also to provide additional data, like CSR attributes or information about the enroll type "enroll-generic-cert" or "re-enroll-generic-cert".
The "enroll-generic-cert" case is shown in <xref target="raer"/>.</t>

<figure title="Example of trigger to create a PER" anchor="raer"><artwork align="left"><![CDATA[
{
  "enroll-type" : "enroll-generic-cert"
}
]]></artwork></figure>

</section>
<section anchor="pledge-enrollment-request-per-response"><name>Pledge-Enrollment-Request (PER) - Response</name>

<t>In the following the enrollment is described as initial enrollment with an empty HTTP POST body.</t>

<t>Upon receiving the enrollment-trigger, the pledge <bcp14>SHALL</bcp14> construct the PER as authenticated self-contained object.
The CSR already assures proof of possession of the private key corresponding to the contained public key.
In addition, based on the additional signature using the IDevID, proof of identity is provided.
Here, a JOSE object is being created in which the body utilizes the YANG module ietf-ztp-types with the grouping for csr-grouping for the CSR as defined in <xref target="I-D.ietf-netconf-sztp-csr"/>.</t>

<t>Depending on the capability of the pledge, it constructs the enrollment request (PER) as plain PKCS#10.
Note, the focus in this use case is placed on PKCS#10 as PKCS#10 can be transmitted in different enrollment protocols in the infrastructure like EST, CMP, CMS, and SCEP.
If the pledge has already implemented an enrollment protocol, it may leverage that functionality for the creation of the CSR.
Note, <xref target="I-D.ietf-netconf-sztp-csr"/> also allows for inclusion of certification requests in different formats used by CMP or CMC.</t>

<t>The pledge <bcp14>SHOULD</bcp14> construct the PER as PKCS#10.
In BRSKI-PRM it <bcp14>MUST</bcp14> sign it additionally with its IDevID credentials to provide proof-of-identity bound to the PKCS#10 as described below.</t>

<t>If the pledge is unable to construct the PER it <bcp14>SHOULD</bcp14> respond with a HTTP 4xx/5xx error code to the registrar-agent to indicate that it is not able to create the PER.</t>

<t>The following 4xx client error codes <bcp14>MAY</bcp14> be used:</t>

<t><list style="symbols">
  <t>400 Bad Request: if the pledge detected an error in the format of the request or detected invalid JSON even though the PER media type was set to <spanx style="verb">application/json</spanx>.</t>
  <t>403 Forbidden: if the pledge detected that one or more security parameters (if provided) from the trigger message to create the PER are not valid.</t>
  <t>406 Not Acceptable: if the request's Accept header indicates a type that is unknown or unsupported. For example, a type other than <spanx style="verb">application/jose+json</spanx>.</t>
  <t>415 Unsupported Media Type: if the request's Content-Type header indicates a type that is unknown or unsupported. For example, a type other than 'application/json'.</t>
</list></t>

<t>A successful enrollment will result in a generic LDevID certificate for the pledge in the new domain, which can be used to request further (application specific) LDevID certificates if necessary for operation.
The registrar-agent <bcp14>SHALL</bcp14> use the endpoints specified in this document.</t>

<t><xref target="I-D.ietf-netconf-sztp-csr"/> considers PKCS#10 but also CMP and CMC as certification request format. Note that the wrapping signature is only necessary for plain PKCS#10 as other request formats like CMP and CMS support the signature wrapping as part of their own certificate request format.</t>

<t>The registrar-agent enrollment-request Content-Type header for a signature-wrapped PKCS#10 is: <spanx style="verb">application/jose+json</spanx></t>

<t>The header of the pledge enrollment-request <bcp14>SHALL</bcp14> contain the following parameter as defined in <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t>alg: algorithm used for creating the object signature.</t>
  <t>x5c: contains the base64-encoded pledge IDevID certificate.
It may optionally contain the certificate chain for this certificate.</t>
</list></t>

<t>The body of the pledge enrollment-request <bcp14>SHOULD</bcp14> contain a P10 parameter (for PKCS#10) as defined for ietf-ztp-types:p10-csr in <xref target="I-D.ietf-netconf-sztp-csr"/>:</t>

<t><list style="symbols">
  <t>P10: contains the base64-encoded PKCS#10 of the pledge.</t>
</list></t>

<t>The JOSE object is signed using the pledge's IDevID credential, which corresponds to the certificate signaled in the JOSE header.</t>

<figure title="Representation of PER" anchor="per"><artwork align="left"><![CDATA[
# The PER in General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-ztp-types)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded Payload "ietf-ztp-types" Representation in JSON Syntax
"ietf-ztp-types": {
  "p10-csr": "base64encodedvalue=="
}

# Decoded "JWS Protected Header" Representation in JSON Syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "crit":["created-on"],
  "created-on": "2022-09-13T00:00:02.000Z"
}
]]></artwork></figure>

<t>With the collected PVR and PER, the registrar-agent starts the interaction with the domain registrar.</t>

<t>The new protected header field "created-on" is introduced to reflect freshness of the PER.
The field is marked critical "crit" to ensure that it must be understood and validated by the receiver (here the domain registrar) according to section 4.1.11 of <xref target="RFC7515"/>.
It allows the registrar to verify the timely correlation between the PER and previously exchanged messages, i.e., created-on of PER &gt;= created-on of PVR &gt;= created-on of PVR trigger.</t>

<t>As the registrar-agent is intended to facilitate communication between the pledge and the domain registrar, a collection of requests from more than one pledge is possible.
This allows bulk bootstrapping of several pledges using the same connection between the registrar-agent and the domain registrar.</t>

</section>
</section>
<section anchor="exchanges_uc2_2"><name>Request Object Handling initiated by the Registrar-Agent on Registrar, MASA and Domain CA</name>

<t>The BRSKI-PRM bootstrapping exchanges between registrar-agent and domain registrar resemble the BRSKI exchanges between pledge and domain registrar (pledge-initiator-mode) with some deviations.</t>

<t>Preconditions:</t>

<t><list style="symbols">
  <t>Registrar-agent: possesses its own LDevID(RegAgt) credentials of the site domain.
In addition, it <bcp14>MAY</bcp14> possess the IDevID CA certificate of the pledge vendor/manufacturer to verify the pledge certificate in the received request messages.
It has the address of the domain registrar through configuration or by discovery, e.g., mDNS/DNSSD.
The registrar-agent has acquired one or more PVR and PER objects.</t>
  <t>Registrar: possesses the IDevID CA certificate of the pledge vendor/manufacturer and its own registrar EE credentials of the site domain.</t>
  <t>MASA: possesses its own vendor/manufacturer credentials (voucher signing key, TLS server certificate) related to pledges IDevID and <bcp14>MAY</bcp14> possess the site-specific domain CA certificate.
The latter is only necessary if the MASA needs to verify that the domain of the Registrar is a-priori authorized to enroll a particular pledge, or a particular type of pledge.
In such case is out of scope of this document how the MASA will obtain the domain CA certificate.
In other cases, a MASA may allow the pledge to enroll into an anonymous and/or yet-unknown domain and then the a-priori possession of the domain CA certificate is not needed.</t>
</list></t>

<figure title="Request processing between registrar-agent and bootstrapping services" anchor="exchangesfig_uc2_2"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="624" width="504" viewBox="0 0 504 624" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,144 L 40,608" fill="none" stroke="black"/>
<path d="M 104,32 L 104,96" fill="none" stroke="black"/>
<path d="M 152,32 L 152,96" fill="none" stroke="black"/>
<path d="M 200,104 L 200,176" fill="none" stroke="black"/>
<path d="M 200,224 L 200,256" fill="none" stroke="black"/>
<path d="M 200,320 L 200,608" fill="none" stroke="black"/>
<path d="M 248,32 L 248,96" fill="none" stroke="black"/>
<path d="M 312,32 L 312,96" fill="none" stroke="black"/>
<path d="M 352,104 L 352,288" fill="none" stroke="black"/>
<path d="M 352,416 L 352,608" fill="none" stroke="black"/>
<path d="M 384,32 L 384,96" fill="none" stroke="black"/>
<path d="M 416,32 L 416,96" fill="none" stroke="black"/>
<path d="M 456,104 L 456,352" fill="none" stroke="black"/>
<path d="M 456,400 L 456,608" fill="none" stroke="black"/>
<path d="M 496,32 L 496,96" fill="none" stroke="black"/>
<path d="M 8,32 L 104,32" fill="none" stroke="black"/>
<path d="M 152,32 L 248,32" fill="none" stroke="black"/>
<path d="M 312,32 L 384,32" fill="none" stroke="black"/>
<path d="M 416,32 L 496,32" fill="none" stroke="black"/>
<path d="M 8,96 L 104,96" fill="none" stroke="black"/>
<path d="M 152,96 L 248,96" fill="none" stroke="black"/>
<path d="M 312,96 L 384,96" fill="none" stroke="black"/>
<path d="M 416,96 L 496,96" fill="none" stroke="black"/>
<path d="M 48,176 L 88,176" fill="none" stroke="black"/>
<path d="M 144,176 L 192,176" fill="none" stroke="black"/>
<path d="M 48,240 L 64,240" fill="none" stroke="black"/>
<path d="M 176,240 L 192,240" fill="none" stroke="black"/>
<path d="M 208,320 L 304,320" fill="none" stroke="black"/>
<path d="M 360,320 L 448,320" fill="none" stroke="black"/>
<path d="M 208,336 L 272,336" fill="none" stroke="black"/>
<path d="M 384,336 L 448,336" fill="none" stroke="black"/>
<path d="M 208,400 L 288,400" fill="none" stroke="black"/>
<path d="M 368,400 L 448,400" fill="none" stroke="black"/>
<path d="M 48,416 L 80,416" fill="none" stroke="black"/>
<path d="M 160,416 L 192,416" fill="none" stroke="black"/>
<path d="M 48,448 L 64,448" fill="none" stroke="black"/>
<path d="M 168,448 L 192,448" fill="none" stroke="black"/>
<path d="M 208,480 L 248,480" fill="none" stroke="black"/>
<path d="M 304,480 L 344,480" fill="none" stroke="black"/>
<path d="M 208,496 L 224,496" fill="none" stroke="black"/>
<path d="M 328,496 L 344,496" fill="none" stroke="black"/>
<path d="M 208,528 L 224,528" fill="none" stroke="black"/>
<path d="M 328,528 L 344,528" fill="none" stroke="black"/>
<path d="M 48,544 L 64,544" fill="none" stroke="black"/>
<path d="M 176,544 L 192,544" fill="none" stroke="black"/>
<path d="M 48,576 L 64,576" fill="none" stroke="black"/>
<path d="M 176,576 L 192,576" fill="none" stroke="black"/>
<path d="M 48,592 L 64,592" fill="none" stroke="black"/>
<path d="M 176,592 L 192,592" fill="none" stroke="black"/>
<polygon class="arrowhead" points="456,336 444,330.4 444,341.6" fill="black" transform="rotate(0,448,336)"/>
<polygon class="arrowhead" points="456,320 444,314.4 444,325.6" fill="black" transform="rotate(0,448,320)"/>
<polygon class="arrowhead" points="352,496 340,490.4 340,501.6" fill="black" transform="rotate(0,344,496)"/>
<polygon class="arrowhead" points="352,480 340,474.4 340,485.6" fill="black" transform="rotate(0,344,480)"/>
<polygon class="arrowhead" points="216,528 204,522.4 204,533.6" fill="black" transform="rotate(180,208,528)"/>
<polygon class="arrowhead" points="216,480 204,474.4 204,485.6" fill="black" transform="rotate(180,208,480)"/>
<polygon class="arrowhead" points="216,400 204,394.4 204,405.6" fill="black" transform="rotate(180,208,400)"/>
<polygon class="arrowhead" points="200,576 188,570.4 188,581.6" fill="black" transform="rotate(0,192,576)"/>
<polygon class="arrowhead" points="200,448 188,442.4 188,453.6" fill="black" transform="rotate(0,192,448)"/>
<polygon class="arrowhead" points="200,240 188,234.4 188,245.6" fill="black" transform="rotate(0,192,240)"/>
<polygon class="arrowhead" points="200,176 188,170.4 188,181.6" fill="black" transform="rotate(0,192,176)"/>
<polygon class="arrowhead" points="56,592 44,586.4 44,597.6" fill="black" transform="rotate(180,48,592)"/>
<polygon class="arrowhead" points="56,544 44,538.4 44,549.6" fill="black" transform="rotate(180,48,544)"/>
<polygon class="arrowhead" points="56,416 44,410.4 44,421.6" fill="black" transform="rotate(180,48,416)"/>
<polygon class="arrowhead" points="56,176 44,170.4 44,181.6" fill="black" transform="rotate(180,48,176)"/>
<g class="text">
<text x="60" y="52">Registrar-</text>
<text x="188" y="52">Domain</text>
<text x="348" y="52">Domain</text>
<text x="452" y="52">Vendor</text>
<text x="40" y="68">agent</text>
<text x="200" y="68">Registrar</text>
<text x="332" y="68">CA</text>
<text x="456" y="68">Service</text>
<text x="52" y="84">(RegAgt)</text>
<text x="192" y="84">(JRC)</text>
<text x="452" y="84">(MASA)</text>
<text x="40" y="116">|</text>
<text x="412" y="116">Internet</text>
<text x="36" y="132">[voucher</text>
<text x="80" y="132">+</text>
<text x="136" y="132">enrollment]</text>
<text x="20" y="148">[PVR</text>
<text x="64" y="148">PER</text>
<text x="120" y="148">available</text>
<text x="168" y="148">]</text>
<text x="116" y="180">mTLS</text>
<text x="164" y="196">[Reg-Agt</text>
<text x="256" y="196">authenticated</text>
<text x="152" y="212">and</text>
<text x="220" y="212">authorized?]</text>
<text x="120" y="244">Voucher-Req</text>
<text x="120" y="260">(PVR)</text>
<text x="164" y="276">[Reg-Agt</text>
<text x="252" y="276">authorized?]</text>
<text x="160" y="292">[accept</text>
<text x="228" y="292">device?]</text>
<text x="164" y="308">[contact</text>
<text x="232" y="308">vendor]</text>
<text x="332" y="324">mTLS</text>
<text x="328" y="340">Voucher-Req</text>
<text x="328" y="356">(RVR)</text>
<text x="388" y="372">[extract</text>
<text x="464" y="372">DomainID]</text>
<text x="384" y="388">[update</text>
<text x="440" y="388">audit</text>
<text x="484" y="388">log]</text>
<text x="328" y="404">Voucher</text>
<text x="120" y="420">Voucher</text>
<text x="116" y="452">Enroll-Req</text>
<text x="112" y="468">(PER)</text>
<text x="276" y="484">mTLS</text>
<text x="276" y="500">Enroll-Req</text>
<text x="264" y="516">(RER)</text>
<text x="280" y="532">Enroll-Resp</text>
<text x="120" y="548">Enroll-Resp</text>
<text x="120" y="580">caCerts-Req</text>
<text x="120" y="596">caCerts-Res</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+-----------+     +-----------+       +--------+   +---------+
| Registrar-|     | Domain    |       | Domain |   | Vendor  |
| agent     |     | Registrar |       | CA     |   | Service |
| (RegAgt)  |     |  (JRC)    |       |        |   | (MASA)  |
+-----------+     +-----------+       +--------+   +---------+
    |                   |                  |   Internet |
[voucher + enrollment]  |                  |            |
[PVR, PER available ]   |                  |            |
    |                   |                  |            |
    |<----- mTLS ------>|                  |            |
    |           [Reg-Agt authenticated     |            |
    |            and authorized?]          |            |
    |                   |                  |            |
    |--- Voucher-Req -->|                  |            |
    |       (PVR)       |                  |            |
    |           [Reg-Agt authorized?]      |            |
    |           [accept device?]           |            |
    |           [contact vendor]                        |
    |                   |------------- mTLS ----------->|
    |                   |--------- Voucher-Req -------->|
    |                   |             (RVR)             |
    |                   |                   [extract DomainID]
    |                   |                   [update audit log]
    |                   |<---------- Voucher -----------|
    |<---- Voucher -----|                  |            |
    |                   |                  |            |
    |--- Enroll-Req --->|                  |            |
    |      (PER)        |                  |            |
    |                   |<----- mTLS ----->|            |
    |                   |--- Enroll-Req -->|            |
    |                   |     (RER)        |            |
    |                   |<-- Enroll-Resp---|            |
    |<-- Enroll-Resp ---|                  |            |
    |                   |                  |            |
    |--- caCerts-Req -->|                  |            |
    |<-- caCerts-Res ---|                  |            |
    |                   |                  |            |
]]></artwork></artset></figure>

<t>The registrar-agent establishes a TLS connection to the registrar.
As already stated in <xref target="RFC8995"/>, the use of TLS 1.3 (or newer) is encouraged.
TLS 1.2 or newer is <bcp14>REQUIRED</bcp14> on the registrar-agent side.
TLS 1.3 (or newer) <bcp14>SHOULD</bcp14> be available on the registrar, but TLS 1.2 <bcp14>MAY</bcp14> be used.
TLS 1.3 (or newer) <bcp14>SHOULD</bcp14> be available on the MASA, but TLS 1.2 <bcp14>MAY</bcp14> be used.</t>

<section anchor="connection-establishment-registrar-agent-to-registrar"><name>Connection Establishment (Registrar-Agent to Registrar)</name>

<t>In contrast to BRSKI <xref target="RFC8995"/> TLS client authentication to the registrar is achieved by using registrar-agent LDevID(RegAgt) credentials instead of pledge IDevID credentials.
Consequently BRSKI (pledge-initiator-mode) is distinguishable from BRSKI-PRM (pledge-responder-mode) by the registrar.
The registrar <bcp14>SHOULD</bcp14> verify that the registrar-agent is authorized to establish a connection to the registrar by TLS client authentication using LDevID(RegAgt) credentials.
If the connection from registrar-agent to registrar is established, the authorization <bcp14>SHALL</bcp14> be verified again based on agent-signed-data contained in the PVR.
This ensures that the pledge has been triggered by an authorized registrar-agent.</t>

<t>The registrar can receive request objects in different formats as defined in <xref target="RFC8995"/>.
Specifically, the registrar will receive JSON-in-JWS objects generated by the pledge for voucher-request and enrollment-request (instead of BRSKI voucher-request as CMS-signed JSON and enrollment-request as PKCS#10).</t>

<t>The registrar-agent <bcp14>SHALL</bcp14> send the PVR by HTTP POST to the registrar endpoint: "/.well-known/brski/requestvoucher"</t>

<t>The Content-Type header field for JSON-in-JWS PVR is: <spanx style="verb">application/voucher-jws+json</spanx> (see <xref target="pvr"/> for the content definition), as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

<t>The registrar-agent <bcp14>SHOULD</bcp14> set the Accept field in the request-header indicating the acceptable Content-Type for the voucher-response.
The voucher-response Content-Type header field <bcp14>SHOULD</bcp14> be set to <spanx style="verb">application/voucher-jws+json</spanx> as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

</section>
<section anchor="pledge-voucher-request-pvr-processing-by-registrar"><name>Pledge-Voucher-Request (PVR) Processing by Registrar</name>

<t>After receiving the PVR from registrar-agent, the registrar <bcp14>SHALL</bcp14> perform the verification as defined in section 5.3 of <xref target="RFC8995"/>.
In addition, the registrar <bcp14>SHALL</bcp14> verify the following parameters from the PVR:</t>

<t><list style="symbols">
  <t>agent-provided-proximity-registrar-cert: <bcp14>MUST</bcp14> contain registrar's own registrar EE certificate to ensure the registrar in proximity of the registrar-agent is the desired registrar for this PVR.</t>
  <t>agent-signed-data: The registrar <bcp14>MUST</bcp14> verify that the agent provided data has been signed with the LDevID(RegAgt) credentials indicated in the "kid" JOSE header parameter.
The registrar <bcp14>MUST</bcp14> verify that the LDevID(ReAgt) certificate, corresponding to the signature, is still valid.
If the certificate is already expired, the registrar <bcp14>SHALL</bcp14> reject the request.
Validity of used signing certificates at the time of signing the agent-signed-data is necessary to avoid that a rogue registrar-agent generates agent-signed-data objects to onboard arbitrary pledges at a later point in time, see also <xref target="sec_cons_reg-agt"/>.
The registrar <bcp14>MUST</bcp14> fetch the LDevID(RegAgt) certificate, based on the provided SubjectKeyIdentifier (SKID) contained in the "kid" header parameter of the agent-signed-data, and perform this verification.
This requires, that the registrar can fetch the LDevID(RegAgt) certificate data (including intermediate CA certificates if existent) based on the SKID.</t>
</list></t>

<t>If the registrar is unable to validate the PVR it <bcp14>SHOULD</bcp14> respond with a HTTP 4xx/5xx error code to the registrar-agent.</t>

<t>The following 4xx client error codes <bcp14>SHOULD</bcp14> be used:</t>

<t><list style="symbols">
  <t>403 Forbidden: if the registrar detected that one or more security related parameters are not valid.</t>
  <t>404 Not Found status code if the pledge provided information could not be used with automated allowance, as described in section 5.3 of <xref target="RFC8995"/>.</t>
  <t>406 Not Acceptable: if the Content-Type indicated by the Accept header is unknown or unsupported.</t>
</list></t>

<t>If the validation succeeds, the registrar <bcp14>SHOULD</bcp14> accept the PVR to join the domain as defined in section 5.3 of <xref target="RFC8995"/>.
The registrar then establishes a TLS connection to MASA as described in section 5.4 of <xref target="RFC8995"/> to obtain a voucher for the pledge.</t>

</section>
<section anchor="registrar-voucher-request-rvr-processing-registrar-to-masa"><name>Registrar-Voucher-Request (RVR) Processing (Registrar to MASA)</name>

<t>The registrar <bcp14>SHALL</bcp14> construct the payload of the RVR as defined in <xref target="RFC8995"/>.
The RVR encoding <bcp14>SHALL</bcp14> be JSON-in-JWS as defined in <xref target="I-D.ietf-anima-jws-voucher"/>.</t>

<t>The header of the RVR <bcp14>SHALL</bcp14> contain the following parameter as defined for JWS <xref target="RFC7515"/>:</t>

<t><list style="symbols">
  <t>alg: algorithm used to create the object signature</t>
  <t>x5c: base64-encoded registrar LDevID certificate(s)
(It optionally contains the certificate chain for this certificate)</t>
</list></t>

<t>The payload of the RVR <bcp14>MUST</bcp14> contain the following parameter as part of the voucher-request as defined in <xref target="RFC8995"/>:</t>

<t><list style="symbols">
  <t>created-on: current date and time in yang:date-and-time format of RVR creation</t>
  <t>nonce: copied from the PVR</t>
  <t>serial-number: product-serial-number of pledge.
The registrar <bcp14>MUST</bcp14> verify that the IDevID certificate subject serialNumber of the pledge (X520SerialNumber) matches the serial-number value in the PVR.
In addition, it <bcp14>MUST</bcp14> be equal to the serial-number value contained in the agent-signed data of PVR.</t>
  <t>assertion: voucher assertion requested by the pledge (agent-proximity).
The registrar provides this information to assure successful verification of agent proximity based on the agent-signed-data.</t>
  <t>prior-signed-voucher-request: PVR as in <xref target="RFC8995"/></t>
</list></t>

<t>The RVR <bcp14>MUST</bcp14> be enhanced with the following parameter, when the assertion "agent-proximity" is requested, as defined in <xref target="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 the registrar EE certificate as well as potential intermediate CA certificates up to the pinned domain certificate.
The pinned domain certificate is already contained in the voucher payload ("pinned-domain-cert").</t>

<t>This signature provides a proof of possession of the private key corresponding to the registrar EE certificate the pledge received in the trigger for the PVR (see <xref target="pavrt"/>).
The registrar <bcp14>MUST</bcp14> use the same registrar EE credentials used for authentication in the TLS handshake to authenticate towards the registrar-agent.
This ensures that the same registrar EE certificate can be used to verify the signature as transmitted in the voucher request as also transferred in the PVR in the "agent-provided-proximity-registrar-cert".
<xref target="MASA-REG-vr"/> below provides an example of the voucher with two signatures.</t>

<figure title="Representation of MASA issued voucher with additional registrar signature" anchor="MASA-REG-vr"><artwork align="left"><![CDATA[
# The MASA issued voucher with additional registrar signature in
  General JWS Serialization syntax
{
  "payload": "BASE64URL(ietf-voucher:voucher)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header (MASA)))",
      "signature": "base64encodedvalue=="
    },
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header (Reg)))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded payload "ietf-voucher:voucher" representation in
  JSON syntax
"ietf-voucher:voucher": {
   "assertion": "agent-proximity",
   "serial-number": "callee4711",
   "nonce": "base64encodedvalue==",
   "created-on": "2022-01-04T00:00:02.000Z",
   "pinned-domain-cert": "base64encodedvalue=="
}

# Decoded "JWS Protected Header (MASA)" representation in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "typ": "voucher-jws+json"
}

# Decoded "JWS Protected Header (Reg)" representation in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

<t>Depending on the security policy of the operator, this signature can also be interpreted by the pledge as explicit authorization of the registrar to install the contained trust anchor.
The registrar sends the voucher to the registrar-agent.</t>

</section>
<section anchor="exchanges_uc2_2_per"><name>Pledge-Enrollment-Request (PER) Processing (Registrar-Agent to Registrar)</name>

<t>After receiving the voucher, the registrar-agent sends the PER to the registrar.
Deviating from BRSKI the PER is not a raw PKCS#10.
As the registrar-agent is involved in the exchange, the PKCS#10 is wrapped in a JWS object by the pledge and signed with pledge's IDevID to ensure proof-of-identity as outlined in <xref target="per"/>.</t>

<t>EST <xref target="RFC7030"/> standard endpoints (/simpleenroll, /simplereenroll, /serverkeygen, /cacerts) on the registrar cannot be used for BRSKI-PRM.
This is caused by the utilization of signature wrapped-objects in BRSKI-PRM.
As EST requires to sent a raw PKCS#10 request to e.g., "/.well-known/est/simpleenroll" endpoint, this document makes an enhancement by utilizing EST but with the exception to transport a signature wrapped PKCS#10 request.
Therefore a new endpoint for BRSKI-PRM on the registrar is defined as "/.well-known/brski/requestenroll"</t>

<t>The Content-Type header of PER is: <spanx style="verb">application/jose+json</spanx>.</t>

<t>This is a deviation from the Content-Type header values used in <xref target="RFC7030"/> and results in additional processing at the domain registrar (as EST server).
Note, the registrar is already aware that the bootstrapping is performed in a pledge-responder-mode due to the use of the LDevID(RegAgt) certificate for TLS and the provided PVR as JSON-in-JWS object.</t>

<t><list style="symbols">
  <t>If the registrar receives a PER with Content-Type header: <spanx style="verb">application/jose+json</spanx>, it <bcp14>MUST</bcp14> verify the wrapping signature using the certificate indicated in the JOSE header.</t>
  <t>The registrar verifies that the pledge's certificate (here IDevID), carried in "x5c" header field, is accepted to join the domain after successful validation of the PVR.</t>
  <t>If both succeed, the registrar utilizes the PKCS#10 request contained in the JWS object body as "P10" parameter of "ietf-sztp-csr:csr" for further processing of the enrollment request with the corresponding domain CA.
It creates a registrar-enrollment-request (RER) by utilizing the protocol expected by the domain CA.
The domain registrar may either directly forward the provided PKCS#10 request to the CA or provide additional information about attributes to be included by the CA into the requested LDevID certificate.
The approach of sending this information to the CA depends on the utilized certificate management protocol between the RA and the CA and is out of scope for this document.</t>
</list></t>

<t>The registrar-agent <bcp14>SHALL</bcp14> send the PER to the registrar by HTTP POST to the endpoint: "/.well-known/brski/requestenroll"</t>

<t>The registrar <bcp14>SHOULD</bcp14> respond with an HTTP 200 OK in the success case or fail with HTTP 4xx/5xx status codes as defined by the HTTP standard.</t>

<t>A successful interaction with the domain CA will result in a pledge LDevID certificate, which is then forwarded by the registrar to the registrar-agent using the Content-Type header: <spanx style="verb">application/pkcs7-mime</spanx>.</t>

</section>
<section anchor="exchanges_uc2_2_wca"><name>Request Wrapped-CA-certificate(s) (Registrar-Agent to Registrar)</name>

<t>As the pledge will verify it own certificate LDevID certificate when received, it also needs the corresponding CA certificates.
This is done in EST <xref target="RFC7030"/> using the "/.well-known/est/cacerts" endpoint, which provides the CA certificates over a TLS protected connection.
BRSKI-PRM requires a signature wrapped CA certificate object, to avoid that the pledge can be provided with arbitrary CA certificates in an authorized way.
The registrar signed CA certificate object will allow the pledge to verify the authorization to install the received CA certificate(s).
As the CA certificate(s) are provided to the pledge after the voucher, the pledge has the required information (the domain certificate) to verify the wrapped CA certificate object.</t>

<t>To support registrar-agents requesting a signature wrapped CA certificate(s) object, a new endpoint for BRSKI-PRM is defined on the registrar: "/.well-known/brski/wrappedcacerts"</t>

<t>The registrar-agent <bcp14>SHALL</bcp14> requests the EST CA trust anchor database information (in form of CA certificates) by HTTP GET.</t>

<t>The Content-Type header of the response <bcp14>SHALL</bcp14> be: <spanx style="verb">application/jose+json</spanx>.</t>

<t>This is a deviation from the Content-Type header values used in EST <xref target="RFC7030"/> and results in additional processing at the domain registrar (as EST server).
The additional processing is to sign the CA certificate(s) information using the registrar EE credentials.
This results in a signed CA certificate(s) object (JSON-in-JWS), the CA certificates are provided as base64 encoded "x5b" in the JWS payload.</t>

<figure title="Representation of CA certificate(s) data with additional registrar signature" anchor="PCAC"><artwork align="left"><![CDATA[
# The CA certificates data with additional registrar signature in
  General JWS Serialization syntax
{
  "payload": "BASE64URL(certs)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded payload "certs" representation in JSON syntax
{
  "x5b": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}


# Decoded "JWS Protected Header" representation in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

</section>
</section>
<section anchor="exchanges_uc2_3"><name>Response Object Supply by Registrar-Agent to Pledge</name>

<t>It is assumed that the registrar-agent already obtained the bootstrapping response objects from the domain registrar and can supply them to the pledge:</t>

<t><list style="symbols">
  <t>voucher-response - Voucher (from MASA via Registrar)</t>
  <t>wrapped-CA-certificate(s)-response - CA certificates</t>
  <t>enrollment-response - LDevID(Pledge) certificate (from CA via Registrar)</t>
</list></t>

<t>The registrar-agent will re-connect to the pledge.
To contact the pledge, it may either discover the pledge as described in <xref target="discovery_uc2_ppa"/> or use stored information from the first contact with the pledge.</t>

<t>Preconditions in addition to <xref target="exchanges_uc2_2"/>:</t>

<t><list style="symbols">
  <t>Registrar-agent: possesses voucher and LDevID certificate and optionally CA certificates.</t>
</list></t>

<figure title="Responses and status handling between pledge and registrar-agent" anchor="exchangesfig_uc2_3"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="528" viewBox="0 0 528 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,104 L 40,336" fill="none" stroke="black"/>
<path d="M 80,32 L 80,96" fill="none" stroke="black"/>
<path d="M 280,32 L 280,96" fill="none" stroke="black"/>
<path d="M 328,144 L 328,336" fill="none" stroke="black"/>
<path d="M 376,32 L 376,96" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 280,32 L 376,32" fill="none" stroke="black"/>
<path d="M 8,96 L 80,96" fill="none" stroke="black"/>
<path d="M 280,96 L 376,96" fill="none" stroke="black"/>
<path d="M 48,160 L 104,160" fill="none" stroke="black"/>
<path d="M 240,160 L 320,160" fill="none" stroke="black"/>
<path d="M 48,192 L 112,192" fill="none" stroke="black"/>
<path d="M 248,192 L 320,192" fill="none" stroke="black"/>
<path d="M 48,224 L 88,224" fill="none" stroke="black"/>
<path d="M 296,224 L 320,224" fill="none" stroke="black"/>
<path d="M 48,256 L 72,256" fill="none" stroke="black"/>
<path d="M 304,256 L 320,256" fill="none" stroke="black"/>
<path d="M 48,288 L 112,288" fill="none" stroke="black"/>
<path d="M 240,288 L 320,288" fill="none" stroke="black"/>
<path d="M 48,320 L 72,320" fill="none" stroke="black"/>
<path d="M 296,320 L 320,320" fill="none" stroke="black"/>
<polygon class="arrowhead" points="328,288 316,282.4 316,293.6" fill="black" transform="rotate(0,320,288)"/>
<polygon class="arrowhead" points="328,192 316,186.4 316,197.6" fill="black" transform="rotate(0,320,192)"/>
<polygon class="arrowhead" points="56,320 44,314.4 44,325.6" fill="black" transform="rotate(180,48,320)"/>
<polygon class="arrowhead" points="56,256 44,250.4 44,261.6" fill="black" transform="rotate(180,48,256)"/>
<polygon class="arrowhead" points="56,224 44,218.4 44,229.6" fill="black" transform="rotate(180,48,224)"/>
<polygon class="arrowhead" points="56,160 44,154.4 44,165.6" fill="black" transform="rotate(180,48,160)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="332" y="52">Registrar-</text>
<text x="312" y="68">Agent</text>
<text x="324" y="84">(RegAgt)</text>
<text x="284" y="116">[voucher</text>
<text x="336" y="116">and</text>
<text x="400" y="116">enrollment]</text>
<text x="292" y="132">[responses</text>
<text x="380" y="132">available]</text>
<text x="140" y="164">supply</text>
<text x="200" y="164">voucher</text>
<text x="152" y="196">voucher</text>
<text x="212" y="196">status</text>
<text x="344" y="196">-</text>
<text x="376" y="196">store</text>
<text x="380" y="212">pledge</text>
<text x="440" y="212">voucher</text>
<text x="500" y="212">status</text>
<text x="124" y="228">supply</text>
<text x="164" y="228">CA</text>
<text x="228" y="228">certificates</text>
<text x="108" y="260">supply</text>
<text x="180" y="260">enrollment</text>
<text x="260" y="260">response</text>
<text x="148" y="292">enroll</text>
<text x="204" y="292">status</text>
<text x="344" y="292">-</text>
<text x="376" y="292">store</text>
<text x="380" y="308">pledge</text>
<text x="436" y="308">enroll</text>
<text x="492" y="308">status</text>
<text x="108" y="324">supply</text>
<text x="168" y="324">CAcerts</text>
<text x="244" y="324">(optional)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+--------+                        +-----------+
| Pledge |                        | Registrar-|
|        |                        | Agent     |
|        |                        | (RegAgt)  |
+--------+                        +-----------+
    |                          [voucher and enrollment]
    |                          [responses available]
    |                                   |
    |<------- supply voucher -----------|
    |                                   |
    |--------- voucher status --------->| - store
    |                                   |   pledge voucher status
    |<----- supply CA certificates  ----|
    |                                   |
    |<--- supply enrollment response ---|
    |                                   |
    |--------- enroll status ---------->| - store
    |                                   |   pledge enroll status
    |<--- supply CAcerts (optional) ----|
    |                                   |

]]></artwork></artset></figure>
<t>The content of the response objects is defined by the voucher <xref target="RFC8366"/> and the certificate <xref target="RFC5280"/>.</t>

<t>The registrar-agent provides the information via distinct pledge endpoints as following.</t>

<section anchor="pledge-voucher-response-processing"><name>Pledge: Voucher Response Processing</name>

<t>The registrar-agent <bcp14>SHALL</bcp14> send the voucher-response to the pledge by HTTP POST to the endpoint: "/.well-known/brski/sv".</t>

<t>The registrar-agent voucher-response Content-Type header is <spanx style="verb">application/voucher-jws+json</spanx> and contains the voucher as provided by the MASA. An example is given in <xref target="MASA-vr"/> for a MASA  signed voucher and in <xref target="MASA-REG-vr"/> for the voucher with the additional signature of the registrar.</t>

<t>A nonceless voucher may be accepted as in <xref target="RFC8995"/> and may be allowed by a manufacture's pledge implementation.</t>

<t>To perform the validation of multiple signatures on the voucher object, the pledge <bcp14>SHALL</bcp14> perform the signature verification in the following order:</t>

<t><list style="numbers">
  <t>Verify MASA signature as described in section 5.6.1 in <xref target="RFC8995"/></t>
  <t>Install trust anchor contained in the voucher ("pinned-domain-cert")  provisionally</t>
  <t>Verify registrar signature as described in section 5.6.1 in <xref target="RFC8995"/>, but take the registrar certificate instead of the MASA certificate for the verification</t>
  <t>Validate the registrar certificate received in the agent-provided-proximity-registrar-cert in the pledge-voucher-request trigger request (in the field "agent-provided-proximity-registrar-cert").</t>
</list></t>

<t>If all steps stated above have been performed successfully, the pledge <bcp14>SHALL</bcp14> terminate the "PROVISIONAL accept" state for the domain trust anchor and the registrar EE certificate.</t>

<t>If an error occurs during the verification and validation of the voucher, this <bcp14>SHALL</bcp14> be reported in the reason field of the pledge voucher status.</t>

</section>
<section anchor="pledge-voucher-status-telemetry"><name>Pledge: Voucher Status Telemetry</name>

<t>After voucher verification and validation the pledge <bcp14>MUST</bcp14> reply with a status telemetry message as defined in section 5.7 of <xref target="RFC8995"/>.
The pledge generates the voucher-status and provides it as signed JSON-in-JWS object in response to the registrar-agent.</t>

<t>The response has the Content-Type <spanx style="verb">application/jose+json</spanx> and is signed using the IDevID of the pledge as shown in <xref target="vstat"/>.
As the reason field is optional (see <xref target="RFC8995"/>), it <bcp14>MAY</bcp14> be omitted in case of success.</t>

<figure title="Representation of pledge voucher status telemetry" anchor="vstat"><artwork align="left"><![CDATA[
# The "pledge-voucher-status" telemetry in general JWS
  serialization syntax
{
  "payload": "BASE64URL(pledge-voucher-status)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded payload "pledge-voucher-status" representation in JSON
  syntax
{
  "version": 1,
  "status": true,
  "reason": "Voucher successfully processed",
  "reason-context": {
    "additional": "JSON"
  }
}

# Decoded "JWS Protected Header" representation in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

</section>
<section anchor="pledge-wrapped-ca-certificates-processing"><name>Pledge: Wrapped-CA-Certificate(s) Processing</name>

<t>The registrar-agent <bcp14>SHALL</bcp14> provide the set of CA certificates requested from the registrar to the pledge by HTTP POST to the endpoint: "/.well-known/brski/cc".</t>

<t>As the CA certificate provisioning is crucial from a security perspective, this provisioning <bcp14>SHALL</bcp14> only be done, if the voucher-response has been successfully processed by pledge.</t>

<t>The supply CA certificates message has the Content-Type <spanx style="verb">application/jose+json</spanx> and is signed using the credential of the registrar pledge as shown in <xref target="PCAC"/>.</t>

<t>The CA certificates are provided as base64 encoded "x5b".
The pledge <bcp14>SHALL</bcp14> install the received CA certificates as trust anchor after successful verification of the registrar's signature.</t>

<t>The following 4xx client error codes <bcp14>SHOULD</bcp14> be used by the pledge:</t>

<t><list style="symbols">
  <t>403 Forbidden: if the validation of the wrapping signature or another security check fails.</t>
  <t>415 Unsupported Media Type: if the Content-Type of the request is in an unknown or unsupported format.</t>
  <t>400 Bad Request: if the pledge detects errors in the encoding of the payload.</t>
</list></t>

</section>
<section anchor="pledge-enrollment-response-processing"><name>Pledge: Enrollment Response Processing</name>

<t>The registrar-agent <bcp14>SHALL</bcp14> send the enroll-response to the pledge by HTTP POST to the endpoint: "/.well-known/brski/se".</t>

<t>The registrar-agent enroll-response Content-Type header, when using EST <xref target="RFC7030"/> as enrollment protocol between the registrar-agent and the infrastructure is: <spanx style="verb">application/pkcs7-mime</spanx>.
Note: It only contains the LDevID certificate for the pledge, not the certificate chain.</t>

<t>Upon reception, the pledge <bcp14>SHALL</bcp14> verify the received LDevID certificate.
The pledge <bcp14>SHALL</bcp14> generate the enroll status and provide it in the response to the registrar-agent.
If the verification of the LDevID certificate succeeds, the status <bcp14>SHALL</bcp14> be set to true, otherwise to FALSE.</t>

</section>
<section anchor="pledge-enrollment-status-telemetry"><name>Pledge: Enrollment Status Telemetry</name>

<t>The pledge <bcp14>MUST</bcp14> reply with a status telemetry message as defined in section 5.9.4 of <xref target="RFC8995"/>.
As for the other objects, the enroll-status is signed and results in a JSON-in-JWS object.
If the pledge verified the received LDevID certificate successfully it <bcp14>SHALL</bcp14> sign the response using its new LDevID credentials as shown in <xref target="estat"/>.
In the failure case, the pledge <bcp14>SHALL</bcp14> use the available IDevID credentials.
As the reason field is optional, it <bcp14>MAY</bcp14> be omitted in case of success.</t>

<t>The response has the Content-Type <spanx style="verb">application/jose+json</spanx>.</t>

<figure title="Representation of pledge enroll status telemetry" anchor="estat"><artwork align="left"><![CDATA[
# The "pledge-enroll-status" telemetry in General JWS Serialization
  syntax
{
  "payload": "BASE64URL(pledge-enroll-status)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded payload "pledge-enroll-status" representation in
  JSON syntax
{
  "version": 1,
  "status": true,
  "reason": "Enrollment response successfully processed",
  "reason-context": {
    "additional": "JSON"
  }
}

# Decoded "JWS Protected Header" representation in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

<t>Once the registrar-agent has collected the information, it can connect to the registrar to provide it with the status responses.</t>

</section>
<section anchor="exchanges_uc2_4"><name>Telemetry Voucher Status and Enroll Status Handling (Registrar-Agent to Domain Registrar)</name>

<t>The following description requires that the registrar-agent has collected the status information from the pledge.
It <bcp14>SHALL</bcp14> provide the status information to the registrar for further processing.</t>

<t>Preconditions in addition to <xref target="exchanges_uc2_2"/>:</t>

<t><list style="symbols">
  <t>Registrar-agent: possesses voucher status and enroll status from pledge.</t>
</list></t>

<figure title="Bootstrapping status handling" anchor="exchangesfig_uc2_4"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="496" viewBox="0 0 496 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,160 L 40,304" fill="none" stroke="black"/>
<path d="M 104,32 L 104,96" fill="none" stroke="black"/>
<path d="M 176,32 L 176,96" fill="none" stroke="black"/>
<path d="M 224,104 L 224,240" fill="none" stroke="black"/>
<path d="M 224,272 L 224,304" fill="none" stroke="black"/>
<path d="M 272,32 L 272,96" fill="none" stroke="black"/>
<path d="M 304,32 L 304,96" fill="none" stroke="black"/>
<path d="M 344,104 L 344,208" fill="none" stroke="black"/>
<path d="M 344,272 L 344,304" fill="none" stroke="black"/>
<path d="M 376,32 L 376,96" fill="none" stroke="black"/>
<path d="M 408,32 L 408,96" fill="none" stroke="black"/>
<path d="M 448,104 L 448,240" fill="none" stroke="black"/>
<path d="M 448,272 L 448,304" fill="none" stroke="black"/>
<path d="M 488,32 L 488,96" fill="none" stroke="black"/>
<path d="M 8,32 L 104,32" fill="none" stroke="black"/>
<path d="M 176,32 L 272,32" fill="none" stroke="black"/>
<path d="M 304,32 L 376,32" fill="none" stroke="black"/>
<path d="M 408,32 L 488,32" fill="none" stroke="black"/>
<path d="M 8,96 L 104,96" fill="none" stroke="black"/>
<path d="M 176,96 L 272,96" fill="none" stroke="black"/>
<path d="M 304,96 L 376,96" fill="none" stroke="black"/>
<path d="M 408,96 L 488,96" fill="none" stroke="black"/>
<path d="M 48,176 L 104,176" fill="none" stroke="black"/>
<path d="M 160,176 L 216,176" fill="none" stroke="black"/>
<path d="M 48,208 L 64,208" fill="none" stroke="black"/>
<path d="M 200,208 L 216,208" fill="none" stroke="black"/>
<path d="M 232,224 L 248,224" fill="none" stroke="black"/>
<path d="M 424,224 L 440,224" fill="none" stroke="black"/>
<path d="M 232,240 L 264,240" fill="none" stroke="black"/>
<path d="M 416,240 L 440,240" fill="none" stroke="black"/>
<path d="M 48,288 L 64,288" fill="none" stroke="black"/>
<path d="M 192,288 L 216,288" fill="none" stroke="black"/>
<polygon class="arrowhead" points="448,224 436,218.4 436,229.6" fill="black" transform="rotate(0,440,224)"/>
<polygon class="arrowhead" points="240,240 228,234.4 228,245.6" fill="black" transform="rotate(180,232,240)"/>
<polygon class="arrowhead" points="224,288 212,282.4 212,293.6" fill="black" transform="rotate(0,216,288)"/>
<polygon class="arrowhead" points="224,208 212,202.4 212,213.6" fill="black" transform="rotate(0,216,208)"/>
<polygon class="arrowhead" points="224,176 212,170.4 212,181.6" fill="black" transform="rotate(0,216,176)"/>
<polygon class="arrowhead" points="56,176 44,170.4 44,181.6" fill="black" transform="rotate(180,48,176)"/>
<g class="text">
<text x="56" y="52">Registrar</text>
<text x="212" y="52">Domain</text>
<text x="340" y="52">Domain</text>
<text x="444" y="52">Vendor</text>
<text x="40" y="68">Agent</text>
<text x="224" y="68">Registrar</text>
<text x="324" y="68">CA</text>
<text x="448" y="68">Service</text>
<text x="48" y="84">RegAgt)</text>
<text x="216" y="84">(JRC)</text>
<text x="444" y="84">(MASA)</text>
<text x="40" y="116">|</text>
<text x="404" y="116">Internet</text>
<text x="36" y="132">[voucher</text>
<text x="80" y="132">+</text>
<text x="116" y="132">enroll</text>
<text x="152" y="132">]</text>
<text x="32" y="148">[status</text>
<text x="84" y="148">info</text>
<text x="148" y="148">available]</text>
<text x="132" y="180">mTLS</text>
<text x="104" y="212">Voucher</text>
<text x="164" y="212">Status</text>
<text x="300" y="228">req-device</text>
<text x="368" y="228">audit</text>
<text x="408" y="228">log</text>
<text x="300" y="244">device</text>
<text x="352" y="244">audit</text>
<text x="392" y="244">log</text>
<text x="184" y="260">[verify</text>
<text x="240" y="260">audit</text>
<text x="280" y="260">log</text>
<text x="304" y="260">]</text>
<text x="100" y="292">Enroll</text>
<text x="156" y="292">Status</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+-----------+        +-----------+   +--------+   +---------+
| Registrar |        | Domain    |   | Domain |   | Vendor  |
| Agent     |        | Registrar |   | CA     |   | Service |
| RegAgt)   |        |  (JRC)    |   |        |   | (MASA)  |
+-----------+        +-----------+   +--------+   +---------+
    |                      |              |   Internet |
[voucher + enroll ]        |              |            |
[status info available]    |              |            |
    |                      |              |            |
    |<------- mTLS ------->|              |            |
    |                      |              |            |
    |--- Voucher Status -->|              |            |
    |                      |--- req-device audit log-->|
    |                      |<---- device audit log ----|
    |              [verify audit log ]
    |                      |              |            |
    |--- Enroll Status --->|              |            |
    |                      |              |            |
]]></artwork></artset></figure>

<t>The registrar-agent <bcp14>MUST</bcp14> provide the collected pledge voucher status to the registrar.
This status indicates if the pledge could process the voucher successfully or not.</t>

<t>If the TLS connection to the registrar was closed, the registrar-agent establishes a TLS connection with the registrar as stated in <xref target="exchanges_uc2_2"/>.</t>

<t>The registrar-agent sends the pledge voucher status without modification to the registrar with an HTTP-over-TLS POST using the registrar endpoint "/.well-known/brski/voucher_status". The Content-Type header is kept as <spanx style="verb">application/jose+json</spanx> as described in <xref target="exchangesfig_uc2_3"/> and depicted in the example in <xref target="vstat"/>.</t>

<t>The registrar <bcp14>SHALL</bcp14> verify the signature of the pledge voucher status and validate that it belongs to an accepted device in his domain based on the contained "serial-number" in the IDevID certificate referenced in the header of the voucher status.</t>

<t>According to <xref target="RFC8995"/> section 5.7, the registrar <bcp14>SHOULD</bcp14> respond with an HTTP 200 OK in the success case or fail with HTTP 4xx/5xx status codes as defined by the HTTP standard.
The registrar-agent may use the response to signal success / failure to the service technician operating the registrar agent.
Within the server logs the server <bcp14>SHOULD</bcp14> capture this telemetry information.</t>

<t>The registrar <bcp14>SHOULD</bcp14> proceed with collecting and logging status information by requesting the MASA audit-log from the MASA service as described in section 5.8 of <xref target="RFC8995"/>.</t>

<t>The registrar-agent <bcp14>MUST</bcp14> provide the pledge's enroll status to the registrar.
The status indicates the pledge could process the enroll-response (certificate) and holds the corresponding private key.</t>

<t>The registrar-agent sends the pledge enroll status without modification to the registrar with an HTTP-over-TLS POST using the registrar endpoint "/.well-known/brski/enrollstatus".
The Content-Type header is kept as <spanx style="verb">application/jose+json</spanx> as described in <xref target="exchangesfig_uc2_3"/> and depicted in the example in <xref target="estat"/>.</t>

<t>The registrar <bcp14>MUST</bcp14> verify the signature of the pledge enroll status.
Also, the registrar <bcp14>SHALL</bcp14> validate that the pledge is an accepted device in his domain based on the contained product-serial-number in the LDevID certificate referenced in the header of the enroll status.
The registrar <bcp14>SHOULD</bcp14> log this event.
In case the pledge enroll status indicates a failure, the pledge was unable to verify the received LDevID certificate and therefore signed the enroll status with its IDevID credential.
Note that the verification of a signature of the status information is an addition to the described handling in section 5.9.4 of <xref target="RFC8995"/>.</t>

<t>According to <xref target="RFC8995"/> section 5.9.4, the registrar <bcp14>SHOULD</bcp14> respond with an HTTP 200 OK in the success case or fail with HTTP 4xx/5xx status codes as defined by the HTTP standard.
Based on the failure case the registrar <bcp14>MAY</bcp14> decide that for security reasons the pledge is not allowed to reside in the domain. In this case the registrar <bcp14>MUST</bcp14> revoke the certificate.
The registrar-agent may use the response to signal success / failure to the service technician operating the registrar agent.
Within the server log the registrar <bcp14>SHOULD</bcp14> capture this telemetry information.</t>

</section>
</section>
<section anchor="exchanges_uc2_5"><name>Request Pledge-Status by Registrar-Agent from Pledge</name>

<t>The following assumes that a registrar-agent may need to query the status of a pledge.
This information may be useful to solve errors, when the pledge was not able to connect to the target domain during the bootstrapping.
The pledge <bcp14>MAY</bcp14> provide a dedicated endpoint to accept status-requests.</t>

<t>Preconditions:</t>

<t><list style="symbols">
  <t>Registrar-agent: possesses LDevID (RegAgt), list of serial numbers of pledges to be queried and a list of corresponding manufacturer trust anchors to be able to verify signatures performed with the IDevID credential.</t>
  <t>Pledge: may already possess domain credentials and LDevID(Pledge), or may not possess one or both of these.</t>
</list></t>

<figure title="Pledge-status handling between registrar-agent and pledge" anchor="exchangesfig_uc2_5"><artset><artwork  type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="360" viewBox="0 0 360 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 40,104 L 40,176" fill="none" stroke="black"/>
<path d="M 80,32 L 80,96" fill="none" stroke="black"/>
<path d="M 256,32 L 256,96" fill="none" stroke="black"/>
<path d="M 304,104 L 304,176" fill="none" stroke="black"/>
<path d="M 352,32 L 352,96" fill="none" stroke="black"/>
<path d="M 8,32 L 80,32" fill="none" stroke="black"/>
<path d="M 256,32 L 352,32" fill="none" stroke="black"/>
<path d="M 8,96 L 80,96" fill="none" stroke="black"/>
<path d="M 256,96 L 352,96" fill="none" stroke="black"/>
<path d="M 48,128 L 72,128" fill="none" stroke="black"/>
<path d="M 264,128 L 296,128" fill="none" stroke="black"/>
<path d="M 48,160 L 72,160" fill="none" stroke="black"/>
<path d="M 272,160 L 296,160" fill="none" stroke="black"/>
<polygon class="arrowhead" points="304,160 292,154.4 292,165.6" fill="black" transform="rotate(0,296,160)"/>
<polygon class="arrowhead" points="56,128 44,122.4 44,133.6" fill="black" transform="rotate(180,48,128)"/>
<g class="text">
<text x="44" y="52">Pledge</text>
<text x="308" y="52">Registrar-</text>
<text x="288" y="68">Agent</text>
<text x="300" y="84">(RegAgt)</text>
<text x="136" y="132">pledge-status</text>
<text x="224" y="132">request</text>
<text x="136" y="164">pledge-status</text>
<text x="228" y="164">response</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="left"><![CDATA[
+--------+                     +-----------+
| Pledge |                     | Registrar-|
|        |                     | Agent     |
|        |                     | (RegAgt)  |
+--------+                     +-----------+
    |                                |
    |<--- pledge-status request -----|
    |                                |
    |---- pledge-status response --->|
    |                                |
]]></artwork></artset></figure>

<section anchor="pledge-status-trigger-registrar-agent-to-pledge"><name>Pledge-Status - Trigger (Registrar-Agent to Pledge)</name>

<t>The registrar-agent requests the pledge-status via HTTP POST on the defined pledge endpoint: "/.well-known/brski/ps"</t>

<t>The registrar-agent Content-Type header for the pledge-status request is: <spanx style="verb">application/jose+json</spanx>.
It contains information on the requested status-type, the time and date the request is created, and the product serial-number of the pledge contacted as shown in <xref target="stat_req_def"/>.
The pledge-status request is signed by registrar-agent using the LDevID(RegAgt) credential.</t>

<t>The following Concise Data Definition Language (CDDL) <xref target="RFC8610"/> explains the structure of the format for the pledge-status request. It is defined following the status telemetry definitions in BRSKI <xref target="RFC8995"/>.
Consequently, format and semantics of pledge-status requests below are for version 1.
The version field is included to permit significant changes to the pledge-status request and response in the future.
A pledge or a registrar-agent that receives a pledge-status request with a version larger than it knows about <bcp14>SHOULD</bcp14> log the contents and alert a human.</t>

<figure title="CDDL for pledge-status request" anchor="stat_req_def"><artwork align="left"><![CDATA[
<CODE BEGINS>
  status-request = {
      "version": uint,
      "created-on": tdate ttime,
      "serial-number": text,
      "status-type": text
  }
<CODE ENDS>
]]></artwork></figure>

<t>The status-type defined for BRSKI-PRM is "bootstrap".
This indicates the pledge to provide current status information regarding the bootstrapping status (voucher processing and enrollment of the pledge into the new domain).
As the pledge-status request is defined generic, it may be used by other specifications to request further status information, e.g., for onboarding to get further information about enrollment of application specific LDevIDs or other parameters.
This is out of scope for this specification.</t>

<t><xref target="stat_req"/> below shows an example for querying pledge-status using status-type bootstrap.</t>

<figure title="Example of registrar-agent request of pledge-status using status-type bootstrap" anchor="stat_req"><artwork align="left"><![CDATA[
# The registrar-agent request of "pledge-status" in general JWS
  serialization syntax
{
  "payload": "BASE64URL(status-request)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded payload "status-request" representation in JSON syntax
{
  "version": 1,
  "created-on": "2022-08-12T02:37:39.235Z",
  "serial-number": "pledge-callee4711",
  "status-type": "bootstrap"
}

# Decoded "JWS Protected Header" representation in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ]
}
]]></artwork></figure>

</section>
<section anchor="pledge-status-response-pledge-registrar-agent"><name>Pledge-Status - Response (Pledge - Registrar-Agent)</name>

<t>If the pledge receives the pledge-status request with status-type "bootstrap" it <bcp14>SHALL</bcp14> react with a status response message based on the telemetry information described in 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, which in turn implies voucher-success.</t>

<t><xref target="stat_res"/> provides an example for the bootstrapping-status information.</t>

<figure title="Example of pledge-status response" anchor="stat_res"><artwork align="left"><![CDATA[
# The pledge "status-response" in General JWS Serialization syntax
{
  "payload": "BASE64URL(status-response)",
  "signatures": [
    {
      "protected": "BASE64URL(UTF8(JWS Protected Header))",
      "signature": "base64encodedvalue=="
    }
  ]
}

# Decoded payload "status-response" representation in JSON syntax
{
  "version": 1,
  "status": "enroll-success",
  "reason-context": {
    "additional" : "JSON"
  }
}

# Decoded "JWS Protected Header" representation in JSON syntax
{
  "alg": "ES256",
  "x5c": [
    "base64encodedvalue==",
    "base64encodedvalue=="
  ],
  "typ": "jose+json
}
]]></artwork></figure>

<t>In case "factory-default" the pledge does not possess the domain certificate resp. the domain trust-anchor.
It will not be able to verify the signature of the registrar-agent in the bootstrapping-status request.
In cases "vouchered" and "enrolled" the pledge already possesses the domain certificate (has domain trust-anchor) and can therefore validate the signature of the registrar-agent.
If validation of the JWS signature fails, the pledge <bcp14>SHOULD</bcp14> respond with the HTTP 403 Forbidden status code.
The HTTP 406 Not Acceptable status code <bcp14>SHOULD</bcp14> be used, if the Accept header in the request indicates an unknown or unsupported format.
The HTTP 415 Unsupported Media Type status code <bcp14>SHOULD</bcp14> be used, if the Content-Type of the request is an unknown or unsupported format.
The HTTP 400 Bad Request status code <bcp14>SHOULD</bcp14> be used, if the Accept/Content-Type headers are correct but nevertheless the status-request cannot be correctly parsed.</t>

</section>
</section>
</section>
<section anchor="artifacts"><name>Artifacts</name>

<section anchor="voucher-request-prm-yang"><name>Voucher Request Artifact</name>

<t>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, 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
 tv                         create pledge-voucher-request     [THISRFC]
 te                         create pledge-enrollment-request  [THISRFC]
 sv                         supply voucher response           [THISRFC]
 se                         supply enrollment response        [THISRFC]
 cc                         supply CA certificates to pledge  [THISRFC]
 ps                         query pledge status               [THISRFC]
 requestenroll              supply PER to registrar           [THISRFC]
 wrappedcacerts             request wrapped CA certificates   [THISRFC]

]]></artwork></figure>

</section>
</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<t>In general, the privacy considerations of <xref target="RFC8995"/> apply for BRSKI-PRM also.
Further privacy aspects need to be considered for:</t>

<t><list style="symbols">
  <t>the introduction of the additional component registrar-agent</t>
  <t>no transport layer security between registrar-agent and pledge</t>
</list></t>

<t>The credential used by the registrar-agent to sign the data for the pledge should not contain any personal information.
Therefore, it is recommended to use an LDevID certificate associated with the commissioning device instead of an LDevID certificate associated with the service technician operating the device.
This avoids revealing potentially included personal information to Registrar and MASA.</t>

<t>The communication between the pledge and the registrar-agent is performed over plain HTTP.
Therefore, it is subject to disclosure by a Dolev-Yao attacker (an "oppressive observer")<xref target="onpath"/>.
Depending on the requests and responses, the following information is disclosed.</t>

<t><list style="symbols">
  <t>the Pledge product-serial-number is contained in the trigger message for the PVR and in all responses from the pledge.
This information reveals the identity of the devices being bootstrapped and allows deduction of which products an operator is using in their environment.
As the communication between the pledge and the registrar-agent may be realized over wireless link, this information could easily be eavesdropped, if the wireless network is unencrypted.
Even if the wireless network is encrypted, if it uses a network-wide key, then layer-2 attacks (ARP/ND spoofing) could insert an on-path observer into the path.</t>
  <t>the Timestamp data could reveal the activation time of the device.</t>
  <t>the Status data of the device could reveal information about the current state of the device in the domain network.</t>
</list></t>

</section>
<section anchor="sec_cons"><name>Security Considerations</name>

<t>In general, the security considerations of <xref target="RFC8995"/> apply for BRSKI-PRM also.
Further security aspects are considered here related to:</t>

<t><list style="symbols">
  <t>the introduction of the additional component registrar-agent</t>
  <t>the reversal of the pledge communication direction (push mode, compared to BRSKI)</t>
  <t>no transport layer security between registrar-agent and pledge</t>
</list></t>

<section anchor="denial-of-service-dos-attack-on-pledge"><name>Denial of Service (DoS) Attack on Pledge</name>

<t>Disrupting the pledge behavior by a DoS attack may prevent the bootstrapping of the pledge to a new domain.</t>

<t>A DoS attack with a faked registrar-agent may block the bootstrapping of the pledge due to state creation on the pledge (the pledge may produce a voucher-request, and refuse to produce another one).
One mitigation may be that the pledge does does not limited the number of voucher requests it creates until at least one has finished, or a single onboarding state may expire after a certain time.</t>

</section>
<section anchor="misuse-of-acquired-pvr-and-per-by-registrar-agent"><name>Misuse of acquired PVR and PER by Registrar-Agent</name>

<t>A registrar-agent that uses previously requested PVR and PER for domain-A, may attempt to onboard the device into domain-B.  This can be detected by the domain registrar while PVR processing.
The domain registrar needs to verify that the "proximity-registrar-cert" field in the PVR matches its own registrar EE certificate.
In addition, the domain registrar needs to verify the association of the pledge to its domain based on the product-serial-number contained in the PVR and in the IDevID certificate of the pledge. (This is just part of the supply chain integration)
Moreover, the domain registrar verifies if the registrar-agent is authorized to interact with the pledge for voucher-requests and enroll-requests, based on the LDevID(RegAgt) certificate data contained in the PVR.</t>

<t>Misbinding of a pledge by a faked domain registrar is countered as described in BRSKI security considerations <xref target="RFC8995"/> (section 11.4).</t>

</section>
<section anchor="sec_cons_reg-agt"><name>Misuse of Registrar-Agent Credentials</name>

<t>Concerns of misusage of a registrar-agent with a valid LDevID(RegAgt), may be addressed by utilizing short-lived certificates (e.g., valid for a day) to authenticate the registrar-agent against the domain registrar.
The LDevID(RegAgt) certificate may be acquired by a prior BRSKI run for the registrar-agent, if an IDevID is available on registrar-agent.
Alternatively, the LDevID may be acquired by a service technician from the domain PKI system in an authenticated way.</t>

<t>In addition it is required that the LDevID(RegAgt) certificate is valid for the complete bootstrapping phase.
This avoids that a registrar-agent could be misused to create arbitrary "agent-signed-data" objects to perform an authorized bootstrapping of a rogue pledge at a later point in time.
In this misuse "agent-signed-data" could be dated after the validity time of the LDevID(RegAgt) certificate, due to missing trusted timestamp in the registrar-agents signature.
To address this, the registrar <bcp14>SHOULD</bcp14> verify the certificate used to create the signature on "agent-signed-data".
Furthermore the registrar also verifies the LDevID(RegAgt) certificate used in the TLS handshake with the registrar-agent. If both certificates are verified successfully, the registrar-agent's signature can be considered as valid.</t>

</section>
<section anchor="sec_cons_mDNS"><name>Misuse of mDNS to obtain list of pledges</name>

<t>To discover a specific pledge a registrar-agent may request the service name in combination with the product-serial-number of a specific pledge.
The pledge reacts on this if its product-serial-number is part of the request message.</t>

<t>If the registrar-agent performs DNS-based Service Discovery without a specific product-serial-number, all  pledges in the domain react if the functionality is supported.
This functionality enumerates and reveals the information of devices available in the domain.
The information about this is provided here as a feature to support the commissioning of devices.
A manufacturer may decide to support this feature only for devices not possessing a LDevID or to not support this feature at all, to avoid an enumeration in an operative domain.</t>

</section>
<section anchor="yang-module-security-considerations"><name>YANG Module Security Considerations</name>

<t>The enhanced voucher-request described in 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, Hendrik Brockhaus, and Ingo Wenda for their input and discussion on use cases and call flows. 
Further review input was provided by Jesser Bouzid, Dominik Tacke, and Christian Spindler.
Special thanks to Esko Dijk for the in deep review and the improving proposals.
Support in PoC implementations and comments resulting from the implementation was provided by Hong Rui Li and He Peng Jia.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>





<reference anchor='RFC5280' 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='RFC9053' target='https://www.rfc-editor.org/info/rfc9053'>
<front>
<title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
<author fullname='J. Schaad' initials='J.' surname='Schaad'><organization/></author>
<date month='August' year='2022'/>
<abstract><t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052). </t><t>This document, along with RFC 9052, obsoletes RFC 8152.</t></abstract>
</front>
<seriesInfo name='RFC' value='9053'/>
<seriesInfo name='DOI' value='10.17487/RFC9053'/>
</reference>



<reference anchor='RFC9110' 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>
      <date day='24' month='October' year='2022'/>
      <abstract>
	 <t>   This document enhances Bootstrapping Remote Secure Key Infrastructure
   (BRSKI, RFC 8995) to allow employing alternative enrollment
   protocols, such as CMP.

   Using self-contained signed objects, the origin of enrollment
   requests and responses can be authenticated independently of message
   transfer.  This supports end-to-end security and asynchronous
   operation of certificate enrollment and provides flexibility where to
   authenticate and authorize certification requests.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-anima-brski-ae-03'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-anima-brski-ae-03.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 05 -&gt; IETF draft 06:</t>

<t><list style="symbols">
  <t>Update of list of reviewers</t>
  <t>Issue #67, shortened the pledge endpoints to prepare for constraint deployments</t>
  <t>Included table for new endpoints on the registrar in the overview of the registrar-agent</t>
  <t>addressed review comments from SECDIR early review</t>
  <t>addressed review comments from IOTDIR early review</t>
</list></t>

<t>From IETF draft 04 -&gt; IETF draft 05:</t>

<t><list style="symbols">
  <t>Restructured document to have a distinct section for the object flow and handling and shortened introduction, issue #72</t>
  <t>Added security considerations for using mDNS without a specific product-serial-number, issue #75</t>
  <t>Clarified pledge-status responses are cumulative, issue #73</t>
  <t>Removed agent-sign-cert from trigger data to save bandwidth and remove complexity through options, issue #70</t>
  <t>Changed terminology for LDevID(Reg) certificate to registrar EE certificate, as it does not need to be an LDevID, issue #66</t>
  <t>Added new protected header parameter (created-on) in PER to support freshness validation, issue #63</t>
  <t>Removed reference to CAB Forum as not needed for BRSKI-PRM specifically, issue #65</t>
  <t>Enhanced error codes in section 5.5.1, issue #39, #64</t>
  <t>Enhanced security considerations and privacy considerations, issue #59</t>
  <t>Issue #50 addressed by referring to the utilized enrollment protocol</t>
  <t>Issue #47 MASA verification of LDevID(RegAgt) to the same registrar EE certificate domain CA</t>
  <t>Reworked terminology of "enrollment object", "certification object", "enrollment request object", etc., issue #27</t>
  <t>Reworked all message representations to align with encoding</t>
  <t>Added explanation of MASA requiring domain CA cert in section 5.5.1 and section 5.5.2, issue #36</t>
  <t>Defined new endpoint for pledge bootstrapping status inquiry, issue #35 in section <xref target="exchanges_uc2_5"/>, IANA considerations and section <xref target="pledge_ep"/></t>
  <t>Included examples for several objects in section <xref target="examples"/> including message example sizes, issue #33</t>
  <t>PoP for private key to registrar certificate included as mandatory, issues #32 and #49</t>
  <t>Issue #31, clarified that combined pledge may act as client/server for further (re)enrollment</t>
  <t>Issue #42, clarified that Registrar needs to verify the status responses with and ensure that they match the audit log response from the MASA, otherwise it needs drop the pledge and revoke the certificate</t>
  <t>Issue #43, clarified that the pledge shall use the create time from the trigger message if the time has not been synchronized, yet.</t>
  <t>Several editorial changes and enhancements to increasing readability.</t>
</list></t>

<t>From IETF draft 03 -&gt; IETF draft 04:</t>

<t><list style="symbols">
  <t>In deep Review by Esko Dijk lead to issues #22-#61, which are bein stepwise integrated</t>
  <t>Simplified YANG definition by augmenting the voucher request from RFC 8995 instead of redefining it.</t>
  <t>Added explanation for terminology "endpoint" used in this document, issue #16</t>
  <t>Added clarification that registrar-agent may collect PVR or PER or both in one run, issue #17</t>
  <t>Added a statement that nonceless voucher may be accepted, issue #18</t>
  <t>Simplified structure in section <xref target="sup-env"/>, issue #19</t>
  <t>Removed join proxy in <xref target="uc2figure"/> and added explanatory text, issue #20</t>
  <t>Added description of pledge-CAcerts endpoint plus further handling of providing a wrapped CA certs response to the pledge in section <xref target="exchanges_uc2_3"/>; also added new required registrar endpoint (section <xref target="exchanges_uc2_2"/> and IANA considerations) for the registrar to provide a wrapped CA certs response, issue #21</t>
  <t>utilized defined abbreviations in the document consistently, issue #22</t>
  <t>Reworked text on discovery according to issue #23 to clarify scope and handling</t>
  <t>Added several clarifications based on review comments</t>
</list></t>

<t>From IETF draft 02 -&gt; IETF draft 03:</t>

<t><list style="symbols">
  <t>Updated examples to state "base64encodedvalue==" for x5c occurrences</t>
  <t>Include link to SVG graphic as general overview</t>
  <t>Restructuring of section 5 to flatten hierarchy</t>
  <t>Enhanced requirements and motivation in <xref target="req-sol"/></t>
  <t>Several editorial improvements based on review comments</t>
</list></t>

<t>From IETF draft 01 -&gt; IETF draft 02:</t>

<t><list style="symbols">
  <t>Issue #15 included additional signature on voucher from registrar in section <xref target="exchanges_uc2_2"/> and section <xref target="agt_prx"/>
The verification of multiple signatures is described in section <xref target="exchanges_uc2_3"/></t>
  <t>Included representation for General JWS JSON Serialization for examples</t>
  <t>Included error responses from pledge if it is not able to create a pledge-voucher request or an enrollment request in section <xref target="exchanges_uc2_1"/></t>
  <t>Removed open issue regarding handling of multiple CSRs and enrollment responses during the bootstrapping as the initial target it the provisioning of a generic LDevID certificate. The defined endpoint on the pledge may also be used for management of further certificates.</t>
</list></t>

<t>From IETF draft 00 -&gt; IETF draft 01:</t>

<t><list style="symbols">
  <t>Issue #15 lead to the inclusion of an option for an additional signature of the registrar on the voucher received from the MASA before forwarding to the registrar-agent to support verification of POP of the registrars private key in section <xref target="exchanges_uc2_2"/> and <xref target="exchanges_uc2_3"/>.</t>
  <t>Based on issue #11, a new endpoint was defined for the registrar to enable delivery of the wrapped enrollment request from the pledge (in contrast to plain PKCS#10 in simple enroll).</t>
  <t>Decision on issue #8 to not provide an additional signature on the enrollment-response object by the registrar. As the enrollment response will only contain the generic LDevID certificate. This credential builds the base for further configuration outside the initial enrollment.</t>
  <t>Decision on issue #7 to not support multiple CSRs during the bootstrapping, as based on the generic LDevID certificate the pledge may enroll for further certificates.</t>
  <t>Closed open issue #5 regarding verification of ietf-ztp-types usage as verified
via a proof-of-concept in section {#exchanges_uc2_1}.</t>
  <t>Housekeeping: Removed already addressed open issues stated in the draft directly.</t>
  <t>Reworked text in from introduction to section pledge-responder-mode</t>
  <t>Fixed "serial-number" encoding in PVR/RVR</t>
  <t>Added prior-signed-voucher-request in the parameter description of the
registrar-voucher-request in <xref target="exchanges_uc2_2"/>.</t>
  <t>Note added in <xref target="exchanges_uc2_2"/> if sub-CAs are used, that the
corresponding information is to be provided to the MASA.</t>
  <t>Inclusion of limitation section (pledge sleeps and needs to be waked
up. Pledge is awake but registrar-agent is not available) (Issue #10).</t>
  <t>Assertion-type aligned with voucher in RFC8366bis, deleted related
open issues. (Issue #4)</t>
  <t>Included table for endpoints in <xref target="pledge_ep"/> for better readability.</t>
  <t>Included registrar authorization check for registrar-agent during
TLS handshake  in section <xref target="exchanges_uc2_2"/>. Also enhanced figure
<xref target="exchangesfig_uc2_2"/> with the authorization step on TLS level.</t>
  <t>Enhanced description of registrar authorization check for registrar-agent
based on the agent-signed-data in section <xref target="exchanges_uc2_2"/>. Also
enhanced figure <xref target="exchangesfig_uc2_2"/> with the authorization step
on pledge-voucher-request level.</t>
  <t>Changed agent-signed-cert to an array to allow for providing further
certificate information like the issuing CA cert for the LDevID(RegAgt)
certificate in case the registrar and the registrar-agent have different
issuing CAs in <xref target="exchangesfig_uc2_2"/> (issue #12).
This also required changes in the YANG module in <xref target="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:
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
BO/MhGkewdag9QE3B+crIJimpk3DJS5mMqQJ60N8PqEgocO3sFG0sR+p5A32
WKhQl6ishETVwtqSbYw+XjPOFn9NbbZT73rTs2DIgS4tIk4N4yECWlkZz3Mk
IEFEdh+FCmNsMqCBU9w5Pg4PHj8GGQj+wBUZUKQGwnNRlYhMoWld2cgNyvex
9nsfFZSWVW6uhZ79ZFrxv6cm3Kb9wsJAC63ab6Dxrtc812qvTg1ur+jTrlY3
YEa7i3xOYg1R4tUYn/9H6J5yQ9r1z8jpX6mPinIDR01k9gblNKlwvQhnIJKs
uzTkuSXMp5mh+tN19SEe/GPubtTpmOHqEZdmmk7wX0COYG1viWOgEEHK07Jc
FGg7TCkfbbqeL4VeSJYsJoSeFMWF01q7dQib0bMhENMOlbdfx2NiZx5IiwGG
O7/1YjqKMocJYe46nVyhUyKz8+NegWAFJjpZceDXGyophE759fpq7XYlsuMr
ngfal235ZkOyWzpuiMOtahjsHJo8yL1W1Dyq1YEPy4UF8iT6YCQ1T5g9W/W1
juBp6D9mbw2p3YqRIY6iFIswb67186S/CsywPRjMces2lHpdGtCERmIptA8f
etFzb6COSLJbrZETCo8fjSydo9MeZdnqKn1D10XnpMHfN2k5icIItIUDR0aj
XTU+PJQK2XNbQUDqHmKg3ljlsWVYU3wUVP/SC1YOVLL16NPDjog4J4ffsphD
8HTqXDTkHTMiFtxuCjeFar3UE4LsuxVTBAcFgN++bCSppB8jIvV/bc9YaeQ3
L5tt5BZY71tYL57dST771AKaHIPfrJy2fvx4mP5lw29IkkyI7iRNbkJVWiXO
Bqqsg3YsQJG1ocoMw1cQsLDHQpG2GysPiQAw4mbMRUrVbaHBvA7yVMJQaMbo
pKK1Vr9kXs/1LNP5GN4OWSM6bSpfSG2LdNwE0TkaSBbLyYqIz7BQq+XnFqwm
OwNCEW8I9geMv4IQwjYryj5uMEyTMr1xeK+rkICui6kSRswceGgOpS8xwH0U
nKfKjAW7O5944eMhJpuLiW8ixgZaAEg/4u05BGGHhdztB9togDD16R3I49b9
ipB+OXmmn8ifpfqAsEFAcIOZw5/jFOld1WskAOIx1vGhnlVKhB7UBFIDxItv
Myy0PcYB6CLSY5fFpBqDbcG5mfBjhqKaB7tnJR5cOwKG8f2M8JU3+a5dln4Q
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
2lT71R/71fzxz+Hnb55DPJ1B+5GjiH9xgPCbpxEvjyOe32yqdNWnDo/VHutj
gL/KSw+vS/r8azeivakr9s5X/vojP3hN2jfPzB0HK8/N3at3//uPzb13Yu57
J+SO5+O+3PxX7kQ73oj25ea/cifa8Ua0LzfnO9EWX5+dw0CTOatlp5wW9Z1K
U01NI//21a1n1paOao+FqOCeKdY83XsWb0O+U91udXnv2Y/cevbl5q/uPfuR
W8+unFf6KHRd9eAoKM70PMeZZWXtvPg9H3t0DEJQnsmxFfVO3npmCLr1DFD/
F/eeff/Ws+vomY59F7v6tq6MsX/xSD3iXk+rtEhlg8RL2dQYH+BAhjZdQeXF
a9FyBp422AqB1hXDTvQYsYx4AK16inxxa/eCF043ToSO6Awj39JCJeXjeWU+
qAaPiiSf6ml/BpLqtjotyr0FLceb+cYTz1mX6WrXraPtTK7FGeM5HU3PHThx
yCa4HStwApNEDxsCyHU49vfdzdHZUCRvgspy9Y777MC6908P+2rpd3/H960h
bGnwoKYViMU7uc9k5GZ0Axn60okoKu/Drewry9OTLtdzhWtflWCRT3wzDbyl
WMXCGTvZ13Uwv7fH+/tC5Lke5bo2lffGMMqVL4U7VhDXL/XDzE+7jpdyH3wj
WJaDUbd6nJrpREzCx6lh6bYaGjFnWaAaLbo35j8f5xXVHbFIYeZXcR6YTTfK
nLX/7TjvX7nbQpec8L96twXd4kB3W9DlgHRZ4KM0m5xZtq6aU5UMVaZ3DDIr
KMMIP289uYWa3TG+AxRUpxQxcWQQ+gxmkrNjSk+aGdPFVR+4N2jPEOewSQcm
6ByTrYCbREuOd1U0b7C5rZSAoTBKCjZBUI8YK19SunZaWPK2jBm3bHB9OrrC
xwIj6oLBnZKEbn1R3+lnurgPjLc35oY3PoRzgFpn6oudLcKWU+Qszq3DiI4w
bf08XjvmADCXtENTncQHqw+JmqKVzCO4B7toW77+9eC1jIGrhuqob+/5Miyh
wqMIauXS9WRdV0+VccFKlonIX4ZzR7u/Ja78F5cFXiZCvty8ewWM67Gx71u3
Sd85gF3u0dIt+KAyy8ULB9PjLacd6tsDokpIoQ0TT0xnNPIR1xnpuI6bQitY
OC9DJXy0FYvDBdls6aRuXrqY2cxplY/JxHlGq/GDCh6rYY4MV7MOMPlSwEwm
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
AXrWd3FjdQIA

-->

</rfc>

