summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/evp/evp_names.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Use err_local.h rather than err.h in most placestb2025-05-101-2/+1
| | | | ok jsing
* Nuke the whrlpool (named after the galaxy) from orbittb2024-08-311-6/+1
| | | | | | | It's just gross. Only used by a popular disk encryption utility on an all-too-popular OS one or two decades back. ok beck jsing
* typo: regresss -> regresstb2024-07-291-2/+2
|
* Hide public symbols in evp.hbeck2024-04-091-1/+8
| | | | | | largely mechanically done by the guentherizer 9000 ok tb@
* Restore EVP_get_cipherbyname(NULL)/EVP_get_digestbyname(NULL) handlingjca2024-03-241-1/+7
| | | | | | | | | The previous implementation used the now defunct OBJ_NAME_get() which bailed out when passed a NULL argument. Difference spotted by the regress tests in ports/net/openvpn (regular openvpn use is fine but openvpn --show-ciphers/--show-digests crashes). ok tb@
* Remove OPENSSL_NO_* #ifdefs from evp_names.ctb2024-03-241-145/+1
| | | | discussed with jsing
* Bye bye gost, bye, bye turdinesstb2024-03-241-66/+1
| | | | ok beck
* Remove RC4-HMAC-MD5 and AES-{128,256}-CBC-HMAC-SHA-1tb2024-03-021-25/+1
| | | | | | | "Stitched" mode AEADs were removed from libssl a long time ago. Nothing uses these CIPHERs anymore. ok jsing
* Switch name member of OBJ_NAME to const void *tb2024-03-021-3/+3
| | | | | | Because this is the type it should have had from the get go. ok jsing
* Remove unused public OBJ_NAME_* APItb2024-03-021-53/+1
| | | | | | | This functionality has been disabled for a few months. Now it is high time to garbage collect it. ok jsing
* Remove EVP_add_{cipher,digest}() from public APItb2024-03-021-13/+1
| | | | | | | | | | | Ciphers and digests are now handled in a static lookup table and no longer by the associative array that used to underlie the OBJ_NAME API. Adding ciphers is no longer possible. What uses this API does so for historic reasons coming from a time where SHA-2 and some AES variants needed to be enabled explicitly. Ports doing this (PHP and DANE code) were fixed. ok jsing
* Add a few aliases for ECDSA and DSA for security/xcatb2024-01-271-1/+143
| | | | ok jsing
* The OBJ_NAME API joins the party in evp_names.ctb2024-01-131-1/+50
| | | | ... and another file without license disappears.
* Move EVP_add_{cipher,digest}() to the trashcantb2024-01-131-1/+17
| | | | They will await their removal in the next major bump.
* Open a garbage bin at the bottom of evp_names.ctb2024-01-131-1/+12
| | | | | First to move is EVP_cleanup(), which should probably be moved to an evp_lib.c if such a file is reinstated.
* Reimplement EVP_get_{cipher,digest}byname()tb2024-01-131-1/+46
| | | | | | | Instead of a hashtable lookup do a bsearch() over the static table. This needs about the same number of strcmp and is a lot simpler. ok jsing
* Reimplement {EVP_CIPHER,EVP_MD,OBJ_NAME}_do_all{,_sorted}(3)tb2024-01-131-3/+159
| | | | | | | | | | | | | | | | | | | | | This implements the do_all API by simple loops over the tables of digests and ciphers. Since some ciphers are only available on some platforms, we need to skip them if necessary. We use loops in each of the functions rather the convoluted way of reducing some of the loops to others. Since the tables are sorted, as ensured by regress, both do_all() and do_all_sorted() walk the lists in order. In particular, we no longer need to allocate to be able to sort hash tables by name on the fly in a void function that may end up doing nothing because allocation failed. We still need to do an unchecked OPENSSL_init_crypto() call. But that's what prayer and clean living are there for (as beck put it). The OBJ_NAME API is completely misnamed. It has little to do with objects and a lot to do with EVP. Therefore we implement what will remain from its saner replacement in the evp directory, i.e., evp_names.c. ok jsing
* Add a table of digest names, digests and aliasestb2024-01-131-2/+475
| | | | | | | | This is the corresponding commit for digests and their aliases. It only adds a table to be used in upcoming commits. What was said about ciphers applies mutatis mutandis to digests. ok jsing
* Add a table of cipher names, ciphers and aliasestb2024-01-131-0/+1088
This arranges the data provided by dynamic library initialization in a static table and will help avoid gross code with missing error checking and other defects on every use of the library. This table isn't pretty due to various naming inconsistecies accumulated over the decades. It will significantly simplify the implementation of API such as EVP_get_cipherbyname() and EVP_CIPHER_do_all(). All the table does is map strings to ciphers, typically used on the openssl(1) command line or in code it's the mechanism that underlies the map from NID_chacha20 to the data returned by EVP_chacha20(). It's of course more complicated because it just had to be stupid. This is one of the places where the use of bsearch() is justified. The price to pay for the simplification is that adding custom aliases and custom ciphers to this table will no longer be supported. It is one significant user of the LHASH madness. That's just another piece of the awful "toolkit aspect"-guided misdesign that contributes to making this codebase so terrible. A corresponding table for the digests will be added in the next commit. ok jsing