From 424ae9e18bc902e6c96a0e49b609f40868174af8 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Fri, 11 Nov 2016 12:37:58 -0500 Subject: helper to test a node for matching an ed25519 ID. --- src/or/nodelist.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/or/nodelist.c') diff --git a/src/or/nodelist.c b/src/or/nodelist.c index 1f993e4595..d8d2dbbfd4 100644 --- a/src/or/nodelist.c +++ b/src/or/nodelist.c @@ -671,6 +671,18 @@ node_get_ed25519_id(const node_t *node) return NULL; } +/** Return true iff this node's Ed25519 identity matches id. + * (An absent Ed25519 identity matches NULL or zero.) */ +int +node_ed25519_id_matches(const node_t *node, const ed25519_public_key_t *id) +{ + const ed25519_public_key_t *node_id = node_get_ed25519_id(node); + if (node_id == NULL || ed25519_public_key_is_zero(node_id)) { + return id == NULL || ed25519_public_key_is_zero(id); + } else { + return id && ed25519_pubkey_eq(node_id, id); + } +} /** Return true iff node supports authenticating itself * by ed25519 ID during the link handshake in a way that we can understand -- cgit v1.2.3-54-g00ecf