aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--UPDATING12
-rw-r--r--security/openvpn/Makefile79
-rw-r--r--security/openvpn/distinfo6
-rw-r--r--security/openvpn/files/extra-tunnelblick-openvpn_xorpatch234
-rw-r--r--security/openvpn/files/patch-configure11
-rw-r--r--security/openvpn/files/patch-git-098edbb1f5a2e1360fd6a4ae0642b63bec12e992136
-rw-r--r--security/openvpn/files/patch-git-38b46e6bf65489c2c5d75da1c02a3a1c33e6da8861
-rw-r--r--security/openvpn/files/patch-git-b89e48b015e581a4a0f5c306e2ab20da34c862ea214
-rw-r--r--security/openvpn/files/patch-git-cab48ad43eaba51c54fa23e55b0b2eb436dd921f40
-rw-r--r--security/openvpn/files/patch-git-fc0297143494e0a0f08564d90dbb210669d0abf528
-rw-r--r--security/openvpn/files/patch-src_openvpn_ssl__openssl.c69
-rw-r--r--security/openvpn/pkg-plist6
12 files changed, 175 insertions, 721 deletions
diff --git a/UPDATING b/UPDATING
index b28b76d821ff..9be8a4fc46a5 100644
--- a/UPDATING
+++ b/UPDATING
@@ -5,6 +5,18 @@ they are unavoidable.
You should get into the habit of checking this file for changes each time
you update your ports collection, before attempting any port upgrades.
+20201030:
+ AFFECTS: users of security/openvpn
+ AUTHOR: mandree@FreeBSD.org
+
+ The security/openvpn port has been updated to v2.5.0, which brings a
+ change to the default ciphersuite, which no longer contains BF-CBC.
+
+ Some options have been removed. Also, if you need to support very old (v2.3)
+ and unsupported clients or servers, you will need to adjust the
+ configuration. For details, see:
+ https://github.com/OpenVPN/openvpn/blob/release/2.5/Changes.rst#overview-of-changes-in-25
+
20201029:
AFFECTS: users of www/node
AUTHOR: bhughes@FreeBSD.org
diff --git a/security/openvpn/Makefile b/security/openvpn/Makefile
index 4d8cd96ced06..2d47712fedeb 100644
--- a/security/openvpn/Makefile
+++ b/security/openvpn/Makefile
@@ -2,8 +2,8 @@
# $FreeBSD$
PORTNAME= openvpn
-DISTVERSION= 2.4.9
-PORTREVISION?= 3
+DISTVERSION= 2.5.0
+PORTREVISION?= 0
CATEGORIES= security net net-vpn
MASTER_SITES= https://swupdate.openvpn.org/community/releases/ \
https://build.openvpn.net/downloads/releases/ \
@@ -15,86 +15,79 @@ COMMENT?= Secure IP/Ethernet tunnel daemon
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/COPYRIGHT.GPL
-USES= cpe libtool pkgconfig shebangfix tar:xz
-
-CONFLICTS_INSTALL?= openvpn-2.[!4].* openvpn-[!2].* openvpn-beta-[0-9]* openvpn-devel-[0-9]* openvpn-mbedtls-[0-9]*
+USES= cpe libtool localbase:ldflags pkgconfig shebangfix tar:xz
+IGNORE_SSL= libressl libressl-devel
+USE_RC_SUBR= openvpn
-GNU_CONFIGURE= yes
SHEBANG_FILES= sample/sample-scripts/verify-cn \
sample/sample-scripts/auth-pam.pl \
sample/sample-scripts/ucn.pl
+
+GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --enable-strict
# set PLUGIN_LIBDIR so that unqualified plugin paths are found:
CONFIGURE_ENV+= PLUGINDIR="${PREFIX}/lib/openvpn/plugins"
+CONFLICTS_INSTALL?= openvpn-2.[!5].* openvpn-[!2].* openvpn-beta-[0-9]* openvpn-devel-[0-9]* openvpn-mbedtls-[0-9]*
+
+SUB_FILES= pkg-message openvpn-client
+
+PORTDOCS= *
+PORTEXAMPLES= *
+
# avoid picking up CMAKE, we don't have cmocka in the tarballs.
CONFIGURE_ENV+= ac_cv_prog_CMAKE= CMAKE=
-# let OpenVPN's configure script pick up the requisite libraries,
-# but do not break the plugin build if an older version is installed
-# XXX FIXME: once there is an opportunity for testing with older
-# versions with incompatible plugins again, try USES+=localbase:ldflags,
-# suggested by Mateusz Piotrowski 0mp@ 2020-07-17
-CPPFLAGS+= -I${WRKSRC}/include -I${LOCALBASE}/include
-LDFLAGS+= -L${LOCALBASE}/lib -Wl,--as-needed
-
OPTIONS_DEFINE= PKCS11 EASYRSA DOCS EXAMPLES X509ALTUSERNAME \
TEST LZ4 LZO SMALL TUNNELBLICK ASYNC_PUSH
OPTIONS_DEFAULT= EASYRSA OPENSSL TEST LZ4 LZO
OPTIONS_SINGLE= SSL
OPTIONS_SINGLE_SSL= OPENSSL MBEDTLS
ASYNC_PUSH_DESC= Enable async-push support
-PKCS11_DESC= Use security/pkcs11-helper (OpenSSL only)
EASYRSA_DESC= Install security/easy-rsa RSA helper package
MBEDTLS_DESC= SSL/TLS via mbedTLS (lacks TLS v1.3)
+PKCS11_DESC= Use security/pkcs11-helper (OpenSSL only)
+SMALL_DESC= Build a smaller executable with fewer features
TUNNELBLICK_DESC= Tunnelblick XOR scramble patch (READ HELP!)
X509ALTUSERNAME_DESC= Enable --x509-username-field (OpenSSL only)
-SMALL_DESC= Build a smaller executable with fewer features
-ASYNC_PUSH_CONFIGURE_ENABLE= async-push
ASYNC_PUSH_LIB_DEPENDS= libinotify.so:devel/libinotify
+ASYNC_PUSH_CONFIGURE_ENABLE= async-push
EASYRSA_RUN_DEPENDS= easy-rsa>=0:security/easy-rsa
-PKCS11_LIB_DEPENDS= libpkcs11-helper.so:security/pkcs11-helper
-PKCS11_CONFIGURE_ENABLE= pkcs11
-PKCS11_PREVENTS= MBEDTLS
-PKCS11_PREVENTS_MSG= OpenVPN cannot use pkcs11-helper with mbedTLS. Disable PKCS11, or use OpenSSL instead
-
-TUNNELBLICK_EXTRA_PATCHES= ${FILESDIR}/extra-tunnelblick-openvpn_xorpatch
-
-X509ALTUSERNAME_CONFIGURE_ENABLE= x509-alt-username
-X509ALTUSERNAME_PREVENTS= MBEDTLS
-X509ALTUSERNAME_PREVENTS_MSG= OpenVPN ${DISTVERSION} cannot use --x509-username-field with mbedTLS. Disable X509ALTUSERNAME, or use OpenSSL instead
+LZ4_LIB_DEPENDS+= liblz4.so:archivers/liblz4
+LZ4_CONFIGURE_ENABLE= lz4
-OPENSSL_USES= ssl
-OPENSSL_CONFIGURE_ON= --with-crypto-library=openssl
+LZO_LIB_DEPENDS+= liblzo2.so:archivers/lzo2
+LZO_CONFIGURE_ENABLE= lzo
MBEDTLS_LIB_DEPENDS= libmbedtls.so:security/mbedtls
MBEDTLS_CONFIGURE_ON= --with-crypto-library=mbedtls
-LZO_CONFIGURE_ENABLE= lzo
-LZO_LIB_DEPENDS+= liblzo2.so:archivers/lzo2
+OPENSSL_USES= ssl
+OPENSSL_CONFIGURE_ON= --with-crypto-library=openssl
-LZ4_CONFIGURE_ENABLE= lz4
-LZ4_LIB_DEPENDS+= liblz4.so:archivers/liblz4
+PKCS11_PREVENTS= MBEDTLS
+PKCS11_PREVENTS_MSG= OpenVPN cannot use pkcs11-helper with mbedTLS. Disable PKCS11, or use OpenSSL instead
+PKCS11_LIB_DEPENDS= libpkcs11-helper.so:security/pkcs11-helper
+PKCS11_CONFIGURE_ENABLE= pkcs11
SMALL_CONFIGURE_ENABLE= small
-USE_RC_SUBR= openvpn
+TEST_ALL_TARGET= check
+TEST_TEST_TARGET_OFF= check
-SUB_FILES= pkg-message openvpn-client
+TUNNELBLICK_EXTRA_PATCHES= ${FILESDIR}/extra-tunnelblick-openvpn_xorpatch:-p1
+
+X509ALTUSERNAME_PREVENTS= MBEDTLS
+X509ALTUSERNAME_PREVENTS_MSG= OpenVPN ${DISTVERSION} cannot use --x509-username-field with mbedTLS. Disable X509ALTUSERNAME, or use OpenSSL instead
+X509ALTUSERNAME_CONFIGURE_ENABLE= x509-alt-username
.ifdef (LOG_OPENVPN)
CFLAGS+= -DLOG_OPENVPN=${LOG_OPENVPN}
.endif
-PORTDOCS= *
-PORTEXAMPLES= *
-
-TEST_ALL_TARGET= check
-TEST_TEST_TARGET_OFF= check
-
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MMBEDTLS}
@@ -140,11 +133,13 @@ post-install:
@${REINPLACE_CMD} 's|resolvconf -p -a|resolvconf -a|' ${STAGEDIR}${PREFIX}/libexec/openvpn-client.up
${INSTALL_SCRIPT} ${WRKDIR}/openvpn-client ${STAGEDIR}${PREFIX}/sbin/openvpn-client
${MKDIR} ${STAGEDIR}${PREFIX}/include
+ @: # workaround for 2.5.0 only XXX FIXME remove after 2.5.0
+ ${INSTALL_MAN} ${WRKSRC}/doc/openvpn.8 ${STAGEDIR}${MANPREFIX}/man/man8
post-install-DOCS-on:
${MKDIR} ${STAGEDIR}${DOCSDIR}/
.for i in AUTHORS ChangeLog PORTS
- ${INSTALL_DATA} ${WRKSRC}/${i} ${STAGEDIR}${DOCSDIR}/
+ ${INSTALL_MAN} ${WRKSRC}/${i} ${STAGEDIR}${DOCSDIR}/
.endfor
post-install-EXAMPLES-on:
diff --git a/security/openvpn/distinfo b/security/openvpn/distinfo
index f925de019854..86ed7defd29a 100644
--- a/security/openvpn/distinfo
+++ b/security/openvpn/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1587146198
-SHA256 (openvpn-2.4.9.tar.xz) = 641f3add8694b2ccc39fd4fd92554e4f089ad16a8db6d2b473ec284839a5ebe2
-SIZE (openvpn-2.4.9.tar.xz) = 954264
+TIMESTAMP = 1604077828
+SHA256 (openvpn-2.5.0.tar.xz) = 029a426e44d656cb4e1189319c95fe6fc9864247724f5599d99df9c4c3478fbd
+SIZE (openvpn-2.5.0.tar.xz) = 1126928
diff --git a/security/openvpn/files/extra-tunnelblick-openvpn_xorpatch b/security/openvpn/files/extra-tunnelblick-openvpn_xorpatch
index 63e73bae2b08..bb00494137c0 100644
--- a/security/openvpn/files/extra-tunnelblick-openvpn_xorpatch
+++ b/security/openvpn/files/extra-tunnelblick-openvpn_xorpatch
@@ -10,47 +10,47 @@ detail on the following wiki page:
https://tunnelblick.net/cOpenvpn_xorpatch.html
-The patch was ported to OpenVPN 2.4 by OPNsense.
-
---- src/openvpn/forward.c.orig 2016-12-22 07:25:18 UTC
-+++ src/openvpn/forward.c
-@@ -730,7 +730,10 @@ read_incoming_link(struct context *c)
+diff -u -r -x .DS_Store openvpn-2.5_beta1.old/src/openvpn/forward.c openvpn-2.5_beta1.new/src/openvpn/forward.c
+--- openvpn-2.5_beta1.old/src/openvpn/forward.c 2020-08-16 11:57:15.000000000 -0400
++++ openvpn-2.5_beta1.new/src/openvpn/forward.c 2020-08-16 11:57:15.000000000 -0400
+@@ -811,7 +811,10 @@
status = link_socket_read(c->c2.link_socket,
&c->c2.buf,
- &c->c2.from);
-+ &c->c2.from,
-+ c->options.ce.xormethod,
-+ c->options.ce.xormask,
-+ c->options.ce.xormasklen);
++ &c->c2.from,
++ c->options.ce.xormethod,
++ c->options.ce.xormask,
++ c->options.ce.xormasklen);
if (socket_connection_reset(c->c2.link_socket, status))
{
-@@ -1368,7 +1371,10 @@ process_outgoing_link(struct context *c)
+@@ -1621,7 +1624,10 @@
/* Send packet */
size = link_socket_write(c->c2.link_socket,
&c->c2.to_link,
- to_addr);
+ to_addr,
-+ c->options.ce.xormethod,
-+ c->options.ce.xormask,
-+ c->options.ce.xormasklen);
++ c->options.ce.xormethod,
++ c->options.ce.xormask,
++ c->options.ce.xormasklen);
/* Undo effect of prepend */
link_socket_write_post_size_adjust(&size, size_delta, &c->c2.to_link);
---- src/openvpn/options.c.orig 2016-12-22 07:25:18 UTC
-+++ src/openvpn/options.c
-@@ -811,6 +811,9 @@ init_options(struct options *o, const bo
+diff -u -r -x .DS_Store openvpn-2.5_rc3.old/src/openvpn/options.c openvpn-2.5_rc3.new/src/openvpn/options.c
+--- openvpn-2.5_rc3.old/src/openvpn/options.c 2020-10-19 13:38:17.000000000 -0400
++++ openvpn-2.5_rc3.new/src/openvpn/options.c 2020-10-19 13:38:17.000000000 -0400
+@@ -821,6 +821,9 @@
o->resolve_retry_seconds = RESOLV_RETRY_INFINITE;
o->resolve_in_advance = false;
o->proto_force = -1;
+ o->ce.xormethod = 0;
+ o->ce.xormask = "\0";
+ o->ce.xormasklen = 0;
- #ifdef ENABLE_OCC
o->occ = true;
- #endif
-@@ -972,6 +975,9 @@ setenv_connection_entry(struct env_set *
+ #ifdef ENABLE_MANAGEMENT
+ o->management_log_history_cache = 250;
+@@ -973,6 +976,9 @@
setenv_str_i(es, "local_port", e->local_port, i);
setenv_str_i(es, "remote", e->remote, i);
setenv_str_i(es, "remote_port", e->remote_port, i);
@@ -60,17 +60,17 @@ The patch was ported to OpenVPN 2.4 by OPNsense.
if (e->http_proxy_options)
{
-@@ -1474,6 +1480,9 @@ show_connection_entry(const struct conne
+@@ -1452,6 +1458,9 @@
SHOW_BOOL(bind_ipv6_only);
SHOW_INT(connect_retry_seconds);
SHOW_INT(connect_timeout);
-+ SHOW_INT(xormethod);
-+ SHOW_STR(xormask);
-+ SHOW_INT(xormasklen);
++ SHOW_INT (xormethod);
++ SHOW_STR (xormask);
++ SHOW_INT (xormasklen);
if (o->http_proxy_options)
{
-@@ -5915,6 +5924,46 @@ add_option(struct options *options,
+@@ -6260,6 +6269,46 @@
}
options->proto_force = proto_force;
}
@@ -103,23 +103,24 @@ The patch was ported to OpenVPN 2.4 by OPNsense.
+ }
+ else if (!p[2])
+ {
-+ msg(M_WARN, "WARNING: No recognized 'scramble' method specified; using 'scramble xormask \"%s\"'", p[1]);
++ msg (M_WARN, "WARNING: No recognized 'scramble' method specified; using 'scramble xormask \"%s\"'", p[1]);
+ options->ce.xormethod = 1;
+ options->ce.xormask = p[1];
+ options->ce.xormasklen = strlen(options->ce.xormask);
+ }
+ else
+ {
-+ msg(msglevel, "No recognized 'scramble' method specified or extra parameters for 'scramble'");
++ msg (msglevel, "No recognized 'scramble' method specified or extra parameters for 'scramble'");
+ goto err;
+ }
+ }
else if (streq(p[0], "http-proxy") && p[1] && !p[5])
{
struct http_proxy_options *ho;
---- src/openvpn/options.h.orig 2016-12-22 07:25:18 UTC
-+++ src/openvpn/options.h
-@@ -98,6 +98,9 @@ struct connection_entry
+diff -u -r -x .DS_Store openvpn-2.5_git_57d6f10.old/src/openvpn/options.h openvpn-2.5_git_57d6f10.new/src/openvpn/options.h
+--- openvpn-2.5_git_57d6f10.old/src/openvpn/options.h 2018-07-28 06:02:27.000000000 -0400
++++ openvpn-2.5_git_57d6f10.new/src/openvpn/options.h 2018-07-28 06:02:27.000000000 -0400
+@@ -99,6 +99,9 @@
int connect_retry_seconds;
int connect_retry_seconds_max;
int connect_timeout;
@@ -129,33 +130,36 @@ The patch was ported to OpenVPN 2.4 by OPNsense.
struct http_proxy_options *http_proxy_options;
const char *socks_proxy_server;
const char *socks_proxy_port;
---- src/openvpn/socket.c.orig 2016-12-22 07:25:18 UTC
-+++ src/openvpn/socket.c
-@@ -55,6 +55,53 @@ const int proto_overhead[] = { /* indexe
+--- openvpn-2.5_git_974513e/src/openvpn/socket.c 2017-08-17 11:27:23.000000000 -0400
++++ openvpn-2.5_git_974513e_patched/src/openvpn/socket.c 2017-08-18 18:37:11.000000000 -0400
+@@ -54,6 +54,56 @@
IPv6_TCP_HEADER_SIZE,
};
-
-+int buffer_mask (struct buffer *buf, const char *mask, int xormasklen) {
-+ int i;
-+ uint8_t *b;
-+ if ( xormasklen > 0 ) {
-+ for (i = 0, b = BPTR (buf); i < BLEN(buf); i++, b++) {
-+ *b = *b ^ mask[i % xormasklen];
-+ }
-+ }
-+ return BLEN (buf);
+
++int buffer_mask(struct buffer *buf, const char *mask, int xormasklen)
++{
++ int i;
++ uint8_t *b;
++ if ( xormasklen > 0 ) {
++ for (i = 0, b = BPTR (buf); i < BLEN(buf); i++, b++) {
++ *b = *b ^ mask[i % xormasklen];
++ }
++ }
++ return BLEN (buf);
+}
+
-+int buffer_xorptrpos (struct buffer *buf) {
-+ int i;
-+ uint8_t *b;
-+ for (i = 0, b = BPTR (buf); i < BLEN(buf); i++, b++) {
-+ *b = *b ^ i+1;
-+ }
-+ return BLEN (buf);
++int buffer_xorptrpos(struct buffer *buf)
++{
++ int i;
++ uint8_t *b;
++ for (i = 0, b = BPTR (buf); i < BLEN(buf); i++, b++) {
++ *b = *b ^ i+1;
++ }
++ return BLEN (buf);
+}
+
-+int buffer_reverse (struct buffer *buf) {
++int buffer_reverse(struct buffer *buf)
++{
+/* This function has been rewritten for Tunnelblick. The buffer_reverse function at
+ * https://github.com/clayface/openvpn_xorpatch
+ * makes a copy of the buffer and it writes to the byte **after** the
@@ -167,38 +171,39 @@ The patch was ported to OpenVPN 2.4 by OPNsense.
+ * actually reverse the contents of the buffer. Instead, it changes 'abcde' to 'aedcb'.
+ * (Of course, the actual buffer contents are bytes, and not necessarily characters.)
+ */
-+ int len = BLEN(buf);
-+ if ( len > 2 ) { /* Leave '', 'a', and 'ab' alone */
-+ int i;
-+ uint8_t *b_start = BPTR (buf) + 1; /* point to first byte to swap */
-+ uint8_t *b_end = BPTR (buf) + (len - 1); /* point to last byte to swap */
-+ uint8_t tmp;
-+ for (i = 0; i < (len-1)/2; i++, b_start++, b_end--) {
-+ tmp = *b_start;
-+ *b_start = *b_end;
-+ *b_end = tmp;
++ int len = BLEN(buf);
++ if ( len > 2 ) { /* Leave '', 'a', and 'ab' alone */
++ int i;
++ uint8_t *b_start = BPTR (buf) + 1; /* point to first byte to swap */
++ uint8_t *b_end = BPTR (buf) + (len - 1); /* point to last byte to swap */
++ uint8_t tmp;
++ for (i = 0; i < (len-1)/2; i++, b_start++, b_end--) {
++ tmp = *b_start;
++ *b_start = *b_end;
++ *b_end = tmp;
++ }
+ }
-+ }
-+ return len;
++ return len;
+}
+
/*
* Convert sockflags/getaddr_flags into getaddr_flags
*/
---- src/openvpn/socket.h.orig 2016-12-22 07:25:18 UTC
-+++ src/openvpn/socket.h
-@@ -249,6 +249,10 @@ struct link_socket
+diff -u -r -x .DS_Store openvpn-2.5_beta1.old/src/openvpn/socket.h openvpn-2.5_beta1.new/src/openvpn/socket.h
+--- openvpn-2.5_beta1.old/src/openvpn/socket.h 2020-08-16 11:57:17.000000000 -0400
++++ openvpn-2.5_beta1.new/src/openvpn/socket.h 2020-08-16 11:57:17.000000000 -0400
+@@ -249,6 +249,10 @@
#endif
};
-+int buffer_mask (struct buffer *buf, const char *xormask, int xormasklen);
-+int buffer_xorptrpos (struct buffer *buf);
-+int buffer_reverse (struct buffer *buf);
++int buffer_mask(struct buffer *buf, const char *xormask, int xormasklen);
++int buffer_xorptrpos(struct buffer *buf);
++int buffer_reverse(struct buffer *buf);
+
/*
* Some Posix/Win32 differences.
*/
-@@ -1046,30 +1050,55 @@ int link_socket_read_udp_posix(struct li
+@@ -1049,30 +1053,56 @@
static inline int
link_socket_read(struct link_socket *sock,
struct buffer *buf,
@@ -209,11 +214,10 @@ The patch was ported to OpenVPN 2.4 by OPNsense.
+ int xormasklen)
{
+ int res;
-+
if (proto_is_udp(sock->info.proto)) /* unified UDPv4 and UDPv6 */
{
- int res;
--
+
#ifdef _WIN32
res = link_socket_read_udp_win32(sock, buf, from);
#else
@@ -233,33 +237,34 @@ The patch was ported to OpenVPN 2.4 by OPNsense.
ASSERT(0);
return -1; /* NOTREACHED */
}
-+ switch (xormethod) {
-+ case 0:
-+ break;
-+ case 1:
-+ buffer_mask(buf,xormask,xormasklen);
-+ break;
-+ case 2:
-+ buffer_xorptrpos(buf);
-+ break;
-+ case 3:
-+ buffer_reverse(buf);
-+ break;
-+ case 4:
-+ buffer_mask(buf,xormask,xormasklen);
-+ buffer_xorptrpos(buf);
-+ buffer_reverse(buf);
-+ buffer_xorptrpos(buf);
-+ break;
-+ default:
-+ ASSERT (0);
-+ return -1; /* NOTREACHED */
++ switch(xormethod)
++ {
++ case 0:
++ break;
++ case 1:
++ buffer_mask(buf,xormask,xormasklen);
++ break;
++ case 2:
++ buffer_xorptrpos(buf);
++ break;
++ case 3:
++ buffer_reverse(buf);
++ break;
++ case 4:
++ buffer_mask(buf,xormask,xormasklen);
++ buffer_xorptrpos(buf);
++ buffer_reverse(buf);
++ buffer_xorptrpos(buf);
++ break;
++ default:
++ ASSERT (0);
++ return -1; /* NOTREACHED */
+ }
+ return res;
}
/*
-@@ -1159,8 +1188,33 @@ link_socket_write_udp(struct link_socket
+@@ -1163,8 +1193,34 @@
static inline int
link_socket_write(struct link_socket *sock,
struct buffer *buf,
@@ -269,27 +274,28 @@ The patch was ported to OpenVPN 2.4 by OPNsense.
+ const char *xormask,
+ int xormasklen)
{
-+ switch (xormethod) {
-+ case 0:
-+ break;
-+ case 1:
-+ buffer_mask(buf,xormask,xormasklen);
-+ break;
-+ case 2:
-+ buffer_xorptrpos(buf);
-+ break;
-+ case 3:
-+ buffer_reverse(buf);
-+ break;
-+ case 4:
-+ buffer_xorptrpos(buf);
-+ buffer_reverse(buf);
-+ buffer_xorptrpos(buf);
-+ buffer_mask(buf,xormask,xormasklen);
-+ break;
-+ default:
-+ ASSERT (0);
-+ return -1; /* NOTREACHED */
++ switch(xormethod)
++ {
++ case 0:
++ break;
++ case 1:
++ buffer_mask(buf,xormask,xormasklen);
++ break;
++ case 2:
++ buffer_xorptrpos(buf);
++ break;
++ case 3:
++ buffer_reverse(buf);
++ break;
++ case 4:
++ buffer_xorptrpos(buf);
++ buffer_reverse(buf);
++ buffer_xorptrpos(buf);
++ buffer_mask(buf,xormask,xormasklen);
++ break;
++ default:
++ ASSERT (0);
++ return -1; /* NOTREACHED */
+ }
if (proto_is_udp(sock->info.proto)) /* unified UDPv4 and UDPv6 */
{
diff --git a/security/openvpn/files/patch-configure b/security/openvpn/files/patch-configure
deleted file mode 100644
index 86b586fe526c..000000000000
--- a/security/openvpn/files/patch-configure
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure.orig 2020-04-16 13:26:53 UTC
-+++ configure
-@@ -18226,8 +18226,6 @@ fi
- $as_echo "!! WARNING !! The cmoka git submodule has not been initialized or updated. Unit testing cannot be performed." >&6; }
- fi
- else
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: !! WARNING !! CMake is NOT available. Unit testing cannot be performed." >&5
--$as_echo "!! WARNING !! CMake is NOT available. Unit testing cannot be performed." >&6; }
- if false; then
- CMOCKA_INITIALIZED_TRUE=
- CMOCKA_INITIALIZED_FALSE='#'
diff --git a/security/openvpn/files/patch-git-098edbb1f5a2e1360fd6a4ae0642b63bec12e992 b/security/openvpn/files/patch-git-098edbb1f5a2e1360fd6a4ae0642b63bec12e992
deleted file mode 100644
index b563b2793ecf..000000000000
--- a/security/openvpn/files/patch-git-098edbb1f5a2e1360fd6a4ae0642b63bec12e992
+++ /dev/null
@@ -1,136 +0,0 @@
-From 098edbb1f5a2e1360fd6a4ae0642b63bec12e992 Mon Sep 17 00:00:00 2001
-From: Jeremy Evans <code@jeremyevans.net>
-Date: Wed, 20 May 2020 11:34:04 -0700
-Subject: [PATCH] Switch assertion failure to returning false
-
-This assertion failure can be hit in production, which causes the
-openvpn server process to stop and all clients to be disconnected.
-Bug #1270 has been filed for this issue on Trac by another user
-who has experienced the issue, and this patch attempts to address it.
-
-Tracing callers, it appears that some callers check ks->authenticated
-before calling, but others do not. It may be possible to add the check
-for the callers that do not check, but this seems to be a simpler
-solution.
-
-To give some background, we hit this assertion failure, with the
-following log output:
-
-```
-Tue May 19 15:57:05 2020 username/73.135.141.11:1194 PUSH: Received
-control message: 'PUSH_REQUEST'
-Tue May 19 15:57:05 2020 username/73.135.141.11:1194 SENT CONTROL
-[username]: 'PUSH_REPLY,redirect-gateway
-def1,comp-lzo,persist-key,persist-tun,route-gateway 10.28.47.1,topology
-subnet,ping 10,ping-restart 120,ifconfig 10.28.47.38 255.255.255.0,peer-id
-89' (status=1)
-Tue May 19 15:57:05 2020 username/73.135.141.11:1194 Assertion failed at
-/path/to/openvpn-2.4.7/src/openvpn/ssl.c:1944 (ks->authenticated)
-Tue May 19 15:57:05 2020 username/73.135.141.11:1194 Exiting due to fatal
-error
-Tue May 19 15:57:05 2020 username/73.135.141.11:1194 Closing TUN/TAP
-interface
-```
-
-using the following OpenVPN server configuration:
-
-```
-port 1194
-proto udp
-dev-type tun
-ca ca.crt
-cert server.crt
-key server.key
-dh dh.pem
-topology subnet
-push "redirect-gateway def1"
-push "comp-lzo"
-push "persist-key"
-push "persist-tun"
-keepalive 10 120
-comp-lzo
-user nobody
-group nobody
-persist-key
-persist-tun
-cd /home/openvpn/server
-chroot /var/empty
-daemon
-verb 3
-crl-verify crl.pem
-tls-auth ta.key 0
-cipher AES-256-CBC
-tls-version-min 1.2
-tls-cipher ECDHE-RSA-AES256-GCM-SHA384
-ncp-disable
-mute-replay-warnings
-script-security 3
-auth-user-pass-verify "ldap-auth/ldap-auth" via-env
-auth-user-pass-optional
-```
-
-and the following command line options:
-
-```
---config openvpn.conf --dev tun1 --local 206.131.72.52 \
---log-append openvpn.log --status openvpn-status.log \
---server 10.28.47.0 255.255.255.0
-```
-
-The failed assertion is inside the function
-`tls_session_generate_data_channel_keys`, which is called 3 other places
-in `ssl.c.`:
-
-* `key_method_2_write`: checks for `ks->authenticated` before calling
-
-* `key_method_2_read`: appears to run in client mode but not in server
- mode
-
-* `tls_session_update_crypto_params`: runs in server mode and does not
- check before calling
-
-That leads me to believe the problem caller is
-`tls_session_update_crypto_params`. There.s three callers of
-`tls_session_update_crypto_params`:.
-
-* `incoming_push_message` (`push.c`): Probably this caller, since the
- server pushes configuration to clients, and the log shows the
- assertion failure right after the push reply.
-
-* `multi_process_file_closed` (`multi.c`): Not this caller. NCP is
- disabled in config, and async push was not enabled when compiling.
-
-* `do_deferred_options` (`init.c`): Not this caller. The server
- configuration doesn't pull.
-
-Changing the assertion to returning false appears to be the simplest
-fix. Another approach would be changing callers to check
-`ks->authenticated` before calling, either
-`tls_session_update_crypto_params` or `incoming_push_message`.
-
-Signed-off-by: Jeremy Evans <code@jeremyevans.net>
-Acked-by: Steffan Karger <steffan.karger@foxcrypto.com>
-Message-Id: <20200520183404.54822-1-code@jeremyevans.net>
-URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg19914.html
-Signed-off-by: Gert Doering <gert@greenie.muc.de>
-(cherry picked from commit 984bd1e1601e4b9562dbc88b02a8db60b884286f)
----
- src/openvpn/ssl.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/src/openvpn/ssl.c b/src/openvpn/ssl.c
-index cf6689982..215147f37 100644
---- ./src/openvpn/ssl.c
-+++ ./src/openvpn/ssl.c
-@@ -1941,7 +1941,10 @@ tls_session_generate_data_channel_keys(struct tls_session *session)
- const struct session_id *server_sid = !session->opt->server ?
- &ks->session_id_remote : &session->session_id;
-
-- ASSERT(ks->authenticated);
-+ if (!ks->authenticated) {
-+ msg(D_TLS_ERRORS, "TLS Error: key_state not authenticated");
-+ goto cleanup;
-+ }
-
- ks->crypto_options.flags = session->opt->crypto_flags;
- if (!generate_key_expansion(&ks->crypto_options.key_ctx_bi,
diff --git a/security/openvpn/files/patch-git-38b46e6bf65489c2c5d75da1c02a3a1c33e6da88 b/security/openvpn/files/patch-git-38b46e6bf65489c2c5d75da1c02a3a1c33e6da88
deleted file mode 100644
index f798c6cd897b..000000000000
--- a/security/openvpn/files/patch-git-38b46e6bf65489c2c5d75da1c02a3a1c33e6da88
+++ /dev/null
@@ -1,61 +0,0 @@
-From 38b46e6bf65489c2c5d75da1c02a3a1c33e6da88 Mon Sep 17 00:00:00 2001
-From: Selva Nair <selva.nair@gmail.com>
-Date: Thu, 20 Feb 2020 22:00:28 -0500
-Subject: [PATCH] Persist management-query-remote and proxy prompts
-
-Currently this prompt is only output once, not re-written to the
-management interface when the management client connects. It is thus
-not seen by a client that connects after the prompt is output or one that
-disconnects and reconnects. This leads to a deadlock: the daemon waiting
-for the "remote" command from the client, the latter not aware of it.
-
-Resolve by adding the ">REMOTE" and ">PROXY" prompt to
-man.persist.special_state_msg as done for other persisted prompts such
-as ">PASSWORD"
-
-Signed-off-by: Selva Nair <selva.nair@gmail.com>
-Acked-by: Gert Doering <gert@greenie.muc.de>
-Message-Id: <1582254028-7763-1-git-send-email-selva.nair@gmail.com>
-URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg19497.html
-Signed-off-by: Gert Doering <gert@greenie.muc.de>
-(cherry picked from commit 93ba6ccddafcc87f336f50dadde144ea4f6178ad)
----
- src/openvpn/init.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/openvpn/init.c b/src/openvpn/init.c
-index 8bac74f97..e153682ed 100644
---- ./src/openvpn/init.c
-+++ ./src/openvpn/init.c
-@@ -269,6 +269,7 @@ ce_management_query_proxy(struct context *c)
- buf_printf(&out, ">PROXY:%u,%s,%s", (l ? l->current : 0) + 1,
- (proto_is_udp(ce->proto) ? "UDP" : "TCP"), np(ce->remote));
- management_notify_generic(management, BSTR(&out));
-+ management->persist.special_state_msg = BSTR(&out);
- }
- ce->flags |= CE_MAN_QUERY_PROXY;
- while (ce->flags & CE_MAN_QUERY_PROXY)
-@@ -280,6 +281,7 @@ ce_management_query_proxy(struct context *c)
- break;
- }
- }
-+ management->persist.special_state_msg = NULL;
- gc_free(&gc);
- }
-
-@@ -349,6 +351,7 @@ ce_management_query_remote(struct context *c)
- buf_printf(&out, ">REMOTE:%s,%s,%s", np(ce->remote), ce->remote_port,
- proto2ascii(ce->proto, ce->af, false));
- management_notify_generic(management, BSTR(&out));
-+ management->persist.special_state_msg = BSTR(&out);
-
- ce->flags &= ~(CE_MAN_QUERY_REMOTE_MASK << CE_MAN_QUERY_REMOTE_SHIFT);
- ce->flags |= (CE_MAN_QUERY_REMOTE_QUERY << CE_MAN_QUERY_REMOTE_SHIFT);
-@@ -362,6 +365,7 @@ ce_management_query_remote(struct context *c)
- break;
- }
- }
-+ management->persist.special_state_msg = NULL;
- }
- gc_free(&gc);
-
diff --git a/security/openvpn/files/patch-git-b89e48b015e581a4a0f5c306e2ab20da34c862ea b/security/openvpn/files/patch-git-b89e48b015e581a4a0f5c306e2ab20da34c862ea
deleted file mode 100644
index de810ca5411f..000000000000
--- a/security/openvpn/files/patch-git-b89e48b015e581a4a0f5c306e2ab20da34c862ea
+++ /dev/null
@@ -1,214 +0,0 @@
-From b89e48b015e581a4a0f5c306e2ab20da34c862ea Mon Sep 17 00:00:00 2001
-From: Selva Nair <selva.nair@gmail.com>
-Date: Tue, 24 Jul 2018 22:34:53 -0400
-Subject: [PATCH] Parse static challenge response in auth-pam plugin
-
-If static challenge is in use, the password passed to the plugin by openvpn
-is of the form "SCRV1:base64-pass:base64-response". Parse this string to
-separate it into password and response and use them to respond to queries
-in the pam conversation function.
-
-On the plugin parameters line the substitution keyword for the static
-challenge response is "OTP". For example, for pam config named "test" that
-prompts for "user", "password" and "pin", use
-
-plugin openvpn-auth-pam.so "test user USERNAME password PASSWORD pin OTP"
-
-Signed-off-by: Selva Nair <selva.nair@gmail.com>
-
-Acked-by: Gert Doering <gert@greenie.muc.de>
-Message-Id: <1532486093-24793-1-git-send-email-selva.nair@gmail.com>
-URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg17307.html
-Signed-off-by: Gert Doering <gert@greenie.muc.de>
-(cherry picked from commit 7369d01bf360bcfa02f26c05b86dde5496d120f6)
----
- src/plugins/auth-pam/README.auth-pam | 15 ++++--
- src/plugins/auth-pam/auth-pam.c | 75 +++++++++++++++++++++++++++-
- 2 files changed, 84 insertions(+), 6 deletions(-)
-
-diff --git a/src/plugins/auth-pam/README.auth-pam b/src/plugins/auth-pam/README.auth-pam
-index e12369021..908156542 100644
---- a/src/plugins/auth-pam/README.auth-pam
-+++ ./src/plugins/auth-pam/README.auth-pam
-@@ -36,19 +36,20 @@ pairs to answer PAM module queries.
-
- For example:
-
-- plugin openvpn-auth-pam.so "login login USERNAME password PASSWORD"
-+ plugin openvpn-auth-pam.so "login login USERNAME password PASSWORD pin OTP"
-
- tells auth-pam to (a) use the "login" PAM module, (b) answer a
--"login" query with the username given by the OpenVPN client, and
--(c) answer a "password" query with the password given by the
--OpenVPN client. This provides flexibility in dealing with the different
-+"login" query with the username given by the OpenVPN client,
-+(c) answer a "password" query with the password, and (d) answer a
-+"pin" query with the OTP given by the OpenVPN client.
-+This provides flexibility in dealing with different
- types of query strings which different PAM modules might generate.
- For example, suppose you were using a PAM module called
- "test" which queried for "name" rather than "login":
-
- plugin openvpn-auth-pam.so "test name USERNAME password PASSWORD"
-
--While "USERNAME" "COMMONNAME" and "PASSWORD" are special strings which substitute
-+While "USERNAME" "COMMONNAME" "PASSWORD" and "OTP" are special strings which substitute
- to client-supplied values, it is also possible to name literal values
- to use as PAM module query responses. For example, suppose that the
- login module queried for a third parameter, "domain" which
-@@ -61,6 +62,10 @@ the operation of this plugin:
-
- client-cert-not-required
- username-as-common-name
-+ static-challenge
-+
-+Use of --static challenege is required to pass a pin (represented by "OTP" in
-+parameter substituion) or a second password.
-
- Run OpenVPN with --verb 7 or higher to get debugging output from
- this plugin, including the list of queries presented by the
-diff --git a/src/plugins/auth-pam/auth-pam.c b/src/plugins/auth-pam/auth-pam.c
-index 5ba4dc4cb..1324307f1 100644
---- a/src/plugins/auth-pam/auth-pam.c
-+++ ./src/plugins/auth-pam/auth-pam.c
-@@ -6,6 +6,7 @@
- * packet compression.
- *
- * Copyright (C) 2002-2018 OpenVPN Inc <sales@openvpn.net>
-+ * Copyright (C) 2016-2018 Selva Nair <selva.nair@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2
-@@ -64,6 +65,7 @@
-
- /* Pointers to functions exported from openvpn */
- static plugin_secure_memzero_t plugin_secure_memzero = NULL;
-+static plugin_base64_decode_t plugin_base64_decode = NULL;
-
- /*
- * Plugin state, used by foreground
-@@ -87,6 +89,7 @@ struct auth_pam_context
- * "USERNAME" -- substitute client-supplied username
- * "PASSWORD" -- substitute client-specified password
- * "COMMONNAME" -- substitute client certificate common name
-+ * "OTP" -- substitute static challenge response if available
- */
-
- #define N_NAME_VALUE 16
-@@ -111,6 +114,7 @@ struct user_pass {
- char username[128];
- char password[128];
- char common_name[128];
-+ char response[128];
-
- const struct name_value_list *name_value_list;
- };
-@@ -276,6 +280,66 @@ name_value_match(const char *query, const char *match)
- return strncasecmp(match, query, strlen(match)) == 0;
- }
-
-+/*
-+ * Split and decode up->password in the form SCRV1:base64_pass:base64_response
-+ * into pass and response and save in up->password and up->response.
-+ * If the password is not in the expected format, input is not changed.
-+ */
-+static void
-+split_scrv1_password(struct user_pass *up)
-+{
-+ const int skip = strlen("SCRV1:");
-+ if (strncmp(up->password, "SCRV1:", skip) != 0)
-+ {
-+ return;
-+ }
-+
-+ char *tmp = strdup(up->password);
-+ if (!tmp)
-+ {
-+ fprintf(stderr, "AUTH-PAM: out of memory parsing static challenge password\n");
-+ goto out;
-+ }
-+
-+ char *pass = tmp + skip;
-+ char *resp = strchr(pass, ':');
-+ if (!resp) /* string not in SCRV1:xx:yy format */
-+ {
-+ goto out;
-+ }
-+ *resp++ = '\0';
-+
-+ int n = plugin_base64_decode(pass, up->password, sizeof(up->password)-1);
-+ if (n > 0)
-+ {
-+ up->password[n] = '\0';
-+ n = plugin_base64_decode(resp, up->response, sizeof(up->response)-1);
-+ if (n > 0)
-+ {
-+ up->response[n] = '\0';
-+ if (DEBUG(up->verb))
-+ {
-+ fprintf(stderr, "AUTH-PAM: BACKGROUND: parsed static challenge password\n");
-+ }
-+ goto out;
-+ }
-+ }
-+
-+ /* decode error: reinstate original value of up->password and return */
-+ plugin_secure_memzero(up->password, sizeof(up->password));
-+ plugin_secure_memzero(up->response, sizeof(up->response));
-+ strcpy(up->password, tmp); /* tmp is guaranteed to fit in up->password */
-+
-+ fprintf(stderr, "AUTH-PAM: base64 decode error while parsing static challenge password\n");
-+
-+out:
-+ if (tmp)
-+ {
-+ plugin_secure_memzero(tmp, strlen(tmp));
-+ free(tmp);
-+ }
-+}
-+
- OPENVPN_EXPORT int
- openvpn_plugin_open_v3(const int v3structver,
- struct openvpn_plugin_args_open_in const *args,
-@@ -316,6 +380,7 @@ openvpn_plugin_open_v3(const int v3structver,
-
- /* Save global pointers to functions exported from openvpn */
- plugin_secure_memzero = args->callbacks->plugin_secure_memzero;
-+ plugin_base64_decode = args->callbacks->plugin_base64_decode;
-
- /*
- * Make sure we have two string arguments: the first is the .so name,
-@@ -599,6 +664,10 @@ my_conv(int n, const struct pam_message **msg_array,
- {
- aresp[i].resp = searchandreplace(match_value, "COMMONNAME", up->common_name);
- }
-+ else if (strstr(match_value, "OTP"))
-+ {
-+ aresp[i].resp = searchandreplace(match_value, "OTP", up->response);
-+ }
- else
- {
- aresp[i].resp = strdup(match_value);
-@@ -787,6 +856,9 @@ pam_server(int fd, const char *service, int verb, const struct name_value_list *
- #endif
- }
-
-+ /* If password is of the form SCRV1:base64:base64 split it up */
-+ split_scrv1_password(&up);
-+
- if (pam_auth(service, &up)) /* Succeeded */
- {
- if (send_control(fd, RESPONSE_VERIFY_SUCCEEDED) == -1)
-@@ -818,10 +890,11 @@ pam_server(int fd, const char *service, int verb, const struct name_value_list *
- command);
- goto done;
- }
-+ plugin_secure_memzero(up.response, sizeof(up.response));
- }
- done:
--
- plugin_secure_memzero(up.password, sizeof(up.password));
-+ plugin_secure_memzero(up.response, sizeof(up.response));
- #ifdef USE_PAM_DLOPEN
- dlclose_pam();
- #endif
diff --git a/security/openvpn/files/patch-git-cab48ad43eaba51c54fa23e55b0b2eb436dd921f b/security/openvpn/files/patch-git-cab48ad43eaba51c54fa23e55b0b2eb436dd921f
deleted file mode 100644
index 8ba8e7f278b4..000000000000
--- a/security/openvpn/files/patch-git-cab48ad43eaba51c54fa23e55b0b2eb436dd921f
+++ /dev/null
@@ -1,40 +0,0 @@
-From cab48ad43eaba51c54fa23e55b0b2eb436dd921f Mon Sep 17 00:00:00 2001
-From: Selva Nair <selva.nair@gmail.com>
-Date: Tue, 7 Aug 2018 22:44:31 -0400
-Subject: [PATCH] Accept empty password and/or response in auth-pam plugin
-
-In the auth-pam plugin correctly parse the static challenge string
-even when password or challenge response is empty.
-
-Whether an empty user input is an error is determined by the PAM
-conversation function depending on whether the PAM module queries
-for it or not.
-
-Signed-off-by: Selva Nair <selva.nair@gmail.com>
-Acked-by: Gert Doering <gert@greenie.muc.de>
-Message-Id: <1533696271-21799-2-git-send-email-selva.nair@gmail.com>
-URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg17382.html
-Signed-off-by: Gert Doering <gert@greenie.muc.de>
-(cherry picked from commit 7a8109023f4c345fe12f23421c5fa7e88e1ea85b)
----
- src/plugins/auth-pam/auth-pam.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/plugins/auth-pam/auth-pam.c b/src/plugins/auth-pam/auth-pam.c
-index 1324307f1..88b53204b 100644
---- a/src/plugins/auth-pam/auth-pam.c
-+++ ./src/plugins/auth-pam/auth-pam.c
-@@ -310,11 +310,11 @@ split_scrv1_password(struct user_pass *up)
- *resp++ = '\0';
-
- int n = plugin_base64_decode(pass, up->password, sizeof(up->password)-1);
-- if (n > 0)
-+ if (n >= 0)
- {
- up->password[n] = '\0';
- n = plugin_base64_decode(resp, up->response, sizeof(up->response)-1);
-- if (n > 0)
-+ if (n >= 0)
- {
- up->response[n] = '\0';
- if (DEBUG(up->verb))
diff --git a/security/openvpn/files/patch-git-fc0297143494e0a0f08564d90dbb210669d0abf5 b/security/openvpn/files/patch-git-fc0297143494e0a0f08564d90dbb210669d0abf5
deleted file mode 100644
index c946f8c78b8e..000000000000
--- a/security/openvpn/files/patch-git-fc0297143494e0a0f08564d90dbb210669d0abf5
+++ /dev/null
@@ -1,28 +0,0 @@
-From fc0297143494e0a0f08564d90dbb210669d0abf5 Mon Sep 17 00:00:00 2001
-From: Antonio Quartulli <a@unstable.cc>
-Date: Sat, 30 May 2020 02:05:54 +0200
-Subject: [PATCH] pool: prevent IPv6 pools to be larger than 2^16 addresses
-
-Signed-off-by: Antonio Quartulli <a@unstable.cc>
-Acked-by: Gert Doering <gert@greenie.muc.de>
-Message-Id: <20200530000600.1680-2-a@unstable.cc>
-URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg19945.html
-Signed-off-by: Gert Doering <gert@greenie.muc.de>
-(cherry picked from commit 81d66a1f14d4be3282dd648ecc2049658e3a65ed)
----
- src/openvpn/pool.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/openvpn/pool.c b/src/openvpn/pool.c
-index da28bc06b..e45bf88a2 100644
---- ./src/openvpn/pool.c
-+++ ./src/openvpn/pool.c
-@@ -183,7 +183,7 @@ ifconfig_pool_init(int type, in_addr_t start, in_addr_t end,
- if (pool->ipv6)
- {
- pool->base_ipv6 = ipv6_base;
-- pool->size_ipv6 = ipv6_netbits>96 ? ( 1<<(128-ipv6_netbits) )
-+ pool->size_ipv6 = ipv6_netbits > 112 ? (1 << (128 - ipv6_netbits))
- : IFCONFIG_POOL_MAX;
-
- msg( D_IFCONFIG_POOL, "IFCONFIG POOL IPv6: (IPv4) size=%d, size_ipv6=%d, netbits=%d, base_ipv6=%s",
diff --git a/security/openvpn/files/patch-src_openvpn_ssl__openssl.c b/security/openvpn/files/patch-src_openvpn_ssl__openssl.c
deleted file mode 100644
index 6d66949a15fa..000000000000
--- a/security/openvpn/files/patch-src_openvpn_ssl__openssl.c
+++ /dev/null
@@ -1,69 +0,0 @@
-In the corner case that the global OpenSSL has an invalid command like
-
- MinProtocol = TLSv1.0
-
-(Due to OpenSSL's idiosyncrasies MinProtocol = TLSv1 would be correct)
-
-the SSL_ctx_new function leaves the errors for parsing the config file
-on the stack.
-
-OpenSSL: error:14187180:SSL routines:ssl_do_config:bad value
-
-Since the later functions, especially the one of loading the
-certificates expected a clean error this error got reported at the
-wrong place.
-
-Print the warnings with crypto_msg when we detect that we are in this
-situation (this also clears the stack).
----
- src/openvpn/ssl_openssl.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-Acked-by: Gert Doering <gert@greenie.muc.de>
-
-"Explanation and Code make sense, Debian testing confirmed it fixes
-the problem observed" (which was a user error in the end, but led to an
-unexpected error in openvpn).
-
-Basic client test run with openssl 1.1.1 on Linux/Gentoo.
-
-Your patch has been applied to the master and release/2.4 branch.
-
-commit 75aa88af774abaa168bf72e43e1dbb57be14c044 (master)
-commit 125654bfa6f99a251b581522182e85748dd8043a (release/2.4)
-Author: Arne Schwabe
-Date: Tue Apr 21 12:11:22 2020 +0200
-
- Fix tls_ctx_client/server_new leaving error on OpenSSL error stack
-
- Acked-by: Gert Doering <gert@greenie.muc.de>
- Message-Id: <20200421101122.24284-1-arne@rfc2549.org>
- URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg19802.html
- Signed-off-by: Gert Doering <gert@greenie.muc.de>
-
---- src/openvpn/ssl_openssl.c.orig 2020-04-16 13:26:45 UTC
-+++ src/openvpn/ssl_openssl.c
-@@ -110,6 +110,11 @@ tls_ctx_server_new(struct tls_root_ctx *ctx)
- {
- crypto_msg(M_FATAL, "SSL_CTX_new SSLv23_server_method");
- }
-+ if (ERR_peek_error() != 0)
-+ {
-+ crypto_msg(M_WARN, "Warning: TLS server context initialisation "
-+ "has warnings.");
-+ }
- }
-
- void
-@@ -122,6 +127,11 @@ tls_ctx_client_new(struct tls_root_ctx *ctx)
- if (ctx->ctx == NULL)
- {
- crypto_msg(M_FATAL, "SSL_CTX_new SSLv23_client_method");
-+ }
-+ if (ERR_peek_error() != 0)
-+ {
-+ crypto_msg(M_WARN, "Warning: TLS client context initialisation "
-+ "has warnings.");
- }
- }
-
diff --git a/security/openvpn/pkg-plist b/security/openvpn/pkg-plist
index da156194eb1f..a3495c2a6273 100644
--- a/security/openvpn/pkg-plist
+++ b/security/openvpn/pkg-plist
@@ -1,9 +1,9 @@
-include/openvpn-plugin.h
include/openvpn-msg.h
+include/openvpn-plugin.h
lib/openvpn/plugins/openvpn-plugin-auth-pam.so
lib/openvpn/plugins/openvpn-plugin-down-root.so
+libexec/openvpn-client.down
+libexec/openvpn-client.up
man/man8/openvpn.8.gz
sbin/openvpn
sbin/openvpn-client
-libexec/openvpn-client.up
-libexec/openvpn-client.down