From c1257222b39bdb3fd743d675203fd10b4b626809 Mon Sep 17 00:00:00 2001 From: maya Date: Wed, 3 May 2017 11:19:04 +0000 Subject: [PATCH] libressl: update to 2.5.4 We have released LibreSSL 2.5.4, which will be arriving in the LibreSSL directory of your local OpenBSD mirror soon. It includes the following changes: * Reverted a previous change that forced consistency between return value and error code when specifing a certificate verification callback, since this breaks the documented API. When a user supplied callback always returns 1, and later code checks the error code to potentially abort post verification, this will result in incorrect successul certificate verification. * Switched Linux getrandom() usage to non-blocking mode, continuing to use fallback mechanims if unsuccessful. This works around a design flaw in Linux getrandom(2) where early boot usage in a library makes it impossible to recover if getrandom(2) is not yet initialized. * Fixed a bug caused by the return value being set early to signal successful DTLS cookie validation. This can mask a later failure and result in a positive return value being returned from ssl3_get_client_hello(), when it should return a negative value to propagate the error. * Fixed a build error on non-x86/x86_64 systems running Solaris. We have released LibreSSL 2.5.3, based on OpenBSD 6.1, which will be the new stable release series. LibreSSL 2.3.x support has also ended. LibreSSL 2.5.3 contains the following changes from the previous stable release. * libtls now supports ALPN and SNI * libtls adds a new callback interface for integrating custom IO functions. Thanks to Tobias Pape. * libtls now handles 4 cipher suite groups: "secure" (TLSv1.2+AEAD+PFS) "compat" (HIGH:!aNULL) "legacy" (HIGH:MEDIUM:!aNULL) "insecure" (ALL:!aNULL:!eNULL) This allows for flexibility and finer grained control, rather than having two extremes (an issue raised by Marko Kreen some time ago). * Tightened error handling for tls_config_set_ciphers(). * libtls now always loads CA, key and certificate files at the time the configuration function is called. This simplifies code and results in a single memory based code path being used to provide data to libssl. * Added support for OCSP intermediate certificates. * Added functions used by stunnel and exim from BoringSSL - this brings in X509_check_host, X509_check_email, X509_check_ip, and X509_check_ip_asc. * Added initial support for iOS, thanks to Jacob Berkman. * Improved behavior of arc4random on Windows when using memory leak analysis software. * Correctly handle an EOF that occurs prior to the TLS handshake completing. Reported by Vasily Kolobkov, based on a diff from Marko Kreen. * Limit the support of the "backward compatible" ssl2 handshake to only be used if TLS 1.0 is enabled. * Fix incorrect results in certain cases on 64-bit systems when BN_mod_word() can return incorrect results. BN_mod_word() now can return an error condition. Thanks to Brian Smith. * Added constant-time updates to address CVE-2016-0702 * Fixed undefined behavior in BN_GF2m_mod_arr() * Removed unused Cryptographic Message Support (CMS) * More conversions of long long idioms to time_t * Improved compatibility by avoiding printing NULL strings with printf. * Reverted change that cleans up the EVP cipher context in EVP_EncryptFinal() and EVP_DecryptFinal(). Some software relies on the previous behaviour. * Avoid unbounded memory growth in libssl, which can be triggered by a TLS client repeatedly renegotiating and sending OCSP Status Request TLS extensions. * Avoid falling back to a weak digest for (EC)DH when using SNI with libssl. * X509_cmp_time() now passes a malformed GeneralizedTime field as an error. Reported by Theofilos Petsios. * Detect zero-length encrypted session data early, instead of when malloc(0) fails or the HMAC check fails. Noted independently by jsing@ and Kurt Cancemi. * Check for and handle failure of HMAC_{Update,Final} or EVP_DecryptUpdate(). * Massive update and normalization of manpages, conversion to mandoc format. Many pages were rewritten for clarity and accuracy. Portable doc links are up-to-date with a new conversion tool. * Curve25519 Key Exchange support. * Support for alternate chains for certificate verification. * Code cleanups, CBB conversions, further unification of DTLS/SSL handshake code, further ASN1 macro expansion and removal. * Private symbols are now hidden in libssl and libcrypto. * Friendly certificate verification error messages in libtls, peer verification is now always enabled. * Added OCSP stapling support to libtls and nc. * Added ocspcheck utility to validate a certificate against its OCSP responder and save the reply for stapling * Enhanced regression tests and error handling for libtls. * Added explicit constant and non-constant time BN functions, defaulting to constant time wherever possible. * Moved many leaked implementation details in public structs behind opaque pointers. * Added ticket support to libtls. * Added support for setting the supported EC curves via SSL{_CTX}_set1_groups{_list}() - also provide defines for the previous SSL{_CTX}_set1_curves{_list} names. This also changes the default list of curves to be X25519, P-256 and P-384. All other curves must be manually enabled. * Added -groups option to openssl(1) s_client for specifying the curves to be used in a colon-separated list. * Merged client/server version negotiation code paths into one, reducing much duplicate code. * Removed error function codes from libssl and libcrypto. * Fixed an issue where a truncated packet could crash via an OOB read. * Added SSL_OP_NO_CLIENT_RENEGOTIATION option that disallows client-initiated renegotiation. This is the default for libtls servers. * Avoid a side-channel cache-timing attack that can leak the ECDSA private keys when signing. This is due to BN_mod_inverse() being used without the constant time flag being set. Reported by Cesar Pereida Garcia and Billy Brumley (Tampere University of Technology). The fix was developed by Cesar Pereida Garcia. * iOS and MacOS compatibility updates from Simone Basso and Jacob Berkman. * Added the recallocarray(3) memory allocation function, and converted various places in the library to use it, such as CBB and BUF_MEM_grow. recallocarray(3) is similar to reallocarray. Newly allocated memory is cleared similar to calloc(3). Memory that becomes unallocated while shrinking or moving existing allocations is explicitly discarded by unmapping or clearing to 0. * Added new root CAs from SECOM Trust Systems / Security Communication of Japan. * Added EVP interface for MD5+SHA1 hashes. * Fixed DTLS client failures when the server sends a certificate request. * Correct handling of padding when upgrading an SSLv2 challenge into an SSLv3/TLS connection. * Allow protocols and ciphers to be set on a TLS config object in libtls. * Improved nc(1) TLS handshake CPU usage and server-side error reporting. * Add a constant time version of BN_gcd and use it default for BN_gcd to avoid the possibility of sidechannel timing attacks against RSA private key generation - Thanks to Alejandro Cabrera We have released LibreSSL 2.5.2, which will be arriving in the LibreSSL directory of your local OpenBSD mirror soon. It includes the following changes: * Added the recallocarray(3) memory allocation function, and converted various places in the library to use it, such as CBB and BUF_MEM_grow. recallocarray(3) is similar to reallocarray. Newly allocated memory is cleared similar to calloc(3). Memory that becomes unallocated while shrinking or moving existing allocations is explicitly discarded by unmapping or clearing to 0. * Added new root CAs from SECOM Trust Systems / Security Communication of Japan. * Added EVP interface for MD5+SHA1 hashes. * Fixed DTLS client failures when the server sends a certificate request. * Correct handling of padding when upgrading an SSLv2 challenge into an SSLv3/TLS connection. * Allow protocols and ciphers to be set on a TLS config object in libtls. * Improved nc(1) TLS handshake CPU usage and server-side error reporting. The LibreSSL project continues improvement of the codebase to reflect modern, safe programming practices. We welcome feedback and improvements from the broader community. Thanks to all of the contributors who helped make this release possible. --- security/libressl/Makefile | 4 +-- security/libressl/PLIST | 59 ++++++++++++++++++++++++++++++++++++-- security/libressl/distinfo | 10 +++---- 3 files changed, 64 insertions(+), 9 deletions(-) diff --git a/security/libressl/Makefile b/security/libressl/Makefile index bbef82ef99b9..a4b2813ac162 100644 --- a/security/libressl/Makefile +++ b/security/libressl/Makefile @@ -1,6 +1,6 @@ -# $NetBSD: Makefile,v 1.10 2017/02/02 15:31:16 wiz Exp $ +# $NetBSD: Makefile,v 1.11 2017/05/03 11:19:04 maya Exp $ -DISTNAME= libressl-2.5.1 +DISTNAME= libressl-2.5.4 CATEGORIES= security MASTER_SITES= ${MASTER_SITE_OPENBSD:=LibreSSL/} diff --git a/security/libressl/PLIST b/security/libressl/PLIST index 0892c024bf40..d2d0f7291b43 100644 --- a/security/libressl/PLIST +++ b/security/libressl/PLIST @@ -1,4 +1,4 @@ -@comment $NetBSD: PLIST,v 1.7 2017/02/02 15:31:16 wiz Exp $ +@comment $NetBSD: PLIST,v 1.8 2017/05/03 11:19:04 maya Exp $ lib/pkgconfig/libcrypto.pc lib/pkgconfig/libssl.pc lib/pkgconfig/libtls.pc @@ -153,6 +153,7 @@ libressl/man/man3/ASN1_item_i2d_bio.3 libressl/man/man3/ASN1_item_i2d_fp.3 libressl/man/man3/ASN1_item_new.3 libressl/man/man3/ASN1_item_print.3 +libressl/man/man3/ASN1_tag2str.3 libressl/man/man3/ASN1_time_parse.3 libressl/man/man3/ASN1_time_tm_cmp.3 libressl/man/man3/AUTHORITY_INFO_ACCESS_free.3 @@ -241,6 +242,7 @@ libressl/man/man3/BIO_new_ssl_connect.3 libressl/man/man3/BIO_next.3 libressl/man/man3/BIO_pending.3 libressl/man/man3/BIO_pop.3 +libressl/man/man3/BIO_printf.3 libressl/man/man3/BIO_ptr_ctrl.3 libressl/man/man3/BIO_push.3 libressl/man/man3/BIO_puts.3 @@ -293,10 +295,13 @@ libressl/man/man3/BIO_should_read.3 libressl/man/man3/BIO_should_retry.3 libressl/man/man3/BIO_should_write.3 libressl/man/man3/BIO_shutdown_wr.3 +libressl/man/man3/BIO_snprintf.3 libressl/man/man3/BIO_ssl_copy_session_id.3 libressl/man/man3/BIO_ssl_shutdown.3 libressl/man/man3/BIO_tell.3 libressl/man/man3/BIO_vfree.3 +libressl/man/man3/BIO_vprintf.3 +libressl/man/man3/BIO_vsnprintf.3 libressl/man/man3/BIO_wpending.3 libressl/man/man3/BIO_write.3 libressl/man/man3/BIO_write_filename.3 @@ -360,6 +365,7 @@ libressl/man/man3/BN_get0_nist_prime_224.3 libressl/man/man3/BN_get0_nist_prime_256.3 libressl/man/man3/BN_get0_nist_prime_384.3 libressl/man/man3/BN_get0_nist_prime_521.3 +libressl/man/man3/BN_get_flags.3 libressl/man/man3/BN_get_word.3 libressl/man/man3/BN_hex2bn.3 libressl/man/man3/BN_init.3 @@ -395,7 +401,7 @@ libressl/man/man3/BN_num_bits.3 libressl/man/man3/BN_num_bits_word.3 libressl/man/man3/BN_num_bytes.3 libressl/man/man3/BN_one.3 -${PLIST.man}libressl/man/man3/BN_print.3 +libressl/man/man3/BN_print.3 libressl/man/man3/BN_print_fp.3 libressl/man/man3/BN_pseudo_rand.3 libressl/man/man3/BN_pseudo_rand_range.3 @@ -813,6 +819,7 @@ libressl/man/man3/ERR_GET_REASON.3 libressl/man/man3/ERR_PACK.3 libressl/man/man3/ERR_add_error_data.3 libressl/man/man3/ERR_add_error_vdata.3 +libressl/man/man3/ERR_asprintf_error_data.3 libressl/man/man3/ERR_clear_error.3 libressl/man/man3/ERR_error_string.3 libressl/man/man3/ERR_error_string_n.3 @@ -922,6 +929,7 @@ libressl/man/man3/EVP_MD_CTX_cleanup.3 libressl/man/man3/EVP_MD_CTX_copy.3 libressl/man/man3/EVP_MD_CTX_copy_ex.3 libressl/man/man3/EVP_MD_CTX_create.3 +libressl/man/man3/EVP_MD_CTX_ctrl.3 libressl/man/man3/EVP_MD_CTX_destroy.3 libressl/man/man3/EVP_MD_CTX_init.3 libressl/man/man3/EVP_MD_CTX_md.3 @@ -1069,6 +1077,7 @@ libressl/man/man3/EVP_idea_ecb.3 libressl/man/man3/EVP_idea_ofb.3 libressl/man/man3/EVP_md2.3 libressl/man/man3/EVP_md5.3 +libressl/man/man3/EVP_md5_sha1.3 libressl/man/man3/EVP_md_null.3 libressl/man/man3/EVP_rc2_40_cbc.3 libressl/man/man3/EVP_rc2_64_cbc.3 @@ -1338,6 +1347,7 @@ libressl/man/man3/PKCS7_ENC_CONTENT_free.3 libressl/man/man3/PKCS7_ENC_CONTENT_new.3 libressl/man/man3/PKCS7_ENVELOPE_free.3 libressl/man/man3/PKCS7_ENVELOPE_new.3 +libressl/man/man3/PKCS7_ISSUER_AND_SERIAL_digest.3 libressl/man/man3/PKCS7_ISSUER_AND_SERIAL_free.3 libressl/man/man3/PKCS7_ISSUER_AND_SERIAL_new.3 libressl/man/man3/PKCS7_RECIP_INFO_free.3 @@ -1655,6 +1665,8 @@ libressl/man/man3/SSL_pending.3 libressl/man/man3/SSL_read.3 libressl/man/man3/SSL_remove_session.3 libressl/man/man3/SSL_renegotiate.3 +libressl/man/man3/SSL_renegotiate_abbreviated.3 +libressl/man/man3/SSL_renegotiate_pending.3 libressl/man/man3/SSL_rstate_string.3 libressl/man/man3/SSL_rstate_string_long.3 libressl/man/man3/SSL_select_next_proto.3 @@ -1754,6 +1766,8 @@ libressl/man/man3/TYPE_get_ex_data.3 libressl/man/man3/TYPE_get_ex_new_index.3 libressl/man/man3/TYPE_set_ex_data.3 libressl/man/man3/UI_OpenSSL.3 +libressl/man/man3/UI_UTIL_read_pw.3 +libressl/man/man3/UI_UTIL_read_pw_string.3 libressl/man/man3/UI_add_error_string.3 libressl/man/man3/UI_add_info_string.3 libressl/man/man3/UI_add_input_boolean.3 @@ -1761,25 +1775,48 @@ libressl/man/man3/UI_add_input_string.3 libressl/man/man3/UI_add_user_data.3 libressl/man/man3/UI_add_verify_string.3 libressl/man/man3/UI_construct_prompt.3 +libressl/man/man3/UI_create_method.3 libressl/man/man3/UI_ctrl.3 +libressl/man/man3/UI_destroy_method.3 libressl/man/man3/UI_dup_error_string.3 libressl/man/man3/UI_dup_info_string.3 libressl/man/man3/UI_dup_input_boolean.3 libressl/man/man3/UI_dup_input_string.3 libressl/man/man3/UI_dup_verify_string.3 libressl/man/man3/UI_free.3 +libressl/man/man3/UI_get0_action_string.3 +libressl/man/man3/UI_get0_output_string.3 libressl/man/man3/UI_get0_result.3 +libressl/man/man3/UI_get0_result_string.3 +libressl/man/man3/UI_get0_test_string.3 libressl/man/man3/UI_get0_user_data.3 libressl/man/man3/UI_get_default_method.3 libressl/man/man3/UI_get_ex_data.3 libressl/man/man3/UI_get_ex_new_index.3 +libressl/man/man3/UI_get_input_flags.3 libressl/man/man3/UI_get_method.3 +libressl/man/man3/UI_get_result_maxsize.3 +libressl/man/man3/UI_get_result_minsize.3 +libressl/man/man3/UI_get_string_type.3 +libressl/man/man3/UI_method_get_closer.3 +libressl/man/man3/UI_method_get_flusher.3 +libressl/man/man3/UI_method_get_opener.3 +libressl/man/man3/UI_method_get_prompt_constructor.3 +libressl/man/man3/UI_method_get_reader.3 +libressl/man/man3/UI_method_get_writer.3 +libressl/man/man3/UI_method_set_closer.3 +libressl/man/man3/UI_method_set_flusher.3 +libressl/man/man3/UI_method_set_opener.3 +libressl/man/man3/UI_method_set_prompt_constructor.3 +libressl/man/man3/UI_method_set_reader.3 +libressl/man/man3/UI_method_set_writer.3 libressl/man/man3/UI_new.3 libressl/man/man3/UI_new_method.3 libressl/man/man3/UI_process.3 libressl/man/man3/UI_set_default_method.3 libressl/man/man3/UI_set_ex_data.3 libressl/man/man3/UI_set_method.3 +libressl/man/man3/UI_set_result.3 libressl/man/man3/USERNOTICE_free.3 libressl/man/man3/USERNOTICE_new.3 libressl/man/man3/X509V3_EXT_d2i.3 @@ -1805,6 +1842,7 @@ libressl/man/man3/X509_CRL_add0_revoked.3 libressl/man/man3/X509_CRL_add1_ext_i2d.3 libressl/man/man3/X509_CRL_add_ext.3 libressl/man/man3/X509_CRL_delete_ext.3 +libressl/man/man3/X509_CRL_digest.3 libressl/man/man3/X509_CRL_free.3 libressl/man/man3/X509_CRL_get0_by_cert.3 libressl/man/man3/X509_CRL_get0_by_serial.3 @@ -1851,6 +1889,7 @@ libressl/man/man3/X509_NAME_add_entry_by_NID.3 libressl/man/man3/X509_NAME_add_entry_by_OBJ.3 libressl/man/man3/X509_NAME_add_entry_by_txt.3 libressl/man/man3/X509_NAME_delete_entry.3 +libressl/man/man3/X509_NAME_digest.3 libressl/man/man3/X509_NAME_dup.3 libressl/man/man3/X509_NAME_entry_count.3 libressl/man/man3/X509_NAME_free.3 @@ -1873,6 +1912,7 @@ libressl/man/man3/X509_PUBKEY_set.3 libressl/man/man3/X509_PUBKEY_set0_param.3 libressl/man/man3/X509_REQ_INFO_free.3 libressl/man/man3/X509_REQ_INFO_new.3 +libressl/man/man3/X509_REQ_digest.3 libressl/man/man3/X509_REQ_free.3 libressl/man/man3/X509_REQ_get_pubkey.3 libressl/man/man3/X509_REQ_get_subject_name.3 @@ -1944,7 +1984,9 @@ libressl/man/man3/X509_check_host.3 libressl/man/man3/X509_check_ip.3 libressl/man/man3/X509_check_ip_asc.3 libressl/man/man3/X509_check_issued.3 +libressl/man/man3/X509_cmp_time.3 libressl/man/man3/X509_delete_ext.3 +libressl/man/man3/X509_digest.3 libressl/man/man3/X509_free.3 libressl/man/man3/X509_get_X509_PUBKEY.3 libressl/man/man3/X509_get_ex_data.3 @@ -1964,6 +2006,7 @@ libressl/man/man3/X509_load_cert_crl_file.3 libressl/man/man3/X509_load_cert_file.3 libressl/man/man3/X509_load_crl_file.3 libressl/man/man3/X509_new.3 +libressl/man/man3/X509_pubkey_digest.3 libressl/man/man3/X509_set_ex_data.3 libressl/man/man3/X509_set_issuer_name.3 libressl/man/man3/X509_set_pubkey.3 @@ -2188,6 +2231,13 @@ libressl/man/man3/des_read_pw.3 libressl/man/man3/des_read_pw_string.3 libressl/man/man3/engine.3 libressl/man/man3/evp.3 +libressl/man/man3/get_rfc2409_prime_1024.3 +libressl/man/man3/get_rfc2409_prime_768.3 +libressl/man/man3/get_rfc3526_prime_1536.3 +libressl/man/man3/get_rfc3526_prime_2048.3 +libressl/man/man3/get_rfc3526_prime_3072.3 +libressl/man/man3/get_rfc3526_prime_4096.3 +libressl/man/man3/get_rfc3526_prime_6144.3 libressl/man/man3/get_rfc3526_prime_8192.3 libressl/man/man3/get_session_cb.3 libressl/man/man3/i2d_ACCESS_DESCRIPTION.3 @@ -2402,6 +2452,8 @@ libressl/man/man3/tls_client.3 libressl/man/man3/tls_close.3 libressl/man/man3/tls_config_add_keypair_file.3 libressl/man/man3/tls_config_add_keypair_mem.3 +libressl/man/man3/tls_config_add_keypair_ocsp_file.3 +libressl/man/man3/tls_config_add_keypair_ocsp_mem.3 libressl/man/man3/tls_config_add_ticket_key.3 libressl/man/man3/tls_config_clear_keys.3 libressl/man/man3/tls_config_error.3 @@ -2427,6 +2479,8 @@ libressl/man/man3/tls_config_set_key_file.3 libressl/man/man3/tls_config_set_key_mem.3 libressl/man/man3/tls_config_set_keypair_file.3 libressl/man/man3/tls_config_set_keypair_mem.3 +libressl/man/man3/tls_config_set_keypair_ocsp_file.3 +libressl/man/man3/tls_config_set_keypair_ocsp_mem.3 libressl/man/man3/tls_config_set_ocsp_staple_file.3 libressl/man/man3/tls_config_set_ocsp_staple_mem.3 libressl/man/man3/tls_config_set_protocols.3 @@ -2476,3 +2530,4 @@ libressl/man/man3/verify_callback.3 libressl/share/examples/libressl/cert.pem libressl/share/examples/libressl/openssl.cnf libressl/share/examples/libressl/x509v3.cnf +@pkgdir etc diff --git a/security/libressl/distinfo b/security/libressl/distinfo index 1d2beb433b0e..34539ad0e37a 100644 --- a/security/libressl/distinfo +++ b/security/libressl/distinfo @@ -1,6 +1,6 @@ -$NetBSD: distinfo,v 1.7 2017/02/02 15:31:16 wiz Exp $ +$NetBSD: distinfo,v 1.8 2017/05/03 11:19:04 maya Exp $ -SHA1 (libressl-2.5.1.tar.gz) = b3e8b7b8d70aa27459add8ee4ab5078b366923d2 -RMD160 (libressl-2.5.1.tar.gz) = 6b97c8aaf5131d921ee72e8105b37f5c1270166f -SHA512 (libressl-2.5.1.tar.gz) = 44557c7c3e6bc9c0af9ae83b26765be9707d53708a32a5a945108a49ea20503afa4197919801830d27821c069b87e0e0edd284bd1b8a85340dbc0da2c162c2f9 -Size (libressl-2.5.1.tar.gz) = 3266271 bytes +SHA1 (libressl-2.5.4.tar.gz) = 1fa2eb0b1c8285a4f51132ac78cd8c95f302b768 +RMD160 (libressl-2.5.4.tar.gz) = 5a1524160acab9344050c0b3c56085ede10a9b33 +SHA512 (libressl-2.5.4.tar.gz) = 8ca86c14af0020c90bef4651892799864938dab9d898172269cb78bad5963314e064f2b4c46e6a04e0b85d1eddbd1840b734803c11ceec8fd6bb1290e0fe204c +Size (libressl-2.5.4.tar.gz) = 3286042 bytes