summaryrefslogtreecommitdiff
path: root/src/common/crypto.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2011-02-03 13:56:37 -0500
committerNick Mathewson <nickm@torproject.org>2011-02-03 13:56:37 -0500
commit912b76a1bf2645e74fbca8ba3f27f1a17d510cf5 (patch)
tree23b28ce94beb1048fc48c3bd50f5ff4a3db8bb8e /src/common/crypto.c
parent0fcb677e8a33462a22500efe2ab528c5be60bff9 (diff)
parent2fa9ddb9580fc0d69967c54f16825f14658fd9b9 (diff)
downloadtor-912b76a1bf2645e74fbca8ba3f27f1a17d510cf5.tar.gz
tor-912b76a1bf2645e74fbca8ba3f27f1a17d510cf5.zip
Merge remote branch 'origin/maint-0.2.2'
Diffstat (limited to 'src/common/crypto.c')
-rw-r--r--src/common/crypto.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/src/common/crypto.c b/src/common/crypto.c
index 1108ba2202..587a83ad8a 100644
--- a/src/common/crypto.c
+++ b/src/common/crypto.c
@@ -326,17 +326,6 @@ _crypto_new_pk_env_rsa(RSA *rsa)
return env;
}
-/** used by tortls.c: wrap the RSA from an evp_pkey in a crypto_pk_env_t.
- * returns NULL if this isn't an RSA key. */
-crypto_pk_env_t *
-_crypto_new_pk_env_evp_pkey(EVP_PKEY *pkey)
-{
- RSA *rsa;
- if (!(rsa = EVP_PKEY_get1_RSA(pkey)))
- return NULL;
- return _crypto_new_pk_env_rsa(rsa);
-}
-
/** Helper, used by tor-checkkey.c and tor-gencert.c. Return the RSA from a
* crypto_pk_env_t. */
RSA *
@@ -390,7 +379,7 @@ crypto_new_pk_env(void)
RSA *rsa;
rsa = RSA_new();
- if (!rsa) return NULL;
+ tor_assert(rsa);
return _crypto_new_pk_env_rsa(rsa);
}
@@ -535,6 +524,8 @@ crypto_pk_read_private_key_from_string(crypto_pk_env_t *env,
/* Create a read-only memory BIO, backed by the string 's' */
b = BIO_new_mem_buf((char*)s, (int)len);
+ if (!b)
+ return -1;
if (env->key)
RSA_free(env->key);
@@ -595,6 +586,8 @@ crypto_pk_write_key_to_string_impl(crypto_pk_env_t *env, char **dest,
tor_assert(dest);
b = BIO_new(BIO_s_mem()); /* Create a memory BIO */
+ if (!b)
+ return -1;
/* Now you can treat b as if it were a file. Just use the
* PEM_*_bio_* functions instead of the non-bio variants.
@@ -662,6 +655,8 @@ crypto_pk_read_public_key_from_string(crypto_pk_env_t *env, const char *src,
tor_assert(len<INT_MAX);
b = BIO_new(BIO_s_mem()); /* Create a memory BIO */
+ if (!b)
+ return -1;
BIO_write(b, src, (int)len);