Loading src/or/nodelist.c +20 −8 Original line number Diff line number Diff line Loading @@ -879,23 +879,35 @@ node_get_by_nickname,(const char *nickname, int warn_if_unnamed)) const ed25519_public_key_t * node_get_ed25519_id(const node_t *node) { const ed25519_public_key_t *ri_pk = NULL; const ed25519_public_key_t *md_pk = NULL; if (node->ri) { if (node->ri->cache_info.signing_key_cert) { const ed25519_public_key_t *pk = &node->ri->cache_info.signing_key_cert->signing_key; if (BUG(ed25519_public_key_is_zero(pk))) goto try_the_md; return pk; ri_pk = &node->ri->cache_info.signing_key_cert->signing_key; if (BUG(ed25519_public_key_is_zero(ri_pk))) ri_pk = NULL; } } try_the_md: if (node->md) { if (node->md->ed25519_identity_pkey) { return node->md->ed25519_identity_pkey; md_pk = node->md->ed25519_identity_pkey; } } if (ri_pk && md_pk) { if (ed25519_pubkey_eq(ri_pk, md_pk)) { return ri_pk; } else { log_warn(LD_GENERAL, "Inconsistent ed25519 identities in the nodelist"); return NULL; } } else if (ri_pk) { return ri_pk; } else { return md_pk; } } /** Return true iff this node's Ed25519 identity matches <b>id</b>. * (An absent Ed25519 identity matches NULL or zero.) */ Loading Loading
src/or/nodelist.c +20 −8 Original line number Diff line number Diff line Loading @@ -879,23 +879,35 @@ node_get_by_nickname,(const char *nickname, int warn_if_unnamed)) const ed25519_public_key_t * node_get_ed25519_id(const node_t *node) { const ed25519_public_key_t *ri_pk = NULL; const ed25519_public_key_t *md_pk = NULL; if (node->ri) { if (node->ri->cache_info.signing_key_cert) { const ed25519_public_key_t *pk = &node->ri->cache_info.signing_key_cert->signing_key; if (BUG(ed25519_public_key_is_zero(pk))) goto try_the_md; return pk; ri_pk = &node->ri->cache_info.signing_key_cert->signing_key; if (BUG(ed25519_public_key_is_zero(ri_pk))) ri_pk = NULL; } } try_the_md: if (node->md) { if (node->md->ed25519_identity_pkey) { return node->md->ed25519_identity_pkey; md_pk = node->md->ed25519_identity_pkey; } } if (ri_pk && md_pk) { if (ed25519_pubkey_eq(ri_pk, md_pk)) { return ri_pk; } else { log_warn(LD_GENERAL, "Inconsistent ed25519 identities in the nodelist"); return NULL; } } else if (ri_pk) { return ri_pk; } else { return md_pk; } } /** Return true iff this node's Ed25519 identity matches <b>id</b>. * (An absent Ed25519 identity matches NULL or zero.) */ Loading