commit b53a2059c4495946d1bb27f8be1f6fadb7af69f1 Author: Nick Mathewson nickm@torproject.org Date: Mon May 23 10:58:27 2016 -0400
Expose crypto_digest_algorithm_get_length from crypto.c
Also, use it in routerparse.c --- src/common/crypto.c | 2 +- src/common/crypto.h | 1 + src/or/routerparse.c | 6 ++---- 3 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/src/common/crypto.c b/src/common/crypto.c index fb5dd06..4ed8bfa 100644 --- a/src/common/crypto.c +++ b/src/common/crypto.c @@ -1727,7 +1727,7 @@ crypto_digest_algorithm_parse_name(const char *name) }
/** Given an algorithm, return the digest length in bytes. */ -static inline size_t +size_t crypto_digest_algorithm_get_length(digest_algorithm_t alg) { switch (alg) { diff --git a/src/common/crypto.h b/src/common/crypto.h index 017c849..ff38cca 100644 --- a/src/common/crypto.h +++ b/src/common/crypto.h @@ -233,6 +233,7 @@ void crypto_digest_smartlist(char *digest_out, size_t len_out, const struct smartlist_t *lst, const char *append, digest_algorithm_t alg); const char *crypto_digest_algorithm_get_name(digest_algorithm_t alg); +size_t crypto_digest_algorithm_get_length(digest_algorithm_t alg); int crypto_digest_algorithm_parse_name(const char *name); crypto_digest_t *crypto_digest_new(void); crypto_digest_t *crypto_digest256_new(digest_algorithm_t algorithm); diff --git a/src/or/routerparse.c b/src/or/routerparse.c index 42b0583..6ab042e 100644 --- a/src/or/routerparse.c +++ b/src/or/routerparse.c @@ -3531,10 +3531,8 @@ networkstatus_parse_detached_signatures(const char *s, const char *eos) continue; }
- expected_length = - (alg == DIGEST_SHA1) ? HEX_DIGEST_LEN : HEX_DIGEST256_LEN; - digest_length = - (alg == DIGEST_SHA1) ? DIGEST_LEN : DIGEST256_LEN; + digest_length = crypto_digest_algorithm_get_length(alg); + expected_length = digest_length * 2; /* hex encoding */
if (strlen(hexdigest) != expected_length) { log_warn(LD_DIR, "Wrong length on consensus-digest in detached "
tor-commits@lists.torproject.org