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
279typedef struct ARANYA_ALIGNED(8) AranyaClientConfig {
285 uint8_t __for_size_only[56];
287
291typedef struct AranyaId {
292 uint8_t bytes[ARANYA_ID_LEN];
294
298typedef struct AranyaDeviceId {
299 struct AranyaId id;
301
305typedef struct ARANYA_ALIGNED(8) AranyaClientConfigBuilder {
311 uint8_t __for_size_only[72];
313
317typedef struct ARANYA_ALIGNED(8) AranyaAqcConfigBuilder {
323 uint8_t __for_size_only[24];
325
331typedef struct ARANYA_ALIGNED(8) AranyaAqcConfig {
337 uint8_t __for_size_only[40];
339
345typedef struct ARANYA_ALIGNED(8) AranyaAddTeamQuicSyncConfigBuilder {
351 uint8_t __for_size_only[288];
353
359typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamQuicSyncConfigBuilder {
365 uint8_t __for_size_only[56];
367
371typedef struct AranyaSeedIkm {
372 uint8_t bytes[ARANYA_SEED_IKM_LEN];
374
380typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamQuicSyncConfig {
386 uint8_t __for_size_only[56];
388
394typedef struct ARANYA_ALIGNED(8) AranyaAddTeamQuicSyncConfig {
400 uint8_t __for_size_only[288];
402
406typedef struct ARANYA_ALIGNED(8) AranyaAddTeamConfigBuilder {
412 uint8_t __for_size_only[328];
414
418typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamConfigBuilder {
424 uint8_t __for_size_only[56];
426
430typedef struct AranyaTeamId {
431 struct AranyaId id;
433
439typedef struct ARANYA_ALIGNED(8) AranyaAddTeamConfig {
445 uint8_t __for_size_only[320];
447
453typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamConfig {
459 uint8_t __for_size_only[56];
461
465typedef struct ARANYA_ALIGNED(8) AranyaSyncPeerConfigBuilder {
471 uint8_t __for_size_only[40];
473
479typedef struct ARANYA_ALIGNED(8) AranyaSyncPeerConfig {
485 uint8_t __for_size_only[32];
487
491typedef uint64_t AranyaDuration;
492
498typedef const char *AranyaLabelName;
499
503typedef struct AranyaLabelId {
504 struct AranyaId id;
506
512typedef const char *AranyaAddr;
513
519typedef const char *AranyaNetIdentifier;
520
528typedef struct ARANYA_ALIGNED(8) AranyaAqcPeerChannel {
534 uint8_t __for_size_only[120];
536
540typedef struct ARANYA_ALIGNED(8) AranyaAqcBidiChannel {
546 uint8_t __for_size_only[112];
548
552typedef struct ARANYA_ALIGNED(8) AranyaAqcSendChannel {
558 uint8_t __for_size_only[112];
560
564typedef struct ARANYA_ALIGNED(8) AranyaAqcReceiveChannel {
570 uint8_t __for_size_only[112];
572
576typedef struct ARANYA_ALIGNED(8) AranyaAqcBidiStream {
582 uint8_t __for_size_only[184];
584
588typedef struct ARANYA_ALIGNED(8) AranyaAqcSendStream {
594 uint8_t __for_size_only[152];
596
600typedef struct ARANYA_ALIGNED(8) AranyaAqcReceiveStream {
606 uint8_t __for_size_only[184];
608
609#ifdef __cplusplus
610extern "C" {
611#endif // __cplusplus
612
622const char *aranya_error_to_str(uint32_t err);
623
633
643 struct AranyaExtError *__ext_err);
644
653
662 struct AranyaExtError *__ext_err);
663
684 char *msg,
685 size_t *msg_len);
686
707 char *msg,
708 size_t *msg_len,
709 struct AranyaExtError *__ext_err);
710
720 const struct AranyaClientConfig *config);
721
731 const struct AranyaClientConfig *config,
732 struct AranyaExtError *__ext_err);
733
742
751 struct AranyaExtError *__ext_err);
752
760
768
779 uint8_t *keybundle,
780 size_t *keybundle_len);
781
792 uint8_t *keybundle,
793 size_t *keybundle_len,
794 struct AranyaExtError *__ext_err);
795
808 char *str,
809 size_t *str_len);
810
818AranyaError aranya_id_from_str(const char *str, struct AranyaId *__output);
819
829 struct AranyaDeviceId *__output);
830
840 struct AranyaDeviceId *__output,
841 struct AranyaExtError *__ext_err);
842
852
862 struct AranyaExtError *__ext_err);
863
872
881 struct AranyaExtError *__ext_err);
882
895 struct AranyaClientConfig *out);
896
909 struct AranyaClientConfig *out,
910 struct AranyaExtError *__ext_err);
911
921 const char *address);
922
932 const char *address,
933 struct AranyaExtError *__ext_err);
934
944
954 struct AranyaExtError *__ext_err);
955
964
973 struct AranyaExtError *__ext_err);
974
987 struct AranyaAqcConfig *out);
988
1001 struct AranyaAqcConfig *out,
1002 struct AranyaExtError *__ext_err);
1003
1014 const char *address);
1015
1026 const char *address,
1027 struct AranyaExtError *__ext_err);
1028
1038 const struct AranyaAqcConfig *aqc_config);
1039
1049 const struct AranyaAqcConfig *aqc_config,
1050 struct AranyaExtError *__ext_err);
1051
1061
1071 struct AranyaExtError *__ext_err);
1072
1081
1090 struct AranyaExtError *__ext_err);
1091
1101
1111 struct AranyaExtError *__ext_err);
1112
1121
1130 struct AranyaExtError *__ext_err);
1131
1142
1153 struct AranyaExtError *__ext_err);
1154
1166 const uint8_t *encap_seed,
1167 size_t encap_seed_len);
1168
1180 const uint8_t *encap_seed,
1181 size_t encap_seed_len,
1182 struct AranyaExtError *__ext_err);
1183
1195 const struct AranyaSeedIkm *ikm);
1196
1208 const struct AranyaSeedIkm *ikm,
1209 struct AranyaExtError *__ext_err);
1210
1222 const struct AranyaSeedIkm *ikm);
1223
1235 const struct AranyaSeedIkm *ikm,
1236 struct AranyaExtError *__ext_err);
1237
1250 struct AranyaCreateTeamQuicSyncConfig *out);
1251
1265 struct AranyaExtError *__ext_err);
1266
1279 struct AranyaAddTeamQuicSyncConfig *out);
1280
1293 struct AranyaAddTeamQuicSyncConfig *out,
1294 struct AranyaExtError *__ext_err);
1295
1305
1315 struct AranyaExtError *__ext_err);
1316
1325
1334 struct AranyaExtError *__ext_err);
1335
1345
1355 struct AranyaExtError *__ext_err);
1356
1365
1374 struct AranyaExtError *__ext_err);
1375
1387 struct AranyaAddTeamQuicSyncConfig *quic);
1388
1400 struct AranyaAddTeamQuicSyncConfig *quic,
1401 struct AranyaExtError *__ext_err);
1402
1414 const struct AranyaTeamId *team_id);
1415
1427 const struct AranyaTeamId *team_id,
1428 struct AranyaExtError *__ext_err);
1429
1442 struct AranyaAddTeamConfig *out);
1443
1456 struct AranyaAddTeamConfig *out,
1457 struct AranyaExtError *__ext_err);
1458
1470 struct AranyaCreateTeamQuicSyncConfig *quic);
1471
1483 struct AranyaCreateTeamQuicSyncConfig *quic,
1484 struct AranyaExtError *__ext_err);
1485
1498 struct AranyaCreateTeamConfig *out);
1499
1512 struct AranyaCreateTeamConfig *out,
1513 struct AranyaExtError *__ext_err);
1514
1524
1534 struct AranyaExtError *__ext_err);
1535
1544
1553 struct AranyaExtError *__ext_err);
1554
1567 struct AranyaSyncPeerConfig *out);
1568
1581 struct AranyaSyncPeerConfig *out,
1582 struct AranyaExtError *__ext_err);
1583
1597 AranyaDuration interval);
1598
1612 AranyaDuration interval,
1613 struct AranyaExtError *__ext_err);
1614
1627
1640 struct AranyaExtError *__ext_err);
1641
1653
1665 struct AranyaExtError *__ext_err);
1666
1682 const struct AranyaTeamId *team,
1683 const struct AranyaDeviceId *device,
1684 AranyaRole role);
1685
1701 const struct AranyaTeamId *team,
1702 const struct AranyaDeviceId *device,
1703 AranyaRole role,
1704 struct AranyaExtError *__ext_err);
1705
1719 const struct AranyaTeamId *team,
1720 const struct AranyaDeviceId *device,
1721 AranyaRole role);
1722
1736 const struct AranyaTeamId *team,
1737 const struct AranyaDeviceId *device,
1738 AranyaRole role,
1739 struct AranyaExtError *__ext_err);
1740
1753 const struct AranyaTeamId *team,
1754 AranyaLabelName name,
1755 struct AranyaLabelId *__output);
1756
1769 const struct AranyaTeamId *team,
1770 AranyaLabelName name,
1771 struct AranyaLabelId *__output,
1772 struct AranyaExtError *__ext_err);
1773
1786 const struct AranyaTeamId *team,
1787 const struct AranyaLabelId *label_id);
1788
1801 const struct AranyaTeamId *team,
1802 const struct AranyaLabelId *label_id,
1803 struct AranyaExtError *__ext_err);
1804
1818 const struct AranyaTeamId *team,
1819 const struct AranyaDeviceId *device,
1820 const struct AranyaLabelId *label_id,
1821 AranyaChanOp op);
1822
1836 const struct AranyaTeamId *team,
1837 const struct AranyaDeviceId *device,
1838 const struct AranyaLabelId *label_id,
1839 AranyaChanOp op,
1840 struct AranyaExtError *__ext_err);
1841
1855 const struct AranyaTeamId *team,
1856 const struct AranyaDeviceId *device,
1857 const struct AranyaLabelId *label_id);
1858
1872 const struct AranyaTeamId *team,
1873 const struct AranyaDeviceId *device,
1874 const struct AranyaLabelId *label_id,
1875 struct AranyaExtError *__ext_err);
1876
1887 const struct AranyaCreateTeamConfig *cfg,
1888 struct AranyaTeamId *__output);
1889
1900 const struct AranyaCreateTeamConfig *cfg,
1901 struct AranyaTeamId *__output,
1902 struct AranyaExtError *__ext_err);
1903
1914 uint8_t *buf,
1915 size_t buf_len);
1916
1927 uint8_t *buf,
1928 size_t buf_len,
1929 struct AranyaExtError *__ext_err);
1930
1952 const struct AranyaTeamId *team_id,
1953 const uint8_t *keybundle,
1954 size_t keybundle_len,
1955 uint8_t *seed,
1956 size_t *seed_len);
1957
1979 const struct AranyaTeamId *team_id,
1980 const uint8_t *keybundle,
1981 size_t keybundle_len,
1982 uint8_t *seed,
1983 size_t *seed_len,
1984 struct AranyaExtError *__ext_err);
1985
1995 const struct AranyaAddTeamConfig *cfg);
1996
2006 const struct AranyaAddTeamConfig *cfg,
2007 struct AranyaExtError *__ext_err);
2008
2018 const struct AranyaTeamId *team);
2019
2029 const struct AranyaTeamId *team,
2030 struct AranyaExtError *__ext_err);
2031
2041 const struct AranyaTeamId *team);
2042
2052 const struct AranyaTeamId *team,
2053 struct AranyaExtError *__ext_err);
2054
2068 const struct AranyaTeamId *team,
2069 const uint8_t *keybundle,
2070 size_t keybundle_len);
2071
2085 const struct AranyaTeamId *team,
2086 const uint8_t *keybundle,
2087 size_t keybundle_len,
2088 struct AranyaExtError *__ext_err);
2089
2102 const struct AranyaTeamId *team,
2103 const struct AranyaDeviceId *device);
2104
2117 const struct AranyaTeamId *team,
2118 const struct AranyaDeviceId *device,
2119 struct AranyaExtError *__ext_err);
2120
2136 const struct AranyaTeamId *team,
2137 AranyaAddr addr,
2138 const struct AranyaSyncPeerConfig *config);
2139
2155 const struct AranyaTeamId *team,
2156 AranyaAddr addr,
2157 const struct AranyaSyncPeerConfig *config,
2158 struct AranyaExtError *__ext_err);
2159
2170 const struct AranyaTeamId *team,
2171 AranyaAddr addr);
2172
2183 const struct AranyaTeamId *team,
2184 AranyaAddr addr,
2185 struct AranyaExtError *__ext_err);
2186
2208 const struct AranyaTeamId *team,
2209 AranyaAddr addr,
2210 const struct AranyaSyncPeerConfig *config);
2211
2233 const struct AranyaTeamId *team,
2234 AranyaAddr addr,
2235 const struct AranyaSyncPeerConfig *config,
2236 struct AranyaExtError *__ext_err);
2237
2249 const struct AranyaTeamId *team,
2250 struct AranyaDeviceId *devices,
2251 size_t *devices_len);
2252
2264 const struct AranyaTeamId *team,
2265 struct AranyaDeviceId *devices,
2266 size_t *devices_len,
2267 struct AranyaExtError *__ext_err);
2268
2281 const struct AranyaTeamId *team,
2282 const struct AranyaDeviceId *device,
2283 uint8_t *keybundle,
2284 size_t *keybundle_len);
2285
2298 const struct AranyaTeamId *team,
2299 const struct AranyaDeviceId *device,
2300 uint8_t *keybundle,
2301 size_t *keybundle_len,
2302 struct AranyaExtError *__ext_err);
2303
2320 const struct AranyaTeamId *team,
2321 const struct AranyaDeviceId *device,
2322 struct AranyaLabelId *labels,
2323 size_t *labels_len);
2324
2341 const struct AranyaTeamId *team,
2342 const struct AranyaDeviceId *device,
2343 struct AranyaLabelId *labels,
2344 size_t *labels_len,
2345 struct AranyaExtError *__ext_err);
2346
2362 const struct AranyaTeamId *team,
2363 struct AranyaLabelId *labels,
2364 size_t *labels_len);
2365
2381 const struct AranyaTeamId *team,
2382 struct AranyaLabelId *labels,
2383 size_t *labels_len,
2384 struct AranyaExtError *__ext_err);
2385
2398 const struct AranyaTeamId *team,
2399 const struct AranyaLabelId *label,
2400 bool *__output);
2401
2414 const struct AranyaTeamId *team,
2415 const struct AranyaLabelId *label,
2416 bool *__output,
2417 struct AranyaExtError *__ext_err);
2418
2431 const struct AranyaTeamId *team,
2432 const struct AranyaDeviceId *device,
2433 char *ident,
2434 size_t *ident_len,
2435 bool *__output);
2436
2449 const struct AranyaTeamId *team,
2450 const struct AranyaDeviceId *device,
2451 char *ident,
2452 size_t *ident_len,
2453 bool *__output,
2454 struct AranyaExtError *__ext_err);
2455
2473 const struct AranyaTeamId *team,
2474 const struct AranyaDeviceId *device,
2475 AranyaNetIdentifier net_identifier);
2476
2494 const struct AranyaTeamId *team,
2495 const struct AranyaDeviceId *device,
2496 AranyaNetIdentifier net_identifier,
2497 struct AranyaExtError *__ext_err);
2498
2512 const struct AranyaTeamId *team,
2513 const struct AranyaDeviceId *device,
2514 AranyaNetIdentifier net_identifier);
2515
2529 const struct AranyaTeamId *team,
2530 const struct AranyaDeviceId *device,
2531 AranyaNetIdentifier net_identifier,
2532 struct AranyaExtError *__ext_err);
2533
2542
2551 struct AranyaExtError *__ext_err);
2552
2561
2570 struct AranyaExtError *__ext_err);
2571
2580
2589 struct AranyaExtError *__ext_err);
2590
2599
2608 struct AranyaExtError *__ext_err);
2609
2618
2627 struct AranyaExtError *__ext_err);
2628
2637
2646 struct AranyaExtError *__ext_err);
2647
2656
2665 struct AranyaExtError *__ext_err);
2666
2681 const struct AranyaTeamId *team,
2683 const struct AranyaLabelId *label_id,
2684 struct AranyaAqcBidiChannel *channel);
2685
2700 const struct AranyaTeamId *team,
2702 const struct AranyaLabelId *label_id,
2703 struct AranyaAqcBidiChannel *channel,
2704 struct AranyaExtError *__ext_err);
2705
2720 const struct AranyaTeamId *team,
2722 const struct AranyaLabelId *label_id,
2723 struct AranyaAqcSendChannel *channel);
2724
2739 const struct AranyaTeamId *team,
2741 const struct AranyaLabelId *label_id,
2742 struct AranyaAqcSendChannel *channel,
2743 struct AranyaExtError *__ext_err);
2744
2756 struct AranyaAqcBidiChannel *channel);
2757
2769 struct AranyaAqcBidiChannel *channel,
2770 struct AranyaExtError *__ext_err);
2771
2783 struct AranyaAqcSendChannel *channel);
2784
2796 struct AranyaAqcSendChannel *channel,
2797 struct AranyaExtError *__ext_err);
2798
2830 struct AranyaAqcPeerChannel *channel,
2831 AranyaAqcChannelType *__output);
2832
2864 struct AranyaAqcPeerChannel *channel,
2865 AranyaAqcChannelType *__output,
2866 struct AranyaExtError *__ext_err);
2867
2881 struct AranyaAqcBidiChannel *bidi);
2882
2896 struct AranyaAqcBidiChannel *bidi,
2897 struct AranyaExtError *__ext_err);
2898
2912 struct AranyaAqcReceiveChannel *receiver);
2913
2927 struct AranyaAqcReceiveChannel *receiver,
2928 struct AranyaExtError *__ext_err);
2929
2943 struct AranyaAqcBidiChannel *channel,
2944 struct AranyaAqcBidiStream *stream);
2945
2959 struct AranyaAqcBidiChannel *channel,
2960 struct AranyaAqcBidiStream *stream,
2961 struct AranyaExtError *__ext_err);
2962
2974 struct AranyaAqcBidiStream *stream,
2975 const uint8_t *data,
2976 size_t data_len);
2977
2989 struct AranyaAqcBidiStream *stream,
2990 const uint8_t *data,
2991 size_t data_len,
2992 struct AranyaExtError *__ext_err);
2993
3007 uint8_t *buffer,
3008 size_t *buffer_len);
3009
3023 uint8_t *buffer,
3024 size_t *buffer_len,
3025 struct AranyaExtError *__ext_err);
3026
3040 struct AranyaAqcBidiChannel *channel,
3041 struct AranyaAqcSendStream *stream);
3042
3056 struct AranyaAqcBidiChannel *channel,
3057 struct AranyaAqcSendStream *stream,
3058 struct AranyaExtError *__ext_err);
3059
3079 struct AranyaAqcReceiveStream *recv_stream,
3080 struct AranyaAqcSendStream *send_stream,
3081 bool *send_init);
3082
3102 struct AranyaAqcReceiveStream *recv_stream,
3103 struct AranyaAqcSendStream *send_stream,
3104 bool *send_init,
3105 struct AranyaExtError *__ext_err);
3106
3120 struct AranyaAqcSendChannel *channel,
3121 struct AranyaAqcSendStream *stream);
3122
3136 struct AranyaAqcSendChannel *channel,
3137 struct AranyaAqcSendStream *stream,
3138 struct AranyaExtError *__ext_err);
3139
3155 struct AranyaAqcReceiveStream *stream);
3156
3172 struct AranyaAqcReceiveStream *stream,
3173 struct AranyaExtError *__ext_err);
3174
3186 struct AranyaAqcSendStream *stream,
3187 const uint8_t *data,
3188 size_t data_len);
3189
3201 struct AranyaAqcSendStream *stream,
3202 const uint8_t *data,
3203 size_t data_len,
3204 struct AranyaExtError *__ext_err);
3205
3219 uint8_t *buffer,
3220 size_t *buffer_len);
3221
3235 uint8_t *buffer,
3236 size_t *buffer_len,
3237 struct AranyaExtError *__ext_err);
3238
3239#ifdef __cplusplus
3240} // extern "C"
3241#endif // __cplusplus
3242
3243#endif /* ARANYA_CLIENT_H */
3244
3245
#define ARANYA_SEED_IKM_LEN
The size in bytes of a PSK seed IKM.
Definition aranya-client.h:96
#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:491
const char * AranyaAddr
A network socket address for an Aranya client.
Definition aranya-client.h:512
AranyaError aranya_init_logging(void)
Initializes logging.
AranyaAqcChannelType
An enum containing all `AranyaAqcPeerChannel` variants.
Definition aranya-client.h:110
const char * AranyaLabelName
An AQC label name.
Definition aranya-client.h:498
AranyaError aranya_rand(const struct AranyaClient *client, uint8_t *buf, size_t buf_len)
Return random bytes from Aranya's CSPRNG.
const char * AranyaNetIdentifier
A network identifier for an Aranya client.
Definition aranya-client.h:519
AranyaError aranya_init_logging_ext(struct AranyaExtError *__ext_err)
Initializes logging.
AranyaError aranya_rand_ext(const struct AranyaClient *client, uint8_t *buf, size_t buf_len, struct AranyaExtError *__ext_err)
Return random bytes from Aranya's CSPRNG.
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
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
A builder for initializing an `AranyaAddTeamConfig`.
Definition aranya-client.h:406
AranyaError aranya_add_team_config_builder_set_quic_syncer(struct AranyaAddTeamConfigBuilder *cfg, struct AranyaAddTeamQuicSyncConfig *quic)
Configures QUIC syncer for `AranyaAddTeamConfigBuilder`.
AranyaError aranya_add_team_config_builder_set_id_ext(struct AranyaAddTeamConfigBuilder *cfg, const struct AranyaTeamId *team_id, struct AranyaExtError *__ext_err)
Configures team ID field for `AranyaAddTeamConfigBuilder`.
AranyaError aranya_add_team_config_builder_cleanup_ext(struct AranyaAddTeamConfigBuilder *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
AranyaError aranya_add_team_config_builder_cleanup(struct AranyaAddTeamConfigBuilder *ptr)
Releases any resources associated with ptr.
AranyaError aranya_add_team_config_builder_set_id(struct AranyaAddTeamConfigBuilder *cfg, const struct AranyaTeamId *team_id)
Configures team ID field for `AranyaAddTeamConfigBuilder`.
AranyaError aranya_add_team_config_builder_set_quic_syncer_ext(struct AranyaAddTeamConfigBuilder *cfg, struct AranyaAddTeamQuicSyncConfig *quic, struct AranyaExtError *__ext_err)
Configures QUIC syncer for `AranyaAddTeamConfigBuilder`.
AranyaError aranya_add_team_config_build_ext(struct AranyaAddTeamConfigBuilder *cfg, struct AranyaAddTeamConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct an `AranyaAddTeamConfig`.
AranyaError aranya_add_team_config_builder_init_ext(struct AranyaAddTeamConfigBuilder *out, struct AranyaExtError *__ext_err)
Initializes AranyaAddTeamConfigBuilder.
AranyaError aranya_add_team_config_build(struct AranyaAddTeamConfigBuilder *cfg, struct AranyaAddTeamConfig *out)
Attempts to construct an `AranyaAddTeamConfig`.
AranyaError aranya_add_team_config_builder_init(struct AranyaAddTeamConfigBuilder *out)
Initializes AranyaAddTeamConfigBuilder.
Team configuration used when joining a team.
Definition aranya-client.h:439
A builder for initializing an `AranyaAddTeamQuicSyncConfig`.
Definition aranya-client.h:345
AranyaError aranya_add_team_quic_sync_config_wrapped_seed_ext(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, const uint8_t *encap_seed, size_t encap_seed_len, struct AranyaExtError *__ext_err)
Attempts to set wrapped PSK seed value on `AranyaAddTeamQuicSyncConfigBuilder`.
AranyaError aranya_add_team_quic_sync_config_builder_init_ext(struct AranyaAddTeamQuicSyncConfigBuilder *out, struct AranyaExtError *__ext_err)
Initializes AranyaAddTeamQuicSyncConfigBuilder.
AranyaError aranya_add_team_quic_sync_config_raw_seed_ikm(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, const struct AranyaSeedIkm *ikm)
Attempts to set raw PSK seed IKM value `AranyaSeedIkm` on `AranyaAddTeamQuicSyncConfigBuilder`.
AranyaError aranya_add_team_quic_sync_config_builder_init(struct AranyaAddTeamQuicSyncConfigBuilder *out)
Initializes AranyaAddTeamQuicSyncConfigBuilder.
AranyaError aranya_add_team_quic_sync_config_build(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, struct AranyaAddTeamQuicSyncConfig *out)
Attempts to construct an `AranyaAddTeamQuicSyncConfig`.
AranyaError aranya_add_team_quic_sync_config_builder_cleanup_ext(struct AranyaAddTeamQuicSyncConfigBuilder *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
AranyaError aranya_add_team_quic_sync_config_wrapped_seed(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, const uint8_t *encap_seed, size_t encap_seed_len)
Attempts to set wrapped PSK seed value on `AranyaAddTeamQuicSyncConfigBuilder`.
AranyaError aranya_add_team_quic_sync_config_builder_cleanup(struct AranyaAddTeamQuicSyncConfigBuilder *ptr)
Releases any resources associated with ptr.
AranyaError aranya_add_team_quic_sync_config_build_ext(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, struct AranyaAddTeamQuicSyncConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct an `AranyaAddTeamQuicSyncConfig`.
AranyaError aranya_add_team_quic_sync_config_raw_seed_ikm_ext(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, const struct AranyaSeedIkm *ikm, struct AranyaExtError *__ext_err)
Attempts to set raw PSK seed IKM value `AranyaSeedIkm` on `AranyaAddTeamQuicSyncConfigBuilder`.
QUIC syncer configuration.
Definition aranya-client.h:394
An AQC Bidirectional Channel Object.
Definition aranya-client.h:540
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:576
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 config `AranyaAqcConfig`.
Definition aranya-client.h:317
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_aqc_config_builder_init(struct AranyaAqcConfigBuilder *out)
Initializes AranyaAqcConfigBuilder.
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_aqc_config_ext(struct AranyaClientConfigBuilder *cfg, const struct AranyaAqcConfig *aqc_config, struct AranyaExtError *__ext_err)
Sets the configuration for Aranya QUIC Channels.
AranyaError aranya_aqc_config_builder_cleanup(struct AranyaAqcConfigBuilder *ptr)
Releases any resources associated with ptr.
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_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.
AranyaError aranya_aqc_config_builder_set_address(struct AranyaAqcConfigBuilder *cfg, const char *address)
Sets the network address that the AQC server should listen on.
Configuration info for Aranya QUIC Channels.
Definition aranya-client.h:331
A type containing the AQC channel variant.
Definition aranya-client.h:528
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:564
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:600
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:552
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:588
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 an Aranya client config `AranyaClientConfig`.
Definition aranya-client.h:305
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_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_build(struct AranyaClientConfigBuilder *cfg, struct AranyaClientConfig *out)
Attempts to construct a `AranyaClientConfig`.
AranyaError aranya_client_config_builder_init(struct AranyaClientConfigBuilder *out)
Initializes AranyaClientConfigBuilder.
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_client_config_build_ext(struct AranyaClientConfigBuilder *cfg, struct AranyaClientConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct a `AranyaClientConfig`.
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:279
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_aqc_bidi_stream_send_ext(const 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_remove_team_ext(const 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(const struct AranyaClient *client, struct AranyaAqcBidiChannel *channel, struct AranyaAqcBidiStream *stream)
Create a bidirectional stream from a `AranyaAqcBidiChannel`.
AranyaError aranya_assign_label_ext(const 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_aqc_delete_bidi_channel(const struct AranyaClient *client, struct AranyaAqcBidiChannel *channel)
Delete a bidirectional AQC channel.
AranyaError aranya_aqc_create_uni_channel_ext(const 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_sync_now_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr, const struct AranyaSyncPeerConfig *config, struct AranyaExtError *__ext_err)
Sync with peer immediately.
AranyaError aranya_assign_role(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, AranyaRole role)
Assign a role to a device.
AranyaError aranya_aqc_try_receive_channel(const struct AranyaClient *client, struct AranyaAqcPeerChannel *channel, AranyaAqcChannelType *__output)
Tries to poll AQC to see if any channels have been received.
AranyaError aranya_query_label_exists(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label, bool *__output)
Query if a label exists.
AranyaError aranya_aqc_create_bidi_channel(const 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_delete_bidi_channel_ext(const struct AranyaClient *client, struct AranyaAqcBidiChannel *channel, struct AranyaExtError *__ext_err)
Delete a bidirectional AQC channel.
AranyaError aranya_revoke_role_ext(const 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_aqc_get_receive_channel(struct AranyaAqcPeerChannel *channel, struct AranyaAqcReceiveChannel *receiver)
Converts the `AranyaAqcPeerChannel`into an [AranyaAqcReceiveChannel`](AranyaAqcReceiveChannel) for re...
AranyaError aranya_delete_label(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label_id)
Delete a channel label.
AranyaError aranya_aqc_assign_net_identifier_ext(const 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_assign_role_ext(const 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_query_labels(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaLabelId *labels, size_t *labels_len)
Query for list of existing labels.
AranyaError aranya_add_device_to_team_ext(const 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_query_devices_on_team(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaDeviceId *devices, size_t *devices_len)
Query devices on team.
AranyaError aranya_add_sync_peer_ext(const 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_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_sync_now(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr, const struct AranyaSyncPeerConfig *config)
Sync with peer immediately.
AranyaError aranya_delete_label_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label_id, struct AranyaExtError *__ext_err)
Delete a channel label.
AranyaError aranya_revoke_label(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaLabelId *label_id)
Revoke a label from a device.
AranyaError aranya_query_device_label_assignments(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, struct AranyaLabelId *labels, size_t *labels_len)
Query device label assignments.
AranyaError aranya_aqc_remove_net_identifier(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, AranyaNetIdentifier net_identifier)
Disassociate an AQC network identifier from a device.
AranyaError aranya_add_team_ext(const struct AranyaClient *client, const struct AranyaAddTeamConfig *cfg, struct AranyaExtError *__ext_err)
Add a team to the local device store.
AranyaError aranya_aqc_bidi_stream_try_recv(struct AranyaAqcBidiStream *stream, uint8_t *buffer, size_t *buffer_len)
Receive some data from an `AranyaAqcBidiStream`.
AranyaError aranya_encrypt_psk_seed_for_peer(const 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_aqc_net_identifier(const 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_aqc_send_create_uni_stream_ext(const struct AranyaClient *client, struct AranyaAqcSendChannel *channel, struct AranyaAqcSendStream *stream, struct AranyaExtError *__ext_err)
Create a unidirectional stream from an `AranyaAqcSendChannel`.
AranyaError aranya_client_cleanup(struct AranyaClient *ptr)
Releases any resources associated with ptr.
AranyaError aranya_create_label_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaLabelName name, struct AranyaLabelId *__output, struct AranyaExtError *__ext_err)
Create a channel label.
AranyaError aranya_query_label_exists_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label, bool *__output, struct AranyaExtError *__ext_err)
Query if a label exists.
AranyaError aranya_query_device_keybundle(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, uint8_t *keybundle, size_t *keybundle_len)
Query device's keybundle.
AranyaError aranya_add_device_to_team(const 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_revoke_label_ext(const 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_remove_team(const struct AranyaClient *client, const struct AranyaTeamId *team)
Remove a team from local device storage.
AranyaError aranya_query_aqc_net_identifier_ext(const 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.
AranyaError aranya_remove_device_from_team(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device)
Remove a device from the team.
AranyaError aranya_aqc_bidi_stream_try_recv_ext(struct AranyaAqcBidiStream *stream, uint8_t *buffer, size_t *buffer_len, struct AranyaExtError *__ext_err)
Receive some data from an `AranyaAqcBidiStream`.
AranyaError aranya_create_label(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaLabelName name, struct AranyaLabelId *__output)
Create a channel label.
AranyaError aranya_close_team(const struct AranyaClient *client, const struct AranyaTeamId *team)
Close the team and stop all operations on the graph.
AranyaError aranya_aqc_delete_uni_channel(const struct AranyaClient *client, struct AranyaAqcSendChannel *channel)
Delete a unidirectional AQC channel.
AranyaError aranya_aqc_bidi_create_bidi_stream_ext(const struct AranyaClient *client, struct AranyaAqcBidiChannel *channel, struct AranyaAqcBidiStream *stream, struct AranyaExtError *__ext_err)
Create a bidirectional stream from a `AranyaAqcBidiChannel`.
AranyaError aranya_aqc_bidi_create_uni_stream_ext(const struct AranyaClient *client, struct AranyaAqcBidiChannel *channel, struct AranyaAqcSendStream *stream, struct AranyaExtError *__ext_err)
Create a unidirectional stream from an `AranyaAqcBidiChannel`.
AranyaError aranya_create_team(const struct AranyaClient *client, const struct AranyaCreateTeamConfig *cfg, struct AranyaTeamId *__output)
Create a new graph/team with the current device as the owner.
AranyaError aranya_client_init(struct AranyaClient *client, const struct AranyaClientConfig *config)
Initializes a new client instance.
AranyaError aranya_aqc_remove_net_identifier_ext(const 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_get_key_bundle(const struct AranyaClient *client, uint8_t *keybundle, size_t *keybundle_len)
Gets the public key bundle for this 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_delete_uni_channel_ext(const struct AranyaClient *client, struct AranyaAqcSendChannel *channel, struct AranyaExtError *__ext_err)
Delete a unidirectional AQC channel.
AranyaError aranya_aqc_create_uni_channel(const 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_query_device_keybundle_ext(const 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_aqc_bidi_create_uni_stream(const struct AranyaClient *client, struct AranyaAqcBidiChannel *channel, struct AranyaAqcSendStream *stream)
Create a unidirectional stream from an `AranyaAqcBidiChannel`.
AranyaError aranya_remove_sync_peer(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr)
Remove the peer from automatic Aranya state syncing.
AranyaError aranya_create_team_ext(const struct AranyaClient *client, const struct AranyaCreateTeamConfig *cfg, struct AranyaTeamId *__output, struct AranyaExtError *__ext_err)
Create a new graph/team with the current device as the owner.
AranyaError aranya_aqc_create_bidi_channel_ext(const 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_labels_ext(const 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_aqc_try_receive_channel_ext(const 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_remove_device_from_team_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, struct AranyaExtError *__ext_err)
Remove a device from the team.
AranyaError aranya_aqc_assign_net_identifier(const 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_get_device_id(const struct AranyaClient *client, struct AranyaDeviceId *__output)
Gets the public device ID.
AranyaError aranya_aqc_recv_stream_try_recv_ext(struct AranyaAqcReceiveStream *stream, uint8_t *buffer, size_t *buffer_len, struct AranyaExtError *__ext_err)
Receive some data from an `AranyaAqcReceiveStream`.
AranyaError aranya_get_key_bundle_ext(const struct AranyaClient *client, uint8_t *keybundle, size_t *keybundle_len, struct AranyaExtError *__ext_err)
Gets the public key bundle for this device.
AranyaError aranya_revoke_role(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, AranyaRole role)
Revoke a role from a device.
AranyaError aranya_aqc_send_create_uni_stream(const struct AranyaClient *client, struct AranyaAqcSendChannel *channel, struct AranyaAqcSendStream *stream)
Create a unidirectional stream from an `AranyaAqcSendChannel`.
AranyaError aranya_add_team(const struct AranyaClient *client, const struct AranyaAddTeamConfig *cfg)
Add a team to the local device store.
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_aqc_recv_stream_try_recv(struct AranyaAqcReceiveStream *stream, uint8_t *buffer, size_t *buffer_len)
Receive some data from an `AranyaAqcReceiveStream`.
AranyaError aranya_query_device_label_assignments_ext(const 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_get_device_id_ext(const struct AranyaClient *client, struct AranyaDeviceId *__output, struct AranyaExtError *__ext_err)
Gets the public device ID.
AranyaError aranya_client_init_ext(struct AranyaClient *client, const struct AranyaClientConfig *config, struct AranyaExtError *__ext_err)
Initializes a new client instance.
AranyaError aranya_add_sync_peer(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr, const struct AranyaSyncPeerConfig *config)
Add the peer for automatic periodic Aranya state syncing.
AranyaError aranya_encrypt_psk_seed_for_peer_ext(const 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_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(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr, struct AranyaExtError *__ext_err)
Remove the peer from automatic Aranya state syncing.
AranyaError aranya_close_team_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaExtError *__ext_err)
Close the team and stop all operations on the graph.
AranyaError aranya_assign_label(const 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_aqc_send_stream_send_ext(const 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_query_devices_on_team_ext(const 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_recv_try_receive_uni_stream(struct AranyaAqcReceiveChannel *channel, struct AranyaAqcReceiveStream *stream)
Receives the stream from an `AranyaAqcReceiveChannel`.
AranyaError aranya_aqc_bidi_stream_send(const 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_aqc_send_stream_send(const struct AranyaClient *client, struct AranyaAqcSendStream *stream, const uint8_t *data, size_t data_len)
Send some data over an `AranyaAqcSendStream`m.
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/...
A builder for initializing a `AranyaCreateTeamConfig`.
Definition aranya-client.h:418
AranyaError aranya_create_team_config_builder_set_quic_syncer(struct AranyaCreateTeamConfigBuilder *cfg, struct AranyaCreateTeamQuicSyncConfig *quic)
Configures QUIC syncer for `AranyaCreateTeamConfigBuilder`.
AranyaError aranya_create_team_config_builder_init(struct AranyaCreateTeamConfigBuilder *out)
Initializes AranyaCreateTeamConfigBuilder.
AranyaError aranya_create_team_config_builder_set_quic_syncer_ext(struct AranyaCreateTeamConfigBuilder *cfg, struct AranyaCreateTeamQuicSyncConfig *quic, struct AranyaExtError *__ext_err)
Configures QUIC syncer for `AranyaCreateTeamConfigBuilder`.
AranyaError aranya_create_team_config_build(struct AranyaCreateTeamConfigBuilder *cfg, struct AranyaCreateTeamConfig *out)
Attempts to construct a `AranyaCreateTeamConfig`.
AranyaError aranya_create_team_config_builder_cleanup_ext(struct AranyaCreateTeamConfigBuilder *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
AranyaError aranya_create_team_config_build_ext(struct AranyaCreateTeamConfigBuilder *cfg, struct AranyaCreateTeamConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct a `AranyaCreateTeamConfig`.
AranyaError aranya_create_team_config_builder_init_ext(struct AranyaCreateTeamConfigBuilder *out, struct AranyaExtError *__ext_err)
Initializes AranyaCreateTeamConfigBuilder.
AranyaError aranya_create_team_config_builder_cleanup(struct AranyaCreateTeamConfigBuilder *ptr)
Releases any resources associated with ptr.
Team configuration used when creating a team.
Definition aranya-client.h:453
A builder for initializing a `AranyaCreateTeamQuicSyncConfig`.
Definition aranya-client.h:359
AranyaError aranya_create_team_quic_sync_config_raw_seed_ikm(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg, const struct AranyaSeedIkm *ikm)
Attempts to set raw PSK seed IKM value `AranyaSeedIkm` on `AranyaCreateTeamQuicSyncConfigBuilder`.
AranyaError aranya_create_team_quic_sync_config_builder_cleanup_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
AranyaError aranya_create_team_quic_sync_config_raw_seed_ikm_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg, const struct AranyaSeedIkm *ikm, struct AranyaExtError *__ext_err)
Attempts to set raw PSK seed IKM value `AranyaSeedIkm` on `AranyaCreateTeamQuicSyncConfigBuilder`.
AranyaError aranya_create_team_quic_sync_config_builder_cleanup(struct AranyaCreateTeamQuicSyncConfigBuilder *ptr)
Releases any resources associated with ptr.
AranyaError aranya_create_team_quic_sync_config_build_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg, struct AranyaCreateTeamQuicSyncConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct a `AranyaCreateTeamQuicSyncConfig`.
AranyaError aranya_create_team_quic_sync_config_build(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg, struct AranyaCreateTeamQuicSyncConfig *out)
Attempts to construct a `AranyaCreateTeamQuicSyncConfig`.
AranyaError aranya_create_team_quic_sync_config_generate_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg, struct AranyaExtError *__ext_err)
Attempts to set PSK seed generation mode value on `AranyaCreateTeamQuicSyncConfigBuilder`.
AranyaError aranya_create_team_quic_sync_config_builder_init(struct AranyaCreateTeamQuicSyncConfigBuilder *out)
Initializes AranyaCreateTeamQuicSyncConfigBuilder.
AranyaError aranya_create_team_quic_sync_config_builder_init_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *out, struct AranyaExtError *__ext_err)
Initializes AranyaCreateTeamQuicSyncConfigBuilder.
AranyaError aranya_create_team_quic_sync_config_generate(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg)
Attempts to set PSK seed generation mode value on `AranyaCreateTeamQuicSyncConfigBuilder`.
QUIC syncer configuration.
Definition aranya-client.h:380
Device ID.
Definition aranya-client.h:298
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.
Cryptographically secure Aranya ID.
Definition aranya-client.h:291
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:503
Raw PSK seed IKM for QUIC syncer.
Definition aranya-client.h:371
Builder for a Sync Peer config `AranyaSyncPeerConfig`.
Definition aranya-client.h:465
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_build(struct AranyaSyncPeerConfigBuilder *cfg, struct AranyaSyncPeerConfig *out)
Attempts to build a `AranyaSyncPeerConfig`.
AranyaError aranya_sync_peer_config_builder_init(struct AranyaSyncPeerConfigBuilder *out)
Initializes AranyaSyncPeerConfigBuilder.
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_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_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.
AranyaError aranya_sync_peer_config_builder_cleanup_ext(struct AranyaSyncPeerConfigBuilder *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
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.
Sync Peer config.
Definition aranya-client.h:479
Team ID.
Definition aranya-client.h:430