summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-07-08 17:30:54 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-07-08 17:30:54 +0100
commitab37087c4efa784688fbb5055655de4e2a938a5c (patch)
tree947f91c9a50ed90576e11ce80aff99d4e5523a8a
parent5b7e8f3bb68b945fe4ce561812444d57a97a0dc7 (diff)
downloadrspamd-ab37087c4efa784688fbb5055655de4e2a938a5c.tar.gz
rspamd-ab37087c4efa784688fbb5055655de4e2a938a5c.zip
[Fix] Fix dkim signing
-rw-r--r--src/libserver/dkim.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/libserver/dkim.c b/src/libserver/dkim.c
index fadee81c4..16cb7f371 100644
--- a/src/libserver/dkim.c
+++ b/src/libserver/dkim.c
@@ -2104,6 +2104,24 @@ rspamd_dkim_sign (struct rspamd_task *task,
rspamd_printf_gstring (hdr, "bh=%s;b=", b64_data);
g_free (b64_data);
+ if (ctx->common.header_canon_type == DKIM_CANON_RELAXED) {
+ if (!rspamd_dkim_canonize_header_relaxed (&ctx->common,
+ hdr->str,
+ DKIM_SIGNHEADER,
+ TRUE)) {
+
+ g_string_free (hdr, TRUE);
+ return NULL;
+ }
+ }
+ else {
+ /* Will likely have issues with folding */
+ rspamd_dkim_hash_update (ctx->common.headers_hash, hdr->str,
+ hdr->len);
+ msg_debug_task ("update signature with header: %*s",
+ (gint)hdr->len, hdr->str);
+ }
+
dlen = EVP_MD_CTX_size (ctx->common.headers_hash);
EVP_DigestFinal_ex (ctx->common.headers_hash, raw_digest, NULL);
rsa_len = RSA_size (ctx->key->key_rsa);