summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/evp/evp_err.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* libcrypto: constify most error string tablestb2024-06-241-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | These constitute the bulk of the remaining global mutable state in libcrypto. This commit moves most of them into data.rel.ro, leaving out ERR_str_{functs,libraries,reasons} (which require a slightly different approach) and SYS_str_reasons which is populated on startup. The main observation is that if ERR_load_strings() is called with a 0 lib argument, the ERR_STRING_DATA argument is not actually modified. We could use this fact to cast away const on the caller side and be done with it. We can make this cleaner by adding a helper ERR_load_const_strings() which explicitly avoids the assignment to str->error overriding the error code already set in the table. In order for this to work, we need to sprinkle some const in err/err.c. CMS called ERR_load_strings() with non-0 lib argument, but this didn't actually modify the error data since it ored in the value already stored in the table. Annoyingly, we need to cast const away once, namely in the call to lh_insert() in int_err_set_item(). Fixing this would require changing the public API and is going to be tricky since it requires that the LHASH_DOALL_FN_* types adjust. ok jsing
* Hide public symbols in evp.hbeck2024-04-091-1/+2
| | | | | | largely mechanically done by the guentherizer 9000 ok tb@
* Unbreak the namespace build after a broken mk.conf and tool misfire hadbeck2023-07-071-2/+1
| | | | | | | | me aliasing symbols not in the headers I was procesing. This unbreaks the namespace build so it will pass again ok tb@
* Hide symbols in hkdf, evp, err, ecdsa, and ecbeck2023-07-071-1/+2
| | | | | | (part 2 of commit) ok jsing@
* Provide digestsign/digestverify hooks for EVP_PKEY_METHOD.jsing2022-11-101-1/+2
| | | | | | These are needed for EVP implementations of Ed25519 and X25519. ok beck@ tb@
* Port EVP raw key API from OpenSSL.jsing2022-11-101-1/+2
| | | | | | This will be needed to deal with Curve25519 based keys. ok beck@ tb@
* Remove mkerr.pl remnants from LibreSSLkn2022-07-121-7/+1
| | | | | | | This script is not used at all and files are edited by hand instead. Thus remove misleading comments incl. the obsolete script/config. Feedback OK jsing tb
* Prepare to provide EVP_PKEY_new_CMAC_key()tb2021-03-291-1/+2
| | | | | | | sebastia ran into this when attempting to update security/hcxtools. This will be tested via wycheproof.go once the symbol is public. ok jsing, tested by sebastia
* Disallow the use of zero length IVs in AES-GCM viatb2020-04-271-1/+2
| | | | | | | | | | | EVP_AEAD_CTX_{open,seal}, as this leaks the authentication key. Issue reported and fix tested by Guido Vranken. ok beck, jsing This commit adds a constant to a public header despite library lock, as discussed with deraadt and sthen.
* Expand the ERR_PACK() macro to ERR_REASON() for consistency.tb2019-03-181-2/+2
| | | | No binary change.
* Provide EVP_PKEY_get0_hmac(). From OpenSSL 1.1.1 which is stilltb2019-03-171-1/+2
| | | | | | freely licensed. From jsing
* Provide EVP_aes_{128,192,256}_wrap(). This is a compatibletb2019-03-171-1/+2
| | | | | | | | | | | | | implementation based on the one in OpenSSL 1.0.2r which is still freely licensed. The functions are undocumented in OpenSSL. To use them, one needs to set the undocumented EVP_CIPHER_CTX_FLAG_WRAP_ALLOW flag on the EVP_CIPHER_CTX. resolves #505 ok jsing
* Send the function codes from the error functions to the bit bucket,beck2017-01-291-97/+2
| | | | | | as was done earlier in libssl. Thanks inoguchi@ for noticing libssl had more reacharounds into this. ok jsing@ inoguchi@
* Regenmiod2015-02-151-89/+99
|
* Explicitly include <openssl/opensslconf.h> in every file that referencesjsing2014-07-101-1/+4
| | | | | | | | | an OPENSSL_NO_* define. This avoids relying on something else pulling it in for us, plus it fixes several cases where the #ifndef OPENSSL_NO_XYZ is never going to do anything, since OPENSSL_NO_XYZ will never defined, due to the fact that opensslconf.h has not been included. This also includes some miscellaneous sorting/tidying of headers.
* tags as requested by miod and teduderaadt2014-06-121-1/+1
|
* Add a ChaCha20-Poly1305 AEAD EVP implementation to libcrypto, from Adamjsing2014-05-151-0/+3
| | | | | | Langley's Chromium OpenSSL patches. ok miod@
* Add an AEAD EVP interface to libcrypto, along with AES-GCM AEADjsing2014-05-151-0/+8
| | | | | | | implementations. This largely pulls in Adam Langley's AEAD patches from Chromium's OpenSSL. ok miod@
* More KNF.jsing2014-05-111-2/+2
|
* KNF.jsing2014-05-081-165/+162
|
* Merge conflicts; remove MacOS, Netware, OS/2, VMS and Windows build machinery.miod2014-04-131-0/+6
|
* resolve conflictsdjm2012-10-131-2/+17
|
* resolve conflicts, fix local changesdjm2010-10-011-15/+45
|
* AES-NI engine support for OpenSSL.thib2010-07-011-0/+1
| | | | | | | | | | This is code mostly picked up from upstream OpenSSL, or to be more exact a diff from David Woodhouse <dwmw2 at infradead dot org>. Remember to make includes before doing a build! no objections from djm@ OK deraadt@, reyk@ (AES is about 4.25x faster on his x201 now)
* resolve conflictsdjm2009-01-091-1/+15
|
* resolve conflictsdjm2008-09-061-18/+21
|
* resolve conflictsdjm2006-06-271-77/+81
|
* resolve conflictsdjm2005-04-291-1/+8
|
* OpenSSL 0.9.7 stable 2002 05 08 mergebeck2002-05-151-2/+9
|
* openssl-engine-0.9.6 mergebeck2000-12-151-0/+10
|
* OpenSSL 0.9.5a mergebeck2000-04-151-1/+2
|
* OpenSSL 0.9.5 mergebeck2000-03-191-1/+7
| | | | | | *warning* this bumps shared lib minors for libssl and libcrypto from 2.1 to 2.2 if you are using the ssl26 packages for ssh and other things to work you will need to get new ones (see ~beck/libsslsnap/<arch>) on cvs or ~beck/src-patent.tar.gz on cvs
* OpenSSL 0.9.4 mergebeck1999-09-291-58/+86
|
* Import of SSLeay-0.9.0b with RSA and IDEA stubbed + OpenBSD buildryker1998-10-051-0/+108
functionality for shared libs. Note that routines such as sslv2_init and friends that use RSA will not work due to lack of RSA in this library. Needs documentation and help from ports for easy upgrade to full functionality where legally possible.