mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
Use RSA_generate_key_ex where available.
svn:r17804
This commit is contained in:
parent
46f8ef8116
commit
b0a8ecd193
@ -4,6 +4,8 @@ Changes in version 0.2.1.10-alpha - 2009-01-??
|
|||||||
of which countries we've seen clients from recently. Now controllers
|
of which countries we've seen clients from recently. Now controllers
|
||||||
like Vidalia can show bridge operators that they're actually making
|
like Vidalia can show bridge operators that they're actually making
|
||||||
a difference.
|
a difference.
|
||||||
|
- Build correctly against versions of OpenSSL 0.9.8 or later built
|
||||||
|
without support for deprecated functions.
|
||||||
|
|
||||||
o Minor bugfixes (performance):
|
o Minor bugfixes (performance):
|
||||||
- Squeeze 2-5% out of client performance (according to oprofile) by
|
- Squeeze 2-5% out of client performance (according to oprofile) by
|
||||||
|
@ -406,7 +406,33 @@ crypto_pk_generate_key(crypto_pk_env_t *env)
|
|||||||
|
|
||||||
if (env->key)
|
if (env->key)
|
||||||
RSA_free(env->key);
|
RSA_free(env->key);
|
||||||
|
#if OPENSSL_VERSION_NUMBER < 0x00908000l
|
||||||
|
/* In openssl 0.9.7, RSA_generate_key is all we have. */
|
||||||
env->key = RSA_generate_key(PK_BYTES*8,65537, NULL, NULL);
|
env->key = RSA_generate_key(PK_BYTES*8,65537, NULL, NULL);
|
||||||
|
#else
|
||||||
|
/* In openssl 0.9.8, RSA_generate_key is deprecated. */
|
||||||
|
{
|
||||||
|
BIGNUM *e = BN_new();
|
||||||
|
RSA *r = NULL;
|
||||||
|
if (!e)
|
||||||
|
goto done;
|
||||||
|
if (! BN_set_word(e, 65537))
|
||||||
|
goto done;
|
||||||
|
r = RSA_new();
|
||||||
|
if (!r)
|
||||||
|
goto done;
|
||||||
|
if (RSA_generate_key_ex(r, PK_BYTES*8, e, NULL) == -1)
|
||||||
|
goto done;
|
||||||
|
|
||||||
|
env->key = r;
|
||||||
|
r = NULL;
|
||||||
|
done:
|
||||||
|
if (e)
|
||||||
|
BN_free(e);
|
||||||
|
if (r)
|
||||||
|
RSA_free(r);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (!env->key) {
|
if (!env->key) {
|
||||||
crypto_log_errors(LOG_WARN, "generating RSA key");
|
crypto_log_errors(LOG_WARN, "generating RSA key");
|
||||||
return -1;
|
return -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user