summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/ec (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Convert ossl_ec_key_gen() and EC_KEY_check_key()tb2023-07-031-23/+6
| | | | | | These also get the EC_GROUP_get0_order() treatment ok beck jsing
* Convert EC_GROUP_check() to EC_GROUP_get0_order()tb2023-07-031-10/+3
| | | | ok beck jsing
* Inline two copies of EC_GROUP_order_bits()tb2023-07-031-22/+6
| | | | | | | This code is way more complicated than it needs to be. Simplify. ec_bits() was particularly stupid. ok beck jsing
* Provide internal-only EC_GROUP_get0_order()tb2023-07-032-3/+11
| | | | ok jsing
* Fix return values of ecx methodstb2023-07-021-5/+5
| | | | | | | | | It is hard to get your return values right if you choose them to be a random subset of {-2, ..., 3}. The item_verify() and the digestverify() methods don't return 0 on error, but -1. Here 0 means "failed to verify", obviously. ok jsing
* Fix typo in previoustb2023-07-021-2/+2
|
* Use asprintf() to avoid repetition in string constantstb2023-07-021-6/+13
| | | | | | ... since ASN1_bn_print() is stupid. ok jsing
* Split ECPKParameters_print()tb2023-07-021-121/+150
| | | | | | | | | This function has two entirely independent parts, so instead of a huge if/else just use two functions. In ecpk_print_explicity parameters() do some additional boring cleanup such as switching to actually using the local BN_CTX and shuffling things into a slightly more sensible order. ok jsing
* Simplify ASN1_bn_print() usage in ec/tb2023-07-012-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
* whitespacetb2023-06-301-2/+2
|
* Remove some dead code from ECPKParameters_print()tb2023-06-271-31/+6
| | | | | | | This code is unreachable since binary curve support was removed. There is a lot more to clean up in here... ok jsing
* Remove the now unused poly[] from EC_GROUPtb2023-06-271-15/+2
| | | | | | | This was needed for defining the multiplication over binary fields. Since that code is gone, this is no longer needed. ok jsing
* Simplify EC_GROUP_get_basis_type()tb2023-06-271-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
* Stop including ech_local.htb2023-06-251-2/+1
|
* Remove prototypes for EC_KEY_{get,insert}_key_method_data()tb2023-06-251-8/+1
| | | | These were accidentally left behind in a previous commit.
* Move ecdh_KDF_X9_63() to ec_local.htb2023-06-251-1/+7
| | | | | In anticipation of merging ecdh/ and ecdsa/ into ec/, move the last remaining thing in ech_local.h where it will soon belong.
* Remove EC_EXTRA_DATAtb2023-06-254-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
* ec_local.h: move ec_group_simple_order_bits down a bittb2023-06-251-3/+2
|
* Remove precompute_mult/have_precompute_mult from EC_METHOD.jsing2023-06-242-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@
* Mop up EC_GROUP precomp machinery.jsing2023-06-243-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@
* Mop up ec_wNAF_{,have_}precompute_mult().jsing2023-06-242-206/+2
| | | | | | | | These were previously called by GF2m code and are no longer used. Also remove ec_pre_comp_new(), since it is only called by ec_wNAF_precompute_mult() and is now unused. ok tb@
* Fix return check for BN_hex2bn()tb2023-06-231-2/+2
| | | | | | | | Purely cosmetic change taking into account the fact that this function returns a length rather than a boolean. This is the last offender in the library. ok jsing
* Consolidate elliptic curve cofactor handlingtb2023-06-201-49/+41
| | | | | | | | | | | | | The various checks of the cofactor to be set in EC_GROUP_set_generator() are a bit all over the place. Move them into a single function and clean things up a little. Instead of calculating directly with the cofactor member of the group, use a temporary variable and copy this variable only if all tests passed. In cryptographic contexts the cofactor almost always fits if not into a single byte then into a word, so copying is cheap. Also streamline the computations a bit and remove some binary curve contortions. ok jsing
* Remove prototypes for various ec_GF2m_* functions that no longer exist.jsing2023-06-121-13/+1
|
* Rewrite ECParameters_dup()tb2023-05-041-7/+12
| | | | | | | This should leak slightly less than the direct expansion of ASN1_dup_of(). Use freezero() since the DER could contain a private key. ok jsing
* Use size_t instead of int in EC_POINT_point2oct()tb2023-05-041-2/+2
| | | | | | | An int would be perfectly sufficient for this, but then again there would be fewer traps. ok jsing
* Fix line wrappingtb2023-05-041-3/+3
|
* Fix function name in doc commenttb2023-05-041-2/+2
|
* Fix a few KNF/whitespace issuestb2023-05-031-9/+5
|
* Rename P into generatortb2023-05-021-6/+6
| | | | ok jsing
* Simplify EC_GROUP_new_by_curve_name()tb2023-05-021-20/+14
| | | | | | | | | | | | | Pull the setting of the name a.k.a. nid into ec_group_new_from_data(). This way, we can return early on finding the nid in the curve_list[]. This also avoids a silly bug where a bogus ERR_R_UNKNOWN_BUG is pushed onto the error stack when ec_group_new_from_data() failed. While there rework the exit path of ec_group_new_from_data() a bit. Instead of an ok variable we can use an additional pointer to keep track of the return value and free the EC_GROUP unconditionally. ok jsing
* stray whitespacetb2023-05-011-2/+2
|
* Add a missing pair of braces.tb2023-05-011-2/+3
|
* Use uppercase for the CURVE_LIST_LENGTH macrotb2023-05-011-6/+6
|
* Consistently use lowercase hex digits for curve parameterstb2023-05-011-749/+749
|
* Now that we have C99 initializers, garbage collect some commentstb2023-05-011-299/+299
|
* Rework the curve list to use actual structs instead of a customtb2023-05-011-742/+1530
| | | | | | serialized format. ok jsing
* Drop the now unnecessary and unused field_type from the curve datatb2023-05-011-54/+4
| | | | ok jsing
* Convert EC_CURVE_DATA to C99 initializerstb2023-05-011-51/+192
| | | | | | Also clean up the definition of EC_CURVE_DATA a bit. ok jsing
* Simplify ec_group_new_from_data() furthertb2023-05-011-16/+55
| | | | | | | | | | We have a BN_CTX available, so we may as well use it. This simplifies the cleanup path at the cost of a bit more code in the setup. Also use an extra BIGNUM for the cofactor. Reusing x for this is just silly. If you were really going to avoid extra allocations, this entire function could easily have been written with three BIGNUMs. ok jsing
* Drop some dead codetb2023-05-011-11/+2
| | | | | | | No member of the curve_list[] table has a method set. Thus, curve.meth is always NULL and we never take the EC_GROUP_new(meth) code path. ok jsing
* Remove pointless/wrong .meth = 0 entries from curves_list[]tb2023-05-011-55/+1
|
* Mechanically convert curve_list[] to C99 initializerstb2023-05-011-55/+325
| | | | ok jsing
* Clean up handling of nist_curves[]tb2023-05-011-18/+14
| | | | | | | | There's no point in introducing a typedef only for two sizeof() calls. We might as well use an anonymous struct for this list. Make it const while there, drop some braces and compare strcmp() return value to 0. ok jsing
* Move EC_POINT_{get,set}_Jprojective_coordinates to ec_local.htb2023-04-272-10/+12
|
* Nuke doxygen noisetb2023-04-271-421/+37
|
* Clean up ec.h a little.tb2023-04-261-186/+31
| | | | | The doxygen comments are either obvious or otherwise unhelpful and generally an eye sore. Go read the manpage if the header isn't enough.
* GF2m bites the dust. It won't be missed.tb2023-04-259-3320/+9
|
* Remove prototype of EC_GFp_nist_method()tb2023-04-251-8/+1
|
* Move EC_KEY_{insert,set}_key_method_data() to internal-onlytb2023-04-252-18/+7
|