summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_lib.c
diff options
context:
space:
mode:
authortb <>2021-02-03 07:06:14 +0000
committertb <>2021-02-03 07:06:14 +0000
commit70029edfad38276befdaee62f4fe7e084070c0cd (patch)
tree9f524641600313fef6d235a1c7bfeced27fbe075 /src/lib/libssl/ssl_lib.c
parent7708b34c3988d3cd2e01b8bd5d4f1a64461e6464 (diff)
downloadopenbsd-70029edfad38276befdaee62f4fe7e084070c0cd.tar.gz
openbsd-70029edfad38276befdaee62f4fe7e084070c0cd.tar.bz2
openbsd-70029edfad38276befdaee62f4fe7e084070c0cd.zip
This is errata/6.8/013_libressl.patch.siglibressl-v3.2.4
Various interoperability issues and memory leaks were discovered in libcrypto and libssl. The new verifier is not bug compatible with the old verifier and caused many issues by failing to propagate errors correctly, returning different error codes than some software was trained to expect and otherwise failing when it shouldn't. While much of this is fixed in -current, it's still not perfect, so switching back to the legacy verifier is preferable at this point. Other included fixes: * Unbreak DTLS retransmissions for flights that include a CCS * Only check BIO_should_read() on read and BIO_should_write() on write * Implement autochain for the TLSv1.3 server * Use the legacy verifier for AUTO_CHAIN * Implement exporter for TLSv1.3 * Free alert_data and phh_data in tls13_record_layer_free() * Plug leak in x509_verify_chain_dup() * Free the policy tree in x509_vfy_check_policy() Original commits by jsing and tb ok inoguchi jsing
Diffstat (limited to 'src/lib/libssl/ssl_lib.c')
-rw-r--r--src/lib/libssl/ssl_lib.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c
index 6e375e1c09..1cf64d1301 100644
--- a/src/lib/libssl/ssl_lib.c
+++ b/src/lib/libssl/ssl_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_lib.c,v 1.234 2020/09/24 18:12:00 jsing Exp $ */ 1/* $OpenBSD: ssl_lib.c,v 1.234.4.1 2021/02/03 07:06:13 tb Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -1710,8 +1710,17 @@ SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen,
1710 const char *label, size_t llen, const unsigned char *p, size_t plen, 1710 const char *label, size_t llen, const unsigned char *p, size_t plen,
1711 int use_context) 1711 int use_context)
1712{ 1712{
1713 return (tls1_export_keying_material(s, out, olen, 1713 if (s->internal->tls13 != NULL && s->version == TLS1_3_VERSION) {
1714 label, llen, p, plen, use_context)); 1714 if (!use_context) {
1715 p = NULL;
1716 plen = 0;
1717 }
1718 return tls13_exporter(s->internal->tls13, label, llen, p, plen,
1719 out, olen);
1720 }
1721
1722 return (tls1_export_keying_material(s, out, olen, label, llen, p, plen,
1723 use_context));
1715} 1724}
1716 1725
1717static unsigned long 1726static unsigned long