<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.18 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-private-key-stmt-attr-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="Statement of Private Key Possession">An Attribute for Statement of Possession of a Private Key</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-private-key-stmt-attr-03"/>
    <author initials="R." surname="Housley" fullname="Russ Housley">
      <organization abbrev="Vigil Security">Vigil Security, LLC</organization>
      <address>
        <postal>
          <city>Herndon, VA</city>
          <country>US</country>
        </postal>
        <email>housley@vigilsec.com</email>
      </address>
    </author>
    <date year="2025" month="April" day="21"/>
    <area>Security</area>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 60?>

<t>This document specifies an attribute for a statement of possession of a private key
by a certificate subject.  As part of X.509 certificate enrollment, a Certification
Authority (CA) typically demands proof that the subject possesses the private key
that corresponds to the to-be-certified public key.  In some cases, a CA might accept
a signed statement from the certificate subject.  For example, when a certificate
subject needs separate certificates for signature and key establishment, a statement
that can be validated with the previously issued signature certificate for the same
subject might be adequate for subsequent issuance of the key establishment certificate.</t>
    </abstract>
  </front>
  <middle>
    <?line 71?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document specifies an attribute for a statement of possession of a
private key by a certificate subject.  X.509 certificate <xref target="RFC5280"/>
enrollment often depends on PKCS#10 <xref target="RFC2986"/> or the Certificate
Request Message Format (CRMF) <xref target="RFC4211"/>.  As part of enrollment, a
Certification Authority (CA) typically demands proof that the subject
possesses the private key that corresponds to the to-be-certified public
key.  Alternatively, a CA may accept a signed statement from the
certificate subject claiming knowledge of that private key.  When a
certificate subject needs separate certificates for signature and key
establishment, a signed statement that can be validated with the
previously issued signature certificate for the same subject might be
adequate for subsequent issuance of the key establishment certificate.</t>
      <t>For example, a subject may need a signature certificate that contains a ML-DSA
public key and a key establishment certificate that contains a ML-KEM public
key.  For another example, a subject may need a signature certificate that
contains a ECDSA public key and a key establishment certificate that contains
a ECDH public key.</t>
      <t>A statement of possession may be used in lieu of the usual proof of possession
mechanisms.  The statement is simply an assertion that the requestor of a key
establishment certificate has possession of the key establishment private key.  If
the Certificate Policy <xref target="RFC3647"/> allows, the CA <bcp14>MAY</bcp14> accept this statement in lieu
of proof that the requestor has possession of the private key.</t>
      <t>Note that <xref target="RFC6955"/> offers some algorithms that provide proof of possession for
Diffie-Hellman private keys; however, these algorithms are not suitable for use
with PKCS#10 <xref target="RFC2986"/>.  The the attribute specified in this document, on the
other hand, is suitable for use with both PKCS#10 and the CRMF <xref target="RFC4211"/>.</t>
      <t>When using the attribute defined in this document to make a statement about the
possession of the key establishment private key, the process to obtain two
certificates with PKCS#10 is:</t>
      <ol spacing="normal" type="1"><li>
          <t>The subject generates the signature key pair.</t>
        </li>
        <li>
          <t>The subject composes a PKCS#10 Certificate Signing Request (CSR) in the usual
manner.  It includes a signature that is produced with the private key from
step 1.</t>
        </li>
        <li>
          <t>The subject sends the CSR to the CA, and it gets back a signature certificate.
The signature certificate includes a key usage of digitalSignature, 
nonRepudiation, or both <xref section="4.2.1.3" sectionFormat="of" target="RFC5280"/>.</t>
        </li>
        <li>
          <t>The subject generates the key establishment key pair.</t>
        </li>
        <li>
          <t>The subject composes a PKCS#10 CSR containing the key establishment public
key.  The CSR attributes include the attribute specified in <xref target="attr"/> of this
document.  The subject name matches the one from step 3.  The CSR includes a
signature that is produced with the private key from step 1.</t>
        </li>
        <li>
          <t>The subject sends the CSR to the CA, and it gets back a key establishment
certificate.  The key establishment certificate includes a key usage of
keyEncipherment or keyAgreement <xref section="4.2.1.3" sectionFormat="of" target="RFC5280"/>.</t>
        </li>
      </ol>
      <section anchor="asn1">
        <name>ASN.1</name>
        <t>The attribute defined in this document is generated using ASN.1 <xref target="X680"/>, using
the Distinguished Encoding Rules (DER) <xref target="X690"/>.</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>
        <?line -18?>

</section>
    </section>
    <section anchor="attr">
      <name>Attribute for Statement of Possession of a Private Key</name>
      <t>The attribute for statement of possession of a private key is included in a
certificate request to make the following statement:</t>
      <ul empty="true">
        <li>
          <t>"The subject of the signature certificate that is used to
validate the signature on this certificate request states,
without providing proof, that it has possession of the
private key that corresponds to the public key in the
certificate request."</t>
        </li>
      </ul>
      <t>The CA <bcp14>MUST</bcp14> perform certification path validation for the signature
certificate as specified in <xref section="6" sectionFormat="of" target="RFC5280"/>.  If the certification
path is not valid, then the CA <bcp14>MUST</bcp14> reject the certificate request.</t>
      <t>The CA <bcp14>MUST</bcp14> validate the signature on the certificate request using the
public key from the signature certificate.  If the signature is not valid,
then the CA <bcp14>MUST</bcp14> reject the certificate request.</t>
      <t>The subject in the signature certificate <bcp14>SHOULD</bcp14> be the same as the subject name
in the certificate request.  If they are different, the certificate policy <bcp14>MUST</bcp14>
describe how the CA can determine that the two subject names identify the same
entity.  If the CA is unable to determine that the two subject names identify
the same entity, then the CA <bcp14>MUST</bcp14> reject the certificate request.</t>
      <t>If subject alternative names are present in the certificate request, they
<bcp14>SHOULD</bcp14> match subject alternative names in the signature certificate.  If the CA
is unable to determine that each of subject alternative names identifies
the same entity as is named in the signature certificate, then the CA <bcp14>MUST</bcp14>
reject the certificate request.</t>
      <t>The attribute for statement of possession of a private key has the following
structure:</t>
      <sourcecode type="asn.1"><![CDATA[
   id-at-statementOfPossession OBJECT IDENTIFIER ::= 
     { 1 3 6 1 4 1 22112 2 1 }

   privateKeyPossessionStatement ATTRIBUTE ::= {
     TYPE PrivateKeyPossessionStatement
     IDENTIFIED BY id-at-statementOfPossession }

   PrivateKeyPossessionStatement ::= SEQUENCE {
     signer  IssuerAndSerialNumber,
     cert    Certificate OPTIONAL }

]]></sourcecode>
      <t>The components of the PrivateKeyStatement SEQUENCE have the following semantics:</t>
      <ul empty="true">
        <li>
          <dl>
            <dt>signer:</dt>
            <dd>
              <t>the issuer name and certificate serial number of the signature certificate.</t>
            </dd>
          </dl>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <dl>
            <dt>cert:</dt>
            <dd>
              <t>the signature certificate.  If the issuer of the key establishment certificate
will be the same as the issuer of the signature certificate, then this
component <bcp14>MAY</bcp14> be omitted.  When the signature certificate is omitted, the
signer is assuming that the CA has a mechanism to obtain all valid
certificates that it issued.</t>
            </dd>
          </dl>
        </li>
      </ul>
    </section>
    <section anchor="conventions-for-pkcs10">
      <name>Conventions for PKCS#10</name>
      <t>This section specifies the conventions for using the attribute for statement
of possession of a private key with PKCS#10 <xref target="RFC2986"/> when requesting a
key establishment certificate.</t>
      <t>The PKCS#10 CertificationRequest always has three components, as follows:</t>
      <ul empty="true">
        <li>
          <dl>
            <dt>certificationRequestInfo:</dt>
            <dd>
              <t>the subject name <bcp14>SHOULD</bcp14> be the same as the subject name in the signature certificate,
the subjectPKInfo <bcp14>MUST</bcp14> contain the public key for the key establishment algorithm,
and the attributes <bcp14>MUST</bcp14> include privateKeyPossessionStatement attribute as specified
in <xref target="attr"/> of this document.</t>
            </dd>
          </dl>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <dl>
            <dt>signatureAlgorithm:</dt>
            <dd>
              <t>the signature algorithm <bcp14>MUST</bcp14> be one that can be validated with the public key
in the signature certificate.</t>
            </dd>
          </dl>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <dl>
            <dt>signature:</dt>
            <dd>
              <t>the signature over certificationRequestInfo <bcp14>MUST</bcp14> validate with the public key
in the signature certificate, and certification path validation for the signature
certificate <bcp14>MUST</bcp14> be successful as specified in <xref section="6" sectionFormat="of" target="RFC5280"/>.</t>
            </dd>
          </dl>
        </li>
      </ul>
    </section>
    <section anchor="conventions-for-crmf">
      <name>Conventions for CRMF</name>
      <t>This section specifies the conventions for using the attribute for statement
of possession of a private key with the CRMF <xref target="RFC4211"/> when requesting a key
establisment certificate.</t>
      <t>The following ASN.1 types are defined for use with CRMF.  They have exactly
the same semantics and syntax as the attribute discussed above, but they
offer a similar naming convention to the Registration Controls in <xref target="RFC4211"/>.</t>
      <sourcecode type="asn.1"><![CDATA[
  regCtrl-privateKeyPossessionStatement ATTRIBUTE ::= 
    privateKeyPossessionStatement

  id-regCtrl-statementOfPossession OBJECT IDENTIFIER ::=
    id-at-statementOfPossession
 
]]></sourcecode>
      <t>The CRMF CertificationRequest always has three components, as follows:</t>
      <ul empty="true">
        <li>
          <dl>
            <dt>certReq:</dt>
            <dd>
              <t>the certTemplate <bcp14>MUST</bcp14> include the subject and the publicKey components. The
same subject name <bcp14>SHOULD</bcp14> match the subject name in the signature certificate, and
publicKey <bcp14>MUST</bcp14> contain the public key for the key establishment algorithm.</t>
            </dd>
          </dl>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <dl>
            <dt>popo:</dt>
            <dd>
              <t>the ProofOfPossession <bcp14>MUST</bcp14> use the signature CHOICE,
the poposkInput <bcp14>MUST</bcp14> be present, POPOSigningKeyInput.authInfo <bcp14>MUST</bcp14> use
the sender CHOICE, the sender <bcp14>SHOULD</bcp14> be set to the subject name that appears in
the signature certificate, the publicKey <bcp14>MUST</bcp14> contain a copy of the public
key from the certTemplate, the algorithmIdentifier <bcp14>MUST</bcp14> identify a signture
algorithm that can be validated with the public key in the signature certificate,
signature over the poposkInput <bcp14>MUST</bcp14> validate with the public key in the signature
certificate, and certification path validation for the signature certificate
<bcp14>MUST</bcp14> be successful as specified in <xref section="6" sectionFormat="of" target="RFC5280"/>.</t>
            </dd>
          </dl>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <dl>
            <dt>regInfo:</dt>
            <dd>
              <t>the attributes <bcp14>MUST</bcp14> include privateKeyPossessionStatement attribute as specified
in <xref target="attr"/> of this document.</t>
            </dd>
          </dl>
        </li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The privateKeyPossessionStatement attribute <bcp14>MUST NOT</bcp14> be used to obtain a
signature certificate.  Performing proof of possession of the the signature
private key is easily accomplished by signing the certificate request.</t>
      <t>The subject is signing privateKeyPossessionStatement attribute to tell the CA that it has
possession of the key establishment private key.  This is being done instead of
providing technical proof of possession.  If the subject has lost control
of the signature private key, then the signed privateKeyPossessionStatement attribute
could be generated by some other party.  Timely revocation of the compromised
signature certificate is the only protection against such loss of control.</t>
      <t>If the CA revokes a compromised signature certificate, then the CA <bcp14>SHOULD</bcp14>
also revoke all key establishment certificates that were obtained with
privateKeyPossessionStatement attributes signed by that compromised signature
certificate.</t>
      <t>The signature key pair and the key establishment key pair are expected to have
roughly the same security strength.  To ensure that the signature on the statement
is not the weakest part of the certificate enrollment, the signature key pair <bcp14>SHOULD</bcp14>
be at least as strong as the key establishment key pair.</t>
      <t>If a CA allows subject in the key establishment certificate to be different than
the subject name in the signature certificate, then certificate policy <bcp14>MUST</bcp14>
describe how to determine that the two subject names identify the same entity.
Likewise, if a CA allows subject alternative names in the key establishment
certificate that are not present in the signature certificate, then certificate
policy <bcp14>MUST</bcp14> describe how to determine that the subject alternative names identify
the same entity as is named in the signature certificate.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>For the ASN.1 Module in the <xref target="appendix-asn1"/> of this document, IANA is
requested to assign an object identifier (OID) for the module identifier (TBD0)
with a Description of "d-mod-private-key-possession-stmt-2025".  The
OID for the module should be allocated in the "SMI Security for PKIX Module
Identifier" registry (1.3.6.1.5.5.7.0).</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2986">
          <front>
            <title>PKCS #10: Certification Request Syntax Specification Version 1.7</title>
            <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <date month="November" year="2000"/>
            <abstract>
              <t>This memo represents a republication of PKCS #10 v1.7 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, and change control is retained within the PKCS process. The body of this document, except for the security considerations section, is taken directly from the PKCS #9 v2.0 or the PKCS #10 v1.7 document. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2986"/>
          <seriesInfo name="DOI" value="10.17487/RFC2986"/>
        </reference>
        <reference anchor="RFC4211">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="September" year="2005"/>
            <abstract>
              <t>This document describes the Certificate Request Message Format (CRMF) syntax and semantics. This syntax is used to convey a request for a certificate to a Certification Authority (CA), possibly via a Registration Authority (RA), for the purposes of X.509 certificate production. The request will typically include a public key and the associated registration information. This document does not define a certificate request protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4211"/>
          <seriesInfo name="DOI" value="10.17487/RFC4211"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC5912">
          <front>
            <title>New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Public Key Infrastructure using X.509 (PKIX) certificate format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates those ASN.1 modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5912"/>
          <seriesInfo name="DOI" value="10.17487/RFC5912"/>
        </reference>
        <reference anchor="X680" target="https://www.itu.int/rec/T-REC-X.680">
          <front>
            <title>Information technology -- Abstract Syntax Notation One (ASN.1): Specification of basic notation</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.680"/>
          <seriesInfo name="ISO/IEC" value="8824-1:2021"/>
        </reference>
        <reference anchor="X690" target="https://www.itu.int/rec/T-REC-X.690">
          <front>
            <title>Information technology -- ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.690"/>
          <seriesInfo name="ISO/IEC" value="8825-1-2021"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC3647">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate Policy and Certification Practices Framework</title>
            <author fullname="S. Chokhani" initials="S." surname="Chokhani"/>
            <author fullname="W. Ford" initials="W." surname="Ford"/>
            <author fullname="R. Sabett" initials="R." surname="Sabett"/>
            <author fullname="C. Merrill" initials="C." surname="Merrill"/>
            <author fullname="S. Wu" initials="S." surname="Wu"/>
            <date month="November" year="2003"/>
            <abstract>
              <t>This document presents a framework to assist the writers of certificate policies or certification practice statements for participants within public key infrastructures, such as certification authorities, policy authorities, and communities of interest that wish to rely on certificates. In particular, the framework provides a comprehensive list of topics that potentially (at the writer's discretion) need to be covered in a certificate policy or a certification practice statement. This document supersedes RFC 2527.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3647"/>
          <seriesInfo name="DOI" value="10.17487/RFC3647"/>
        </reference>
        <reference anchor="RFC6955">
          <front>
            <title>Diffie-Hellman Proof-of-Possession Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="H. Prafullchandra" initials="H." surname="Prafullchandra"/>
            <date month="May" year="2013"/>
            <abstract>
              <t>This document describes two methods for producing an integrity check value from a Diffie-Hellman key pair and one method for producing an integrity check value from an Elliptic Curve key pair. This behavior is needed for such operations as creating the signature of a Public-Key Cryptography Standards (PKCS) #10 Certification Request. These algorithms are designed to provide a Proof-of-Possession of the private key and not to be a general purpose signing algorithm.</t>
              <t>This document obsoletes RFC 2875.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6955"/>
          <seriesInfo name="DOI" value="10.17487/RFC6955"/>
        </reference>
      </references>
    </references>
    <?line 331?>

<section anchor="appendix-asn1">
      <name>ASN.1 Module</name>
      <t>This ASN.1 Module builds upon the conventions established in <xref target="RFC5912"/>.</t>
      <sourcecode type="asn.1"><![CDATA[
<CODE STARTS>

PrivateKeyPossessionStatement-2025
  { iso(1) identified-organization(3) dod(6) internet(1)
    security(5) mechanisms(5) pkix(7) id-mod(0)
    id-mod-private-key-possession-stmt-2025(TBD0) }

DEFINITIONS IMPLICIT TAGS ::= BEGIN

EXPORTS ALL;

IMPORTS
  ATTRIBUTE
  FROM PKIX-CommonTypes-2009 -- in [RFC5912]
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7) id-mod(0)
      id-mod-pkixCommon-02(57) }

  Certificate
  FROM PKIX1Explicit-2009 -- in [RFC5912]
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7) id-mod(0)
      id-mod-pkix1-explicit-02(51) }

  IssuerAndSerialNumber
  FROM CryptographicMessageSyntax-2010 -- [RFC6268]
    { iso(1) member-body(2) us(840) rsadsi(113549)
       pkcs(1) pkcs-9(9) smime(16) modules(0)
       id-mod-cms-2009(58) } ;

--
-- Private Key Possession Statement Attribute
--

id-at-statementOfPossession OBJECT IDENTIFIER ::=
  { 1 3 6 1 4 1 22112 2 1 }

privateKeyPossessionStatement ATTRIBUTE ::= {
  TYPE PrivateKeyPossessionStatement
  IDENTIFIED BY id-at-statementOfPossession }

PrivateKeyPossessionStatement ::= SEQUENCE {
  signer  IssuerAndSerialNumber,
  cert    Certificate OPTIONAL }

--
-- Registration Control Support
--

RegControlSet ATTRIBUTE ::= 
  { regCtrl-privateKeyPossessionStatement, ... }

regCtrl-privateKeyPossessionStatement ATTRIBUTE ::=
  privateKeyPossessionStatement

id-regCtrl-statementOfPossession OBJECT IDENTIFIER ::=
  id-at-statementOfPossession
     
END

<CODE ENDS>
]]></sourcecode>
    </section>
    <section anchor="example-use-of-the-privatekeypossessionstatement-attribute">
      <name>Example use of the privateKeyPossessionStatement Attribute</name>
      <t>In this example, the self-signed certificate for the CA is:</t>
      <artwork><![CDATA[
-----BEGIN CERTIFICATE-----
MIIB7DCCAXKgAwIBAgIUL149AUxHunELBZMELEQm+isgKCQwCgYIKoZIzj0EAwMw
NzELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkV4YW1wbGUgQ0ExEzARBgNVBAMTCmNh
LmV4YW1wbGUwHhcNMjUwMTAzMjAyNzA5WhcNMzUwMTAzMjAyNzA5WjA3MQswCQYD
VQQGEwJVUzETMBEGA1UEChMKRXhhbXBsZSBDQTETMBEGA1UEAxMKY2EuZXhhbXBs
ZTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDxZdB/Glcxdk1p6Jf1j5en6QfliY9OS
fjZbtje/w6M58PN8Sb3VFln1rPdvD17UXeazSG9Hr/Dq3enbsHHO0pPntcFOgb8n
r8R8LUGhxRzjlxkaEJN+pa6Nf7qk49JDeaM/MD0wDwYDVR0TAQH/BAUwAwEB/zAL
BgNVHQ8EBAMCAgQwHQYDVR0OBBYEFD6YvLLv3DQbvnGS0qP6bbzyZkCqMAoGCCqG
SM49BAMDA2gAMGUCMGfb61IigoJ3QDnlsRdoktREHe0Dpm6DKw3qOyLL6A0cFK9Z
g8m11xIwvptlran52gIxAK1VrOjzRsFiHRptO+gFXstTXnQkKBb2/3WQz2SqcIS/
BWEp+siJ19OXOlz6APDB7w==
-----END CERTIFICATE-----
]]></artwork>
      <t>Alice generates her ECDSA signature key pair.  Then, Alice composes
a PKCS#10 Certificate Signing Request (CSR) in the usual manner as
specified in <xref target="RFC2986"/>.  The CSR includes a signature that is produced
with her ECDSA private key.  The CSR is:</t>
      <artwork><![CDATA[
-----BEGIN CERTIFICATE REQUEST-----
MIIBhTCCAQsCAQAwPDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlZBMRAwDgYDVQQH
EwdIZXJuZG9uMQ4wDAYDVQQDEwVBbGljZTB2MBAGByqGSM49AgEGBSuBBAAiA2IA
BIAc+6lXN1MIM/82QeWNb55H0zr+lVgWVeF0bf4jzxCb5MCjVaM0eFEvcjXMV5p4
kzqiJTHC0V2JAoqYMX/DMFIcwZ7xP9uQd9ep6KZ+RXut211L8+W1QI1QJSDNxANR
saBQME4GCSqGSIb3DQEJDjFBMD8wDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCB4Aw
IgYDVR0RBBswGYEXYWxpY2VAZW1haWwuZXhhbXBsZS5jb20wCgYIKoZIzj0EAwMD
aAAwZQIwPa2rOCe60edAF43C/t57IW8liyy+69FE04hMAFgw3Ga+nR+8zDuUsVLw
xXGAHtcDAjEA6LbvNkZjo6j2z5xRIjrHzEbGgiV4MF4xtnpfSSRI4dB0zT52bWkj
TZsuS1YWIkjt
-----END CERTIFICATE REQUEST-----
]]></artwork>
      <t>The CA issues a signature certificate to Alice:</t>
      <artwork><![CDATA[
-----BEGIN CERTIFICATE-----
MIICJzCCAa6gAwIBAgIUf3Sj/ANs4hR4XFlhTm+N8kxHqHkwCgYIKoZIzj0EAwMw
NzELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkV4YW1wbGUgQ0ExEzARBgNVBAMTCmNh
LmV4YW1wbGUwHhcNMjUwMTA5MTcwMzQ4WhcNMjYwMTA5MTcwMzQ4WjA8MQswCQYD
VQQGEwJVUzELMAkGA1UECBMCVkExEDAOBgNVBAcTB0hlcm5kb24xDjAMBgNVBAMT
BUFsaWNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEgBz7qVc3Uwgz/zZB5Y1vnkfT
Ov6VWBZV4XRt/iPPEJvkwKNVozR4US9yNcxXmniTOqIlMcLRXYkCipgxf8MwUhzB
nvE/25B316nopn5Fe63bXUvz5bVAjVAlIM3EA1Gxo3YwdDAMBgNVHRMBAf8EAjAA
MAsGA1UdDwQEAwIHgDAdBgNVHQ4EFgQUIx0A0f7tCzkQEZgYzH3NcM2L05IwHwYD
VR0jBBgwFoAUPpi8su/cNBu+cZLSo/ptvPJmQKowFwYDVR0gBBAwDjAMBgpghkgB
ZQMCATAwMAoGCCqGSM49BAMDA2cAMGQCMGu/Uypd7BaVnUjB36UtX9m5ZmPi78y5
1RA8WhbOv0KQVrcYtj4qOdiMVKBcoVceyAIwRJ6U91048NAb3nicHcrGFf1UYrhb
DlytK4tCa5HBxD/qAgy4/eUzA5NZwVaLK78u
-----END CERTIFICATE-----
]]></artwork>
      <t>Alice generates her ECDH key establishment key pair.  Then, Alice
composes a PKCS#10 CSR.  The CSR attributes include the
privateKeyPossessionStatement attribute, which points to her ECDSA signature
certificate.  The CSR includes her ECDH public key and a signature that
is produced with her ECDSA private key.  The CSR is:</t>
      <artwork><![CDATA[
-----BEGIN CERTIFICATE REQUEST-----
MIIEMTCCA7gCAQAwPDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlZBMRAwDgYDVQQH
EwdIZXJuZG9uMQ4wDAYDVQQDEwVBbGljZTB0MA4GBSuBBAEMBgUrgQQAIgNiAAQB
RyQTH+cq1s5F94uFqFe7l1LqGdEC8Tm+e5VYBCfKAC8MJySQMj1GixEEXL+1Wjtg
23XvnJouCDoxSpDCSMqf3kvp5+naM37uxa3ZYgD6DPY3me5EZvyZPvSRJTFl/Bag
ggL9MGcGCSqGSIb3DQEJDjFaMFgwDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCAwgw
IgYDVR0RBBswGYEXYWxpY2VAZW1haWwuZXhhbXBsZS5jb20wFwYDVR0gBBAwDjAM
BgpghkgBZQMCATAwMIICkAYKKwYBBAGBrGACATGCAoAwggJ8ME8wNzELMAkGA1UE
BhMCVVMxEzARBgNVBAoTCkV4YW1wbGUgQ0ExEzARBgNVBAMTCmNhLmV4YW1wbGUC
FH90o/wDbOIUeFxZYU5vjfJMR6h5MIICJzCCAa6gAwIBAgIUf3Sj/ANs4hR4XFlh
Tm+N8kxHqHkwCgYIKoZIzj0EAwMwNzELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkV4
YW1wbGUgQ0ExEzARBgNVBAMTCmNhLmV4YW1wbGUwHhcNMjUwMTA5MTcwMzQ4WhcN
MjYwMTA5MTcwMzQ4WjA8MQswCQYDVQQGEwJVUzELMAkGA1UECBMCVkExEDAOBgNV
BAcTB0hlcm5kb24xDjAMBgNVBAMTBUFsaWNlMHYwEAYHKoZIzj0CAQYFK4EEACID
YgAEgBz7qVc3Uwgz/zZB5Y1vnkfTOv6VWBZV4XRt/iPPEJvkwKNVozR4US9yNcxX
mniTOqIlMcLRXYkCipgxf8MwUhzBnvE/25B316nopn5Fe63bXUvz5bVAjVAlIM3E
A1Gxo3YwdDAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDAdBgNVHQ4EFgQUIx0A
0f7tCzkQEZgYzH3NcM2L05IwHwYDVR0jBBgwFoAUPpi8su/cNBu+cZLSo/ptvPJm
QKowFwYDVR0gBBAwDjAMBgpghkgBZQMCATAwMAoGCCqGSM49BAMDA2cAMGQCMGu/
Uypd7BaVnUjB36UtX9m5ZmPi78y51RA8WhbOv0KQVrcYtj4qOdiMVKBcoVceyAIw
RJ6U91048NAb3nicHcrGFf1UYrhbDlytK4tCa5HBxD/qAgy4/eUzA5NZwVaLK78u
MAoGCCqGSM49BAMDA2cAMGQCL2TNHPULWcCS2DqZCCiQeSwx2JPLMI14Vi977bzy
rImq5p0H3Bel6fAS8BnQ00WNAjEAhHDAlcbRuHhqdW6mOgDd5kWEGGqgixIuvEEc
fVbnNCEyEE4n0mQ99PHURnXoHwqF
-----END CERTIFICATE REQUEST-----
]]></artwork>
      <t>The CSR decodes to:</t>
      <artwork><![CDATA[
   0 1073: SEQUENCE {
   4  952:  SEQUENCE {
   8    1:   INTEGER 0
  11   60:   SEQUENCE {
  13   11:    SET {
  15    9:     SEQUENCE {
  17    3:      OBJECT IDENTIFIER countryName (2 5 4 6)
  22    2:      PrintableString 'US'
         :       }
         :      }
  26   11:    SET {
  28    9:     SEQUENCE {
  30    3:      OBJECT IDENTIFIER stateOrProvinceName (2 5 4 8)
  35    2:      PrintableString 'VA'
         :       }
         :      }
  39   16:    SET {
  41   14:     SEQUENCE {
  43    3:      OBJECT IDENTIFIER localityName (2 5 4 7)
  48    7:      PrintableString 'Herndon'
         :       }
         :      }
  57   14:    SET {
  59   12:     SEQUENCE {
  61    3:      OBJECT IDENTIFIER commonName (2 5 4 3)
  66    5:      PrintableString 'Alice'
         :       }
         :      }
         :     }
  73  116:   SEQUENCE {
  75   14:    SEQUENCE {
  77    5:     OBJECT IDENTIFIER ECDH (1 3 132 1 12)
  84    5:     OBJECT IDENTIFIER secp384r1 (1 3 132 0 34)
         :      }
  91   98:    BIT STRING
         :     04 01 47 24 13 1F E7 2A D6 CE 45 F7 8B 85 A8 57
         :     BB 97 52 EA 19 D1 02 F1 39 BE 7B 95 58 04 27 CA
         :     00 2F 0C 27 24 90 32 3D 46 8B 11 04 5C BF B5 5A
         :     3B 60 DB 75 EF 9C 9A 2E 08 3A 31 4A 90 C2 48 CA
         :     9F DE 4B E9 E7 E9 DA 33 7E EE C5 AD D9 62 00 FA
         :     0C F6 37 99 EE 44 66 FC 99 3E F4 91 25 31 65 FC
         :     16
         :     }
 191  765:   [0] {
 195  103:    SEQUENCE {
 197    9:     OBJECT IDENTIFIER
         :      extensionRequest (1 2 840 113549 1 9 14)
 208   90:     SET {
 210   88:      SEQUENCE {
 212   12:       SEQUENCE {
 214    3:        OBJECT IDENTIFIER
         :         basicConstraints (2 5 29 19)
 219    1:        BOOLEAN TRUE
 222    2:        OCTET STRING, encapsulates {
 224    0:         SEQUENCE {}
         :          }
         :         }
 226   11:       SEQUENCE {
 228    3:        OBJECT IDENTIFIER keyUsage (2 5 29 15)
 233    4:        OCTET STRING, encapsulates {
 235    2:         BIT STRING 3 unused bits
         :          '10000'B (bit 4)
         :          }
         :         }
 239   34:       SEQUENCE {
 241    3:        OBJECT IDENTIFIER subjectAltName (2 5 29 17)
 246   27:        OCTET STRING, encapsulates {
 248   25:         SEQUENCE {
 250   23:          [1] 'alice@email.example.com'
         :           }
         :          }
         :         }
 275   23:       SEQUENCE {
 277    3:        OBJECT IDENTIFIER
         :         certificatePolicies (2 5 29 32)
 282   16:        OCTET STRING, encapsulates {
 284   14:         SEQUENCE {
 286   12:          SEQUENCE {
 288   10:           OBJECT IDENTIFIER 
         :            testCertPolicy (2 16 840 1 101 3 2 1 48 48)
         :            }
         :           }
         :          }
         :         }
         :        }
         :       }
         :      }
 300  656:    SEQUENCE {
 304   10:     OBJECT IDENTIFIER
         :      statementOfPossession (1 3 6 1 4 1 22112 2 1)
 316  640:     SET {
 320  636:      SEQUENCE {
 324   79:       SEQUENCE {
 326   55:        SEQUENCE {
 328   11:         SET {
 330    9:          SEQUENCE {
 332    3:           OBJECT IDENTIFIER countryName (2 5 4 6)
 337    2:           PrintableString 'US'
         :            }
         :           }
 341   19:         SET {
 343   17:          SEQUENCE {
 345    3:           OBJECT IDENTIFIER
         :            organizationName (2 5 4 10)
 350   10:           PrintableString 'Example CA'
         :            }
         :           }
 362   19:         SET {
 364   17:          SEQUENCE {
 366    3:           OBJECT IDENTIFIER commonName (2 5 4 3)
 371   10:           PrintableString 'ca.example'
         :            }
         :           }
         :          }
 383   20:        INTEGER
         :      7F 74 A3 FC 03 6C E2 14 78 5C 59 61 4E 6F 8D F2
         :      4C 47 A8 79
         :         }
 405  551:       SEQUENCE {
 409  430:        SEQUENCE {
 413    3:         [0] {
 415    1:          INTEGER 2
         :           }
 418   20:         INTEGER
         :      7F 74 A3 FC 03 6C E2 14 78 5C 59 61 4E 6F 8D F2
         :      4C 47 A8 79
 440   10:         SEQUENCE {
 442    8:          OBJECT IDENTIFIER
         :           ecdsaWithSHA384 (1 2 840 10045 4 3 3)
         :           }
 452   55:         SEQUENCE {
 454   11:          SET {
 456    9:           SEQUENCE {
 458    3:            OBJECT IDENTIFIER
         :             countryName (2 5 4 6)
 463    2:            PrintableString 'US'
         :             }
         :            }
 467   19:          SET {
 469   17:           SEQUENCE {
 471    3:            OBJECT IDENTIFIER
         :             organizationName (2 5 4 10)
 476   10:            PrintableString 'Example CA'
         :             }
         :            }
 488   19:          SET {
 490   17:           SEQUENCE {
 492    3:            OBJECT IDENTIFIER
         :             commonName (2 5 4 3)
 497   10:            PrintableString 'ca.example'
         :             }
         :            }
         :           }
 509   30:         SEQUENCE {
 511   13:          UTCTime 09/01/2025 17:03:48 GMT
 526   13:          UTCTime 09/01/2026 17:03:48 GMT
         :           }
 541   60:         SEQUENCE {
 543   11:          SET {
 545    9:           SEQUENCE {
 547    3:            OBJECT IDENTIFIER
         :             countryName (2 5 4 6)
 552    2:            PrintableString 'US'
         :             }
         :            }
 556   11:          SET {
 558    9:           SEQUENCE {
 560    3:            OBJECT IDENTIFIER
         :             stateOrProvinceName (2 5 4 8)
 565    2:            PrintableString 'VA'
         :             }
         :            }
 569   16:          SET {
 571   14:           SEQUENCE {
 573    3:            OBJECT IDENTIFIER
         :             localityName (2 5 4 7)
 578    7:            PrintableString 'Herndon'
         :             }
         :            }
 587   14:          SET {
 589   12:           SEQUENCE {
 591    3:            OBJECT IDENTIFIER
         :             commonName (2 5 4 3)
 596    5:            PrintableString 'Alice'
         :             }
         :            }
         :           }
 603  118:         SEQUENCE {
 605   16:          SEQUENCE {
 607    7:           OBJECT IDENTIFIER
         :            ecPublicKey (1 2 840 10045 2 1)
 616    5:           OBJECT IDENTIFIER
         :            secp384r1 (1 3 132 0 34)
         :            }
 623   98:          BIT STRING
         :      04 80 1C FB A9 57 37 53 08 33 FF 36 41 E5 8D 6F
         :      9E 47 D3 3A FE 95 58 16 55 E1 74 6D FE 23 CF 10
         :      9B E4 C0 A3 55 A3 34 78 51 2F 72 35 CC 57 9A 78
         :      93 3A A2 25 31 C2 D1 5D 89 02 8A 98 31 7F C3 30
         :      52 1C C1 9E F1 3F DB 90 77 D7 A9 E8 A6 7E 45 7B
         :      AD DB 5D 4B F3 E5 B5 40 8D 50 25 20 CD C4 03 51
         :      B1
         :           }
 723  118:         [3] {
 725  116:          SEQUENCE {
 727   12:           SEQUENCE {
 729    3:            OBJECT IDENTIFIER
         :             basicConstraints (2 5 29 19)
 734    1:            BOOLEAN TRUE
 737    2:            OCTET STRING, encapsulates {
 739    0:             SEQUENCE {}
         :              }
         :             }
 741   11:           SEQUENCE {
 743    3:            OBJECT IDENTIFIER
         :             keyUsage (2 5 29 15)
 748    4:            OCTET STRING, encapsulates {
 750    2:             BIT STRING 7 unused bits
         :              '1'B (bit 0)
         :              }
         :             }
 754   29:           SEQUENCE {
 756    3:            OBJECT IDENTIFIER
         :             subjectKeyIdentifier (2 5 29 14)
 761   22:            OCTET STRING, encapsulates {
 763   20:             OCTET STRING
         :      23 1D 00 D1 FE ED 0B 39 10 11 98 18 CC 7D CD 70
         :      CD 8B D3 92
         :              }
         :             }
 785   31:           SEQUENCE {
 787    3:            OBJECT IDENTIFIER
         :             authorityKeyIdentifier (2 5 29 35)
 792   24:            OCTET STRING, encapsulates {
 794   22:             SEQUENCE {
 796   20:              [0]
         :      3E 98 BC B2 EF DC 34 1B BE 71 92 D2 A3 FA 6D BC
         :      F2 66 40 AA
         :               }
         :              }
         :             }
 818   23:           SEQUENCE {
 820    3:            OBJECT IDENTIFIER
         :             certificatePolicies (2 5 29 32)
 825   16:            OCTET STRING, encapsulates {
 827   14:             SEQUENCE {
 829   12:              SEQUENCE {
 831   10:               OBJECT IDENTIFIER
         :                testCertPolicy (2 16 840 1 101 3 2 1 48 48)
         :                }
         :               }
         :              }
         :             }
         :            }
         :           }
         :          }
 843   10:        SEQUENCE {
 845    8:         OBJECT IDENTIFIER
         :          ecdsaWithSHA384 (1 2 840 10045 4 3 3)
         :          }
 855  103:        BIT STRING, encapsulates {
 858  100:         SEQUENCE {
 860   48:          INTEGER
         :      6B BF 53 2A 5D EC 16 95 9D 48 C1 DF A5 2D 5F D9
         :      B9 66 63 E2 EF CC B9 D5 10 3C 5A 16 CE BF 42 90
         :      56 B7 18 B6 3E 2A 39 D8 8C 54 A0 5C A1 57 1E C8
 910   48:          INTEGER
         :      44 9E 94 F7 5D 38 F0 D0 1B DE 78 9C 1D CA C6 15
         :      FD 54 62 B8 5B 0E 5C AD 2B 8B 42 6B 91 C1 C4 3F
         :      EA 02 0C B8 FD E5 33 03 93 59 C1 56 8B 2B BF 2E
         :           }
         :          }
         :         }
         :        }
         :       }
         :      }
         :     }
         :    }
 960   10:  SEQUENCE {
 962    8:   OBJECT IDENTIFIER ecdsaWithSHA384 (1 2 840 10045 4 3 3)
         :    }
 972  103:  BIT STRING, encapsulates {
 975  100:   SEQUENCE {
 977   47:    INTEGER
         :     64 CD 1C F5 0B 59 C0 92 D8 3A 99 08 28 90 79 2C
         :     31 D8 93 CB 30 8D 78 56 2F 7B ED BC F2 AC 89 AA
         :     E6 9D 07 DC 17 A5 E9 F0 12 F0 19 D0 D3 45 8D
1026   49:    INTEGER
         :     00 84 70 C0 95 C6 D1 B8 78 6A 75 6E A6 3A 00 DD
         :     E6 45 84 18 6A A0 8B 12 2E BC 41 1C 7D 56 E7 34
         :     21 32 10 4E 27 D2 64 3D F4 F1 D4 46 75 E8 1F 0A
         :     85
         :     }
         :    }
         :   }
]]></artwork>
      <t>The CA issues a key establishment certificate to Alice:</t>
      <artwork><![CDATA[
-----BEGIN CERTIFICATE-----
MIICJTCCAaygAwIBAgIUf3Sj/ANs4hR4XFlhTm+N8kxHqHowCgYIKoZIzj0EAwMw
NzELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkV4YW1wbGUgQ0ExEzARBgNVBAMTCmNh
LmV4YW1wbGUwHhcNMjUwMTA5MTcwNTAwWhcNMjYwMTA5MTcwNTAwWjA8MQswCQYD
VQQGEwJVUzELMAkGA1UECBMCVkExEDAOBgNVBAcTB0hlcm5kb24xDjAMBgNVBAMT
BUFsaWNlMHQwDgYFK4EEAQwGBSuBBAAiA2IABAFHJBMf5yrWzkX3i4WoV7uXUuoZ
0QLxOb57lVgEJ8oALwwnJJAyPUaLEQRcv7VaO2Dbde+cmi4IOjFKkMJIyp/eS+nn
6dozfu7FrdliAPoM9jeZ7kRm/Jk+9JElMWX8FqN2MHQwDAYDVR0TAQH/BAIwADAL
BgNVHQ8EBAMCAwgwHQYDVR0OBBYEFAnLfJvnEUcvLXaPUDZMZlQ/zZ3WMB8GA1Ud
IwQYMBaAFD6YvLLv3DQbvnGS0qP6bbzyZkCqMBcGA1UdIAQQMA4wDAYKYIZIAWUD
AgEwMDAKBggqhkjOPQQDAwNnADBkAjARQ5LuV6yz8A5DZCll1S/gfxZ+QSJl/pKc
cTL6Sdr1IS18U/zY8VUJeB2H0nBamLwCMBRQ6sEWpNoeeR8Bonpoot/zYD2luQ1V
2jevmYsnBihKF0debgfhGvh8WIgBR69DZg==
-----END CERTIFICATE-----
]]></artwork>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to
Sean Turner,
Joe Mandel,
Mike StJohns,
Mike Ounsworth,
John Gray,
Carl Wallace,
Corey Bonnell, and
Hani Ezzadeen
for their constructive comments.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
lHehtJJepp4cfFkddI+LP5PHUhLhF70hQDf7471c9I2lEjXZRDc7iJGu9kza
yjTrda1s6Lp6dzlSF3VNHdX7DU5U1P5bbe6ZDe2haTbM9vS7G44u9fZCH93X
L/2H+vsTa6qL5oJpvZuNpvp8rnJ9Uxs39Zub5pv5rna0UetGU/2e/nwj3t9y
i8F5f9RmzcyzZk+ftsZMY7rqsKiN7Vbzqb9o9tT35pO6bL2r0i22vW+0PalC
sx0u9Pa9wdy02+fm4uKm/272moAmQqKPm5edu/F4cKeFD13NaPfWz9S35uU9
b84fkufMQ0/jm5p6ri1fzrtNwH1knmvduaapqqvydVUz3h6G2un5xH4bPnMz
+eKRe5IcT24/Ttx75arLPD49DKIn53QhN6XKdavSHQg31YnHBdfDV4Mr9+8c
6717rtSCU+NFcLxBWKtdsbNrL7KrV6NBxWOCSqfS6J+P3zrvT5O3Z8u8aH2f
WXLrsfzyLCoXhmM1T5sGuzAW98ZNh+2p7dqppvYX6sLUTt/VBoMUrbUrJlBV
V0ftRa1NO15p2r1ZNeT710bjVTDag1fvvMu+XMuDwfvy4Vl/aar+ua6/nDOI
Nww2VH6kNs/7evP8cSBzdXfkXwhtw5uEnaH/HHXMmsMas6lsXC6El6tloyGr
rF29VB6YUWXKcW/1xessmgSWJ/Gj+pt6yd0EV0/vnbDq1jqz6Or7qHoXRr07
r/18qQ34U+G2/c53X+x695TRbs3Z99C94JSru6vJu6xeG1p58be/xeIL2rQt
vFS5VHB2TuaoMFYL4vc5Cg550wjVOybxoPSUMPOrJ7yT4914NnKjVLd5ij9/
gHfP6d04Bl8jsVnlSabar9sED0Sa3d5ax8c90PF2CH/UxbWxrbL6u3oRq+Wo
p04etGZHXRgjEKJ2u8aYi2H94e5i/nCuzJttcWGo9IFhLm60wfnk6SMFYrS6
an+XJ3ctrllvnlb4tnPbGkhSjX0Pvk9uRrc3TpUdPIpP72/6QGrqTzdWk3Wq
5qv9dNe8kWYi8/z+4l70ajp7w1+o/st98+7UaFbr9uKh/HatzNtDxZnJlw/f
O3fzCPx0o/L9lmvXufZF12i9qa0OE1pau2mK53oXQKwPQBfMC+OpqjWNSozO
SqvqC9VQG1mF0kR1wdRHtFNH08LF+b15d3/7Nrvnb9SHW25s3S5W1uShKz0N
eHbTUBqMpaqLh3Z9cW3xwZXuyKwzVKuioJ9GUrl+W5m4y+V3WamarDhuqtXR
Qji3vnud75V3Y94PbxoL5u3uXK1FtqE+marcGLy2nh+efPmJf5feOvWnoPZu
Ds5H7o3YrIpvkTd77HY7dXGose89iR/cPj8xvYdw3uXub+vPT1GhVuXFZr2R
pMZnFsLd71P5sUYd5nD0i3cQRkteOZxHoft0qrZCcdwR76qTcW/6vVV5fqu9
1J7/fQ5HavbsRfO9LVKH83Sfb3tSK0UOZwWJrgEkz7CaoV7Fq9k9jR1P7Kn0
PODFN+NJbaZQMFq/Glq3rUmzdr8w1ftagh8o5331UjRNVa8b9yPVHGnv5Zcb
W+gvRu+n7w+adM+9es+PPebqVb651R5uxLtOdOpeX5sXr8+Ly9aN/94R+11l
2bLf7qae27t6qU+adqNzd/+su7PR22OlueiP3zXGezVPeUkTONnzZ55UdWRh
cNd/fZcGN+rTjTqpNwVT5c7ffOF+MTRi0Gsd0PHHiqk+qSrTVEPEe2gs2sCW
em1kqMNYZ0SzOmr362+syj6WI/39uW0+jO7fa0LLbvINVqovagskYod90rTR
ouqr/euZWwnnp3ZLm3+3Hxpd/3QWvV5fTNuX/qIau7wRGJNFTMTZaPw80piH
Nri6HohE4sLWHswGD9YGDzY/7S9nw7Jm3Xj9J02Q+9GdMpUeptduubKUGK6j
Vm7Hg6tX9rJ9E9j30ZP4cjV0mzeXmu3f2M4STEHnQu4rHCtWWupA8Fy7Zgfn
1Ueufx+MB4wxWUaXYqRbUk17M05f1NFSPHX6EJ+0HhY3VuOyXJn/oveq7Ss7
5pwYU/yqy4fvrhxaR8a3z117TGa+i0fUsLS77WCZ/J7MlsNbYbX1imXeETJb
r7H82Y7QbKIjLI/+ZY6Qbapi4vxMENZ+MGq31fqo5apqW2M6y3av9t1+4UKp
qojz6kvVKU+4xsv50NQrYPYc6eZe0x8vVb3SvFh2280n7tx9M827xnfu9ika
Mbxw9+pd+HPd8N+6M0PvNl8ehefXmfTds5pCef5mCQ/3I0M2ru+FqSOZD6/L
h+vXbueiV52cataIGY0aSvPc3nSEVhNczkeOUF2MPu8INxWYSTV4pcDgEZ7V
+8vLxb2GQURwrkL7ua76sN7ootI0K4us0Wd+xepnjL7OVGsK658ujMFVve9U
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
w+O5GsAEgm6Oxk+AoQnZprg5nOfwDA9opmjiqR7w9kBfwcDzMJCgGSKe7cHj
OhU8a8RukaOypXsFApi9/1n8es6HXxz51Gs6eFTeWh7wmo7/b35Np9VTF5uv
6dC2f9FrOm18BSA++txe5N8NVau1C635KC2D2/fnO8EVb/2b8vyuP/cfGLbd
eLsaSOXJzci8qPhqY7HwLi7U5XXfapjtjv1avrGueGMwdL7bU1esXz1VL5+b
F/Xl7NTpfvc8Rh7674/zcjUYTlz12m8qT85D+bkzPb14/q5cmJPm7V2l+tLi
KYQFh/eZzdP7ufdCVa/xePHqmX37tXFnXfeNh+bDpH36/iDcNrUKPT7N1Bft
+6ZmqXtfItVs2rmutttNlb4VcXlff6irt32DUUfmommol9po9DJ+frq6brcN
ddHyVEN7Vp/UTltqzG/k5XtFlYwHfTLhuqejx7eH7+3uxeR0dmkzdq8hd4cB
V+9ylf7p+33lpn/haHyN9TRr2ljoTa3TlkPzdtbyHadT0Xxv5vsRdDT4ybzN
3TD8k/M6vQ89zR1fVtmhMxg9js9fx5Xb+kjryIrxMPr4JdPfiGqv/kk51KuQ
+XGWfDnZGf7ti+d/oV8WsbxnPHzMdB3LI7154OHL9Re+Q5qWN3Qmx0zTfXZI
N7rwx16Y3F3NvXDhB9EYe449ch5Yy2NGt4IJubUmE8t24M4PQLMBN8+ZTOKv
HdYszyXm+7s1dByPSd77dgP8eEn8MW/8qE38z4BG4Qnz3yu0+FfbeAAA

-->

</rfc>
