summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Inline an instance of OPENSSL_memdup()tb2024-07-091-2/+11
|
* Tidy up includestb2024-07-091-3/+7
|
* OPENSSL_free() -> free()tb2024-07-091-1/+1
|
* OPENSSL_cleanse() -> explicit_bzero()tb2024-07-091-3/+3
|
* OPENSSL_clear_free() -> freezero()tb2024-07-091-4/+4
|
* OPENSSL_malloc() -> malloc()tb2024-07-091-1/+1
|
* Spell OPENSSL_zalloc() correctly as calloc()tb2024-07-091-1/+1
|
* Mechanically replace KDFerr() with KDFerror()tb2024-07-091-8/+8
|
* Add a verbatim copy of tls1_prf.c from OpenSSL 1.1.1tb2024-07-091-0/+278
| | | | | | | | | | | | From the last public commit b372b1f76450acdfed1e2301a39810146e28b02c of the OpenSSL_1_1_1-stable branch SHA256 (kdf/tls1_prf.c) = a519d3ff721d4ec59befac8586e24624fa87d9d8f6479327f7af58d652b6e4e5 Will be beat (a little bit) into shape in tree before linking it to the build. ok jsing
* Add various defines for TLS1-PRFtb2024-07-092-2/+36
| | | | ok jsing
* Add EVP_PKEY_TLS1_PRF as alias for NID_tls1_prftb2024-07-091-1/+2
| | | | ok jsing
* Choose fixed NID for TLS1-PRFtb2024-07-091-0/+1
|
* Add NID for TLS1-PRFtb2024-07-091-0/+2
| | | | ok jsing
* Don't push the error stack in ssl_sigalg_select()beck2024-07-091-2/+1
| | | | | | | Doing so breaks certificate selection if a TLS 1.3 client does not support EC certs, and needs to fall back to RSA. ok tb@
* Fix TLS key share check to not fire when using < TLS 1.3beck2024-07-091-7/+6
| | | | | | | | | | | | The check was being too aggressive and was catching us when the extension was being sent by a client which supports tls 1.3 but the server was capped at TLS 1.2. This moves the check after the max version check, so we won't error out if we do not support TLS 1.3 Reported by obsd@bartula.de ok tb@
* do not need to force bss values to 0deraadt2024-07-091-2/+2
|
* Actually enable namespaced builds in both libcrypto and libsslbeck2024-07-092-11/+4
| | | | (instead of commiting only one part)
* Add bounded attributes to hmac.htb2024-07-091-5/+13
| | | | ok beck
* KNF a pile of else if blocks; ok tbderaadt2024-07-091-19/+9
|
* Enable namespaced builds by default for libssl and libcrypto.beck2024-07-091-3/+3
| | | | | | | | | | | Some further refinements will happen to the build process to automatically generate the Symbols.namespace file, and to remove our last public unhidden symbol (which was a mistake, but waits for a major bump to get removed) But for now everything should be using this. ok tb@
* Hide remaining unused ERR functions in err.hbeck2024-07-094-5/+9
| | | | ok tb@
* Hide CRYPTO_get_dynlock_create_callbackbeck2024-07-093-2/+5
| | | | ok tb@
* Hide DES global variablesbeck2024-07-094-3/+11
| | | | ok tb@
* Add missing symbols to Symbols.namespacebeck2024-07-091-0/+10
| | | | ok tb@
* Remove duplicates from Symbols.namespacebeck2024-07-091-6/+0
| | | | ok tb@
* Hide symbols for two missed public functions in bio.hbeck2024-07-094-3/+9
| | | | ok tb@
* Hide global _it symbols in pkcs12.hbeck2024-07-093-2/+10
| | | | ok tb@
* Hide global _it symbola in cms.hbeck2024-07-093-2/+10
| | | | ok tb@
* Hide global _it symbols in dsa.hbeck2024-07-083-2/+13
| | | | ok tb@
* Hide global _it symbols in rsa.hbeck2024-07-083-2/+20
| | | | ok tb@
* Guard variable declarations to unbreak non-namespaced builds.beck2024-07-086-8/+18
| | | | ok tb@
* Hide global _it symbols in asn1t.hbeck2024-07-086-8/+20
| | | | ok tb@
* Hide global _it symbols in pkcs7.hbeck2024-07-083-2/+39
| | | | ok tb@
* remove a further spkac reference; ok tbjmc2024-07-081-5/+3
|
* Hide global _it variables in ocsp.hbeck2024-07-083-2/+49
| | | | ok tb@
* Hide global _it variables in asn1.hbeck2024-07-089-8/+77
| | | | ok tb@
* Hide global _it variables in x509.hbeck2024-07-0815-14/+77
| | | | ok tb@
* Hide global _it variables in x509v3.hbeck2024-07-0815-14/+113
| | | | ok tb@
* Pretend to clarify the way ipv6_asc() worksjca2024-07-081-4/+5
| | | | | | | | | Give example IPv6 addresses to clarify what is meant with 1, 2 or 3 zero length elements. tb made me look. perverted, twisted, crippled
* Adjust regress for SPKAC removaltb2024-07-081-38/+1
| | | | ok jsing
* Adjust manpage for SPKAC removaltb2024-07-081-84/+4
| | | | ok jsing
* Remove spkac subcommandtb2024-07-084-317/+4
| | | | | | | | | | | | | | Google killed efforts to have SPKAC in html5 by zapping it from chrome a decade ago. This effort doesn't look like it's going anywhere: https://datatracker.ietf.org/doc/draft-leggett-spkac/ Unfortunately, PHP and Ruby still support NETSCAPE_SPKI, so we can't kill that code, but I see no real reason we need to support this in our openssl command. If the need should arise we can write a somewhat less poor version of this. ok jsing
* Remove spkac handling from openssl(1) catb2024-07-081-187/+3
| | | | | | | This is very poorly written code and now the only consumer of some public API that should not have survived the turn of the millenium. ok jsing
* signal handler must use the save_errno dance, and massage a variablederaadt2024-07-011-2/+5
| | | | | of type 'volatile sig_atomic_t' ok tb
* Remove lhash statistics.jsing2024-06-302-30/+2
| | | | | | These are not exactly useful and we previously stopped exposing them. ok tb@
* fix typotb2024-06-291-2/+2
|
* Add more regress coverage for SSL_select_next_proto()tb2024-06-281-1/+291
|
* The ALPN callback should really ignore the out parameter if there'stb2024-06-281-3/+13
| | | | | | | no overlap. Document that explicitly. Also make it more explicit that that the caller must work with a copy of out. ok jsing
* Fix SSL_select_next_proto()tb2024-06-281-29/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SSL_select_next_proto() is already quite broken by its design: const in, non-const out, with the intention of pointing somewhere inside of the two input pointers. A length returned in an unsigned char (because, you know, the individual protocols are encoded in Pascal strings). Can't signal uailure either. It also has an unreachable public return code. Also, due to originally catering to NPN, this function opportunistically selects a protocol from the second input (client) parameters, which makes little sense for ALPN since that means the server falls back to a protocol it doesn't (want to) support. If there's no overlap, it's the callback's job to signal error to its caller for ALPN. As if that wasn't enough misdesign and bugs, the one we're concerned with here wasn't reported to us twice in ten years is that if you pass this API a zero-length (or a sufficiently malformed client protocol list), it would return a pointer pointing somewhere into the heap instead into one of the two input pointers. This pointer could then be interpreted as a Pascal string, resulting in an information disclosure of up to 255 bytes from the heap to the peer, or a crash. This can only happen for NPN (where it does happen in old python and node). A long time ago jsing removed NPN support from LibreSSL, because it had an utter garbage implementation and because it was practically unused. First it was already replaced by the somewhat less bad ALPN, and the only users were the always same language bindings that tend to use every feature they shouldn't use. There were a lot of complaints due to failing test cases in there, but in the end the decision turned out to be the right one: the consequence is that LibreSSL isn't vulnerable to CVE-2024-5535. Still, there is a bug here to fix. It is completely straightforward to do so. Rewrite this mess using CBS, preserving the current behavior. Also, we do not follow BoringSSL's renaming of the variables. It would result in confusing code in almost all alpn callbacks I've seen in the wild. The only exception is the accidental example of Qt. ok jsing
* Remove handling of SSLv2 client hello messages.jsing2024-06-281-205/+1
| | | | | | | | | This code was only previously enabled if the minimum enabled version was TLSv1.0 and a non-version locked method is in use. Since TLSv1.0 and TLSv1.1 were disabled nearly a year ago, this code is no longer ever being used. ok tb@