Subject: bug#32446: Configure-time requirement for gnutls is too old

From: Eli Zaretskii <[email-masked]>
Date: Tue, 18 Sep 2018 13:28:03 +0300

> From: Noam Postavsky <[email-masked]>
> Cc: [email-masked],  [email-masked],  Gavin Smith <[email-masked]>
> Date: Mon, 17 Sep 2018 19:29:29 -0400
> 
> > I'll push it tomorrow after double checking the updated version on
> > Windows.
> 
> > +#   ifdef HAVE_GNUTLS_DIGEST_GET_NAME
> >    LOAD_DLL_FN (library, gnutls_digest_get_name);
> 
> > +#  ifdef HAVE_GNUTLS_DIGEST_GET_NAME
> > +#   define gnutls_digest_get_name fn_gnutls_digest_get_name
> 
> Fixed those two ifdef checks, and pushed to emacs-26.
> 
> [1: b5bee6bf48]: 2018-09-17 17:54:32 -0400
>   Fix build with gnutls versions 3.0 to 3.2 (Bug#32446)
>   https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=b5bee6bf489d8c54a5e39baed4d578ada54c99bf

This caused Emacs with GnuTLS 3.4.15 to crash in the test suite.  The
problem is that the test suite avoids trying AEAD-capable ciphers when
AEAD is unavailable, but one of the changes in the above made _all_
ciphers look like not AEAD-capable.

I fixed it by allowing gnutls_cipher_get_tag_size for versions above
3.2.2, as it should at least allow use to continue skipping
AEAD-capable ciphers based on this assumption, and it shouldn't affect
GnuTLS 2.x.