diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2018-03-29 14:21:59 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2018-10-12 10:30:37 +0200 |
commit | 4a11812d9c47213fe1d06bb7b8136901a6b26674 (patch) | |
tree | f242c8af22873ad9974f1a4eb46061c031bda86b /lib/urls.c | |
parent | 679f3f23fb6132051f855c836aefb6aac2e62881 (diff) | |
download | gnutls-4a11812d9c47213fe1d06bb7b8136901a6b26674.tar.gz |
pkcs11 uris: the URI scheme is case insensitivetmp-uris
Makes the comparisons of the URI scheme to use c_strcasecmp
from gnulib. It also replaces various straw strcasecmp with
the gnulib variant. This ensures that comparison will be
reliable irrespective of the locale.
Resolves #590
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
Diffstat (limited to 'lib/urls.c')
-rw-r--r-- | lib/urls.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/lib/urls.c b/lib/urls.c index 69b6cfb2a2..bb47e835d7 100644 --- a/lib/urls.c +++ b/lib/urls.c @@ -23,6 +23,7 @@ #include "str.h" #include "urls.h" #include "system-keys.h" +#include <c-strcase.h> #define MAX_CUSTOM_URLS 8 @@ -46,19 +47,19 @@ unsigned gnutls_url_is_supported(const char *url) unsigned i; for (i=0;i<_gnutls_custom_urls_size;i++) { - if (strncmp(url, _gnutls_custom_urls[i].name, _gnutls_custom_urls[i].name_size) == 0) + if (c_strncasecmp(url, _gnutls_custom_urls[i].name, _gnutls_custom_urls[i].name_size) == 0) return 1; } #ifdef ENABLE_PKCS11 - if (strncmp(url, PKCS11_URL, sizeof(PKCS11_URL)-1) == 0) + if (c_strncasecmp(url, PKCS11_URL, sizeof(PKCS11_URL)-1) == 0) return 1; #endif #ifdef HAVE_TROUSERS - if (strncmp(url, TPMKEY_URL, sizeof(TPMKEY_URL)-1) == 0) + if (c_strncasecmp(url, TPMKEY_URL, sizeof(TPMKEY_URL)-1) == 0) return 1; #endif - if (strncmp(url, SYSTEM_URL, sizeof(SYSTEM_URL)-1) == 0) + if (c_strncasecmp(url, SYSTEM_URL, sizeof(SYSTEM_URL)-1) == 0) return _gnutls_system_url_is_supported(url); return 0; @@ -68,15 +69,15 @@ int _gnutls_url_is_known(const char *url) { unsigned i; - if (strncmp(url, PKCS11_URL, sizeof(PKCS11_URL)-1) == 0) + if (c_strncasecmp(url, PKCS11_URL, sizeof(PKCS11_URL)-1) == 0) return 1; - else if (strncmp(url, TPMKEY_URL, sizeof(TPMKEY_URL)-1) == 0) + else if (c_strncasecmp(url, TPMKEY_URL, sizeof(TPMKEY_URL)-1) == 0) return 1; - else if (strncmp(url, SYSTEM_URL, sizeof(SYSTEM_URL)-1) == 0) + else if (c_strncasecmp(url, SYSTEM_URL, sizeof(SYSTEM_URL)-1) == 0) return 1; else { for (i=0;i<_gnutls_custom_urls_size;i++) { - if (strncmp(url, _gnutls_custom_urls[i].name, _gnutls_custom_urls[i].name_size) == 0) + if (c_strncasecmp(url, _gnutls_custom_urls[i].name, _gnutls_custom_urls[i].name_size) == 0) return 1; } @@ -147,12 +148,12 @@ int _gnutls_get_raw_issuer(const char *url, gnutls_x509_crt_t cert, unsigned i; #ifdef ENABLE_PKCS11 - if (strncmp(url, PKCS11_URL, PKCS11_URL_SIZE) == 0) { + if (c_strncasecmp(url, PKCS11_URL, PKCS11_URL_SIZE) == 0) { return gnutls_pkcs11_get_raw_issuer(url, cert, issuer, GNUTLS_X509_FMT_DER, flags); } #endif for (i=0;i<_gnutls_custom_urls_size;i++) { - if (strncmp(url, _gnutls_custom_urls[i].name, _gnutls_custom_urls[i].name_size) == 0) { + if (c_strncasecmp(url, _gnutls_custom_urls[i].name, _gnutls_custom_urls[i].name_size) == 0) { if (_gnutls_custom_urls[i].get_issuer) { return _gnutls_custom_urls[i].get_issuer(url, cert, issuer, flags); } |