Expose crypto_digest_algorithm_get_length from crypto.c

Also, use it in routerparse.c
This commit is contained in:
Nick Mathewson 2016-05-23 10:58:27 -04:00
parent 2a884926c0
commit b53a2059c4
3 changed files with 4 additions and 5 deletions

View File

@ -1727,7 +1727,7 @@ crypto_digest_algorithm_parse_name(const char *name)
} }
/** Given an algorithm, return the digest length in bytes. */ /** Given an algorithm, return the digest length in bytes. */
static inline size_t size_t
crypto_digest_algorithm_get_length(digest_algorithm_t alg) crypto_digest_algorithm_get_length(digest_algorithm_t alg)
{ {
switch (alg) { switch (alg) {

View File

@ -233,6 +233,7 @@ void crypto_digest_smartlist(char *digest_out, size_t len_out,
const struct smartlist_t *lst, const char *append, const struct smartlist_t *lst, const char *append,
digest_algorithm_t alg); digest_algorithm_t alg);
const char *crypto_digest_algorithm_get_name(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); int crypto_digest_algorithm_parse_name(const char *name);
crypto_digest_t *crypto_digest_new(void); crypto_digest_t *crypto_digest_new(void);
crypto_digest_t *crypto_digest256_new(digest_algorithm_t algorithm); crypto_digest_t *crypto_digest256_new(digest_algorithm_t algorithm);

View File

@ -3531,10 +3531,8 @@ networkstatus_parse_detached_signatures(const char *s, const char *eos)
continue; continue;
} }
expected_length = digest_length = crypto_digest_algorithm_get_length(alg);
(alg == DIGEST_SHA1) ? HEX_DIGEST_LEN : HEX_DIGEST256_LEN; expected_length = digest_length * 2; /* hex encoding */
digest_length =
(alg == DIGEST_SHA1) ? DIGEST_LEN : DIGEST256_LEN;
if (strlen(hexdigest) != expected_length) { if (strlen(hexdigest) != expected_length) {
log_warn(LD_DIR, "Wrong length on consensus-digest in detached " log_warn(LD_DIR, "Wrong length on consensus-digest in detached "