Overhaul of GnuTLS code.
authorPhil Pennock <pdp@exim.org>
Wed, 16 May 2012 16:15:26 +0000 (12:15 -0400)
committerPhil Pennock <pdp@exim.org>
Wed, 16 May 2012 16:15:26 +0000 (12:15 -0400)
commit17c761988f30054827a9951761d93ffeeaad0cb7
tree10d8b048f0c7059c28a2ad5e4257a19e46d47267
parentf675bf30a2ce6242cfc7c3e3997ec5d68a1fca7a
Overhaul of GnuTLS code.

GnuTLS code re-done, using cut&paste for preservation where appropriate.

Stop using deprecated APIs.  Stop hard-coding lists of ciphers.
Use gnutls_priority_init() instead.
Turns tls_require_ciphers into a string in the GnuTLS case, not just
OpenSSL case.

Deprecate three gnutls_require_* options; now ignored but not errors.
(No warnings yet).

Added TLS SNI support.

Made the channel binding integration theoretically actually work.  I had
it guarded by an #ifdef but the value used was an enum instead.  Oops.
Fixed.

New code much more amenable to future work permitting TLS in callouts.

DH param sizes now chosen by GnuTLS maintainers, we use "normal"; that's
suddenly a lot more bits, so the saved filename was changed too.
(GNUTLS_SEC_PARAM_NORMAL).

DH param setup only done for servers now, since clients don't need/use
it.

GnuTLS a lot more robust to library negotiation using stuff we don't
support, error-ing out quickly for other authentication systems (PGP,
etc).

Renamed pseudo_random_number() to vaguely_random_number() which makes
the nature clearer.

GnuTLS now provides a vaguely_random_number() implementation, to match
OpenSSL.

Pull in <inttypes.h> to make the recent arithmetic changes compile on
MacOS.

Nuke test 2011 which related to the gnutls_require_* options now
non-functional.
28 files changed:
doc/doc-docbook/spec.xfpt
doc/doc-txt/ChangeLog
doc/doc-txt/NewStuff
doc/doc-txt/OptionLists.txt
src/OS/os.h-Darwin
src/README.UPDATING
src/exim_monitor/em_globals.c
src/src/buildconfig.c
src/src/exim.h
src/src/expand.c
src/src/functions.h
src/src/globals.c
src/src/globals.h
src/src/host.c
src/src/log.c
src/src/malware.c
src/src/readconf.c
src/src/receive.c
src/src/smtp_in.c
src/src/spool_in.c
src/src/spool_out.c
src/src/tls-gnu.c
src/src/tls-openssl.c
src/src/tls.c
src/src/transports/smtp.c
test/confs/2011 [deleted file]
test/log/2011 [deleted file]
test/scripts/2000-GnuTLS/2011 [deleted file]