summaryrefslogtreecommitdiff
path: root/src/lib/libssl/tls_buffer.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2024-08-31Remove EVP_PKEY_*check againtb4-40/+3
This API turned out to be a really bad idea. OpenSSL 3 extended it, with the result that basically every key type had its own DoS issues fixed in a recent security release. We eschewed these by having some upper bounds that kick in when keys get insanely large. Initially added on tobhe's request who fortunately never used it in iked, this was picked up only by ruby/openssl (one of the rare projects doing proper configure checks rather than branching on VERSION defines) and of course xca, since it uses everything it can. So it was easy to get rid of this again. ok beck jsing
2024-08-31Retire the whirlpool testtb2-251/+0
2024-08-31unhook whirlpool from the treetb1-2/+1
2024-08-30Garbage collect the DH_check*_ex() APItb2-75/+4
This was only needed by the EVP_PKEY_*check() API, which was defanged. So this silly garbage can now go: it translated flags to errors on the error stack so that openssl *check could print ugly errors while DoS-ing the user. ok beck
2024-08-30Add and use local copy of X509V3_add_value()tb1-2/+41
The public API will be removed. This fixes its only consumer.
2024-08-30Remove cross references to whirlpooltb2-6/+4
2024-08-30zap line missed in previous removal; ok tbjmc1-3/+2
2024-08-30Adjust freenull test for upcoming conf_api.h removaltb2-5/+2
2024-08-30Revert commitid KcCtsA53F9UQzc0t:guenther1-5/+6
"Make exit(), fclose(), fflush(), and freopen() comply with POSIX-2008 requirements for setting the underlying file position when flushing read-mode streams, and make an fseek()-after-fflush() not change the underlying file position." Something isn't correct about it and it breaks at least initdb from the postgresql-server package. discussed with tb@, semarie@, and deraadt@
2024-08-29Remove documentation of EVP_whirlpooltb2-85/+1
2024-08-29Remove documentation of ERR_add_error_{,v}data()tb2-41/+8
2024-08-29HMAC_Init() is dead. Long live HMAC_Init_ex()tb1-17/+2
2024-08-29Remove documentation of (caveat on) X509_TRUST_DEFAULTtb1-12/+2
Sadly, it's going to go away before ever having become the default.
2024-08-29Disable hmac and pkey_ec tests until after the bumptb1-2/+3
2024-08-29Adjust documentation for check/pubcheck removaltb1-11/+2
ok beck
2024-08-29Remove check and pubcheck from openssl pkey and pkeyparamtb4-73/+7
The underlying API will be removed, so these commands have to go. ok beck
2024-08-29Remove the pkey_{,public_,param_}check() handlerstb5-140/+15
This disables the EVP_PKEY_*check() API and makes it fail (more precisely indicate lack of support) on all key types. This is an intermediate step to full removal. Removal is ok beck jsing
2024-08-29Remove evp_pkey_check testtb2-399/+1
The API it tests will be removed shortly
2024-08-29ocsp.c: zap trailing whitespacetb1-2/+2
2024-08-29repair bizzare indents; ok tbderaadt2-4/+12
2024-08-28def_create(): switch from malloc() to calloc()tb1-2/+2
ok jsing
2024-08-28Get rid of last use of db_methtb2-41/+14
Nothing touches db_meth in ports. Thus only way a db_meth can be set is now as a side effect X509V3_set_conf() in which case the db is an NCONF database and the db_meth will be a thin wrapper of NCONF_get_section(). Make that explicit in the implementation, remove the guts of the unused X509V3_get_string() and X509V3_string_free(), turn X509V3_section_free() into a noop and replace several checks for ctx->db, ctx->db->meth, ... with a simple ctx->db != NULL check. ok beck jsing
2024-08-28Remove a few obvious comments, unwrap a few lines and annotate sometb1-26/+9
functions for removal
2024-08-28Turn X509V3_set_conf_lhash() into a nooptb2-28/+3
Another legacy turd that was only used by PHP 7.4 and 8.0. ok beck jsing
2024-08-28Add LCRYPTO_USED(X509_get_signature_info)tb1-1/+2
2024-08-28Disable X509V3_EXT{,_CRL,_REQ}_add_conf()tb2-21/+11
These legacy interfaces were only used by PHP 7.4 and 8.0 and they will be removed in an upcoming bump. ok beck jsing
2024-08-28Annotate X509V3_CONF_CTX and its only instance for removaltb1-4/+3
A comment saying /* Maybe more here */ in a public also goes (yuck). Of course the promise was fulfilled by OpenSSL 3. ok beck jsing
2024-08-28Make use of X509_get_signature_info() in check_sig_level()tb1-20/+3
If an auth_level (i.e., security_level, but not quite, because Viktor) was set on the X509_VERIFY_PARAM in the X509_STORE_CTX, the verifier would reject RSA-PSS or EdDSA certificates for insufficient security bits due to incorrect use of OBJ_find_sigid_algs() (this was also a bug in the initial security level implementation in OpenSSL 1.1). Using X509_get_signature_info() fixes this while preserving behavior for all other algorithms. Reported by Steffen Ullrich as one of multiple issues with RSA-PSS. ok jsing
2024-08-28Document X509_get0_signature_info()tb1-3/+70
Loosely based on the OpenSSL 1.1 documentation but extended quite a bit to explain what the flags mean and what info they do (and do not) convey. With the usual valuable feedback from jmc. ok jmc
2024-08-28Implement X509_get_signature_info()tb6-5/+204
This is a slightly strange combination of OBJ_find_sigid_algs() and the security level API necessary because OBJ_find_sigid_algs() on its own isn't smart enough for the special needs of RSA-PSS and EdDSA. The API extracts the hash's NID and the pubkey's NID from the certificate's signatureAlgorithm and invokes special handlers for RSA-PSS and EdDSA for retrieving the corresponding information. This isn't entirely free for RSA-PSS, but for now we don't cache this information. The security bits calculation is a bit hand-wavy, but that's something that comes along with this sort of numerology. ok jsing
2024-08-28Fix underlying pkey of RSA-PSStb1-2/+2
There are currently very few differences between the rsa_asn1_meth for plain RSA and the rsa_pss_asn1_meth for RSA-PSS apart from the obviously necessary differnces for base_method, pkey_id, pem_str and info (and the fact that RSA has support for legacy private key encoding). This had the lucky side effect that it didn't really matter which ameth one ended up using after OBJ_find_sigid_algs(). With the upcoming support for X509_get_signature_infO() for RSA-PSS, this needs to change as for RSA-PSS we need to decode the PSS parameters for extracting the "security level", whereas for RSA we can just use the hash length. Thus, for RSA-PSS switch pkey_id from the incorrect rsaEncryption to rassaPss. ok jsing PS: OBJ_find_sigid_algs() manual is no longer entirely correct, but this has been the case since we added Ed25519 support to obj_xref.
2024-08-28Add a comment to OCSP_id_issuer_cmp() to make blind use of X509_ALGOR_cmp()tb1-1/+6
less likely. ok jsing
2024-08-28Clean up and simplify OCSP_cert_id_new()tb1-21/+16
Use proper NULL checks, set hashAlgorithm with X509_ALGOR_set0_by_nid(), and avoid a silly digerr label. ok jsing
2024-08-28Avoid reaching into X509_ALGOR in ocsp_certid_print()tb1-2/+6
ok jsing
2024-08-28Avoid polluting the error stack when printing certificatestb1-3/+17
For a certificate serial number between LONG_MAX and ULONG_MAX, the call to ASN1_INTEGER_get() fails and leaves an error on the stack because the check bs->length <= sizeof(long) doesn't quite do what it's supposed to do (bs is probably for bitstring, although the more common reading would be adequate, too.) Fix this by checking for non-negativity and using ASN1_INTEGER_get_uint64() and add a lengthy comment to explain the nonsense per beck's request. discussed with jsing ok beck
2024-08-27cms_att.c: tidy includes and add x509_local.h for upcoming changetb1-5/+5
2024-08-26replace atoi(3) usage with strtonum(3); ok/tweaks tb@op3-16/+64
2024-08-26replace strtol(3) usage with strtonum(3); idea/ok/tweaks tb@op2-46/+19
2024-08-26ts.c: typo flaf -> flagtb1-2/+2
2024-08-24More precision on what exactly OCSP_id_cmp and OCSP_issuer_id_cmp compare.tb1-7/+14
The existing description was lacking and incorrect, respectively.
2024-08-24conf_def.c: add two trailing commastb1-3/+3
2024-08-24X509at_get_attr: zap trailing comma.tb1-2/+2
reminded by mandoc -Tlint
2024-08-24LibreSSL no longer supports adding X.501 attributes to an EVP_PKEYtb7-206/+11
Remove the corresponding documentation.
2024-08-24Switch UI_UTIL_read_pw* to LCRYPTO_UNUSED()tb1-3/+3
ok jsing
2024-08-24Neuter the completely broken UI_UTIL_read_pw* APItb1-27/+5
Return 0 on success, return <= 0 on failure. Sigh. In particular, if an allocation failed, the password that no one entered was considered valid. ok jsing
2024-08-24Remove documentation of UI_UTIL_read_pw*tb4-122/+7
According to some, a fail-open password verification function is par for the course for libcrypto. Unfortunately, we have been recommending its use over similarly named EVP functions after what amounted to a coin toss a few years back. Luckily enough, no one followed that advice and we can soon remove this API for good.
2024-08-23Remove unwanted trailing newlines from err/warn format strings.anton8-19/+19
2024-08-23Remove use of CSP/LMK in pkcs12 create/verify teststb1-3/+2
reminded by ... anton
2024-08-22PKCS12_create(3): remove Xr to EVP_PKEY_add1_attr(3)tb1-3/+2
This API family has been neutered and will be removed in the next bump. Further cross references will be untangled in the future.
2024-08-22Garbage collect unused attributes member from EVP_PKEYtb2-4/+2
ok miod