dkim key generation unusable with bind9 (lines too long)

Issue #919 new
Jan Panoch created an issue

hello,

if i generate dkim key, it’s not possible to cut-and-paste it to bind9 domain file, because too lomg lines.

| DKIM key | Selector s20220113994, last update 2022-01-13 13:31:13. DKIM DNS record: s20220113994._domainkey.panoch.net. IN TXT "k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/B/voakj5dCn4QafAk80X9sANd7oJzjBn5JUGb+6+FM+Ozpt7ur1qJa1lvlZpMki6OoI3I39O8XT7O5sXX3E1qr5XMGz37jxGLD481UU14LmEVkYbmo/ljU+zyZPNI7KCuaQvBPwoS7svbKnqf8z4nT9s/eiI7kPo7zlXwyqFK+tyzIDfmeWmsrwa2yBev8trMu1B9z/k5kktFu2bBW/CtJdBR6ztnLmtR1j2QJzOPNou0n0OcEaVjaa+J8vTrCws+e2QsuOhV4Xw+kGcBPcNZm0Zbyd7C3NiUVWup/xdm5ITCy7zX1EH8Im6I0oVfwhiQsRvUgQF+GWgGv2KqQcQIDAQAB"
                                 2048 bit                                 1024 bit                              regenerate key delete key | | --- | --- |

can be possible to add alternate dns record splitted to multiple shorter lines? for example:

default._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoanxh3IfTu91tGrUcNlGKPzHKEkpv+vCBEnCAURvr911kMvMkPOEDlW4bfGAUxj26j3R4C+NP/fsitSuZp9Z0Iqf3oCmkTP/UMq0FKNl8rxR5cN2Vty5gIzfT8I80vIMfF7jDKHMS4ze0m1k2av74QRjMS3RH73zd9+Sp6pGWpkrnmzEpI4hJRtmjYxS/pC4rbUbjcrsGlJ+DS"
"AtszC/6Yt96ru0QVEVEBby5QoE2W2xz97tsU6X3xaCOOhMzI56evfb3Uum1tn02SUabyQM11IiP0UcW0if1zsOpDePT8yByHkJnSKpAF/GLemH4IjQuwq3Jxsv8QOus3eSpyh83wIDAQAB" ) ; ----- DKIM key default for domain.com

Comments (2)

  1. Florian Mifsud

    You just separated the txt field with apostrophes example

    selector._domainkey.DOMAIN.TLD. 0 IN TXT "k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFA" "AOCAQ8AMIIBCgKCAQEA9hM28bpccL3/Z+pkP70oSbIjSYMYnfayGJKK6PeB" "AjHOw7NtaVP+o9zgqJlkH6mcz37fmPc8CGYL/pW4TMq9" …. "12XKx/mCFxLU9tqfuKj4AxjxyL9gDJclZOqbJIxUYni" "lHmezWrahmnAfpQ8zoQ7QIDAQAB"

    And it depends on the software some do it automatically so its up to you to adapt, I think.

  2. Jan Panoch reporter

    hello,

    i know, i wrote patch and sent it to the author. The alternative presentation of the key looks like following:

    | DKIM key | Selector s20211112954, last update 2021-11-12 12:53:16. DKIM DNS record: s20211112954._domainkey.lepsiprace.cz. IN TXT ( "k=rsa; p="
    "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0XLg5QiVr+FnZLBgkH8"
    "Zu3O3XOX1bE6C2tpE81AQE0sBD8YQs7LnYjbNsqsmgfoHLsbdkDFxC51rFZ0NJVG"
    "o6FIcoTv5UKGOr6btAgpXJGK0GgCKAwDJADCCrxRbAHgCg5Ro8s7aMahHuyS32vS"
    "YKDVkV/cgLWXPJZRb1X3pdxobobSQ/PknmFVwIk1JJTFfnhmb5eDWYbIxv+O9WK0"
    "35GVkKFCWFVwsqw6JVFENJonuktw7nMdyyhPDjg1WN+pw7+LgjFT9znFp+2UL8Gs"
    "X0L7WXIqEg5kJpQXTNAUewXuXo+MqpNk6T3nid6IiLhLN6oz8u/5FbhwTD/S4CII"
    "JwIDAQAB" ) | | --- | --- |

    and patch against version 2.3.6 is here:

    diff -urN admin-old/src/Base/Entity/Domain.php admin/src/Base/Entity/Domain.php
    --- admin-old/src/Base/Entity/Domain.php    2022-01-18 10:19:42.686912310 +0100
    +++ admin/src/Base/Entity/Domain.php    2022-01-18 10:58:42.393136041 +0100
    @@ -255,10 +255,15 @@
             /** @var string $content */
             $content = preg_replace('~-----END PUBLIC KEY-----~', '', $content);

    • /** @var string $content */

    • $content = preg_replace('~\n~', '', $content);

    +        /** @var string $content $out */
    +        $out = '';
    +        foreach (explode("\n",$content) as $line) {
    +            if ($line) {
    +                $out .= "\"$line\"\n";
    +            }
    +        }

    • return trim($content);

    +        return trim($out);
         }

    public function getDKIMPrivateKey(): string
    diff -urN admin-old/templates/Base/Domain/show.html.twig admin/templates/Base/Domain/show.html.twig
    --- admin-old/templates/Base/Domain/show.html.twig    2022-01-18 10:44:50.610354884 +0100
    +++ admin/templates/Base/Domain/show.html.twig    2022-01-18 11:02:27.464050907 +0100
    @@ -48,8 +48,7 @@
                             <p></p>

    <p><strong>{{ 'domain.dkim.dns'|trans }}:</strong></p>

    • <p><pre>{{ entity.DKIMSelector }}._domainkey.{{ entity.name }}. IN TXT "<strong>k=rsa; p={{ entity.DKIMPublicKey }}</strong>"</pre></p>

    • +                        <p><pre>{{ entity.DKIMSelector }}._domainkey.{{ entity.name }}. IN TXT ( "<strong>k=rsa; p=" <br />{{ entity.DKIMPublicKey }}</strong> )</pre></p>                         <br />
                           {% endif %}
      diff -urN admin-old/templates/Pro/DomainDiagnostic/dns.html.twig admin/templates/Pro/DomainDiagnostic/dns.html.twig
      --- admin-old/templates/Pro/DomainDiagnostic/dns.html.twig    2022-01-18 11:03:04.484530246 +0100
      +++ admin/templates/Pro/DomainDiagnostic/dns.html.twig    2022-01-18 11:05:28.530395135 +0100
      @@ -57,7 +57,7 @@
                       <td class="status">
                           <span class="label-wating glyphicon glyphicon-time"></span>
                       </td>

    • <td><pre>{{ entity.DKIMSelector }}<span style="color: gray">._domainkey.{{ entity.name }}.</span> IN TXT "<strong>k=rsa; p={{ entity.DKIMPublicKey }}</strong>"</pre></td>

    +                <td><pre>{{ entity.DKIMSelector }}<span style="color: gray">._domainkey.{{ entity.name }}.</span> IN TXT ( "<strong>k=rsa; p="<br />{{ entity.DKIMPublicKey }} )</strong></pre></td>
                     <td class="result"></td>
                 </tr>
             {% endif %}

  3. Log in to comment