]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Update ed25519 signing schema
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 18 Jun 2018 14:24:03 +0000 (15:24 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 18 Jun 2018 14:24:03 +0000 (15:24 +0100)
src/libserver/dkim.c
test/functional/configs/dkim.conf
test/functional/messages/ed25519-broken.eml
test/functional/messages/ed25519.eml

index dd4f5d183822a3d781806b4b73e7ee7c94d8c0bd..44a0b59602513e9a0547f29182da18a88a99144c 100644 (file)
@@ -275,6 +275,7 @@ rspamd_dkim_parse_signalg (rspamd_dkim_context_t * ctx,
        gsize len,
        GError **err)
 {
+       /* XXX: ugly size comparison, improve this code style some day */
        if (len == 8) {
                if (memcmp (param, "rsa-sha1", len) == 0) {
                        ctx->sig_alg = DKIM_SIGN_RSASHA1;
@@ -291,7 +292,7 @@ rspamd_dkim_parse_signalg (rspamd_dkim_context_t * ctx,
                        return TRUE;
                }
        }
-       else if (len == sizeof ("ecdsa256-sha256") - 1) {
+       else if (len == 15) {
                if (memcmp (param, "ecdsa256-sha256", len) == 0) {
                        ctx->sig_alg = DKIM_SIGN_ECDSASHA256;
                        return TRUE;
@@ -301,8 +302,8 @@ rspamd_dkim_parse_signalg (rspamd_dkim_context_t * ctx,
                        return TRUE;
                }
        }
-       else if (len == sizeof ("ed25519") - 1) {
-               if (memcmp (param, "ed25519", len) == 0) {
+       else if (len == 14) {
+               if (memcmp (param, "ed25519-sha256", len) == 0) {
                        ctx->sig_alg = DKIM_SIGN_EDDSASHA256;
                        return TRUE;
                }
index f4d7c96fd7ddea2b911baab43a27d9df23d7ee8b..4ac7bf6b500bcddf18ee1b208188a2a7a15fd354 100644 (file)
@@ -9,6 +9,16 @@ options = {
       type = txt;
       replies = ["k=ed25519; p=yi50DjK5O9pqbFpNHklsv9lqaS0ArSYu02qp1S0DW1Y="];
     },
+    {
+      name = "brisbane._domainkey.football.example.com";
+      type = txt;
+      replies = ["v=DKIM1; k=ed25519; p=11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo="];
+    },
+    {
+      name = "test._domainkey.football.example.com";
+      type = txt;
+      replies = ["v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"],
+    },
     {
       name = "dkim._domainkey.cacophony.za.org",
       type = "txt";
index 187c9191d1c8600be6293ad9f4a343653a2eba78..85426fbccee358eca58ed5c1bbc5f02bedab6862 100644 (file)
@@ -1,14 +1,26 @@
-DKIM-Signature: v=1; a=ed25519; c=relaxed/simple; d=example.com;
-    i=@example.com; q=dns/txt; s=test; t=5; h=message-id :
-    date : from : to : subject : date : from : subject;
-    bh=wE7NXSkgnx9PGiavN4OZhJztvkqPDlemV3OGuEnLwNo=;
-    b=wt7P+9DoBwcln1RKE3LN7069ZEEiSyVE/NH1YXnqnJy4JcrSCZUbeIEh
-    vXssPHelX4yNSXG9eTGTwwk5NxYqBw==
-Received: from localhost
-Message-ID: <example@example.com>
-Date: Mon, 02 Jan 2011 01:02:03 +0400
-From: Test User <test@example.com>
-To: somebody@example.com
-Subject: Testing
+DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;
+ d=football.example.com; i=@football.example.com;
+ q=dns/txt; s=brisbane; t=1528637909; h=from : to :
+ subject : date : message-id : from : subject : date;
+ bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
+ b=/gCrinpcQOoIfuHNQIbq4pgh9kyIK3AQUdt9OdqQehSwhEIug4D11Bus
+ Fa3bT3FY5OsU7ZbnKELq+eXdp1Q1Dw==
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=football.example.com; i=@football.example.com;
+ q=dns/txt; s=test; t=1528637909; h=from : to : subject :
+ date : message-id : from : subject : date;
+ bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
+ b=F45dVWDfMbQDGHJFlXUNB2HKfbCeLRyhDXgFpEL8GwpsRe0IeIixNTe3
+ DhCVlUrSjV4BwcVcOF6+FF3Zo9Rpo1tFOeS9mPYQTnGdaSGsgeefOsk2Jz
+ dA+L10TeYt9BgDfQNZtKdN1WO//KgIqXP7OdEFE4LjFYNcUxZQ4FADY+8=
+From: Joe SixPack <joe@evil.example.com>
+To: Suzie Q <suzie@shopping.example.net>
+Subject: Is dinner ready?
+Date: Fri, 11 Jul 2003 21:00:37 -0700 (PDT)
+Message-ID: <20030712040037.46341.5F8J@football.example.com>
 
-This is a test message.
+Hi.
+
+We lost the game.  Are you hungry yet?
+
+Joe.
index b3dfaaa01ec77dcdea2cd01935d6b6cd3dc6ac27..a3397f2d4efc52df80232c6140ebdd9dec2bf6b2 100644 (file)
@@ -1,14 +1,26 @@
-DKIM-Signature: v=1; a=ed25519; c=relaxed/simple; d=example.com;
-    i=@example.com; q=dns/txt; s=test; t=5; h=message-id :
-    date : from : to : subject : date : from : subject;
-    bh=wE7NXSkgnx9PGiavN4OZhJztvkqPDlemV3OGuEnLwNo=;
-    b=wt7P+9DoBwcln1RKE3LN7069ZEEiSyVE/NH1YXnqnJy4JcrSCZUbeIEh
-    vXssPHelX4yNSXG9eTGTwwk5NxYqBw==
-Received: from localhost
-Message-ID: <example@example.com>
-Date: Mon, 01 Jan 2011 01:02:03 +0400
-From: Test User <test@example.com>
-To: somebody@example.com
-Subject: Testing
+DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;
+ d=football.example.com; i=@football.example.com;
+ q=dns/txt; s=brisbane; t=1528637909; h=from : to :
+ subject : date : message-id : from : subject : date;
+ bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
+ b=/gCrinpcQOoIfuHNQIbq4pgh9kyIK3AQUdt9OdqQehSwhEIug4D11Bus
+ Fa3bT3FY5OsU7ZbnKELq+eXdp1Q1Dw==
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=football.example.com; i=@football.example.com;
+ q=dns/txt; s=test; t=1528637909; h=from : to : subject :
+ date : message-id : from : subject : date;
+ bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
+ b=F45dVWDfMbQDGHJFlXUNB2HKfbCeLRyhDXgFpEL8GwpsRe0IeIixNTe3
+ DhCVlUrSjV4BwcVcOF6+FF3Zo9Rpo1tFOeS9mPYQTnGdaSGsgeefOsk2Jz
+ dA+L10TeYt9BgDfQNZtKdN1WO//KgIqXP7OdEFE4LjFYNcUxZQ4FADY+8=
+From: Joe SixPack <joe@football.example.com>
+To: Suzie Q <suzie@shopping.example.net>
+Subject: Is dinner ready?
+Date: Fri, 11 Jul 2003 21:00:37 -0700 (PDT)
+Message-ID: <20030712040037.46341.5F8J@football.example.com>
 
-This is a test message.
+Hi.
+
+We lost the game.  Are you hungry yet?
+
+Joe.