aboutsummaryrefslogtreecommitdiff
path: root/src/or/hs_ident.c
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2017-06-29 13:29:23 -0400
committerDavid Goulet <dgoulet@torproject.org>2017-08-24 13:03:28 -0400
commit8e2854372d777d6be63d1bf766ca6db9100490de (patch)
treeeed4c9eb96908cdf0a7def3b2a7832424c419aec /src/or/hs_ident.c
parentb13ee8e4ae59f85ce75800aa7dd90cfe58c04a5e (diff)
downloadtor-8e2854372d777d6be63d1bf766ca6db9100490de.tar.gz
tor-8e2854372d777d6be63d1bf766ca6db9100490de.zip
prop224: Helper function to assert on invalid client intro circuit
Put all the possible assert() we can do on a client introduction circuit in one helper function to make sure it is valid and usable. It is disabled for now so gcc doesn't complain that we have a unused function. Signed-off-by: David Goulet <dgoulet@torproject.org>
Diffstat (limited to 'src/or/hs_ident.c')
-rw-r--r--src/or/hs_ident.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/or/hs_ident.c b/src/or/hs_ident.c
index e69350d82e..df39285158 100644
--- a/src/or/hs_ident.c
+++ b/src/or/hs_ident.c
@@ -86,3 +86,25 @@ hs_ident_edge_conn_free(hs_ident_edge_conn_t *ident)
tor_free(ident);
}
+/* Return true if the given ident is valid for an introduction circuit. */
+int
+hs_ident_intro_circ_is_valid(const hs_ident_circuit_t *ident)
+{
+ if (ident == NULL) {
+ goto invalid;
+ }
+
+ if (ed25519_public_key_is_zero(&ident->identity_pk)) {
+ goto invalid;
+ }
+
+ if (ed25519_public_key_is_zero(&ident->intro_auth_pk)) {
+ goto invalid;
+ }
+
+ /* Valid. */
+ return 1;
+ invalid:
+ return 0;
+}
+