<?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.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-latimer-dkim2-rcpt-nd-signing-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title>DKIM2 Recipient and Next Domain Signing</title>
    <seriesInfo name="Internet-Draft" value="draft-latimer-dkim2-rcpt-nd-signing-00"/>
    <author initials="R." surname="Latimer" fullname="Roydon Latimer">
      <organization>Inveigle.net</organization>
      <address>
        <postal>
          <city>Auckland</city>
          <country>New Zealand</country>
        </postal>
        <email>cs@inveigle.net</email>
      </address>
    </author>
    <date year="2025" month="November" day="13"/>
    <area>Applications</area>
    <workgroup>dkim</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 70?>

<t>This document proposes using the DKIM2 ESMTP extension to pass a signature for each intended recipient through the SMTP session rather than splitting email at the time of signing. This approach meets the DKIM2 objective of preventing email replay, while also preserving existing SMTP delivery logic, maintaining compatibility with DKIM and avoiding multiple calls to the DKIM2 filter.</t>
      <t>Also proposed is a method of signing the next domain in the DKIM2 chain of custody independently from the DKIM2-Signature.</t>
      <t>As per RFC5321, "... each and every extension, regardless of its benefits, must be carefully scrutinized with respect to its implementation, deployment, and interoperability costs". The requirements outlined herein ensure the majority of DKIM2 logic can be implemented within filters or supporting code, with only minimal and isolated changes in SMTP code.</t>
    </abstract>
  </front>
  <middle>
    <?line 78?>

<section anchor="problems">
      <name>Introduction</name>
      <t>DomainKeys Identified Mail v2 (DKIM2) <xref target="I-D.ietf-dkim-dkim2-motivation"/> requires a signature for each recipient as a means to prevent message replay. Because recipients may not appear in the headers and the need to avoid revealing their existence if they are not disclosed, the DKIM approach of creating a single signature for each email is insufficient.</t>
      <t>This deficiency can be addressed by splitting messages prior to signing, however, that approach would lead to sub-optimal implementations. By generating a separate signature for each recipient to be passed through the SMTP session, it is possible to verify the intent to send to the final recipient while preserving existing SMTP delivery logic, without having to create multiple instances of the email prior to signing or needing to invoke the DKIM2 filter more than once.</t>
      <t>Deliveries between DKIM2-capable SMTP implementations can continue using existing delivery logic to optimize delivery based on the route. All DKIM2-specific logic can be isolated within the DKIM2 filters and the delivery phase of SMTP.</t>
      <t>Passing signatures through the SMTP session preserves the ability of systems to sign and forward, as is possible with DKIM. This is necessary for systems that for security or policy reasons must sign messages independently from other domain email, or systems that always forward email via another host or third party for delivery, including MUAs and systems sending signed transactional or notification emails.</t>
      <t>DKIM2 also proposes a method for signing the next domain handling the email. By decoupling this record from the DKIM2-Signature and signing it independently, this information can be added to the headers once routing details are known by way of a lightweight DKIM2 stub that only performs basic header hashing, signing and addition. This approach avoids additional DNS lookups attempting to relate domains to specific hosts, eliminates the need for DNS records that may leak information about how a domain routes email and only requires relays to sign using a single key (in typical configurations), regardless of how many domains (or selectors) a system provides service for.</t>
    </section>
    <section anchor="the-dkim2-service-extension">
      <name>The DKIM2 service extension</name>
      <t>The extension mechanism for SMTP is defined in Section 2.2 of the current SMTP specification <xref target="RFC5321"/>.</t>
      <t>The name of the extension is DKIM2. Servers implementing this extension advertise DKIM2 as a keyword in the response to EHLO.</t>
      <section anchor="smtp-command-line-length">
        <name>SMTP Command Line Length</name>
        <t>This extension increases the minimum SMTP server command line length of 1000 octets, in accordance with <xref target="RFC5321"/>, section 4.5.3.1.4. This is sufficient to accommodate 4096 bit RSA keys while leaving reasonable space for existing extensions. RSA keys larger than 2048 bits, the maximum DKIM verifiers are required to support, are rare.</t>
      </section>
      <section anchor="the-dkim2rcpt-rcpt-parameter">
        <name>The DKIM2RCPT RCPT parameter</name>
        <t>A DKIM2RCPT parameter is calculated for each recipient and passed between DKIM2-capable systems via the RCPT command. This value is calculated the first time an email signed and is typically retained until delivery, provided the message remains within the DKIM2 ecosystem. During email delivery or on handover to a system which isn't DKIM2-capable, this value is transferred to the email headers. The requirements for transferring this value to headers are described in <xref target="transfer-to-headers"/>.</t>
        <t>Tags defined for the DKIM2RCPT parameter are below:</t>
        <t>i=</t>
        <t>Sequence number (from 1 to N) corresponding to the current (highest) i= value, matching that of the DKIM2-Signature(s) added to the email by the current domain (REQUIRED).</t>
        <t>ABNF:</t>
        <sourcecode type="abnf"><![CDATA[
dkim2rcpt-i-tag = *DIGIT
]]></sourcecode>
        <t>s=</t>
        <t>The name of the selector used to sign the DKIM2RCPT (REQUIRED).</t>
        <t>ABNF:</t>
        <sourcecode type="abnf"><![CDATA[
dkim2rcpt-s-tag = sub-domain *("." sub-domain)
]]></sourcecode>
        <t>bcc</t>
        <t>Indicates that the recipient is included via BCC. This tag MUST be present if the recipient is not listed in the To or Cc header fields.</t>
        <t>A DKIM2-capable implementation MAY use this tag to split recipients when handing over to a system that does not support DKIM2, in lieu of performing its own header parsing.</t>
        <t>b=</t>
        <t>Signature over hash value of strings.</t>
        <t>ABNF:</t>
        <sourcecode type="abnf"><![CDATA[
dkim2rcpt-b-tag = base64-string
]]></sourcecode>
        <section anchor="creating-and-verifying-the-dkim2rcpt-signature">
          <name>Creating and verifying the DKIM2RCPT signature</name>
          <t>A signer will nominate a DKIM2-Signature added by the domain and use the corresponding key to sign the DKIM2RCPT parameter. The i= and s= tags in DKIM2RCPT shall match those of the nominated DKIM2-Signature. A signer SHOULD NOT select an RSA-signed signature if an alternative is available. A signer MAY use different keys when sending to multiple recipients.</t>
          <t>A signer MUST NOT set the DKIM2RCPT parameter when signing with an i= value greater than 1 unless it has declared itself to have exploded the message in the corresponding DKIM2-Signature or it has explicit signing authority granted by the DKIM2-NextDomain header.</t>
          <t>The following steps will be applied, in order, to generate or verify the DKIM2RCPT signature:</t>
          <ol spacing="normal" type="1"><li>
              <t>Determine the hashing algorithm to use, based on that used by the nominated DKIM2-Signature.</t>
            </li>
            <li>
              <t>Hash the chosen DKIM2-Signature header after applying "relaxed" canonicalization.</t>
            </li>
            <li>
              <t>Add the email address of the intended recipient, enclosed in angled brackets (RCPT syntax).</t>
            </li>
            <li>
              <t>Create the DKIM2RCPT record (including the DKIM2RCPT= prefix), with all required tags, leaving the value of the b= tag empty, and add the resulting record to the hash.</t>
            </li>
          </ol>
          <t>A signer would perform the following additional steps:</t>
          <ol spacing="normal" type="1"><li>
              <t>Sign the hash using the same key as the nominated DKIM2-Signature.</t>
            </li>
            <li>
              <t>Base64 encode the signature and insert the resulting string into the b= tag of the DKIM2RCPT record.</t>
            </li>
          </ol>
          <t>A verifier would:</t>
          <ol spacing="normal" type="1"><li>
              <t>Decode the base64 signature from the b= tag of the DKIM2RCPT record.</t>
            </li>
            <li>
              <t>Use the resulting signature to verify the hash.</t>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="transfer-to-headers">
        <name>Transfer to headers</name>
        <t>In order to preserve the ability to perform end-to-end verification of an email, the DKIM2RCPT parameter along with the email address it signs, must be transferred to email headers under certain conditions.</t>
        <t>A DKIM2 implementation MUST transfer DKIM2RCPT to a DKIM2-Recipient header on:</t>
        <ol spacing="normal" type="1"><li>
            <t>Handover for delivery</t>
          </li>
          <li>
            <t>Handover to systems which do not support DKIM2</t>
          </li>
          <li>
            <t>Generating a bounce message</t>
          </li>
        </ol>
        <t>A DKIM2 implementation SHOULD transfer DKIM2RCPT to a DKIM2-Recipient when on-sending with a new RCPT TO value, such as when:</t>
        <ol spacing="normal" type="1"><li>
            <t>Forwarding</t>
          </li>
          <li>
            <t>Sending to mailing list recipients</t>
          </li>
        </ol>
        <t>An implementation MAY include multiple DKIM2-Recipient headers where the DKIM2RCPT bcc tag is not specified, but MUST create a separate instance of a message for each recipient where the bcc tag is specified.</t>
        <t>Example of the resulting header:</t>
        <artwork><![CDATA[
DKIM2-Recipient: <user@example.com> DKIM2RCPT=i=1;s=selector;bcc;b=xXBUvPKVXejLi8mdvCeccD0gFlzWzBe2JM/enQ13xJKAK+VbPHSvuvKa0WEwXgdDR1nSqw2/D1NIwatzf2rRAg==
]]></artwork>
        <t>The DKIM2RCPT parameter MUST NOT be sent to any upstream host that does not advertise DKIM2 support.</t>
      </section>
    </section>
    <section anchor="the-dkim2-nextdomain-header">
      <name>The DKIM2-NextDomain header</name>
      <t>A signer will insert a DKIM2-NextDomain header to sign its intent to send email to the next domain. The next domain will be obtained by removing the hostname from the A/AAAA record referencing the host, or a statically configured value if the host is configured to relay via another server.</t>
      <t>Tags defined for the DKIM2-NextDomain header are below:</t>
      <t>i=</t>
      <t>Sequence number (from 1 to N) corresponding to the current (highest) i= value, matching that of the DKIM2-Signature(s) added to the email by the current domain (REQUIRED).</t>
      <t>ABNF:</t>
      <sourcecode type="abnf"><![CDATA[
dkim2nd-i-tag = *DIGIT
]]></sourcecode>
      <t>s=</t>
      <t>The name of the selector used to sign the DKIM2-NextDomain header (REQUIRED).</t>
      <t>ABNF:</t>
      <sourcecode type="abnf"><![CDATA[
dkim2nd-i-tag = sub-domain *("." sub-domain)
]]></sourcecode>
      <t>sa=</t>
      <t>This tag explicitly grants signing authority for the specified domain to sign on behalf of the sender. This value may only be added to a DKIM2-NextDomain signature with an i= value of 1 and may have a value of either 1 or 0 (true or false).</t>
      <t>If the sa flag is set, a signer MUST generate new DKIM2RCPT signatures for each recipient and verifier MUST accept the DKIM2-Signature as authoritative if the DKIM2-NextDomain signature can be verified.</t>
      <sourcecode type="abnf"><![CDATA[
dkim2nd-sa-tag = DIGIT
]]></sourcecode>
      <t>b=</t>
      <t>Signature over hash value of strings.</t>
      <t>ABNF:</t>
      <sourcecode type="abnf"><![CDATA[
dkim2nd-b-tag = base64-string
]]></sourcecode>
      <section anchor="creating-and-verifying-the-dkim2-nextdomain-signature">
        <name>Creating and verifying the DKIM2-NextDomain signature</name>
        <t>A signer will use a key to sign its intent to send email to the next domain. This key will be identified by the s= value from the DKIM2-NextDomain header and the d= value from any DKIM2-Signature with a corresponding i= value. The specified selector DOES NOT have to appear in a DKIM2-Signature header.</t>
        <t>A signer SHOULD NOT use an RSA key if an alternative is available.</t>
        <t>The following steps will be applied, in order, to generate or verify DKIM2-NextDomain signature:</t>
        <ol spacing="normal" type="1"><li>
            <t>Hash all instances of DKIM2-Signature with the corresponding i= after applying "relaxed" canonicalization. Headers are hashed from the bottom up.</t>
          </li>
          <li>
            <t>Create the DKIM2-NextDomain header with all required tags, leaving the value of the b= tag empty, before adding the header to the hash.</t>
          </li>
        </ol>
        <t>A signer would perform the following additional steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>Sign the hash using the nominated key.</t>
          </li>
          <li>
            <t>Base64 encode the signed hash and insert the resulting string into the b= tag of the DKIM2-NextDomain header.</t>
          </li>
        </ol>
        <t>A verifier would:</t>
        <ol spacing="normal" type="1"><li>
            <t>Decode the base64 signature from the b= tag of the DKIM2-NextDomain header.</t>
          </li>
          <li>
            <t>Use the resulting signature to verify the hash.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="tag-lists">
      <name>Tag Lists</name>
      <t>The DKIM2-NextDomain header uses the same syntax as the DKIM2-Signature as defined in <xref target="RFC6376"/>. The DKIM2RCPT parameter uses a modified form of the DKIM tag-list that is suitable for inclusion as a RCPT command parameter. All values are strings containing either plain text or "base64" text as defined in <xref target="RFC2045"/>.</t>
      <sourcecode type="abnf"><![CDATA[
dkim2rcpt-tag-list   = dkim2rcpt-tag-spec *( ";" dkim2rcpt-tag-spec ) [ ";" ]
dkim2rcpt-tag-spec   = dkim2rcpt-tag-name / (dkim2rcpt-tag-name "=" tag-value)
dkim2rcpt-tag-name   = ALPHA *(ALPHA / DIGIT)
dkim2rcpt-tag-value  = dkim2rcpt-tag-string / dkim2rcpt-tag-selector / base64-string
dkim2rcpt-tag-string = *(ALPHA / DIGIT / "-" /".")
dkim2rcpt-selector   = sub-domain *("." sub-domain)
base64-string        = *(ALPHA / DIGIT / "+" / "/") [=[=\]]
]]></sourcecode>
      <t>White space MUST NOT be present in a DKIM2RCPT parameter.</t>
      <t>Tags MUST be interpreted in a case-sensitive manner. Values MUST be processed as case sensitive unless the specific tag description of semantics specifies case insensitivity.</t>
      <t>Tags with duplicate names MUST NOT occur within a single dkim2rcpt-tag-list; if a tag name does occur more than once, the entire dkim2rcpt-tag-list is invalid.</t>
      <t>Unrecognized tags MUST be ignored.</t>
      <t>Tags that have an empty value are not the same as omitted tags. An omitted tag is treated as having the default value; A tag with an empty value explicitly designates the empty string.</t>
      <t>Tags for which no dkim2rcpt-tag-value is specified are boolean; true if included, false if omitted.</t>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>Keys used for examples</t>
      <t>Private key (PEM)</t>
      <artwork><![CDATA[
-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VwBCIEIKKki7NRhuvTKReBbyE019YTrQDvsRQZBmxFAYEY6NaE
-----END PRIVATE KEY-----
]]></artwork>
      <t>Public key (DNS)</t>
      <artwork><![CDATA[
Ipr95PB/7JnJRg5nXs9MJvADv0J6I8/f2pB/ZNt24Dg=
]]></artwork>
      <t>Delivery to a system with DKIM2 capabilities.</t>
      <artwork><![CDATA[
S: 220 smtp.nextdomain.example ESMTP
C: ehlo [127.0.0.1]
S: 250-smtp.nextdomain.example Hello [127.0.0.1] [10.0.1.24], pleased to meet you
S: 250-DKIM2
S: 250 Help
C: mail from:<sender@example.com>
S: 250 2.0.0 OK
C: rcpt to:<user@example.com> DKIM2RCPT=i=1;s=ed25519;b=I1/77hTpktZA5URnD/5WAMDnrNgtE4uzqNaq/BvFJKeEiONDD9BDTda4OeRIP1Jsi6+0RkyDVx69WGp1JrW5Bw==
S: 250 OK
C: data
S: 354 Go
C: DKIM2-NextDomain: i=1; s=ed25519; nd=nextdomain.example;
C:      b=+fBe1mhGbmishVq1nqPENvRivXX3bH5cwDOlZaK6c4npu/N5NJn/KLvoNuGysofLuXeQ/Rulk5bY
C:      U4hANn6ZBA==
C: DKIM2-Signature: i=1; a=ed25519-sha256; t=1763059498;
C:      s=ed25519; d=example.com;
C:      h=Date:Subject:From:To:Message-ID;
C:      bh=fdkeB/A0FkbVP2k4J4pNPoeWH6vqBm9+b0C3OY87Cw8=;
C:      b=kiuvOIgXlvP0lIgcRj0CXPrz5o1cpgj6Dh8ASIUz/xQMfXZCRsCyQq/Af0M7uKnLeqFlc/7M0xqP
C:      iFuSgjMXDA==
C: Date: Thu, 13 Nov 2025 18:44:58 GMT
C: Subject: Test
C: From: sender@example.com
C: To: user@example.com
C: Message-ID: <gXjs5gIAXngZjsu6@example.com>
C: Content-Type: text/plain; charset=us-ascii
C: Content-Transfer-Encoding: 7bit
C: 
C: Test
C: .
S: 250 Accepted
]]></artwork>
      <t>Delivery to a system without DKIM2 capabilities.</t>
      <artwork><![CDATA[
S: 220 smtp.nextdomain.example ESMTP
C: ehlo [127.0.0.1]
S: 250-smtp.nextdomain.example Hello [127.0.0.1] [10.0.1.24], pleased to meet you
S: 250 Help
C: mail from:<sender@example.com>
S: 250 2.0.0 OK
C: rcpt to:<user@example.com>
S: 250 OK
C: data
S: 354 Go
C: DKIM2-Recipient: <user@example.com> DKIM2RCPT=i=1;s=ed25519;b=I1/77hTpktZA5URnD/5WAMDnrNgtE4uzqNaq/BvFJKeEiONDD9BDTda4OeRIP1Jsi6+0RkyDVx69WGp1JrW5Bw==
C: DKIM2-NextDomain: i=1; s=ed25519; nd=nextdomain.example;
C:      b=+fBe1mhGbmishVq1nqPENvRivXX3bH5cwDOlZaK6c4npu/N5NJn/KLvoNuGysofLuXeQ/Rulk5bY
C:      U4hANn6ZBA==
C: DKIM2-Signature: i=1; a=ed25519-sha256; t=1763059498;
C:      s=ed25519; d=example.com;
C:      h=Date:Subject:From:To:Message-ID;
C:      bh=fdkeB/A0FkbVP2k4J4pNPoeWH6vqBm9+b0C3OY87Cw8=;
C:      b=kiuvOIgXlvP0lIgcRj0CXPrz5o1cpgj6Dh8ASIUz/xQMfXZCRsCyQq/Af0M7uKnLeqFlc/7M0xqP
C:      iFuSgjMXDA==
C: Date: Thu, 13 Nov 2025 18:44:58 GMT
C: Subject: Test
C: From: sender@example.com
C: To: user@example.com
C: Message-ID: <gXjs5gIAXngZjsu6@example.com>
C: Content-Type: text/plain; charset=us-ascii
C: Content-Transfer-Encoding: 7bit
C: 
C: Test
C: .
S: 250 Accepted
]]></artwork>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2045" target="https://www.rfc-editor.org/info/rfc2045" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2045.xml">
          <front>
            <title>Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="N. Borenstein" initials="N." surname="Borenstein"/>
            <date month="November" year="1996"/>
            <abstract>
              <t>This initial document specifies the various headers used to describe the structure of MIME messages. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2045"/>
          <seriesInfo name="DOI" value="10.17487/RFC2045"/>
        </reference>
        <reference anchor="RFC5321" target="https://www.rfc-editor.org/info/rfc5321" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5321.xml">
          <front>
            <title>Simple Mail Transfer Protocol</title>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="October" year="2008"/>
            <abstract>
              <t>This document is a specification of the basic protocol for Internet electronic mail transport. It consolidates, updates, and clarifies several previous documents, making all or parts of most of them obsolete. It covers the SMTP extension mechanisms and best practices for the contemporary Internet, but does not provide details about particular extensions. Although SMTP was designed as a mail transport and delivery protocol, this specification also contains information that is important to its use as a "mail submission" protocol for "split-UA" (User Agent) mail reading systems and mobile environments. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5321"/>
          <seriesInfo name="DOI" value="10.17487/RFC5321"/>
        </reference>
        <reference anchor="RFC6376" target="https://www.rfc-editor.org/info/rfc6376" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6376.xml">
          <front>
            <title>DomainKeys Identified Mail (DKIM) Signatures</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="T. Hansen" initials="T." role="editor" surname="Hansen"/>
            <author fullname="M. Kucherawy" initials="M." role="editor" surname="Kucherawy"/>
            <date month="September" year="2011"/>
            <abstract>
              <t>DomainKeys Identified Mail (DKIM) permits a person, role, or organization that owns the signing domain to claim some responsibility for a message by associating the domain with the message. This can be an author's organization, an operational relay, or one of their agents. DKIM separates the question of the identity of the Signer of the message from the purported author of the message. Assertion of responsibility is validated through a cryptographic signature and by querying the Signer's domain directly to retrieve the appropriate public key. Message transit from author to recipient is through relays that typically make no substantive change to the message content and thus preserve the DKIM signature.</t>
              <t>This memo obsoletes RFC 4871 and RFC 5672. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="76"/>
          <seriesInfo name="RFC" value="6376"/>
          <seriesInfo name="DOI" value="10.17487/RFC6376"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-dkim-dkim2-motivation" target="https://datatracker.ietf.org/doc/html/draft-ietf-dkim-dkim2-motivation-02" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-dkim-dkim2-motivation.xml">
          <front>
            <title>DKIM2 - signing the source and destination of every email</title>
            <author fullname="Bron Gondwana" initials="B." surname="Gondwana">
              <organization>Fastmail</organization>
            </author>
            <author fullname="Richard Clayton" initials="R." surname="Clayton">
              <organization>Yahoo</organization>
            </author>
            <author fullname="Wei Chuang" initials="W." surname="Chuang">
              <organization>Google</organization>
            </author>
            <date day="2" month="November" year="2025"/>
            <abstract>
              <t>This memo provides a rationale for building a new email accountability mechanism, based on the lessons learned from implementing the ARC experiment from RFC 8617 and other experiences from email system operators.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-dkim-dkim2-motivation-02"/>
        </reference>
      </references>
    </references>
    <?line 386?>



  </back>
  <!-- ##markdown-source:
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
PQAA

-->

</rfc>
