summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/dh/dh_pmeth.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2 dayslhash: add missing spaces before assignment operatortb1-4/+4
3 daystlsext: stop sending SNI before ALPN in clientstb1-24/+1
All supported releases of LibreSSL ensure that the corresponding callbacks are called in a predefined order rather than honoring the order in which a client sends its extensions. Therefore the ALPN callback for apache-httpd's virtual host setups can rely on SNI information being available and we no longer need to work around this on hte client side. Cuts the amount of code needed for tlsext randomization in half. ok jsing
3 daystlsexttest: remove check that clients receive SNI before ALPNtb1-33/+3
The next commit will remove the kludge for compatibility of Apache with older libressl, so remove the corresponding regress coverage and only check that PSK is the last extension.
5 daysEC_GROUP_check.3: rephrase a sentence to avoid a word repetitiontb1-4/+4
5 daysEC_GROUP_new_by_curve_name.3: escape a - in code.tb1-3/+3
6 daysc2sp: drop OpenSSL 1.1 and 3.2, add 3.5tb1-2/+2
7 daysEC_POINT_point2oct: remove in_ prefix in RETURN VALUEStb1-5/+5
7 daysEC_GROUP_new_curve_GFp: some fixes in the RETURN VALUE sectiontb1-9/+12
7 daysFix markup for EC_GROUP_set_point_conversion_formtb1-4/+5
8 daysFix up a few dangling referencestb4-13/+12
8 daysRework EC documentationtb13-1242/+1998
This replaces the giant, poor quality and outdated EC_GROUP_copy.3, EC_GROUP_new.3, and EC_POINT_new.3 manuals with seven new manuals written from scratch. * EC_GROUP_new_by_curve_name() is the entry point for builtin curves, * EC_GROUP_new_curve_GFp() describes lower level API that should not usually be needed apart from a handful of accessors. * EC_GROUP_check() contains two functions that applications should not need because either you know for certain something is an elliptic curve (so these checks are pointless) or you should not use it. * EC_GROUP_get_curve_name() describes some low level ASN.1 footguns and corresponding getters. * EC_POINT_new() contains the simple EC_POINT allocation and freeing API * EC_POINT_get_affine_coordinates() contains the coordinate accessors * EC_POINT_point2oct() is about encoding elliptic curve points While all this is quite far from perfect, the diff is getting too big and it will be easier to improve this in tree. It is definitely more repetitive than I would like it to be. Reviews, tweaks and general feedback are of course welcome. discussed with jsing
8 daysBN_new: zap an anachronistic admonitiontb1-4/+2
-This type should be considered opaque and fields should not be modified -or accessed directly. The type has long been opaque and reasonable people will not do things that permit them to access the fields of opaque types directly. Of course, in the vicinity of OpenSSL code and API all sorts of insanity actually exist.
8 daysRestore two #if defined(GHASH) that were incorrectly removed.jsing1-5/+5
Also condition on defined(GHASH_CHUNK) since this is used within these blocks. This makes the conditionals consistent with other usage. Fixes build with TABLE_BITS == 1.
8 daysUnifdef OPENSSL_SMALL_FOOTPRINT.jsing1-13/+5
ok tb@
8 daysUse the OPENSSL_SMALL_FOOTPRINT code in gcm_init_4bit().jsing1-32/+2
A modern compiler will unroll these loops - LLVM produces identical code (at least on arm64). Drop the manually unrolled version and have code that is more readable and maintainable. ok tb@
10 daysMop up all of the GETU32/BSWAP4/BSWAP8 macros since they're now unused.jsing2-44/+2
ok beck@ tb@
10 daysRewrite gcm_gmult_1bit() to avoid sizeof(long) hacks.jsing1-22/+8
We're already using 64 bit variables, so just continue to do so and let the compiler deal with code generation. While here, use unsigned right shifts instead of relying on signed right shifts and implementation-defined behaviour (which the original code did). Feedback from lucas@ ok beck@ tb@
10 daysFix CRYPTO_gcm128_decrypt() when compiled with TABLE_BITS == 1.jsing1-3/+3
This appears to have been broken since 2013 when OpenSSL commit 3b4be0018b5 landed. This added in_t and out_t variables, but continued to use in and out instead. Yet another reason why untested conditional code is a bad thing. ok beck@ tb@
10 daysUnifdef OPENSSL_SMALL_FOOTPRINT.jsing5-23/+5
We do not build with OPENSSL_SMALL_FOOTPRINT and it removes more untested code paths. Request by tb@ (and it was already on my TODO list!)
11 daysMop up OPENSSL_FIPSAPI define.jsing1-3/+1
11 daysUse OPENSSL_assert() instead of assert().jsing1-10/+6
While here, tidy up the assignment of n and test directly. ok tb@
11 daysRemove now unused PUTU32 macros from modes_local.h.jsing1-3/+1
ok tb@
11 daysUse crypto_load_be32toh()/crypto_store_htobe32() instead of GETU32/PUTU32.jsing1-4/+6
ok tb@
12 daysMop up unused MODES_DEBUG.jsing7-49/+7
12 daysFix another #include that was hiding.jsing1-2/+2
12 daysTidy includes.jsing6-14/+25
12 daysUse standard integer types rather than custom typedefs.jsing2-25/+21
Replace u32 with uint32_t, remove unused u16 and replace u8 with uint8_t. ok tb@
13 daysMove AES public functions from aes_core.c to aes.c.jsing2-56/+47
This is where almost all of the public functions exist. ok beck@ tb@
14 daysFix x509's -nameopt default and spell an option correctlykn1-4/+4
Feedback OK tb
2025-04-18Fix indentation and line wrapping.jsing1-17/+15
2025-04-18Remove BS-AES and VP-AES from EVP.jsing3-137/+9
The bitsliced and vector permutation AES implementations were created around 2009, in attempts to speed up AES on Intel hardware. Both require SSSE3 which existed from around 2006. Intel introduced AES-NI in 2008 and a large percentage of Intel/AMD CPUs made in the last 15 years include it. AES-NI is significantly faster and requires less code. Furthermore, the BS-AES and VP-AES implementations are wired directly into EVP (as is AES-NI currently), which means that any consumers of the AES_* API are not able to benefit from acceleration. Removing these greatly simplifies the EVP AES code - if you just happen to have a CPU that supports SSSE3 but not AES-NI, then you'll now use the regular AES assembly implementations instead. ok kettenis@ tb@
2025-04-18SSL_set_tlsext_host_name: as a setter it cannot take a const ssltb1-3/+3
2025-04-18Remove two unused defines, update standard referencetb1-7/+3
ok jsing
2025-04-18Use 'ctx' for sha3_ctx variables, rather than the less readable 'c'.jsing2-36/+36
ok tb@
2025-04-18Fix annoying whitespacetb4-52/+52
2025-04-18Pull casts from void * to uint8_t * up to variables, rather than inline.jsing1-9/+11
ok tb@
2025-04-18Use two temporary variables in sha3_keccakf(), rather than reusing bc[0].jsing1-8/+8
ok tb@
2025-04-18Use crypto_rol_u64() instead of a separate ROTL64 define.jsing1-5/+4
ok tb@
2025-04-17Use hyphenated spelling for the SHAs except for the APItb12-41/+42
The mix of SHA256 and SHA-256 is jarring, so use FIPS's spelling. Leave HMAC-SHA256 as it is and fix a nearby RIPEMD-160.
2025-04-14Enable remaining tests with NULL, 0tb2-9/+3
Now that libc is fixed, we can do this also for md5, rmd160 and sha1.
2025-04-14Link hash regress to buildtb1-1/+2
2025-04-14Add some regress coverage for the hashes in libctb2-0/+946
Prompted by a pending diff by claudio
2025-04-14Update openssl.1 for msie_hack removaltb1-21/+4
ok jmc jsing
2025-04-14Remove openssl ca -msie_hacktb1-31/+2
The nineties called and wanted their garbage back. ok jsing
2025-04-13parse_test_file()tb1-1/+3
gcc 14 needs a hint that ld != NULL beyond the use of ld->data in the previous line. I guess aggressive inlining is becoming too aggressive. What a pile of junk.
2025-04-13Avoid compiler warning on some OStb1-1/+1
Some OS declare arc4random() with __attribute__((warn_unused_result)) causing this test to whine. So explicitly ignore the return value. Reported by scheiba in libressl/portable Fixes #1151
2025-03-28x509_policy: zap an extra stb1-2/+2
2025-03-28x509_policy: certificats -> certificatestb1-2/+2
2025-03-28typos: us -> is, te -> the (twice)tb1-3/+3
2025-03-28typo: primtive -> primitivetb2-4/+4