Aranya
a software development tool for governing access to data and services over a decentralized, zero-trust framework with secure end-to-end encrypted data exchange built-in.
Loading...
Searching...
No Matches
aranya-client.h
Go to the documentation of this file.
1/*
2 * Copyright (c) SpiderOak, Inc. All rights reserved.
3 */
11#ifndef ARANYA_CLIENT_H
12#define ARANYA_CLIENT_H
13
14#pragma once
15
16/* Code generated by `capi`. DO NOT EDIT. */
17
18#include <stdint.h>
19#include <stdbool.h>
20#include <stddef.h>
21#include <sys/socket.h>
22
23#ifndef __has_attribute
24 #define __has_attribute(x) 0
25#endif /* __has_attribute */
26
27#if !defined(ARANYA_ALIGNED)
28 #if __has_attribute(aligned)
29 #define ARANYA_ALIGNED(n) __attribute__((aligned(n)))
30 #else
31 #error "compiler must support `aligned` attribute"
32 #endif
33#endif /* ARANYA_ALIGNED */
34
35#if !defined(ARANYA_DESIGNATED_INIT)
36 #if __has_attribute(designated_init)
37 #define ARANYA_DESIGNATED_INIT __attribute__((designated_init))
38 #else
39 #define ARANYA_DESIGNATED_INIT
40 #endif
41#endif /* ARANYA_DESIGNATED_INIT */
42
43#if !defined(ARANYA_MUST_USE)
44 #if __has_attribute(warn_unused_result)
45 #define ARANYA_MUST_USE __attribute__((warn_unused_result))
46 #else
47 #define ARANYA_MUST_USE
48 #endif
49#endif /* ARANYA_MUST_USE */
50
51#if !defined(ARANYA_NO_RETURN)
52 #if __has_attribute(noreturn)
53 #define ARANYA_NO_RETURN __attribute__((noreturn))
54 #else
55 #define ARANYA_NO_RETURN
56 #endif
57#endif /* ARANYA_NO_RETURN */
58
59#if !defined(ARANYA_NON_NULL)
60 #if defined(__gnu__)
61 #if __has_attribute(nonnull)
62 #define ARANYA_NON_NULL __attribute__((nonnull))
63 #endif
64 #elif defined(__clang__)
65 #define ARANYA_NON_NULL _Nonnull
66 #else
67 #define ARANYA_NON_NULL
68 #endif
69#endif /* ARANYA_NON_NULL */
70
71#if !defined(ARANYA_PACKED)
72 #if __has_attribute(packed)
73 #define ARANYA_PACKED __attribute__((packed))
74 #else
75 #define ARANYA_PACKED
76 #endif
77#endif /* ARANYA_PACKED */
78
79
80#define ARANYA_DURATION_SECONDS (1000 * ARANYA_DURATION_MILLISECONDS)
81
82#define ARANYA_DURATION_MILLISECONDS (1000 * ARANYA_DURATION_MICROSECONDS)
83
84#define ARANYA_DURATION_MICROSECONDS (1000 * ARANYA_DURATION_NANOSECONDS)
85
86#define ARANYA_DURATION_NANOSECONDS 1
87
91#define ARANYA_ID_LEN 32
92
96#define ARANYA_ID_STR_LEN (((ARANYA_ID_LEN * 1375) / 1000) + 1)
97
102#ifdef __cplusplus
103 : uint8_t
104#endif // __cplusplus
105 {
106 ARANYA_AQC_CHANNEL_TYPE_BIDIRECTIONAL,
107 ARANYA_AQC_CHANNEL_TYPE_RECEIVER,
108};
109#ifndef __cplusplus
110typedef uint8_t AranyaAqcChannelType;
111#endif // __cplusplus
112
117#ifdef __cplusplus
118 : uint8_t
119#endif // __cplusplus
120 {
136};
137#ifndef __cplusplus
138typedef uint8_t AranyaChanOp;
139#endif // __cplusplus
140
212#ifndef __cplusplus
213typedef uint32_t AranyaError;
214#endif // __cplusplus
215
220#ifdef __cplusplus
221 : uint8_t
222#endif // __cplusplus
223 {
240};
241#ifndef __cplusplus
242typedef uint8_t AranyaRole;
243#endif // __cplusplus
244
248typedef struct ARANYA_ALIGNED(8) AranyaExtError {
254 uint8_t __for_size_only[88];
256
260typedef struct ARANYA_ALIGNED(16) AranyaClient {
266 uint8_t __for_size_only[3728];
268
272typedef struct ARANYA_ALIGNED(8) AranyaClientConfig {
278 uint8_t __for_size_only[56];
280
281typedef struct AranyaId {
282 uint8_t bytes[ARANYA_ID_LEN];
283} AranyaId;
284
288typedef struct AranyaDeviceId {
289 struct AranyaId id;
291
295typedef struct ARANYA_ALIGNED(8) AranyaClientConfigBuilder {
301 uint8_t __for_size_only[72];
303
307typedef struct ARANYA_ALIGNED(8) AranyaAqcConfigBuilder {
313 uint8_t __for_size_only[24];
315
319typedef struct ARANYA_ALIGNED(8) AranyaAqcConfig {
325 uint8_t __for_size_only[40];
327
328typedef struct ARANYA_ALIGNED(8) AranyaTeamConfigBuilder {
334 uint8_t __for_size_only[16];
336
337typedef struct ARANYA_ALIGNED(8) AranyaTeamConfig {
343 uint8_t __for_size_only[24];
345
349typedef struct ARANYA_ALIGNED(8) AranyaSyncPeerConfigBuilder {
355 uint8_t __for_size_only[40];
357
361typedef struct ARANYA_ALIGNED(8) AranyaSyncPeerConfig {
367 uint8_t __for_size_only[32];
369
373typedef uint64_t AranyaDuration;
374
378typedef struct AranyaTeamId {
379 struct AranyaId id;
381
387typedef const char *AranyaLabelName;
388
392typedef struct AranyaLabelId {
393 struct AranyaId id;
395
401typedef const char *AranyaAddr;
402
408typedef const char *AranyaNetIdentifier;
409
417typedef struct ARANYA_ALIGNED(8) AranyaAqcPeerChannel {
423 uint8_t __for_size_only[120];
425
429typedef struct ARANYA_ALIGNED(8) AranyaAqcBidiChannel {
435 uint8_t __for_size_only[112];
437
441typedef struct ARANYA_ALIGNED(8) AranyaAqcSendChannel {
447 uint8_t __for_size_only[112];
449
453typedef struct ARANYA_ALIGNED(8) AranyaAqcReceiveChannel {
459 uint8_t __for_size_only[112];
461
465typedef struct ARANYA_ALIGNED(8) AranyaAqcBidiStream {
471 uint8_t __for_size_only[184];
473
477typedef struct ARANYA_ALIGNED(8) AranyaAqcSendStream {
483 uint8_t __for_size_only[152];
485
489typedef struct ARANYA_ALIGNED(8) AranyaAqcReceiveStream {
495 uint8_t __for_size_only[184];
497
498#ifdef __cplusplus
499extern "C" {
500#endif // __cplusplus
501
511const char *aranya_error_to_str(uint32_t err);
512
522
532 struct AranyaExtError *__ext_err);
533
542
551 struct AranyaExtError *__ext_err);
552
573 char *msg,
574 size_t *msg_len);
575
596 char *msg,
597 size_t *msg_len,
598 struct AranyaExtError *__ext_err);
599
609 const struct AranyaClientConfig *config);
610
620 const struct AranyaClientConfig *config,
621 struct AranyaExtError *__ext_err);
622
631
640 struct AranyaExtError *__ext_err);
641
649
657
670 size_t dst_len,
671 const uint8_t *src,
672 size_t src_len,
673 size_t *__output);
674
687 size_t dst_len,
688 const uint8_t *src,
689 size_t src_len,
690 size_t *__output,
691 struct AranyaExtError *__ext_err);
692
703 uint8_t *keybundle,
704 size_t *keybundle_len);
705
716 uint8_t *keybundle,
717 size_t *keybundle_len,
718 struct AranyaExtError *__ext_err);
719
732 char *str,
733 size_t *str_len);
734
743AranyaError aranya_id_from_str(const char *str, struct AranyaId *__output);
744
754 struct AranyaDeviceId *__output);
755
765 struct AranyaDeviceId *__output,
766 struct AranyaExtError *__ext_err);
767
777
787 struct AranyaExtError *__ext_err);
788
797
806 struct AranyaExtError *__ext_err);
807
818 struct AranyaClientConfig *out);
819
830 struct AranyaClientConfig *out,
831 struct AranyaExtError *__ext_err);
832
840 const char *address);
841
849 const char *address,
850 struct AranyaExtError *__ext_err);
851
867 const uint8_t *pk,
868 size_t pk_len);
869
885 const uint8_t *pk,
886 size_t pk_len,
887 struct AranyaExtError *__ext_err);
888
898
908 struct AranyaExtError *__ext_err);
909
918
927 struct AranyaExtError *__ext_err);
928
939 struct AranyaAqcConfig *out);
940
951 struct AranyaAqcConfig *out,
952 struct AranyaExtError *__ext_err);
953
962 const char *address);
963
972 const char *address,
973 struct AranyaExtError *__ext_err);
974
982 const struct AranyaAqcConfig *aqc_config);
983
991 const struct AranyaAqcConfig *aqc_config,
992 struct AranyaExtError *__ext_err);
993
1003
1013 struct AranyaExtError *__ext_err);
1014
1023
1032 struct AranyaExtError *__ext_err);
1033
1044 struct AranyaTeamConfig *out);
1045
1056 struct AranyaTeamConfig *out,
1057 struct AranyaExtError *__ext_err);
1058
1068
1078 struct AranyaExtError *__ext_err);
1079
1088
1097 struct AranyaExtError *__ext_err);
1098
1108 struct AranyaSyncPeerConfig *out);
1109
1119 struct AranyaSyncPeerConfig *out,
1120 struct AranyaExtError *__ext_err);
1121
1133 AranyaDuration interval);
1134
1146 AranyaDuration interval,
1147 struct AranyaExtError *__ext_err);
1148
1159
1170 struct AranyaExtError *__ext_err);
1171
1181
1191 struct AranyaExtError *__ext_err);
1192
1208 const struct AranyaTeamId *team,
1209 const struct AranyaDeviceId *device,
1210 AranyaRole role);
1211
1227 const struct AranyaTeamId *team,
1228 const struct AranyaDeviceId *device,
1229 AranyaRole role,
1230 struct AranyaExtError *__ext_err);
1231
1245 const struct AranyaTeamId *team,
1246 const struct AranyaDeviceId *device,
1247 AranyaRole role);
1248
1262 const struct AranyaTeamId *team,
1263 const struct AranyaDeviceId *device,
1264 AranyaRole role,
1265 struct AranyaExtError *__ext_err);
1266
1279 const struct AranyaTeamId *team,
1280 AranyaLabelName name,
1281 struct AranyaLabelId *__output);
1282
1295 const struct AranyaTeamId *team,
1296 AranyaLabelName name,
1297 struct AranyaLabelId *__output,
1298 struct AranyaExtError *__ext_err);
1299
1312 const struct AranyaTeamId *team,
1313 const struct AranyaLabelId *label_id);
1314
1327 const struct AranyaTeamId *team,
1328 const struct AranyaLabelId *label_id,
1329 struct AranyaExtError *__ext_err);
1330
1344 const struct AranyaTeamId *team,
1345 const struct AranyaDeviceId *device,
1346 const struct AranyaLabelId *label_id,
1347 AranyaChanOp op);
1348
1362 const struct AranyaTeamId *team,
1363 const struct AranyaDeviceId *device,
1364 const struct AranyaLabelId *label_id,
1365 AranyaChanOp op,
1366 struct AranyaExtError *__ext_err);
1367
1381 const struct AranyaTeamId *team,
1382 const struct AranyaDeviceId *device,
1383 const struct AranyaLabelId *label_id);
1384
1398 const struct AranyaTeamId *team,
1399 const struct AranyaDeviceId *device,
1400 const struct AranyaLabelId *label_id,
1401 struct AranyaExtError *__ext_err);
1402
1413 const struct AranyaTeamConfig *cfg,
1414 struct AranyaTeamId *__output);
1415
1426 const struct AranyaTeamConfig *cfg,
1427 struct AranyaTeamId *__output,
1428 struct AranyaExtError *__ext_err);
1429
1442 const struct AranyaTeamId *team,
1443 const struct AranyaTeamConfig *cfg);
1444
1457 const struct AranyaTeamId *team,
1458 const struct AranyaTeamConfig *cfg,
1459 struct AranyaExtError *__ext_err);
1460
1470 const struct AranyaTeamId *team);
1471
1481 const struct AranyaTeamId *team,
1482 struct AranyaExtError *__ext_err);
1483
1493 const struct AranyaTeamId *team);
1494
1504 const struct AranyaTeamId *team,
1505 struct AranyaExtError *__ext_err);
1506
1520 const struct AranyaTeamId *team,
1521 const uint8_t *keybundle,
1522 size_t keybundle_len);
1523
1537 const struct AranyaTeamId *team,
1538 const uint8_t *keybundle,
1539 size_t keybundle_len,
1540 struct AranyaExtError *__ext_err);
1541
1554 const struct AranyaTeamId *team,
1555 const struct AranyaDeviceId *device);
1556
1569 const struct AranyaTeamId *team,
1570 const struct AranyaDeviceId *device,
1571 struct AranyaExtError *__ext_err);
1572
1588 const struct AranyaTeamId *team,
1589 AranyaAddr addr,
1590 const struct AranyaSyncPeerConfig *config);
1591
1607 const struct AranyaTeamId *team,
1608 AranyaAddr addr,
1609 const struct AranyaSyncPeerConfig *config,
1610 struct AranyaExtError *__ext_err);
1611
1622 const struct AranyaTeamId *team,
1623 AranyaAddr addr);
1624
1635 const struct AranyaTeamId *team,
1636 AranyaAddr addr,
1637 struct AranyaExtError *__ext_err);
1638
1658 const struct AranyaTeamId *team,
1659 AranyaAddr addr,
1660 const struct AranyaSyncPeerConfig *config);
1661
1681 const struct AranyaTeamId *team,
1682 AranyaAddr addr,
1683 const struct AranyaSyncPeerConfig *config,
1684 struct AranyaExtError *__ext_err);
1685
1697 const struct AranyaTeamId *team,
1698 struct AranyaDeviceId *devices,
1699 size_t *devices_len);
1700
1712 const struct AranyaTeamId *team,
1713 struct AranyaDeviceId *devices,
1714 size_t *devices_len,
1715 struct AranyaExtError *__ext_err);
1716
1729 const struct AranyaTeamId *team,
1730 const struct AranyaDeviceId *device,
1731 uint8_t *keybundle,
1732 size_t *keybundle_len);
1733
1746 const struct AranyaTeamId *team,
1747 const struct AranyaDeviceId *device,
1748 uint8_t *keybundle,
1749 size_t *keybundle_len,
1750 struct AranyaExtError *__ext_err);
1751
1770 const struct AranyaTeamId *team,
1771 const struct AranyaDeviceId *device,
1772 struct AranyaLabelId *labels,
1773 size_t *labels_len);
1774
1793 const struct AranyaTeamId *team,
1794 const struct AranyaDeviceId *device,
1795 struct AranyaLabelId *labels,
1796 size_t *labels_len,
1797 struct AranyaExtError *__ext_err);
1798
1816 const struct AranyaTeamId *team,
1817 struct AranyaLabelId *labels,
1818 size_t *labels_len);
1819
1837 const struct AranyaTeamId *team,
1838 struct AranyaLabelId *labels,
1839 size_t *labels_len,
1840 struct AranyaExtError *__ext_err);
1841
1854 const struct AranyaTeamId *team,
1855 const struct AranyaLabelId *label,
1856 bool *__output);
1857
1870 const struct AranyaTeamId *team,
1871 const struct AranyaLabelId *label,
1872 bool *__output,
1873 struct AranyaExtError *__ext_err);
1874
1886 const struct AranyaTeamId *team,
1887 const struct AranyaDeviceId *device,
1888 char *ident,
1889 size_t *ident_len,
1890 bool *__output);
1891
1903 const struct AranyaTeamId *team,
1904 const struct AranyaDeviceId *device,
1905 char *ident,
1906 size_t *ident_len,
1907 bool *__output,
1908 struct AranyaExtError *__ext_err);
1909
1927 const struct AranyaTeamId *team,
1928 const struct AranyaDeviceId *device,
1929 AranyaNetIdentifier net_identifier);
1930
1948 const struct AranyaTeamId *team,
1949 const struct AranyaDeviceId *device,
1950 AranyaNetIdentifier net_identifier,
1951 struct AranyaExtError *__ext_err);
1952
1966 const struct AranyaTeamId *team,
1967 const struct AranyaDeviceId *device,
1968 AranyaNetIdentifier net_identifier);
1969
1983 const struct AranyaTeamId *team,
1984 const struct AranyaDeviceId *device,
1985 AranyaNetIdentifier net_identifier,
1986 struct AranyaExtError *__ext_err);
1987
1996
2005 struct AranyaExtError *__ext_err);
2006
2015
2024 struct AranyaExtError *__ext_err);
2025
2034
2043 struct AranyaExtError *__ext_err);
2044
2053
2062 struct AranyaExtError *__ext_err);
2063
2072
2081 struct AranyaExtError *__ext_err);
2082
2091
2100 struct AranyaExtError *__ext_err);
2101
2110
2119 struct AranyaExtError *__ext_err);
2120
2135 const struct AranyaTeamId *team,
2137 const struct AranyaLabelId *label_id,
2138 struct AranyaAqcBidiChannel *channel);
2139
2154 const struct AranyaTeamId *team,
2156 const struct AranyaLabelId *label_id,
2157 struct AranyaAqcBidiChannel *channel,
2158 struct AranyaExtError *__ext_err);
2159
2174 const struct AranyaTeamId *team,
2176 const struct AranyaLabelId *label_id,
2177 struct AranyaAqcSendChannel *channel);
2178
2193 const struct AranyaTeamId *team,
2195 const struct AranyaLabelId *label_id,
2196 struct AranyaAqcSendChannel *channel,
2197 struct AranyaExtError *__ext_err);
2198
2210 struct AranyaAqcBidiChannel *channel);
2211
2223 struct AranyaAqcBidiChannel *channel,
2224 struct AranyaExtError *__ext_err);
2225
2237 struct AranyaAqcSendChannel *channel);
2238
2250 struct AranyaAqcSendChannel *channel,
2251 struct AranyaExtError *__ext_err);
2252
2284 struct AranyaAqcPeerChannel *channel,
2285 AranyaAqcChannelType *__output);
2286
2318 struct AranyaAqcPeerChannel *channel,
2319 AranyaAqcChannelType *__output,
2320 struct AranyaExtError *__ext_err);
2321
2335 struct AranyaAqcBidiChannel *bidi);
2336
2350 struct AranyaAqcBidiChannel *bidi,
2351 struct AranyaExtError *__ext_err);
2352
2366 struct AranyaAqcReceiveChannel *receiver);
2367
2381 struct AranyaAqcReceiveChannel *receiver,
2382 struct AranyaExtError *__ext_err);
2383
2397 struct AranyaAqcBidiChannel *channel,
2398 struct AranyaAqcBidiStream *stream);
2399
2413 struct AranyaAqcBidiChannel *channel,
2414 struct AranyaAqcBidiStream *stream,
2415 struct AranyaExtError *__ext_err);
2416
2428 struct AranyaAqcBidiStream *stream,
2429 const uint8_t *data,
2430 size_t data_len);
2431
2443 struct AranyaAqcBidiStream *stream,
2444 const uint8_t *data,
2445 size_t data_len,
2446 struct AranyaExtError *__ext_err);
2447
2462 uint8_t *buffer,
2463 size_t buffer_len,
2464 size_t *__output);
2465
2480 uint8_t *buffer,
2481 size_t buffer_len,
2482 size_t *__output,
2483 struct AranyaExtError *__ext_err);
2484
2498 struct AranyaAqcBidiChannel *channel,
2499 struct AranyaAqcSendStream *stream);
2500
2514 struct AranyaAqcBidiChannel *channel,
2515 struct AranyaAqcSendStream *stream,
2516 struct AranyaExtError *__ext_err);
2517
2537 struct AranyaAqcReceiveStream *recv_stream,
2538 struct AranyaAqcSendStream *send_stream,
2539 bool *send_init);
2540
2560 struct AranyaAqcReceiveStream *recv_stream,
2561 struct AranyaAqcSendStream *send_stream,
2562 bool *send_init,
2563 struct AranyaExtError *__ext_err);
2564
2578 struct AranyaAqcSendChannel *channel,
2579 struct AranyaAqcSendStream *stream);
2580
2594 struct AranyaAqcSendChannel *channel,
2595 struct AranyaAqcSendStream *stream,
2596 struct AranyaExtError *__ext_err);
2597
2613 struct AranyaAqcReceiveStream *stream);
2614
2630 struct AranyaAqcReceiveStream *stream,
2631 struct AranyaExtError *__ext_err);
2632
2644 struct AranyaAqcSendStream *stream,
2645 const uint8_t *data,
2646 size_t data_len);
2647
2659 struct AranyaAqcSendStream *stream,
2660 const uint8_t *data,
2661 size_t data_len,
2662 struct AranyaExtError *__ext_err);
2663
2678 uint8_t *buffer,
2679 size_t buffer_len,
2680 size_t *__output);
2681
2696 uint8_t *buffer,
2697 size_t buffer_len,
2698 size_t *__output,
2699 struct AranyaExtError *__ext_err);
2700
2701#ifdef __cplusplus
2702} // extern "C"
2703#endif // __cplusplus
2704
2705#endif /* ARANYA_CLIENT_H */
2706
2707
AranyaError aranya_decode_hex(uint8_t *dst, size_t dst_len, const uint8_t *src, size_t src_len, size_t *__output)
Decodes the hexadecimal string src into dst and returns the number of bytes written to dst.
AranyaError aranya_decode_hex_ext(uint8_t *dst, size_t dst_len, const uint8_t *src, size_t src_len, size_t *__output, struct AranyaExtError *__ext_err)
Decodes the hexadecimal string src into dst and returns the number of bytes written to dst.
AranyaError aranya_client_config_builder_set_aqc_config(struct AranyaClientConfigBuilder *cfg, const struct AranyaAqcConfig *aqc_config)
Sets the configuration for Aranya QUIC Channels.
AranyaError aranya_team_config_build_ext(struct AranyaTeamConfigBuilder *cfg, struct AranyaTeamConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct a `AranyaTeamConfig`.
AranyaError aranya_client_config_builder_set_daemon_uds_path_ext(struct AranyaClientConfigBuilder *cfg, const char *address, struct AranyaExtError *__ext_err)
Sets Unix Domain Socket path that the daemon is listening on.
AranyaError aranya_sync_peer_config_build(struct AranyaSyncPeerConfigBuilder *cfg, struct AranyaSyncPeerConfig *out)
Attempts to build a `AranyaSyncPeerConfig`.
#define ARANYA_ID_LEN
The size in bytes of an ID.
Definition aranya-client.h:91
uint64_t AranyaDuration
A type to represent a span of time in nanoseconds.
Definition aranya-client.h:373
AranyaError aranya_aqc_config_build_ext(struct AranyaAqcConfigBuilder *cfg, struct AranyaAqcConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct an `AranyaAqcConfig`.
AranyaError aranya_client_config_builder_set_daemon_api_pk(struct AranyaClientConfigBuilder *cfg, const uint8_t *pk, size_t pk_len)
Sets the daemon's public API key.
AranyaError aranya_client_config_builder_set_aqc_config_ext(struct AranyaClientConfigBuilder *cfg, const struct AranyaAqcConfig *aqc_config, struct AranyaExtError *__ext_err)
Sets the configuration for Aranya QUIC Channels.
AranyaError aranya_client_config_build(struct AranyaClientConfigBuilder *cfg, struct AranyaClientConfig *out)
Attempts to construct a `AranyaClientConfig`.
const char * AranyaAddr
A network socket address for an Aranya client.
Definition aranya-client.h:401
AranyaError aranya_init_logging(void)
Initializes logging.
AranyaAqcChannelType
An enum containing all `AranyaAqcPeerChannel` variants.
Definition aranya-client.h:105
AranyaError aranya_sync_peer_config_builder_set_sync_later_ext(struct AranyaSyncPeerConfigBuilder *cfg, struct AranyaExtError *__ext_err)
Updates the config to disable immediate syncing with the peer.
AranyaError aranya_sync_peer_config_builder_set_sync_now(struct AranyaSyncPeerConfigBuilder *cfg)
Updates the config to enable immediate syncing with the peer.
AranyaError aranya_sync_peer_config_builder_set_interval(struct AranyaSyncPeerConfigBuilder *cfg, AranyaDuration interval)
Configures how often the peer will be synced with.
AranyaError aranya_aqc_config_build(struct AranyaAqcConfigBuilder *cfg, struct AranyaAqcConfig *out)
Attempts to construct an `AranyaAqcConfig`.
AranyaError aranya_aqc_config_builder_set_address_ext(struct AranyaAqcConfigBuilder *cfg, const char *address, struct AranyaExtError *__ext_err)
Sets the network address that the AQC server should listen on.
AranyaError aranya_sync_peer_config_builder_set_sync_now_ext(struct AranyaSyncPeerConfigBuilder *cfg, struct AranyaExtError *__ext_err)
Updates the config to enable immediate syncing with the peer.
const char * AranyaLabelName
An AQC label name.
Definition aranya-client.h:387
AranyaError aranya_sync_peer_config_builder_set_interval_ext(struct AranyaSyncPeerConfigBuilder *cfg, AranyaDuration interval, struct AranyaExtError *__ext_err)
Configures how often the peer will be synced with.
const char * AranyaNetIdentifier
A network identifier for an Aranya client.
Definition aranya-client.h:408
AranyaError aranya_init_logging_ext(struct AranyaExtError *__ext_err)
Initializes logging.
AranyaError aranya_client_config_builder_set_daemon_api_pk_ext(struct AranyaClientConfigBuilder *cfg, const uint8_t *pk, size_t pk_len, struct AranyaExtError *__ext_err)
Sets the daemon's public API key.
AranyaError aranya_client_config_builder_set_daemon_uds_path(struct AranyaClientConfigBuilder *cfg, const char *address)
Sets Unix Domain Socket path that the daemon is listening on.
AranyaError aranya_sync_peer_config_build_ext(struct AranyaSyncPeerConfigBuilder *cfg, struct AranyaSyncPeerConfig *out, struct AranyaExtError *__ext_err)
Attempts to build a `AranyaSyncPeerConfig`.
AranyaError aranya_sync_peer_config_builder_set_sync_later(struct AranyaSyncPeerConfigBuilder *cfg)
Updates the config to disable immediate syncing with the peer.
AranyaError
An error code.
Definition aranya-client.h:150
@ ARANYA_ERROR_INVALID_ARGUMENT
Invalid argument.
Definition aranya-client.h:166
@ ARANYA_ERROR_CONFIG
Unable to create configuration info.
Definition aranya-client.h:202
@ ARANYA_ERROR_IPC
Could not send request to daemon.
Definition aranya-client.h:182
@ ARANYA_ERROR_INVALID_UTF8
Invalid UTF-8.
Definition aranya-client.h:174
@ ARANYA_ERROR_TIMEOUT
Timed out.
Definition aranya-client.h:162
@ ARANYA_ERROR_AQC
AQC library error.
Definition aranya-client.h:190
@ ARANYA_ERROR_BUFFER_TOO_SMALL
Buffer is too small.
Definition aranya-client.h:170
@ ARANYA_ERROR_BUG
Internal bug discovered.
Definition aranya-client.h:158
@ ARANYA_ERROR_INVALID_ADDR
Invalid Address.
Definition aranya-client.h:178
@ ARANYA_ERROR_SERIALIZATION
Serialization error.
Definition aranya-client.h:206
@ ARANYA_ERROR_SUCCESS
Success.
Definition aranya-client.h:154
@ ARANYA_ERROR_OTHER
Some other error occurred.
Definition aranya-client.h:210
@ ARANYA_ERROR_ARANYA
An Aranya error.
Definition aranya-client.h:186
@ ARANYA_ERROR_CLOSED
A connection got unexpectedly closed.
Definition aranya-client.h:198
@ ARANYA_ERROR_WOULD_BLOCK
Tried to poll an endpoint but nothing received yet.
Definition aranya-client.h:194
AranyaChanOp
Valid channel operations for a label assignment.
Definition aranya-client.h:120
@ ARANYA_CHAN_OP_SEND_ONLY
The device can only send data in channels with this label.
Definition aranya-client.h:130
@ ARANYA_CHAN_OP_SEND_RECV
The device can send and receive data in channels with this label.
Definition aranya-client.h:135
@ ARANYA_CHAN_OP_RECV_ONLY
The device can only receive data in channels with this label.
Definition aranya-client.h:125
AranyaError aranya_client_config_build_ext(struct AranyaClientConfigBuilder *cfg, struct AranyaClientConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct a `AranyaClientConfig`.
AranyaError aranya_team_config_build(struct AranyaTeamConfigBuilder *cfg, struct AranyaTeamConfig *out)
Attempts to construct a `AranyaTeamConfig`.
AranyaError aranya_aqc_config_builder_set_address(struct AranyaAqcConfigBuilder *cfg, const char *address)
Sets the network address that the AQC server should listen on.
AranyaRole
An enum containing team roles defined in the Aranya policy.
Definition aranya-client.h:223
@ ARANYA_ROLE_ADMIN
Admin role.
Definition aranya-client.h:231
@ ARANYA_ROLE_OWNER
Owner role.
Definition aranya-client.h:227
@ ARANYA_ROLE_MEMBER
Member role.
Definition aranya-client.h:239
@ ARANYA_ROLE_OPERATOR
Operator role.
Definition aranya-client.h:235
An AQC Bidirectional Channel Object.
Definition aranya-client.h:429
AranyaError aranya_aqc_bidi_channel_cleanup_ext(struct AranyaAqcBidiChannel *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
AranyaError aranya_aqc_bidi_channel_cleanup(struct AranyaAqcBidiChannel *ptr)
Releases any resources associated with ptr.
An AQC Bidirectional Stream Object.
Definition aranya-client.h:465
AranyaError aranya_aqc_bidi_stream_cleanup(struct AranyaAqcBidiStream *ptr)
Releases any resources associated with ptr.
AranyaError aranya_aqc_bidi_stream_cleanup_ext(struct AranyaAqcBidiStream *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
Configuration info builder for Aranya QUIC Channels.
Definition aranya-client.h:307
AranyaError aranya_aqc_config_builder_init(struct AranyaAqcConfigBuilder *out)
Initializes AranyaAqcConfigBuilder.
AranyaError aranya_aqc_config_builder_cleanup(struct AranyaAqcConfigBuilder *ptr)
Releases any resources associated with ptr.
AranyaError aranya_aqc_config_builder_init_ext(struct AranyaAqcConfigBuilder *out, struct AranyaExtError *__ext_err)
Initializes AranyaAqcConfigBuilder.
AranyaError aranya_aqc_config_builder_cleanup_ext(struct AranyaAqcConfigBuilder *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
Configuration info for Aranya QUIC Channels.
Definition aranya-client.h:319
A type containing the AQC channel variant.
Definition aranya-client.h:417
AranyaError aranya_aqc_peer_channel_cleanup_ext(struct AranyaAqcPeerChannel *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
AranyaError aranya_aqc_peer_channel_cleanup(struct AranyaAqcPeerChannel *ptr)
Releases any resources associated with ptr.
An AQC Receiver Channel Object.
Definition aranya-client.h:453
AranyaError aranya_aqc_receive_channel_cleanup(struct AranyaAqcReceiveChannel *ptr)
Releases any resources associated with ptr.
AranyaError aranya_aqc_receive_channel_cleanup_ext(struct AranyaAqcReceiveChannel *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
An AQC Receiver Stream Object.
Definition aranya-client.h:489
AranyaError aranya_aqc_receive_stream_cleanup(struct AranyaAqcReceiveStream *ptr)
Releases any resources associated with ptr.
AranyaError aranya_aqc_receive_stream_cleanup_ext(struct AranyaAqcReceiveStream *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
An AQC Sender Channel Object.
Definition aranya-client.h:441
AranyaError aranya_aqc_send_channel_cleanup_ext(struct AranyaAqcSendChannel *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
AranyaError aranya_aqc_send_channel_cleanup(struct AranyaAqcSendChannel *ptr)
Releases any resources associated with ptr.
An AQC Sender Stream Object.
Definition aranya-client.h:477
AranyaError aranya_aqc_send_stream_cleanup_ext(struct AranyaAqcSendStream *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
AranyaError aranya_aqc_send_stream_cleanup(struct AranyaAqcSendStream *ptr)
Releases any resources associated with ptr.
Configuration info builder for Aranya.
Definition aranya-client.h:295
AranyaError aranya_client_config_builder_cleanup(struct AranyaClientConfigBuilder *ptr)
Releases any resources associated with ptr.
AranyaError aranya_client_config_builder_init_ext(struct AranyaClientConfigBuilder *out, struct AranyaExtError *__ext_err)
Initializes AranyaClientConfigBuilder.
AranyaError aranya_client_config_builder_init(struct AranyaClientConfigBuilder *out)
Initializes AranyaClientConfigBuilder.
AranyaError aranya_client_config_builder_cleanup_ext(struct AranyaClientConfigBuilder *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
Configuration info for Aranya.
Definition aranya-client.h:272
A handle to an Aranya Client.
Definition aranya-client.h:260
AranyaError aranya_client_cleanup_ext(struct AranyaClient *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
AranyaError aranya_query_labels_ext(struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaLabelId *labels, size_t *labels_len, struct AranyaExtError *__ext_err)
Query for list of existing labels.
AranyaError aranya_create_team_ext(struct AranyaClient *client, const struct AranyaTeamConfig *cfg, struct AranyaTeamId *__output, struct AranyaExtError *__ext_err)
Create a new graph/team with the current device as the owner.
AranyaError aranya_query_device_keybundle_ext(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, uint8_t *keybundle, size_t *keybundle_len, struct AranyaExtError *__ext_err)
Query device's keybundle.
AranyaError aranya_revoke_role_ext(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, AranyaRole role, struct AranyaExtError *__ext_err)
Revoke a role from a device.
AranyaError aranya_create_label_ext(struct AranyaClient *client, const struct AranyaTeamId *team, AranyaLabelName name, struct AranyaLabelId *__output, struct AranyaExtError *__ext_err)
Create a channel label.
AranyaError aranya_aqc_get_receive_channel(struct AranyaAqcPeerChannel *channel, struct AranyaAqcReceiveChannel *receiver)
Converts the `AranyaAqcPeerChannel`into an [AranyaAqcReceiveChannel`](AranyaAqcReceiveChannel) for re...
AranyaError aranya_aqc_bidi_stream_send_ext(struct AranyaClient *client, struct AranyaAqcBidiStream *stream, const uint8_t *data, size_t data_len, struct AranyaExtError *__ext_err)
Send some data to a peer using an `AranyaAqcBidiStream`.
AranyaError aranya_add_team_ext(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaTeamConfig *cfg, struct AranyaExtError *__ext_err)
Add a team to the local device store.
AranyaError aranya_query_device_keybundle(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, uint8_t *keybundle, size_t *keybundle_len)
Query device's keybundle.
AranyaError aranya_close_team(struct AranyaClient *client, const struct AranyaTeamId *team)
Close the team and stop all operations on the graph.
AranyaError aranya_create_label(struct AranyaClient *client, const struct AranyaTeamId *team, AranyaLabelName name, struct AranyaLabelId *__output)
Create a channel label.
AranyaError aranya_aqc_create_bidi_channel(struct AranyaClient *client, const struct AranyaTeamId *team, AranyaNetIdentifier peer, const struct AranyaLabelId *label_id, struct AranyaAqcBidiChannel *channel)
Create a bidirectional AQC channel between this device and a peer.
AranyaError aranya_aqc_create_uni_channel(struct AranyaClient *client, const struct AranyaTeamId *team, AranyaNetIdentifier peer, const struct AranyaLabelId *label_id, struct AranyaAqcSendChannel *channel)
Create a unidirectional AQC channel between this device and a peer.
AranyaError aranya_aqc_recv_stream_try_recv_ext(struct AranyaAqcReceiveStream *stream, uint8_t *buffer, size_t buffer_len, size_t *__output, struct AranyaExtError *__ext_err)
Receive some data from an `AranyaAqcReceiveStream`.
AranyaError aranya_aqc_send_create_uni_stream(struct AranyaClient *client, struct AranyaAqcSendChannel *channel, struct AranyaAqcSendStream *stream)
Create a unidirectional stream from an `AranyaAqcSendChannel`.
AranyaError aranya_aqc_bidi_try_receive_stream(struct AranyaAqcBidiChannel *channel, struct AranyaAqcReceiveStream *recv_stream, struct AranyaAqcSendStream *send_stream, bool *send_init)
Tries to receive the receive (and potentially send) ends of a stream.
AranyaError aranya_query_label_exists(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label, bool *__output)
Query if a label exists.
AranyaError aranya_query_labels(struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaLabelId *labels, size_t *labels_len)
Query for list of existing labels.
AranyaError aranya_close_team_ext(struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaExtError *__ext_err)
Close the team and stop all operations on the graph.
AranyaError aranya_assign_role_ext(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, AranyaRole role, struct AranyaExtError *__ext_err)
Assign a role to a device.
AranyaError aranya_aqc_try_receive_channel(struct AranyaClient *client, struct AranyaAqcPeerChannel *channel, AranyaAqcChannelType *__output)
Tries to poll AQC to see if any channels have been received.
AranyaError aranya_revoke_label(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaLabelId *label_id)
Revoke a label from a device.
AranyaError aranya_delete_label_ext(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label_id, struct AranyaExtError *__ext_err)
Delete a channel label.
AranyaError aranya_revoke_label_ext(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaLabelId *label_id, struct AranyaExtError *__ext_err)
Revoke a label from a device.
AranyaError aranya_aqc_delete_uni_channel(struct AranyaClient *client, struct AranyaAqcSendChannel *channel)
Delete a unidirectional AQC channel.
AranyaError aranya_remove_team(struct AranyaClient *client, const struct AranyaTeamId *team)
Remove a team from the local device store.
AranyaError aranya_aqc_recv_stream_try_recv(struct AranyaAqcReceiveStream *stream, uint8_t *buffer, size_t buffer_len, size_t *__output)
Receive some data from an `AranyaAqcReceiveStream`.
AranyaError aranya_client_cleanup(struct AranyaClient *ptr)
Releases any resources associated with ptr.
AranyaError aranya_add_sync_peer_ext(struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr, const struct AranyaSyncPeerConfig *config, struct AranyaExtError *__ext_err)
Add the peer for automatic periodic Aranya state syncing.
AranyaError aranya_add_sync_peer(struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr, const struct AranyaSyncPeerConfig *config)
Add the peer for automatic periodic Aranya state syncing.
AranyaError aranya_query_device_label_assignments_ext(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, struct AranyaLabelId *labels, size_t *labels_len, struct AranyaExtError *__ext_err)
Query device label assignments.
AranyaError aranya_aqc_bidi_create_uni_stream_ext(struct AranyaClient *client, struct AranyaAqcBidiChannel *channel, struct AranyaAqcSendStream *stream, struct AranyaExtError *__ext_err)
Create a unidirectional stream from an `AranyaAqcBidiChannel`.
AranyaError aranya_aqc_delete_bidi_channel(struct AranyaClient *client, struct AranyaAqcBidiChannel *channel)
Delete a bidirectional AQC channel.
AranyaError aranya_get_key_bundle(struct AranyaClient *client, uint8_t *keybundle, size_t *keybundle_len)
Gets the public key bundle for this device.
AranyaError aranya_remove_team_ext(struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaExtError *__ext_err)
Remove a team from the local device store.
AranyaError aranya_aqc_bidi_create_bidi_stream(struct AranyaClient *client, struct AranyaAqcBidiChannel *channel, struct AranyaAqcBidiStream *stream)
Create a bidirectional stream from a `AranyaAqcBidiChannel`.
AranyaError aranya_aqc_bidi_stream_try_recv_ext(struct AranyaAqcBidiStream *stream, uint8_t *buffer, size_t buffer_len, size_t *__output, struct AranyaExtError *__ext_err)
Receive some data from an `AranyaAqcBidiStream`.
AranyaError aranya_aqc_try_receive_channel_ext(struct AranyaClient *client, struct AranyaAqcPeerChannel *channel, AranyaAqcChannelType *__output, struct AranyaExtError *__ext_err)
Tries to poll AQC to see if any channels have been received.
AranyaError aranya_aqc_send_stream_send_ext(struct AranyaClient *client, struct AranyaAqcSendStream *stream, const uint8_t *data, size_t data_len, struct AranyaExtError *__ext_err)
Send some data over an `AranyaAqcSendStream`m.
AranyaError aranya_aqc_delete_uni_channel_ext(struct AranyaClient *client, struct AranyaAqcSendChannel *channel, struct AranyaExtError *__ext_err)
Delete a unidirectional AQC channel.
AranyaError aranya_sync_now_ext(struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr, const struct AranyaSyncPeerConfig *config, struct AranyaExtError *__ext_err)
Sync with peer immediately.
AranyaError aranya_aqc_send_create_uni_stream_ext(struct AranyaClient *client, struct AranyaAqcSendChannel *channel, struct AranyaAqcSendStream *stream, struct AranyaExtError *__ext_err)
Create a unidirectional stream from an `AranyaAqcSendChannel`.
AranyaError aranya_client_init(struct AranyaClient *client, const struct AranyaClientConfig *config)
Initializes a new client instance.
AranyaError aranya_aqc_remove_net_identifier(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, AranyaNetIdentifier net_identifier)
Disassociate an AQC network identifier from a device.
AranyaError aranya_aqc_get_bidi_channel(struct AranyaAqcPeerChannel *channel, struct AranyaAqcBidiChannel *bidi)
Converts the `AranyaAqcPeerChannel`into an [AranyaAqcBidiChannel`](AranyaAqcBidiChannel) for sending/...
AranyaError aranya_aqc_remove_net_identifier_ext(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, AranyaNetIdentifier net_identifier, struct AranyaExtError *__ext_err)
Disassociate an AQC network identifier from a device.
AranyaError aranya_revoke_role(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, AranyaRole role)
Revoke a role from a device.
AranyaError aranya_assign_role(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, AranyaRole role)
Assign a role to a device.
AranyaError aranya_aqc_create_bidi_channel_ext(struct AranyaClient *client, const struct AranyaTeamId *team, AranyaNetIdentifier peer, const struct AranyaLabelId *label_id, struct AranyaAqcBidiChannel *channel, struct AranyaExtError *__ext_err)
Create a bidirectional AQC channel between this device and a peer.
AranyaError aranya_query_devices_on_team(struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaDeviceId *devices, size_t *devices_len)
Query devices on team.
AranyaError aranya_query_devices_on_team_ext(struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaDeviceId *devices, size_t *devices_len, struct AranyaExtError *__ext_err)
Query devices on team.
AranyaError aranya_aqc_create_uni_channel_ext(struct AranyaClient *client, const struct AranyaTeamId *team, AranyaNetIdentifier peer, const struct AranyaLabelId *label_id, struct AranyaAqcSendChannel *channel, struct AranyaExtError *__ext_err)
Create a unidirectional AQC channel between this device and a peer.
AranyaError aranya_get_key_bundle_ext(struct AranyaClient *client, uint8_t *keybundle, size_t *keybundle_len, struct AranyaExtError *__ext_err)
Gets the public key bundle for this device.
AranyaError aranya_query_device_label_assignments(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, struct AranyaLabelId *labels, size_t *labels_len)
Query device label assignments.
AranyaError aranya_query_label_exists_ext(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label, bool *__output, struct AranyaExtError *__ext_err)
Query if a label exists.
AranyaError aranya_aqc_assign_net_identifier_ext(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, AranyaNetIdentifier net_identifier, struct AranyaExtError *__ext_err)
Associate a network identifier to a device for use with AQC.
AranyaError aranya_aqc_bidi_stream_send(struct AranyaClient *client, struct AranyaAqcBidiStream *stream, const uint8_t *data, size_t data_len)
Send some data to a peer using an `AranyaAqcBidiStream`.
AranyaError aranya_remove_device_from_team(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device)
Remove a device from the team.
AranyaError aranya_aqc_get_receive_channel_ext(struct AranyaAqcPeerChannel *channel, struct AranyaAqcReceiveChannel *receiver, struct AranyaExtError *__ext_err)
Converts the `AranyaAqcPeerChannel`into an [AranyaAqcReceiveChannel`](AranyaAqcReceiveChannel) for re...
AranyaError aranya_remove_device_from_team_ext(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, struct AranyaExtError *__ext_err)
Remove a device from the team.
AranyaError aranya_remove_sync_peer(struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr)
Remove the peer from automatic Aranya state syncing.
AranyaError aranya_aqc_bidi_create_bidi_stream_ext(struct AranyaClient *client, struct AranyaAqcBidiChannel *channel, struct AranyaAqcBidiStream *stream, struct AranyaExtError *__ext_err)
Create a bidirectional stream from a `AranyaAqcBidiChannel`.
AranyaError aranya_aqc_send_stream_send(struct AranyaClient *client, struct AranyaAqcSendStream *stream, const uint8_t *data, size_t data_len)
Send some data over an `AranyaAqcSendStream`m.
AranyaError aranya_create_team(struct AranyaClient *client, const struct AranyaTeamConfig *cfg, struct AranyaTeamId *__output)
Create a new graph/team with the current device as the owner.
AranyaError aranya_delete_label(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label_id)
Delete a channel label.
AranyaError aranya_add_team(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaTeamConfig *cfg)
Add a team to the local device store.
AranyaError aranya_get_device_id_ext(struct AranyaClient *client, struct AranyaDeviceId *__output, struct AranyaExtError *__ext_err)
Gets the public device ID.
AranyaError aranya_add_device_to_team(struct AranyaClient *client, const struct AranyaTeamId *team, const uint8_t *keybundle, size_t keybundle_len)
Add a device to the team with the default role.
AranyaError aranya_client_init_ext(struct AranyaClient *client, const struct AranyaClientConfig *config, struct AranyaExtError *__ext_err)
Initializes a new client instance.
AranyaError aranya_assign_label(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaLabelId *label_id, AranyaChanOp op)
Assign a label to a device so that it can be used for a channel.
AranyaError aranya_assign_label_ext(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaLabelId *label_id, AranyaChanOp op, struct AranyaExtError *__ext_err)
Assign a label to a device so that it can be used for a channel.
AranyaError aranya_get_device_id(struct AranyaClient *client, struct AranyaDeviceId *__output)
Gets the public device ID.
AranyaError aranya_aqc_recv_try_receive_uni_stream_ext(struct AranyaAqcReceiveChannel *channel, struct AranyaAqcReceiveStream *stream, struct AranyaExtError *__ext_err)
Receives the stream from an `AranyaAqcReceiveChannel`.
AranyaError aranya_remove_sync_peer_ext(struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr, struct AranyaExtError *__ext_err)
Remove the peer from automatic Aranya state syncing.
AranyaError aranya_aqc_bidi_stream_try_recv(struct AranyaAqcBidiStream *stream, uint8_t *buffer, size_t buffer_len, size_t *__output)
Receive some data from an `AranyaAqcBidiStream`.
AranyaError aranya_query_aqc_net_identifier(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, char *ident, size_t *ident_len, bool *__output)
Query device's AQC network identifier.
AranyaError aranya_add_device_to_team_ext(struct AranyaClient *client, const struct AranyaTeamId *team, const uint8_t *keybundle, size_t keybundle_len, struct AranyaExtError *__ext_err)
Add a device to the team with the default role.
AranyaError aranya_aqc_assign_net_identifier(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, AranyaNetIdentifier net_identifier)
Associate a network identifier to a device for use with AQC.
AranyaError aranya_aqc_recv_try_receive_uni_stream(struct AranyaAqcReceiveChannel *channel, struct AranyaAqcReceiveStream *stream)
Receives the stream from an `AranyaAqcReceiveChannel`.
AranyaError aranya_aqc_bidi_try_receive_stream_ext(struct AranyaAqcBidiChannel *channel, struct AranyaAqcReceiveStream *recv_stream, struct AranyaAqcSendStream *send_stream, bool *send_init, struct AranyaExtError *__ext_err)
Tries to receive the receive (and potentially send) ends of a stream.
AranyaError aranya_aqc_get_bidi_channel_ext(struct AranyaAqcPeerChannel *channel, struct AranyaAqcBidiChannel *bidi, struct AranyaExtError *__ext_err)
Converts the `AranyaAqcPeerChannel`into an [AranyaAqcBidiChannel`](AranyaAqcBidiChannel) for sending/...
AranyaError aranya_aqc_delete_bidi_channel_ext(struct AranyaClient *client, struct AranyaAqcBidiChannel *channel, struct AranyaExtError *__ext_err)
Delete a bidirectional AQC channel.
AranyaError aranya_sync_now(struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr, const struct AranyaSyncPeerConfig *config)
Sync with peer immediately.
AranyaError aranya_aqc_bidi_create_uni_stream(struct AranyaClient *client, struct AranyaAqcBidiChannel *channel, struct AranyaAqcSendStream *stream)
Create a unidirectional stream from an `AranyaAqcBidiChannel`.
AranyaError aranya_query_aqc_net_identifier_ext(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, char *ident, size_t *ident_len, bool *__output, struct AranyaExtError *__ext_err)
Query device's AQC network identifier.
Device ID.
Definition aranya-client.h:288
Extended error information.
Definition aranya-client.h:248
AranyaError aranya_ext_error_msg_ext(const struct AranyaExtError *err, char *msg, size_t *msg_len, struct AranyaExtError *__ext_err)
Copies the extended error's message into msg.
AranyaError aranya_ext_error_init(struct AranyaExtError *out)
Initializes AranyaExtError.
AranyaError aranya_ext_error_msg(const struct AranyaExtError *err, char *msg, size_t *msg_len)
Copies the extended error's message into msg.
AranyaError aranya_ext_error_init_ext(struct AranyaExtError *out, struct AranyaExtError *__ext_err)
Initializes AranyaExtError.
AranyaError aranya_ext_error_cleanup(struct AranyaExtError *ptr)
Releases any resources associated with ptr.
AranyaError aranya_ext_error_cleanup_ext(struct AranyaExtError *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
Definition aranya-client.h:281
AranyaError aranya_id_from_str(const char *str, struct AranyaId *__output)
Decodes str into an `AranyaId`.
AranyaError aranya_id_to_str(const struct AranyaId *id, char *str, size_t *str_len)
Writes the human-readable encoding of id to str.
Label ID.
Definition aranya-client.h:392
Builder for a Sync Peer config.
Definition aranya-client.h:349
AranyaError aranya_sync_peer_config_builder_cleanup(struct AranyaSyncPeerConfigBuilder *ptr)
Releases any resources associated with ptr.
AranyaError aranya_sync_peer_config_builder_init_ext(struct AranyaSyncPeerConfigBuilder *out, struct AranyaExtError *__ext_err)
Initializes AranyaSyncPeerConfigBuilder.
AranyaError aranya_sync_peer_config_builder_init(struct AranyaSyncPeerConfigBuilder *out)
Initializes AranyaSyncPeerConfigBuilder.
AranyaError aranya_sync_peer_config_builder_cleanup_ext(struct AranyaSyncPeerConfigBuilder *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
Sync Peer config.
Definition aranya-client.h:361
Definition aranya-client.h:328
AranyaError aranya_team_config_builder_cleanup_ext(struct AranyaTeamConfigBuilder *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
AranyaError aranya_team_config_builder_init_ext(struct AranyaTeamConfigBuilder *out, struct AranyaExtError *__ext_err)
Initializes AranyaTeamConfigBuilder.
AranyaError aranya_team_config_builder_init(struct AranyaTeamConfigBuilder *out)
Initializes AranyaTeamConfigBuilder.
AranyaError aranya_team_config_builder_cleanup(struct AranyaTeamConfigBuilder *ptr)
Releases any resources associated with ptr.
Definition aranya-client.h:337
Team ID.
Definition aranya-client.h:378