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
281typedef struct ARANYA_ALIGNED(8) AranyaExtError {
287 uint8_t __for_size_only[88];
289
293typedef struct ARANYA_ALIGNED(16) AranyaClient {
299 uint8_t __for_size_only[3728];
301
307typedef struct ARANYA_ALIGNED(8) AranyaClientConfig {
313 uint8_t __for_size_only[56];
315
319typedef struct AranyaId {
320 uint8_t bytes[ARANYA_ID_LEN];
322
326typedef struct AranyaDeviceId {
327 struct AranyaId id;
329
333typedef struct ARANYA_ALIGNED(8) AranyaClientConfigBuilder {
339 uint8_t __for_size_only[72];
341
345typedef struct ARANYA_ALIGNED(8) AranyaAqcConfigBuilder {
351 uint8_t __for_size_only[24];
353
359typedef struct ARANYA_ALIGNED(8) AranyaAqcConfig {
365 uint8_t __for_size_only[40];
367
373typedef struct ARANYA_ALIGNED(8) AranyaAddTeamQuicSyncConfigBuilder {
379 uint8_t __for_size_only[288];
381
387typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamQuicSyncConfigBuilder {
393 uint8_t __for_size_only[56];
395
399typedef struct AranyaSeedIkm {
400 uint8_t bytes[ARANYA_SEED_IKM_LEN];
402
408typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamQuicSyncConfig {
414 uint8_t __for_size_only[56];
416
422typedef struct ARANYA_ALIGNED(8) AranyaAddTeamQuicSyncConfig {
428 uint8_t __for_size_only[288];
430
434typedef struct ARANYA_ALIGNED(8) AranyaAddTeamConfigBuilder {
440 uint8_t __for_size_only[328];
442
446typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamConfigBuilder {
452 uint8_t __for_size_only[56];
454
458typedef struct AranyaTeamId {
459 struct AranyaId id;
461
467typedef struct ARANYA_ALIGNED(8) AranyaAddTeamConfig {
473 uint8_t __for_size_only[320];
475
481typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamConfig {
487 uint8_t __for_size_only[56];
489
493typedef struct ARANYA_ALIGNED(8) AranyaSyncPeerConfigBuilder {
499 uint8_t __for_size_only[40];
501
507typedef struct ARANYA_ALIGNED(8) AranyaSyncPeerConfig {
513 uint8_t __for_size_only[32];
515
519typedef uint64_t AranyaDuration;
520
526typedef const char *AranyaLabelName;
527
531typedef struct AranyaLabelId {
532 struct AranyaId id;
534
540typedef const char *AranyaAddr;
541
547typedef const char *AranyaNetIdentifier;
548
556typedef struct ARANYA_ALIGNED(8) AranyaAqcPeerChannel {
562 uint8_t __for_size_only[168];
564
568typedef struct ARANYA_ALIGNED(8) AranyaAqcBidiChannel {
574 uint8_t __for_size_only[160];
576
580typedef struct ARANYA_ALIGNED(8) AranyaAqcSendChannel {
586 uint8_t __for_size_only[160];
588
592typedef struct ARANYA_ALIGNED(8) AranyaAqcReceiveChannel {
598 uint8_t __for_size_only[160];
600
604typedef struct ARANYA_ALIGNED(8) AranyaAqcBidiStream {
610 uint8_t __for_size_only[208];
612
616typedef struct ARANYA_ALIGNED(8) AranyaAqcSendStream {
622 uint8_t __for_size_only[176];
624
628typedef struct ARANYA_ALIGNED(8) AranyaAqcReceiveStream {
634 uint8_t __for_size_only[208];
636
637#ifdef __cplusplus
638extern "C" {
639#endif // __cplusplus
640
650const char *aranya_error_to_str(uint32_t err);
651
661
671 struct AranyaExtError *__ext_err);
672
681
690 struct AranyaExtError *__ext_err);
691
712 char *msg,
713 size_t *msg_len);
714
735 char *msg,
736 size_t *msg_len,
737 struct AranyaExtError *__ext_err);
738
748 const struct AranyaClientConfig *config);
749
759 const struct AranyaClientConfig *config,
760 struct AranyaExtError *__ext_err);
761
770
779 struct AranyaExtError *__ext_err);
780
788
796
807 uint8_t *keybundle,
808 size_t *keybundle_len);
809
820 uint8_t *keybundle,
821 size_t *keybundle_len,
822 struct AranyaExtError *__ext_err);
823
836 char *str,
837 size_t *str_len);
838
846AranyaError aranya_id_from_str(const char *str, struct AranyaId *__output);
847
857 struct AranyaDeviceId *__output);
858
868 struct AranyaDeviceId *__output,
869 struct AranyaExtError *__ext_err);
870
880
890 struct AranyaExtError *__ext_err);
891
900
909 struct AranyaExtError *__ext_err);
910
923 struct AranyaClientConfig *out);
924
937 struct AranyaClientConfig *out,
938 struct AranyaExtError *__ext_err);
939
949 const char *address);
950
960 const char *address,
961 struct AranyaExtError *__ext_err);
962
972
982 struct AranyaExtError *__ext_err);
983
992
1001 struct AranyaExtError *__ext_err);
1002
1015 struct AranyaAqcConfig *out);
1016
1029 struct AranyaAqcConfig *out,
1030 struct AranyaExtError *__ext_err);
1031
1042 const char *address);
1043
1054 const char *address,
1055 struct AranyaExtError *__ext_err);
1056
1066 const struct AranyaAqcConfig *aqc_config);
1067
1077 const struct AranyaAqcConfig *aqc_config,
1078 struct AranyaExtError *__ext_err);
1079
1089
1099 struct AranyaExtError *__ext_err);
1100
1109
1118 struct AranyaExtError *__ext_err);
1119
1129
1139 struct AranyaExtError *__ext_err);
1140
1149
1158 struct AranyaExtError *__ext_err);
1159
1170
1181 struct AranyaExtError *__ext_err);
1182
1194 const uint8_t *encap_seed,
1195 size_t encap_seed_len);
1196
1208 const uint8_t *encap_seed,
1209 size_t encap_seed_len,
1210 struct AranyaExtError *__ext_err);
1211
1223 const struct AranyaSeedIkm *ikm);
1224
1236 const struct AranyaSeedIkm *ikm,
1237 struct AranyaExtError *__ext_err);
1238
1250 const struct AranyaSeedIkm *ikm);
1251
1263 const struct AranyaSeedIkm *ikm,
1264 struct AranyaExtError *__ext_err);
1265
1278 struct AranyaCreateTeamQuicSyncConfig *out);
1279
1293 struct AranyaExtError *__ext_err);
1294
1307 struct AranyaAddTeamQuicSyncConfig *out);
1308
1321 struct AranyaAddTeamQuicSyncConfig *out,
1322 struct AranyaExtError *__ext_err);
1323
1333
1343 struct AranyaExtError *__ext_err);
1344
1353
1362 struct AranyaExtError *__ext_err);
1363
1373
1383 struct AranyaExtError *__ext_err);
1384
1393
1402 struct AranyaExtError *__ext_err);
1403
1415 struct AranyaAddTeamQuicSyncConfig *quic);
1416
1428 struct AranyaAddTeamQuicSyncConfig *quic,
1429 struct AranyaExtError *__ext_err);
1430
1442 const struct AranyaTeamId *team_id);
1443
1455 const struct AranyaTeamId *team_id,
1456 struct AranyaExtError *__ext_err);
1457
1470 struct AranyaAddTeamConfig *out);
1471
1484 struct AranyaAddTeamConfig *out,
1485 struct AranyaExtError *__ext_err);
1486
1498 struct AranyaCreateTeamQuicSyncConfig *quic);
1499
1511 struct AranyaCreateTeamQuicSyncConfig *quic,
1512 struct AranyaExtError *__ext_err);
1513
1526 struct AranyaCreateTeamConfig *out);
1527
1540 struct AranyaCreateTeamConfig *out,
1541 struct AranyaExtError *__ext_err);
1542
1552
1562 struct AranyaExtError *__ext_err);
1563
1572
1581 struct AranyaExtError *__ext_err);
1582
1595 struct AranyaSyncPeerConfig *out);
1596
1609 struct AranyaSyncPeerConfig *out,
1610 struct AranyaExtError *__ext_err);
1611
1625 AranyaDuration interval);
1626
1640 AranyaDuration interval,
1641 struct AranyaExtError *__ext_err);
1642
1655
1668 struct AranyaExtError *__ext_err);
1669
1681
1693 struct AranyaExtError *__ext_err);
1694
1710 const struct AranyaTeamId *team,
1711 const struct AranyaDeviceId *device,
1712 AranyaRole role);
1713
1729 const struct AranyaTeamId *team,
1730 const struct AranyaDeviceId *device,
1731 AranyaRole role,
1732 struct AranyaExtError *__ext_err);
1733
1747 const struct AranyaTeamId *team,
1748 const struct AranyaDeviceId *device,
1749 AranyaRole role);
1750
1764 const struct AranyaTeamId *team,
1765 const struct AranyaDeviceId *device,
1766 AranyaRole role,
1767 struct AranyaExtError *__ext_err);
1768
1781 const struct AranyaTeamId *team,
1782 AranyaLabelName name,
1783 struct AranyaLabelId *__output);
1784
1797 const struct AranyaTeamId *team,
1798 AranyaLabelName name,
1799 struct AranyaLabelId *__output,
1800 struct AranyaExtError *__ext_err);
1801
1814 const struct AranyaTeamId *team,
1815 const struct AranyaLabelId *label_id);
1816
1829 const struct AranyaTeamId *team,
1830 const struct AranyaLabelId *label_id,
1831 struct AranyaExtError *__ext_err);
1832
1846 const struct AranyaTeamId *team,
1847 const struct AranyaDeviceId *device,
1848 const struct AranyaLabelId *label_id,
1849 AranyaChanOp op);
1850
1864 const struct AranyaTeamId *team,
1865 const struct AranyaDeviceId *device,
1866 const struct AranyaLabelId *label_id,
1867 AranyaChanOp op,
1868 struct AranyaExtError *__ext_err);
1869
1883 const struct AranyaTeamId *team,
1884 const struct AranyaDeviceId *device,
1885 const struct AranyaLabelId *label_id);
1886
1900 const struct AranyaTeamId *team,
1901 const struct AranyaDeviceId *device,
1902 const struct AranyaLabelId *label_id,
1903 struct AranyaExtError *__ext_err);
1904
1915 const struct AranyaCreateTeamConfig *cfg,
1916 struct AranyaTeamId *__output);
1917
1928 const struct AranyaCreateTeamConfig *cfg,
1929 struct AranyaTeamId *__output,
1930 struct AranyaExtError *__ext_err);
1931
1942 uint8_t *buf,
1943 size_t buf_len);
1944
1955 uint8_t *buf,
1956 size_t buf_len,
1957 struct AranyaExtError *__ext_err);
1958
1980 const struct AranyaTeamId *team_id,
1981 const uint8_t *keybundle,
1982 size_t keybundle_len,
1983 uint8_t *seed,
1984 size_t *seed_len);
1985
2007 const struct AranyaTeamId *team_id,
2008 const uint8_t *keybundle,
2009 size_t keybundle_len,
2010 uint8_t *seed,
2011 size_t *seed_len,
2012 struct AranyaExtError *__ext_err);
2013
2023 const struct AranyaAddTeamConfig *cfg);
2024
2034 const struct AranyaAddTeamConfig *cfg,
2035 struct AranyaExtError *__ext_err);
2036
2046 const struct AranyaTeamId *team);
2047
2057 const struct AranyaTeamId *team,
2058 struct AranyaExtError *__ext_err);
2059
2069 const struct AranyaTeamId *team);
2070
2080 const struct AranyaTeamId *team,
2081 struct AranyaExtError *__ext_err);
2082
2096 const struct AranyaTeamId *team,
2097 const uint8_t *keybundle,
2098 size_t keybundle_len);
2099
2113 const struct AranyaTeamId *team,
2114 const uint8_t *keybundle,
2115 size_t keybundle_len,
2116 struct AranyaExtError *__ext_err);
2117
2130 const struct AranyaTeamId *team,
2131 const struct AranyaDeviceId *device);
2132
2145 const struct AranyaTeamId *team,
2146 const struct AranyaDeviceId *device,
2147 struct AranyaExtError *__ext_err);
2148
2164 const struct AranyaTeamId *team,
2165 AranyaAddr addr,
2166 const struct AranyaSyncPeerConfig *config);
2167
2183 const struct AranyaTeamId *team,
2184 AranyaAddr addr,
2185 const struct AranyaSyncPeerConfig *config,
2186 struct AranyaExtError *__ext_err);
2187
2198 const struct AranyaTeamId *team,
2199 AranyaAddr addr);
2200
2211 const struct AranyaTeamId *team,
2212 AranyaAddr addr,
2213 struct AranyaExtError *__ext_err);
2214
2236 const struct AranyaTeamId *team,
2237 AranyaAddr addr,
2238 const struct AranyaSyncPeerConfig *config);
2239
2261 const struct AranyaTeamId *team,
2262 AranyaAddr addr,
2263 const struct AranyaSyncPeerConfig *config,
2264 struct AranyaExtError *__ext_err);
2265
2277 const struct AranyaTeamId *team,
2278 struct AranyaDeviceId *devices,
2279 size_t *devices_len);
2280
2292 const struct AranyaTeamId *team,
2293 struct AranyaDeviceId *devices,
2294 size_t *devices_len,
2295 struct AranyaExtError *__ext_err);
2296
2309 const struct AranyaTeamId *team,
2310 const struct AranyaDeviceId *device,
2311 uint8_t *keybundle,
2312 size_t *keybundle_len);
2313
2326 const struct AranyaTeamId *team,
2327 const struct AranyaDeviceId *device,
2328 uint8_t *keybundle,
2329 size_t *keybundle_len,
2330 struct AranyaExtError *__ext_err);
2331
2348 const struct AranyaTeamId *team,
2349 const struct AranyaDeviceId *device,
2350 struct AranyaLabelId *labels,
2351 size_t *labels_len);
2352
2369 const struct AranyaTeamId *team,
2370 const struct AranyaDeviceId *device,
2371 struct AranyaLabelId *labels,
2372 size_t *labels_len,
2373 struct AranyaExtError *__ext_err);
2374
2390 const struct AranyaTeamId *team,
2391 struct AranyaLabelId *labels,
2392 size_t *labels_len);
2393
2409 const struct AranyaTeamId *team,
2410 struct AranyaLabelId *labels,
2411 size_t *labels_len,
2412 struct AranyaExtError *__ext_err);
2413
2426 const struct AranyaTeamId *team,
2427 const struct AranyaLabelId *label,
2428 bool *__output);
2429
2442 const struct AranyaTeamId *team,
2443 const struct AranyaLabelId *label,
2444 bool *__output,
2445 struct AranyaExtError *__ext_err);
2446
2459 const struct AranyaTeamId *team,
2460 const struct AranyaDeviceId *device,
2461 char *ident,
2462 size_t *ident_len,
2463 bool *__output);
2464
2477 const struct AranyaTeamId *team,
2478 const struct AranyaDeviceId *device,
2479 char *ident,
2480 size_t *ident_len,
2481 bool *__output,
2482 struct AranyaExtError *__ext_err);
2483
2501 const struct AranyaTeamId *team,
2502 const struct AranyaDeviceId *device,
2503 AranyaNetIdentifier net_identifier);
2504
2522 const struct AranyaTeamId *team,
2523 const struct AranyaDeviceId *device,
2524 AranyaNetIdentifier net_identifier,
2525 struct AranyaExtError *__ext_err);
2526
2540 const struct AranyaTeamId *team,
2541 const struct AranyaDeviceId *device,
2542 AranyaNetIdentifier net_identifier);
2543
2557 const struct AranyaTeamId *team,
2558 const struct AranyaDeviceId *device,
2559 AranyaNetIdentifier net_identifier,
2560 struct AranyaExtError *__ext_err);
2561
2570
2579 struct AranyaExtError *__ext_err);
2580
2589
2598 struct AranyaExtError *__ext_err);
2599
2608
2617 struct AranyaExtError *__ext_err);
2618
2627
2636 struct AranyaExtError *__ext_err);
2637
2646
2655 struct AranyaExtError *__ext_err);
2656
2665
2674 struct AranyaExtError *__ext_err);
2675
2684
2693 struct AranyaExtError *__ext_err);
2694
2709 const struct AranyaTeamId *team,
2711 const struct AranyaLabelId *label_id,
2712 struct AranyaAqcBidiChannel *channel);
2713
2728 const struct AranyaTeamId *team,
2730 const struct AranyaLabelId *label_id,
2731 struct AranyaAqcBidiChannel *channel,
2732 struct AranyaExtError *__ext_err);
2733
2748 const struct AranyaTeamId *team,
2750 const struct AranyaLabelId *label_id,
2751 struct AranyaAqcSendChannel *channel);
2752
2767 const struct AranyaTeamId *team,
2769 const struct AranyaLabelId *label_id,
2770 struct AranyaAqcSendChannel *channel,
2771 struct AranyaExtError *__ext_err);
2772
2784 struct AranyaAqcBidiChannel *channel);
2785
2797 struct AranyaAqcBidiChannel *channel,
2798 struct AranyaExtError *__ext_err);
2799
2811 struct AranyaAqcSendChannel *channel);
2812
2824 struct AranyaAqcSendChannel *channel,
2825 struct AranyaExtError *__ext_err);
2826
2838 struct AranyaAqcReceiveChannel *channel);
2839
2851 struct AranyaAqcReceiveChannel *channel,
2852 struct AranyaExtError *__ext_err);
2853
2885 struct AranyaAqcPeerChannel *channel,
2886 AranyaAqcChannelType *__output);
2887
2919 struct AranyaAqcPeerChannel *channel,
2920 AranyaAqcChannelType *__output,
2921 struct AranyaExtError *__ext_err);
2922
2936 struct AranyaAqcBidiChannel *bidi);
2937
2951 struct AranyaAqcBidiChannel *bidi,
2952 struct AranyaExtError *__ext_err);
2953
2967 struct AranyaAqcReceiveChannel *receiver);
2968
2982 struct AranyaAqcReceiveChannel *receiver,
2983 struct AranyaExtError *__ext_err);
2984
2998 struct AranyaAqcBidiChannel *channel,
2999 struct AranyaAqcBidiStream *stream);
3000
3014 struct AranyaAqcBidiChannel *channel,
3015 struct AranyaAqcBidiStream *stream,
3016 struct AranyaExtError *__ext_err);
3017
3029 struct AranyaAqcBidiStream *stream,
3030 const uint8_t *data,
3031 size_t data_len);
3032
3044 struct AranyaAqcBidiStream *stream,
3045 const uint8_t *data,
3046 size_t data_len,
3047 struct AranyaExtError *__ext_err);
3048
3062 uint8_t *buffer,
3063 size_t *buffer_len);
3064
3078 uint8_t *buffer,
3079 size_t *buffer_len,
3080 struct AranyaExtError *__ext_err);
3081
3095 struct AranyaAqcBidiChannel *channel,
3096 struct AranyaAqcSendStream *stream);
3097
3111 struct AranyaAqcBidiChannel *channel,
3112 struct AranyaAqcSendStream *stream,
3113 struct AranyaExtError *__ext_err);
3114
3134 struct AranyaAqcReceiveStream *recv_stream,
3135 struct AranyaAqcSendStream *send_stream,
3136 bool *send_init);
3137
3157 struct AranyaAqcReceiveStream *recv_stream,
3158 struct AranyaAqcSendStream *send_stream,
3159 bool *send_init,
3160 struct AranyaExtError *__ext_err);
3161
3175 struct AranyaAqcSendChannel *channel,
3176 struct AranyaAqcSendStream *stream);
3177
3191 struct AranyaAqcSendChannel *channel,
3192 struct AranyaAqcSendStream *stream,
3193 struct AranyaExtError *__ext_err);
3194
3210 struct AranyaAqcReceiveStream *stream);
3211
3227 struct AranyaAqcReceiveStream *stream,
3228 struct AranyaExtError *__ext_err);
3229
3241 struct AranyaAqcSendStream *stream,
3242 const uint8_t *data,
3243 size_t data_len);
3244
3256 struct AranyaAqcSendStream *stream,
3257 const uint8_t *data,
3258 size_t data_len,
3259 struct AranyaExtError *__ext_err);
3260
3274 uint8_t *buffer,
3275 size_t *buffer_len);
3276
3290 uint8_t *buffer,
3291 size_t *buffer_len,
3292 struct AranyaExtError *__ext_err);
3293
3294#ifdef __cplusplus
3295} // extern "C"
3296#endif // __cplusplus
3297
3298#endif /* ARANYA_CLIENT_H */
3299
3300
#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:519
const char * AranyaAddr
A network socket address for an Aranya client.
Definition aranya-client.h:540
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:526
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:547
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:434
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:467
A builder for initializing an `AranyaAddTeamQuicSyncConfig`.
Definition aranya-client.h:373
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:422
An AQC Bidirectional Channel Object.
Definition aranya-client.h:568
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:604
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:345
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:359
A type containing the AQC channel variant.
Definition aranya-client.h:556
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:592
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:628
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:580
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:616
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:333
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:307
A handle to an Aranya Client.
Definition aranya-client.h:293
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_aqc_delete_send_uni_channel(const struct AranyaClient *client, struct AranyaAqcSendChannel *channel)
Delete a send unidirectional AQC channel.
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_aqc_delete_receive_uni_channel(const struct AranyaClient *client, struct AranyaAqcReceiveChannel *channel)
Delete a receive unidirectional AQC channel.
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_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_delete_send_uni_channel_ext(const struct AranyaClient *client, struct AranyaAqcSendChannel *channel, struct AranyaExtError *__ext_err)
Delete a send unidirectional AQC channel.
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_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/...
AranyaError aranya_aqc_delete_receive_uni_channel_ext(const struct AranyaClient *client, struct AranyaAqcReceiveChannel *channel, struct AranyaExtError *__ext_err)
Delete a receive unidirectional AQC channel.
A builder for initializing a `AranyaCreateTeamConfig`.
Definition aranya-client.h:446
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:481
A builder for initializing a `AranyaCreateTeamQuicSyncConfig`.
Definition aranya-client.h:387
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:408
Device ID.
Definition aranya-client.h:326
Definition aranya-client.h:281
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:319
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:531
Raw PSK seed IKM for QUIC syncer.
Definition aranya-client.h:399
Builder for a Sync Peer config `AranyaSyncPeerConfig`.
Definition aranya-client.h:493
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:507
Team ID.
Definition aranya-client.h:458