diff options
author | tb <> | 2024-03-02 09:47:16 +0000 |
---|---|---|
committer | tb <> | 2024-03-02 09:47:16 +0000 |
commit | 721a0919125aaef71da76adcbdb7905843d039ab (patch) | |
tree | ce2dec82c7515bd7d45b198100f4e3ec4290b89b | |
parent | 14903cc3bcc1a541d0da5e166360fc3f53162f87 (diff) | |
download | openbsd-721a0919125aaef71da76adcbdb7905843d039ab.tar.gz openbsd-721a0919125aaef71da76adcbdb7905843d039ab.tar.bz2 openbsd-721a0919125aaef71da76adcbdb7905843d039ab.zip |
Remove OBJ_bsearch_()
The only reason this has still been part of the public API was that libssl
used it for cipher lookup. This was fixed by replacing the lookup by proper
bsearch() -- why OpenSSL felt the need to reinvent ANSI C API badly will
forever remain a mystery.
The stack code in libcrypto still uses a version of this. This should
be rewritten. It will be a bit easier once sk_find_ex() is removed.
ok jsing
-rw-r--r-- | src/lib/libcrypto/Symbols.list | 1 | ||||
-rw-r--r-- | src/lib/libcrypto/Symbols.namespace | 1 | ||||
-rw-r--r-- | src/lib/libcrypto/hidden/openssl/objects.h | 3 | ||||
-rw-r--r-- | src/lib/libcrypto/objects/obj_dat.c | 19 | ||||
-rw-r--r-- | src/lib/libcrypto/objects/objects.h | 14 | ||||
-rw-r--r-- | src/lib/libcrypto/stack/stack.c | 5 |
6 files changed, 7 insertions, 36 deletions
diff --git a/src/lib/libcrypto/Symbols.list b/src/lib/libcrypto/Symbols.list index 85ee8bf071..ee69864df5 100644 --- a/src/lib/libcrypto/Symbols.list +++ b/src/lib/libcrypto/Symbols.list | |||
@@ -1689,7 +1689,6 @@ NOTICEREF_new | |||
1689 | OBJ_NAME_do_all | 1689 | OBJ_NAME_do_all |
1690 | OBJ_NAME_do_all_sorted | 1690 | OBJ_NAME_do_all_sorted |
1691 | OBJ_add_object | 1691 | OBJ_add_object |
1692 | OBJ_bsearch_ | ||
1693 | OBJ_cleanup | 1692 | OBJ_cleanup |
1694 | OBJ_cmp | 1693 | OBJ_cmp |
1695 | OBJ_create | 1694 | OBJ_create |
diff --git a/src/lib/libcrypto/Symbols.namespace b/src/lib/libcrypto/Symbols.namespace index 936526085c..b7d9e75569 100644 --- a/src/lib/libcrypto/Symbols.namespace +++ b/src/lib/libcrypto/Symbols.namespace | |||
@@ -2408,7 +2408,6 @@ _libre_OBJ_txt2nid | |||
2408 | _libre_OBJ_ln2nid | 2408 | _libre_OBJ_ln2nid |
2409 | _libre_OBJ_sn2nid | 2409 | _libre_OBJ_sn2nid |
2410 | _libre_OBJ_cmp | 2410 | _libre_OBJ_cmp |
2411 | _libre_OBJ_bsearch_ | ||
2412 | _libre_OBJ_new_nid | 2411 | _libre_OBJ_new_nid |
2413 | _libre_OBJ_add_object | 2412 | _libre_OBJ_add_object |
2414 | _libre_OBJ_create | 2413 | _libre_OBJ_create |
diff --git a/src/lib/libcrypto/hidden/openssl/objects.h b/src/lib/libcrypto/hidden/openssl/objects.h index 80c0644137..5b39cd8215 100644 --- a/src/lib/libcrypto/hidden/openssl/objects.h +++ b/src/lib/libcrypto/hidden/openssl/objects.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: objects.h,v 1.3 2024/03/02 09:41:02 tb Exp $ */ | 1 | /* $OpenBSD: objects.h,v 1.4 2024/03/02 09:47:16 tb Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2023 Bob Beck <beck@openbsd.org> | 3 | * Copyright (c) 2023 Bob Beck <beck@openbsd.org> |
4 | * | 4 | * |
@@ -38,7 +38,6 @@ LCRYPTO_USED(OBJ_txt2nid); | |||
38 | LCRYPTO_USED(OBJ_ln2nid); | 38 | LCRYPTO_USED(OBJ_ln2nid); |
39 | LCRYPTO_USED(OBJ_sn2nid); | 39 | LCRYPTO_USED(OBJ_sn2nid); |
40 | LCRYPTO_USED(OBJ_cmp); | 40 | LCRYPTO_USED(OBJ_cmp); |
41 | LCRYPTO_USED(OBJ_bsearch_); | ||
42 | LCRYPTO_USED(OBJ_new_nid); | 41 | LCRYPTO_USED(OBJ_new_nid); |
43 | LCRYPTO_USED(OBJ_add_object); | 42 | LCRYPTO_USED(OBJ_add_object); |
44 | LCRYPTO_USED(OBJ_create); | 43 | LCRYPTO_USED(OBJ_create); |
diff --git a/src/lib/libcrypto/objects/obj_dat.c b/src/lib/libcrypto/objects/obj_dat.c index 1719cc73e2..bfa9ba3cc8 100644 --- a/src/lib/libcrypto/objects/obj_dat.c +++ b/src/lib/libcrypto/objects/obj_dat.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: obj_dat.c,v 1.86 2024/02/26 15:00:30 tb Exp $ */ | 1 | /* $OpenBSD: obj_dat.c,v 1.87 2024/03/02 09:47:16 tb Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -436,23 +436,6 @@ OBJ_ln2nid(const char *ln) | |||
436 | } | 436 | } |
437 | LCRYPTO_ALIAS(OBJ_ln2nid); | 437 | LCRYPTO_ALIAS(OBJ_ln2nid); |
438 | 438 | ||
439 | const void * | ||
440 | OBJ_bsearch_(const void *key, const void *base, int num, int size, | ||
441 | int (*cmp)(const void *, const void *)) | ||
442 | { | ||
443 | OBJerror(ERR_R_DISABLED); | ||
444 | return NULL; | ||
445 | } | ||
446 | LCRYPTO_ALIAS(OBJ_bsearch_); | ||
447 | |||
448 | const void * | ||
449 | OBJ_bsearch_ex_(const void *key, const void *base_, int num, int size, | ||
450 | int (*cmp)(const void *, const void *), int flags) | ||
451 | { | ||
452 | OBJerror(ERR_R_DISABLED); | ||
453 | return NULL; | ||
454 | } | ||
455 | |||
456 | /* Convert an object name into an ASN1_OBJECT | 439 | /* Convert an object name into an ASN1_OBJECT |
457 | * if "noname" is not set then search for short and long names first. | 440 | * if "noname" is not set then search for short and long names first. |
458 | * This will convert the "dotted" form into an object: unlike OBJ_txt2nid | 441 | * This will convert the "dotted" form into an object: unlike OBJ_txt2nid |
diff --git a/src/lib/libcrypto/objects/objects.h b/src/lib/libcrypto/objects/objects.h index 2d3aa986d5..ef6fc233bf 100644 --- a/src/lib/libcrypto/objects/objects.h +++ b/src/lib/libcrypto/objects/objects.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: objects.h,v 1.25 2024/03/02 09:43:10 tb Exp $ */ | 1 | /* $OpenBSD: objects.h,v 1.26 2024/03/02 09:47:16 tb Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -77,10 +77,6 @@ | |||
77 | 77 | ||
78 | #define OBJ_NAME_ALIAS 0x8000 | 78 | #define OBJ_NAME_ALIAS 0x8000 |
79 | 79 | ||
80 | #define OBJ_BSEARCH_VALUE_ON_NOMATCH 0x01 | ||
81 | #define OBJ_BSEARCH_FIRST_VALUE_ON_MATCH 0x02 | ||
82 | |||
83 | |||
84 | #ifdef __cplusplus | 80 | #ifdef __cplusplus |
85 | extern "C" { | 81 | extern "C" { |
86 | #endif | 82 | #endif |
@@ -111,14 +107,6 @@ int OBJ_ln2nid(const char *s); | |||
111 | int OBJ_sn2nid(const char *s); | 107 | int OBJ_sn2nid(const char *s); |
112 | int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); | 108 | int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); |
113 | 109 | ||
114 | #if defined(LIBRESSL_INTERNAL) | ||
115 | const void * OBJ_bsearch_(const void *key, const void *base, int num, | ||
116 | int size, int (*cmp)(const void *, const void *)); | ||
117 | const void * OBJ_bsearch_ex_(const void *key, const void *base, int num, | ||
118 | int size, int (*cmp)(const void *, const void *), | ||
119 | int flags); | ||
120 | #endif | ||
121 | |||
122 | int OBJ_new_nid(int num); | 110 | int OBJ_new_nid(int num); |
123 | int OBJ_add_object(const ASN1_OBJECT *obj); | 111 | int OBJ_add_object(const ASN1_OBJECT *obj); |
124 | int OBJ_create(const char *oid, const char *sn, const char *ln); | 112 | int OBJ_create(const char *oid, const char *sn, const char *ln); |
diff --git a/src/lib/libcrypto/stack/stack.c b/src/lib/libcrypto/stack/stack.c index 818e738447..86117f07a7 100644 --- a/src/lib/libcrypto/stack/stack.c +++ b/src/lib/libcrypto/stack/stack.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: stack.c,v 1.25 2024/02/26 15:00:30 tb Exp $ */ | 1 | /* $OpenBSD: stack.c,v 1.26 2024/03/02 09:47:16 tb Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -66,6 +66,9 @@ | |||
66 | #undef MIN_NODES | 66 | #undef MIN_NODES |
67 | #define MIN_NODES 4 | 67 | #define MIN_NODES 4 |
68 | 68 | ||
69 | #define OBJ_BSEARCH_VALUE_ON_NOMATCH 0x01 | ||
70 | #define OBJ_BSEARCH_FIRST_VALUE_ON_MATCH 0x02 | ||
71 | |||
69 | int | 72 | int |
70 | (*sk_set_cmp_func(_STACK *sk, int (*c)(const void *, const void *)))( | 73 | (*sk_set_cmp_func(_STACK *sk, int (*c)(const void *, const void *)))( |
71 | const void *, const void *) | 74 | const void *, const void *) |