summaryrefslogtreecommitdiff
path: root/src/lib/libssl/man/X509_get_extension_flags.3 (unfollow)
Commit message (Collapse)AuthorFilesLines
4 daysAdd some regress coverage for SSL_SESSION_dup()tb1-2/+22
ok kenjiro
4 daysThe ssl_verify_param.c test can now link dynamically against libcryptotb1-3/+1
4 daysUse X509_VERIFY_PARAM_get_hostflags() prototype from x509_vfy.htb1-3/+2
4 daysbump lib{crypto,ssl,tls} minors after symbol additiontb3-3/+3
4 daysDocument SSL_SESSION_dup(3)tb1-3/+20
ok kenjiro
4 daysProvide SSL_SESSION_dup()tb4-3/+13
As reported by ajacoutot and sthen, an update to net/neon is blocked on that missing symbol. ok kenjiro
4 daysDocument X509_VERIFY_PARAM_set_hostflags(3)tb1-2/+15
ok kenjiro
4 daysExpose X509_VERIFY_PARAM_get_hostflags()tb4-4/+7
This is needed by Python 3.14, extending the urllib3 nonsense further. This is a trivial getter and it is exercised by the libssl unit test I added for urllib3 (which can now use dynamic linking for libcrypto). Fixes https://github.com/libressl/portable/issues/1202 Thanks to @orbea for the report. ok kenjiro PS: X509_VERIFY_PARAM_get_flags() and X509_VERIFY_PARAM_get_peername() aren't const correct. Fixing this will require some doing...
4 daysImplement ffsl() and ffsll() using the compiler builtin __builtin_ctzlclaudio4-11/+66
now that all archs use at least gcc4. ffsl() and ffsll() are now part of POSIX. OK deraadt@, input from miod@ and jsg@
4 dayslibssl: const correct the ssl_session_dup() helpertb2-5/+5
This allows a const correct SSL_SESSION_dup() implementation at the cost of casting away const due to the const incorrect CRYPTO_dup_ex_data()... (I should look into fixing that, but things like rust-openssl make that hard at this point in the release cycle.) ok kenjiro (as part of a larger diff)
5 daysPrepare for gcc 3 leaving the building, COMPILER_VERSION can no longer getmiod1-4/+4
set to "gcc3".
5 daysRevert r1.286 now that all supported platforms have __builtin_clz.miod1-20/+1
8 daysGive this test a chance to pass on 32-bit platforms.miod1-1/+2
12 daysEnsure that we specify the correct group when creating a HelloRetryRequest.jsing2-9/+4
When processing the client supported groups and key shares extensions, the group selection is currently based on client preference. However, when building a HRR the preferred group is identified by calling tls1_get_supported_group(). If SSL_OP_CIPHER_SERVER_PREFERENCE is enabled, group selection will be based on server instead of client preference. This in turn can result in the server sending a HRR for a group that the client has already provided a key share for, violating the RFC. Avoid this issue by storing the client preferred group when processing the key share extension, then using this group when creating the HRR. Thanks to dzwdz for identifying and reporting the issue. ok beck@ tb@
2025-10-11use strtonum() instead of atoi(), and error out for bad numbersderaadt1-2/+7
This generates a host-order number, so the ntohs() for getservbyport() was wrong, that should always have been htons(). The transform is the same, but misleading. ok tb
2025-10-10const correct X509_VERIFY_PARAM_get_hostflags()tb2-4/+4
This is currently an internal helper only used by a regress test. We'll have to expose in the public API for Python 3.14: https://github.com/libressl/portable/issues/1202
2025-10-10Remove unused sequence member from x509_revoked_sttb2-11/+2
To allow binary search for looking up if a cert was revoked in a CRL, the list of revoked serial numbers is sorted in crl_lookup(). On the other hand, to be able to output the DER that was actually signed by the issuer, the original order needs to be remembered. Before the encoding was cached, there was a mechanism that would restore the original order on serialization using the .sequence member. This was done without a lock and was thus racy (hilarity would ensue if one thread performed a CRL lookup while another thread serialized the same CRL). When the racy mechanism was removed in 2004, the only reader of .sequence, X509_REVOKED_seq_cmp(), was also removed, and this piece of dead code was left behind. Garbage collect it. ok kenjiro
2025-10-07Revert previous. Let's deal with it when the portable release is out.tb1-7/+3
2025-10-07test framework: allow overriding the "/tmp/" directorytb1-3/+7
Windows is super picky when it comes to paths, so it needs some special massaging. Will let us avoid a patch or hack in portable.
2025-09-30cms: fix incorrect length check in kek_unwrap_key()tb1-2/+2
An incorrect length check can result in a 4-byte overwrite and an 8-byte overread. From Stanislav Fort and Viktor Dukhovni via OpenSSL. CVE-2025-9230. ok jsing
2025-09-30cms_RecipientInfo_pwri_crypt: fix incorrect return checktb1-3/+3
ok jsing
2025-09-30cms_RecipientInfo_pwri_crypt: plug leak of kekalgtb1-3/+3
ok jsing
2025-09-29libcrypto: rsa gen: min. distance between p and qjan1-3/+19
This is required in NIST Special Publication 800-56B Revision 2 "Recommendation for Pair-Wise Key Establishment Using Integer Factorization Cryptography": 6 RSA Key Pairs 6.2 Criteria for RSA Key Pairs for Key Establishment 6.2.1 Definition of a Key Pair 3. The prime factors p and q shall be generated using one of the methods specified in Appendix B.3 of FIPS 186 such that: c. |p – q| > 2nBits/2−100 ok djm@, tb@
2025-09-28Bump libressl version to 4.2.0tb1-3/+3
The version check will break the rust-openssl regress unless you have rust-openssl-tests-20250927p0.
2025-09-28Revert NULL,0 -> OPENSSL_FILE,OPENSSL_LINE from r1.78tb1-9/+9
This wasn't part of the initial proposal and causes issues in curl downstream. We could pile more hacks on top of this, but at some point this is getting too silly. Relatedly, most of the FOOerr() could be removed, although PEMerr(), RSAerr() and SSLerr() are used by some downstreams and probably not worth patching out. Discussed with @vszakats in https://github.com/libressl/portable/issues/1154
2025-09-17ec_asn1_test: add an example using BLS12-377tb1-1/+80
This exercises the cofactor guessing code with a large cofactor. Thanks to Daniel Bleichenbacher for pointing out this example. This contains a hack to use a bogus OID since this curve has none.
2025-09-16wycheproof: provide PBKDF2 test harnesstb1-2/+58
Skip the tests for now since they increase the test's runtime by ~50%. A later commit will gate these tests behind REGRESS_SKIP_SLOW.
2025-09-16mlkem_generate_key_external_entropy: normalize sizeof() usetb1-2/+2
2025-09-16Simplify MLKEM_{private,public}_key_new()tb1-19/+7
This removes two unnecessary variables in each of these functions, normalizes the sizeof() use and undoes unnecessary line wraps. ok deraadt djm kenjiro
2025-09-15wycheproof: run HMACSM3 tests against libcryptotb1-4/+7
2025-09-15aes: move explicit_bzero() after NULL checktb1-5/+7
CID 621601 621602 ok djm jsg jsing miod
2025-09-15MLKEM_private_key_new: add missing space before =tb1-2/+2
2025-09-14wycheproof: run ML-KEM test vectors against libcryptotb1-2/+139
2025-09-14mlkem_public_to_private: fix overread/information leaktb1-3/+3
After the guts of MLKEM_public_key were changed from a union to a struct, the aligner grew the struct, leaking as many bytes of private key data as the struct grew (on normal platforms that would be 2). Ideally this would all be a bit more robust. CID 621603 621604 ok jsing kenjiro
2025-09-09wycheproof: zap stray empty linetb1-2/+1
2025-09-08Call aes_set_encrypt_key_generic() from aes_set_decrypt_key_generic().jsing1-2/+2
With the renaming, aes_set_decrypt_key_generic() should now call aes_set_encrypt_key_generic() directly.
2025-09-08Allow generic AES implementation to be used as a fallback.jsing3-19/+65
Rename the C based AES implementation to *_generic() and provide *_internal() wrappers for these. This allows for architectures to provide accelerated versions without having to also provide a fallback implementation. ok tb@
2025-09-08Zero the round keys on AES_set_{en,de}crypt_key() function entry.jsing1-1/+5
This avoids leaving previous round keys around on failure, or leaving parts of previous round keys behind if reused with a smaller key size. ok tb@
2025-09-08Validate AES_set_{encrypt,decrypt}_key() inputs at API boundary.jsing2-18/+28
Every aes_set_{encrypt,decrypt}_key_internal() implementation is currently required to check the inputs and return appropriate error codes. Pull the input validation up to the API boundary, setting key->rounds at the same time. Additionally, call aes_set_encrypt_key_internal() directly from aes_set_decrypt_key_internal(), rather than going back through the public API. ok tb@
2025-09-08wycheproof: rework test selectiontb1-69/+82
Since this has grown organically, the test selection has become a weird mix of globs, regexes and test variants and it is hard to reason about what is run and why. Instead, load all the json files from testvectors_v1/ and look at algorithm (almost always available) and test schema to figure out if we support it in libcrypto and the test harness. This separates the logic of the test runner better from the test selection. Also make it a fatal error if we don't explicitly skip an unknown algorithm.
2025-09-08wycheproof: skip tests using curve448/edwards448tb1-7/+12
2025-09-08wycheproof: skip tests using SHAKE-128 and SHAKE-256tb1-1/+17
2025-09-08wycheproof: rename skipSmallCurve() into skipCurve()tb1-4/+6
This prepares an upcoming change by not only skipping small curves but also binary curves that have test vectors.
2025-09-08wycheproof: determine the test variant from the JSON schematb1-30/+41
2025-09-07wycheproof: retire the ECDSA webcrypto teststb1-71/+2
The webcrypto test files for P-256, P-384, and P-521 are identical to the P1363 test files for these curves with the hashes SHA-256, SHA-384, and SHA-512, respectively. The only real differences in the test paths is the Go glue code to translate to libcrypto, so they're pointless.
2025-09-07Remove BN_DIV2W.jsing3-28/+4
The BN_DIV2W define provides a code path for double word division via the C compiler, which is only enabled on hppa. Simplify the code and mop this up. ok tb@
2025-09-07Re-enable bn_sqr_words() assembly.jsing3-8/+8
This is now only on amd64.
2025-09-07Rename old assembly bn_sqr_words() to bn_sqr_word_wise().jsing6-30/+27
bn_sqr_words() does not actually compute the square of the words, it only computes the square of each individual word - rename it to reflect reality. Discussed with tb@
2025-09-06wycheproof: go fmttb1-4/+4
2025-09-06wycheproof: use a cleaner way of dealing with P1363 signature lengthtb1-4/+12