/work/toxcore/group_onion_announce.h
Line | Count | Source |
1 | | /* SPDX-License-Identifier: GPL-3.0-or-later |
2 | | * Copyright © 2016-2020 The TokTok team. |
3 | | * Copyright © 2015 Tox project. |
4 | | */ |
5 | | |
6 | | #ifndef C_TOXCORE_TOXCORE_GROUP_ONION_ANNOUNCE_H |
7 | | #define C_TOXCORE_TOXCORE_GROUP_ONION_ANNOUNCE_H |
8 | | |
9 | | #include <stdint.h> |
10 | | |
11 | | #include "attributes.h" |
12 | | #include "crypto_core.h" |
13 | | #include "group_announce.h" |
14 | | #include "mem.h" |
15 | | #include "onion_announce.h" |
16 | | |
17 | | /** |
18 | | * Maximum size of an announce response packet when the GCA extra-data callback |
19 | | * is active. |
20 | | * |
21 | | * The 1 here is the `num_nodes` byte (`want_node_count=true`). |
22 | | */ |
23 | | #define GCA_ANNOUNCE_RESPONSE_MAX_SIZE \ |
24 | 1.13k | (ONION_ANNOUNCE_RESPONSE_MIN_SIZE \ |
25 | 1.13k | + 1 \ |
26 | 1.13k | + MAX_SENT_NODES * PACKED_NODE_SIZE_IP6 \ |
27 | 1.13k | + GCA_MAX_SENT_ANNOUNCES * GCA_ANNOUNCE_MAX_SIZE) |
28 | | |
29 | | void gca_onion_init(GC_Announces_List *_Nonnull group_announce, Onion_Announce *_Nonnull onion_a); |
30 | | |
31 | | int create_gca_announce_request(const Memory *_Nonnull mem, const Random *_Nonnull rng, uint8_t *_Nonnull packet, uint16_t max_packet_length, const uint8_t *_Nonnull dest_client_id, |
32 | | const uint8_t *_Nonnull public_key, const uint8_t *_Nonnull secret_key, const uint8_t *_Nonnull ping_id, const uint8_t *_Nonnull client_id, const uint8_t *_Nonnull data_public_key, |
33 | | uint64_t sendback_data, const uint8_t *_Nonnull gc_data, uint16_t gc_data_length); |
34 | | |
35 | | #endif /* C_TOXCORE_TOXCORE_GROUP_ONION_ANNOUNCE_H */ |