emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-26 716b840: gnutls_mac_get_nonce_size has been added


From: Andreas Schwab
Subject: [Emacs-diffs] emacs-26 716b840: gnutls_mac_get_nonce_size has been added in gnutls 3.3
Date: Fri, 13 Oct 2017 06:53:18 -0400 (EDT)

branch: emacs-26
commit 716b84034d10b8cae5d721173108c4c299f66ed0
Author: Andreas Schwab <address@hidden>
Commit: Andreas Schwab <address@hidden>

    gnutls_mac_get_nonce_size has been added in gnutls 3.3
    
    * src/gnutls.c (HAVE_GNUTLS_MAC_GET_NONCE_SIZE)
    [GNUTLS_VERSION_NUMBER >= 0x030300]: Define.
    (gnutls_mac_get_nonce_size): Depend on
    HAVE_GNUTLS_MAC_GET_NONCE_SIZE.
    (Fgnutls_macs): Use 0 for :mac-algorithm-noncesize if
    !HAVE_GNUTLS_MAC_GET_NONCE_SIZE.
---
 src/gnutls.c | 32 ++++++++++++++++++++++++--------
 1 file changed, 24 insertions(+), 8 deletions(-)

diff --git a/src/gnutls.c b/src/gnutls.c
index b55d1b9..36f65c4 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -26,7 +26,7 @@ along with GNU Emacs.  If not, see 
<https://www.gnu.org/licenses/>.  */
 #include "coding.h"
 #include "buffer.h"
 
-#if 0x030014 <= GNUTLS_VERSION_NUMBER
+#if GNUTLS_VERSION_NUMBER >= 0x030014
 # define HAVE_GNUTLS_X509_SYSTEM_TRUST
 #endif
 
@@ -36,10 +36,16 @@ along with GNU Emacs.  If not, see 
<https://www.gnu.org/licenses/>.  */
    The relevant fix seems to have been made in GnuTLS 3.5.1; see:
    
https://gitlab.com/gnutls/gnutls/commit/568935848dd6b82b9315d8b6c529d00e2605e03d
    So, require 3.5.1.  */
-#if 0x030501 <= GNUTLS_VERSION_NUMBER
+#if GNUTLS_VERSION_NUMBER >= 0x030501
 # define HAVE_GNUTLS_AEAD
 #endif
 
+/* gnutls_mac_get_nonce_size was added in GnuTLS 3.2.0, but was
+   exported only since 3.3.0. */
+#if GNUTLS_VERSION_NUMBER >= 0x030300
+# define HAVE_GNUTLS_MAC_GET_NONCE_SIZE
+#endif
+
 #ifdef HAVE_GNUTLS
 
 # ifdef WINDOWSNT
@@ -187,7 +193,9 @@ DEF_DLL_FN (const char *, gnutls_mac_get_name, 
(gnutls_mac_algorithm_t));
 #  ifdef HAVE_GNUTLS3
 DEF_DLL_FN (int, gnutls_rnd, (gnutls_rnd_level_t, void *, size_t));
 DEF_DLL_FN (const gnutls_mac_algorithm_t *, gnutls_mac_list, (void));
+#   ifdef HAVE_GNUTLS_MAC_GET_NONCE_SIZE
 DEF_DLL_FN (size_t, gnutls_mac_get_nonce_size, (gnutls_mac_algorithm_t));
+#   endif
 DEF_DLL_FN (size_t, gnutls_mac_get_key_size, (gnutls_mac_algorithm_t));
 DEF_DLL_FN (const gnutls_digest_algorithm_t *, gnutls_digest_list, (void));
 DEF_DLL_FN (const char *, gnutls_digest_get_name, (gnutls_digest_algorithm_t));
@@ -316,7 +324,9 @@ init_gnutls_functions (void)
 #  ifdef HAVE_GNUTLS3
   LOAD_DLL_FN (library, gnutls_rnd);
   LOAD_DLL_FN (library, gnutls_mac_list);
+#   ifdef HAVE_GNUTLS_MAC_GET_NONCE_SIZE
   LOAD_DLL_FN (library, gnutls_mac_get_nonce_size);
+#   endif
   LOAD_DLL_FN (library, gnutls_mac_get_key_size);
   LOAD_DLL_FN (library, gnutls_digest_list);
   LOAD_DLL_FN (library, gnutls_digest_get_name);
@@ -427,7 +437,9 @@ init_gnutls_functions (void)
 #  ifdef HAVE_GNUTLS3
 #  define gnutls_rnd fn_gnutls_rnd
 #  define gnutls_mac_list fn_gnutls_mac_list
-#  define gnutls_mac_get_nonce_size fn_gnutls_mac_get_nonce_size
+#   ifdef HAVE_GNUTLS_MAC_GET_NONCE_SIZE
+#    define gnutls_mac_get_nonce_size fn_gnutls_mac_get_nonce_size
+#   endif
 #  define gnutls_mac_get_key_size fn_gnutls_mac_get_key_size
 #  define gnutls_digest_list fn_gnutls_digest_list
 #  define gnutls_digest_get_name fn_gnutls_digest_get_name
@@ -442,10 +454,10 @@ init_gnutls_functions (void)
 #  define gnutls_cipher_decrypt2 fn_gnutls_cipher_decrypt2
 #  define gnutls_cipher_deinit fn_gnutls_cipher_deinit
 #   ifdef HAVE_GNUTLS_AEAD
-#  define gnutls_aead_cipher_encrypt fn_gnutls_aead_cipher_encrypt
-#  define gnutls_aead_cipher_decrypt fn_gnutls_aead_cipher_decrypt
-#  define gnutls_aead_cipher_init fn_gnutls_aead_cipher_init
-#  define gnutls_aead_cipher_deinit fn_gnutls_aead_cipher_deinit
+#    define gnutls_aead_cipher_encrypt fn_gnutls_aead_cipher_encrypt
+#    define gnutls_aead_cipher_decrypt fn_gnutls_aead_cipher_decrypt
+#    define gnutls_aead_cipher_init fn_gnutls_aead_cipher_init
+#    define gnutls_aead_cipher_deinit fn_gnutls_aead_cipher_deinit
 #   endif
 #  define gnutls_hmac_init fn_gnutls_hmac_init
 #  define gnutls_hmac_get_len fn_gnutls_hmac_get_len
@@ -2178,6 +2190,10 @@ name. */)
       /* A symbol representing the GnuTLS MAC algorithm.  */
       Lisp_Object gma_symbol = intern (gnutls_mac_get_name (gma));
 
+      size_t nonce_size = 0;
+#ifdef HAVE_GNUTLS_MAC_GET_NONCE_SIZE
+      nonce_size = gnutls_mac_get_nonce_size (gma);
+#endif
       Lisp_Object mp = listn (CONSTYPE_HEAP, 11, gma_symbol,
                              QCmac_algorithm_id, make_number (gma),
                              QCtype, Qgnutls_type_mac_algorithm,
@@ -2189,7 +2205,7 @@ name. */)
                               make_number (gnutls_mac_get_key_size (gma)),
 
                               QCmac_algorithm_noncesize,
-                              make_number (gnutls_mac_get_nonce_size (gma)));
+                             make_number (nonce_size));
       mac_algorithms = Fcons (mp, mac_algorithms);
     }
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]