summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/stack/stack.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2024-03-02Unhook some gost teststb1-121/+1
2024-03-02Crank libressl version to 3.9.0 (finally!)tb1-3/+3
2024-03-02crank libtls majortb1-1/+1
same bump as libcrypto and libssl
2024-03-02crank libssl majortb1-1/+1
same bump as libcrypto; symbol removal and addition
2024-03-02Remove SSL_debugtb4-13/+3
The garbage truck is quite full by now. Collect the last symbol straggler for this bump. ok jsing
2024-03-02Garbage collect TLS1_FLAGS_SKIP_CERT_VERIFYtb1-2/+1
And here goes another weird-ass thing of dubious pedigree. ok jsing
2024-03-02Make {SSL3,TLS}_CT_* internaltb3-28/+8
And here goes a bunch of unused macros that just had to be in two headers so they could get out of sync. Three of these constants are used in a single function... ok jsing
2024-03-02Remove SSL_CIPHER_get_by_{id,value}()tb4-23/+3
While this undocumented API would have been much nicer and saner than SSL_CIPHER_find(), nothing used this except for the exporter test. Let's get rid of it again. libssl uses ssl3_get_cipher_by_{id,value}() directly. ok jsing
2024-03-02Export SSL_get_{peer_,}signature_type_nid()tb5-8/+13
Also move the prototypes to the correct header. Oversight reported by Frank Lichtenheld, thanks! Fixes https://github.com/libressl/openbsd/issues/147 ok jsing
2024-03-02crank libcrypto majortb1-1/+1
There were symbol addition, removal, function signature changes and struct visibility changes.
2024-03-02Change sk in CRYPTO_EX_DATA from STACK_OF(void) * to void *tb1-2/+2
Requested by jsing
2024-03-02tedu OPENSSL_isservice() prototypetb1-3/+1
When tedu tedued OPENSSL_isservice(), tedus chainsaw missed crypto.h. Finish the teduing of the hack for Visual C++ 5.0 (!), which is still present in the latest and greatest OpenSSL. ok jsing
2024-03-02Make CRYPTO_THREADID opaquetb8-25/+149
With ERR_STATE out of the way, we can make CRYPTO_THREADID opaque. The type is still accessed by used public API, but some of the public API can also go away. ok jsing
2024-03-02Fix CRYPTO_malloc/free signaturestb2-10/+8
Importantly, the size in malloc is now a size_t instead of an int. The API now also takes a file and line to match upstream's signature. ok jsing
2024-03-02Remove CRYPTO_*infotb5-43/+3
Long time neutered, only used (pointlessly without error checking) in the error code until very recently. ok jsing
2024-03-02Remove a bunch of CRYPTO memory APItb6-354/+4
This was neutered early on in the fork and has been rotting ever since. Some parts of the API are still used, but it's easier to clean up when most of the mess is gone. ok jsing
2024-03-02Update list of OPENSSL_NO_*tb1-5/+25
This syncs the list with some version of upstream and exposes a few OPENSSL_NO_* that may now be relevant. from jsing (a long time ago)
2024-03-02Remove a few no longer used sk_FOO_* stanzastb1-85/+1
ok jsing
2024-03-02Remove sk_find_ex()tb8-97/+5
This API intends to find the closest match to the needle. M2Crypto exposes it because it can. This will be fixed by patching the port. ok jsing
2024-03-02Unhook and remove GOST and STREEBOGtb25-6776/+5
This stops compiling the GOST source. The current implementation is low quality and got in the way, especially in libssl. While we would be open for GOST support, it needs to be significantly better than what we have had and it also needs a maintainer. Add OPENSSL_NO_GOST to opensslfeatures and stop installing gost.h. Some code wrapped in #ifndef OPENSSL_NO_GOST will be removed later. ok jsing
2024-03-02Make LHASH_OF() and STACK_OF() use opaque structstb13-80/+211
This removes internals of these two special snowflakes and will allow further simplifications. Unfortunately, there are some pieces of software that actually use LHASH_OF() (looking at you, pound, Ruby, and openssl(1)), so we get to keep exposing this garbage, at least for now. Expose lh_error() as a symbol to replace a macro reaching into _LHASH. lh_down_load() is no longer available. _LHASH and _STACK are now opaque, LHASH_NODE becomes internal-only. from jsing
2024-03-02Remove lh statstb11-573/+7
This could have been removed in an earlier bump. Now it's time for it to say goodbye. ok jsing
2024-03-02Remove X509_CRL_METHOD APItb3-52/+2
I would keep repeating myself... In the bit bucket you go. ok jsing
2024-03-02Garbage collect most of the public LOOKUP APItb5-84/+5
Yet another bit of extensibility that no one ever really used. X509_LOOKUP_free() needs to stay because of ... rust-openssl (and kdelibs4support). ok jsing
2024-03-02Expose X509_STORE_get1_objects()tb2-3/+2
Safer replacement API for the unsafe X509_STORE_get0_objects(). ok jsing
2024-03-02Make X509_CERT_AUX internaltb3-18/+11
Another struct/API that should never have leaked out of the library. ok jsing
2024-03-02Remove X509_TRUST from the public APItb2-13/+11
With API and other users internal, this struct can now go. ok jsing
2024-03-02Remove DECLARE_STACK_OF(X509_TRUST)tb1-3/+1
Unused since the extensibility was neutered. ok jsing
2024-03-02Remove unused public X509_TRUST APItb5-123/+3
Another thing that should never have leaked out of the library. It will become internal entirely, where the code can be simplified greatly. ok jsing
2024-03-02const correct X509_PURPOSE_get0{,_{,s}name}()tb2-10/+11
Unfortunately, PHP and rust-openssl still need this API. At least we can make the table read-only now since we disabled its extensibility. ok jsing
2024-03-02Make X509_PURPOSE opaquetb2-11/+13
Code using details of X509_PURPOSE does so by using API. So we can make this struct opaque. ok jsing
2024-03-02Remove unused parts of the purpose APItb9-74/+13
Most of this is the ability to add custom purposes. Also the astounding X509_STORE_CTX_purpose_inherit(). The names are used by PHP, and M2Crypto exposes X509_check_purpose(), so these remain public. Some weird, most likely invalid, uses also remain in rust-openssl. ok jsing
2024-03-02Remove X509V3_EXT extensibility APItb5-53/+3
You used to be able to define your own X.509 extension handlers. Great. Even greater: the verifier would ignore any custom extensions. So this was only ever useful for serialization and deserialization. In other words, almost entirely pointless. The API was also unused except for a hack in kore-acme, which was fixed recently. ok jsing
2024-03-02Remove X509_ALGOR_set_md()tb3-12/+2
One of those void APIs that are super hard to use safely since they can fail but can't communicate failure. Nothing uses this. Internal uses have been converted to error checked X509_ALGOR_set_evp_md(). ok jsing
2024-03-02Adjust signature of ERR_load_strings()tb1-3/+3
This aligns the prototypes with OpenSSL 1.1. ok jsing
2024-03-02Remove ERR_get_statetb5-19/+17
The ERR_STATE struct is an unused implementation detail of the horrific error stack code. It is the last public consumer of CRYPTO_THREAD internals. Make this and its accessor internal so we can make the CRYPTO_THREAD struct opaque. ok jsing
2024-03-02Simplify engine.htb1-45/+1
Garbage collect some more of this former horror show. ok jsing
2024-03-02Garbage collect CUSTOM_KEY_LENGTH/SET_KEY_LENGTHtb1-4/+1
These are unused defines that used to add unwanted complications in EVP_CIPHER_CTX_set_key_lenght(). ok jsing
2024-03-02Remove more PBE stuff from the public APItb7-35/+24
This is still needed internally for CMS and its predecessors. This removal will enable disentangling some of its innards. ok jsing
2024-03-02Remove most PBEPARAM stuff from public visibilitytb6-50/+40
The struct itself needs to remain public, unfortunately. ok jsing
2024-03-02Remove a lot of PKCS12 garbage from the public APItb13-205/+94
PKCS12 is a hot mess. Please participate in the survey at the end of https://www.cs.auckland.ac.nz/~pgut001/pubs/pfx.html to increase its credibility and unanimity. ok jsing
2024-03-02Remove RC4-HMAC-MD5 and AES-{128,256}-CBC-HMAC-SHA-1tb6-951/+3
"Stitched" mode AEADs were removed from libssl a long time ago. Nothing uses these CIPHERs anymore. ok jsing
2024-03-02Make legacy cipher methods internaltb3-14/+8
These are ASN.1 handlers for CIPHERs, still used by CMS and its predecessors. They should never have been public. ok jsing
2024-03-02Remove EVP_PBE_* API from public visibilitytb4-67/+6
You can no longer add your custom PBE algorithm. Pity. EVP_PBE_CipherInit() stays for internal use, the rest goes away copmletely. ok jsing
2024-03-02Remove EVP_PKEY_meth_*() APItb3-260/+2
After ameth, the second bit of custom EVP_PKEY API removal. ok jsing
2024-03-02Remove the ameth libtb4-239/+2
This is accessor API for ASN.1 methods needed for custom PKEYs. Nothing has ever used this. This has been neutered for months. The EVP_PKEY_asn1_* API that needs to stay was moved elsewhere. ok jsing
2024-03-02Remove EVP_MD_meth* againtb3-145/+2
Erlang upstream disabled the otp_test_engine for LibreSSL >= 3.5 without explanation. It was the only reason we added this garbage API in the first place. Meanwhile libfido2 started using it for a mock up of OpenSSL 3's broken fetch design with old API. This is pointless, so all this garbage goes away again (in particular we can remove the absolutely horrifying EVP_MD_meth_set_app_datasize() again). ok jsing
2024-03-02Fix signature and semantics of EVP_{CIPHER,MD}_CTX_init()tb3-13/+13
When the EVP_CIPHER_CTX and the EVP_MD_CTX were still expected to live on the stack, these initialization APIs were wrappers around memset. In OpenSSL 1.1, somebody removed them and carelessly made _init() an alias of _reset() aka _cleanup(). As a consequence, both signature and semantics changed. Unsurprisingly, there is now code out there that actually uses the new semantics, which causes leaks on LibreSSL and older OpenSSL. This aligns our _init() with OpenSSL 1.1 semantics. ok jsing
2024-03-02Remove unused OBJ_create_and_add_object()tb1-3/+1
This is an alias for OBJ_create(). I haven't dug into its history. ok jsing
2024-03-02Remove no longer supported OBJ_NAME_TYPEstb1-4/+2
OBJ_NAME_TYPE_PKEY_METH and OBJ_NAME_TYPE_COMP_METH were never used as far as I can tell. Unfortunately, PHP and Python still use the weirdly named OBJ_NAME_do_all*() API to list available ciphers and digests, so the MD and CIPHER variants need to remain public. ok jsing