aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRobert Ransom <rransom.8774@gmail.com>2011-05-04 20:06:24 -0700
committerRobert Ransom <rransom.8774@gmail.com>2011-05-04 20:06:24 -0700
commit66339f74b4affcb02a3160014efe6ce9aca339e1 (patch)
treee1d9b352a4d6286fd4620d027b42e143da1de8fa /src
parent4126de6888de54b5fc825d209ff1bfbe73cd9514 (diff)
downloadtor-66339f74b4affcb02a3160014efe6ce9aca339e1.tar
tor-66339f74b4affcb02a3160014efe6ce9aca339e1.tar.gz
Handle crypto_pk_get_digest failures semi-sensibly
Fixes bug 3106.
Diffstat (limited to 'src')
-rw-r--r--src/or/dirserv.c5
-rw-r--r--src/or/dirvote.c8
2 files changed, 10 insertions, 3 deletions
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index c8dda665e..860ac1f70 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -2705,7 +2705,10 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_env_t *private_key,
if (options->V3AuthUseLegacyKey) {
authority_cert_t *c = get_my_v3_legacy_cert();
if (c) {
- crypto_pk_get_digest(c->identity_key, voter->legacy_id_digest);
+ if (crypto_pk_get_digest(c->identity_key, voter->legacy_id_digest)) {
+ log_warn(LD_BUG, "Unable to compute digest of legacy v3 identity key");
+ memset(voter->legacy_id_digest, 0, DIGEST_LEN);
+ }
}
}
diff --git a/src/or/dirvote.c b/src/or/dirvote.c
index 9273dbc90..db2eaf0f4 100644
--- a/src/or/dirvote.c
+++ b/src/or/dirvote.c
@@ -3129,8 +3129,12 @@ dirvote_compute_consensuses(void)
authority_cert_t *cert = get_my_v3_legacy_cert();
legacy_sign = get_my_v3_legacy_signing_key();
if (cert) {
- crypto_pk_get_digest(cert->identity_key, legacy_dbuf);
- legacy_id_digest = legacy_dbuf;
+ if (crypto_pk_get_digest(cert->identity_key, legacy_dbuf)) {
+ log_warn(LD_BUG,
+ "Unable to compute digest of legacy v3 identity key");
+ } else {
+ legacy_id_digest = legacy_dbuf;
+ }
}
}