mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-20 10:12:15 +01:00
Move extra_info_digest256 into signed_descriptor_t
This patch includes no semantic changes; it's just a field movement. It's prerequisite for a fix to 19017/17150.
This commit is contained in:
parent
4165b1a0da
commit
44da47d3c1
@ -1993,6 +1993,8 @@ typedef struct signed_descriptor_t {
|
||||
time_t published_on;
|
||||
/** For routerdescs only: digest of the corresponding extrainfo. */
|
||||
char extra_info_digest[DIGEST_LEN];
|
||||
/** For routerdescs only: A SHA256-digest of the extrainfo (if any) */
|
||||
char extra_info_digest256[DIGEST256_LEN];
|
||||
/** For routerdescs only: Status of downloading the corresponding
|
||||
* extrainfo. */
|
||||
download_status_t ei_dl_status;
|
||||
@ -2024,8 +2026,6 @@ typedef int16_t country_t;
|
||||
/** Information about another onion router in the network. */
|
||||
typedef struct {
|
||||
signed_descriptor_t cache_info;
|
||||
/** A SHA256-digest of the extrainfo (if any) */
|
||||
char extra_info_digest256[DIGEST256_LEN];
|
||||
char *nickname; /**< Human-readable OR name. */
|
||||
|
||||
uint32_t addr; /**< IPv4 address of OR, in host order. */
|
||||
|
@ -2028,7 +2028,7 @@ router_build_fresh_descriptor(routerinfo_t **r, extrainfo_t **e)
|
||||
memcpy(ri->cache_info.extra_info_digest,
|
||||
ei->cache_info.signed_descriptor_digest,
|
||||
DIGEST_LEN);
|
||||
memcpy(ri->extra_info_digest256,
|
||||
memcpy(ri->cache_info.extra_info_digest256,
|
||||
ei->digest256,
|
||||
DIGEST256_LEN);
|
||||
} else {
|
||||
@ -2543,9 +2543,9 @@ router_dump_router_to_string(routerinfo_t *router,
|
||||
char extra_info_digest[HEX_DIGEST_LEN+1];
|
||||
base16_encode(extra_info_digest, sizeof(extra_info_digest),
|
||||
router->cache_info.extra_info_digest, DIGEST_LEN);
|
||||
if (!tor_digest256_is_zero(router->extra_info_digest256)) {
|
||||
if (!tor_digest256_is_zero(router->cache_info.extra_info_digest256)) {
|
||||
char d256_64[BASE64_DIGEST256_LEN+1];
|
||||
digest256_to_base64(d256_64, router->extra_info_digest256);
|
||||
digest256_to_base64(d256_64, router->cache_info.extra_info_digest256);
|
||||
tor_asprintf(&extra_info_line, "extra-info-digest %s %s\n",
|
||||
extra_info_digest, d256_64);
|
||||
} else {
|
||||
|
@ -4926,9 +4926,9 @@ routerinfo_incompatible_with_extrainfo(const routerinfo_t *ri,
|
||||
/* Set digest256_matches to 1 if the digest is correct, or if no
|
||||
* digest256 was in the ri. */
|
||||
digest256_matches = tor_memeq(ei->digest256,
|
||||
ri->extra_info_digest256, DIGEST256_LEN);
|
||||
ri->cache_info.extra_info_digest256, DIGEST256_LEN);
|
||||
digest256_matches |=
|
||||
tor_mem_is_zero(ri->extra_info_digest256, DIGEST256_LEN);
|
||||
tor_mem_is_zero(ri->cache_info.extra_info_digest256, DIGEST256_LEN);
|
||||
|
||||
/* The identity must match exactly to have been generated at the same time
|
||||
* by the same router. */
|
||||
|
@ -1597,7 +1597,7 @@ router_parse_entry_from_string(const char *s, const char *end,
|
||||
}
|
||||
|
||||
if (tok->n_args >= 2) {
|
||||
if (digest256_from_base64(router->extra_info_digest256, tok->args[1])
|
||||
if (digest256_from_base64(router->cache_info.extra_info_digest256, tok->args[1])
|
||||
< 0) {
|
||||
log_warn(LD_DIR, "Invalid extra info digest256 %s",
|
||||
escaped(tok->args[1]));
|
||||
|
Loading…
Reference in New Issue
Block a user