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_SEED_IKM_LEN 32
97
101#define ARANYA_ID_STR_LEN (((ARANYA_ID_LEN * 1375) / 1000) + 1)
102
107#ifdef __cplusplus
108 : uint8_t
109#endif // __cplusplus
110 {
111 ARANYA_AQC_CHANNEL_TYPE_BIDIRECTIONAL,
112 ARANYA_AQC_CHANNEL_TYPE_RECEIVER,
113};
114#ifndef __cplusplus
115typedef uint8_t AranyaAqcChannelType;
116#endif // __cplusplus
117
122#ifdef __cplusplus
123 : uint8_t
124#endif // __cplusplus
125 {
141};
142#ifndef __cplusplus
143typedef uint8_t AranyaChanOp;
144#endif // __cplusplus
145
217#ifndef __cplusplus
218typedef uint32_t AranyaError;
219#endif // __cplusplus
220
225#ifdef __cplusplus
226 : uint8_t
227#endif // __cplusplus
228 {
245};
246#ifndef __cplusplus
247typedef uint8_t AranyaRole;
248#endif // __cplusplus
249
253typedef struct ARANYA_ALIGNED(8) AranyaExtError {
259 uint8_t __for_size_only[88];
261
265typedef struct ARANYA_ALIGNED(16) AranyaClient {
271 uint8_t __for_size_only[3728];
273
277typedef struct ARANYA_ALIGNED(8) AranyaClientConfig {
283 uint8_t __for_size_only[56];
285
286typedef struct AranyaId {
287 uint8_t bytes[ARANYA_ID_LEN];
288} AranyaId;
289
293typedef struct AranyaDeviceId {
294 struct AranyaId id;
296
300typedef struct ARANYA_ALIGNED(8) AranyaClientConfigBuilder {
306 uint8_t __for_size_only[72];
308
312typedef struct ARANYA_ALIGNED(8) AranyaAqcConfigBuilder {
318 uint8_t __for_size_only[24];
320
324typedef struct ARANYA_ALIGNED(8) AranyaAqcConfig {
330 uint8_t __for_size_only[40];
332
333typedef struct ARANYA_ALIGNED(8) AranyaQuicSyncConfigBuilder {
339 uint8_t __for_size_only[288];
341
345typedef struct AranyaSeedIkm {
346 uint8_t bytes[ARANYA_SEED_IKM_LEN];
348
349typedef struct ARANYA_ALIGNED(8) AranyaQuicSyncConfig {
355 uint8_t __for_size_only[288];
357
358typedef struct ARANYA_ALIGNED(8) AranyaTeamConfigBuilder {
364 uint8_t __for_size_only[288];
366
367typedef struct ARANYA_ALIGNED(8) AranyaTeamConfig {
373 uint8_t __for_size_only[288];
375
379typedef struct ARANYA_ALIGNED(8) AranyaSyncPeerConfigBuilder {
385 uint8_t __for_size_only[40];
387
391typedef struct ARANYA_ALIGNED(8) AranyaSyncPeerConfig {
397 uint8_t __for_size_only[32];
399
403typedef uint64_t AranyaDuration;
404
408typedef struct AranyaTeamId {
409 struct AranyaId id;
411
417typedef const char *AranyaLabelName;
418
422typedef struct AranyaLabelId {
423 struct AranyaId id;
425
431typedef const char *AranyaAddr;
432
438typedef const char *AranyaNetIdentifier;
439
447typedef struct ARANYA_ALIGNED(8) AranyaAqcPeerChannel {
453 uint8_t __for_size_only[120];
455
459typedef struct ARANYA_ALIGNED(8) AranyaAqcBidiChannel {
465 uint8_t __for_size_only[112];
467
471typedef struct ARANYA_ALIGNED(8) AranyaAqcSendChannel {
477 uint8_t __for_size_only[112];
479
483typedef struct ARANYA_ALIGNED(8) AranyaAqcReceiveChannel {
489 uint8_t __for_size_only[112];
491
495typedef struct ARANYA_ALIGNED(8) AranyaAqcBidiStream {
501 uint8_t __for_size_only[184];
503
507typedef struct ARANYA_ALIGNED(8) AranyaAqcSendStream {
513 uint8_t __for_size_only[152];
515
519typedef struct ARANYA_ALIGNED(8) AranyaAqcReceiveStream {
525 uint8_t __for_size_only[184];
527
528#ifdef __cplusplus
529extern "C" {
530#endif // __cplusplus
531
541const char *aranya_error_to_str(uint32_t err);
542
552
562 struct AranyaExtError *__ext_err);
563
572
581 struct AranyaExtError *__ext_err);
582
603 char *msg,
604 size_t *msg_len);
605
626 char *msg,
627 size_t *msg_len,
628 struct AranyaExtError *__ext_err);
629
639 const struct AranyaClientConfig *config);
640
650 const struct AranyaClientConfig *config,
651 struct AranyaExtError *__ext_err);
652
661
670 struct AranyaExtError *__ext_err);
671
679
687
700 size_t dst_len,
701 const uint8_t *src,
702 size_t src_len,
703 size_t *__output);
704
717 size_t dst_len,
718 const uint8_t *src,
719 size_t src_len,
720 size_t *__output,
721 struct AranyaExtError *__ext_err);
722
733 uint8_t *keybundle,
734 size_t *keybundle_len);
735
746 uint8_t *keybundle,
747 size_t *keybundle_len,
748 struct AranyaExtError *__ext_err);
749
762 char *str,
763 size_t *str_len);
764
773AranyaError aranya_id_from_str(const char *str, struct AranyaId *__output);
774
784 struct AranyaDeviceId *__output);
785
795 struct AranyaDeviceId *__output,
796 struct AranyaExtError *__ext_err);
797
807
817 struct AranyaExtError *__ext_err);
818
827
836 struct AranyaExtError *__ext_err);
837
848 struct AranyaClientConfig *out);
849
860 struct AranyaClientConfig *out,
861 struct AranyaExtError *__ext_err);
862
870 const char *address);
871
879 const char *address,
880 struct AranyaExtError *__ext_err);
881
891
901 struct AranyaExtError *__ext_err);
902
911
920 struct AranyaExtError *__ext_err);
921
932 struct AranyaAqcConfig *out);
933
944 struct AranyaAqcConfig *out,
945 struct AranyaExtError *__ext_err);
946
955 const char *address);
956
965 const char *address,
966 struct AranyaExtError *__ext_err);
967
975 const struct AranyaAqcConfig *aqc_config);
976
984 const struct AranyaAqcConfig *aqc_config,
985 struct AranyaExtError *__ext_err);
986
996
1006 struct AranyaExtError *__ext_err);
1007
1016
1025 struct AranyaExtError *__ext_err);
1026
1033
1040 struct AranyaExtError *__ext_err);
1041
1049 const uint8_t *encap_seed,
1050 size_t encap_seed_len);
1051
1059 const uint8_t *encap_seed,
1060 size_t encap_seed_len,
1061 struct AranyaExtError *__ext_err);
1062
1070 const struct AranyaSeedIkm *ikm);
1071
1079 const struct AranyaSeedIkm *ikm,
1080 struct AranyaExtError *__ext_err);
1081
1092 struct AranyaQuicSyncConfig *out);
1093
1104 struct AranyaQuicSyncConfig *out,
1105 struct AranyaExtError *__ext_err);
1106
1116
1126 struct AranyaExtError *__ext_err);
1127
1136
1145 struct AranyaExtError *__ext_err);
1146
1158 struct AranyaQuicSyncConfig *quic);
1159
1171 struct AranyaQuicSyncConfig *quic,
1172 struct AranyaExtError *__ext_err);
1173
1184 struct AranyaTeamConfig *out);
1185
1196 struct AranyaTeamConfig *out,
1197 struct AranyaExtError *__ext_err);
1198
1208
1218 struct AranyaExtError *__ext_err);
1219
1228
1237 struct AranyaExtError *__ext_err);
1238
1248 struct AranyaSyncPeerConfig *out);
1249
1259 struct AranyaSyncPeerConfig *out,
1260 struct AranyaExtError *__ext_err);
1261
1273 AranyaDuration interval);
1274
1286 AranyaDuration interval,
1287 struct AranyaExtError *__ext_err);
1288
1299
1310 struct AranyaExtError *__ext_err);
1311
1321
1331 struct AranyaExtError *__ext_err);
1332
1348 const struct AranyaTeamId *team,
1349 const struct AranyaDeviceId *device,
1350 AranyaRole role);
1351
1367 const struct AranyaTeamId *team,
1368 const struct AranyaDeviceId *device,
1369 AranyaRole role,
1370 struct AranyaExtError *__ext_err);
1371
1385 const struct AranyaTeamId *team,
1386 const struct AranyaDeviceId *device,
1387 AranyaRole role);
1388
1402 const struct AranyaTeamId *team,
1403 const struct AranyaDeviceId *device,
1404 AranyaRole role,
1405 struct AranyaExtError *__ext_err);
1406
1419 const struct AranyaTeamId *team,
1420 AranyaLabelName name,
1421 struct AranyaLabelId *__output);
1422
1435 const struct AranyaTeamId *team,
1436 AranyaLabelName name,
1437 struct AranyaLabelId *__output,
1438 struct AranyaExtError *__ext_err);
1439
1452 const struct AranyaTeamId *team,
1453 const struct AranyaLabelId *label_id);
1454
1467 const struct AranyaTeamId *team,
1468 const struct AranyaLabelId *label_id,
1469 struct AranyaExtError *__ext_err);
1470
1484 const struct AranyaTeamId *team,
1485 const struct AranyaDeviceId *device,
1486 const struct AranyaLabelId *label_id,
1487 AranyaChanOp op);
1488
1502 const struct AranyaTeamId *team,
1503 const struct AranyaDeviceId *device,
1504 const struct AranyaLabelId *label_id,
1505 AranyaChanOp op,
1506 struct AranyaExtError *__ext_err);
1507
1521 const struct AranyaTeamId *team,
1522 const struct AranyaDeviceId *device,
1523 const struct AranyaLabelId *label_id);
1524
1538 const struct AranyaTeamId *team,
1539 const struct AranyaDeviceId *device,
1540 const struct AranyaLabelId *label_id,
1541 struct AranyaExtError *__ext_err);
1542
1553 const struct AranyaTeamConfig *cfg,
1554 struct AranyaTeamId *__output);
1555
1566 const struct AranyaTeamConfig *cfg,
1567 struct AranyaTeamId *__output,
1568 struct AranyaExtError *__ext_err);
1569
1579 uint8_t *buf,
1580 size_t buf_len);
1581
1591 uint8_t *buf,
1592 size_t buf_len,
1593 struct AranyaExtError *__ext_err);
1594
1612 const struct AranyaTeamId *team_id,
1613 const uint8_t *keybundle,
1614 size_t keybundle_len,
1615 uint8_t *seed,
1616 size_t *seed_len);
1617
1635 const struct AranyaTeamId *team_id,
1636 const uint8_t *keybundle,
1637 size_t keybundle_len,
1638 uint8_t *seed,
1639 size_t *seed_len,
1640 struct AranyaExtError *__ext_err);
1641
1652 const struct AranyaTeamId *team,
1653 const struct AranyaTeamConfig *cfg);
1654
1665 const struct AranyaTeamId *team,
1666 const struct AranyaTeamConfig *cfg,
1667 struct AranyaExtError *__ext_err);
1668
1678 const struct AranyaTeamId *team);
1679
1689 const struct AranyaTeamId *team,
1690 struct AranyaExtError *__ext_err);
1691
1701 const struct AranyaTeamId *team);
1702
1712 const struct AranyaTeamId *team,
1713 struct AranyaExtError *__ext_err);
1714
1728 const struct AranyaTeamId *team,
1729 const uint8_t *keybundle,
1730 size_t keybundle_len);
1731
1745 const struct AranyaTeamId *team,
1746 const uint8_t *keybundle,
1747 size_t keybundle_len,
1748 struct AranyaExtError *__ext_err);
1749
1762 const struct AranyaTeamId *team,
1763 const struct AranyaDeviceId *device);
1764
1777 const struct AranyaTeamId *team,
1778 const struct AranyaDeviceId *device,
1779 struct AranyaExtError *__ext_err);
1780
1796 const struct AranyaTeamId *team,
1797 AranyaAddr addr,
1798 const struct AranyaSyncPeerConfig *config);
1799
1815 const struct AranyaTeamId *team,
1816 AranyaAddr addr,
1817 const struct AranyaSyncPeerConfig *config,
1818 struct AranyaExtError *__ext_err);
1819
1830 const struct AranyaTeamId *team,
1831 AranyaAddr addr);
1832
1843 const struct AranyaTeamId *team,
1844 AranyaAddr addr,
1845 struct AranyaExtError *__ext_err);
1846
1866 const struct AranyaTeamId *team,
1867 AranyaAddr addr,
1868 const struct AranyaSyncPeerConfig *config);
1869
1889 const struct AranyaTeamId *team,
1890 AranyaAddr addr,
1891 const struct AranyaSyncPeerConfig *config,
1892 struct AranyaExtError *__ext_err);
1893
1905 const struct AranyaTeamId *team,
1906 struct AranyaDeviceId *devices,
1907 size_t *devices_len);
1908
1920 const struct AranyaTeamId *team,
1921 struct AranyaDeviceId *devices,
1922 size_t *devices_len,
1923 struct AranyaExtError *__ext_err);
1924
1937 const struct AranyaTeamId *team,
1938 const struct AranyaDeviceId *device,
1939 uint8_t *keybundle,
1940 size_t *keybundle_len);
1941
1954 const struct AranyaTeamId *team,
1955 const struct AranyaDeviceId *device,
1956 uint8_t *keybundle,
1957 size_t *keybundle_len,
1958 struct AranyaExtError *__ext_err);
1959
1978 const struct AranyaTeamId *team,
1979 const struct AranyaDeviceId *device,
1980 struct AranyaLabelId *labels,
1981 size_t *labels_len);
1982
2001 const struct AranyaTeamId *team,
2002 const struct AranyaDeviceId *device,
2003 struct AranyaLabelId *labels,
2004 size_t *labels_len,
2005 struct AranyaExtError *__ext_err);
2006
2024 const struct AranyaTeamId *team,
2025 struct AranyaLabelId *labels,
2026 size_t *labels_len);
2027
2045 const struct AranyaTeamId *team,
2046 struct AranyaLabelId *labels,
2047 size_t *labels_len,
2048 struct AranyaExtError *__ext_err);
2049
2062 const struct AranyaTeamId *team,
2063 const struct AranyaLabelId *label,
2064 bool *__output);
2065
2078 const struct AranyaTeamId *team,
2079 const struct AranyaLabelId *label,
2080 bool *__output,
2081 struct AranyaExtError *__ext_err);
2082
2094 const struct AranyaTeamId *team,
2095 const struct AranyaDeviceId *device,
2096 char *ident,
2097 size_t *ident_len,
2098 bool *__output);
2099
2111 const struct AranyaTeamId *team,
2112 const struct AranyaDeviceId *device,
2113 char *ident,
2114 size_t *ident_len,
2115 bool *__output,
2116 struct AranyaExtError *__ext_err);
2117
2135 const struct AranyaTeamId *team,
2136 const struct AranyaDeviceId *device,
2137 AranyaNetIdentifier net_identifier);
2138
2156 const struct AranyaTeamId *team,
2157 const struct AranyaDeviceId *device,
2158 AranyaNetIdentifier net_identifier,
2159 struct AranyaExtError *__ext_err);
2160
2174 const struct AranyaTeamId *team,
2175 const struct AranyaDeviceId *device,
2176 AranyaNetIdentifier net_identifier);
2177
2191 const struct AranyaTeamId *team,
2192 const struct AranyaDeviceId *device,
2193 AranyaNetIdentifier net_identifier,
2194 struct AranyaExtError *__ext_err);
2195
2204
2213 struct AranyaExtError *__ext_err);
2214
2223
2232 struct AranyaExtError *__ext_err);
2233
2242
2251 struct AranyaExtError *__ext_err);
2252
2261
2270 struct AranyaExtError *__ext_err);
2271
2280
2289 struct AranyaExtError *__ext_err);
2290
2299
2308 struct AranyaExtError *__ext_err);
2309
2318
2327 struct AranyaExtError *__ext_err);
2328
2343 const struct AranyaTeamId *team,
2345 const struct AranyaLabelId *label_id,
2346 struct AranyaAqcBidiChannel *channel);
2347
2362 const struct AranyaTeamId *team,
2364 const struct AranyaLabelId *label_id,
2365 struct AranyaAqcBidiChannel *channel,
2366 struct AranyaExtError *__ext_err);
2367
2382 const struct AranyaTeamId *team,
2384 const struct AranyaLabelId *label_id,
2385 struct AranyaAqcSendChannel *channel);
2386
2401 const struct AranyaTeamId *team,
2403 const struct AranyaLabelId *label_id,
2404 struct AranyaAqcSendChannel *channel,
2405 struct AranyaExtError *__ext_err);
2406
2418 struct AranyaAqcBidiChannel *channel);
2419
2431 struct AranyaAqcBidiChannel *channel,
2432 struct AranyaExtError *__ext_err);
2433
2445 struct AranyaAqcSendChannel *channel);
2446
2458 struct AranyaAqcSendChannel *channel,
2459 struct AranyaExtError *__ext_err);
2460
2492 struct AranyaAqcPeerChannel *channel,
2493 AranyaAqcChannelType *__output);
2494
2526 struct AranyaAqcPeerChannel *channel,
2527 AranyaAqcChannelType *__output,
2528 struct AranyaExtError *__ext_err);
2529
2543 struct AranyaAqcBidiChannel *bidi);
2544
2558 struct AranyaAqcBidiChannel *bidi,
2559 struct AranyaExtError *__ext_err);
2560
2574 struct AranyaAqcReceiveChannel *receiver);
2575
2589 struct AranyaAqcReceiveChannel *receiver,
2590 struct AranyaExtError *__ext_err);
2591
2605 struct AranyaAqcBidiChannel *channel,
2606 struct AranyaAqcBidiStream *stream);
2607
2621 struct AranyaAqcBidiChannel *channel,
2622 struct AranyaAqcBidiStream *stream,
2623 struct AranyaExtError *__ext_err);
2624
2636 struct AranyaAqcBidiStream *stream,
2637 const uint8_t *data,
2638 size_t data_len);
2639
2651 struct AranyaAqcBidiStream *stream,
2652 const uint8_t *data,
2653 size_t data_len,
2654 struct AranyaExtError *__ext_err);
2655
2670 uint8_t *buffer,
2671 size_t buffer_len,
2672 size_t *__output);
2673
2688 uint8_t *buffer,
2689 size_t buffer_len,
2690 size_t *__output,
2691 struct AranyaExtError *__ext_err);
2692
2706 struct AranyaAqcBidiChannel *channel,
2707 struct AranyaAqcSendStream *stream);
2708
2722 struct AranyaAqcBidiChannel *channel,
2723 struct AranyaAqcSendStream *stream,
2724 struct AranyaExtError *__ext_err);
2725
2745 struct AranyaAqcReceiveStream *recv_stream,
2746 struct AranyaAqcSendStream *send_stream,
2747 bool *send_init);
2748
2768 struct AranyaAqcReceiveStream *recv_stream,
2769 struct AranyaAqcSendStream *send_stream,
2770 bool *send_init,
2771 struct AranyaExtError *__ext_err);
2772
2786 struct AranyaAqcSendChannel *channel,
2787 struct AranyaAqcSendStream *stream);
2788
2802 struct AranyaAqcSendChannel *channel,
2803 struct AranyaAqcSendStream *stream,
2804 struct AranyaExtError *__ext_err);
2805
2821 struct AranyaAqcReceiveStream *stream);
2822
2838 struct AranyaAqcReceiveStream *stream,
2839 struct AranyaExtError *__ext_err);
2840
2852 struct AranyaAqcSendStream *stream,
2853 const uint8_t *data,
2854 size_t data_len);
2855
2867 struct AranyaAqcSendStream *stream,
2868 const uint8_t *data,
2869 size_t data_len,
2870 struct AranyaExtError *__ext_err);
2871
2886 uint8_t *buffer,
2887 size_t buffer_len,
2888 size_t *__output);
2889
2904 uint8_t *buffer,
2905 size_t buffer_len,
2906 size_t *__output,
2907 struct AranyaExtError *__ext_err);
2908
2909#ifdef __cplusplus
2910} // extern "C"
2911#endif // __cplusplus
2912
2913#endif /* ARANYA_CLIENT_H */
2914
2915
#define ARANYA_SEED_IKM_LEN
The size in bytes of a PSK seed IKM.
Definition aranya-client.h:96
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_rand(struct AranyaClient *client, uint8_t *buf, size_t buf_len)
Return random bytes from Aranya's CSPRNG.
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:403
AranyaError aranya_aqc_config_build_ext(struct AranyaAqcConfigBuilder *cfg, struct AranyaAqcConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct an `AranyaAqcConfig`.
AranyaError aranya_quic_sync_config_wrapped_seed(struct AranyaQuicSyncConfigBuilder *cfg, const uint8_t *encap_seed, size_t encap_seed_len)
Attempts to set wrapped PSK seed value on `AranyaQuicSyncConfigBuilder`.
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_rand_ext(struct AranyaClient *client, uint8_t *buf, size_t buf_len, struct AranyaExtError *__ext_err)
Return random bytes from Aranya's CSPRNG.
AranyaError aranya_client_config_build(struct AranyaClientConfigBuilder *cfg, struct AranyaClientConfig *out)
Attempts to construct a `AranyaClientConfig`.
AranyaError aranya_quic_sync_config_generate_ext(struct AranyaQuicSyncConfigBuilder *cfg, struct AranyaExtError *__ext_err)
Attempts to set PSK seed generation mode value on `AranyaQuicSyncConfigBuilder`.
const char * AranyaAddr
A network socket address for an Aranya client.
Definition aranya-client.h:431
AranyaError aranya_team_config_builder_set_quic_syncer_ext(struct AranyaTeamConfigBuilder *cfg, struct AranyaQuicSyncConfig *quic, struct AranyaExtError *__ext_err)
Configures QUIC syncer for `AranyaTeamConfigBuilder`.
AranyaError aranya_init_logging(void)
Initializes logging.
AranyaAqcChannelType
An enum containing all `AranyaAqcPeerChannel` variants.
Definition aranya-client.h:110
AranyaError aranya_quic_sync_config_wrapped_seed_ext(struct AranyaQuicSyncConfigBuilder *cfg, const uint8_t *encap_seed, size_t encap_seed_len, struct AranyaExtError *__ext_err)
Attempts to set wrapped PSK seed value on `AranyaQuicSyncConfigBuilder`.
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.
AranyaError aranya_quic_sync_config_generate(struct AranyaQuicSyncConfigBuilder *cfg)
Attempts to set PSK seed generation mode value on `AranyaQuicSyncConfigBuilder`.
const char * AranyaLabelName
An AQC label name.
Definition aranya-client.h:417
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:438
AranyaError aranya_init_logging_ext(struct AranyaExtError *__ext_err)
Initializes logging.
AranyaError aranya_quic_sync_config_raw_seed_ikm_ext(struct AranyaQuicSyncConfigBuilder *cfg, const struct AranyaSeedIkm *ikm, struct AranyaExtError *__ext_err)
Attempts to set raw PSK seed IKM value on `AranyaQuicSyncConfigBuilder`.
AranyaError aranya_team_config_builder_set_quic_syncer(struct AranyaTeamConfigBuilder *cfg, struct AranyaQuicSyncConfig *quic)
Configures QUIC syncer for `AranyaTeamConfigBuilder`.
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_quic_sync_config_raw_seed_ikm(struct AranyaQuicSyncConfigBuilder *cfg, const struct AranyaSeedIkm *ikm)
Attempts to set raw PSK seed IKM value on `AranyaQuicSyncConfigBuilder`.
AranyaError aranya_quic_sync_config_build(struct AranyaQuicSyncConfigBuilder *cfg, struct AranyaQuicSyncConfig *out)
Attempts to construct a `AranyaQuicSyncConfig`.
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:155
@ ARANYA_ERROR_INVALID_ARGUMENT
Invalid argument.
Definition aranya-client.h:171
@ ARANYA_ERROR_CONFIG
Unable to create configuration info.
Definition aranya-client.h:207
@ ARANYA_ERROR_IPC
Could not send request to daemon.
Definition aranya-client.h:187
@ ARANYA_ERROR_INVALID_UTF8
Invalid UTF-8.
Definition aranya-client.h:179
@ ARANYA_ERROR_TIMEOUT
Timed out.
Definition aranya-client.h:167
@ ARANYA_ERROR_AQC
AQC library error.
Definition aranya-client.h:195
@ ARANYA_ERROR_BUFFER_TOO_SMALL
Buffer is too small.
Definition aranya-client.h:175
@ ARANYA_ERROR_BUG
Internal bug discovered.
Definition aranya-client.h:163
@ ARANYA_ERROR_INVALID_ADDR
Invalid Address.
Definition aranya-client.h:183
@ ARANYA_ERROR_SERIALIZATION
Serialization error.
Definition aranya-client.h:211
@ ARANYA_ERROR_SUCCESS
Success.
Definition aranya-client.h:159
@ ARANYA_ERROR_OTHER
Some other error occurred.
Definition aranya-client.h:215
@ ARANYA_ERROR_ARANYA
An Aranya error.
Definition aranya-client.h:191
@ ARANYA_ERROR_CLOSED
A connection got unexpectedly closed.
Definition aranya-client.h:203
@ ARANYA_ERROR_WOULD_BLOCK
Tried to poll an endpoint but nothing received yet.
Definition aranya-client.h:199
AranyaChanOp
Valid channel operations for a label assignment.
Definition aranya-client.h:125
@ ARANYA_CHAN_OP_SEND_ONLY
The device can only send data in channels with this label.
Definition aranya-client.h:135
@ ARANYA_CHAN_OP_SEND_RECV
The device can send and receive data in channels with this label.
Definition aranya-client.h:140
@ ARANYA_CHAN_OP_RECV_ONLY
The device can only receive data in channels with this label.
Definition aranya-client.h:130
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:228
@ ARANYA_ROLE_ADMIN
Admin role.
Definition aranya-client.h:236
@ ARANYA_ROLE_OWNER
Owner role.
Definition aranya-client.h:232
@ ARANYA_ROLE_MEMBER
Member role.
Definition aranya-client.h:244
@ ARANYA_ROLE_OPERATOR
Operator role.
Definition aranya-client.h:240
AranyaError aranya_quic_sync_config_build_ext(struct AranyaQuicSyncConfigBuilder *cfg, struct AranyaQuicSyncConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct a `AranyaQuicSyncConfig`.
An AQC Bidirectional Channel Object.
Definition aranya-client.h:459
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:495
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:312
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:324
A type containing the AQC channel variant.
Definition aranya-client.h:447
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:483
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:519
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:471
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:507
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:300
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:277
A handle to an Aranya Client.
Definition aranya-client.h:265
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 local device storage.
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 local device storage.
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_encrypt_psk_seed_for_peer(struct AranyaClient *client, const struct AranyaTeamId *team_id, const uint8_t *keybundle, size_t keybundle_len, uint8_t *seed, size_t *seed_len)
Return serialized PSK seed encrypted for another device on the team.
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_encrypt_psk_seed_for_peer_ext(struct AranyaClient *client, const struct AranyaTeamId *team_id, const uint8_t *keybundle, size_t keybundle_len, uint8_t *seed, size_t *seed_len, struct AranyaExtError *__ext_err)
Return serialized PSK seed encrypted for another device on the team.
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:293
Extended error information.
Definition aranya-client.h:253
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:286
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:422
Definition aranya-client.h:333
AranyaError aranya_quic_sync_config_builder_init(struct AranyaQuicSyncConfigBuilder *out)
Initializes AranyaQuicSyncConfigBuilder.
AranyaError aranya_quic_sync_config_builder_cleanup(struct AranyaQuicSyncConfigBuilder *ptr)
Releases any resources associated with ptr.
AranyaError aranya_quic_sync_config_builder_init_ext(struct AranyaQuicSyncConfigBuilder *out, struct AranyaExtError *__ext_err)
Initializes AranyaQuicSyncConfigBuilder.
AranyaError aranya_quic_sync_config_builder_cleanup_ext(struct AranyaQuicSyncConfigBuilder *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
Definition aranya-client.h:349
Raw PSK seed IKM for QUIC syncer.
Definition aranya-client.h:345
Builder for a Sync Peer config.
Definition aranya-client.h:379
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:391
Definition aranya-client.h:358
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:367
Team ID.
Definition aranya-client.h:408