Commit 93e7661f authored by Nick Mathewson's avatar Nick Mathewson 🎨
Browse files

Add a function to get an ed25519 ID from a routerinfo.

parent bb249a22
......@@ -13,6 +13,7 @@
#include "feature/nodelist/nodelist.h"
#include "feature/nodelist/routerinfo.h"
#include "feature/nodelist/torcert.h"
#include "feature/nodelist/node_st.h"
#include "feature/nodelist/routerinfo_st.h"
......@@ -75,6 +76,21 @@ router_get_all_orports(const routerinfo_t *ri)
return node_get_all_orports(&fake_node);
/** Return the Ed25519 identity key for this routerinfo, or NULL if it
* doesn't have one. */
const ed25519_public_key_t *
routerinfo_get_ed25519_id(const routerinfo_t *ri)
if (BUG(! ri))
return NULL;
const tor_cert_t *cert = ri->cache_info.signing_key_cert;
if (cert && ! ed25519_public_key_is_zero(&cert->signing_key))
return &cert->signing_key;
return NULL;
/** Given a router purpose, convert it to a string. Don't call this on
* ROUTER_PURPOSE_UNKNOWN: The whole point of that value is that we don't
* know its string representation. */
......@@ -18,6 +18,10 @@ int router_get_orport(const routerinfo_t *router,
int router_has_orport(const routerinfo_t *router,
const tor_addr_port_t *orport);
struct ed25519_public_key_t;
const struct ed25519_public_key_t *routerinfo_get_ed25519_id(
const routerinfo_t *ri);
smartlist_t *router_get_all_orports(const routerinfo_t *ri);
const char *router_purpose_to_string(uint8_t p);
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment