summaryrefslogtreecommitdiff
path: root/src/feature
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2018-09-05 13:37:37 -0400
committerDavid Goulet <dgoulet@torproject.org>2018-09-07 14:03:55 -0400
commitc76d00abfa779059b2936e5b84c032d0e36726d4 (patch)
treebffc22eca9bc5256d1d2979e5de66172bdaafbec /src/feature
parent5e1d36c7db50d977c4a9a1ed9e80ac9800a6077e (diff)
downloadtor-c76d00abfa779059b2936e5b84c032d0e36726d4.tar.gz
tor-c76d00abfa779059b2936e5b84c032d0e36726d4.zip
hs-v3: Make hs_desc_build_fake_authorized_client() return an object
Return a newly allocated fake client authorization object instead of taking the object as a parameter. Signed-off-by: David Goulet <dgoulet@torproject.org>
Diffstat (limited to 'src/feature')
-rw-r--r--src/feature/hs/hs_descriptor.c28
-rw-r--r--src/feature/hs/hs_descriptor.h3
-rw-r--r--src/feature/hs/hs_service.c6
3 files changed, 19 insertions, 18 deletions
diff --git a/src/feature/hs/hs_descriptor.c b/src/feature/hs/hs_descriptor.c
index 0cabe50369..9c3d4fc96b 100644
--- a/src/feature/hs/hs_descriptor.c
+++ b/src/feature/hs/hs_descriptor.c
@@ -2833,18 +2833,22 @@ hs_desc_intro_point_free_(hs_desc_intro_point_t *ip)
tor_free(ip);
}
-/* Build a fake client info for the descriptor */
-void
-hs_desc_build_fake_authorized_client(hs_desc_authorized_client_t *client_out)
-{
- tor_assert(client_out);
-
- crypto_rand((char *) client_out->client_id,
- sizeof(client_out->client_id));
- crypto_rand((char *) client_out->iv,
- sizeof(client_out->iv));
- crypto_rand((char *) client_out->encrypted_cookie,
- sizeof(client_out->encrypted_cookie));
+/* Allocate and build a new fake client info for the descriptor. Return a
+ * newly allocated object. This can't fail. */
+hs_desc_authorized_client_t *
+hs_desc_build_fake_authorized_client(void)
+{
+ hs_desc_authorized_client_t *client_auth =
+ tor_malloc_zero(sizeof(*client_auth));
+
+ crypto_rand((char *) client_auth->client_id,
+ sizeof(client_auth->client_id));
+ crypto_rand((char *) client_auth->iv,
+ sizeof(client_auth->iv));
+ crypto_rand((char *) client_auth->encrypted_cookie,
+ sizeof(client_auth->encrypted_cookie));
+
+ return client_auth;
}
/* Using the client public key, auth ephemeral secret key, and descriptor
diff --git a/src/feature/hs/hs_descriptor.h b/src/feature/hs/hs_descriptor.h
index 8ce5fd6a11..9d447105f9 100644
--- a/src/feature/hs/hs_descriptor.h
+++ b/src/feature/hs/hs_descriptor.h
@@ -302,8 +302,7 @@ void hs_desc_authorized_client_free_(hs_desc_authorized_client_t *client);
link_specifier_t *hs_desc_lspec_to_trunnel(
const hs_desc_link_specifier_t *spec);
-void
-hs_desc_build_fake_authorized_client(hs_desc_authorized_client_t *client_out);
+hs_desc_authorized_client_t *hs_desc_build_fake_authorized_client(void);
void hs_desc_build_authorized_client(const curve25519_public_key_t *
client_auth_pk,
const curve25519_secret_key_t *
diff --git a/src/feature/hs/hs_service.c b/src/feature/hs/hs_service.c
index 09329340c1..79ef0a35e9 100644
--- a/src/feature/hs/hs_service.c
+++ b/src/feature/hs/hs_service.c
@@ -1786,10 +1786,8 @@ build_service_desc_superencrypted(const hs_service_t *service,
}
for (i = 0; i < num_clients_to_add; i++) {
- hs_desc_authorized_client_t *desc_client;
- desc_client = tor_malloc_zero(sizeof(hs_desc_authorized_client_t));
-
- hs_desc_build_fake_authorized_client(desc_client);
+ hs_desc_authorized_client_t *desc_client =
+ hs_desc_build_fake_authorized_client();
smartlist_add(superencrypted->clients, desc_client);
}