Convert ssl3_cipher_by_id() to bsearch()
authortb <tb@openbsd.org>
Wed, 29 Nov 2023 13:39:34 +0000 (13:39 +0000)
committertb <tb@openbsd.org>
Wed, 29 Nov 2023 13:39:34 +0000 (13:39 +0000)
commite0c6c58816e0a0a119561471e172df0723461275
treeeb61868df0699ac1bef3f92ef2fc98d7bc1a6b87
parent9f01a767b73c533d4891a96507ce3be6cadae3a8
Convert ssl3_cipher_by_id() to bsearch()

This was previously the only user of OBJ_bsearch_ssl_cipher_id(), which
in turn is the one remaining user of OBJ_bsearch_() outside of libcrypto.
OBJ_bsearch_() is OpenSSL's idiosyncratic reimplementation of ANSI C89's
bsearch(). Since this used to be hidden behind macro insanity, the result
was three inscrutable layers of comparison functions.

It is much simpler and cleaner to use the standard API. Move all the code
to s3_lib.c, since it's ony used there.

In a few further diffs, OBJ_bsearch_() will be removed from libcrypto.
Unfortunately, we'll need to keep OBJ_bsearch_ex(), because it is
exposed via sk_find_ex(), which is exposed by M2Crypto...

ok jsing
lib/libssl/s3_lib.c
lib/libssl/ssl_lib.c
lib/libssl/ssl_local.h