From 96acdaae8b1dc1839052df3b97526adfca8f64f5 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Mon, 18 Jun 2018 15:24:03 +0100 Subject: [PATCH] [Fix] Update ed25519 signing schema --- src/libserver/dkim.c | 7 ++-- test/functional/configs/dkim.conf | 10 ++++++ test/functional/messages/ed25519-broken.eml | 38 ++++++++++++++------- test/functional/messages/ed25519.eml | 38 ++++++++++++++------- 4 files changed, 64 insertions(+), 29 deletions(-) diff --git a/src/libserver/dkim.c b/src/libserver/dkim.c index dd4f5d1838..44a0b59602 100644 --- a/src/libserver/dkim.c +++ b/src/libserver/dkim.c @@ -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; } diff --git a/test/functional/configs/dkim.conf b/test/functional/configs/dkim.conf index f4d7c96fd7..4ac7bf6b50 100644 --- a/test/functional/configs/dkim.conf +++ b/test/functional/configs/dkim.conf @@ -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"; diff --git a/test/functional/messages/ed25519-broken.eml b/test/functional/messages/ed25519-broken.eml index 187c9191d1..85426fbcce 100644 --- a/test/functional/messages/ed25519-broken.eml +++ b/test/functional/messages/ed25519-broken.eml @@ -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: -Date: Mon, 02 Jan 2011 01:02:03 +0400 -From: Test User -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 +To: Suzie Q +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. diff --git a/test/functional/messages/ed25519.eml b/test/functional/messages/ed25519.eml index b3dfaaa01e..a3397f2d4e 100644 --- a/test/functional/messages/ed25519.eml +++ b/test/functional/messages/ed25519.eml @@ -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: -Date: Mon, 01 Jan 2011 01:02:03 +0400 -From: Test User -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 +To: Suzie Q +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. -- 2.47.3