summaryrefslogtreecommitdiff
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add missing pointer invalidationlibressl-v3.6.3OPENBSD_7_2tb2023-05-261-1/+2
| | | | | | | ok tb from jcs This is errata/7.2/026_ssl.patch.sig
* Fix a number of out of bound reads in DNS response parsing.bluhm2023-03-161-1/+7
| | | | | | from millert@; originally from djm@; OK deraadt@ florian@ bluhm@ this is errata/7.2/022_resolv.patch.sig
* Fix arbitrary memory read in GENERAL_NAME_cmp()bluhm2023-02-071-2/+3
| | | | | | | | | | | | | | | | | | | | The ASN.1 template for GENERAL_NAME and its corresponding C structure disagree on the type of the x400Address member. This results in an ASN.1 string to be considered as an ASN.1 type, which allows an attacker to read (essentially) arbitrary memory. Fix this by forcing comparison as strings. While the underlying type confusion has been present since time immemorial, this particular bug came with the EdiPartyName fix (6.8/008_asn1.patch.sig). Reported by David Benjamin, fix suggested by jsing. Release date for this was set to be January 31. Unilaterally pushed back to February 7 by OpenSSL by way of announcement of many completely unrelated embargoed issues, some of which they had been sitting on since July 2020. from tb@; OK beck@ jsing@ this is errata/7.2/018_x509.patch.sig
* Unbreak ASN.1 indefinite length encoding.libressl-v3.6.2libressl-v3.6.1tb2022-10-201-4/+4
| | | | | | | | | | | | | In r1.25 of tasn_enc.c a check was added to ensure that asn1_ex_i2c() returned the same value on both calls, however in the ndef case the len variable gets changed between calls. Keep a copy of the original value to test against. Issue reported by niklas, who encountered a test failure in rust-openssl. ok miod@ tb@; from jsing This is errata/7.2/002_asn1.patch.sig
* Store errors that result from leaf certificate verification.tb2022-10-201-8/+12
| | | | | | | | | | | | | | | | | In the case that a verification callback is installed that tells the verifier to continue when a certificate is invalid (e.g. expired), any error resulting from the leaf certificate verification is not stored and made available post verification, resulting in an incorrect error being returned. Also perform leaf certificate verification prior to adding the chain, which avoids a potential memory leak (as noted by tb@). Issue reported by Ilya Shipitsin, who encountered haproxy regress failures. ok tb@; from jsing This is errata/7.2/001_x509.patch.sig
* Tweak symbols test in such a way that it would have caught the recenttb2022-09-212-3/+9
| | | | | Symbols.list mistake: undefine aliases (except _cfb block ciphers which are aliases for historical reasons). Use -Wl,--no-allow-shlib-undefined.
* Remove PKCS12_MAKE_{,SH}KEYBAG from Symbols.listtb2022-09-191-2/+0
| | | | | | | | | | | | | | These functions were renamed in the last bump #define PKCS12_MAKE_KEYBAG PKCS12_SAFEBAG_create0_p8inf #define PKCS12_MAKE_SHKEYBAG PKCS12_SAFEBAG_create_pkcs8_encrypt They don't appear in the compiled library itself, so no further bump required. Fixes libressl-portable/portable#791 Found the hard way by vollkommenheit ok deraadt jsing
* Allow TLSv1.3 clients to send CCS without middlebox compatibility mode.jsing2022-09-171-4/+2
| | | | | | | | | | | | | | | | | While RFC 8446 is clear about what legacy session identifiers can be sent by a TLSv1.3 client and how middlebox compatibility mode is requested, it is delightfully vague about the circumstances under which a client is permitted to send CCS messages. While it does not make sense for a client to send CCS messages when they are not requesting middlebox compatibility mode, it is not strictly forbidden by the RFC and at least one (unknown) TLSv1.3 stack has been observed to do this in the wild. Revert part of the previous change and allow clients to send CCS messages, even if they are not requesting middlebox compatibility mode. Found the hard way by florian@ ok tb@
* Link to SSL_read_early_data(3)kn2022-09-171-3/+3
| | | | OK tb
* Add OID for RPKI signedTAL objectsjob2022-09-152-0/+2
| | | | | | | | | IANA made a permanent registration in the SMI Security for S/MIME CMS Content Type registry at https://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml#security-smime-1 for signed objects conforming to draft-ietf-sidrops-signed-tal. OK tb@
* Use LONG_MAX as the limit for ciphers with long based APIs.jsing2022-09-156-169/+120
| | | | | | | | | | | These ciphers have long based APIs, while EVP has a size_t based API. The intent of these loops is to handle sizes that are bigger than LONG_MAX. Rather than using the rather crazy EVP_MAXCHUNK construct, use LONG_MAX rounded down to a large block size, ensuring that it is a block size multiple. Revert the recently added overflow checks now that this is handled more appropriately. ok tb@
* remove an extraneous empty linetb2022-09-141-2/+1
|
* Stop pretending that EVP_CIPHER cleanup can fail.jsing2022-09-134-14/+15
| | | | | | | Now that EVP_CIPHER is opaque, stop pretending that EVP_CIPHER cleanup can fail. ok tb@
* zap extra .Pptb2022-09-121-2/+1
|
* Stop documenting i2c_ASN1_INTEGER.tb2022-09-122-48/+4
| | | | | This is no longer public API. Also remove some comments about i2c and c2i functions being intentionally undocumented since they are no longer public.
* Add CBC, CFB64 and OFB64 test coverage for RC2tb2022-09-121-34/+463
| | | | From Joshua Sing
* whitespace nitstb2022-09-121-4/+5
|
* Move division by two out of sizeof()tb2022-09-121-3/+3
|
* Error checks for EVP_*tb2022-09-121-25/+36
| | | | CID 356777
* Move division by two out of sizeof()tb2022-09-121-3/+3
| | | | CID 356778
* Add regression tests for the sendmmsg and recvmmsg system calls.mbuhl2022-09-114-2/+410
|
* Enforce the minimum TLS version requirement for QUIC.jsing2022-09-111-1/+9
| | | | ok tb@
* Adjust for opaque structs in ts.htb2022-09-111-14/+24
| | | | ok jsing
* Adjust for opaque structs in pkcs12.htb2022-09-111-25/+38
| | | | ok jsing
* bump major after libcrypto and libssl major bumptb2022-09-111-2/+2
|
* Crank major after symbol addition and libcrypto major bumptb2022-09-111-2/+2
|
* Update Symbols.listtb2022-09-111-0/+11
| | | | ok jsing
* Expose SSL_get_share_{group,curve}() and related #definestb2022-09-111-7/+3
| | | | ok jsing
* Expose some error codes needed for QUIC supporttb2022-09-111-3/+1
| | | | ok jsing
* Define LIBRESSL_HAS_QUICtb2022-09-111-0/+1
| | | | ok jsing
* Bump major after symbol addition and removal and struct visibility changestb2022-09-111-2/+2
|
* Update Symbols.listtb2022-09-111-9/+31
| | | | ok jsing
* Make structs in ts.h opaquetb2022-09-112-215/+223
| | | | ok jsing
* Make structs in pkcs12.h opaquetb2022-09-114-162/+45
| | | | ok jsing
* Expose EVP_chacha20_poly1305()tb2022-09-111-3/+1
| | | | ok jsing
* Expose various EVP AEAD constants for EVP ChaCha and QUICtb2022-09-111-3/+1
| | | | ok jsing
* Expose OPENSL_cleanup()tb2022-09-111-3/+1
| | | | ok jsing
* Make BIO_info_cb() identical to bio_info_cb()tb2022-09-111-2/+3
| | | | | | | | | | | | | Various projects use bio_info_cb and BIO_info_cb interchangeably, for example mupdf and freerdp. This is because this was changed in OpenSSL commit fce78bd4 (2017), triggered by new warnings in gcc 8. https://github.com/openssl/openssl/pull/4493 This results in some scary compiler warnings and useless patches in ports. Nobody seems to be using the old bio_info_cb() version. ok jsing
* Remove c2i_* and i2c_* from public visibilitytb2022-09-112-10/+11
| | | | | | | | This removes c2i_ASN1_OBJECT(), {c2i,i2c}_ASN1_BIT_STRING() and {c2i,i2c}_ASN1_INTEGER(). These are not part of the OpenSSL 1.1 API and should never have been exposed in the first place. ok jsing
* link asn1object test statically in preparation for upcoming bumptb2022-09-111-1/+2
|
* Be stricter with middlebox compatibility mode in the TLSv1.3 server.jsing2022-09-111-5/+21
| | | | | | | | | | Only allow a TLSv1.3 client to request middlebox compatibility mode if this is permitted. Ensure that the legacy session identifier is either zero length or 32 bytes in length. Additionally, only allow CCS messages on the server side if the client actually requested middlebox compatibility mode. ok tb@
* Only permit CCS messages if requesting middlebox compatibility mode.jsing2022-09-111-4/+4
| | | | | | | | Currently the TLSv1.3 client always permits the server to send CCS messages. Be more strict and only permit this if the client is actually requesitng middlebox compatibility mode. ok tb@
* Use CBS when procesing a CCS message in the legacy stack.jsing2022-09-111-4/+7
| | | | ok tb@
* Ensure there is no trailing data for a CCS received by the TLSv1.3 stack.jsing2022-09-111-1/+3
| | | | ok tb@
* Replace archaic \*(Lt and \*(Gt by plain < and >, respectively,schwarze2022-09-111-7/+7
| | | | | because these inspire devotion to cargo cult in developers. Cleanup suggested by kn@.
* .Li -> .Vt where appropriate;jmc2022-09-1124-106/+103
| | | | | | from josiah frentsos, tweaked by schwarze ok schwarze
* fix repeated wordsjsg2022-09-112-6/+6
|
* Increment the input and output position for EVP AES CFB1.jsing2022-09-101-1/+3
| | | | | | | | | | The length is decremented, however the input is repeatedly read from and output written to the same position. Correct this by actually incrementing the input and output pointers. Found via OpenSSL 604e591ed7, ok tb@
* Use correct length for EVP CFB mode ciphers.jsing2022-09-107-22/+22
| | | | | | | | | | The BLOCK_CIPHER_* macros contained a bug where the total length is passed to the underlying cipher implementation, rather than the length of the current chunk. Correct this and use the chunk length instead. Should address the remaining issues reported by Coverity. ok tb@
* Use CBS to parse TLS alerts in the legacy stack.jsing2022-09-101-4/+10
| | | | ok tb@