summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2016-09-09 09:44:57 -0400
committerNick Mathewson <nickm@torproject.org>2016-09-09 09:45:50 -0400
commit5e30e26c6d7ae33e23557bc18def36f98be4e1e6 (patch)
treed2f530092f07a79e6c2fc6e7dc6ac981445562eb /src/common
parent05110c9294f64b494600b056670f62ca89b52b0b (diff)
downloadtor-5e30e26c6d7ae33e23557bc18def36f98be4e1e6.tar.gz
tor-5e30e26c6d7ae33e23557bc18def36f98be4e1e6.zip
Chop another ~93 RSA key generations out of the unit tests
We have a mock for our RSA key generation function, so we now wire it to pk_generate(). This covers all the cases that were not using pk_generate() before -- all ~93 of them.
Diffstat (limited to 'src/common')
-rw-r--r--src/common/crypto.c14
-rw-r--r--src/common/crypto.h4
2 files changed, 18 insertions, 0 deletions
diff --git a/src/common/crypto.c b/src/common/crypto.c
index b87023f071..bf682ff330 100644
--- a/src/common/crypto.c
+++ b/src/common/crypto.c
@@ -984,6 +984,20 @@ crypto_pk_dup_key(crypto_pk_t *env)
return env;
}
+#ifdef TOR_UNIT_TESTS
+/** For testing: replace dest with src. (Dest must have a refcount
+ * of 1) */
+void
+crypto_pk_assign_(crypto_pk_t *dest, const crypto_pk_t *src)
+{
+ tor_assert(dest);
+ tor_assert(dest->refs == 1);
+ tor_assert(src);
+ RSA_free(dest->key);
+ dest->key = RSAPrivateKey_dup(src->key);
+}
+#endif
+
/** Make a real honest-to-goodness copy of <b>env</b>, and return it.
* Returns NULL on failure. */
crypto_pk_t *
diff --git a/src/common/crypto.h b/src/common/crypto.h
index f8fb0daa81..8f1217e2bd 100644
--- a/src/common/crypto.h
+++ b/src/common/crypto.h
@@ -326,5 +326,9 @@ extern int break_strongest_rng_fallback;
#endif
#endif
+#ifdef TOR_UNIT_TESTS
+void crypto_pk_assign_(crypto_pk_t *dest, const crypto_pk_t *src);
+#endif
+
#endif