summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2012-06-01tls_dh_min_bits smtp transport optionPhil Pennock
Could not find an API for use with OpenSSL, so GnuTLS only
2012-06-01Make -n combine with -bP to inhibit namesPhil Pennock
2012-06-01Add -bI:help and -bI:sievePhil Pennock
2012-05-30Revert "Lower EXIM_CLIENT_DH_MIN_BITS 1024 -> 512."exim-4_80Phil Pennock
This reverts commit 83f4c7515f3eb06dc070e78edd2694c1d088e5fd. This was not a new check! The call to gnutls_dh_set_prime_bits() was made with DH_BITS in Exim 4.77, so the only difference is that now an administrator can choose at compile time to change the lower bound. So keeping this at 1024 is not a regression and if we can't talk to them now, we couldn't before, and we shouldn't lower security by default. The reverted commit was only acceptable IF it was still better than what we had in Exim 4.77.
2012-05-30Lower EXIM_CLIENT_DH_MIN_BITS 1024 -> 512.Phil Pennock
Wolfgang Breyha saw a real-world site using 768 bits.
2012-05-28Merge openssl_disable_ssl2 branchexim-4_80_RC7Phil Pennock
2012-05-27typo fix: "overriden" -> "overridden" from Andreas MetzlerPhil Pennock
2012-05-27For DH, use standard primes from RFCsPhil Pennock
2012-05-27">" -> ">=" for EXIM_CLIENT_DH_MIN_BITS+10Phil Pennock
2012-05-27Deal with GnuTLS DH generation overshootPhil Pennock
2012-05-26teach sprint_vformat() size_t z modifier (jgh)Phil Pennock
Jeremy wrote this, mostly; I just fixed up a comment and pedantically numbered the enum values
2012-05-26fix size param for gnutls_dh_params_export_pkcs3() againPhil Pennock
2012-05-25Cyrus SASL auth: SSF retrieval was incorrect.Phil Pennock
Exim thought protection layer was required, which is not implemented. Patch from Wolfgang Breyha. Fixes bug 1254
2012-05-25It's 2012, not 1012. Noted by Jay RoumanPhil Pennock
2012-05-24Added some more .gitignore entriesNigel Metheringham
Ignore more build side effects
2012-05-24Moved pdkim declaration to satisfy older compilersNigel Metheringham
As suggested by Dennis Davis to fix an error with gcc 2.95.2 which threw the following error:- gcc pdkim.c pdkim.c: In function `pdkim_feed_finish': pdkim.c:1389: parse error before `*' pdkim.c:1390: `hdrs' undeclared (first use in this function) pdkim.c:1390: (Each undeclared identifier is reported only once pdkim.c:1390: for each function it appears in.) gmake[2]: *** [pdkim.o] Error 1 See https://lists.exim.org/lurker/message/20120524.094800.89928246.en.html
2012-05-23_ISOC99_SOURCE -> _GNU_SOURCEexim-4_80_RC5Phil Pennock
_ISOC99_SOURCE broke build on Linux (Ubuntu 11.10) because it broke <resolv.h>, <arpa/nameser.h>, etc. Their u_char and u_int usage relies upon BSD source being enabled too. So use _GNU_SOURCE.
2012-05-23Define _ISOC99_SOURCE in exim.hPhil Pennock
Done before os.h is pulled in so an OS can override it.
2012-05-23expanded comment, noting size types and API issuePhil Pennock
2012-05-22README.UPDATING: emphasise more the LDAP issuePhil Pennock
2012-05-21Enable PCRE_CONFIG by defaultPhil Pennock
With this, src/EDITME as Local/Makefile *only* needs EXIM_USER to be set and EXIM_MONITOR commented out for Exim to build on my box. I think this is a reasonable default; if there are releases of PCRE which do not include pcre-config, then on those boxes a slight change will be needed, but only where the file was already having to be edited anyway.
2012-05-21Guard SNI usage better (client-side)Phil Pennock
2012-05-21OpenBSD compat, DNS resolver libraryPhil Pennock
Report and point to fix from Dennis Davis.
2012-05-21Update binary's copyright message.Phil Pennock
Rough text per suggestion from Tony. Amended ACKNOWLEDGEMENTS briefly, but need to actually add people. Like, er, me.
2012-05-21avoid NUL in dh params filePhil Pennock
gnutls_dh_params_export_pkcs3() returns 2 different sizes. NUL observed by Janne Snabb
2012-05-21features.h; tls_validate_require_cipher: log flag & testsexim-4_80_RC3Phil Pennock
Pull in <features.h> on Linux. Switch readconf log from D_all (bug) to D_tls (though D_any would have worked). Modified runtest to handle clamped DH bits and tls_validate_require_cipher added debug logging.
2012-05-20only drop privs for TLS if still rootPhil Pennock
2012-05-20Added tls_dh_max_bits & check tls_require_ciphers early.Phil Pennock
Janne Snabb tracked down the GnuTLS 2.12 vs NSS (Thunderbird) interop problems to a hard-coded limit of 2236 bits for DH in NSS while GnuTLS was suggesting 2432 bits as normal. Added new global option tls_dh_max_bits to clamp all DH values (client or server); unexpanded integer. Default value to 2236. Apply to both GnuTLS and OpenSSL (which requires tls_dh_params for this). Tired of debugging "SMTP fails TLS" error messages in mailing-lists caused by OpenSSL library/include clashes, and of finding out I typo'd in tls_require_ciphers only at the STARTTLS handshake. During readconf, fork/drop-privs/initialise-TLS-library. In that, if tls_require_ciphers is set, then validate it. The validation child will panic if it can't initialise or if tls_require_ciphers can't be parsed, else it exits 0. If the child exits anything other than 0, the main Exim process will exit.
2012-05-20Guard TLS SNI callback define better.Phil Pennock
Guarded the callback invocation on OpenSSL having TLS extension support. Failed to guard the callback definition. Fixed. Problem spotted by Todd Lyons.
2012-05-20tls_require_ciphers must be assigned to state copyPhil Pennock
2012-05-20Typo: PRE_PRERELEASE -> PCRE_PRERELEASEPhil Pennock
Noted by Moritz Wilhelmy.
2012-05-20GnuTLS debug callback: check for existing \nPhil Pennock
2012-05-20"make makfile" -> "make makefile".Phil Pennock
Confirmed typo, rather than QNXism, by grepping tree and finding no other instances. Reported by René Berber.
2012-05-19HAVE_IPV6=yes in comment; need value!Phil Pennock
2012-05-19PRINTF_FUNCTION -> ALMOST_PRINTF.Phil Pennock
WANT_DEEPER_PRINTF_CHECKS guards ALMOST_PRINTF being PRINTF_FUNCTION. Fix some actual issues exposed when I cut down on the spam.
2012-05-19Portability to HP-UX.Phil Pennock
Report and fix from Michael Haardt. The resolver library change's assumed typedef was absent, but the underlying struct __res_state is present. Long type issues for the arithmetic changes.
2012-05-19PCRE_PRERELEASE fix, againPhil Pennock
2012-05-18Torture the English language slightly lessexim-4_80_RC2Phil Pennock
2012-05-18Fix three issues highlighted by clang analyser.Phil Pennock
Only crash-plausible issue would require the Cambridge-specific iplookup router and a misconfiguration. Report from Marcin Mirosław
2012-05-18Second SPF fix, moved to where type is correct.Phil Pennock
De-initialised "type" var in stack declaration, so a repeat of this mistake would lead to an uninitialized variable usage warning which would have blocked the previous incorrect fix from being committed.
2012-05-18Fix dcc_header content corruption.Phil Pennock
(stack memory referenced, read-only, out of scope). Patch from Wolfgang Breyha, report from Stuart Northfield.
2012-05-18SPF multiple strings join on "".Phil Pennock
Patch from Janne Snabb.
2012-05-17GnuTLS pretty much passes test suite.exim-4_80_RC1Phil Pennock
Fixed assumption that tls_certificate non-NULL in server when TLS advertised. Weakened an !S_ISREG() to an S_ISDIR() to keep the test-suite happy. Using: do { rc = gnutls_handshake(state->session); } while ((rc == GNUTLS_E_AGAIN) || (rc == GNUTLS_E_INTERRUPTED)); is contra-indicated when you expect SIGALRM to be able to break you out of the loop. A little _too_ robust there. Switching last part to: (rc == GNUTLS_E_INTERRUPTED && !sigalrm_seen) is rather more productive. Only test not passing is 2025, which makes major assumptions about cipher suites and needs to be revisited to see what it's trying to achieve. We fail the test because we successfully deliver the message without expected errors, because other ciphersuites are available, since we're no longer limited to a *very* short list embedded in the Exim code. That sort of failure I can live with.
2012-05-17CRL addition returns count of CRLs addedPhil Pennock
A couple more cert1/2 strings updated, plus some disambiguating rhubarb.
2012-05-17Support expansion variable for hi-res timestamp (bug 1172).Jeremy Harris
2012-05-17fix tls_cipher memory lifetime.Phil Pennock
Some tests had not been updated for the new cert because they were missing an X= log-line. Updated those tests now.
2012-05-17More GnuTLS cleanups/fixes.Phil Pennock
Decided "unknown (reason)" in tls_peerdn was wrong, stripped that, added replacement guard. Moved cipherbuf construction to where it makes more sense, where peerdn is extracted, so that setting the exim vars gets back closer to just some pointer switching. Fix missing failure check after handshake in client. Fix tls.c tls_ungetc() and friends by pointing watermark vars at state content. Regenerated test-suite D-H params so we don't have too small values, which was causing connection rejections. Test-suite output where new test cert info is logged (there will be a couple more, when I fix a lingering problem with tls_peerdn being unset in client log-lines). Give test-suite client command some --help.
2012-05-17GnuTLS control constants exposed to Makefile.Phil Pennock
Mostly care about EXIM_GNUTLS_LIBRARY_LOG_LEVEL for debugging. If someone screams that we kept the default dh-bits at 1024 for old GnuTLS, we can point them at EXIM_SERVER_DH_BITS_PRE2_12. The name itself will tell them to shut up and update their library if they care about security. :)
2012-05-17Copyright year updates.Phil Pennock
Updated all files modified in 2012 which contained a copyright year already, unless the range was specified as open-ended. vi $(git whatchanged --since=2012-01-01 | grep '^:100' | sed 's/^[^M]*M//' | sort -u | fgrep -v test/)
2012-05-17gnutls_require_protocols comment on 4.77 notes.Phil Pennock