Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package stunnel for openSUSE:Factory checked in at 2022-09-15 23:00:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/stunnel (Old) and /work/SRC/openSUSE:Factory/.stunnel.new.2083 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "stunnel" Thu Sep 15 23:00:04 2022 rev:33 rq:1003856 version:5.66 Changes: -------- --- /work/SRC/openSUSE:Factory/stunnel/stunnel.changes 2022-07-18 18:35:00.293850241 +0200 +++ /work/SRC/openSUSE:Factory/.stunnel.new.2083/stunnel.changes 2022-09-15 23:01:17.645571762 +0200 @@ -1,0 +2,10 @@ +Mon Sep 12 13:31:16 UTC 2022 - Dirk M??ller <dmuel...@suse.com> + +- update to 5.66: + * Fixed building on machines without pkg-config. + * Added the missing "environ" declaration for BSD-based operating systems. + * Fixed the passphrase dialog with OpenSSL 3.0. +- package license +- remove non-systemd case from spec file + +------------------------------------------------------------------- Old: ---- stunnel-5.65.tar.gz stunnel-5.65.tar.gz.asc New: ---- stunnel-5.66.tar.gz stunnel-5.66.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ stunnel.spec ++++++ --- /var/tmp/diff_new_pack.gxD3SR/_old 2022-09-15 23:01:18.101573049 +0200 +++ /var/tmp/diff_new_pack.gxD3SR/_new 2022-09-15 23:01:18.105573061 +0200 @@ -17,22 +17,16 @@ %define VENDORAFFIX openSUSE - -%define has_systemd 1 -BuildRequires: pkgconfig(systemd) -%{?systemd_ordering} - #Compat macro for new _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %define _fillupdir %{_localstatedir}/adm/fillup-templates %endif Name: stunnel -Version: 5.65 +Version: 5.66 Release: 0 Summary: Universal TLS Tunnel License: GPL-2.0-or-later Group: Productivity/Networking/Security -Recommends: stunnel-doc = %version URL: https://www.stunnel.org/ Source: https://www.stunnel.org/downloads/%{name}-%{version}.tar.gz Source1: https://www.stunnel.org/downloads/%{name}-%{version}.tar.gz.asc @@ -44,17 +38,21 @@ Patch1: stunnel-5.59_service_always_after_network.patch Patch2: harden_stunnel.service.patch BuildRequires: libopenssl-devel -BuildRequires: python3 -BuildRequires: tcpd-devel -BuildRequires: zlib-devel # test dependencies BuildRequires: netcat +BuildRequires: pkgconfig BuildRequires: procps +BuildRequires: python3 +BuildRequires: tcpd-devel +BuildRequires: zlib-devel +BuildRequires: pkgconfig(systemd) # Requires(pre): %fillup_prereq Requires(pre): %{_sbindir}/useradd Requires(pre): fileutils Requires(pre): textutils +Recommends: stunnel-doc = %{version} +%{?systemd_ordering} %if 0%{?suse_version} >= 1500 Requires(pre): group(nogroup) %endif @@ -85,7 +83,7 @@ %configure \ --disable-static \ --bindir=%{_sbindir} -make %{?_smp_mflags} LDADD="-pie -Wl,-z,defs,-z,relro,-z,now" +%make_build LDADD="-pie -Wl,-z,defs,-z,relro,-z,now" %install %make_install @@ -95,14 +93,8 @@ mkdir -p %{buildroot}%{_docdir}/stunnel/tools mkdir -p %{buildroot}%{_fillupdir} cp -p %{SOURCE3} %{buildroot}%{_fillupdir}/ -%if 0%{?has_systemd} install -D -m 0644 %{buildroot}%{_docdir}/stunnel/examples/stunnel.service %{buildroot}/%{_unitdir}/stunnel.service ln -s service %{buildroot}%{_sbindir}/rcstunnel -%else -mkdir -p %{buildroot}%{_initddir}/ -install -m 744 %{_sourcedir}/stunnel.rc %{buildroot}/%{_initddir}/stunnel -ln -s ../..%{_initddir}/stunnel %{buildroot}%{_sbindir}/rcstunnel -%endif sed -i "s/^;setuid = nobody/setuid = stunnel/" %{buildroot}/%{_sysconfdir}/stunnel/stunnel.conf-sample sed -i "s/^;setgid =/setgid =/" %{buildroot}/%{_sysconfdir}/stunnel/stunnel.conf-sample sed -i "s/^;include =/include =/" %{buildroot}/%{_sysconfdir}/stunnel/stunnel.conf-sample @@ -125,7 +117,7 @@ # only works in Tumbleweed as of 2021-04-08 %if 0%{?suse_version} > 1500 rm tests/plugins/*fips*.py - make %{?_smp_mflags} test + %make_build test %endif %pre @@ -134,38 +126,25 @@ -d %{_localstatedir}/lib/stunnel stunnel fi -%if 0%{?has_systemd} %service_add_pre %{name}.service -%endif %post -%if 0%{?has_systemd} %service_add_post %{name}.service -%else -%{fillup_and_insserv -f} -%endif %{fillup_only -ans syslog stunnel} %preun -%if 0%{?has_systemd} %service_del_preun %{name}.service -%else -%stop_on_removal stunnel -%endif %postun -%if 0%{?has_systemd} %service_del_postun %{name}.service -%else -%restart_on_update stunnel -%insserv_cleanup -%endif %files -%defattr(-,root,root) -%{_sbindir}/* +%license COPYING.md +%{_sbindir}/rcstunnel +%{_sbindir}/stunnel +%{_sbindir}/stunnel3 %{_libdir}/%{name}/ -%{_mandir}/man8/* +%{_mandir}/man8/stunnel*8%{?ext_man} %dir %attr(700,root,root) %{_sysconfdir}/%{name}/ %dir %attr(700,root,root) %{_sysconfdir}/%{name}//conf.d %config(noreplace) %{_sysconfdir}/%{name}/stunnel.conf @@ -178,15 +157,9 @@ %dir %attr(755,root,root) %{_localstatedir}/lib/stunnel%{_localstatedir} %dir %attr(755,stunnel,root) %{_localstatedir}/lib/stunnel%{_localstatedir}/run %{_fillupdir}/sysconfig.syslog-stunnel -%if 0%{?has_systemd} %{_unitdir}/stunnel.service -%else -%config %{_initddir}/* -%endif -%{_datadir}/bash-completion/completions/%{name}.bash %files doc -%defattr(-,root,root) %doc %{_docdir}/%{name} %changelog ++++++ stunnel-5.65.tar.gz -> stunnel-5.66.tar.gz ++++++ ++++ 3265 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stunnel-5.65/Makefile.am new/stunnel-5.66/Makefile.am --- old/stunnel-5.65/Makefile.am 2022-01-16 15:28:24.000000000 +0100 +++ new/stunnel-5.66/Makefile.am 2022-09-11 23:15:42.000000000 +0200 @@ -16,7 +16,7 @@ doc_DATA += PORTS.md BUGS.md COPYRIGHT.md CREDITS.md doc_DATA += INSTALL.W32.md INSTALL.WCE.md INSTALL.FIPS.md -EXTRA_DIST = .travis.yml $(doc_DATA) +EXTRA_DIST = .travis.yml makedh.sh $(doc_DATA) distcleancheck_listfiles = find . -type f -exec sh -c 'test -f $(srcdir)/{} || echo {}' ';' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stunnel-5.65/NEWS.md new/stunnel-5.66/NEWS.md --- old/stunnel-5.65/NEWS.md 2022-07-17 20:06:10.000000000 +0200 +++ new/stunnel-5.66/NEWS.md 2022-09-11 23:15:42.000000000 +0200 @@ -1,6 +1,15 @@ # stunnel change log +### Version 5.66, unreleased, urgency: MEDIUM +* New features + - OpenSSL 3.0 FIPS Provider support for Windows. +* Bugfixes + - Fixed building on machines without pkg-config. + - Added the missing "environ" declaration for + BSD-based operating systems. + - Fixed the passphrase dialog with OpenSSL 3.0. + ### Version 5.65, 2022.07.17, urgency: HIGH * Security bugfixes - OpenSSL DLLs updated to version 3.0.5. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stunnel-5.65/configure.ac new/stunnel-5.66/configure.ac --- old/stunnel-5.65/configure.ac 2022-07-11 14:48:27.000000000 +0200 +++ new/stunnel-5.66/configure.ac 2022-09-11 23:15:42.000000000 +0200 @@ -1,6 +1,6 @@ # Process this file with autoconf to produce a configure script. -AC_INIT([stunnel],[5.65]) +AC_INIT([stunnel],[5.66]) AC_MSG_NOTICE([**************************************** initialization]) AC_CONFIG_AUX_DIR(auto) AC_CONFIG_MACRO_DIR([m4]) @@ -36,6 +36,9 @@ ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_MSG_NOTICE([**************************************** bash completion]) +# define a dummy PKG_CHECK_VAR if pkg-config is not installed +m4_ifndef([PKG_CHECK_VAR], [AC_DEFUN([PKG_CHECK_VAR], [false])]) + AC_ARG_WITH([bashcompdir], AS_HELP_STRING([--with-bashcompdir=DIR], [directory for bash completions]), , [PKG_CHECK_VAR([with_bashcompdir], [bash-completion], [completionsdir], , @@ -481,15 +484,7 @@ # only build src/dhparam.c if sources are located in the current directory if test -f src/stunnel.c && ! grep -q " built for $PACKAGE_STRING " src/dhparam.c; then AC_MSG_RESULT([yes]) - ( - echo '/* dhparam.c: initial DH parameters for stunnel */' - echo '#include "prototypes.h"' - echo '#ifndef OPENSSL_NO_DH' - echo '#define DN_new DH_new' - openssl dhparam -noout -C 2048 | sed 's/static DH/DH/' - echo '#endif /* OPENSSL_NO_DH */' - echo "/* built for $PACKAGE_STRING */" - ) > src/dhparam.c + $(dirname $0)/makedh.sh "$PACKAGE_STRING" >src/dhparam.c # also update trusted CA certificates curl 'https://ccadb-public.secure.force.com/mozilla/IncludedRootsPEMTxt?TrustBitsInclude=Websites' | sed -e 's/\r//' -e 's/ $//' >tools/ca-certs.pem diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stunnel-5.65/doc/stunnel.8.in new/stunnel-5.66/doc/stunnel.8.in --- old/stunnel-5.65/doc/stunnel.8.in 2022-03-15 20:27:02.000000000 +0100 +++ new/stunnel-5.66/doc/stunnel.8.in 2021-12-23 11:55:31.000000000 +0100 @@ -71,7 +71,7 @@ .\" ======================================================================== .\" .IX Title "stunnel 8" -.TH stunnel 8 "2022.03.15" "5.64" "stunnel TLS Proxy" +.TH stunnel 8 "2021.12.23" "5.62" "stunnel TLS Proxy" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stunnel-5.65/doc/stunnel.pl.8.in new/stunnel-5.66/doc/stunnel.pl.8.in --- old/stunnel-5.65/doc/stunnel.pl.8.in 2022-03-15 20:27:02.000000000 +0100 +++ new/stunnel-5.66/doc/stunnel.pl.8.in 2021-12-23 11:55:31.000000000 +0100 @@ -71,7 +71,7 @@ .\" ======================================================================== .\" .IX Title "stunnel 8" -.TH stunnel 8 "2022.03.15" "5.64" "stunnel TLS Proxy" +.TH stunnel 8 "2021.12.23" "5.62" "stunnel TLS Proxy" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stunnel-5.65/makedh.sh new/stunnel-5.66/makedh.sh --- old/stunnel-5.65/makedh.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/stunnel-5.66/makedh.sh 2022-09-11 23:15:42.000000000 +0200 @@ -0,0 +1,43 @@ +#!/bin/sh + +cat <<EOT +/* dhparam.c: initial DH parameters for stunnel */ +#include "prototypes.h" +#ifndef OPENSSL_NO_DH +#define DN_new DH_new +DH *get_dh2048(void) { + static unsigned char dhp_2048[] = { +EOT + +openssl dhparam 2048 | + openssl asn1parse | + sed -n '2p' | + sed 's/.*://' | + xxd -r -p | + xxd -i | + sed 's/^/ /' + +cat <<EOT + }; + static unsigned char dhg_2048[] = { + 0x02 + }; + DH *dh = DH_new(); + BIGNUM *p, *g; + + if (dh == NULL) + return NULL; + p = BN_bin2bn(dhp_2048, sizeof(dhp_2048), NULL); + g = BN_bin2bn(dhg_2048, sizeof(dhg_2048), NULL); + if (p == NULL || g == NULL + || !DH_set0_pqg(dh, p, NULL, g)) { + DH_free(dh); + BN_free(p); + BN_free(g); + return NULL; + } + return dh; +} +#endif /* OPENSSL_NO_DH */ +/* built for $1 */ +EOT diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stunnel-5.65/src/client.c new/stunnel-5.66/src/client.c --- old/stunnel-5.65/src/client.c 2022-07-11 14:48:27.000000000 +0200 +++ new/stunnel-5.66/src/client.c 2022-09-11 23:15:42.000000000 +0200 @@ -1399,10 +1399,6 @@ #else /* standard Unix version */ -#ifndef HAVE_UNISTD_H -extern char **environ; -#endif - NOEXPORT SOCKET connect_local(CLI *c) { /* spawn local process */ int fd[2], pid; char **env; @@ -1464,6 +1460,7 @@ } char **env_alloc(CLI *c) { + extern char **environ; char **env=NULL, **p; unsigned n=0; /* (n+2) keeps the list NULL-terminated */ char *name, host[40], port[6]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stunnel-5.65/src/common.h new/stunnel-5.66/src/common.h --- old/stunnel-5.65/src/common.h 2022-07-11 14:48:27.000000000 +0200 +++ new/stunnel-5.66/src/common.h 2022-09-11 23:15:42.000000000 +0200 @@ -491,7 +491,7 @@ #include <openssl/dh.h> #if OPENSSL_VERSION_NUMBER<0x10100000L int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g); -#endif /* OpenSSL older than 1.1.0 */ +#endif /* OPENSSL_VERSION_NUMBER<0x10100000L */ #endif /* !defined(OPENSSL_NO_DH) */ #ifndef OPENSSL_NO_ENGINE #include <openssl/engine.h> @@ -503,8 +503,12 @@ /* not defined in public headers before OpenSSL 0.9.8 */ STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void); #endif /* !defined(OPENSSL_NO_COMP) */ +#if OPENSSL_VERSION_NUMBER>=0x10101000L +#include <openssl/storeerr.h> +#endif /* OPENSSL_VERSION_NUMBER>=0x10101000L */ #if OPENSSL_VERSION_NUMBER>=0x30000000L #include <openssl/provider.h> +#include <openssl/proverr.h> #endif /* OPENSSL_VERSION_NUMBER>=0x30000000L */ #ifndef OPENSSL_VERSION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stunnel-5.65/src/ctx.c new/stunnel-5.66/src/ctx.c --- old/stunnel-5.65/src/ctx.c 2022-07-15 21:12:40.000000000 +0200 +++ new/stunnel-5.66/src/ctx.c 2022-09-11 23:15:42.000000000 +0200 @@ -1001,30 +1001,41 @@ unsigned long err=ERR_peek_error(); switch(ERR_GET_LIB(err)) { - case ERR_LIB_ASN1: - return 1; - case ERR_LIB_PKCS12: + case ERR_LIB_EVP: /* 6 */ switch(ERR_GET_REASON(err)) { - case PKCS12_R_MAC_VERIFY_FAILURE: + case EVP_R_BAD_DECRYPT: return 1; default: + s_log(LOG_ERR, "Unhandled ERR_LIB_EVP error reason: %d", + ERR_GET_REASON(err)); return 0; } - case ERR_LIB_EVP: + case ERR_LIB_PEM: /* 9 */ switch(ERR_GET_REASON(err)) { - case EVP_R_BAD_DECRYPT: + case PEM_R_BAD_PASSWORD_READ: + case PEM_R_BAD_DECRYPT: return 1; default: + s_log(LOG_ERR, "Unhandled ERR_LIB_PEM error reason: %d", + ERR_GET_REASON(err)); return 0; } - case ERR_LIB_PEM: + case ERR_LIB_ASN1: /* 13 */ + return 1; + case ERR_LIB_PKCS12: /* 35 */ switch(ERR_GET_REASON(err)) { - case PEM_R_BAD_PASSWORD_READ: + case PKCS12_R_MAC_VERIFY_FAILURE: return 1; default: + s_log(LOG_ERR, "Unhandled ERR_LIB_PKCS12 error reason: %d", + ERR_GET_REASON(err)); return 0; } - case ERR_LIB_UI: +#ifdef ERR_LIB_DSO /* 37 */ + case ERR_LIB_DSO: + return 1; +#endif + case ERR_LIB_UI: /* 40 */ switch(ERR_GET_REASON(err)) { case UI_R_RESULT_TOO_LARGE: case UI_R_RESULT_TOO_SMALL: @@ -1033,17 +1044,44 @@ #endif return 1; default: + s_log(LOG_ERR, "Unhandled ERR_LIB_UI error reason: %d", + ERR_GET_REASON(err)); + return 0; + } +#ifdef ERR_LIB_OSSL_STORE + case ERR_LIB_OSSL_STORE: /* 44 - added in OpenSSL 1.1.1 */ + switch(ERR_GET_REASON(err)) { + case OSSL_STORE_R_BAD_PASSWORD_READ: + return 1; + default: + s_log(LOG_ERR, "Unhandled ERR_LIB_OSSL_STORE error reason: %d", + ERR_GET_REASON(err)); + return 0; + } +#endif +#ifdef ERR_LIB_PROV + case ERR_LIB_PROV: /* 57 - added in OpenSSL 3.0 */ + switch(ERR_GET_REASON(err)) { + case PROV_R_BAD_DECRYPT: + return 1; + default: + s_log(LOG_ERR, "Unhandled ERR_LIB_PROV error reason: %d", + ERR_GET_REASON(err)); return 0; } - case ERR_LIB_USER: /* PKCS#11 hacks */ +#endif + case ERR_LIB_USER: /* 128 - PKCS#11 hacks */ switch(ERR_GET_REASON(err)) { case 7UL: /* CKR_ARGUMENTS_BAD */ case 0xa0UL: /* CKR_PIN_INCORRECT */ return 1; default: + s_log(LOG_ERR, "Unhandled ERR_LIB_USER error reason: %d", + ERR_GET_REASON(err)); return 0; } default: + s_log(LOG_ERR, "Unhandled error library: %d", ERR_GET_LIB(err)); return 0; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stunnel-5.65/src/dhparam.c new/stunnel-5.66/src/dhparam.c --- old/stunnel-5.65/src/dhparam.c 2022-07-11 14:52:16.000000000 +0200 +++ new/stunnel-5.66/src/dhparam.c 2022-09-11 23:15:42.000000000 +0200 @@ -2,35 +2,30 @@ #include "prototypes.h" #ifndef OPENSSL_NO_DH #define DN_new DH_new -DH *get_dh2048(void) -{ +DH *get_dh2048(void) { static unsigned char dhp_2048[] = { - 0xA4, 0xC9, 0xC1, 0x58, 0x7A, 0x51, 0x8F, 0x53, 0x8F, 0x6A, - 0x77, 0x15, 0xCF, 0xAC, 0x37, 0x99, 0xD1, 0xA6, 0xF1, 0xA2, - 0x46, 0x3A, 0xA8, 0x66, 0xFD, 0x22, 0x4A, 0x6B, 0x93, 0x8A, - 0x4A, 0x7E, 0x28, 0x66, 0x82, 0x02, 0x3A, 0x6E, 0x42, 0x3F, - 0x96, 0x20, 0x07, 0x18, 0xA4, 0x31, 0x0F, 0xA8, 0x1E, 0x44, - 0x77, 0x2A, 0x5C, 0x4D, 0x19, 0x9F, 0x10, 0x52, 0xD5, 0x38, - 0xD5, 0x0E, 0x66, 0x82, 0x75, 0xA9, 0x8B, 0x47, 0xA1, 0x8F, - 0x8A, 0xEB, 0x21, 0xD4, 0xF7, 0x30, 0xE4, 0x63, 0x62, 0x1B, - 0x29, 0xE3, 0xCC, 0x69, 0x88, 0x40, 0x91, 0xF8, 0xF9, 0xD6, - 0xC9, 0x1E, 0xC1, 0xB0, 0x43, 0x0A, 0x14, 0x34, 0x05, 0xAB, - 0x45, 0xFC, 0xCB, 0x68, 0x8A, 0x96, 0x91, 0x69, 0xE4, 0x48, - 0x3B, 0xD8, 0xE1, 0x22, 0xD9, 0x34, 0x8F, 0xE2, 0x05, 0x7F, - 0x5F, 0x93, 0xF2, 0x6B, 0xF2, 0xDF, 0xF4, 0x70, 0x63, 0xE6, - 0xC7, 0x69, 0x91, 0x8E, 0x1C, 0xF9, 0x1C, 0xF0, 0x2B, 0x2F, - 0x1C, 0x1A, 0xA5, 0x84, 0x6A, 0xCB, 0x05, 0x1B, 0x0E, 0xDF, - 0x28, 0xF0, 0x9D, 0xCA, 0x0E, 0xCE, 0xB0, 0xA7, 0xD9, 0xBA, - 0x83, 0x30, 0xA4, 0x2C, 0xF4, 0x16, 0x09, 0xD3, 0xF4, 0xD9, - 0xC8, 0x49, 0x57, 0x78, 0xA4, 0x20, 0xCC, 0xFA, 0xE8, 0x5E, - 0xB4, 0x64, 0x6C, 0x68, 0x87, 0x91, 0xCE, 0x58, 0x83, 0x38, - 0x0F, 0x59, 0xAF, 0x31, 0x03, 0xDC, 0x88, 0x32, 0x6F, 0xFE, - 0xF3, 0x07, 0xFE, 0xBA, 0xFB, 0x9A, 0xEF, 0xB0, 0x57, 0x0F, - 0xBD, 0x58, 0x0D, 0xC0, 0xEF, 0x08, 0xD6, 0x13, 0x02, 0x57, - 0x35, 0x60, 0x15, 0x98, 0xEF, 0xE2, 0xA4, 0x38, 0xCB, 0xD4, - 0x2F, 0x5E, 0xF4, 0x46, 0x80, 0x18, 0x88, 0x40, 0x9D, 0x71, - 0x4C, 0xA4, 0x81, 0xEB, 0x75, 0xBC, 0xDC, 0x16, 0x41, 0xAB, - 0x95, 0x7E, 0xA9, 0x73, 0x6B, 0x5B + 0xb3, 0x2a, 0xc3, 0xfb, 0x95, 0x8e, 0x18, 0x0b, 0x24, 0xd6, 0x08, 0xf1, + 0xb1, 0x70, 0xfd, 0xaf, 0x72, 0x3d, 0x2a, 0x7a, 0xa2, 0xb9, 0x62, 0xbe, + 0x6f, 0x58, 0xde, 0x0d, 0x7f, 0x69, 0x41, 0xf8, 0xcc, 0x51, 0x38, 0x57, + 0x87, 0xca, 0xa5, 0x74, 0x2a, 0x84, 0xf1, 0x9a, 0xfa, 0x49, 0xe5, 0x1c, + 0xd4, 0x5c, 0x9b, 0xa2, 0x23, 0xca, 0xb1, 0x36, 0x6d, 0xa6, 0x9a, 0x4c, + 0xa3, 0x03, 0x9b, 0x92, 0xea, 0x84, 0x71, 0x0a, 0xdd, 0x41, 0x6c, 0x9e, + 0x56, 0x65, 0x31, 0x5d, 0x4a, 0x71, 0x74, 0x13, 0xb3, 0x07, 0x6b, 0xc6, + 0xc5, 0x64, 0x73, 0x1d, 0x22, 0xc1, 0xc9, 0x2f, 0x5d, 0xb3, 0x61, 0xc6, + 0xb8, 0xc3, 0x29, 0x2c, 0xd9, 0x35, 0x20, 0x5e, 0xa8, 0x7c, 0x63, 0xc0, + 0x07, 0xa8, 0x8e, 0x5a, 0x96, 0x33, 0x49, 0xb3, 0xfe, 0xaa, 0x05, 0xfe, + 0xc1, 0xeb, 0x8b, 0x34, 0x8b, 0x15, 0xf5, 0xc9, 0xe9, 0xbd, 0xd5, 0xca, + 0x47, 0x12, 0xb8, 0x4f, 0xfb, 0x5c, 0x76, 0xa5, 0x72, 0x17, 0xd8, 0xa1, + 0xbe, 0xbd, 0x4e, 0xa2, 0x86, 0x0f, 0x80, 0xb7, 0x98, 0x61, 0x4f, 0x3d, + 0x5f, 0x03, 0x54, 0x7c, 0xf4, 0x3d, 0x41, 0x5e, 0xd2, 0xf1, 0xa9, 0xbb, + 0xb5, 0x1a, 0x49, 0x48, 0x6f, 0xf6, 0x9c, 0x44, 0x99, 0xff, 0x73, 0x01, + 0x29, 0x52, 0xb7, 0xc3, 0xe1, 0x43, 0x51, 0xce, 0xef, 0xd5, 0x77, 0xf5, + 0x0b, 0x50, 0x20, 0x70, 0xee, 0x11, 0xe1, 0x88, 0x83, 0x4e, 0x89, 0x69, + 0xcd, 0x13, 0x22, 0x00, 0x68, 0x93, 0x53, 0xdb, 0x97, 0xc3, 0xb2, 0x38, + 0x82, 0x41, 0x7f, 0x4a, 0x53, 0xc5, 0x11, 0xdb, 0xed, 0x4c, 0xa8, 0x04, + 0x8a, 0x5e, 0x2d, 0x9a, 0x7f, 0xb7, 0x14, 0x44, 0x91, 0x75, 0x73, 0xc6, + 0x9c, 0xd4, 0x24, 0xea, 0xd5, 0x41, 0xc7, 0x81, 0x7c, 0x41, 0x88, 0x48, + 0x1a, 0x7f, 0x80, 0xff }; static unsigned char dhg_2048[] = { 0x02 @@ -52,4 +47,4 @@ return dh; } #endif /* OPENSSL_NO_DH */ -/* built for stunnel 5.65 */ +/* built for stunnel 5.66 */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stunnel-5.65/src/os2.mak new/stunnel-5.66/src/os2.mak --- old/stunnel-5.65/src/os2.mak 2022-05-11 18:10:34.000000000 +0200 +++ new/stunnel-5.66/src/os2.mak 2022-08-15 18:32:58.000000000 +0200 @@ -1,11 +1,11 @@ prefix=. DEFS = -DPACKAGE_NAME=\"stunnel\" \ -DPACKAGE_TARNAME=\"stunnel\" \ - -DPACKAGE_VERSION=\"5.65\" \ - -DPACKAGE_STRING=\"stunnel\ 5.65\" \ + -DPACKAGE_VERSION=\"5.66\" \ + -DPACKAGE_STRING=\"stunnel\ 5.66\" \ -DPACKAGE_BUGREPORT=\"\" \ -DPACKAGE=\"stunnel\" \ - -DVERSION=\"5.65\" \ + -DVERSION=\"5.66\" \ -DSTDC_HEADERS=1 \ -DHAVE_SYS_TYPES_H=1 \ -DHAVE_SYS_STAT_H=1 \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stunnel-5.65/src/ssl.c new/stunnel-5.66/src/ssl.c --- old/stunnel-5.65/src/ssl.c 2022-07-11 14:48:27.000000000 +0200 +++ new/stunnel-5.66/src/ssl.c 2022-09-11 23:15:42.000000000 +0200 @@ -54,7 +54,8 @@ int idx, long argl, void *argp); #ifndef OPENSSL_NO_COMP NOEXPORT void compression_init(void); -NOEXPORT int compression_configure(GLOBAL_OPTIONS *); +NOEXPORT int compression_set(GLOBAL_OPTIONS *); +NOEXPORT void compression_list(void); #endif NOEXPORT int prng_init(GLOBAL_OPTIONS *); NOEXPORT int add_rand_file(GLOBAL_OPTIONS *, const char *); @@ -280,8 +281,9 @@ #endif /* USE_FIPS */ #ifndef OPENSSL_NO_COMP - if(compression_configure(global)) + if(compression_set(global)) return 1; + compression_list(); #endif /* OPENSSL_NO_COMP */ if(prng_init(global)) return 1; @@ -358,32 +360,41 @@ comp_methods[COMP_ZLIB]=methods; /* reuse the memory */ } -NOEXPORT int compression_configure(GLOBAL_OPTIONS *global) { - STACK_OF(SSL_COMP) *methods; - int num_methods, i; - +NOEXPORT int compression_set(GLOBAL_OPTIONS *global) { if(!comp_methods[global->compression]) { s_log(LOG_ERR, "Configured compression is unsupported by OpenSSL"); return 1; } SSL_COMP_set0_compression_methods(comp_methods[global->compression]); + return 0; /* success */ +} + +NOEXPORT void compression_list() { + STACK_OF(SSL_COMP) *methods; + int num_methods, i; methods=SSL_COMP_get_compression_methods(); num_methods=sk_SSL_COMP_num(methods); + if(!num_methods) { + s_log(LOG_INFO, "Compression disabled"); + return; + } s_log(LOG_INFO, "Compression enabled: %d method%s", num_methods, num_methods==1 ? "" : "s"); for(i=0; i<num_methods; ++i) { - SSL_COMP *comp=sk_SSL_COMP_value(methods, i); - if(comp) { - const char *name=SSL_COMP_get0_name(comp); - /* see OpenSSL commit 847406923534dd791f73d0cda15d3f17f513f2a5 */ - if(!name) - name="unknown"; - s_log(LOG_INFO, "Compression id 0x%02x: %s", - SSL_COMP_get_id(comp), name); - } + SSL_COMP *comp; + const char *name; + + comp=sk_SSL_COMP_value(methods, i); + if(!comp) + continue; + name=SSL_COMP_get0_name(comp); + /* see OpenSSL commit 847406923534dd791f73d0cda15d3f17f513f2a5 */ + if(!name) + name="unknown"; + s_log(LOG_INFO, "Compression id 0x%02x: %s", + SSL_COMP_get_id(comp), name); } - return 0; /* success */ } #endif /* OPENSSL_NO_COMP */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stunnel-5.65/src/version.h new/stunnel-5.66/src/version.h --- old/stunnel-5.65/src/version.h 2022-05-11 18:10:34.000000000 +0200 +++ new/stunnel-5.66/src/version.h 2022-08-15 18:32:58.000000000 +0200 @@ -65,7 +65,7 @@ /* START CUSTOMIZE */ #define VERSION_MAJOR 5 -#define VERSION_MINOR 65 +#define VERSION_MINOR 66 /* END CUSTOMIZE */ /* all the following macros are ABSOLUTELY NECESSARY to have proper string diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stunnel-5.65/tests/Makefile.am new/stunnel-5.66/tests/Makefile.am --- old/stunnel-5.65/tests/Makefile.am 2022-07-17 21:22:37.000000000 +0200 +++ new/stunnel-5.66/tests/Makefile.am 2022-07-17 21:36:43.000000000 +0200 @@ -11,7 +11,6 @@ for v in $$(seq 20 -1 7); do command -v python3.$$v && python3.$$v $(srcdir)/maketest.py --debug=10 --libs=$(SSLDIR)/lib64:$(SSLDIR)/lib && break; done dist-hook: - echo $(distdir) rm -rf $(distdir)/__pycache__ $(distdir)/plugins/__pycache__ distclean-local: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stunnel-5.65/tools/ca-certs.pem new/stunnel-5.66/tools/ca-certs.pem --- old/stunnel-5.65/tools/ca-certs.pem 2022-05-06 18:46:13.000000000 +0200 +++ new/stunnel-5.66/tools/ca-certs.pem 2022-08-15 18:32:58.000000000 +0200 @@ -962,31 +962,6 @@ 4uJEvlz36hz1 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1Ix -RDBCBgNVBAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1 -dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1p -YyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RDQSAyMDExMB4XDTExMTIw -NjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYTAkdSMUQwQgYDVQQK -EztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIENl -cnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl -c2VhcmNoIEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBAKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPz -dYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJ -fel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa71HFK9+WXesyHgLacEns -bgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u8yBRQlqD -75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSP -FEDH3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNV -HRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp -5dgTBCPuQSUwRwYDVR0eBEAwPqA8MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQu -b3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQub3JnMA0GCSqGSIb3DQEBBQUA -A4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVtXdMiKahsog2p -6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 -TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7 -dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys -Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI -l7WdmplNsDz4SgCbZN2fOUvRJ9e4 ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsx FjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3Qg Um9vdCBDQSAxMB4XDTAzMDUxNTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkG @@ -1147,6 +1122,57 @@ +RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+CAezNIm8BZ/3Hobui3A= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICpTCCAiqgAwIBAgIUJkYZdzHhT28oNt45UYbm1JeIIsEwCgYIKoZIzj0EAwMw +gYAxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUtVHVn +cmEgRUJHIEEuUy4xHTAbBgNVBAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYwJAYD +VQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENBIEVDQyB2MzAeFw0yMDAzMTgwOTQ2 +NThaFw00NTAzMTIwOTQ2NThaMIGAMQswCQYDVQQGEwJUUjEPMA0GA1UEBxMGQW5r +YXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1Z3Jh +IFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBDQSBF +Q0MgdjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASOmCm/xxAeJ9urA8woLNheSBkQ +KczLWYHMjLiSF4mDKpL2w6QdTGLVn9agRtwcvHbB40fQWxPa56WzZkjnIZpKT4YK +fWzqTTKACrJ6CZtpS5iB4i7sAnCWH/31Rs7K3IKjYzBhMA8GA1UdEwEB/wQFMAMB +Af8wHwYDVR0jBBgwFoAU/4Ixcj75xGZsrTie0bBRiKWQzPUwHQYDVR0OBBYEFP+C +MXI++cRmbK04ntGwUYilkMz1MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNp +ADBmAjEA5gVYaWHlLcoNy/EZCL3W/VGSGn5jVASQkZo1kTmZ+gepZpO6yGjUij/6 +7W4WAie3AjEA3VoXK3YdZUKWpqxdinlW2Iob35reX8dQj7FbcQwm32pAAOwzkSFx +vmjkI6TZraE3 +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp @@ -1440,6 +1466,50 @@ SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAw +PTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2Vy +dGFpbmx5IFJvb3QgUjEwHhcNMjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9 +MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0 +YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANA2 +1B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O5MQT +vqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbed +aFySpvXl8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b0 +1C7jcvk2xusVtyWMOvwlDbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5 +r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGIXsXwClTNSaa/ApzSRKft43jvRl5tcdF5 +cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkNKPl6I7ENPT2a/Z2B7yyQ +wHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQAjeZjOVJ +6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA +2CnbrlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyH +Wyf5QBGenDPBt+U1VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMR +eiFPCyEQtkA6qyI6BJyLm4SGcprSp6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB +/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTgqj8ljZ9EXME66C6u +d0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAszHQNTVfSVcOQr +PbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi +1wrykXprOQ4vMMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrd +rRT90+7iIgXr0PK3aBLXWopBGsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9di +taY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+gjwN/KUD+nsa2UUeYNrEjvn8K8l7 +lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgHJBu6haEaBQmAupVj +yTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7fpYn +Kx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLy +yCwzk5Iwx06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5n +wXARPbv0+Em34yaXOp/SX3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6 +OV+KmalBWQewLK8= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQsw +CQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlu +bHkgUm9vdCBFMTAeFw0yMTA0MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJ +BgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlubHkxGjAYBgNVBAMTEUNlcnRhaW5s +eSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4fxzf7flHh4axpMCK ++IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9YBk2 +QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4 +hevIIgcwCgYIKoZIzj0EAwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozm +ut6Dacpps6kFtZaSF4fC0urQe87YQVt8rgIwRt7qy12a7DLCZRawTDBcMPPaTnOG +BtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw @@ -3541,3 +3611,48 @@ t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== -----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBN +MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMT +HERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcN +NDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQs +IEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS87IE+ +ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG0 +2C+JFvuUAT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgp +wgscONyfMXdcvyej/Cestyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZM +pG2T6T867jp8nVid9E6P/DsjyG244gXazOvswzH016cpVIDPRFtMbzCe88zdH5RD +nU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnVDdXifBBiqmvwPXbzP6Po +sMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9qTXeXAaDx +Zre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cd +Lvvyz6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvX +KyY//SovcfXWJL5/MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNe +XoVPzthwiHvOAbWWl9fNff2C+MIkwcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPL +tgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4EFgQUUTMc7TZArxfTJc1paPKv +TiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN +AQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7H +PNtQOa27PShNlnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLF +O4uJ+DQtpBflF+aZfTCIITfNMBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQ +REtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/u4cnYiWB39yhL/btp/96j1EuMPik +AdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9GOUrYU9DzLjtxpdRv +/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh47a+ +p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilw +MUc/dNAUFvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WF +qUITVuwhd4GTWgzqltlJyqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCK +ovfepEWFJqgejF0pW8hL2JpqA15w8oVPbEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp +Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2 +MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ +bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS +7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp +0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS +B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49 +BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ +LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4 +DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stunnel-5.65/tools/stunnel.nsi new/stunnel-5.66/tools/stunnel.nsi --- old/stunnel-5.65/tools/stunnel.nsi 2022-01-10 19:03:32.000000000 +0100 +++ new/stunnel-5.66/tools/stunnel.nsi 2022-09-11 23:15:42.000000000 +0200 @@ -456,6 +456,20 @@ SetOutPath "$INSTDIR\config" File "${STUNNEL_TOOLS_DIR}\openssl.cnf" +!if ${ENABLE_FIPS} + # create fipsmodule.cnf + ExecWait '"$INSTDIR\bin\openssl.exe" fipsinstall -module "$INSTDIR\ossl-modules\fips.dll" \ + -out "$INSTDIR\config\fipsmodule.cnf" -provider_name fips' + + # modify fipsmodule.cnf and openssl.cnf to enable FIPS mode + ${textreplace::ReplaceInFile} "$INSTDIR\config\fipsmodule.cnf" "$INSTDIR\config\fipsmodule.cnf" \ + "activate = 1" "#activate = 1" "/S=1 /C=0 /AO=1" $0 + ${textreplace::ReplaceInFile} "$INSTDIR\config\openssl.cnf" "$INSTDIR\config\openssl.cnf" \ + "#.include" ".include" "/S=1 /C=0 /AO=1" $0 + ${textreplace::ReplaceInFile} "$INSTDIR\config\openssl.cnf" "$INSTDIR\config\openssl.cnf" \ + "#fips = fips_sect" "fips = fips_sect" "/S=1 /C=0 /AO=1" $0 +!endif + # create stunnel.pem IfSilent no_new_pem IfFileExists "$INSTDIR\config\stunnel.pem" no_new_pem @@ -479,26 +493,6 @@ SectionGroupEnd -!if ${ENABLE_FIPS} -SectionGroup "Providers" groupPROVIDERS - -Section /o "FIPS" sectionFIPS - # create fipsmodule.cnf - ExecWait '"$INSTDIR\bin\openssl.exe" fipsinstall -module "$INSTDIR\ossl-modules\fips.dll" \ - -out "$INSTDIR\config\fipsmodule.cnf" -provider_name fips' - - # modify fipsmodule.cnf and openssl.cnf to enable FIPS mode - ${textreplace::ReplaceInFile} "$INSTDIR\config\fipsmodule.cnf" "$INSTDIR\config\fipsmodule.cnf" \ - "activate = 1" "#activate = 1" "/S=1 /C=0 /AO=1" $0 - ${textreplace::ReplaceInFile} "$INSTDIR\config\openssl.cnf" "$INSTDIR\config\openssl.cnf" \ - "#.include" ".include" "/S=1 /C=0 /AO=1" $0 - ${textreplace::ReplaceInFile} "$INSTDIR\config\openssl.cnf" "$INSTDIR\config\openssl.cnf" \ - "#fips = fips_sect" "fips = fips_sect" "/S=1 /C=0 /AO=1" $0 -SectionEnd - -SectionGroupEnd -!endif - SectionGroup "Shortcuts" groupSHORTCUTS Section "Start Menu" sectionMENU @@ -660,10 +654,6 @@ "Installs the Start Menu shortcuts for managing stunnel." LangString DESC_sectionDESKTOP ${LANG_ENGLISH} \ "Installs the Desktop shortcut for stunnel." -!if ${ENABLE_FIPS} -LangString DESC_sectionFIPS ${LANG_ENGLISH} \ - "Generates a FIPS module configuration file and loads FIPS provider to enable." -!endif /* LangString DESC_sectionDEBUG ${LANG_ENGLISH} \ "Installs the .PDB (program database) files for the executables and libraries." @@ -672,10 +662,6 @@ "Installs optional (but useful) tools." LangString DESC_groupSHORTCUTS ${LANG_ENGLISH} \ "Installs menu and desktop shortcuts." -!if ${ENABLE_FIPS} -LangString DESC_groupPROVIDERS ${LANG_ENGLISH} \ - "Installs OpenSSL providers." -!endif !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${sectionCORE} $(DESC_sectionCORE) @@ -683,17 +669,11 @@ !insertmacro MUI_DESCRIPTION_TEXT ${sectionTSTUNNEL} $(DESC_sectionTSTUNNEL) !insertmacro MUI_DESCRIPTION_TEXT ${sectionMENU} $(DESC_sectionMENU) !insertmacro MUI_DESCRIPTION_TEXT ${sectionDESKTOP} $(DESC_sectionDESKTOP) -!if ${ENABLE_FIPS} - !insertmacro MUI_DESCRIPTION_TEXT ${sectionFIPS} $(DESC_sectionFIPS) -!endif /* !insertmacro MUI_DESCRIPTION_TEXT ${sectionDEBUG} $(DESC_sectionDEBUG) */ !insertmacro MUI_DESCRIPTION_TEXT ${groupTOOLS} $(DESC_groupTOOLS) !insertmacro MUI_DESCRIPTION_TEXT ${groupSHORTCUTS} $(DESC_groupSHORTCUTS) -!if ${ENABLE_FIPS} - !insertmacro MUI_DESCRIPTION_TEXT ${groupPROVIDERS} $(DESC_groupPROVIDERS) -!endif !insertmacro MUI_FUNCTION_DESCRIPTION_END # end of stunnel.nsi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/stunnel-5.65/tools/stunnel.spec new/stunnel-5.66/tools/stunnel.spec --- old/stunnel-5.65/tools/stunnel.spec 2022-05-11 18:10:34.000000000 +0200 +++ new/stunnel-5.66/tools/stunnel.spec 2022-08-15 18:32:58.000000000 +0200 @@ -1,5 +1,5 @@ Name: stunnel -Version: 5.65 +Version: 5.66 Release: 1%{?dist} Summary: An TLS-encrypting socket wrapper Group: Applications/Internet ++++++ stunnel.keyring ++++++ --- /var/tmp/diff_new_pack.gxD3SR/_old 2022-09-15 23:01:18.305573625 +0200 +++ /var/tmp/diff_new_pack.gxD3SR/_new 2022-09-15 23:01:18.305573625 +0200 @@ -1,5 +1,4 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1 mQINBFTU6YwBEAC6PP7E4J6cRZQsJlFE+o3zdQYo7Mg2sVxDR6K9Cha52wn7P0t0 hHUd0CSmWyfjmYUy3/7jYjgKe4oiGzeSCVK8b3TiX3ylHi/nW3mixwpDPwFmr5Cf @@ -13,105 +12,115 @@ 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 -UW75VAlQKPWj1Ag5uVpc2ScMEjevQQ== -=od9U +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 +=EgcU -----END PGP PUBLIC KEY BLOCK-----