summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/buffer/buffer.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-07-03Convert EC_GROUP_check() to EC_GROUP_get0_order()tb1-10/+3
ok beck jsing
2023-07-03Inline two copies of EC_GROUP_order_bits()tb1-22/+6
This code is way more complicated than it needs to be. Simplify. ec_bits() was particularly stupid. ok beck jsing
2023-07-03some minor fix up;jmc1-5/+5
2023-07-03Bring back no_tls1 and no_tls1_1 as undocumented silently discarded opitonsbeck2-8/+20
While I'm here, change the no_ssl2 and no_ssl3 options to use OPTION_DISCARD as well instead of continuing to set a no-op option flag. ok jsing@ tb@
2023-07-03Switch ECDSA code to using EC_GROUP_get0_order()tb1-25/+17
ok jsing
2023-07-03Provide internal-only EC_GROUP_get0_order()tb2-3/+11
ok jsing
2023-07-03Remove the tls1.0 and 1.1 related options from the openssl(1) toolkitbeck3-159/+20
ok tb@
2023-07-03Another empty line did not want to go intb1-1/+2
2023-07-03Stop testing tls 1.0 and 1.1beck3-9/+5
They have gone behind the barn.
2023-07-03Trade a pair of extra braces for a missing empty linetb1-3/+3
2023-07-02Simplify allocation checkstb1-11/+11
Instead of attempting to allocate a few times and only then check all the returned pointers for NULL, allocate and check one after the othre. This is easier on the eyes and what we usually do. Prompted by a report by Ilya Shipitsin ok beck
2023-07-02Clean up dynamic tables in OPENSSL_cleanup()tb1-1/+10
This is not currently done in OpenSSL, but it looks more like something that was mised rather than desired behavior. There are some thread safety issues here, but those are rife in this codebase anyway (although I heard claims on some versions of this lib being "fully threadsafe"). no objection jsing
2023-07-02Disable TLS 1.0 and TLS 1.1 in libsslbeck9-161/+106
Their time has long since past, and they should not be used. This change restricts ssl to versions 1.2 and 1.3, and changes the regression tests to understand we no longer speak the legacy protocols. For the moment the magical "golden" byte for byte comparison tests of raw handshake values are disabled util jsing fixes them. ok jsing@ tb@
2023-07-02Convert some tables to C99 initializerstb3-42/+249
ok & "happy pirate day" beck
2023-07-02Fix return values of ecx methodstb1-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
2023-07-02Demacro SHA-512.jsing1-54/+112
Use static inline functions instead of macros to implement SHA-512. At the same time, make two key changes - firstly, rather than trying to outsmart the compiler and shuffle variables around, write the algorithm the way it is documented and actually swap the variable contents. Secondly, instead of interleaving the message schedule update and the round, do the full message schedule update first, then process the round. Overall, we get safer and more readable code. Additionally, the compiler can generate smaller and faster code (with a gain of 5-10% across a range of architectures). ok beck@ tb@
2023-07-02Fix typo in previoustb1-2/+2
2023-07-02Use asprintf() to avoid repetition in string constantstb1-6/+13
... since ASN1_bn_print() is stupid. ok jsing
2023-07-02Split ECPKParameters_print()tb1-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
2023-07-02Switch sign_sig() and sign_setup() to using BN_CTXtb1-47/+73
Both these functions use a BN_CTX internally to deal with the EC API that usually requires one. However, they don't actually make use of it. Get the BIGNUMs from the BN_CTX instead, which simplifies the cleanup. Also defer allocation of the ECDSA_SIG to the very end. Instead of using its internal r and s, use two local r and s variables and transfer those to the ECDSA_SIG on success. ok beck jsing
2023-07-02Revert hunk accidentally committed in r1.39tb1-11/+1
2023-07-02Rework handling of the out_kinv and out_r pointerstb1-8/+15
suggested by jsing
2023-07-02Replace bn_sqr_words() with bn_sqr_add_words().jsing1-35/+23
In order to implement efficient squaring, we compute the sum of products (omitting the squares), double the sum of products and then finally compute and add in the squares. However, for reasons unknown the final calculation was implemented as two separate steps. Replace bn_sqr_words() with bn_sqr_add_words() such that we do the computation in one step, avoid the need for temporary BN and remove needless overhead. This gives us a performance gain across most architectures (even with the loss of sse2 on i386, for example). ok tb@
2023-07-02Rename ctx_in into in_ctx, kinvp into out_kinv and rp into out_rtb1-12/+13
2023-07-02Rename a few variables from X to xtb1-14/+14
2023-07-02Simplify things by switching to bn_rand_interval()tb1-22/+19
This avoids some silly dances in ECDSA signature generation by replacing them with a single API call. Also garbage collect the now unnecessary range. ok beck jsing
2023-07-02Unconditionally zero the ECDH keytb1-6/+3
While memset() is quite expensive, we can afford zeroing a few extra bytes to make this code more readable. ok beck jsing
2023-07-02Teach openssl ca about Ed25519 certificatestb1-18/+27
This adds a few logic curlies to end up setting the EVP_MD to EVP_md_null() as required by the API. This way ASN1_item_sign() now knows how to behave. "ok = (rv == 2);" beck
2023-07-02Teach openssl req about EdDSA certstb1-1/+8
After a few things in libcrypto were adjusted, this diff makes issuing certificate requests with Ed25519 work. ok beck
2023-07-02Remove the ability to do tls 1.0 and 1.1 from libtls.beck7-44/+31
With this change any requests from configurations to request versions of tls before tls 1.2 will use tls 1.2. This prepares us to deprecate tls 1.0 and tls 1.1 support from libssl. ok tb@
2023-07-02ECDSA_size(): move order a few lines downtb1-2/+2
2023-07-02Invert method checks to avoid stupid line breakstb1-22/+26
2023-07-02Move the EC_POINT a bit down and a * to the right placetb1-3/+3
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