<?xml version="1.0" encoding="utf-8"?>
<?xml-model href="rfc7991bis.rnc"?>  <!-- Required for schema validation and schema-aware editing -->
<!-- <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> -->
<!-- This third-party XSLT can be enabled for direct transformations in XML processors, including most browsers -->
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<!-- If further character entities are required then they should be added to the DOCTYPE above.
     Use of an external entity file is not recommended. -->
<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  category="info"
  docName="draft-nurpmeso-dkim-algo-adaed25519-01"
  ipr="trust200902"
  obsoletes=""
  updates="6376"
  submissionType="IETF"
  xml:lang="en"
  version="3">
<!--
     [CHECK]  FIXME
       * category should be one of std, bcp, info, exp, historic
       * ipr should be one of trust200902, noModificationTrust200902,
         noDerivativesTrust200902, pre5378Trust200902
       * updates can be an RFC number as NNNN
       * obsoletes can be an RFC number as NNNN
-->
  <front>

   <title>DKIM Signing Algorithm AdaEd25519-SHA256</title>

   <seriesInfo name="Internet-Draft" value="draft-nurpmeso-dkim-algo-adaed25519-01"/>

    <author fullname="Steffen Nurpmeso" initials="S" role="editor" surname="Nurpmeso">
      <address><email>steffen@sdaoden.eu</email></address>
    </author>

    <date year="2024" month="10" day="31"/>

    <area>General</area>
    <workgroup>Internet Engineering Task Force</workgroup>

    <keyword>DKIM</keyword>

    <abstract><t>
      This memo adds the DKIM (RFC 6376) signing algorithm AdaEd25519-SHA256.
      It is identical to Ed25519-SHA256 (RFC 8463) except for its use of
      DKIM hash algorithm adaptivity (draft-nurpmeso-dkim-hash-adaptivity).
      Private and public keys are identical, and can be used interchangeably.
    </t></abstract>

  </front>
  <middle>

    <section>
      <name>Introduction</name>
      <t>
        Ed25519-SHA256<xref target="RFC8463"/>,
        which defines a DKIM key type for
        Ed25519<xref target="RFC8032"/>,
        became standardized in 2018,
        but has not gained much traction in the six years since its introduction.
        A survey of DKIM implementations revealed necessity for error prone
        extra code paths to implement it with existing APIs.
        In addition the
        DKIM<xref target="RFC6376"/>
        algorithm of how
        "Computing the Message Hashes"
        for
        IMF<xref target="RFC5322"/>
        messages causes Ed25519-SHA256 to create a 64-byte
        SHA-256<xref target="RFC6234"/>
        "data-hash" input for Ed25519, which is then "prehashed" with the stronger
        SHA-512<xref target="RFC6234"/>
        that expands to 128 bytes.
        AdaEd25519-SHA256 bases upon
        DKIM Hash Algorithm Adaptivity<xref target="I-D.nurpmeso-dkim-hash-adaptivity"/>
        that takes advantage of algorithm progress and digital signature API reality.
      </t>
    </section>

    <section>
      <name>AdaEd25519-SHA256</name>
      <t>
        AdaEd25519-SHA256 is identical to
        Ed25519-SHA256<xref target="RFC8463"/>
        except that it uses
        DKIM Hash Algorithm Adaptivity<xref target="I-D.nurpmeso-dkim-hash-adaptivity"/>:
        the
        DKIM<xref target="RFC6376"/> (section 3.7)
        "hash-alg"
        SHA-256<xref target="RFC6234"/>
        is only used to produce the "body-hash",
        and "sig-alg" is fed in all the input used to create the "data-hash".
        Private and public keys are identical, and can be used interchangeably.
      </t><blockquote>
        INFORMATIVE NOTE:
        Even though
        <xref target="RFC8410"/>
        defined ASN.1 Object Identifiers (OIDs) for Ed25519,
        it was considered more important to keep compatibility with actively
        used Ed25519-SHA256 keys,
        than to support ASN.1 standard means of inspecting key data blobs.
      </blockquote>

      <section>
        <name>Syntax</name>
        <t>
          The "sig-a-tag-k" ABNF definition of
          DKIM<xref target="RFC6376"/> (section 3.5),
          as well as the "key-k-tag-type" ABNF definition of
          DKIM<xref target="RFC6376"/> (section 3.6.1)
          are both extended by an entry "adaed25519".
        </t>
      </section>
    </section>

      <section anchor="IANA">
        <name>IANA Considerations</name>
        <t>
          This memo requests adding the new key type "adaed25519"
          to the "DKIM Key Type" registry.
        </t>
    </section>

    <section anchor="Security">
      <name>Security Considerations</name>
      <t>
        This specification should reduce implementation burden and complexity,
        aids hash hardening of affected algorithms to a certain extend,
        and potentially increases, dependent upon algorithm, data volume
        and API optimization efforts, processing performance.
      </t>
    </section>

  </middle>
  <back>

    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6376.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8032.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.nurpmeso-dkim-hash-adaptivity"/>
      </references>

      <references>
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5322.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6234.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8410.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8463.xml"/>
      </references>
    </references>

 </back>
</rfc>
<!-- vim:set tw=1000:s-ts-mode -->
