From af3af494083f041c3ce9f722e4989ecd4b4e6304 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Sat, 24 Sep 2016 11:25:10 -0700 Subject: Add a function to check whether a given ed id key is ours --- src/or/routerkeys.c | 8 ++++++++ src/or/routerkeys.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/src/or/routerkeys.c b/src/or/routerkeys.c index 8d9a1328b8..ab78dbe61e 100644 --- a/src/or/routerkeys.c +++ b/src/or/routerkeys.c @@ -1091,6 +1091,14 @@ get_master_identity_key(void) return &master_identity_key->pubkey; } +/** Return true iff id is our Ed25519 master identity key. */ +int +router_ed25519_id_is_me(const ed25519_public_key_t *id) +{ + return id && master_identity_key && + ed25519_pubkey_eq(id, &master_identity_key->pubkey); +} + #ifdef TOR_UNIT_TESTS /* only exists for the unit tests, since otherwise the identity key * should be used to sign nothing but the signing key. */ diff --git a/src/or/routerkeys.h b/src/or/routerkeys.h index 307a1cd234..98894cdc0b 100644 --- a/src/or/routerkeys.h +++ b/src/or/routerkeys.h @@ -45,6 +45,8 @@ const struct tor_cert_st *get_current_auth_key_cert(void); void get_master_rsa_crosscert(const uint8_t **cert_out, size_t *size_out); +int router_ed25519_id_is_me(const ed25519_public_key_t *id); + struct tor_cert_st *make_ntor_onion_key_crosscert( const curve25519_keypair_t *onion_key, const ed25519_public_key_t *master_id_key, -- cgit v1.2.3-54-g00ecf