git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Autoreply: Remove Exim version 3 campatibility code
[exim.git]
/
src
/
src
/
dkim.c
diff --git
a/src/src/dkim.c
b/src/src/dkim.c
index a49c8d764b2749c59a0535c1dd587570a158ba3b..9e76c51a0226babfc9f66bd980cf6c63b3bb8bb1 100644
(file)
--- a/
src/src/dkim.c
+++ b/
src/src/dkim.c
@@
-2,7
+2,7
@@
* Exim - an Internet mail transport agent *
*************************************************/
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) The Exim Maintainers 2020 - 202
2
*/
+/* Copyright (c) The Exim Maintainers 2020 - 202
3
*/
/* Copyright (c) University of Cambridge, 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
/* SPDX-License-Identifier: GPL-2.0-or-later */
/* Copyright (c) University of Cambridge, 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
/* SPDX-License-Identifier: GPL-2.0-or-later */
@@
-624,6
+624,7
@@
if (dkim->dot_stuffed)
store_pool = POOL_MAIN;
store_pool = POOL_MAIN;
+GET_OPTION("dkim_domain");
if ((s = dkim->dkim_domain) && !(dkim_domain = expand_cstring(s)))
/* expansion error, do not send message. */
{ errwhen = US"dkim_domain"; goto expand_bad; }
if ((s = dkim->dkim_domain) && !(dkim_domain = expand_cstring(s)))
/* expansion error, do not send message. */
{ errwhen = US"dkim_domain"; goto expand_bad; }
@@
-652,6
+653,7
@@
if (dkim_domain)
/* Set $dkim_selector expansion variable to each selector in list,
for this domain. */
/* Set $dkim_selector expansion variable to each selector in list,
for this domain. */
+ GET_OPTION("dkim_selector");
if (!(dkim_sel = expand_string(dkim->dkim_selector)))
{ errwhen = US"dkim_selector"; goto expand_bad; }
if (!(dkim_sel = expand_string(dkim->dkim_selector)))
{ errwhen = US"dkim_selector"; goto expand_bad; }
@@
-669,6
+671,7
@@
if (dkim_domain)
/* Get canonicalization to use */
/* Get canonicalization to use */
+ GET_OPTION("dkim_canon");
dkim_canon_expanded = dkim->dkim_canon
? expand_string(dkim->dkim_canon) : US"relaxed";
if (!dkim_canon_expanded) /* expansion error, do not send message. */
dkim_canon_expanded = dkim->dkim_canon
? expand_string(dkim->dkim_canon) : US"relaxed";
if (!dkim_canon_expanded) /* expansion error, do not send message. */
@@
-686,6
+689,7
@@
if (dkim_domain)
pdkim_canon = PDKIM_CANON_RELAXED;
}
pdkim_canon = PDKIM_CANON_RELAXED;
}
+ GET_OPTION("dkim_sign_headers");
if ( dkim->dkim_sign_headers
&& !(dkim_sign_headers_expanded = expand_string(dkim->dkim_sign_headers)))
{ errwhen = US"dkim_sign_header"; goto expand_bad; }
if ( dkim->dkim_sign_headers
&& !(dkim_sign_headers_expanded = expand_string(dkim->dkim_sign_headers)))
{ errwhen = US"dkim_sign_header"; goto expand_bad; }
@@
-693,6
+697,7
@@
if (dkim_domain)
/* Get private key to use. */
/* Get private key to use. */
+ GET_OPTION("dkim_private_key");
if (!(dkim_private_key_expanded = expand_string(dkim->dkim_private_key)))
{ errwhen = US"dkim_private_key"; goto expand_bad; }
if (!(dkim_private_key_expanded = expand_string(dkim->dkim_private_key)))
{ errwhen = US"dkim_private_key"; goto expand_bad; }
@@
-707,21
+712,28
@@
if (dkim_domain)
expand_file_big_buffer(dkim_private_key_expanded)))
goto bad;
expand_file_big_buffer(dkim_private_key_expanded)))
goto bad;
+ GET_OPTION("dkim_hash");
if (!(dkim_hash_expanded = expand_string(dkim->dkim_hash)))
{ errwhen = US"dkim_hash"; goto expand_bad; }
if (!(dkim_hash_expanded = expand_string(dkim->dkim_hash)))
{ errwhen = US"dkim_hash"; goto expand_bad; }
+ GET_OPTION("dkim_identity");
if (dkim->dkim_identity)
if (!(dkim_identity_expanded = expand_string(dkim->dkim_identity)))
{ errwhen = US"dkim_identity"; goto expand_bad; }
else if (!*dkim_identity_expanded)
dkim_identity_expanded = NULL;
if (dkim->dkim_identity)
if (!(dkim_identity_expanded = expand_string(dkim->dkim_identity)))
{ errwhen = US"dkim_identity"; goto expand_bad; }
else if (!*dkim_identity_expanded)
dkim_identity_expanded = NULL;
+ GET_OPTION("dkim_timestamps");
if (dkim->dkim_timestamps)
if (!(dkim_timestamps_expanded = expand_string(dkim->dkim_timestamps)))
{ errwhen = US"dkim_timestamps"; goto expand_bad; }
else
if (dkim->dkim_timestamps)
if (!(dkim_timestamps_expanded = expand_string(dkim->dkim_timestamps)))
{ errwhen = US"dkim_timestamps"; goto expand_bad; }
else
- xval = (tval = (unsigned long) time(NULL))
- + strtoul(CCS dkim_timestamps_expanded, NULL, 10);
+ {
+ tval = (unsigned long) time(NULL);
+ xval = strtoul(CCS dkim_timestamps_expanded, NULL, 10);
+ if (xval > 0)
+ xval += tval;
+ }
if (!(sig = pdkim_init_sign(&dkim_sign_ctx, dkim_signing_domain,
dkim_signing_selector,
if (!(sig = pdkim_init_sign(&dkim_sign_ctx, dkim_signing_domain,
dkim_signing_selector,
@@
-741,6
+753,9
@@
if (dkim_domain)
if (!pdkim_set_sig_bodyhash(&dkim_sign_ctx, sig))
goto bad;
if (!pdkim_set_sig_bodyhash(&dkim_sign_ctx, sig))
goto bad;
+ dkim_signing_record = string_append_listele(dkim_signing_record, ':', dkim_signing_domain);
+ dkim_signing_record = string_append_listele(dkim_signing_record, ':', dkim_signing_selector);
+
if (!dkim_sign_ctx.sig) /* link sig to context chain */
dkim_sign_ctx.sig = sig;
else
if (!dkim_sign_ctx.sig) /* link sig to context chain */
dkim_sign_ctx.sig = sig;
else