summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_methods.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-07-02ech_key.c: Fix includestb1-3/+4
We need stdint.h for uintptr_t, stdlib.h for malloc, ec.h for various things, but there's no need for objects. or sha.h.
2023-07-01Document that small allocations are initially junked with 0xdf nowotto1-3/+3
2023-07-01Reverse polarity to avoid an overlong linetb1-5/+6
2023-07-01Reword comment to fit on a single linetb1-5/+2
2023-07-01tmp is a silly name for a point on an elliptic curvetb1-6/+6
2023-07-01Garbage collect the now unused lentb1-5/+3
2023-07-01Test and assign for EC_KEY_get0_private_key()tb1-3/+2
2023-07-01Add a missing NULL check for grouptb1-2/+3
ok jsing
2023-07-01Reference commit needed in the next major bumptb1-2/+2
2023-07-01Simplify handling of rettb1-6/+6
ok jsing
2023-07-01Use BN_bn2binpad() instead of handrolling ittb1-5/+3
As ugly as the BN_bn2binpad() internals are, what it does is quite handy with all sorts of EC stuff. So use it here too and eliminate some ugly manual pointer zeroing and offsets. Also switch len and buflen from size_t to int to remove an iffy cast: both are set by functions that return a non-negative int. ok jsing
2023-07-01Remove unused y from ECDH key computationtb1-5/+5
ok jsing
2023-07-01crypto.h: move the error stuff to the endtb1-21/+21
The other public headers have function and reason codes at the end because the error header was inlined. This was also the case here, too, until the automatic library initialization was appended.
2023-07-01Simplify ASN1_bn_print() usage in ec/tb2-30/+20
ASN1_bn_print() doesn't print anything if the BIGNUM passed in is NULL. Also simplify the handling of the point conversion form of the generator. ok jsing
2023-06-30whitespacetb1-2/+2
2023-06-30Recommit "Allow to ask for deeper callers for leak reports usingotto2-12/+71
malloc options" Now only enabled for platforms where it's know to work and written as a inline functions instead of a macro.
2023-06-29Drop the no longer necessary -DLIBRESSL_CRYPTO_INTERNALtb1-2/+2
ok miod
2023-06-29Move check_defer() and obj_cleanup_defer to evp/names.ctb2-7/+5
These formerly public symbols are the last things hidden by LIBRESSL_CRYPTO_INTERNAL. Most of their use is in evp/names.c Unfortunately, check_defer() needs to know about NUM_NIDS, so its implementation needs to remain in obj_dat.c, the only file that can include obj_dat.h due to NID tables. ok miod
2023-06-28Adjust EC_GROUP_get_basis_type() documentationtb1-64/+8
After the GF2m removal, this function always returns 0, so adjust the documentation and remove EC_GROUP_get_{trinomial,pentanomial}_basis() that were left behind. Also add a tiny grammar tweak in the HISTORY section.
2023-06-27Zap stray spacetb1-2/+2
2023-06-27Switch from get_rfc*() to BN_get_rfc*()tb1-7/+7
The existence of the public get_rfc*() API is a historic curiosity that may soon be corrected. We inherited its use and it survived in libssl until now. Switch to the better named BN_get_rfc*() wrappers. ok jsing
2023-06-27Remove some dead code from ECPKParameters_print()tb1-31/+6
This code is unreachable since binary curve support was removed. There is a lot more to clean up in here... ok jsing
2023-06-27Remove the now unused poly[] from EC_GROUPtb1-15/+2
This was needed for defining the multiplication over binary fields. Since that code is gone, this is no longer needed. ok jsing
2023-06-27Simplify EC_GROUP_get_basis_type()tb1-18/+2
The remaining EC_METHODs in libcrypto all have a field type of NID_X9_62_prime_field, so this function always returns 0. Make that more obvious. ok jsing
2023-06-26Adjust EVP_PKEY_CTRL_HKDF_KEY to OpenSSL's semanticstb1-2/+9
For some reason there is no NULL check on setting the HKDF key for p2 like in the other cases in the switch, instead OpenSSL fail in memdup, nulling out the key but leaving he key_len at the old value. This looks accidental but our behavior makes some haproxy regress tests segfault. So mimic weird OpenSSL semantics but in addition set the key_len to 0. Reported by Ilya Shipitsin ok jsing
2023-06-25Add missing RCS markertb1-0/+1
2023-06-25Remove unneeded bn_local.h and drop a NULL checktb1-5/+3
2023-06-25Move ECDSA_size() to ecs_ossl.c to match what was done in ecdhtb2-34/+34
2023-06-25With ech_local.h gone, we no longer need to -I ecdhtb1-2/+1
2023-06-25Remove ech_local.htb1-65/+0
2023-06-25Stop including ech_local.htb3-5/+5
2023-06-25Remove prototypes for EC_KEY_{get,insert}_key_method_data()tb1-8/+1
These were accidentally left behind in a previous commit.
2023-06-25Move ecdh_KDF_X9_63() to ec_local.htb2-8/+8
In anticipation of merging ecdh/ and ecdsa/ into ec/, move the last remaining thing in ech_local.h where it will soon belong.
2023-06-25Move ECDH_size() to ech_key.ctb2-8/+8
This way the public ECDH API that will remain in libcrypto is in one file and the public ECDH API that will go is in the other one.
2023-06-25Move the ecdh_method struct declaration to ech_lib.ctb2-11/+10
No other file uses this anymore
2023-06-25Move ECDH_OpenSSL() ECDSA_OpenSSL() to *_lib.ctb4-28/+28
Now that they no longer use static methods, they can move where they belong. Also make the static method const, as it should have been all along.
2023-06-25Remove EC_EXTRA_DATAtb4-230/+4
With the ecdh_check() and ecdsa_check() abominations gone, we can finally get rid of EC_EXTRA_DATA and EC_KEY_{get,insert}_key_method_data(). The EC_EX_DATA_*() handlers, (which fortunately have always had "'package' level visibility") join the ride to the great bit bucket in the sky. Thanks to op for making this possible. ok jsing
2023-06-25Remove {ecdh,ecdsa}_check() and {ECDH,ECDSA}_DATAtb4-223/+4
This is now unused code. Removing it will free us up to remove some other ugliness in the ec directory. ok jsing
2023-06-25Remove method wrappers that use {ecdh,ecdsa}_check()tb2-73/+14
Now that it is no longer possible to set a custom {ECDH,ECDSA}_METHOD, EC_KEY_METHOD can just call the relevant method directly without the need for this extra contortion. ok jsing
2023-06-25ecdsa_do_sign(): remove useless ecdsa_check() calltb1-4/+2
ok jsing
2023-06-25Make ECDH and ECDSA ex_data handlers always failtb2-26/+8
They will be removed in the next major bump. No port uses them. They use code that is in the way of upcoming surgery. Only libtls and smtpd used to use the ECDSA version. ok jsing
2023-06-25Make {ECDH,ECDSA}_set_method() always failtb2-29/+4
They will be removed in the next major bump. No port uses them. They use code that is in the way of upcoming surgery. Only libtls used the ECDSA version, but thankfully op cleaned that up. ok jsing
2023-06-25x509v3.h: unwrap a linetb1-3/+2
2023-06-25Adjust/fix X509_check_purpose(3) documentationtb1-3/+3
2023-06-25Check for duplicate X.509v3 extension OIDstb1-1/+45
Per RFC 5280, 4.2: A certificate MUST NOT include more than one instance of a particular extension. This implements such a check in x509v3_cache_extensions() by sorting the list of extensions and looking for duplicate neighbors. This sidesteps complications from extensions we do not know about and keeps algorithmic complexity reasonable. If the check fails, EXFLAG_INVALID is set on the certificate, which means that the verifier will not validate it. ok jsing
2023-06-25Provide additional BN primitives for BN_ULLONG architectures.jsing1-21/+79
On BN_ULLONG architectures, the C compiler can usually do a decent job of optimising primitives, however it struggles to see through primitive calls due to type narrowing. As such, providing explicit versions of compound primitives can result in the production of more optimal code. For example, on arm the bn_mulw_addw_addw() primitive can be replaced with a single umaal instruction, which provides significant performance gains. Rather than intermingling #ifdef/#else throughout the header, the BN_ULLONG defines are pulled up above the normal functions. This also allows complex compound primitives to be reused. The conditionals have also been changed from BN_LLONG to BN_ULLONG, since that is what really matters. ok tb@
2023-06-25ech_local.h: remove unused ECDH_FLAG_FIPS_METHODtb1-9/+1
2023-06-25ec_local.h: move ec_group_simple_order_bits down a bittb1-3/+2
2023-06-24Remove precompute_mult/have_precompute_mult from EC_METHOD.jsing2-26/+4
These are no longer in use - stub EC_GROUP_precompute_mult() and EC_GROUP_have_precompute_mult() to match their existing behaviour. ok tb@
2023-06-24Mop up EC_GROUP precomp machinery.jsing3-252/+10
Since there are now no EC implementations that perform pre-computation at the EC_GROUP level, remove all of the precomp machinery, including the extra_data EC_GROUP member. The ec_wNAF_mul() code is horrific - simply cut out the precomp code, rather than trying to rewrite it (that's a project for another day). ok tb@