diff options
author | Daiki Ueno <ueno@gnu.org> | 2023-03-30 02:18:07 +0000 |
---|---|---|
committer | Daiki Ueno <ueno@gnu.org> | 2023-03-30 02:18:07 +0000 |
commit | b3fe5c229474a4dd0e74e955afb6bdc5d54c462d (patch) | |
tree | 17f65cb8724a843713d7eecd8b23e575398db86f | |
parent | bd638cd6bc72c35b8ce1dddb0dd950071cbe36f6 (diff) | |
parent | d7577cc531bac9687ff740b315b7b01eaca1a3ff (diff) | |
download | gnutls-b3fe5c229474a4dd0e74e955afb6bdc5d54c462d.tar.gz |
Merge branch 'wip/dueno/psk-username' into 'master'
src: print_info: prefer gnutls_psk_server_get_username2
See merge request gnutls/gnutls!1730
-rw-r--r-- | lib/psk.c | 3 | ||||
-rw-r--r-- | lib/str.h | 7 | ||||
-rw-r--r-- | lib/x509/email-verify.c | 5 | ||||
-rw-r--r-- | lib/x509/hostname-verify.c | 4 | ||||
-rw-r--r-- | src/common.c | 10 |
5 files changed, 11 insertions, 18 deletions
@@ -476,8 +476,7 @@ const char *gnutls_psk_server_get_username(gnutls_session_t session) if (info == NULL) return NULL; - if (info->username[0] != 0 - && !_gnutls_has_embedded_null(info->username, info->username_len)) + if (info->username && !memchr(info->username, '\0', info->username_len)) return info->username; return NULL; @@ -73,13 +73,6 @@ inline static unsigned _gnutls_dnsname_is_valid(const char *str, unsigned size) return 1; } -inline static bool _gnutls_has_embedded_null(const char *str, unsigned size) -{ - if (strlen(str) != size) - return true; - return false; -} - void _gnutls_str_cpy(char *dest, size_t dest_tot_size, const char *src); void _gnutls_str_cat(char *dest, size_t dest_tot_size, const char *src); diff --git a/lib/x509/email-verify.c b/lib/x509/email-verify.c index bedbcd2e20..c9ece51dcb 100644 --- a/lib/x509/email-verify.c +++ b/lib/x509/email-verify.c @@ -82,8 +82,7 @@ gnutls_x509_crt_check_email(gnutls_x509_crt_t cert, if (ret == GNUTLS_SAN_RFC822NAME) { found_rfc822name = 1; - if (_gnutls_has_embedded_null - (rfc822name, rfc822namesize)) { + if (memchr(rfc822name, '\0', rfc822namesize)) { _gnutls_debug_log ("certificate has %s with embedded null in rfc822name\n", rfc822name); @@ -132,7 +131,7 @@ gnutls_x509_crt_check_email(gnutls_x509_crt_t cert, goto cleanup; } - if (_gnutls_has_embedded_null(rfc822name, rfc822namesize)) { + if (memchr(rfc822name, '\0', rfc822namesize)) { _gnutls_debug_log ("certificate has EMAIL %s with embedded null in name\n", rfc822name); diff --git a/lib/x509/hostname-verify.c b/lib/x509/hostname-verify.c index c3c6a3e70a..fbe7f1a389 100644 --- a/lib/x509/hostname-verify.c +++ b/lib/x509/hostname-verify.c @@ -220,7 +220,7 @@ gnutls_x509_crt_check_hostname2(gnutls_x509_crt_t cert, if (ret == GNUTLS_SAN_DNSNAME) { found_dnsname = 1; - if (_gnutls_has_embedded_null(dnsname, dnsnamesize)) { + if (memchr(dnsname, '\0', dnsnamesize)) { _gnutls_debug_log ("certificate has %s with embedded null in name\n", dnsname); @@ -274,7 +274,7 @@ gnutls_x509_crt_check_hostname2(gnutls_x509_crt_t cert, goto cleanup; } - if (_gnutls_has_embedded_null(dnsname, dnsnamesize)) { + if (memchr(dnsname, '\0', dnsnamesize)) { _gnutls_debug_log ("certificate has CN %s with embedded null in name\n", dnsname); diff --git a/src/common.c b/src/common.c index 73b6949279..fbe043bd79 100644 --- a/src/common.c +++ b/src/common.c @@ -545,12 +545,14 @@ int print_info(gnutls_session_t session, int verbose, int flags) if (gnutls_psk_client_get_hint(session) != NULL) log_msg(stdout, "- PSK authentication. PSK hint '%s'\n", gnutls_psk_client_get_hint(session)); - /* This returns NULL in client side. + /* This returns an error in client side. */ - if (gnutls_psk_server_get_username(session) != NULL) + rc = gnutls_psk_server_get_username2(session, &p); + if (rc == 0) { log_msg(stdout, - "- PSK authentication. Connected as '%s'\n", - gnutls_psk_server_get_username(session)); + "- PSK authentication. Connected as '%.*s'\n", + p.size, p.data); + } if (kx == GNUTLS_KX_DHE_PSK) print_dh_info(session, "Ephemeral ", verbose); if (kx == GNUTLS_KX_ECDHE_PSK) |