aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Zlatanov2013-10-11 09:47:35 -0400
committerTed Zlatanov2013-10-11 09:47:35 -0400
commite1f9f9e3d8abc2ce9ce9cb7fc89222ca6e3f3baa (patch)
treef789308fdad6eeddaa260681c65cd775fb142f1e
parent7d563e363c72828b9b1bbb0181be6a36643ce7af (diff)
downloademacs-e1f9f9e3d8abc2ce9ce9cb7fc89222ca6e3f3baa.tar.gz
emacs-e1f9f9e3d8abc2ce9ce9cb7fc89222ca6e3f3baa.zip
Support GnuTLS v3 and set up its audit logging properly.
* configure.ac: Define HAVE_GNUTLS3 if GnuTLS v3 is found. * src/gnutls.c (gnutls_audit_log_function): Add function for GnuTLS audit logging (only used with GnuTLS 3.x) and enable it.
-rw-r--r--ChangeLog4
-rw-r--r--configure.ac6
-rw-r--r--src/ChangeLog5
-rw-r--r--src/gnutls.c23
4 files changed, 38 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 6b783060bf9..bb16aea8cc7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
12013-10-11 Teodor Zlatanov <tzz@lifelogs.com>
2
3 * configure.ac: Define HAVE_GNUTLS3 if GnuTLS v3 is found.
4
12013-10-10 Barry Fishman <barry_fishman@acm.org> (tiny change) 52013-10-10 Barry Fishman <barry_fishman@acm.org> (tiny change)
2 6
3 * configure.ac: Update for giflib 5. (Bug#15531) 7 * configure.ac: Update for giflib 5. (Bug#15531)
diff --git a/configure.ac b/configure.ac
index 3bb1ee1e954..fd0c2d9b92c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2422,12 +2422,18 @@ fi
2422AC_SUBST(LIBSELINUX_LIBS) 2422AC_SUBST(LIBSELINUX_LIBS)
2423 2423
2424HAVE_GNUTLS=no 2424HAVE_GNUTLS=no
2425HAVE_GNUTLS3=no
2425if test "${with_gnutls}" = "yes" ; then 2426if test "${with_gnutls}" = "yes" ; then
2426 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.6.6], HAVE_GNUTLS=yes, HAVE_GNUTLS=no) 2427 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.6.6], HAVE_GNUTLS=yes, HAVE_GNUTLS=no)
2428 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 3.0.0], HAVE_GNUTLS3=yes, HAVE_GNUTLS3=no)
2427 if test "${HAVE_GNUTLS}" = "yes"; then 2429 if test "${HAVE_GNUTLS}" = "yes"; then
2428 AC_DEFINE(HAVE_GNUTLS, 1, [Define if using GnuTLS.]) 2430 AC_DEFINE(HAVE_GNUTLS, 1, [Define if using GnuTLS.])
2429 fi 2431 fi
2430 2432
2433 if test "${HAVE_GNUTLS3}" = "yes"; then
2434 AC_DEFINE(HAVE_GNUTLS3, 1, [Define if using GnuTLS v3.])
2435 fi
2436
2431 # Windows loads GnuTLS dynamically 2437 # Windows loads GnuTLS dynamically
2432 if test "${opsys}" = "mingw32"; then 2438 if test "${opsys}" = "mingw32"; then
2433 LIBGNUTLS_LIBS= 2439 LIBGNUTLS_LIBS=
diff --git a/src/ChangeLog b/src/ChangeLog
index 74bb2a06cb9..3d92420e7cd 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12013-10-11 Teodor Zlatanov <tzz@lifelogs.com>
2
3 * gnutls.c (gnutls_audit_log_function): Add function for GnuTLS
4 audit logging (only used with GnuTLS 3.x) and enable it.
5
12013-10-11 Dmitry Antipov <dmantipov@yandex.ru> 62013-10-11 Dmitry Antipov <dmantipov@yandex.ru>
2 7
3 * dispnew.c (redraw_frame): Remove useless #ifdef because 8 * dispnew.c (redraw_frame): Remove useless #ifdef because
diff --git a/src/gnutls.c b/src/gnutls.c
index db0a6dac01c..2157d555053 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -55,6 +55,7 @@ static Lisp_Object QCgnutls_bootprop_verify_hostname_error;
55static Lisp_Object QCgnutls_bootprop_callbacks_verify; 55static Lisp_Object QCgnutls_bootprop_callbacks_verify;
56 56
57static void gnutls_log_function (int, const char *); 57static void gnutls_log_function (int, const char *);
58static void gnutls_audit_log_function (gnutls_session_t, const char *);
58static void gnutls_log_function2 (int, const char*, const char*); 59static void gnutls_log_function2 (int, const char*, const char*);
59 60
60 61
@@ -108,6 +109,9 @@ DEF_GNUTLS_FN (void, gnutls_dh_set_prime_bits,
108DEF_GNUTLS_FN (int, gnutls_error_is_fatal, (int)); 109DEF_GNUTLS_FN (int, gnutls_error_is_fatal, (int));
109DEF_GNUTLS_FN (int, gnutls_global_init, (void)); 110DEF_GNUTLS_FN (int, gnutls_global_init, (void));
110DEF_GNUTLS_FN (void, gnutls_global_set_log_function, (gnutls_log_func)); 111DEF_GNUTLS_FN (void, gnutls_global_set_log_function, (gnutls_log_func));
112#ifdef HAVE_GNUTLS3
113DEF_GNUTLS_FN (void, gnutls_global_set_audit_log_function, (gnutls_audit_log_func));
114#endif
111DEF_GNUTLS_FN (void, gnutls_global_set_log_level, (int)); 115DEF_GNUTLS_FN (void, gnutls_global_set_log_level, (int));
112DEF_GNUTLS_FN (void, gnutls_global_set_mem_functions, 116DEF_GNUTLS_FN (void, gnutls_global_set_mem_functions,
113 (gnutls_alloc_function, gnutls_alloc_function, 117 (gnutls_alloc_function, gnutls_alloc_function,
@@ -173,6 +177,9 @@ init_gnutls_functions (void)
173 LOAD_GNUTLS_FN (library, gnutls_error_is_fatal); 177 LOAD_GNUTLS_FN (library, gnutls_error_is_fatal);
174 LOAD_GNUTLS_FN (library, gnutls_global_init); 178 LOAD_GNUTLS_FN (library, gnutls_global_init);
175 LOAD_GNUTLS_FN (library, gnutls_global_set_log_function); 179 LOAD_GNUTLS_FN (library, gnutls_global_set_log_function);
180#ifdef HAVE_GNUTLS3
181 LOAD_GNUTLS_FN (library, gnutls_global_set_audit_log_function);
182#endif
176 LOAD_GNUTLS_FN (library, gnutls_global_set_log_level); 183 LOAD_GNUTLS_FN (library, gnutls_global_set_log_level);
177 LOAD_GNUTLS_FN (library, gnutls_global_set_mem_functions); 184 LOAD_GNUTLS_FN (library, gnutls_global_set_mem_functions);
178 LOAD_GNUTLS_FN (library, gnutls_handshake); 185 LOAD_GNUTLS_FN (library, gnutls_handshake);
@@ -230,6 +237,9 @@ init_gnutls_functions (void)
230#define fn_gnutls_error_is_fatal gnutls_error_is_fatal 237#define fn_gnutls_error_is_fatal gnutls_error_is_fatal
231#define fn_gnutls_global_init gnutls_global_init 238#define fn_gnutls_global_init gnutls_global_init
232#define fn_gnutls_global_set_log_function gnutls_global_set_log_function 239#define fn_gnutls_global_set_log_function gnutls_global_set_log_function
240#ifdef HAVE_GNUTLS3
241#define fn_gnutls_global_set_audit_log_function gnutls_global_set_audit_log_function
242#endif
233#define fn_gnutls_global_set_log_level gnutls_global_set_log_level 243#define fn_gnutls_global_set_log_level gnutls_global_set_log_level
234#define fn_gnutls_global_set_mem_functions gnutls_global_set_mem_functions 244#define fn_gnutls_global_set_mem_functions gnutls_global_set_mem_functions
235#define fn_gnutls_handshake gnutls_handshake 245#define fn_gnutls_handshake gnutls_handshake
@@ -249,6 +259,16 @@ init_gnutls_functions (void)
249#endif /* !WINDOWSNT */ 259#endif /* !WINDOWSNT */
250 260
251 261
262/* Function to log a simple audit message. */
263static void
264gnutls_audit_log_function (gnutls_session_t session, const char* string)
265{
266 if (global_gnutls_log_level >= 1)
267 {
268 message ("gnutls.c: [audit] %s", string);
269 }
270}
271
252/* Function to log a simple message. */ 272/* Function to log a simple message. */
253static void 273static void
254gnutls_log_function (int level, const char* string) 274gnutls_log_function (int level, const char* string)
@@ -797,6 +817,9 @@ one trustfile (usually a CA bundle). */)
797 if (TYPE_RANGED_INTEGERP (int, loglevel)) 817 if (TYPE_RANGED_INTEGERP (int, loglevel))
798 { 818 {
799 fn_gnutls_global_set_log_function (gnutls_log_function); 819 fn_gnutls_global_set_log_function (gnutls_log_function);
820#ifdef HAVE_GNUTLS3
821 fn_gnutls_global_set_audit_log_function (gnutls_audit_log_function);
822#endif
800 fn_gnutls_global_set_log_level (XINT (loglevel)); 823 fn_gnutls_global_set_log_level (XINT (loglevel));
801 max_log_level = XINT (loglevel); 824 max_log_level = XINT (loglevel);
802 XPROCESS (proc)->gnutls_log_level = max_log_level; 825 XPROCESS (proc)->gnutls_log_level = max_log_level;