summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortb <>2024-03-02 09:47:16 +0000
committertb <>2024-03-02 09:47:16 +0000
commit721a0919125aaef71da76adcbdb7905843d039ab (patch)
treece2dec82c7515bd7d45b198100f4e3ec4290b89b
parent14903cc3bcc1a541d0da5e166360fc3f53162f87 (diff)
downloadopenbsd-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.list1
-rw-r--r--src/lib/libcrypto/Symbols.namespace1
-rw-r--r--src/lib/libcrypto/hidden/openssl/objects.h3
-rw-r--r--src/lib/libcrypto/objects/obj_dat.c19
-rw-r--r--src/lib/libcrypto/objects/objects.h14
-rw-r--r--src/lib/libcrypto/stack/stack.c5
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
1689OBJ_NAME_do_all 1689OBJ_NAME_do_all
1690OBJ_NAME_do_all_sorted 1690OBJ_NAME_do_all_sorted
1691OBJ_add_object 1691OBJ_add_object
1692OBJ_bsearch_
1693OBJ_cleanup 1692OBJ_cleanup
1694OBJ_cmp 1693OBJ_cmp
1695OBJ_create 1694OBJ_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);
38LCRYPTO_USED(OBJ_ln2nid); 38LCRYPTO_USED(OBJ_ln2nid);
39LCRYPTO_USED(OBJ_sn2nid); 39LCRYPTO_USED(OBJ_sn2nid);
40LCRYPTO_USED(OBJ_cmp); 40LCRYPTO_USED(OBJ_cmp);
41LCRYPTO_USED(OBJ_bsearch_);
42LCRYPTO_USED(OBJ_new_nid); 41LCRYPTO_USED(OBJ_new_nid);
43LCRYPTO_USED(OBJ_add_object); 42LCRYPTO_USED(OBJ_add_object);
44LCRYPTO_USED(OBJ_create); 43LCRYPTO_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}
437LCRYPTO_ALIAS(OBJ_ln2nid); 437LCRYPTO_ALIAS(OBJ_ln2nid);
438 438
439const void *
440OBJ_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}
446LCRYPTO_ALIAS(OBJ_bsearch_);
447
448const void *
449OBJ_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
85extern "C" { 81extern "C" {
86#endif 82#endif
@@ -111,14 +107,6 @@ int OBJ_ln2nid(const char *s);
111int OBJ_sn2nid(const char *s); 107int OBJ_sn2nid(const char *s);
112int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); 108int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b);
113 109
114#if defined(LIBRESSL_INTERNAL)
115const void * OBJ_bsearch_(const void *key, const void *base, int num,
116 int size, int (*cmp)(const void *, const void *));
117const 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
122int OBJ_new_nid(int num); 110int OBJ_new_nid(int num);
123int OBJ_add_object(const ASN1_OBJECT *obj); 111int OBJ_add_object(const ASN1_OBJECT *obj);
124int OBJ_create(const char *oid, const char *sn, const char *ln); 112int 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
69int 72int
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 *)