Hi, On 15-08-17 23:54, David Sommerseth wrote: > We have quite a list of deprecated options currently. Ensure this > is highlighted both in documentation and code. > > This patch builds on the wiki page [1] enlisting all deprecated features > and their status. There are also some options not listed here, as > there exists patches in release/2.4 which awaits an update for git master. > > Signed-off-by: David Sommerseth <dav...@openvpn.net> > --- > Changes.rst | 15 ++++++++++ > doc/openvpn.8 | 78 > ++++++++++++++++++++++++++++++++++----------------- > src/openvpn/options.c | 16 ++++++----- > 3 files changed, 77 insertions(+), 32 deletions(-) > > diff --git a/Changes.rst b/Changes.rst > index 4358f78b..74d038a0 100644 > --- a/Changes.rst > +++ b/Changes.rst > @@ -161,6 +161,9 @@ Asynchronous push reply > > Deprecated features > ------------------- > +For an up-to-date list of all deprecated options, see this wiki page: > +https://community.openvpn.net/openvpn/wiki/DeprecatedOptions > + > - ``--key-method 1`` is deprecated in 2.4 and will be removed in 2.5. > Migrate > away from ``--key-method 1`` as soon as possible. The recommended approach > is to remove the ``--key-method`` option from the configuration files, > OpenVPN > @@ -181,6 +184,18 @@ Deprecated features > - ``--keysize`` is deprecated and will be removed in v2.6 together > with the support of ciphers with cipher block size less than 128 bits. > > +- ``--comp-lzo`` is deprecated in OpenVPN 2.4. Use ``--compress`` instead. > + > +- ``--ifconfig-pool-linear`` has been deprecated since OpenVPN 2.1 and will > be > + removed in v2.5. Use ``--topology p2p`` instead. > + > +- ``--client-cert-not-required`` is deprecated in OpenVPN 2.4 and will be > removed > + in v2.5. Use ``--verify-client-cert none`` for a functional equivalent. > + > +- ``--ns-cert-type`` is deprecated in OpenVPN 2.3.18 and v2.4. It will be > removed > + in v2.5. Use the far better ``--remote-cert-tls`` option which replaces > this > + feature. > + > > User-visible Changes > -------------------- > diff --git a/doc/openvpn.8 b/doc/openvpn.8 > index 056ae145..5da29300 100644 > --- a/doc/openvpn.8 > +++ b/doc/openvpn.8 > @@ -769,7 +769,8 @@ Only use > when none of the connecting clients are Windows systems. This mode > is functionally equivalent to the > .B \-\-ifconfig\-pool\-linear > -directive which is available in OpenVPN 2.0 and is now deprecated. > +directive which is available in OpenVPN 2.0, is deprecated and will be > +removed in OpenVPN 2.5 > > .B subnet \-\- > Use a subnet rather than a point-to-point topology by > @@ -2485,15 +2486,17 @@ setting to be pushed later. > .\"********************************************************* > .TP > .B \-\-comp\-lzo [mode] > +.B DEPRECATED > +This option will be removed in a future OpenVPN release. Use the > +newer > +.B \-\-compress > +instead. > + > Use LZO compression -- may add up to 1 byte per > packet for incompressible data. > .B mode > may be "yes", "no", or "adaptive" (default). > > -This option is deprecated in favor of the newer > -.B --compress > -option. > - > In a server mode setup, it is possible to selectively turn > compression on or off for individual clients. > > @@ -3106,9 +3109,13 @@ a common name and IP address. They do not guarantee > that the given common > name will always receive the given IP address. If you want guaranteed > assignment, use > .B \-\-ifconfig\-push > + > .\"********************************************************* > .TP > .B \-\-ifconfig\-pool\-linear > +.B DEPRECATED > +This option will be removed in OpenVPN 2.5 > + > Modifies the > .B \-\-ifconfig\-pool > directive to > @@ -3671,15 +3678,16 @@ to empty strings (""). The authentication > module/script MUST have logic > to detect this condition and respond accordingly. > .\"********************************************************* > .TP > -.B \-\-client\-cert\-not\-required (DEPRECATED) > +.B \-\-client\-cert\-not\-required > +.B DEPRECATED > +This option will be removed in OpenVPN 2.5 > + > Don't require client certificate, client will authenticate > using username/password only. Be aware that using this directive > is less secure than requiring certificates from all clients. > > - > .B Please note: > -This option is now deprecated and will be removed in OpenVPN v2.5. > -It is replaced by > +This is replaced by > .B \-\-verify\-client\-cert > which allows for more flexibility. The option > .B \-\-verify\-client\-cert none > @@ -3744,7 +3752,10 @@ the authenticated username as the common name, > rather than the common name from the client cert. > .\"********************************************************* > .TP > -.B \-\-compat\-names [no\-remapping] (DEPRECATED) > +.B \-\-compat\-names [no\-remapping] > +.B DEPRECATED > +This option will be removed in OpenVPN 2.5 > + > Until OpenVPN v2.3 the format of the X.509 Subject fields was formatted > like this: > .IP > @@ -3792,7 +3803,10 @@ to make the transition to the new formatting less > intrusive. It will be > removed in OpenVPN v2.5. So please update your scripts/plug-ins where > necessary. > .\"********************************************************* > .TP > -.B \-\-no\-name\-remapping (DEPRECATED) > +.B \-\-no\-name\-remapping > +.B DEPRECATED > +This option will be removed in OpenVPN 2.5 > + > The > .B \-\-no\-name\-remapping > option is an alias for > @@ -4150,13 +4164,29 @@ For more information on HMAC see > .B \-\-cipher alg > Encrypt data channel packets with cipher algorithm > .B alg. > + > The default is > .B BF-CBC, > -an abbreviation for Blowfish in Cipher Block Chaining mode. > +an abbreviation for Blowfish in Cipher Block Chaining mode. When cipher > +negotiation (NCP) is allowed, OpenVPN 2.4 and newer on both client and server > +side will automatically upgrade to > +.B AES-256-GCM. > +See > +.B \-\-ncp\-ciphers > +and > +.B \-\-ncp\-disable > +for more details on NCP. > > -Using BF-CBC is no longer recommended, because of it's 64-bit block size. > This > +Using > +.B BF-CBC > +is no longer recommended, because of its 64-bit block size. This > small block size allows attacks based on collisions, as demonstrated by > SWEET32. > -See https://community.openvpn.net/openvpn/wiki/SWEET32 for details. > +See https://community.openvpn.net/openvpn/wiki/SWEET32 for details. Due to > +this, support for > +.B BF-CBC, DES, CAST5, IDEA > +and > +.B RC2 > +ciphers will be removed in OpenVPN 2.6. > > To see other ciphers that are available with OpenVPN, use the > .B \-\-show\-ciphers > @@ -4166,14 +4196,6 @@ Set > .B alg=none > to disable encryption. > > -As of OpenVPN 2.4, cipher negotiation (NCP) can override the cipher > specified by > -.B \-\-cipher\fR. > -See > -.B \-\-ncp\-ciphers > -and > -.B \-\-ncp\-disable > -for more on NCP. > - > .\"********************************************************* > .TP > .B \-\-ncp\-ciphers cipher_list > @@ -4260,6 +4282,9 @@ supported by OpenSSL. > .\"********************************************************* > .TP > .B \-\-no\-replay > +.B DEPRECATED > +This option will be removed in OpenVPN 2.5. > + > (Advanced) Disable OpenVPN's protection against replay attacks. > Don't use this option unless you are prepared to make > a tradeoff of greater efficiency in exchange for less > @@ -4423,7 +4448,6 @@ This option only makes sense when replay protection is > enabled > .\"********************************************************* > .TP > .B \-\-no\-iv > - > .B DEPRECATED > This option will be removed in OpenVPN 2.5. > > @@ -4823,6 +4847,9 @@ Certificate Store GUI. > .\"********************************************************* > .TP > .B \-\-key\-method m > +.B DEPRECATED > +This option will be removed in OpenVPN 2.5 > + > Use data channel key negotiation method > .B m. > The key method must match on both sides of the connection. > @@ -5379,8 +5406,9 @@ as X509_<depth>_<attribute>=<value>. Multiple > options can be defined to track multiple attributes. > .\"********************************************************* > .TP > -.B \-\-ns\-cert\-type client|server (DEPRECATED) > -This option is deprecated. Use the more modern equivalent > +.B \-\-ns\-cert\-type client|server > +.B DEPRECATED > +This option will be removed in OpenVPN 2.5. Use the more modern equivalent > .B \-\-remote\-cert\-tls > instead. This option will be removed in OpenVPN 2.5. > > diff --git a/src/openvpn/options.c b/src/openvpn/options.c > index ef7009c1..860bc859 100644 > --- a/src/openvpn/options.c > +++ b/src/openvpn/options.c > @@ -415,8 +415,9 @@ static const char usage_message[] = > " client instance.\n" > "--ifconfig-pool start-IP end-IP [netmask] : Set aside a pool of > subnets\n" > " to be dynamically allocated to connecting clients.\n" > - "--ifconfig-pool-linear : Use individual addresses rather than /30 > subnets\n" > - " in tun mode. Not compatible with Windows clients.\n" > + "--ifconfig-pool-linear : (DEPRECATED) Use individual addresses rather > \n" > + " than /30 subnets\n in tun mode. Not compatible > with\n" > + " Windows clients.\n" > "--ifconfig-pool-persist file [seconds] : Persist/unpersist > ifconfig-pool\n" > " data to file, at seconds intervals (default=600).\n" > " If seconds=0, file will be treated as read-only.\n" > @@ -434,7 +435,7 @@ static const char usage_message[] = > " Only valid in a client-specific config file.\n" > "--disable : Client is disabled.\n" > " Only valid in a client-specific config file.\n" > - "--client-cert-not-required : Don't require client certificate, client\n" > + "--client-cert-not-required : (DEPRECATED) Don't require client > certificate, client\n" > " will authenticate using username/password.\n" > "--verify-client-cert [none|optional|require] : perform no, optional > or\n" > " mandatory client certificate verification.\n" > @@ -455,7 +456,7 @@ static const char usage_message[] = > " with those of the server will be disconnected.\n" > "--auth-user-pass-optional : Allow connections by clients that don't\n" > " specify a username/password.\n" > - "--no-name-remapping : Allow Common Name and X509 Subject to include\n" > + "--no-name-remapping : (DEPRECATED) Allow Common Name and X509 Subject > to include\n" > " any printable character.\n" > "--client-to-client : Internally route client-to-client traffic.\n" > "--duplicate-cn : Allow multiple clients with the same common name to\n" > @@ -539,13 +540,13 @@ static const char usage_message[] = > "--prng alg [nsl] : For PRNG, use digest algorithm alg, and\n" > " nonce_secret_len=nsl. Set alg=none to disable > PRNG.\n" > #ifdef HAVE_EVP_CIPHER_CTX_SET_KEY_LENGTH > - "--keysize n : Size of cipher key in bits (optional).\n" > + "--keysize n : (DEPRECATED) Size of cipher key in bits (optional).\n" > " If unspecified, defaults to cipher-specific > default.\n" > #endif > #ifndef ENABLE_CRYPTO_MBEDTLS > "--engine [name] : Enable OpenSSL hardware crypto engine > functionality.\n" > #endif > - "--no-replay : Disable replay protection.\n" > + "--no-replay : (DEPRECATED) Disable replay protection.\n" > "--mute-replay-warnings : Silence the output of replay warnings to log > file.\n" > "--replay-window n [t] : Use a replay protection sliding window of size > n\n" > " and a time window of t seconds.\n" > @@ -563,7 +564,7 @@ static const char usage_message[] = > "(These options are meaningful only for TLS-mode)\n" > "--tls-server : Enable TLS and assume server role during TLS > handshake.\n" > "--tls-client : Enable TLS and assume client role during TLS > handshake.\n" > - "--key-method m : Data channel key exchange method. m should be a > method\n" > + "--key-method m : (DEPRECATED) Data channel key exchange method. m > should be a method\n" > " number, such as 1 (default), 2, etc.\n" > "--ca file : Certificate authority file in .pem format > containing\n" > " root certificate.\n" > @@ -6570,6 +6571,7 @@ add_option(struct options *options, > { > VERIFY_PERMISSION(OPT_P_GENERAL); > options->topology = TOP_P2P; > + msg(M_WARN, "DEPRECATED OPTION: --ifconfig-pool-linear, use > --topology p2p instead"); > } > else if (streq(p[0], "ifconfig-ipv6-pool") && p[1] && !p[2]) > { >
Better documentation and more consistency, nice! ACK. (Given that you add that reference to the commit message ;-) ) -Steffan ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel