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#if !defined(ARANYA_DEPRECATED)
83 #if __has_attribute(deprecated)
84 #define ARANYA_DEPRECATED __attribute__((deprecated))
85 #define ARANYA_DEPRECATED_MSG(msg) __attribute__((deprecated(msg)))
86 #else
87 #define ARANYA_DEPRECATED
88 #define ARANYA_DEPRECATED_MSG(msg)
89 #endif
90#endif /* ARANYA_DEPRECATED */
91
92
93#define ARANYA_DURATION_SECONDS (1000 * ARANYA_DURATION_MILLISECONDS)
94
95#define ARANYA_DURATION_MILLISECONDS (1000 * ARANYA_DURATION_MICROSECONDS)
96
97#define ARANYA_DURATION_MICROSECONDS (1000 * ARANYA_DURATION_NANOSECONDS)
98
99#define ARANYA_DURATION_NANOSECONDS 1
100
104#define ARANYA_ID_LEN 32
105
109#define DEFAULT_ROLES_LEN 3
110
114#define ARANYA_SEED_IKM_LEN 32
115
119#define ARANYA_ID_STR_LEN (((ARANYA_ID_LEN * 1375) / 1000) + 1)
120
121#if defined(ENABLE_ARANYA_AFC)
128#define ARANYA_AFC_CHANNEL_OVERHEAD 24
129#endif
130
205#ifndef __cplusplus
206typedef uint32_t AranyaError;
207#endif // __cplusplus
208
209#if defined(ENABLE_ARANYA_PREVIEW)
213enum AranyaRoleManagementPermission
214#ifdef __cplusplus
215 : uint8_t
216#endif // __cplusplus
217 {
222 ARANYA_ROLE_MANAGEMENT_PERMISSION_CAN_ASSIGN_ROLE,
227 ARANYA_ROLE_MANAGEMENT_PERMISSION_CAN_REVOKE_ROLE,
232 ARANYA_ROLE_MANAGEMENT_PERMISSION_CAN_CHANGE_ROLE_PERMS,
233};
234#ifndef __cplusplus
235typedef uint8_t AranyaRoleManagementPermission;
236#endif // __cplusplus
237#endif
238
239#if defined(ENABLE_ARANYA_PREVIEW)
243enum AranyaPermission
244#ifdef __cplusplus
245 : uint8_t
246#endif // __cplusplus
247 {
251 ARANYA_PERMISSION_ADD_DEVICE,
255 ARANYA_PERMISSION_REMOVE_DEVICE,
260 ARANYA_PERMISSION_TERMINATE_TEAM,
264 ARANYA_PERMISSION_CREATE_ROLE,
268 ARANYA_PERMISSION_DELETE_ROLE,
272 ARANYA_PERMISSION_ASSIGN_ROLE,
276 ARANYA_PERMISSION_REVOKE_ROLE,
280 ARANYA_PERMISSION_CHANGE_ROLE_MANAGEMENT_PERMS,
286 ARANYA_PERMISSION_SETUP_DEFAULT_ROLE,
291 ARANYA_PERMISSION_CHANGE_ROLE_MANAGING_ROLE,
295 ARANYA_PERMISSION_CREATE_LABEL,
299 ARANYA_PERMISSION_DELETE_LABEL,
305 ARANYA_PERMISSION_CHANGE_LABEL_MANAGING_ROLE,
311 ARANYA_PERMISSION_ASSIGN_LABEL,
317 ARANYA_PERMISSION_REVOKE_LABEL,
322 ARANYA_PERMISSION_CAN_USE_AFC,
326 ARANYA_PERMISSION_CREATE_AFC_UNI_CHANNEL,
327};
328#ifndef __cplusplus
329typedef uint8_t AranyaPermission;
330#endif // __cplusplus
331#endif
332
337#ifdef __cplusplus
338 : uint8_t
339#endif // __cplusplus
340 {
356};
357#ifndef __cplusplus
358typedef uint8_t AranyaChanOp;
359#endif // __cplusplus
360
391typedef struct ARANYA_ALIGNED(8) AranyaExtError {
397 uint8_t __for_size_only[96];
399
403typedef struct ARANYA_ALIGNED(16) AranyaClient {
409 uint8_t __for_size_only[3728];
411
417typedef struct ARANYA_ALIGNED(8) AranyaClientConfig {
423 uint8_t __for_size_only[56];
425
429typedef struct ARANYA_ALIGNED(8) AranyaRole {
435 uint8_t __for_size_only[112];
437
441typedef struct AranyaId {
442 uint8_t bytes[ARANYA_ID_LEN];
444
448typedef struct AranyaRoleId {
449 struct AranyaId id;
451
455typedef struct AranyaDeviceId {
456 struct AranyaId id;
458
462typedef struct ARANYA_ALIGNED(8) AranyaClientConfigBuilder {
468 uint8_t __for_size_only[72];
470
476typedef struct ARANYA_ALIGNED(8) AranyaAddTeamQuicSyncConfigBuilder {
482 uint8_t __for_size_only[288];
484
490typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamQuicSyncConfigBuilder {
496 uint8_t __for_size_only[56];
498
502typedef struct AranyaSeedIkm {
503 uint8_t bytes[ARANYA_SEED_IKM_LEN];
505
511typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamQuicSyncConfig {
517 uint8_t __for_size_only[56];
519
525typedef struct ARANYA_ALIGNED(8) AranyaAddTeamQuicSyncConfig {
531 uint8_t __for_size_only[288];
533
537typedef struct ARANYA_ALIGNED(8) AranyaAddTeamConfigBuilder {
543 uint8_t __for_size_only[328];
545
549typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamConfigBuilder {
555 uint8_t __for_size_only[56];
557
561typedef struct AranyaTeamId {
562 struct AranyaId id;
564
570typedef struct ARANYA_ALIGNED(8) AranyaAddTeamConfig {
576 uint8_t __for_size_only[320];
578
584typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamConfig {
590 uint8_t __for_size_only[56];
592
596typedef struct ARANYA_ALIGNED(8) AranyaSyncPeerConfigBuilder {
602 uint8_t __for_size_only[40];
604
610typedef struct ARANYA_ALIGNED(8) AranyaSyncPeerConfig {
616 uint8_t __for_size_only[40];
618
622typedef uint64_t AranyaDuration;
623
624#if defined(ENABLE_ARANYA_PREVIEW)
628typedef struct ARANYA_ALIGNED(8) AranyaHelloSubscriptionConfigBuilder {
634 uint8_t __for_size_only[40];
635} AranyaHelloSubscriptionConfigBuilder;
636#endif
637
638#if defined(ENABLE_ARANYA_PREVIEW)
644typedef struct ARANYA_ALIGNED(8) AranyaHelloSubscriptionConfig {
650 uint8_t __for_size_only[40];
651} AranyaHelloSubscriptionConfig;
652#endif
653
659typedef const char *AranyaRoleName;
660
666typedef const char *AranyaLabelName;
667
671typedef struct AranyaLabelId {
672 struct AranyaId id;
674
680typedef const char *AranyaAddr;
681
682#if defined(ENABLE_ARANYA_AFC)
686typedef struct ARANYA_ALIGNED(8) AranyaAfcSendChannel {
692 uint8_t __for_size_only[160];
694#endif
695
696#if defined(ENABLE_ARANYA_AFC)
700typedef struct ARANYA_ALIGNED(8) AranyaAfcReceiveChannel {
706 uint8_t __for_size_only[160];
708#endif
709
710#if defined(ENABLE_ARANYA_AFC)
717typedef struct ARANYA_ALIGNED(8) AranyaAfcCtrlMsg {
723 uint8_t __for_size_only[32];
725#endif
726
727#if defined(ENABLE_ARANYA_AFC)
733typedef struct ARANYA_ALIGNED(8) AranyaAfcSeq {
739 uint8_t __for_size_only[24];
741#endif
742
743#if defined(ENABLE_ARANYA_AFC)
747typedef struct AranyaAfcChannelId {
748 struct AranyaId id;
750#endif
751
752#ifdef __cplusplus
753extern "C" {
754#endif // __cplusplus
755
765const char *aranya_error_to_str(uint32_t err);
766
776
785
806 char *msg,
807 size_t *msg_len);
808
829 char *msg,
830 size_t *msg_len,
831 struct AranyaExtError *__ext_err);
832
842 const struct AranyaClientConfig *config);
843
853 const struct AranyaClientConfig *config,
854 struct AranyaExtError *__ext_err);
855
864
873
882 struct AranyaRoleId *__output);
883
892 struct AranyaRoleId *__output,
893 struct AranyaExtError *__ext_err);
894
905 const char **__output);
906
915 struct AranyaDeviceId *__output);
916
925 struct AranyaDeviceId *__output,
926 struct AranyaExtError *__ext_err);
927
935
943
954 uint8_t *public_key_bundle,
955 size_t *public_key_bundle_len);
956
967 uint8_t *public_key_bundle,
968 size_t *public_key_bundle_len,
969 struct AranyaExtError *__ext_err);
970
982ARANYA_DEPRECATED_MSG("Use `aranya_get_public_key_bundle`.")
983AranyaError aranya_get_key_bundle(const struct AranyaClient *client,
984 uint8_t *public_key_bundle,
985 size_t *public_key_bundle_len);
986
998ARANYA_DEPRECATED_MSG("Use `aranya_get_public_key_bundle`.")
999AranyaError aranya_get_key_bundle_ext(const struct AranyaClient *client,
1000 uint8_t *public_key_bundle,
1001 size_t *public_key_bundle_len,
1002 struct AranyaExtError *__ext_err);
1003
1016 char *str,
1017 size_t *str_len);
1018
1026AranyaError aranya_id_from_str(const char *str, struct AranyaId *__output);
1027
1036AranyaError aranya_get_device_id(const struct AranyaClient *client,
1037 struct AranyaDeviceId *__output);
1038
1047AranyaError aranya_get_device_id_ext(const struct AranyaClient *client,
1048 struct AranyaDeviceId *__output,
1049 struct AranyaExtError *__ext_err);
1050
1059AranyaError aranya_client_config_builder_init(struct AranyaClientConfigBuilder *out);
1060
1068AranyaError aranya_client_config_builder_cleanup(struct AranyaClientConfigBuilder *ptr);
1069
1081AranyaError aranya_client_config_build(struct AranyaClientConfigBuilder *cfg,
1082 struct AranyaClientConfig *out);
1083
1095AranyaError aranya_client_config_build_ext(struct AranyaClientConfigBuilder *cfg,
1096 struct AranyaClientConfig *out,
1097 struct AranyaExtError *__ext_err);
1098
1107AranyaError aranya_client_config_builder_set_daemon_uds_path(struct AranyaClientConfigBuilder *cfg,
1108 const char *address);
1109
1118AranyaError aranya_client_config_builder_set_daemon_uds_path_ext(struct AranyaClientConfigBuilder *cfg,
1119 const char *address,
1120 struct AranyaExtError *__ext_err);
1121
1130AranyaError aranya_add_team_quic_sync_config_builder_init(struct AranyaAddTeamQuicSyncConfigBuilder *out);
1131
1139AranyaError aranya_add_team_quic_sync_config_builder_cleanup(struct AranyaAddTeamQuicSyncConfigBuilder *ptr);
1140
1149AranyaError aranya_create_team_quic_sync_config_builder_init(struct AranyaCreateTeamQuicSyncConfigBuilder *out);
1150
1158AranyaError aranya_create_team_quic_sync_config_builder_cleanup(struct AranyaCreateTeamQuicSyncConfigBuilder *ptr);
1159
1169AranyaError aranya_create_team_quic_sync_config_generate(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg);
1170
1180AranyaError aranya_create_team_quic_sync_config_generate_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg,
1181 struct AranyaExtError *__ext_err);
1182
1193AranyaError aranya_add_team_quic_sync_config_wrapped_seed(struct AranyaAddTeamQuicSyncConfigBuilder *cfg,
1194 const uint8_t *encap_seed,
1195 size_t encap_seed_len);
1196
1207AranyaError aranya_add_team_quic_sync_config_wrapped_seed_ext(struct AranyaAddTeamQuicSyncConfigBuilder *cfg,
1208 const uint8_t *encap_seed,
1209 size_t encap_seed_len,
1210 struct AranyaExtError *__ext_err);
1211
1222AranyaError aranya_create_team_quic_sync_config_raw_seed_ikm(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg,
1223 const struct AranyaSeedIkm *ikm);
1224
1235AranyaError aranya_create_team_quic_sync_config_raw_seed_ikm_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg,
1236 const struct AranyaSeedIkm *ikm,
1237 struct AranyaExtError *__ext_err);
1238
1249AranyaError aranya_add_team_quic_sync_config_raw_seed_ikm(struct AranyaAddTeamQuicSyncConfigBuilder *cfg,
1250 const struct AranyaSeedIkm *ikm);
1251
1262AranyaError aranya_add_team_quic_sync_config_raw_seed_ikm_ext(struct AranyaAddTeamQuicSyncConfigBuilder *cfg,
1263 const struct AranyaSeedIkm *ikm,
1264 struct AranyaExtError *__ext_err);
1265
1277AranyaError aranya_create_team_quic_sync_config_build(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg,
1278 struct AranyaCreateTeamQuicSyncConfig *out);
1279
1291AranyaError aranya_create_team_quic_sync_config_build_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg,
1293 struct AranyaExtError *__ext_err);
1294
1306AranyaError aranya_add_team_quic_sync_config_build(struct AranyaAddTeamQuicSyncConfigBuilder *cfg,
1307 struct AranyaAddTeamQuicSyncConfig *out);
1308
1320AranyaError aranya_add_team_quic_sync_config_build_ext(struct AranyaAddTeamQuicSyncConfigBuilder *cfg,
1321 struct AranyaAddTeamQuicSyncConfig *out,
1322 struct AranyaExtError *__ext_err);
1323
1332AranyaError aranya_add_team_config_builder_init(struct AranyaAddTeamConfigBuilder *out);
1333
1341AranyaError aranya_add_team_config_builder_cleanup(struct AranyaAddTeamConfigBuilder *ptr);
1342
1351AranyaError aranya_create_team_config_builder_init(struct AranyaCreateTeamConfigBuilder *out);
1352
1360AranyaError aranya_create_team_config_builder_cleanup(struct AranyaCreateTeamConfigBuilder *ptr);
1361
1372AranyaError aranya_add_team_config_builder_set_quic_syncer(struct AranyaAddTeamConfigBuilder *cfg,
1373 struct AranyaAddTeamQuicSyncConfig *quic);
1374
1385AranyaError aranya_add_team_config_builder_set_quic_syncer_ext(struct AranyaAddTeamConfigBuilder *cfg,
1386 struct AranyaAddTeamQuicSyncConfig *quic,
1387 struct AranyaExtError *__ext_err);
1388
1399AranyaError aranya_add_team_config_builder_set_id(struct AranyaAddTeamConfigBuilder *cfg,
1400 const struct AranyaTeamId *team_id);
1401
1412AranyaError aranya_add_team_config_builder_set_id_ext(struct AranyaAddTeamConfigBuilder *cfg,
1413 const struct AranyaTeamId *team_id,
1414 struct AranyaExtError *__ext_err);
1415
1427AranyaError aranya_add_team_config_build(struct AranyaAddTeamConfigBuilder *cfg,
1428 struct AranyaAddTeamConfig *out);
1429
1441AranyaError aranya_add_team_config_build_ext(struct AranyaAddTeamConfigBuilder *cfg,
1442 struct AranyaAddTeamConfig *out,
1443 struct AranyaExtError *__ext_err);
1444
1455AranyaError aranya_create_team_config_builder_set_quic_syncer(struct AranyaCreateTeamConfigBuilder *cfg,
1456 struct AranyaCreateTeamQuicSyncConfig *quic);
1457
1468AranyaError aranya_create_team_config_builder_set_quic_syncer_ext(struct AranyaCreateTeamConfigBuilder *cfg,
1469 struct AranyaCreateTeamQuicSyncConfig *quic,
1470 struct AranyaExtError *__ext_err);
1471
1483AranyaError aranya_create_team_config_build(struct AranyaCreateTeamConfigBuilder *cfg,
1484 struct AranyaCreateTeamConfig *out);
1485
1497AranyaError aranya_create_team_config_build_ext(struct AranyaCreateTeamConfigBuilder *cfg,
1498 struct AranyaCreateTeamConfig *out,
1499 struct AranyaExtError *__ext_err);
1500
1509AranyaError aranya_sync_peer_config_builder_init(struct AranyaSyncPeerConfigBuilder *out);
1510
1518AranyaError aranya_sync_peer_config_builder_cleanup(struct AranyaSyncPeerConfigBuilder *ptr);
1519
1531AranyaError aranya_sync_peer_config_build(struct AranyaSyncPeerConfigBuilder *cfg,
1532 struct AranyaSyncPeerConfig *out);
1533
1545AranyaError aranya_sync_peer_config_build_ext(struct AranyaSyncPeerConfigBuilder *cfg,
1546 struct AranyaSyncPeerConfig *out,
1547 struct AranyaExtError *__ext_err);
1548
1561AranyaError aranya_sync_peer_config_builder_set_interval(struct AranyaSyncPeerConfigBuilder *cfg,
1562 AranyaDuration interval);
1563
1576AranyaError aranya_sync_peer_config_builder_set_interval_ext(struct AranyaSyncPeerConfigBuilder *cfg,
1577 AranyaDuration interval,
1578 struct AranyaExtError *__ext_err);
1579
1591AranyaError aranya_sync_peer_config_builder_set_sync_now(struct AranyaSyncPeerConfigBuilder *cfg);
1592
1604AranyaError aranya_sync_peer_config_builder_set_sync_now_ext(struct AranyaSyncPeerConfigBuilder *cfg,
1605 struct AranyaExtError *__ext_err);
1606
1618AranyaError aranya_sync_peer_config_builder_set_sync_later(struct AranyaSyncPeerConfigBuilder *cfg);
1619
1631AranyaError aranya_sync_peer_config_builder_set_sync_later_ext(struct AranyaSyncPeerConfigBuilder *cfg,
1632 struct AranyaExtError *__ext_err);
1633
1634#if defined(ENABLE_ARANYA_PREVIEW)
1645AranyaError aranya_sync_peer_config_builder_set_sync_on_hello(struct AranyaSyncPeerConfigBuilder *cfg,
1646 uint32_t sync_on_hello);
1647#endif
1648
1649#if defined(ENABLE_ARANYA_PREVIEW)
1660AranyaError aranya_sync_peer_config_builder_set_sync_on_hello_ext(struct AranyaSyncPeerConfigBuilder *cfg,
1661 uint32_t sync_on_hello,
1662 struct AranyaExtError *__ext_err);
1663#endif
1664
1665#if defined(ENABLE_ARANYA_PREVIEW)
1674AranyaError aranya_hello_subscription_config_builder_init(struct AranyaHelloSubscriptionConfigBuilder *out);
1675#endif
1676
1677#if defined(ENABLE_ARANYA_PREVIEW)
1685AranyaError aranya_hello_subscription_config_builder_cleanup(struct AranyaHelloSubscriptionConfigBuilder *ptr);
1686#endif
1687
1688#if defined(ENABLE_ARANYA_PREVIEW)
1700AranyaError aranya_hello_subscription_config_build(struct AranyaHelloSubscriptionConfigBuilder *cfg,
1701 struct AranyaHelloSubscriptionConfig *out);
1702#endif
1703
1704#if defined(ENABLE_ARANYA_PREVIEW)
1716AranyaError aranya_hello_subscription_config_build_ext(struct AranyaHelloSubscriptionConfigBuilder *cfg,
1717 struct AranyaHelloSubscriptionConfig *out,
1718 struct AranyaExtError *__ext_err);
1719#endif
1720
1721#if defined(ENABLE_ARANYA_PREVIEW)
1733AranyaError aranya_hello_subscription_config_builder_set_graph_change_debounce(struct AranyaHelloSubscriptionConfigBuilder *cfg,
1734 AranyaDuration duration);
1735#endif
1736
1737#if defined(ENABLE_ARANYA_PREVIEW)
1749AranyaError aranya_hello_subscription_config_builder_set_graph_change_debounce_ext(struct AranyaHelloSubscriptionConfigBuilder *cfg,
1750 AranyaDuration duration,
1751 struct AranyaExtError *__ext_err);
1752#endif
1753
1754#if defined(ENABLE_ARANYA_PREVIEW)
1766AranyaError aranya_hello_subscription_config_builder_set_expiration(struct AranyaHelloSubscriptionConfigBuilder *cfg,
1767 AranyaDuration expiration);
1768#endif
1769
1770#if defined(ENABLE_ARANYA_PREVIEW)
1782AranyaError aranya_hello_subscription_config_builder_set_expiration_ext(struct AranyaHelloSubscriptionConfigBuilder *cfg,
1783 AranyaDuration expiration,
1784 struct AranyaExtError *__ext_err);
1785#endif
1786
1787#if defined(ENABLE_ARANYA_PREVIEW)
1798AranyaError aranya_hello_subscription_config_builder_set_periodic_interval(struct AranyaHelloSubscriptionConfigBuilder *cfg,
1799 AranyaDuration interval);
1800#endif
1801
1802#if defined(ENABLE_ARANYA_PREVIEW)
1813AranyaError aranya_hello_subscription_config_builder_set_periodic_interval_ext(struct AranyaHelloSubscriptionConfigBuilder *cfg,
1814 AranyaDuration interval,
1815 struct AranyaExtError *__ext_err);
1816#endif
1817
1843 const struct AranyaTeamId *team,
1844 const struct AranyaRoleId *owning_role,
1845 struct AranyaRole *roles_out,
1846 size_t *roles_len);
1847
1873 const struct AranyaTeamId *team,
1874 const struct AranyaRoleId *owning_role,
1875 struct AranyaRole *roles_out,
1876 size_t *roles_len,
1877 struct AranyaExtError *__ext_err);
1878
1879#if defined(ENABLE_ARANYA_PREVIEW)
1890AranyaError aranya_add_role_owner(const struct AranyaClient *client,
1891 const struct AranyaTeamId *team,
1892 const struct AranyaRoleId *role,
1893 const struct AranyaRoleId *owning_role);
1894#endif
1895
1896#if defined(ENABLE_ARANYA_PREVIEW)
1907AranyaError aranya_add_role_owner_ext(const struct AranyaClient *client,
1908 const struct AranyaTeamId *team,
1909 const struct AranyaRoleId *role,
1910 const struct AranyaRoleId *owning_role,
1911 struct AranyaExtError *__ext_err);
1912#endif
1913
1914#if defined(ENABLE_ARANYA_PREVIEW)
1925AranyaError aranya_remove_role_owner(const struct AranyaClient *client,
1926 const struct AranyaTeamId *team,
1927 const struct AranyaRoleId *role,
1928 const struct AranyaRoleId *owning_role);
1929#endif
1930
1931#if defined(ENABLE_ARANYA_PREVIEW)
1942AranyaError aranya_remove_role_owner_ext(const struct AranyaClient *client,
1943 const struct AranyaTeamId *team,
1944 const struct AranyaRoleId *role,
1945 const struct AranyaRoleId *owning_role,
1946 struct AranyaExtError *__ext_err);
1947#endif
1948
1965 const struct AranyaTeamId *team,
1966 const struct AranyaRoleId *role,
1967 struct AranyaRole *roles_out,
1968 size_t *roles_len);
1969
1986 const struct AranyaTeamId *team,
1987 const struct AranyaRoleId *role,
1988 struct AranyaRole *roles_out,
1989 size_t *roles_len,
1990 struct AranyaExtError *__ext_err);
1991
1992#if defined(ENABLE_ARANYA_PREVIEW)
2004AranyaError aranya_assign_role_management_permission(const struct AranyaClient *client,
2005 const struct AranyaTeamId *team,
2006 const struct AranyaRoleId *role,
2007 const struct AranyaRoleId *managing_role,
2008 AranyaRoleManagementPermission perm);
2009#endif
2010
2011#if defined(ENABLE_ARANYA_PREVIEW)
2023AranyaError aranya_assign_role_management_permission_ext(const struct AranyaClient *client,
2024 const struct AranyaTeamId *team,
2025 const struct AranyaRoleId *role,
2026 const struct AranyaRoleId *managing_role,
2027 AranyaRoleManagementPermission perm,
2028 struct AranyaExtError *__ext_err);
2029#endif
2030
2031#if defined(ENABLE_ARANYA_PREVIEW)
2043AranyaError aranya_revoke_role_management_permission(const struct AranyaClient *client,
2044 const struct AranyaTeamId *team,
2045 const struct AranyaRoleId *role,
2046 const struct AranyaRoleId *managing_role,
2047 AranyaRoleManagementPermission perm);
2048#endif
2049
2050#if defined(ENABLE_ARANYA_PREVIEW)
2062AranyaError aranya_revoke_role_management_permission_ext(const struct AranyaClient *client,
2063 const struct AranyaTeamId *team,
2064 const struct AranyaRoleId *role,
2065 const struct AranyaRoleId *managing_role,
2066 AranyaRoleManagementPermission perm,
2067 struct AranyaExtError *__ext_err);
2068#endif
2069
2086 const struct AranyaTeamId *team,
2087 const struct AranyaDeviceId *device,
2088 const struct AranyaRoleId *old_role,
2089 const struct AranyaRoleId *new_role);
2090
2107 const struct AranyaTeamId *team,
2108 const struct AranyaDeviceId *device,
2109 const struct AranyaRoleId *old_role,
2110 const struct AranyaRoleId *new_role,
2111 struct AranyaExtError *__ext_err);
2112
2128 const struct AranyaTeamId *team,
2129 struct AranyaRole *roles_out,
2130 size_t *roles_out_len);
2131
2147 const struct AranyaTeamId *team,
2148 struct AranyaRole *roles_out,
2149 size_t *roles_out_len,
2150 struct AranyaExtError *__ext_err);
2151
2152#if defined(ENABLE_ARANYA_PREVIEW)
2168AranyaError aranya_create_role(const struct AranyaClient *client,
2169 const struct AranyaTeamId *team,
2170 AranyaRoleName role_name,
2171 const struct AranyaRoleId *owning_role,
2172 struct AranyaRole *role_out);
2173#endif
2174
2175#if defined(ENABLE_ARANYA_PREVIEW)
2191AranyaError aranya_create_role_ext(const struct AranyaClient *client,
2192 const struct AranyaTeamId *team,
2193 AranyaRoleName role_name,
2194 const struct AranyaRoleId *owning_role,
2195 struct AranyaRole *role_out,
2196 struct AranyaExtError *__ext_err);
2197#endif
2198
2199#if defined(ENABLE_ARANYA_PREVIEW)
2214AranyaError aranya_delete_role(const struct AranyaClient *client,
2215 const struct AranyaTeamId *team,
2216 const struct AranyaRoleId *role);
2217#endif
2218
2219#if defined(ENABLE_ARANYA_PREVIEW)
2234AranyaError aranya_delete_role_ext(const struct AranyaClient *client,
2235 const struct AranyaTeamId *team,
2236 const struct AranyaRoleId *role,
2237 struct AranyaExtError *__ext_err);
2238#endif
2239
2240#if defined(ENABLE_ARANYA_PREVIEW)
2253AranyaError aranya_add_perm_to_role(const struct AranyaClient *client,
2254 const struct AranyaTeamId *team,
2255 const struct AranyaRoleId *role,
2256 AranyaPermission perm);
2257#endif
2258
2259#if defined(ENABLE_ARANYA_PREVIEW)
2272AranyaError aranya_add_perm_to_role_ext(const struct AranyaClient *client,
2273 const struct AranyaTeamId *team,
2274 const struct AranyaRoleId *role,
2275 AranyaPermission perm,
2276 struct AranyaExtError *__ext_err);
2277#endif
2278
2279#if defined(ENABLE_ARANYA_PREVIEW)
2292AranyaError aranya_remove_perm_from_role(const struct AranyaClient *client,
2293 const struct AranyaTeamId *team,
2294 const struct AranyaRoleId *role,
2295 AranyaPermission perm);
2296#endif
2297
2298#if defined(ENABLE_ARANYA_PREVIEW)
2311AranyaError aranya_remove_perm_from_role_ext(const struct AranyaClient *client,
2312 const struct AranyaTeamId *team,
2313 const struct AranyaRoleId *role,
2314 AranyaPermission perm,
2315 struct AranyaExtError *__ext_err);
2316#endif
2317
2337 const struct AranyaTeamId *team,
2338 const struct AranyaDeviceId *device,
2339 const struct AranyaRoleId *role_id);
2340
2360 const struct AranyaTeamId *team,
2361 const struct AranyaDeviceId *device,
2362 const struct AranyaRoleId *role_id,
2363 struct AranyaExtError *__ext_err);
2364
2378 const struct AranyaTeamId *team,
2379 const struct AranyaDeviceId *device,
2380 const struct AranyaRoleId *role_id);
2381
2395 const struct AranyaTeamId *team,
2396 const struct AranyaDeviceId *device,
2397 const struct AranyaRoleId *role_id,
2398 struct AranyaExtError *__ext_err);
2399
2413 const struct AranyaTeamId *team,
2414 AranyaLabelName name,
2415 const struct AranyaRoleId *managing_role_id,
2416 struct AranyaLabelId *__output);
2417
2431 const struct AranyaTeamId *team,
2432 AranyaLabelName name,
2433 const struct AranyaRoleId *managing_role_id,
2434 struct AranyaLabelId *__output,
2435 struct AranyaExtError *__ext_err);
2436
2449 const struct AranyaTeamId *team,
2450 const struct AranyaLabelId *label_id);
2451
2464 const struct AranyaTeamId *team,
2465 const struct AranyaLabelId *label_id,
2466 struct AranyaExtError *__ext_err);
2467
2481 const struct AranyaTeamId *team,
2482 const struct AranyaDeviceId *device,
2483 const struct AranyaLabelId *label_id,
2484 AranyaChanOp op);
2485
2499 const struct AranyaTeamId *team,
2500 const struct AranyaDeviceId *device,
2501 const struct AranyaLabelId *label_id,
2502 AranyaChanOp op,
2503 struct AranyaExtError *__ext_err);
2504
2518 const struct AranyaTeamId *team,
2519 const struct AranyaDeviceId *device,
2520 const struct AranyaLabelId *label_id);
2521
2535 const struct AranyaTeamId *team,
2536 const struct AranyaDeviceId *device,
2537 const struct AranyaLabelId *label_id,
2538 struct AranyaExtError *__ext_err);
2539
2540#if defined(ENABLE_ARANYA_PREVIEW)
2553AranyaError aranya_add_label_managing_role(const struct AranyaClient *client,
2554 const struct AranyaTeamId *team,
2555 const struct AranyaLabelId *label_id,
2556 const struct AranyaRoleId *managing_role_id);
2557#endif
2558
2559#if defined(ENABLE_ARANYA_PREVIEW)
2572AranyaError aranya_add_label_managing_role_ext(const struct AranyaClient *client,
2573 const struct AranyaTeamId *team,
2574 const struct AranyaLabelId *label_id,
2575 const struct AranyaRoleId *managing_role_id,
2576 struct AranyaExtError *__ext_err);
2577#endif
2578
2589 const struct AranyaCreateTeamConfig *cfg,
2590 struct AranyaTeamId *__output);
2591
2602 const struct AranyaCreateTeamConfig *cfg,
2603 struct AranyaTeamId *__output,
2604 struct AranyaExtError *__ext_err);
2605
2618 uint8_t *buf,
2619 size_t buf_len);
2620
2633 uint8_t *buf,
2634 size_t buf_len,
2635 struct AranyaExtError *__ext_err);
2636
2658 const struct AranyaTeamId *team_id,
2659 const uint8_t *public_key_bundle,
2660 size_t public_key_bundle_len,
2661 uint8_t *seed,
2662 size_t *seed_len);
2663
2685 const struct AranyaTeamId *team_id,
2686 const uint8_t *public_key_bundle,
2687 size_t public_key_bundle_len,
2688 uint8_t *seed,
2689 size_t *seed_len,
2690 struct AranyaExtError *__ext_err);
2691
2701 const struct AranyaAddTeamConfig *cfg);
2702
2712 const struct AranyaAddTeamConfig *cfg,
2713 struct AranyaExtError *__ext_err);
2714
2724 const struct AranyaTeamId *team);
2725
2735 const struct AranyaTeamId *team,
2736 struct AranyaExtError *__ext_err);
2737
2747 const struct AranyaTeamId *team);
2748
2758 const struct AranyaTeamId *team,
2759 struct AranyaExtError *__ext_err);
2760
2775 const struct AranyaTeamId *team,
2776 const uint8_t *public_key_bundle,
2777 size_t public_key_bundle_len,
2778 const struct AranyaRoleId *role_id);
2779
2794 const struct AranyaTeamId *team,
2795 const uint8_t *public_key_bundle,
2796 size_t public_key_bundle_len,
2797 const struct AranyaRoleId *role_id,
2798 struct AranyaExtError *__ext_err);
2799
2812 const struct AranyaTeamId *team,
2813 const struct AranyaDeviceId *device);
2814
2827 const struct AranyaTeamId *team,
2828 const struct AranyaDeviceId *device,
2829 struct AranyaExtError *__ext_err);
2830
2846 const struct AranyaTeamId *team,
2847 AranyaAddr addr,
2848 const struct AranyaSyncPeerConfig *config);
2849
2865 const struct AranyaTeamId *team,
2866 AranyaAddr addr,
2867 const struct AranyaSyncPeerConfig *config,
2868 struct AranyaExtError *__ext_err);
2869
2880 const struct AranyaTeamId *team,
2881 AranyaAddr addr);
2882
2893 const struct AranyaTeamId *team,
2894 AranyaAddr addr,
2895 struct AranyaExtError *__ext_err);
2896
2897#if defined(ENABLE_ARANYA_PREVIEW)
2910AranyaError aranya_sync_hello_subscribe(const struct AranyaClient *client,
2911 const struct AranyaTeamId *team,
2912 AranyaAddr peer,
2913 const struct AranyaHelloSubscriptionConfig *config);
2914#endif
2915
2916#if defined(ENABLE_ARANYA_PREVIEW)
2929AranyaError aranya_sync_hello_subscribe_ext(const struct AranyaClient *client,
2930 const struct AranyaTeamId *team,
2931 AranyaAddr peer,
2932 const struct AranyaHelloSubscriptionConfig *config,
2933 struct AranyaExtError *__ext_err);
2934#endif
2935
2936#if defined(ENABLE_ARANYA_PREVIEW)
2948AranyaError aranya_sync_hello_unsubscribe(const struct AranyaClient *client,
2949 const struct AranyaTeamId *team,
2950 AranyaAddr peer);
2951#endif
2952
2953#if defined(ENABLE_ARANYA_PREVIEW)
2965AranyaError aranya_sync_hello_unsubscribe_ext(const struct AranyaClient *client,
2966 const struct AranyaTeamId *team,
2967 AranyaAddr peer,
2968 struct AranyaExtError *__ext_err);
2969#endif
2970
2992 const struct AranyaTeamId *team,
2993 AranyaAddr addr,
2994 const struct AranyaSyncPeerConfig *config);
2995
3017 const struct AranyaTeamId *team,
3018 AranyaAddr addr,
3019 const struct AranyaSyncPeerConfig *config,
3020 struct AranyaExtError *__ext_err);
3021
3033 const struct AranyaTeamId *team,
3034 struct AranyaDeviceId *devices,
3035 size_t *devices_len);
3036
3048 const struct AranyaTeamId *team,
3049 struct AranyaDeviceId *devices,
3050 size_t *devices_len,
3051 struct AranyaExtError *__ext_err);
3052
3066 const struct AranyaTeamId *team,
3067 const struct AranyaDeviceId *device,
3068 struct AranyaRole *role_out,
3069 bool *has_role);
3070
3084 const struct AranyaTeamId *team,
3085 const struct AranyaDeviceId *device,
3086 struct AranyaRole *role_out,
3087 bool *has_role,
3088 struct AranyaExtError *__ext_err);
3089
3102 const struct AranyaTeamId *team,
3103 const struct AranyaDeviceId *device,
3104 uint8_t *public_key_bundle,
3105 size_t *public_key_bundle_len);
3106
3119 const struct AranyaTeamId *team,
3120 const struct AranyaDeviceId *device,
3121 uint8_t *public_key_bundle,
3122 size_t *public_key_bundle_len,
3123 struct AranyaExtError *__ext_err);
3124
3138ARANYA_DEPRECATED_MSG("Use `aranya_team_device_public_key_bundle`.")
3139AranyaError aranya_team_device_keybundle(const struct AranyaClient *client,
3140 const struct AranyaTeamId *team,
3141 const struct AranyaDeviceId *device,
3142 uint8_t *public_key_bundle,
3143 size_t *public_key_bundle_len);
3144
3158ARANYA_DEPRECATED_MSG("Use `aranya_team_device_public_key_bundle`.")
3159AranyaError aranya_team_device_keybundle_ext(const struct AranyaClient *client,
3160 const struct AranyaTeamId *team,
3161 const struct AranyaDeviceId *device,
3162 uint8_t *public_key_bundle,
3163 size_t *public_key_bundle_len,
3164 struct AranyaExtError *__ext_err);
3165
3181AranyaError aranya_team_device_label_assignments(const struct AranyaClient *client,
3182 const struct AranyaTeamId *team,
3183 const struct AranyaDeviceId *device,
3184 struct AranyaLabelId *labels,
3185 size_t *labels_len);
3186
3202AranyaError aranya_team_device_label_assignments_ext(const struct AranyaClient *client,
3203 const struct AranyaTeamId *team,
3204 const struct AranyaDeviceId *device,
3205 struct AranyaLabelId *labels,
3206 size_t *labels_len,
3207 struct AranyaExtError *__ext_err);
3208
3223AranyaError aranya_team_labels(const struct AranyaClient *client,
3224 const struct AranyaTeamId *team,
3225 struct AranyaLabelId *labels,
3226 size_t *labels_len);
3227
3242AranyaError aranya_team_labels_ext(const struct AranyaClient *client,
3243 const struct AranyaTeamId *team,
3244 struct AranyaLabelId *labels,
3245 size_t *labels_len,
3246 struct AranyaExtError *__ext_err);
3247
3259AranyaError aranya_team_label_exists(const struct AranyaClient *client,
3260 const struct AranyaTeamId *team,
3261 const struct AranyaLabelId *label,
3262 bool *__output);
3263
3275AranyaError aranya_team_label_exists_ext(const struct AranyaClient *client,
3276 const struct AranyaTeamId *team,
3277 const struct AranyaLabelId *label,
3278 bool *__output,
3279 struct AranyaExtError *__ext_err);
3280
3281#if defined(ENABLE_ARANYA_AFC)
3290#endif
3291
3292#if defined(ENABLE_ARANYA_AFC)
3301#endif
3302
3303#if defined(ENABLE_ARANYA_AFC)
3312#endif
3313
3314#if defined(ENABLE_ARANYA_AFC)
3323#endif
3324
3325#if defined(ENABLE_ARANYA_AFC)
3346 const struct AranyaTeamId *team_id,
3347 const struct AranyaDeviceId *peer_id,
3348 const struct AranyaLabelId *label_id,
3349 struct AranyaAfcSendChannel *channel,
3350 struct AranyaAfcCtrlMsg *control);
3351#endif
3352
3353#if defined(ENABLE_ARANYA_AFC)
3374 const struct AranyaTeamId *team_id,
3375 const struct AranyaDeviceId *peer_id,
3376 const struct AranyaLabelId *label_id,
3377 struct AranyaAfcSendChannel *channel,
3378 struct AranyaAfcCtrlMsg *control,
3379 struct AranyaExtError *__ext_err);
3380#endif
3381
3382#if defined(ENABLE_ARANYA_AFC)
3395 const struct AranyaTeamId *team_id,
3396 const uint8_t *control,
3397 size_t control_len,
3398 struct AranyaAfcReceiveChannel *channel);
3399#endif
3400
3401#if defined(ENABLE_ARANYA_AFC)
3414 const struct AranyaTeamId *team_id,
3415 const uint8_t *control,
3416 size_t control_len,
3417 struct AranyaAfcReceiveChannel *channel,
3418 struct AranyaExtError *__ext_err);
3419#endif
3420
3421#if defined(ENABLE_ARANYA_AFC)
3429 struct AranyaLabelId *__output);
3430#endif
3431
3432#if defined(ENABLE_ARANYA_AFC)
3440 struct AranyaLabelId *__output,
3441 struct AranyaExtError *__ext_err);
3442#endif
3443
3444#if defined(ENABLE_ARANYA_AFC)
3452 struct AranyaAfcChannelId *__output);
3453#endif
3454
3455#if defined(ENABLE_ARANYA_AFC)
3463 struct AranyaAfcChannelId *__output,
3464 struct AranyaExtError *__ext_err);
3465#endif
3466
3467#if defined(ENABLE_ARANYA_AFC)
3475 struct AranyaDeviceId *__output);
3476#endif
3477
3478#if defined(ENABLE_ARANYA_AFC)
3486 struct AranyaDeviceId *__output,
3487 struct AranyaExtError *__ext_err);
3488#endif
3489
3490#if defined(ENABLE_ARANYA_AFC)
3498 struct AranyaLabelId *__output);
3499#endif
3500
3501#if defined(ENABLE_ARANYA_AFC)
3509 struct AranyaLabelId *__output,
3510 struct AranyaExtError *__ext_err);
3511#endif
3512
3513#if defined(ENABLE_ARANYA_AFC)
3521 struct AranyaAfcChannelId *__output);
3522#endif
3523
3524#if defined(ENABLE_ARANYA_AFC)
3532 struct AranyaAfcChannelId *__output,
3533 struct AranyaExtError *__ext_err);
3534#endif
3535
3536#if defined(ENABLE_ARANYA_AFC)
3544 struct AranyaDeviceId *__output);
3545#endif
3546
3547#if defined(ENABLE_ARANYA_AFC)
3555 struct AranyaDeviceId *__output,
3556 struct AranyaExtError *__ext_err);
3557#endif
3558
3559#if defined(ENABLE_ARANYA_AFC)
3570 const uint8_t **ptr,
3571 size_t *len);
3572#endif
3573
3574#if defined(ENABLE_ARANYA_AFC)
3585 const uint8_t **ptr,
3586 size_t *len,
3587 struct AranyaExtError *__ext_err);
3588#endif
3589
3590#if defined(ENABLE_ARANYA_AFC)
3599 const struct AranyaAfcSeq *seq2,
3600 int *__output);
3601#endif
3602
3603#if defined(ENABLE_ARANYA_AFC)
3612 const struct AranyaAfcSeq *seq2,
3613 int *__output,
3614 struct AranyaExtError *__ext_err);
3615#endif
3616
3617#if defined(ENABLE_ARANYA_AFC)
3629 const uint8_t *plaintext,
3630 size_t plaintext_len,
3631 uint8_t *dst,
3632 size_t *dst_len);
3633#endif
3634
3635#if defined(ENABLE_ARANYA_AFC)
3647 const uint8_t *plaintext,
3648 size_t plaintext_len,
3649 uint8_t *dst,
3650 size_t *dst_len,
3651 struct AranyaExtError *__ext_err);
3652#endif
3653
3654#if defined(ENABLE_ARANYA_AFC)
3667 const uint8_t *ciphertext,
3668 size_t ciphertext_len,
3669 uint8_t *dst,
3670 size_t *dst_len,
3671 struct AranyaAfcSeq *seq);
3672#endif
3673
3674#if defined(ENABLE_ARANYA_AFC)
3687 const uint8_t *ciphertext,
3688 size_t ciphertext_len,
3689 uint8_t *dst,
3690 size_t *dst_len,
3691 struct AranyaAfcSeq *seq,
3692 struct AranyaExtError *__ext_err);
3693#endif
3694
3695#if defined(ENABLE_ARANYA_AFC)
3708 struct AranyaAfcSendChannel *channel);
3709#endif
3710
3711#if defined(ENABLE_ARANYA_AFC)
3724 struct AranyaAfcSendChannel *channel,
3725 struct AranyaExtError *__ext_err);
3726#endif
3727
3728#if defined(ENABLE_ARANYA_AFC)
3741 struct AranyaAfcReceiveChannel *channel);
3742#endif
3743
3744#if defined(ENABLE_ARANYA_AFC)
3757 struct AranyaAfcReceiveChannel *channel,
3758 struct AranyaExtError *__ext_err);
3759#endif
3760
3761#ifdef __cplusplus
3762} // extern "C"
3763#endif // __cplusplus
3764
3765#endif /* ARANYA_CLIENT_H */
3766
3767
const char * AranyaRoleName
A role name.
Definition aranya-client.h:659
#define ARANYA_SEED_IKM_LEN
The size in bytes of a PSK seed IKM.
Definition aranya-client.h:114
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:104
uint64_t AranyaDuration
A type to represent a span of time in nanoseconds.
Definition aranya-client.h:622
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:680
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:666
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:140
@ ARANYA_ERROR_INVALID_ARGUMENT
Invalid argument.
Definition aranya-client.h:156
@ ARANYA_ERROR_CONFIG
Unable to create configuration info.
Definition aranya-client.h:195
@ ARANYA_ERROR_IPC
Could not send request to daemon.
Definition aranya-client.h:176
@ ARANYA_ERROR_INVALID_UTF8
Invalid UTF-8.
Definition aranya-client.h:168
@ ARANYA_ERROR_TIMEOUT
Timed out.
Definition aranya-client.h:152
@ ARANYA_ERROR_BUFFER_TOO_SMALL
Buffer is too small.
Definition aranya-client.h:164
@ ARANYA_ERROR_BUG
Internal bug discovered.
Definition aranya-client.h:148
@ ARANYA_ERROR_INVALID_ADDR
Invalid Address.
Definition aranya-client.h:172
@ ARANYA_ERROR_SERIALIZATION
Serialization error.
Definition aranya-client.h:199
@ ARANYA_ERROR_SUCCESS
Success.
Definition aranya-client.h:144
@ ARANYA_ERROR_NOT_ENABLED
Component is not enabled.
Definition aranya-client.h:160
@ ARANYA_ERROR_OTHER
Some other error occurred.
Definition aranya-client.h:203
@ ARANYA_ERROR_ARANYA
An Aranya error.
Definition aranya-client.h:180
@ ARANYA_ERROR_CLOSED
A connection got unexpectedly closed.
Definition aranya-client.h:191
@ ARANYA_ERROR_WOULD_BLOCK
Tried to poll an endpoint but nothing received yet.
Definition aranya-client.h:187
AranyaChanOp
Valid channel operations for a label assignment.
Definition aranya-client.h:340
@ ARANYA_CHAN_OP_SEND_ONLY
The device can only send data in channels with this label.
Definition aranya-client.h:350
@ ARANYA_CHAN_OP_SEND_RECV
The device can send or receive data in channels with this label.
Definition aranya-client.h:355
@ ARANYA_CHAN_OP_RECV_ONLY
The device can only receive data in channels with this label.
Definition aranya-client.h:345
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:537
Team configuration used when joining a team.
Definition aranya-client.h:570
A builder for initializing an `AranyaAddTeamQuicSyncConfig`.
Definition aranya-client.h:476
QUIC syncer configuration.
Definition aranya-client.h:525
Channel ID for AFC channel.
Definition aranya-client.h:747
An AFC Control Message, used to create the other end of a channel.
Definition aranya-client.h:717
AranyaError aranya_afc_ctrl_msg_cleanup(struct AranyaAfcCtrlMsg *ptr)
Releases any resources associated with ptr.
An AFC Receiving Channel Object.
Definition aranya-client.h:700
AranyaError aranya_afc_receive_channel_cleanup(struct AranyaAfcReceiveChannel *ptr)
Releases any resources associated with ptr.
An AFC Sending Channel Object.
Definition aranya-client.h:686
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:733
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:462
Configuration info for Aranya.
Definition aranya-client.h:417
A handle to an Aranya Client.
Definition aranya-client.h:403
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_encrypt_psk_seed_for_peer(const struct AranyaClient *client, const struct AranyaTeamId *team_id, const uint8_t *public_key_bundle, size_t public_key_bundle_len, uint8_t *seed, size_t *seed_len)
Return serialized PSK seed encrypted for another device on the team.
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_encrypt_psk_seed_for_peer_ext(const struct AranyaClient *client, const struct AranyaTeamId *team_id, const uint8_t *public_key_bundle, size_t public_key_bundle_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_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_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_team_device_public_key_bundle_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, uint8_t *public_key_bundle, size_t *public_key_bundle_len, struct AranyaExtError *__ext_err)
Query device's public key bundle.
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_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_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_add_device_to_team(const struct AranyaClient *client, const struct AranyaTeamId *team, const uint8_t *public_key_bundle, size_t public_key_bundle_len, const struct AranyaRoleId *role_id)
Add a device to the team with the default role.
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_remove_device_from_team(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device)
Remove a device from the team.
AranyaError aranya_team_device_public_key_bundle(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, uint8_t *public_key_bundle, size_t *public_key_bundle_len)
Query device's public key bundle.
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_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_add_device_to_team_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const uint8_t *public_key_bundle, size_t public_key_bundle_len, const struct AranyaRoleId *role_id, struct AranyaExtError *__ext_err)
Add a device to the team with the default role.
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_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_public_key_bundle(const struct AranyaClient *client, uint8_t *public_key_bundle, size_t *public_key_bundle_len)
Gets the public key bundle for this device.
AranyaError aranya_get_public_key_bundle_ext(const struct AranyaClient *client, uint8_t *public_key_bundle, size_t *public_key_bundle_len, struct AranyaExtError *__ext_err)
Gets the public key bundle for this device.
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_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_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_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_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_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:549
Team configuration used when creating a team.
Definition aranya-client.h:584
A builder for initializing a `AranyaCreateTeamQuicSyncConfig`.
Definition aranya-client.h:490
QUIC syncer configuration.
Definition aranya-client.h:511
Device ID.
Definition aranya-client.h:455
Functions suffixed with _ext accept an extra struct AranyaExtError *ext_err parameter for extended er...
Definition aranya-client.h:391
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:441
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:671
Uniquely identifies a `AranyaRole`.
Definition aranya-client.h:448
A role.
Definition aranya-client.h:429
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:502
Builder for a Sync Peer config `AranyaSyncPeerConfig`.
Definition aranya-client.h:596
Sync Peer config.
Definition aranya-client.h:610
Team ID.
Definition aranya-client.h:561