diff options
author | Richard Levitte <levitte@openssl.org> | 2019-06-05 08:59:13 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2019-06-24 10:58:13 +0200 |
commit | a9550b74d3efdf1727005dada706cc2e12c273b8 (patch) | |
tree | 406c70436a62ae7254bed5190d0f684aac215fb2 | |
parent | 734a462e4028e2f0136d3af0b37611138e781246 (diff) |
OSSL_NAMEMAP: make names case insensitive
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/8967)
-rw-r--r-- | crypto/core_namemap.c | 6 | ||||
-rw-r--r-- | test/namemap_internal_test.c | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/crypto/core_namemap.c b/crypto/core_namemap.c index 31dc933af1..d4c9419044 100644 --- a/crypto/core_namemap.c +++ b/crypto/core_namemap.c @@ -7,8 +7,10 @@ * https://www.openssl.org/source/license.html */ +#include "e_os.h" /* strcasecmp */ #include "internal/namemap.h" #include <openssl/lhash.h> +#include "internal/lhash.h" /* openssl_lh_strcasehash */ /*- * The namenum entry @@ -39,12 +41,12 @@ struct ossl_namemap_st { static unsigned long namenum_hash(const NAMENUM_ENTRY *n) { - return OPENSSL_LH_strhash(n->name); + return openssl_lh_strcasehash(n->name); } static int namenum_cmp(const NAMENUM_ENTRY *a, const NAMENUM_ENTRY *b) { - return strcmp(a->name, b->name); + return strcasecmp(a->name, b->name); } static void namenum_free(NAMENUM_ENTRY *n) diff --git a/test/namemap_internal_test.c b/test/namemap_internal_test.c index ec3e82e11f..1aee01ed0b 100644 --- a/test/namemap_internal_test.c +++ b/test/namemap_internal_test.c @@ -13,23 +13,28 @@ #define NAME1 "name1" #define NAME2 "name2" #define ALIAS1 "alias1" +#define ALIAS1_UC "ALIAS1" static int test_namemap(OSSL_NAMEMAP *nm) { int num1 = ossl_namemap_add(nm, 0, NAME1); int num2 = ossl_namemap_add(nm, 0, NAME2); int num3 = ossl_namemap_add(nm, num1, ALIAS1); + int num4 = ossl_namemap_add(nm, 0, ALIAS1_UC); int check1 = ossl_namemap_name2num(nm, NAME1); int check2 = ossl_namemap_name2num(nm, NAME2); int check3 = ossl_namemap_name2num(nm, ALIAS1); + int check4 = ossl_namemap_name2num(nm, ALIAS1_UC); int false1 = ossl_namemap_name2num(nm, "foo"); return TEST_int_ne(num1, 0) && TEST_int_ne(num2, 0) && TEST_int_eq(num1, num3) + && TEST_int_eq(num3, num4) && TEST_int_eq(num1, check1) && TEST_int_eq(num2, check2) && TEST_int_eq(num3, check3) + && TEST_int_eq(num4, check4) && TEST_int_eq(false1, 0); } |