<?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-06" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <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-06"/>
    <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="June" day="06"/>
    <area>Security</area>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 61?>

<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 72?>

<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
(Module-Lattice-Based Digital Signature Algorithm) public key and a key
establishment certificate that contains a ML-KEM (Module-Lattice-Based
Key-Encapsulation Mechanism) public key.  For another example, a subject may
need a signature certificate that contains a ECDSA (Elliptic Curve Digital
Signature Algorithm) public key and a key establishment certificate that
contains a ECDH (Elliptic Curve Diffie-Hellman) public key.</t>
      <t>A statement of possession may be used in lieu of the usual proof of possession
mechanisms.  The statement is simply a signed assertion that the requestor of a key
establishment certificate has possession of the key establishment private key, and
that statement is signed using a signature private key that was previously shown to
be in the possession of the same certificate subject.  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"/>.  In addition, the algorithms in <xref target="RFC6955"/> do not
support key encapsulation mechanism algorithms, such as ML-KEM.  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>When the CA rejects a certificate request for any of the reasons listed
above, the CA should provide information to the requester about the reason
for the rejection to aid with diagnostic efforts.  Likewise, the CA should
log the rejection events.</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 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="RFC6268">
          <front>
            <title>Additional New ASN.1 Modules for the Cryptographic Message Syntax (CMS) and the Public Key Infrastructure Using X.509 (PKIX)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="July" year="2011"/>
            <abstract>
              <t>The Cryptographic Message Syntax (CMS) 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 some auxiliary ASN.1 modules to conform to the 2008 version of ASN.1; the 1988 ASN.1 modules remain the normative version. 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="6268"/>
          <seriesInfo name="DOI" value="10.17487/RFC6268"/>
        </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" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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 343?>

<section anchor="appendix-asn1">
      <name>ASN.1 Module</name>
      <t>This ASN.1 Module uses the conventions established by <xref target="RFC5912"/> and <xref target="RFC6268"/>.</t>
      <sourcecode type="asn.1" markers="true"><![CDATA[
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
]]></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,
Hani Ezzadeen, and
Deb Cooley
for their constructive comments.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
tMW1ua2yxrt2wdRy1NUmD3qjrS3MEQhRq1XlrMWw9nB3MX84V+eNlrQwNfrA
tBY3ev988vSRAnF6TRt8VyZ3TaFRa5yWxZZz2+zLcpV/D75Pbka3N06F7z9K
T+9vRl9uGE83doN3Ktbr4OmucSPPJO75/cW96FYN/ka80PyX+8bdqdmo1AaL
h9LbtTpvDVVnplw+fG/fzSNw3PXy91uhVRNaFx2z+aY121xo662GJZ0bHQCx
1gddsC7Mp4reMMsMnZVW1RaaqdXTCqVL2oKrjWintq6Hi/N76+7+9m12L95o
D7fC2L5drKzJQ0d+6ov8pqE0OVvTFg+t2uLaFoMrw1F4Z6hVpKJxGsml2m15
4i6X3xW1YvHSuKFVRoviuf3da38vv5vzXnhTX3Bvd+daNRqY2pOlKfX+a/P5
4clXnsR3+a1dewqq71b/fOTeSI2K9BZ5s8dOp12Thjr/3pXF/u3zE9d9COcd
4f629vwU5WpVVmzW+0kaO7oQ7r6g5zONOszhGBfvIIy2snI4j8XO06nWDKVx
W7qrTMbd6fdm+fmt+lJ9/vc5HLnRHSwa7y2JOpyn+2zbk1bOczgrSAwdIHmG
1Uztiq026Or8eDKYys99UXozn7RGAgWn9yqhfducNKr3C0u7r8b4gXLeVy4l
y9KMmnk/0qyR/l56uRkUe4vR++n7gy7fC6/e82OXu3pVbm71hxvprh2dutfX
1sXr8+KyeeO/t6VeR102B293U8/tXr3UJo1BvX13/2y4s9HbY7mx6I3fdc57
tU5FWS8KiufPPLniKMX+Xe/1Xe7faE832qTWKFqacP7mF+8XQ5OBXm2Djj+W
Le1J07iGFiLeQ3PRArbUqiNTGzKdkazKqNWrvfEa/1iKjPfnlvUwun+vFpuD
hljn5dqiukAitvknXR8tKr7Wu5655XB+Omjq8++Dh3rHP51Fr9cX09alv6gw
lzcCY7JgRJyNxs8jnXtogavrgkjELmztwQbgwVrgweanveVsWNLtG6/3pBeV
XnSnTuWH6bVbKi9lTmhr5dtx/+qVv2zdBIP76El6uRq6jZtLfeDfDJwlmIL2
hdJTBV4qN7V+0XMH1UFwXnkUevfBuM+Zk2V0KUWGLVf1N/P0RRstpVOnB/FJ
82FxY9cvS+X5L3qv6r4KZMaJcflXfT68u3NoSRlfmuAOxmTmu3hSDau82w6W
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
fNcN+022+Abx/wc01EtNqXsAAA==

-->

</rfc>
