The option --use-prediction-resistance causes the random number
generator to be reseeded for every call. This is excessive.
This commit removes that option.
Github: closes OpenVPN/openvpn#964
Change-Id: I6298795f140c2c62252638f9e0cd6df19cb3d7ed
Signed-off-by: Max Fillinger <maximilian.fillinger@sentyron.com>
Acked-by: Frank Lichtenheld <frank@lichtenheld.com>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1530
Message-Id: <
20260216151033.16585-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg35658.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
success/failure via :code:`auth_control_file` when using deferred auth
method and pending authentication via :code:`auth_pending_file`.
---use-prediction-resistance
- Enable prediction resistance on mbed TLS's RNG.
-
- Enabling prediction resistance causes the RNG to reseed in each call for
- random. Reseeding this often can quickly deplete the kernel entropy
- pool.
-
- If you need this option, please consider running a daemon that adds
- entropy to the kernel pool.
-
--user user
Change the user ID of the OpenVPN process to ``user`` after
initialization, dropping privileges in the process. This option is
Removed in OpenVPN 2.7. OpenVPN will always use ovpn-dco as the default
driver on Windows. It will fall back to tap-windows6 if options are used
that are incompatible with ovpn-dco.
+
+--use-prediction-resistance
+ Removed in OpenVPN 2.8. This option caused the Mbed TLS 3 random number
+ generator to be reseeded on every call. It has been removed because this
+ is excessive.
return &cd_ctx;
}
-#ifdef ENABLE_PREDICTION_RESISTANCE
-void
-rand_ctx_enable_prediction_resistance(void)
-{
- mbedtls_ctr_drbg_context *cd_ctx = rand_ctx_get();
-
- mbedtls_ctr_drbg_set_prediction_resistance(cd_ctx, 1);
-}
-#endif /* ENABLE_PREDICTION_RESISTANCE */
-
int
rand_bytes(uint8_t *output, int len)
{
*/
mbedtls_ctr_drbg_context *rand_ctx_get(void);
-#ifdef ENABLE_PREDICTION_RESISTANCE
-/**
- * Enable prediction resistance on the random number generator.
- */
-void rand_ctx_enable_prediction_resistance(void);
-
-#endif
-
/**
* Log the supplied mbed TLS error, prefixed by supplied prefix.
*
packet_id_persist_load(&c->c1.pid_persist, c->options.packet_id_file);
}
}
-
-#ifdef ENABLE_PREDICTION_RESISTANCE
- if (c->options.use_prediction_resistance)
- {
- rand_ctx_enable_prediction_resistance();
- }
-#endif
}
" using file.\n"
"--test-crypto : Run a self-test of crypto features enabled.\n"
" For debugging only.\n"
-#ifdef ENABLE_PREDICTION_RESISTANCE
- "--use-prediction-resistance: Enable prediction resistance on the random\n"
- " number generator.\n"
-#endif
"\n"
"TLS Key Negotiation Options:\n"
"(These options are meaningful only for TLS-mode)\n"
o->replay_window = DEFAULT_SEQ_BACKTRACK;
o->replay_time = DEFAULT_TIME_BACKTRACK;
o->key_direction = KEY_DIRECTION_BIDIRECTIONAL;
-#ifdef ENABLE_PREDICTION_RESISTANCE
- o->use_prediction_resistance = false;
-#endif
o->tls_timeout = 2;
o->renegotiate_bytes = -1;
o->renegotiate_seconds = 3600;
SHOW_INT(replay_time);
SHOW_STR(packet_id_file);
SHOW_BOOL(test_crypto);
-#ifdef ENABLE_PREDICTION_RESISTANCE
- SHOW_BOOL(use_prediction_resistance);
-#endif
SHOW_BOOL(tls_server);
SHOW_BOOL(tls_client);
{
buf_printf(&out, ",secret");
}
-
-#ifdef ENABLE_PREDICTION_RESISTANCE
- if (o->use_prediction_resistance)
- {
- buf_printf(&out, ",use-prediction-resistance");
- }
-#endif
}
/*
options->providers.names[j] = p[j];
}
}
-#ifdef ENABLE_PREDICTION_RESISTANCE
- else if (streq(p[0], "use-prediction-resistance") && !p[1])
- {
- VERIFY_PERMISSION(OPT_P_GENERAL);
- options->use_prediction_resistance = true;
- }
-#endif
else if (streq(p[0], "show-tls") && !p[1])
{
VERIFY_PERMISSION(OPT_P_GENERAL);
int replay_time;
const char *packet_id_file;
bool test_crypto;
-#ifdef ENABLE_PREDICTION_RESISTANCE
- bool use_prediction_resistance;
-#endif
/* TLS (control channel) parms */
bool tls_server;
#define PORT_SHARE 0
#endif
-#ifdef ENABLE_CRYPTO_MBEDTLS
-#include <mbedtls/version.h>
-#if MBEDTLS_VERSION_NUMBER < 0x04000000
-#define ENABLE_PREDICTION_RESISTANCE
-#endif /* MBEDTLS_VERSION_NUMBER < 0x04000000 */
-#endif /* ENABLE_CRYPTO_MBEDTLS */
-
/*
* Do we support Unix domain sockets?
*/