diff options
author | Daiki Ueno <dueno@redhat.com> | 2020-03-22 10:44:51 +0100 |
---|---|---|
committer | Daiki Ueno <dueno@redhat.com> | 2020-03-22 17:30:58 +0100 |
commit | 313f58a4772b905091e1506b0880e2c2014eeb28 (patch) | |
tree | 9096537932761bcdf4611763c4be4ddd2124bd75 | |
parent | 2bc4d444a309278a3aaea6eaeb05ce48ac99d3c1 (diff) | |
download | gnutls-313f58a4772b905091e1506b0880e2c2014eeb28.tar.gz |
gnutls_session_get_keylog_function: new functiontmp-get-keylog-func
This adds a way to retrieve the keylog function set by
gnutls_session_set_keylog_function() to allow application protocols to
implement custom logging facility.
Signed-off-by: Daiki Ueno <dueno@redhat.com>
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | devel/libgnutls-latest-x86_64.abi | 1 | ||||
-rw-r--r-- | devel/symbols.last | 1 | ||||
-rw-r--r-- | doc/Makefile.am | 2 | ||||
-rw-r--r-- | doc/manpages/Makefile.am | 1 | ||||
-rw-r--r-- | lib/includes/gnutls/gnutls.h.in | 1 | ||||
-rw-r--r-- | lib/kx.c | 17 | ||||
-rw-r--r-- | lib/libgnutls.map | 1 | ||||
-rw-r--r-- | tests/keylog-func.c | 2 |
9 files changed, 27 insertions, 0 deletions
@@ -16,6 +16,7 @@ See the end for copying conditions. gnutls_hkdf_extract: Added gnutls_hkdf_expand: Added gnutls_pbkdf2: Added +gnutls_session_get_keylog_function: Added gnutls_session_set_keylog_function: Added gnutls_prf_hash_get: Added diff --git a/devel/libgnutls-latest-x86_64.abi b/devel/libgnutls-latest-x86_64.abi index 76552ab037..c4dfd8fdc5 100644 --- a/devel/libgnutls-latest-x86_64.abi +++ b/devel/libgnutls-latest-x86_64.abi @@ -788,6 +788,7 @@ <elf-symbol name='gnutls_session_get_flags' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='gnutls_session_get_id2' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='gnutls_session_get_id' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='gnutls_session_get_keylog_function' version='GNUTLS_3_6_13' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='gnutls_session_get_master_secret' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='gnutls_session_get_ptr' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> <elf-symbol name='gnutls_session_get_random' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> diff --git a/devel/symbols.last b/devel/symbols.last index 70ef6b3f18..6cdccf594e 100644 --- a/devel/symbols.last +++ b/devel/symbols.last @@ -756,6 +756,7 @@ gnutls_session_get_desc@GNUTLS_3_4 gnutls_session_get_flags@GNUTLS_3_4 gnutls_session_get_id2@GNUTLS_3_4 gnutls_session_get_id@GNUTLS_3_4 +gnutls_session_get_keylog_function@GNUTLS_3_6_13 gnutls_session_get_master_secret@GNUTLS_3_4 gnutls_session_get_ptr@GNUTLS_3_4 gnutls_session_get_random@GNUTLS_3_4 diff --git a/doc/Makefile.am b/doc/Makefile.am index dd962d6a78..bd383f5ca6 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1931,6 +1931,8 @@ FUNCS += functions/gnutls_session_get_id FUNCS += functions/gnutls_session_get_id.short FUNCS += functions/gnutls_session_get_id2 FUNCS += functions/gnutls_session_get_id2.short +FUNCS += functions/gnutls_session_get_keylog_function +FUNCS += functions/gnutls_session_get_keylog_function.short FUNCS += functions/gnutls_session_get_master_secret FUNCS += functions/gnutls_session_get_master_secret.short FUNCS += functions/gnutls_session_get_ptr diff --git a/doc/manpages/Makefile.am b/doc/manpages/Makefile.am index 6d381d8bd0..4cf33875ae 100644 --- a/doc/manpages/Makefile.am +++ b/doc/manpages/Makefile.am @@ -767,6 +767,7 @@ APIMANS += gnutls_session_get_desc.3 APIMANS += gnutls_session_get_flags.3 APIMANS += gnutls_session_get_id.3 APIMANS += gnutls_session_get_id2.3 +APIMANS += gnutls_session_get_keylog_function.3 APIMANS += gnutls_session_get_master_secret.3 APIMANS += gnutls_session_get_ptr.3 APIMANS += gnutls_session_get_random.3 diff --git a/lib/includes/gnutls/gnutls.h.in b/lib/includes/gnutls/gnutls.h.in index b0832a9bdd..d46bb04491 100644 --- a/lib/includes/gnutls/gnutls.h.in +++ b/lib/includes/gnutls/gnutls.h.in @@ -2312,6 +2312,7 @@ void gnutls_global_set_log_level(int level); typedef int (*gnutls_keylog_func) (gnutls_session_t session, const char *label, const gnutls_datum_t *secret); +gnutls_keylog_func gnutls_session_get_keylog_function(const gnutls_session_t session); void gnutls_session_set_keylog_function(gnutls_session_t session, gnutls_keylog_func func); @@ -71,6 +71,23 @@ int _gnutls_generate_master(gnutls_session_t session, int keep_premaster) } /** + * gnutls_session_get_keylog_function: + * @session: is #gnutls_session_t type + * + * This function will return the callback function set using + * gnutls_session_set_keylog_function(). + * + * Returns: The function set or %NULL otherwise. + * + * Since: 3.6.13 + */ +gnutls_keylog_func +gnutls_session_get_keylog_function(const gnutls_session_t session) +{ + return session->internals.keylog_func; +} + +/** * gnutls_session_set_keylog_function: * @session: is #gnutls_session_t type * @func: is the function to be called diff --git a/lib/libgnutls.map b/lib/libgnutls.map index 3cc321beb8..97fc97f152 100644 --- a/lib/libgnutls.map +++ b/lib/libgnutls.map @@ -1315,6 +1315,7 @@ GNUTLS_3_6_13 gnutls_hkdf_extract; gnutls_hkdf_expand; gnutls_pbkdf2; + gnutls_session_get_keylog_function; gnutls_session_set_keylog_function; gnutls_prf_hash_get; } GNUTLS_3_6_12; diff --git a/tests/keylog-func.c b/tests/keylog-func.c index 8c4d321142..4350698e6b 100644 --- a/tests/keylog-func.c +++ b/tests/keylog-func.c @@ -26,6 +26,7 @@ #include <stdio.h> #include <stdlib.h> +#include <assert.h> #if !defined(__linux__) || !defined(__GNUC__) @@ -141,6 +142,7 @@ static void client(int fd, const char *prio, unsigned int exp_call_count) gnutls_transport_set_int(session, fd); gnutls_session_set_keylog_function(session, keylog_func); + assert(gnutls_session_get_keylog_function(session) == keylog_func); /* Perform the TLS handshake */ |