summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2017-06-06 09:31:54 -0400
committerNick Mathewson <nickm@torproject.org>2017-06-06 09:32:11 -0400
commit4ed0f0d62f760f83d9d87f37b88104b11c44fb6a (patch)
treea8ad5e4882191ff6feaf19aff23cca7680648ddd
parentac1ddd5e5bf86b85553b685d6ffa256ef555d94a (diff)
downloadtor-4ed0f0d62f760f83d9d87f37b88104b11c44fb6a.tar.gz
tor-4ed0f0d62f760f83d9d87f37b88104b11c44fb6a.zip
Make generate_ed_link_cert() a no-op on clients.
Fixes bug 22508; bug not in any released Tor.
-rw-r--r--src/or/routerkeys.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/or/routerkeys.c b/src/or/routerkeys.c
index 1eb44db855..f69c0f1376 100644
--- a/src/or/routerkeys.c
+++ b/src/or/routerkeys.c
@@ -988,7 +988,7 @@ load_ed_keys(const or_options_t *options, time_t now)
*
* Returns -1 upon error. Otherwise, returns 0 upon success (either when the
* current certificate is still valid, or when a new certificate was
- * successfully generated).
+ * successfully generated, or no certificate was needed).
*/
int
generate_ed_link_cert(const or_options_t *options, time_t now,
@@ -997,6 +997,11 @@ generate_ed_link_cert(const or_options_t *options, time_t now,
const tor_x509_cert_t *link_ = NULL, *id = NULL;
tor_cert_t *link_cert = NULL;
+ if (!server_mode(options)) {
+ /* No need to make an Ed25519->Link cert: we are a client */
+ return 0;
+ }
+
if (tor_tls_get_my_certs(1, &link_, &id) < 0 || link_ == NULL) {
log_warn(LD_OR, "Can't get my x509 link cert.");
return -1;