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// clang-format off
2// This header is @generated by cbindgen.
3
4/*
5 * Copyright (c) SpiderOak, Inc. All rights reserved.
6 */
14#ifndef ARANYA_CLIENT_H
15#define ARANYA_CLIENT_H
16
17#pragma once
18
19/* Code generated by `capi`. DO NOT EDIT. */
20
21#include <stdbool.h>
22#include <stddef.h>
23#include <stdint.h>
24#include <sys/socket.h>
25
26#ifndef __has_attribute
27 #define __has_attribute(x) 0
28#endif /* __has_attribute */
29
30#if !defined(ARANYA_ALIGNED)
31 #if __has_attribute(aligned)
32 #define ARANYA_ALIGNED(n) __attribute__((aligned(n)))
33 #else
34 #error "compiler must support `aligned` attribute"
35 #endif
36#endif /* ARANYA_ALIGNED */
37
38#if !defined(ARANYA_DESIGNATED_INIT)
39 #if __has_attribute(designated_init)
40 #define ARANYA_DESIGNATED_INIT __attribute__((designated_init))
41 #else
42 #define ARANYA_DESIGNATED_INIT
43 #endif
44#endif /* ARANYA_DESIGNATED_INIT */
45
46#if !defined(ARANYA_MUST_USE)
47 #if __has_attribute(warn_unused_result)
48 #define ARANYA_MUST_USE __attribute__((warn_unused_result))
49 #else
50 #define ARANYA_MUST_USE
51 #endif
52#endif /* ARANYA_MUST_USE */
53
54#if !defined(ARANYA_NO_RETURN)
55 #if __has_attribute(noreturn)
56 #define ARANYA_NO_RETURN __attribute__((noreturn))
57 #else
58 #define ARANYA_NO_RETURN
59 #endif
60#endif /* ARANYA_NO_RETURN */
61
62#if !defined(ARANYA_NON_NULL)
63 #if defined(__gnu__)
64 #if __has_attribute(nonnull)
65 #define ARANYA_NON_NULL __attribute__((nonnull))
66 #endif
67 #elif defined(__clang__)
68 #define ARANYA_NON_NULL _Nonnull
69 #else
70 #define ARANYA_NON_NULL
71 #endif
72#endif /* ARANYA_NON_NULL */
73
74#if !defined(ARANYA_PACKED)
75 #if __has_attribute(packed)
76 #define ARANYA_PACKED __attribute__((packed))
77 #else
78 #define ARANYA_PACKED
79 #endif
80#endif /* ARANYA_PACKED */
81
82
83#define ARANYA_DURATION_SECONDS (1000 * ARANYA_DURATION_MILLISECONDS)
84
85#define ARANYA_DURATION_MILLISECONDS (1000 * ARANYA_DURATION_MICROSECONDS)
86
87#define ARANYA_DURATION_MICROSECONDS (1000 * ARANYA_DURATION_NANOSECONDS)
88
89#define ARANYA_DURATION_NANOSECONDS 1
90
94#define ARANYA_ID_LEN 32
95
99#define DEFAULT_ROLES_LEN 3
100
104#define ARANYA_SEED_IKM_LEN 32
105
109#define ARANYA_ID_STR_LEN (((ARANYA_ID_LEN * 1375) / 1000) + 1)
110
111#if defined(ENABLE_ARANYA_AFC)
118#define ARANYA_AFC_CHANNEL_OVERHEAD 24
119#endif
120
195#ifndef __cplusplus
196typedef uint32_t AranyaError;
197#endif // __cplusplus
198
199#if defined(ENABLE_ARANYA_PREVIEW)
203enum AranyaRoleManagementPermission
204#ifdef __cplusplus
205 : uint8_t
206#endif // __cplusplus
207 {
212 ARANYA_ROLE_MANAGEMENT_PERMISSION_CAN_ASSIGN_ROLE,
217 ARANYA_ROLE_MANAGEMENT_PERMISSION_CAN_REVOKE_ROLE,
222 ARANYA_ROLE_MANAGEMENT_PERMISSION_CAN_CHANGE_ROLE_PERMS,
223};
224#ifndef __cplusplus
225typedef uint8_t AranyaRoleManagementPermission;
226#endif // __cplusplus
227#endif
228
229#if defined(ENABLE_ARANYA_PREVIEW)
233enum AranyaPermission
234#ifdef __cplusplus
235 : uint8_t
236#endif // __cplusplus
237 {
241 ARANYA_PERMISSION_ADD_DEVICE,
245 ARANYA_PERMISSION_REMOVE_DEVICE,
250 ARANYA_PERMISSION_TERMINATE_TEAM,
254 ARANYA_PERMISSION_CREATE_ROLE,
258 ARANYA_PERMISSION_DELETE_ROLE,
262 ARANYA_PERMISSION_ASSIGN_ROLE,
266 ARANYA_PERMISSION_REVOKE_ROLE,
270 ARANYA_PERMISSION_CHANGE_ROLE_MANAGEMENT_PERMS,
276 ARANYA_PERMISSION_SETUP_DEFAULT_ROLE,
281 ARANYA_PERMISSION_CHANGE_ROLE_MANAGING_ROLE,
285 ARANYA_PERMISSION_CREATE_LABEL,
289 ARANYA_PERMISSION_DELETE_LABEL,
295 ARANYA_PERMISSION_CHANGE_LABEL_MANAGING_ROLE,
301 ARANYA_PERMISSION_ASSIGN_LABEL,
307 ARANYA_PERMISSION_REVOKE_LABEL,
312 ARANYA_PERMISSION_CAN_USE_AFC,
316 ARANYA_PERMISSION_CREATE_AFC_UNI_CHANNEL,
317};
318#ifndef __cplusplus
319typedef uint8_t AranyaPermission;
320#endif // __cplusplus
321#endif
322
327#ifdef __cplusplus
328 : uint8_t
329#endif // __cplusplus
330 {
346};
347#ifndef __cplusplus
348typedef uint8_t AranyaChanOp;
349#endif // __cplusplus
350
381typedef struct ARANYA_ALIGNED(8) AranyaExtError {
387 uint8_t __for_size_only[96];
389
393typedef struct ARANYA_ALIGNED(16) AranyaClient {
399 uint8_t __for_size_only[3728];
401
407typedef struct ARANYA_ALIGNED(8) AranyaClientConfig {
413 uint8_t __for_size_only[56];
415
419typedef struct ARANYA_ALIGNED(8) AranyaRole {
425 uint8_t __for_size_only[112];
427
431typedef struct AranyaId {
432 uint8_t bytes[ARANYA_ID_LEN];
434
438typedef struct AranyaRoleId {
439 struct AranyaId id;
441
445typedef struct AranyaDeviceId {
446 struct AranyaId id;
448
452typedef struct ARANYA_ALIGNED(8) AranyaClientConfigBuilder {
458 uint8_t __for_size_only[72];
460
466typedef struct ARANYA_ALIGNED(8) AranyaAddTeamQuicSyncConfigBuilder {
472 uint8_t __for_size_only[288];
474
480typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamQuicSyncConfigBuilder {
486 uint8_t __for_size_only[56];
488
492typedef struct AranyaSeedIkm {
493 uint8_t bytes[ARANYA_SEED_IKM_LEN];
495
501typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamQuicSyncConfig {
507 uint8_t __for_size_only[56];
509
515typedef struct ARANYA_ALIGNED(8) AranyaAddTeamQuicSyncConfig {
521 uint8_t __for_size_only[288];
523
527typedef struct ARANYA_ALIGNED(8) AranyaAddTeamConfigBuilder {
533 uint8_t __for_size_only[328];
535
539typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamConfigBuilder {
545 uint8_t __for_size_only[56];
547
551typedef struct AranyaTeamId {
552 struct AranyaId id;
554
560typedef struct ARANYA_ALIGNED(8) AranyaAddTeamConfig {
566 uint8_t __for_size_only[320];
568
574typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamConfig {
580 uint8_t __for_size_only[56];
582
586typedef struct ARANYA_ALIGNED(8) AranyaSyncPeerConfigBuilder {
592 uint8_t __for_size_only[40];
594
600typedef struct ARANYA_ALIGNED(8) AranyaSyncPeerConfig {
606 uint8_t __for_size_only[40];
608
612typedef uint64_t AranyaDuration;
613
619typedef const char *AranyaRoleName;
620
626typedef const char *AranyaLabelName;
627
631typedef struct AranyaLabelId {
632 struct AranyaId id;
634
640typedef const char *AranyaAddr;
641
642#if defined(ENABLE_ARANYA_AFC)
646typedef struct ARANYA_ALIGNED(8) AranyaAfcSendChannel {
652 uint8_t __for_size_only[160];
654#endif
655
656#if defined(ENABLE_ARANYA_AFC)
660typedef struct ARANYA_ALIGNED(8) AranyaAfcReceiveChannel {
666 uint8_t __for_size_only[160];
668#endif
669
670#if defined(ENABLE_ARANYA_AFC)
677typedef struct ARANYA_ALIGNED(8) AranyaAfcCtrlMsg {
683 uint8_t __for_size_only[32];
685#endif
686
687#if defined(ENABLE_ARANYA_AFC)
693typedef struct ARANYA_ALIGNED(8) AranyaAfcSeq {
699 uint8_t __for_size_only[24];
701#endif
702
703#if defined(ENABLE_ARANYA_AFC)
707typedef struct AranyaAfcChannelId {
708 struct AranyaId id;
710#endif
711
712#ifdef __cplusplus
713extern "C" {
714#endif // __cplusplus
715
725const char *aranya_error_to_str(uint32_t err);
726
736
745
766 char *msg,
767 size_t *msg_len);
768
789 char *msg,
790 size_t *msg_len,
791 struct AranyaExtError *__ext_err);
792
802 const struct AranyaClientConfig *config);
803
813 const struct AranyaClientConfig *config,
814 struct AranyaExtError *__ext_err);
815
824
833
842 struct AranyaRoleId *__output);
843
852 struct AranyaRoleId *__output,
853 struct AranyaExtError *__ext_err);
854
865 const char **__output);
866
875 struct AranyaDeviceId *__output);
876
885 struct AranyaDeviceId *__output,
886 struct AranyaExtError *__ext_err);
887
895
903
914 uint8_t *keybundle,
915 size_t *keybundle_len);
916
927 uint8_t *keybundle,
928 size_t *keybundle_len,
929 struct AranyaExtError *__ext_err);
930
943 char *str,
944 size_t *str_len);
945
953AranyaError aranya_id_from_str(const char *str, struct AranyaId *__output);
954
964 struct AranyaDeviceId *__output);
965
975 struct AranyaDeviceId *__output,
976 struct AranyaExtError *__ext_err);
977
987
996
1009 struct AranyaClientConfig *out);
1010
1023 struct AranyaClientConfig *out,
1024 struct AranyaExtError *__ext_err);
1025
1035 const char *address);
1036
1046 const char *address,
1047 struct AranyaExtError *__ext_err);
1048
1058
1067
1077
1086
1097
1108 struct AranyaExtError *__ext_err);
1109
1121 const uint8_t *encap_seed,
1122 size_t encap_seed_len);
1123
1135 const uint8_t *encap_seed,
1136 size_t encap_seed_len,
1137 struct AranyaExtError *__ext_err);
1138
1150 const struct AranyaSeedIkm *ikm);
1151
1163 const struct AranyaSeedIkm *ikm,
1164 struct AranyaExtError *__ext_err);
1165
1177 const struct AranyaSeedIkm *ikm);
1178
1190 const struct AranyaSeedIkm *ikm,
1191 struct AranyaExtError *__ext_err);
1192
1205 struct AranyaCreateTeamQuicSyncConfig *out);
1206
1220 struct AranyaExtError *__ext_err);
1221
1234 struct AranyaAddTeamQuicSyncConfig *out);
1235
1248 struct AranyaAddTeamQuicSyncConfig *out,
1249 struct AranyaExtError *__ext_err);
1250
1260
1269
1279
1288
1300 struct AranyaAddTeamQuicSyncConfig *quic);
1301
1313 struct AranyaAddTeamQuicSyncConfig *quic,
1314 struct AranyaExtError *__ext_err);
1315
1327 const struct AranyaTeamId *team_id);
1328
1340 const struct AranyaTeamId *team_id,
1341 struct AranyaExtError *__ext_err);
1342
1355 struct AranyaAddTeamConfig *out);
1356
1369 struct AranyaAddTeamConfig *out,
1370 struct AranyaExtError *__ext_err);
1371
1383 struct AranyaCreateTeamQuicSyncConfig *quic);
1384
1396 struct AranyaCreateTeamQuicSyncConfig *quic,
1397 struct AranyaExtError *__ext_err);
1398
1411 struct AranyaCreateTeamConfig *out);
1412
1425 struct AranyaCreateTeamConfig *out,
1426 struct AranyaExtError *__ext_err);
1427
1437
1446
1459 struct AranyaSyncPeerConfig *out);
1460
1473 struct AranyaSyncPeerConfig *out,
1474 struct AranyaExtError *__ext_err);
1475
1489 AranyaDuration interval);
1490
1504 AranyaDuration interval,
1505 struct AranyaExtError *__ext_err);
1506
1519
1532 struct AranyaExtError *__ext_err);
1533
1546
1559 struct AranyaExtError *__ext_err);
1560
1561#if defined(ENABLE_ARANYA_PREVIEW)
1572AranyaError aranya_sync_peer_config_builder_set_sync_on_hello(struct AranyaSyncPeerConfigBuilder *cfg,
1573 uint32_t sync_on_hello);
1574#endif
1575
1576#if defined(ENABLE_ARANYA_PREVIEW)
1587AranyaError aranya_sync_peer_config_builder_set_sync_on_hello_ext(struct AranyaSyncPeerConfigBuilder *cfg,
1588 uint32_t sync_on_hello,
1589 struct AranyaExtError *__ext_err);
1590#endif
1591
1617 const struct AranyaTeamId *team,
1618 const struct AranyaRoleId *owning_role,
1619 struct AranyaRole *roles_out,
1620 size_t *roles_len);
1621
1647 const struct AranyaTeamId *team,
1648 const struct AranyaRoleId *owning_role,
1649 struct AranyaRole *roles_out,
1650 size_t *roles_len,
1651 struct AranyaExtError *__ext_err);
1652
1653#if defined(ENABLE_ARANYA_PREVIEW)
1664AranyaError aranya_add_role_owner(const struct AranyaClient *client,
1665 const struct AranyaTeamId *team,
1666 const struct AranyaRoleId *role,
1667 const struct AranyaRoleId *owning_role);
1668#endif
1669
1670#if defined(ENABLE_ARANYA_PREVIEW)
1681AranyaError aranya_add_role_owner_ext(const struct AranyaClient *client,
1682 const struct AranyaTeamId *team,
1683 const struct AranyaRoleId *role,
1684 const struct AranyaRoleId *owning_role,
1685 struct AranyaExtError *__ext_err);
1686#endif
1687
1688#if defined(ENABLE_ARANYA_PREVIEW)
1699AranyaError aranya_remove_role_owner(const struct AranyaClient *client,
1700 const struct AranyaTeamId *team,
1701 const struct AranyaRoleId *role,
1702 const struct AranyaRoleId *owning_role);
1703#endif
1704
1705#if defined(ENABLE_ARANYA_PREVIEW)
1716AranyaError aranya_remove_role_owner_ext(const struct AranyaClient *client,
1717 const struct AranyaTeamId *team,
1718 const struct AranyaRoleId *role,
1719 const struct AranyaRoleId *owning_role,
1720 struct AranyaExtError *__ext_err);
1721#endif
1722
1739 const struct AranyaTeamId *team,
1740 const struct AranyaRoleId *role,
1741 struct AranyaRole *roles_out,
1742 size_t *roles_len);
1743
1760 const struct AranyaTeamId *team,
1761 const struct AranyaRoleId *role,
1762 struct AranyaRole *roles_out,
1763 size_t *roles_len,
1764 struct AranyaExtError *__ext_err);
1765
1766#if defined(ENABLE_ARANYA_PREVIEW)
1778AranyaError aranya_assign_role_management_permission(const struct AranyaClient *client,
1779 const struct AranyaTeamId *team,
1780 const struct AranyaRoleId *role,
1781 const struct AranyaRoleId *managing_role,
1782 AranyaRoleManagementPermission perm);
1783#endif
1784
1785#if defined(ENABLE_ARANYA_PREVIEW)
1797AranyaError aranya_assign_role_management_permission_ext(const struct AranyaClient *client,
1798 const struct AranyaTeamId *team,
1799 const struct AranyaRoleId *role,
1800 const struct AranyaRoleId *managing_role,
1801 AranyaRoleManagementPermission perm,
1802 struct AranyaExtError *__ext_err);
1803#endif
1804
1805#if defined(ENABLE_ARANYA_PREVIEW)
1817AranyaError aranya_revoke_role_management_permission(const struct AranyaClient *client,
1818 const struct AranyaTeamId *team,
1819 const struct AranyaRoleId *role,
1820 const struct AranyaRoleId *managing_role,
1821 AranyaRoleManagementPermission perm);
1822#endif
1823
1824#if defined(ENABLE_ARANYA_PREVIEW)
1836AranyaError aranya_revoke_role_management_permission_ext(const struct AranyaClient *client,
1837 const struct AranyaTeamId *team,
1838 const struct AranyaRoleId *role,
1839 const struct AranyaRoleId *managing_role,
1840 AranyaRoleManagementPermission perm,
1841 struct AranyaExtError *__ext_err);
1842#endif
1843
1860 const struct AranyaTeamId *team,
1861 const struct AranyaDeviceId *device,
1862 const struct AranyaRoleId *old_role,
1863 const struct AranyaRoleId *new_role);
1864
1881 const struct AranyaTeamId *team,
1882 const struct AranyaDeviceId *device,
1883 const struct AranyaRoleId *old_role,
1884 const struct AranyaRoleId *new_role,
1885 struct AranyaExtError *__ext_err);
1886
1902 const struct AranyaTeamId *team,
1903 struct AranyaRole *roles_out,
1904 size_t *roles_out_len);
1905
1921 const struct AranyaTeamId *team,
1922 struct AranyaRole *roles_out,
1923 size_t *roles_out_len,
1924 struct AranyaExtError *__ext_err);
1925
1926#if defined(ENABLE_ARANYA_PREVIEW)
1942AranyaError aranya_create_role(const struct AranyaClient *client,
1943 const struct AranyaTeamId *team,
1944 AranyaRoleName role_name,
1945 const struct AranyaRoleId *owning_role,
1946 struct AranyaRole *role_out);
1947#endif
1948
1949#if defined(ENABLE_ARANYA_PREVIEW)
1965AranyaError aranya_create_role_ext(const struct AranyaClient *client,
1966 const struct AranyaTeamId *team,
1967 AranyaRoleName role_name,
1968 const struct AranyaRoleId *owning_role,
1969 struct AranyaRole *role_out,
1970 struct AranyaExtError *__ext_err);
1971#endif
1972
1973#if defined(ENABLE_ARANYA_PREVIEW)
1988AranyaError aranya_delete_role(const struct AranyaClient *client,
1989 const struct AranyaTeamId *team,
1990 const struct AranyaRoleId *role);
1991#endif
1992
1993#if defined(ENABLE_ARANYA_PREVIEW)
2008AranyaError aranya_delete_role_ext(const struct AranyaClient *client,
2009 const struct AranyaTeamId *team,
2010 const struct AranyaRoleId *role,
2011 struct AranyaExtError *__ext_err);
2012#endif
2013
2014#if defined(ENABLE_ARANYA_PREVIEW)
2027AranyaError aranya_add_perm_to_role(const struct AranyaClient *client,
2028 const struct AranyaTeamId *team,
2029 const struct AranyaRoleId *role,
2030 AranyaPermission perm);
2031#endif
2032
2033#if defined(ENABLE_ARANYA_PREVIEW)
2046AranyaError aranya_add_perm_to_role_ext(const struct AranyaClient *client,
2047 const struct AranyaTeamId *team,
2048 const struct AranyaRoleId *role,
2049 AranyaPermission perm,
2050 struct AranyaExtError *__ext_err);
2051#endif
2052
2053#if defined(ENABLE_ARANYA_PREVIEW)
2066AranyaError aranya_remove_perm_from_role(const struct AranyaClient *client,
2067 const struct AranyaTeamId *team,
2068 const struct AranyaRoleId *role,
2069 AranyaPermission perm);
2070#endif
2071
2072#if defined(ENABLE_ARANYA_PREVIEW)
2085AranyaError aranya_remove_perm_from_role_ext(const struct AranyaClient *client,
2086 const struct AranyaTeamId *team,
2087 const struct AranyaRoleId *role,
2088 AranyaPermission perm,
2089 struct AranyaExtError *__ext_err);
2090#endif
2091
2111 const struct AranyaTeamId *team,
2112 const struct AranyaDeviceId *device,
2113 const struct AranyaRoleId *role_id);
2114
2134 const struct AranyaTeamId *team,
2135 const struct AranyaDeviceId *device,
2136 const struct AranyaRoleId *role_id,
2137 struct AranyaExtError *__ext_err);
2138
2152 const struct AranyaTeamId *team,
2153 const struct AranyaDeviceId *device,
2154 const struct AranyaRoleId *role_id);
2155
2169 const struct AranyaTeamId *team,
2170 const struct AranyaDeviceId *device,
2171 const struct AranyaRoleId *role_id,
2172 struct AranyaExtError *__ext_err);
2173
2187 const struct AranyaTeamId *team,
2188 AranyaLabelName name,
2189 const struct AranyaRoleId *managing_role_id,
2190 struct AranyaLabelId *__output);
2191
2205 const struct AranyaTeamId *team,
2206 AranyaLabelName name,
2207 const struct AranyaRoleId *managing_role_id,
2208 struct AranyaLabelId *__output,
2209 struct AranyaExtError *__ext_err);
2210
2223 const struct AranyaTeamId *team,
2224 const struct AranyaLabelId *label_id);
2225
2238 const struct AranyaTeamId *team,
2239 const struct AranyaLabelId *label_id,
2240 struct AranyaExtError *__ext_err);
2241
2255 const struct AranyaTeamId *team,
2256 const struct AranyaDeviceId *device,
2257 const struct AranyaLabelId *label_id,
2258 AranyaChanOp op);
2259
2273 const struct AranyaTeamId *team,
2274 const struct AranyaDeviceId *device,
2275 const struct AranyaLabelId *label_id,
2276 AranyaChanOp op,
2277 struct AranyaExtError *__ext_err);
2278
2292 const struct AranyaTeamId *team,
2293 const struct AranyaDeviceId *device,
2294 const struct AranyaLabelId *label_id);
2295
2309 const struct AranyaTeamId *team,
2310 const struct AranyaDeviceId *device,
2311 const struct AranyaLabelId *label_id,
2312 struct AranyaExtError *__ext_err);
2313
2314#if defined(ENABLE_ARANYA_PREVIEW)
2327AranyaError aranya_add_label_managing_role(const struct AranyaClient *client,
2328 const struct AranyaTeamId *team,
2329 const struct AranyaLabelId *label_id,
2330 const struct AranyaRoleId *managing_role_id);
2331#endif
2332
2333#if defined(ENABLE_ARANYA_PREVIEW)
2346AranyaError aranya_add_label_managing_role_ext(const struct AranyaClient *client,
2347 const struct AranyaTeamId *team,
2348 const struct AranyaLabelId *label_id,
2349 const struct AranyaRoleId *managing_role_id,
2350 struct AranyaExtError *__ext_err);
2351#endif
2352
2363 const struct AranyaCreateTeamConfig *cfg,
2364 struct AranyaTeamId *__output);
2365
2376 const struct AranyaCreateTeamConfig *cfg,
2377 struct AranyaTeamId *__output,
2378 struct AranyaExtError *__ext_err);
2379
2392 uint8_t *buf,
2393 size_t buf_len);
2394
2407 uint8_t *buf,
2408 size_t buf_len,
2409 struct AranyaExtError *__ext_err);
2410
2432 const struct AranyaTeamId *team_id,
2433 const uint8_t *keybundle,
2434 size_t keybundle_len,
2435 uint8_t *seed,
2436 size_t *seed_len);
2437
2459 const struct AranyaTeamId *team_id,
2460 const uint8_t *keybundle,
2461 size_t keybundle_len,
2462 uint8_t *seed,
2463 size_t *seed_len,
2464 struct AranyaExtError *__ext_err);
2465
2475 const struct AranyaAddTeamConfig *cfg);
2476
2486 const struct AranyaAddTeamConfig *cfg,
2487 struct AranyaExtError *__ext_err);
2488
2498 const struct AranyaTeamId *team);
2499
2509 const struct AranyaTeamId *team,
2510 struct AranyaExtError *__ext_err);
2511
2521 const struct AranyaTeamId *team);
2522
2532 const struct AranyaTeamId *team,
2533 struct AranyaExtError *__ext_err);
2534
2549 const struct AranyaTeamId *team,
2550 const uint8_t *keybundle,
2551 size_t keybundle_len,
2552 const struct AranyaRoleId *role_id);
2553
2568 const struct AranyaTeamId *team,
2569 const uint8_t *keybundle,
2570 size_t keybundle_len,
2571 const struct AranyaRoleId *role_id,
2572 struct AranyaExtError *__ext_err);
2573
2586 const struct AranyaTeamId *team,
2587 const struct AranyaDeviceId *device);
2588
2601 const struct AranyaTeamId *team,
2602 const struct AranyaDeviceId *device,
2603 struct AranyaExtError *__ext_err);
2604
2620 const struct AranyaTeamId *team,
2621 AranyaAddr addr,
2622 const struct AranyaSyncPeerConfig *config);
2623
2639 const struct AranyaTeamId *team,
2640 AranyaAddr addr,
2641 const struct AranyaSyncPeerConfig *config,
2642 struct AranyaExtError *__ext_err);
2643
2654 const struct AranyaTeamId *team,
2655 AranyaAddr addr);
2656
2667 const struct AranyaTeamId *team,
2668 AranyaAddr addr,
2669 struct AranyaExtError *__ext_err);
2670
2671#if defined(ENABLE_ARANYA_PREVIEW)
2686AranyaError aranya_sync_hello_subscribe(const struct AranyaClient *client,
2687 const struct AranyaTeamId *team,
2688 AranyaAddr peer,
2689 AranyaDuration graph_change_delay,
2690 AranyaDuration duration,
2691 AranyaDuration schedule_delay);
2692#endif
2693
2694#if defined(ENABLE_ARANYA_PREVIEW)
2709AranyaError aranya_sync_hello_subscribe_ext(const struct AranyaClient *client,
2710 const struct AranyaTeamId *team,
2711 AranyaAddr peer,
2712 AranyaDuration graph_change_delay,
2713 AranyaDuration duration,
2714 AranyaDuration schedule_delay,
2715 struct AranyaExtError *__ext_err);
2716#endif
2717
2718#if defined(ENABLE_ARANYA_PREVIEW)
2730AranyaError aranya_sync_hello_unsubscribe(const struct AranyaClient *client,
2731 const struct AranyaTeamId *team,
2732 AranyaAddr peer);
2733#endif
2734
2735#if defined(ENABLE_ARANYA_PREVIEW)
2747AranyaError aranya_sync_hello_unsubscribe_ext(const struct AranyaClient *client,
2748 const struct AranyaTeamId *team,
2749 AranyaAddr peer,
2750 struct AranyaExtError *__ext_err);
2751#endif
2752
2774 const struct AranyaTeamId *team,
2775 AranyaAddr addr,
2776 const struct AranyaSyncPeerConfig *config);
2777
2799 const struct AranyaTeamId *team,
2800 AranyaAddr addr,
2801 const struct AranyaSyncPeerConfig *config,
2802 struct AranyaExtError *__ext_err);
2803
2815 const struct AranyaTeamId *team,
2816 struct AranyaDeviceId *devices,
2817 size_t *devices_len);
2818
2830 const struct AranyaTeamId *team,
2831 struct AranyaDeviceId *devices,
2832 size_t *devices_len,
2833 struct AranyaExtError *__ext_err);
2834
2848 const struct AranyaTeamId *team,
2849 const struct AranyaDeviceId *device,
2850 struct AranyaRole *role_out,
2851 bool *has_role);
2852
2866 const struct AranyaTeamId *team,
2867 const struct AranyaDeviceId *device,
2868 struct AranyaRole *role_out,
2869 bool *has_role,
2870 struct AranyaExtError *__ext_err);
2871
2884 const struct AranyaTeamId *team,
2885 const struct AranyaDeviceId *device,
2886 uint8_t *keybundle,
2887 size_t *keybundle_len);
2888
2901 const struct AranyaTeamId *team,
2902 const struct AranyaDeviceId *device,
2903 uint8_t *keybundle,
2904 size_t *keybundle_len,
2905 struct AranyaExtError *__ext_err);
2906
2923 const struct AranyaTeamId *team,
2924 const struct AranyaDeviceId *device,
2925 struct AranyaLabelId *labels,
2926 size_t *labels_len);
2927
2944 const struct AranyaTeamId *team,
2945 const struct AranyaDeviceId *device,
2946 struct AranyaLabelId *labels,
2947 size_t *labels_len,
2948 struct AranyaExtError *__ext_err);
2949
2965 const struct AranyaTeamId *team,
2966 struct AranyaLabelId *labels,
2967 size_t *labels_len);
2968
2984 const struct AranyaTeamId *team,
2985 struct AranyaLabelId *labels,
2986 size_t *labels_len,
2987 struct AranyaExtError *__ext_err);
2988
3001 const struct AranyaTeamId *team,
3002 const struct AranyaLabelId *label,
3003 bool *__output);
3004
3017 const struct AranyaTeamId *team,
3018 const struct AranyaLabelId *label,
3019 bool *__output,
3020 struct AranyaExtError *__ext_err);
3021
3022#if defined(ENABLE_ARANYA_AFC)
3031#endif
3032
3033#if defined(ENABLE_ARANYA_AFC)
3042#endif
3043
3044#if defined(ENABLE_ARANYA_AFC)
3053#endif
3054
3055#if defined(ENABLE_ARANYA_AFC)
3064#endif
3065
3066#if defined(ENABLE_ARANYA_AFC)
3087 const struct AranyaTeamId *team_id,
3088 const struct AranyaDeviceId *peer_id,
3089 const struct AranyaLabelId *label_id,
3090 struct AranyaAfcSendChannel *channel,
3091 struct AranyaAfcCtrlMsg *control);
3092#endif
3093
3094#if defined(ENABLE_ARANYA_AFC)
3115 const struct AranyaTeamId *team_id,
3116 const struct AranyaDeviceId *peer_id,
3117 const struct AranyaLabelId *label_id,
3118 struct AranyaAfcSendChannel *channel,
3119 struct AranyaAfcCtrlMsg *control,
3120 struct AranyaExtError *__ext_err);
3121#endif
3122
3123#if defined(ENABLE_ARANYA_AFC)
3136 const struct AranyaTeamId *team_id,
3137 const uint8_t *control,
3138 size_t control_len,
3139 struct AranyaAfcReceiveChannel *channel);
3140#endif
3141
3142#if defined(ENABLE_ARANYA_AFC)
3155 const struct AranyaTeamId *team_id,
3156 const uint8_t *control,
3157 size_t control_len,
3158 struct AranyaAfcReceiveChannel *channel,
3159 struct AranyaExtError *__ext_err);
3160#endif
3161
3162#if defined(ENABLE_ARANYA_AFC)
3170 struct AranyaLabelId *__output);
3171#endif
3172
3173#if defined(ENABLE_ARANYA_AFC)
3181 struct AranyaLabelId *__output,
3182 struct AranyaExtError *__ext_err);
3183#endif
3184
3185#if defined(ENABLE_ARANYA_AFC)
3193 struct AranyaAfcChannelId *__output);
3194#endif
3195
3196#if defined(ENABLE_ARANYA_AFC)
3204 struct AranyaAfcChannelId *__output,
3205 struct AranyaExtError *__ext_err);
3206#endif
3207
3208#if defined(ENABLE_ARANYA_AFC)
3216 struct AranyaDeviceId *__output);
3217#endif
3218
3219#if defined(ENABLE_ARANYA_AFC)
3227 struct AranyaDeviceId *__output,
3228 struct AranyaExtError *__ext_err);
3229#endif
3230
3231#if defined(ENABLE_ARANYA_AFC)
3239 struct AranyaLabelId *__output);
3240#endif
3241
3242#if defined(ENABLE_ARANYA_AFC)
3250 struct AranyaLabelId *__output,
3251 struct AranyaExtError *__ext_err);
3252#endif
3253
3254#if defined(ENABLE_ARANYA_AFC)
3262 struct AranyaAfcChannelId *__output);
3263#endif
3264
3265#if defined(ENABLE_ARANYA_AFC)
3273 struct AranyaAfcChannelId *__output,
3274 struct AranyaExtError *__ext_err);
3275#endif
3276
3277#if defined(ENABLE_ARANYA_AFC)
3285 struct AranyaDeviceId *__output);
3286#endif
3287
3288#if defined(ENABLE_ARANYA_AFC)
3296 struct AranyaDeviceId *__output,
3297 struct AranyaExtError *__ext_err);
3298#endif
3299
3300#if defined(ENABLE_ARANYA_AFC)
3311 const uint8_t **ptr,
3312 size_t *len);
3313#endif
3314
3315#if defined(ENABLE_ARANYA_AFC)
3326 const uint8_t **ptr,
3327 size_t *len,
3328 struct AranyaExtError *__ext_err);
3329#endif
3330
3331#if defined(ENABLE_ARANYA_AFC)
3340 const struct AranyaAfcSeq *seq2,
3341 int *__output);
3342#endif
3343
3344#if defined(ENABLE_ARANYA_AFC)
3353 const struct AranyaAfcSeq *seq2,
3354 int *__output,
3355 struct AranyaExtError *__ext_err);
3356#endif
3357
3358#if defined(ENABLE_ARANYA_AFC)
3370 const uint8_t *plaintext,
3371 size_t plaintext_len,
3372 uint8_t *dst,
3373 size_t *dst_len);
3374#endif
3375
3376#if defined(ENABLE_ARANYA_AFC)
3388 const uint8_t *plaintext,
3389 size_t plaintext_len,
3390 uint8_t *dst,
3391 size_t *dst_len,
3392 struct AranyaExtError *__ext_err);
3393#endif
3394
3395#if defined(ENABLE_ARANYA_AFC)
3408 const uint8_t *ciphertext,
3409 size_t ciphertext_len,
3410 uint8_t *dst,
3411 size_t *dst_len,
3412 struct AranyaAfcSeq *seq);
3413#endif
3414
3415#if defined(ENABLE_ARANYA_AFC)
3428 const uint8_t *ciphertext,
3429 size_t ciphertext_len,
3430 uint8_t *dst,
3431 size_t *dst_len,
3432 struct AranyaAfcSeq *seq,
3433 struct AranyaExtError *__ext_err);
3434#endif
3435
3436#if defined(ENABLE_ARANYA_AFC)
3449 struct AranyaAfcSendChannel *channel);
3450#endif
3451
3452#if defined(ENABLE_ARANYA_AFC)
3465 struct AranyaAfcSendChannel *channel,
3466 struct AranyaExtError *__ext_err);
3467#endif
3468
3469#if defined(ENABLE_ARANYA_AFC)
3482 struct AranyaAfcReceiveChannel *channel);
3483#endif
3484
3485#if defined(ENABLE_ARANYA_AFC)
3498 struct AranyaAfcReceiveChannel *channel,
3499 struct AranyaExtError *__ext_err);
3500#endif
3501
3502#ifdef __cplusplus
3503} // extern "C"
3504#endif // __cplusplus
3505
3506#endif /* ARANYA_CLIENT_H */
3507
3508
const char * AranyaRoleName
A role name.
Definition aranya-client.h:619
#define ARANYA_SEED_IKM_LEN
The size in bytes of a PSK seed IKM.
Definition aranya-client.h:104
AranyaError aranya_afc_ctrl_msg_get_bytes_ext(const struct AranyaAfcCtrlMsg *control, const uint8_t **ptr, size_t *len, struct AranyaExtError *__ext_err)
Returns the raw data for a given `AranyaAfcCtrlMsg`.
AranyaError aranya_afc_channel_seal_ext(struct AranyaAfcSendChannel *channel, const uint8_t *plaintext, size_t plaintext_len, uint8_t *dst, size_t *dst_len, struct AranyaExtError *__ext_err)
Encrypts and authenticates plaintext, and writes it to dst.
AranyaError aranya_afc_ctrl_msg_get_bytes(const struct AranyaAfcCtrlMsg *control, const uint8_t **ptr, size_t *len)
Returns the raw data for a given `AranyaAfcCtrlMsg`.
#define ARANYA_ID_LEN
The size in bytes of an ID.
Definition aranya-client.h:94
uint64_t AranyaDuration
A type to represent a span of time in nanoseconds.
Definition aranya-client.h:612
AranyaError aranya_afc_send_channel_get_id(const struct AranyaAfcSendChannel *channel, struct AranyaAfcChannelId *__output)
Returns the `AranyaAfcChannelId` for the associated `AranyaAfcSendChannel`.
AranyaError aranya_afc_channel_open_ext(const struct AranyaAfcReceiveChannel *channel, const uint8_t *ciphertext, size_t ciphertext_len, uint8_t *dst, size_t *dst_len, struct AranyaAfcSeq *seq, struct AranyaExtError *__ext_err)
Decrypts and authenticates ciphertext, and writes it to dst.
AranyaError aranya_afc_send_channel_get_id_ext(const struct AranyaAfcSendChannel *channel, struct AranyaAfcChannelId *__output, struct AranyaExtError *__ext_err)
Returns the `AranyaAfcChannelId` for the associated `AranyaAfcSendChannel`.
const char * AranyaAddr
A network socket address for an Aranya client.
Definition aranya-client.h:640
AranyaError aranya_init_logging(void)
Initializes logging.
AranyaError aranya_afc_receive_channel_get_peer_id_ext(const struct AranyaAfcReceiveChannel *channel, struct AranyaDeviceId *__output, struct AranyaExtError *__ext_err)
Returns the device ID of the peer on the other side of the channel.
AranyaError aranya_afc_receive_channel_get_id(const struct AranyaAfcReceiveChannel *channel, struct AranyaAfcChannelId *__output)
Returns the `AranyaAfcChannelId` for the associated `AranyaAfcReceiveChannel`.
AranyaError aranya_afc_send_channel_get_label_id_ext(const struct AranyaAfcSendChannel *channel, struct AranyaLabelId *__output, struct AranyaExtError *__ext_err)
Returns the `AranyaLabelId` for the associated `AranyaAfcSendChannel`.
AranyaError aranya_afc_receive_channel_get_peer_id(const struct AranyaAfcReceiveChannel *channel, struct AranyaDeviceId *__output)
Returns the device ID of the peer on the other side of the channel.
AranyaError aranya_afc_channel_seal(struct AranyaAfcSendChannel *channel, const uint8_t *plaintext, size_t plaintext_len, uint8_t *dst, size_t *dst_len)
Encrypts and authenticates plaintext, and writes it to dst.
AranyaError aranya_afc_send_channel_get_label_id(const struct AranyaAfcSendChannel *channel, struct AranyaLabelId *__output)
Returns the `AranyaLabelId` for the associated `AranyaAfcSendChannel`.
AranyaError aranya_afc_seq_cmp_ext(const struct AranyaAfcSeq *seq1, const struct AranyaAfcSeq *seq2, int *__output, struct AranyaExtError *__ext_err)
Returns the three-way comparison between seq1 and seq2.
const char * AranyaLabelName
A label name.
Definition aranya-client.h:626
AranyaError aranya_afc_send_channel_get_peer_id(const struct AranyaAfcSendChannel *channel, struct AranyaDeviceId *__output)
Returns the device ID of the peer on the other side of the channel.
AranyaError aranya_afc_seq_cmp(const struct AranyaAfcSeq *seq1, const struct AranyaAfcSeq *seq2, int *__output)
Returns the three-way comparison between seq1 and seq2.
AranyaError aranya_init_logging_ext(struct AranyaExtError *__ext_err)
Initializes logging.
AranyaError aranya_afc_receive_channel_get_label_id(const struct AranyaAfcReceiveChannel *channel, struct AranyaLabelId *__output)
Returns the `AranyaLabelId` for the associated `AranyaAfcReceiveChannel`.
AranyaError
An error code.
Definition aranya-client.h:130
@ ARANYA_ERROR_INVALID_ARGUMENT
Invalid argument.
Definition aranya-client.h:146
@ ARANYA_ERROR_CONFIG
Unable to create configuration info.
Definition aranya-client.h:185
@ ARANYA_ERROR_IPC
Could not send request to daemon.
Definition aranya-client.h:166
@ ARANYA_ERROR_INVALID_UTF8
Invalid UTF-8.
Definition aranya-client.h:158
@ ARANYA_ERROR_TIMEOUT
Timed out.
Definition aranya-client.h:142
@ ARANYA_ERROR_BUFFER_TOO_SMALL
Buffer is too small.
Definition aranya-client.h:154
@ ARANYA_ERROR_BUG
Internal bug discovered.
Definition aranya-client.h:138
@ ARANYA_ERROR_INVALID_ADDR
Invalid Address.
Definition aranya-client.h:162
@ ARANYA_ERROR_SERIALIZATION
Serialization error.
Definition aranya-client.h:189
@ ARANYA_ERROR_SUCCESS
Success.
Definition aranya-client.h:134
@ ARANYA_ERROR_NOT_ENABLED
Component is not enabled.
Definition aranya-client.h:150
@ ARANYA_ERROR_OTHER
Some other error occurred.
Definition aranya-client.h:193
@ ARANYA_ERROR_ARANYA
An Aranya error.
Definition aranya-client.h:170
@ ARANYA_ERROR_CLOSED
A connection got unexpectedly closed.
Definition aranya-client.h:181
@ ARANYA_ERROR_WOULD_BLOCK
Tried to poll an endpoint but nothing received yet.
Definition aranya-client.h:177
AranyaChanOp
Valid channel operations for a label assignment.
Definition aranya-client.h:330
@ ARANYA_CHAN_OP_SEND_ONLY
The device can only send data in channels with this label.
Definition aranya-client.h:340
@ ARANYA_CHAN_OP_SEND_RECV
The device can send or receive data in channels with this label.
Definition aranya-client.h:345
@ ARANYA_CHAN_OP_RECV_ONLY
The device can only receive data in channels with this label.
Definition aranya-client.h:335
AranyaError aranya_afc_channel_open(const struct AranyaAfcReceiveChannel *channel, const uint8_t *ciphertext, size_t ciphertext_len, uint8_t *dst, size_t *dst_len, struct AranyaAfcSeq *seq)
Decrypts and authenticates ciphertext, and writes it to dst.
AranyaError aranya_afc_send_channel_get_peer_id_ext(const struct AranyaAfcSendChannel *channel, struct AranyaDeviceId *__output, struct AranyaExtError *__ext_err)
Returns the device ID of the peer on the other side of the channel.
AranyaError aranya_afc_receive_channel_get_id_ext(const struct AranyaAfcReceiveChannel *channel, struct AranyaAfcChannelId *__output, struct AranyaExtError *__ext_err)
Returns the `AranyaAfcChannelId` for the associated `AranyaAfcReceiveChannel`.
AranyaError aranya_afc_receive_channel_get_label_id_ext(const struct AranyaAfcReceiveChannel *channel, struct AranyaLabelId *__output, struct AranyaExtError *__ext_err)
Returns the `AranyaLabelId` for the associated `AranyaAfcReceiveChannel`.
A builder for initializing an `AranyaAddTeamConfig`.
Definition aranya-client.h:527
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(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_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:560
A builder for initializing an `AranyaAddTeamQuicSyncConfig`.
Definition aranya-client.h:466
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_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_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:515
Channel ID for AFC channel.
Definition aranya-client.h:707
An AFC Control Message, used to create the other end of a channel.
Definition aranya-client.h:677
AranyaError aranya_afc_ctrl_msg_cleanup(struct AranyaAfcCtrlMsg *ptr)
Releases any resources associated with ptr.
An AFC Receiving Channel Object.
Definition aranya-client.h:660
AranyaError aranya_afc_receive_channel_cleanup(struct AranyaAfcReceiveChannel *ptr)
Releases any resources associated with ptr.
An AFC Sending Channel Object.
Definition aranya-client.h:646
AranyaError aranya_afc_send_channel_cleanup(struct AranyaAfcSendChannel *ptr)
Releases any resources associated with ptr.
An AFC Sequence Number, for reordering messages.
Definition aranya-client.h:693
AranyaError aranya_afc_seq_cleanup(struct AranyaAfcSeq *ptr)
Releases any resources associated with ptr.
Configuration info builder for an Aranya client config `AranyaClientConfig`.
Definition aranya-client.h:452
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_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`.
Configuration info for Aranya.
Definition aranya-client.h:407
A handle to an Aranya Client.
Definition aranya-client.h:393
AranyaError aranya_team_labels(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaLabelId *labels, size_t *labels_len)
Query for list of existing labels.
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_afc_send_channel_delete_ext(const struct AranyaClient *client, struct AranyaAfcSendChannel *channel, struct AranyaExtError *__ext_err)
Removes an `AranyaAfcSendChannel` from use.
AranyaError aranya_afc_accept_channel_ext(const struct AranyaClient *client, const struct AranyaTeamId *team_id, const uint8_t *control, size_t control_len, struct AranyaAfcReceiveChannel *channel, struct AranyaExtError *__ext_err)
Accept a receive-only AFC channel from by a peer by processing a control message.
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_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_setup_default_roles_ext(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *owning_role, struct AranyaRole *roles_out, size_t *roles_len, struct AranyaExtError *__ext_err)
Assign a role to a device.
AranyaError aranya_delete_label(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label_id)
Delete a channel label.
AranyaError aranya_change_role_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaRoleId *old_role, const struct AranyaRoleId *new_role, struct AranyaExtError *__ext_err)
Changes the role on a device
AranyaError aranya_afc_accept_channel(const struct AranyaClient *client, const struct AranyaTeamId *team_id, const uint8_t *control, size_t control_len, struct AranyaAfcReceiveChannel *channel)
Accept a receive-only AFC channel from by a peer by processing a control message.
AranyaError aranya_revoke_role(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaRoleId *role_id)
Revoke a role from a device.
AranyaError aranya_team_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_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_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_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_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_add_device_to_team_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const uint8_t *keybundle, size_t keybundle_len, const struct AranyaRoleId *role_id, struct AranyaExtError *__ext_err)
Add a device to the team with the default role.
AranyaError aranya_team_devices_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_client_cleanup(struct AranyaClient *ptr)
Releases any resources associated with ptr.
AranyaError aranya_team_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_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_team_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_team_roles(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaRole *roles_out, size_t *roles_out_len)
Returns all of the roles for this team.
AranyaError aranya_remove_team(const struct AranyaClient *client, const struct AranyaTeamId *team)
Remove a team from local device storage.
AranyaError aranya_team_device_role_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, struct AranyaRole *role_out, bool *has_role, struct AranyaExtError *__ext_err)
Returns the role assigned to the device, if any.
AranyaError aranya_team_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_remove_device_from_team(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device)
Remove a device from the team.
AranyaError aranya_close_team(const struct AranyaClient *client, const struct AranyaTeamId *team)
Close the team and stop all operations on the graph.
AranyaError aranya_team_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_team_devices(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaDeviceId *devices, size_t *devices_len)
Query devices on team.
AranyaError aranya_afc_create_channel_ext(const struct AranyaClient *client, const struct AranyaTeamId *team_id, const struct AranyaDeviceId *peer_id, const struct AranyaLabelId *label_id, struct AranyaAfcSendChannel *channel, struct AranyaAfcCtrlMsg *control, struct AranyaExtError *__ext_err)
Create a send-only AFC channel between this device and a peer.
AranyaError aranya_afc_create_channel(const struct AranyaClient *client, const struct AranyaTeamId *team_id, const struct AranyaDeviceId *peer_id, const struct AranyaLabelId *label_id, struct AranyaAfcSendChannel *channel, struct AranyaAfcCtrlMsg *control)
Create a send-only AFC channel between this device and a peer.
AranyaError aranya_add_device_to_team(const struct AranyaClient *client, const struct AranyaTeamId *team, const uint8_t *keybundle, size_t keybundle_len, const struct AranyaRoleId *role_id)
Add a device to the team with the default role.
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_get_key_bundle(const struct AranyaClient *client, uint8_t *keybundle, size_t *keybundle_len)
Gets the public key bundle for this device.
AranyaError aranya_team_label_exists(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label, bool *__output)
Query if a label exists.
AranyaError aranya_afc_receive_channel_delete(const struct AranyaClient *client, struct AranyaAfcReceiveChannel *channel)
Removes an `AranyaAfcReceiveChannel` from use.
AranyaError aranya_role_owners_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role, struct AranyaRole *roles_out, size_t *roles_len, struct AranyaExtError *__ext_err)
Returns the roles that own role.
AranyaError aranya_team_device_role(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, struct AranyaRole *role_out, bool *has_role)
Returns the role assigned to the device, if any.
AranyaError aranya_assign_role(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaRoleId *role_id)
Assign a role to a device.
AranyaError aranya_rand(const struct AranyaClient *client, uint8_t *buf, size_t buf_len)
Return random bytes from Aranya's CSPRNG.
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_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_get_device_id(const struct AranyaClient *client, struct AranyaDeviceId *__output)
Gets the public device ID.
AranyaError aranya_team_roles_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaRole *roles_out, size_t *roles_out_len, struct AranyaExtError *__ext_err)
Returns all of the roles for this team.
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_afc_receive_channel_delete_ext(const struct AranyaClient *client, struct AranyaAfcReceiveChannel *channel, struct AranyaExtError *__ext_err)
Removes an `AranyaAfcReceiveChannel` from use.
AranyaError aranya_add_team(const struct AranyaClient *client, const struct AranyaAddTeamConfig *cfg)
Add a team to the local device store.
AranyaError aranya_role_owners(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role, struct AranyaRole *roles_out, size_t *roles_len)
Returns the roles that own role.
AranyaError aranya_setup_default_roles(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *owning_role, struct AranyaRole *roles_out, size_t *roles_len)
Assign a role to a device.
AranyaError aranya_change_role(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaRoleId *old_role, const struct AranyaRoleId *new_role)
Changes the role on a device
AranyaError aranya_get_device_id_ext(const struct AranyaClient *client, struct AranyaDeviceId *__output, struct AranyaExtError *__ext_err)
Gets the public device ID.
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 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_assign_role_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaRoleId *role_id, struct AranyaExtError *__ext_err)
Assign a role to a device.
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_revoke_role_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaRoleId *role_id, struct AranyaExtError *__ext_err)
Revoke a role from a device.
AranyaError aranya_afc_send_channel_delete(const struct AranyaClient *client, struct AranyaAfcSendChannel *channel)
Removes an `AranyaAfcSendChannel` from use.
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_team_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_create_label_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaLabelName name, const struct AranyaRoleId *managing_role_id, struct AranyaLabelId *__output, struct AranyaExtError *__ext_err)
Create a channel label.
AranyaError aranya_create_label(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaLabelName name, const struct AranyaRoleId *managing_role_id, struct AranyaLabelId *__output)
Create a channel label.
A builder for initializing a `AranyaCreateTeamConfig`.
Definition aranya-client.h:539
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_build_ext(struct AranyaCreateTeamConfigBuilder *cfg, struct AranyaCreateTeamConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct a `AranyaCreateTeamConfig`.
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:574
A builder for initializing a `AranyaCreateTeamQuicSyncConfig`.
Definition aranya-client.h:480
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_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_generate(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg)
Attempts to set PSK seed generation mode value on `AranyaCreateTeamQuicSyncConfigBuilder`.
QUIC syncer configuration.
Definition aranya-client.h:501
Device ID.
Definition aranya-client.h:445
Functions suffixed with _ext accept an extra struct AranyaExtError *ext_err parameter for extended er...
Definition aranya-client.h:381
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_cleanup(struct AranyaExtError *ptr)
Releases any resources associated with ptr.
Cryptographically secure Aranya ID.
Definition aranya-client.h:431
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:631
Uniquely identifies a `AranyaRole`.
Definition aranya-client.h:438
A role.
Definition aranya-client.h:419
AranyaError aranya_role_get_author(const struct AranyaRole *role, struct AranyaDeviceId *__output)
Get the author of a role.
AranyaError aranya_role_get_id_ext(const struct AranyaRole *role, struct AranyaRoleId *__output, struct AranyaExtError *__ext_err)
Get ID of role.
AranyaError aranya_role_cleanup(struct AranyaRole *ptr)
Releases any resources associated with ptr.
AranyaError aranya_role_get_name(const struct AranyaRole *role, const char **__output)
Get name of role.
AranyaError aranya_role_get_id(const struct AranyaRole *role, struct AranyaRoleId *__output)
Get ID of role.
AranyaError aranya_role_get_author_ext(const struct AranyaRole *role, struct AranyaDeviceId *__output, struct AranyaExtError *__ext_err)
Get the author of a role.
Raw PSK seed IKM for QUIC syncer.
Definition aranya-client.h:492
Builder for a Sync Peer config `AranyaSyncPeerConfig`.
Definition aranya-client.h:586
AranyaError aranya_sync_peer_config_builder_cleanup(struct AranyaSyncPeerConfigBuilder *ptr)
Releases any resources associated with ptr.
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 so the peer will be scheduled for an immediate sync when added.
AranyaError aranya_sync_peer_config_builder_set_sync_now(struct AranyaSyncPeerConfigBuilder *cfg)
Updates the config so the peer will be scheduled for an immediate sync when added.
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 so the peer will be scheduled for an immediate sync when added.
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_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 so the peer will be scheduled for an immediate sync when added.
Sync Peer config.
Definition aranya-client.h:600
Team ID.
Definition aranya-client.h:551