summaryrefslogtreecommitdiff
path: root/src/feature/relay
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2018-09-25 16:22:11 -0400
committerNick Mathewson <nickm@torproject.org>2018-09-25 16:22:11 -0400
commitefa978124f067bf75c33c4ff9bba8dbf2f54a4ef (patch)
tree877cacc564b746bafde6b9cda24d4ea78e1d1ac0 /src/feature/relay
parent5c86f3c297229515f125c0e06abdc689c90768f4 (diff)
downloadtor-efa978124f067bf75c33c4ff9bba8dbf2f54a4ef.tar.gz
tor-efa978124f067bf75c33c4ff9bba8dbf2f54a4ef.zip
Extract nickname-checking functions from router.c
Diffstat (limited to 'src/feature/relay')
-rw-r--r--src/feature/relay/router.c49
-rw-r--r--src/feature/relay/router.h4
2 files changed, 1 insertions, 52 deletions
diff --git a/src/feature/relay/router.c b/src/feature/relay/router.c
index 494609b5bb..3db7bcf25b 100644
--- a/src/feature/relay/router.c
+++ b/src/feature/relay/router.c
@@ -3104,55 +3104,6 @@ extrainfo_dump_to_string(char **s_out, extrainfo_t *extrainfo,
return result;
}
-/** Return true iff <b>s</b> is a valid server nickname. (That is, a string
- * containing between 1 and MAX_NICKNAME_LEN characters from
- * LEGAL_NICKNAME_CHARACTERS.) */
-int
-is_legal_nickname(const char *s)
-{
- size_t len;
- tor_assert(s);
- len = strlen(s);
- return len > 0 && len <= MAX_NICKNAME_LEN &&
- strspn(s,LEGAL_NICKNAME_CHARACTERS) == len;
-}
-
-/** Return true iff <b>s</b> is a valid server nickname or
- * hex-encoded identity-key digest. */
-int
-is_legal_nickname_or_hexdigest(const char *s)
-{
- if (*s!='$')
- return is_legal_nickname(s);
- else
- return is_legal_hexdigest(s);
-}
-
-/** Return true iff <b>s</b> is a valid hex-encoded identity-key
- * digest. (That is, an optional $, followed by 40 hex characters,
- * followed by either nothing, or = or ~ followed by a nickname, or
- * a character other than =, ~, or a hex character.)
- */
-int
-is_legal_hexdigest(const char *s)
-{
- size_t len;
- tor_assert(s);
- if (s[0] == '$') s++;
- len = strlen(s);
- if (len > HEX_DIGEST_LEN) {
- if (s[HEX_DIGEST_LEN] == '=' ||
- s[HEX_DIGEST_LEN] == '~') {
- if (!is_legal_nickname(s+HEX_DIGEST_LEN+1))
- return 0;
- } else {
- return 0;
- }
- }
- return (len >= HEX_DIGEST_LEN &&
- strspn(s,HEX_CHARACTERS)==HEX_DIGEST_LEN);
-}
-
/** Forget that we have issued any router-related warnings, so that we'll
* warn again if we see the same errors. */
void
diff --git a/src/feature/relay/router.h b/src/feature/relay/router.h
index d56ddc8a1e..54b57cf7c6 100644
--- a/src/feature/relay/router.h
+++ b/src/feature/relay/router.h
@@ -14,6 +14,7 @@
#include "lib/testsupport/testsupport.h"
#include "feature/nodelist/describe.h"
+#include "feature/nodelist/nickname.h"
struct curve25519_keypair_t;
struct ed25519_keypair_t;
@@ -119,9 +120,6 @@ int router_has_orport(const routerinfo_t *router,
int extrainfo_dump_to_string(char **s, extrainfo_t *extrainfo,
crypto_pk_t *ident_key,
const struct ed25519_keypair_t *signing_keypair);
-int is_legal_nickname(const char *s);
-int is_legal_nickname_or_hexdigest(const char *s);
-int is_legal_hexdigest(const char *s);
const char *routerinfo_err_to_string(int err);
int routerinfo_err_is_transient(int err);