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 ARANYA_SEED_IKM_LEN 32
110
114#define ARANYA_ID_STR_LEN (((ARANYA_ID_LEN * 1375) / 1000) + 1)
115
116#if defined(ENABLE_ARANYA_AFC)
123#define ARANYA_AFC_CHANNEL_OVERHEAD 24
124#endif
125
204#ifndef __cplusplus
205typedef uint32_t AranyaError;
206#endif // __cplusplus
207
287#ifndef __cplusplus
288typedef uint8_t AranyaPermission;
289#endif // __cplusplus
290
295#ifdef __cplusplus
296 : uint8_t
297#endif // __cplusplus
298 {
314};
315#ifndef __cplusplus
316typedef uint8_t AranyaChanOp;
317#endif // __cplusplus
318
349typedef struct ARANYA_ALIGNED(8) AranyaExtError {
355 uint8_t __for_size_only[96];
357
361typedef struct ARANYA_ALIGNED(16) AranyaClient {
367 uint8_t __for_size_only[3728];
369
375typedef struct ARANYA_ALIGNED(8) AranyaClientConfig {
381 uint8_t __for_size_only[56];
383
387typedef struct ARANYA_ALIGNED(8) AranyaRole {
393 uint8_t __for_size_only[112];
395
399typedef struct AranyaId {
400 uint8_t bytes[ARANYA_ID_LEN];
402
406typedef struct AranyaRoleId {
407 struct AranyaId id;
409
413typedef struct AranyaDeviceId {
414 struct AranyaId id;
416
420typedef struct ARANYA_ALIGNED(8) AranyaLabel {
426 uint8_t __for_size_only[112];
428
432typedef struct AranyaLabelId {
433 struct AranyaId id;
435
439typedef struct ARANYA_ALIGNED(8) AranyaClientConfigBuilder {
445 uint8_t __for_size_only[72];
447
453typedef struct ARANYA_ALIGNED(8) AranyaAddTeamQuicSyncConfigBuilder {
459 uint8_t __for_size_only[288];
461
467typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamQuicSyncConfigBuilder {
473 uint8_t __for_size_only[56];
475
479typedef struct AranyaSeedIkm {
480 uint8_t bytes[ARANYA_SEED_IKM_LEN];
482
488typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamQuicSyncConfig {
494 uint8_t __for_size_only[56];
496
502typedef struct ARANYA_ALIGNED(8) AranyaAddTeamQuicSyncConfig {
508 uint8_t __for_size_only[288];
510
514typedef struct ARANYA_ALIGNED(8) AranyaAddTeamConfigBuilder {
520 uint8_t __for_size_only[328];
522
526typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamConfigBuilder {
532 uint8_t __for_size_only[56];
534
538typedef struct AranyaTeamId {
539 struct AranyaId id;
541
547typedef struct ARANYA_ALIGNED(8) AranyaAddTeamConfig {
553 uint8_t __for_size_only[320];
555
561typedef struct ARANYA_ALIGNED(8) AranyaCreateTeamConfig {
567 uint8_t __for_size_only[56];
569
573typedef struct ARANYA_ALIGNED(8) AranyaSyncPeerConfigBuilder {
579 uint8_t __for_size_only[40];
581
587typedef struct ARANYA_ALIGNED(8) AranyaSyncPeerConfig {
593 uint8_t __for_size_only[40];
595
599typedef uint64_t AranyaDuration;
600
601#if defined(ENABLE_ARANYA_PREVIEW)
605typedef struct ARANYA_ALIGNED(8) AranyaHelloSubscriptionConfigBuilder {
611 uint8_t __for_size_only[40];
612} AranyaHelloSubscriptionConfigBuilder;
613#endif
614
615#if defined(ENABLE_ARANYA_PREVIEW)
621typedef struct ARANYA_ALIGNED(8) AranyaHelloSubscriptionConfig {
627 uint8_t __for_size_only[40];
628} AranyaHelloSubscriptionConfig;
629#endif
630
636typedef const char *AranyaRoleName;
637
643typedef int64_t AranyaRank;
644
650typedef const char *AranyaLabelName;
651
655typedef struct AranyaObjectId {
656 struct AranyaId id;
658
664typedef const char *AranyaAddr;
665
666#if defined(ENABLE_ARANYA_AFC)
670typedef struct ARANYA_ALIGNED(8) AranyaAfcSendChannel {
676 uint8_t __for_size_only[160];
678#endif
679
680#if defined(ENABLE_ARANYA_AFC)
684typedef struct ARANYA_ALIGNED(8) AranyaAfcReceiveChannel {
690 uint8_t __for_size_only[160];
692#endif
693
694#if defined(ENABLE_ARANYA_AFC)
701typedef struct ARANYA_ALIGNED(8) AranyaAfcCtrlMsg {
707 uint8_t __for_size_only[32];
709#endif
710
711#if defined(ENABLE_ARANYA_AFC)
717typedef struct ARANYA_ALIGNED(8) AranyaAfcSeq {
723 uint8_t __for_size_only[24];
725#endif
726
727#if defined(ENABLE_ARANYA_AFC)
731typedef struct AranyaAfcChannelId {
732 struct AranyaId id;
734#endif
735
736#ifdef __cplusplus
737extern "C" {
738#endif // __cplusplus
739
749const char *aranya_error_to_str(uint32_t err);
750
760
769
790 char *msg,
791 size_t *msg_len);
792
813 char *msg,
814 size_t *msg_len,
815 struct AranyaExtError *__ext_err);
816
826 const struct AranyaClientConfig *config);
827
837 const struct AranyaClientConfig *config,
838 struct AranyaExtError *__ext_err);
839
848
857
866 struct AranyaRoleId *__output);
867
876 struct AranyaRoleId *__output,
877 struct AranyaExtError *__ext_err);
878
889 const char **__output);
890
899 struct AranyaDeviceId *__output);
900
909 struct AranyaDeviceId *__output,
910 struct AranyaExtError *__ext_err);
911
920
929 struct AranyaLabelId *__output);
930
941 const char **__output);
942
951 struct AranyaDeviceId *__output);
952
962AranyaError aranya_permission_to_str(AranyaPermission perm,
963 const char **__output);
964
972
980
991 uint8_t *public_key_bundle,
992 size_t *public_key_bundle_len);
993
1004 uint8_t *public_key_bundle,
1005 size_t *public_key_bundle_len,
1006 struct AranyaExtError *__ext_err);
1007
1019ARANYA_DEPRECATED_MSG("Use `aranya_get_public_key_bundle`.")
1020AranyaError aranya_get_key_bundle(const struct AranyaClient *client,
1021 uint8_t *public_key_bundle,
1022 size_t *public_key_bundle_len);
1023
1035ARANYA_DEPRECATED_MSG("Use `aranya_get_public_key_bundle`.")
1036AranyaError aranya_get_key_bundle_ext(const struct AranyaClient *client,
1037 uint8_t *public_key_bundle,
1038 size_t *public_key_bundle_len,
1039 struct AranyaExtError *__ext_err);
1040
1053 char *str,
1054 size_t *str_len);
1055
1063AranyaError aranya_id_from_str(const char *str, struct AranyaId *__output);
1064
1073AranyaError aranya_get_device_id(const struct AranyaClient *client,
1074 struct AranyaDeviceId *__output);
1075
1084AranyaError aranya_get_device_id_ext(const struct AranyaClient *client,
1085 struct AranyaDeviceId *__output,
1086 struct AranyaExtError *__ext_err);
1087
1096AranyaError aranya_client_config_builder_init(struct AranyaClientConfigBuilder *out);
1097
1105AranyaError aranya_client_config_builder_cleanup(struct AranyaClientConfigBuilder *ptr);
1106
1118AranyaError aranya_client_config_build(struct AranyaClientConfigBuilder *cfg,
1119 struct AranyaClientConfig *out);
1120
1132AranyaError aranya_client_config_build_ext(struct AranyaClientConfigBuilder *cfg,
1133 struct AranyaClientConfig *out,
1134 struct AranyaExtError *__ext_err);
1135
1144AranyaError aranya_client_config_builder_set_daemon_uds_path(struct AranyaClientConfigBuilder *cfg,
1145 const char *address);
1146
1155AranyaError aranya_client_config_builder_set_daemon_uds_path_ext(struct AranyaClientConfigBuilder *cfg,
1156 const char *address,
1157 struct AranyaExtError *__ext_err);
1158
1167AranyaError aranya_add_team_quic_sync_config_builder_init(struct AranyaAddTeamQuicSyncConfigBuilder *out);
1168
1176AranyaError aranya_add_team_quic_sync_config_builder_cleanup(struct AranyaAddTeamQuicSyncConfigBuilder *ptr);
1177
1186AranyaError aranya_create_team_quic_sync_config_builder_init(struct AranyaCreateTeamQuicSyncConfigBuilder *out);
1187
1195AranyaError aranya_create_team_quic_sync_config_builder_cleanup(struct AranyaCreateTeamQuicSyncConfigBuilder *ptr);
1196
1206AranyaError aranya_create_team_quic_sync_config_generate(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg);
1207
1217AranyaError aranya_create_team_quic_sync_config_generate_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg,
1218 struct AranyaExtError *__ext_err);
1219
1230AranyaError aranya_add_team_quic_sync_config_wrapped_seed(struct AranyaAddTeamQuicSyncConfigBuilder *cfg,
1231 const uint8_t *encap_seed,
1232 size_t encap_seed_len);
1233
1244AranyaError aranya_add_team_quic_sync_config_wrapped_seed_ext(struct AranyaAddTeamQuicSyncConfigBuilder *cfg,
1245 const uint8_t *encap_seed,
1246 size_t encap_seed_len,
1247 struct AranyaExtError *__ext_err);
1248
1259AranyaError aranya_create_team_quic_sync_config_raw_seed_ikm(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg,
1260 const struct AranyaSeedIkm *ikm);
1261
1272AranyaError aranya_create_team_quic_sync_config_raw_seed_ikm_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg,
1273 const struct AranyaSeedIkm *ikm,
1274 struct AranyaExtError *__ext_err);
1275
1286AranyaError aranya_add_team_quic_sync_config_raw_seed_ikm(struct AranyaAddTeamQuicSyncConfigBuilder *cfg,
1287 const struct AranyaSeedIkm *ikm);
1288
1299AranyaError aranya_add_team_quic_sync_config_raw_seed_ikm_ext(struct AranyaAddTeamQuicSyncConfigBuilder *cfg,
1300 const struct AranyaSeedIkm *ikm,
1301 struct AranyaExtError *__ext_err);
1302
1314AranyaError aranya_create_team_quic_sync_config_build(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg,
1315 struct AranyaCreateTeamQuicSyncConfig *out);
1316
1328AranyaError aranya_create_team_quic_sync_config_build_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg,
1330 struct AranyaExtError *__ext_err);
1331
1343AranyaError aranya_add_team_quic_sync_config_build(struct AranyaAddTeamQuicSyncConfigBuilder *cfg,
1344 struct AranyaAddTeamQuicSyncConfig *out);
1345
1357AranyaError aranya_add_team_quic_sync_config_build_ext(struct AranyaAddTeamQuicSyncConfigBuilder *cfg,
1358 struct AranyaAddTeamQuicSyncConfig *out,
1359 struct AranyaExtError *__ext_err);
1360
1369AranyaError aranya_add_team_config_builder_init(struct AranyaAddTeamConfigBuilder *out);
1370
1378AranyaError aranya_add_team_config_builder_cleanup(struct AranyaAddTeamConfigBuilder *ptr);
1379
1388AranyaError aranya_create_team_config_builder_init(struct AranyaCreateTeamConfigBuilder *out);
1389
1397AranyaError aranya_create_team_config_builder_cleanup(struct AranyaCreateTeamConfigBuilder *ptr);
1398
1409AranyaError aranya_add_team_config_builder_set_quic_syncer(struct AranyaAddTeamConfigBuilder *cfg,
1410 struct AranyaAddTeamQuicSyncConfig *quic);
1411
1422AranyaError aranya_add_team_config_builder_set_quic_syncer_ext(struct AranyaAddTeamConfigBuilder *cfg,
1423 struct AranyaAddTeamQuicSyncConfig *quic,
1424 struct AranyaExtError *__ext_err);
1425
1436AranyaError aranya_add_team_config_builder_set_id(struct AranyaAddTeamConfigBuilder *cfg,
1437 const struct AranyaTeamId *team_id);
1438
1449AranyaError aranya_add_team_config_builder_set_id_ext(struct AranyaAddTeamConfigBuilder *cfg,
1450 const struct AranyaTeamId *team_id,
1451 struct AranyaExtError *__ext_err);
1452
1464AranyaError aranya_add_team_config_build(struct AranyaAddTeamConfigBuilder *cfg,
1465 struct AranyaAddTeamConfig *out);
1466
1478AranyaError aranya_add_team_config_build_ext(struct AranyaAddTeamConfigBuilder *cfg,
1479 struct AranyaAddTeamConfig *out,
1480 struct AranyaExtError *__ext_err);
1481
1492AranyaError aranya_create_team_config_builder_set_quic_syncer(struct AranyaCreateTeamConfigBuilder *cfg,
1493 struct AranyaCreateTeamQuicSyncConfig *quic);
1494
1505AranyaError aranya_create_team_config_builder_set_quic_syncer_ext(struct AranyaCreateTeamConfigBuilder *cfg,
1506 struct AranyaCreateTeamQuicSyncConfig *quic,
1507 struct AranyaExtError *__ext_err);
1508
1520AranyaError aranya_create_team_config_build(struct AranyaCreateTeamConfigBuilder *cfg,
1521 struct AranyaCreateTeamConfig *out);
1522
1534AranyaError aranya_create_team_config_build_ext(struct AranyaCreateTeamConfigBuilder *cfg,
1535 struct AranyaCreateTeamConfig *out,
1536 struct AranyaExtError *__ext_err);
1537
1546AranyaError aranya_sync_peer_config_builder_init(struct AranyaSyncPeerConfigBuilder *out);
1547
1555AranyaError aranya_sync_peer_config_builder_cleanup(struct AranyaSyncPeerConfigBuilder *ptr);
1556
1568AranyaError aranya_sync_peer_config_build(struct AranyaSyncPeerConfigBuilder *cfg,
1569 struct AranyaSyncPeerConfig *out);
1570
1582AranyaError aranya_sync_peer_config_build_ext(struct AranyaSyncPeerConfigBuilder *cfg,
1583 struct AranyaSyncPeerConfig *out,
1584 struct AranyaExtError *__ext_err);
1585
1598AranyaError aranya_sync_peer_config_builder_set_interval(struct AranyaSyncPeerConfigBuilder *cfg,
1599 AranyaDuration interval);
1600
1613AranyaError aranya_sync_peer_config_builder_set_interval_ext(struct AranyaSyncPeerConfigBuilder *cfg,
1614 AranyaDuration interval,
1615 struct AranyaExtError *__ext_err);
1616
1628AranyaError aranya_sync_peer_config_builder_set_sync_now(struct AranyaSyncPeerConfigBuilder *cfg);
1629
1641AranyaError aranya_sync_peer_config_builder_set_sync_now_ext(struct AranyaSyncPeerConfigBuilder *cfg,
1642 struct AranyaExtError *__ext_err);
1643
1655AranyaError aranya_sync_peer_config_builder_set_sync_later(struct AranyaSyncPeerConfigBuilder *cfg);
1656
1668AranyaError aranya_sync_peer_config_builder_set_sync_later_ext(struct AranyaSyncPeerConfigBuilder *cfg,
1669 struct AranyaExtError *__ext_err);
1670
1671#if defined(ENABLE_ARANYA_PREVIEW)
1682AranyaError aranya_sync_peer_config_builder_set_sync_on_hello(struct AranyaSyncPeerConfigBuilder *cfg,
1683 uint32_t sync_on_hello);
1684#endif
1685
1686#if defined(ENABLE_ARANYA_PREVIEW)
1697AranyaError aranya_sync_peer_config_builder_set_sync_on_hello_ext(struct AranyaSyncPeerConfigBuilder *cfg,
1698 uint32_t sync_on_hello,
1699 struct AranyaExtError *__ext_err);
1700#endif
1701
1702#if defined(ENABLE_ARANYA_PREVIEW)
1711AranyaError aranya_hello_subscription_config_builder_init(struct AranyaHelloSubscriptionConfigBuilder *out);
1712#endif
1713
1714#if defined(ENABLE_ARANYA_PREVIEW)
1722AranyaError aranya_hello_subscription_config_builder_cleanup(struct AranyaHelloSubscriptionConfigBuilder *ptr);
1723#endif
1724
1725#if defined(ENABLE_ARANYA_PREVIEW)
1737AranyaError aranya_hello_subscription_config_build(struct AranyaHelloSubscriptionConfigBuilder *cfg,
1738 struct AranyaHelloSubscriptionConfig *out);
1739#endif
1740
1741#if defined(ENABLE_ARANYA_PREVIEW)
1753AranyaError aranya_hello_subscription_config_build_ext(struct AranyaHelloSubscriptionConfigBuilder *cfg,
1754 struct AranyaHelloSubscriptionConfig *out,
1755 struct AranyaExtError *__ext_err);
1756#endif
1757
1758#if defined(ENABLE_ARANYA_PREVIEW)
1770AranyaError aranya_hello_subscription_config_builder_set_graph_change_debounce(struct AranyaHelloSubscriptionConfigBuilder *cfg,
1771 AranyaDuration duration);
1772#endif
1773
1774#if defined(ENABLE_ARANYA_PREVIEW)
1786AranyaError aranya_hello_subscription_config_builder_set_graph_change_debounce_ext(struct AranyaHelloSubscriptionConfigBuilder *cfg,
1787 AranyaDuration duration,
1788 struct AranyaExtError *__ext_err);
1789#endif
1790
1791#if defined(ENABLE_ARANYA_PREVIEW)
1803AranyaError aranya_hello_subscription_config_builder_set_expiration(struct AranyaHelloSubscriptionConfigBuilder *cfg,
1804 AranyaDuration expiration);
1805#endif
1806
1807#if defined(ENABLE_ARANYA_PREVIEW)
1819AranyaError aranya_hello_subscription_config_builder_set_expiration_ext(struct AranyaHelloSubscriptionConfigBuilder *cfg,
1820 AranyaDuration expiration,
1821 struct AranyaExtError *__ext_err);
1822#endif
1823
1824#if defined(ENABLE_ARANYA_PREVIEW)
1835AranyaError aranya_hello_subscription_config_builder_set_periodic_interval(struct AranyaHelloSubscriptionConfigBuilder *cfg,
1836 AranyaDuration interval);
1837#endif
1838
1839#if defined(ENABLE_ARANYA_PREVIEW)
1850AranyaError aranya_hello_subscription_config_builder_set_periodic_interval_ext(struct AranyaHelloSubscriptionConfigBuilder *cfg,
1851 AranyaDuration interval,
1852 struct AranyaExtError *__ext_err);
1853#endif
1854
1882 const struct AranyaTeamId *team,
1883 struct AranyaRole *roles_out,
1884 size_t *roles_len);
1885
1913 const struct AranyaTeamId *team,
1914 struct AranyaRole *roles_out,
1915 size_t *roles_len,
1916 struct AranyaExtError *__ext_err);
1917
1938 const struct AranyaTeamId *team,
1939 const struct AranyaDeviceId *device,
1940 const struct AranyaRoleId *old_role,
1941 const struct AranyaRoleId *new_role);
1942
1963 const struct AranyaTeamId *team,
1964 const struct AranyaDeviceId *device,
1965 const struct AranyaRoleId *old_role,
1966 const struct AranyaRoleId *new_role,
1967 struct AranyaExtError *__ext_err);
1968
1984 const struct AranyaTeamId *team,
1985 struct AranyaRole *roles_out,
1986 size_t *roles_out_len);
1987
2003 const struct AranyaTeamId *team,
2004 struct AranyaRole *roles_out,
2005 size_t *roles_out_len,
2006 struct AranyaExtError *__ext_err);
2007
2024 const struct AranyaTeamId *team,
2025 AranyaRoleName role_name,
2026 AranyaRank rank,
2027 struct AranyaRole *role_out);
2028
2045 const struct AranyaTeamId *team,
2046 AranyaRoleName role_name,
2047 AranyaRank rank,
2048 struct AranyaRole *role_out,
2049 struct AranyaExtError *__ext_err);
2050
2067 const struct AranyaTeamId *team,
2068 const struct AranyaRoleId *role);
2069
2086 const struct AranyaTeamId *team,
2087 const struct AranyaRoleId *role,
2088 struct AranyaExtError *__ext_err);
2089
2105 const struct AranyaTeamId *team,
2106 const struct AranyaRoleId *role,
2107 AranyaPermission perm);
2108
2124 const struct AranyaTeamId *team,
2125 const struct AranyaRoleId *role,
2126 AranyaPermission perm,
2127 struct AranyaExtError *__ext_err);
2128
2144 const struct AranyaTeamId *team,
2145 const struct AranyaRoleId *role,
2146 AranyaPermission perm);
2147
2163 const struct AranyaTeamId *team,
2164 const struct AranyaRoleId *role,
2165 AranyaPermission perm,
2166 struct AranyaExtError *__ext_err);
2167
2184 const struct AranyaTeamId *team,
2185 const struct AranyaRoleId *role,
2186 AranyaPermission *perms_out,
2187 size_t *perms_len);
2188
2205 const struct AranyaTeamId *team,
2206 const struct AranyaRoleId *role,
2207 AranyaPermission *perms_out,
2208 size_t *perms_len,
2209 struct AranyaExtError *__ext_err);
2210
2230 const struct AranyaTeamId *team,
2231 const struct AranyaDeviceId *device,
2232 const struct AranyaRoleId *role_id);
2233
2253 const struct AranyaTeamId *team,
2254 const struct AranyaDeviceId *device,
2255 const struct AranyaRoleId *role_id,
2256 struct AranyaExtError *__ext_err);
2257
2273 const struct AranyaTeamId *team,
2274 const struct AranyaDeviceId *device,
2275 const struct AranyaRoleId *role_id);
2276
2292 const struct AranyaTeamId *team,
2293 const struct AranyaDeviceId *device,
2294 const struct AranyaRoleId *role_id,
2295 struct AranyaExtError *__ext_err);
2296
2312 const struct AranyaTeamId *team,
2313 AranyaLabelName name,
2314 AranyaRank rank,
2315 struct AranyaLabelId *__output);
2316
2332 const struct AranyaTeamId *team,
2333 AranyaLabelName name,
2334 AranyaRank rank,
2335 struct AranyaLabelId *__output,
2336 struct AranyaExtError *__ext_err);
2337
2352 const struct AranyaTeamId *team,
2353 const struct AranyaLabelId *label_id);
2354
2369 const struct AranyaTeamId *team,
2370 const struct AranyaLabelId *label_id,
2371 struct AranyaExtError *__ext_err);
2372
2404 const struct AranyaTeamId *team,
2405 const struct AranyaObjectId *object_id,
2406 AranyaRank old_rank,
2407 AranyaRank new_rank);
2408
2440 const struct AranyaTeamId *team,
2441 const struct AranyaObjectId *object_id,
2442 AranyaRank old_rank,
2443 AranyaRank new_rank,
2444 struct AranyaExtError *__ext_err);
2445
2457 const struct AranyaTeamId *team,
2458 const struct AranyaObjectId *object_id,
2459 AranyaRank *__output);
2460
2472 const struct AranyaTeamId *team,
2473 const struct AranyaObjectId *object_id,
2474 AranyaRank *__output,
2475 struct AranyaExtError *__ext_err);
2476
2492 const struct AranyaTeamId *team,
2493 const struct AranyaDeviceId *device,
2494 const struct AranyaLabelId *label_id,
2495 AranyaChanOp op);
2496
2512 const struct AranyaTeamId *team,
2513 const struct AranyaDeviceId *device,
2514 const struct AranyaLabelId *label_id,
2515 AranyaChanOp op,
2516 struct AranyaExtError *__ext_err);
2517
2533 const struct AranyaTeamId *team,
2534 const struct AranyaDeviceId *device,
2535 const struct AranyaLabelId *label_id);
2536
2552 const struct AranyaTeamId *team,
2553 const struct AranyaDeviceId *device,
2554 const struct AranyaLabelId *label_id,
2555 struct AranyaExtError *__ext_err);
2556
2567 const struct AranyaCreateTeamConfig *cfg,
2568 struct AranyaTeamId *__output);
2569
2580 const struct AranyaCreateTeamConfig *cfg,
2581 struct AranyaTeamId *__output,
2582 struct AranyaExtError *__ext_err);
2583
2596 uint8_t *buf,
2597 size_t buf_len);
2598
2611 uint8_t *buf,
2612 size_t buf_len,
2613 struct AranyaExtError *__ext_err);
2614
2636 const struct AranyaTeamId *team_id,
2637 const uint8_t *public_key_bundle,
2638 size_t public_key_bundle_len,
2639 uint8_t *seed,
2640 size_t *seed_len);
2641
2663 const struct AranyaTeamId *team_id,
2664 const uint8_t *public_key_bundle,
2665 size_t public_key_bundle_len,
2666 uint8_t *seed,
2667 size_t *seed_len,
2668 struct AranyaExtError *__ext_err);
2669
2679 const struct AranyaAddTeamConfig *cfg);
2680
2690 const struct AranyaAddTeamConfig *cfg,
2691 struct AranyaExtError *__ext_err);
2692
2702 const struct AranyaTeamId *team);
2703
2713 const struct AranyaTeamId *team,
2714 struct AranyaExtError *__ext_err);
2715
2725 const struct AranyaTeamId *team);
2726
2736 const struct AranyaTeamId *team,
2737 struct AranyaExtError *__ext_err);
2738
2756 const struct AranyaTeamId *team,
2757 const uint8_t *keybundle,
2758 size_t keybundle_len,
2759 const struct AranyaRoleId *role_id,
2760 AranyaRank rank);
2761
2779 const struct AranyaTeamId *team,
2780 const uint8_t *keybundle,
2781 size_t keybundle_len,
2782 const struct AranyaRoleId *role_id,
2783 AranyaRank rank,
2784 struct AranyaExtError *__ext_err);
2785
2800 const struct AranyaTeamId *team,
2801 const struct AranyaDeviceId *device);
2802
2817 const struct AranyaTeamId *team,
2818 const struct AranyaDeviceId *device,
2819 struct AranyaExtError *__ext_err);
2820
2836 const struct AranyaTeamId *team,
2837 AranyaAddr addr,
2838 const struct AranyaSyncPeerConfig *config);
2839
2855 const struct AranyaTeamId *team,
2856 AranyaAddr addr,
2857 const struct AranyaSyncPeerConfig *config,
2858 struct AranyaExtError *__ext_err);
2859
2870 const struct AranyaTeamId *team,
2871 AranyaAddr addr);
2872
2883 const struct AranyaTeamId *team,
2884 AranyaAddr addr,
2885 struct AranyaExtError *__ext_err);
2886
2887#if defined(ENABLE_ARANYA_PREVIEW)
2900AranyaError aranya_sync_hello_subscribe(const struct AranyaClient *client,
2901 const struct AranyaTeamId *team,
2902 AranyaAddr peer,
2903 const struct AranyaHelloSubscriptionConfig *config);
2904#endif
2905
2906#if defined(ENABLE_ARANYA_PREVIEW)
2919AranyaError aranya_sync_hello_subscribe_ext(const struct AranyaClient *client,
2920 const struct AranyaTeamId *team,
2921 AranyaAddr peer,
2922 const struct AranyaHelloSubscriptionConfig *config,
2923 struct AranyaExtError *__ext_err);
2924#endif
2925
2926#if defined(ENABLE_ARANYA_PREVIEW)
2938AranyaError aranya_sync_hello_unsubscribe(const struct AranyaClient *client,
2939 const struct AranyaTeamId *team,
2940 AranyaAddr peer);
2941#endif
2942
2943#if defined(ENABLE_ARANYA_PREVIEW)
2955AranyaError aranya_sync_hello_unsubscribe_ext(const struct AranyaClient *client,
2956 const struct AranyaTeamId *team,
2957 AranyaAddr peer,
2958 struct AranyaExtError *__ext_err);
2959#endif
2960
2982 const struct AranyaTeamId *team,
2983 AranyaAddr addr,
2984 const struct AranyaSyncPeerConfig *config);
2985
3007 const struct AranyaTeamId *team,
3008 AranyaAddr addr,
3009 const struct AranyaSyncPeerConfig *config,
3010 struct AranyaExtError *__ext_err);
3011
3023 const struct AranyaTeamId *team,
3024 struct AranyaDeviceId *devices,
3025 size_t *devices_len);
3026
3038 const struct AranyaTeamId *team,
3039 struct AranyaDeviceId *devices,
3040 size_t *devices_len,
3041 struct AranyaExtError *__ext_err);
3042
3056 const struct AranyaTeamId *team,
3057 const struct AranyaDeviceId *device,
3058 struct AranyaRole *role_out,
3059 bool *has_role);
3060
3074 const struct AranyaTeamId *team,
3075 const struct AranyaDeviceId *device,
3076 struct AranyaRole *role_out,
3077 bool *has_role,
3078 struct AranyaExtError *__ext_err);
3079
3092 const struct AranyaTeamId *team,
3093 const struct AranyaDeviceId *device,
3094 uint8_t *public_key_bundle,
3095 size_t *public_key_bundle_len);
3096
3109 const struct AranyaTeamId *team,
3110 const struct AranyaDeviceId *device,
3111 uint8_t *public_key_bundle,
3112 size_t *public_key_bundle_len,
3113 struct AranyaExtError *__ext_err);
3114
3128ARANYA_DEPRECATED_MSG("Use `aranya_team_device_public_key_bundle`.")
3129AranyaError aranya_team_device_keybundle(const struct AranyaClient *client,
3130 const struct AranyaTeamId *team,
3131 const struct AranyaDeviceId *device,
3132 uint8_t *public_key_bundle,
3133 size_t *public_key_bundle_len);
3134
3148ARANYA_DEPRECATED_MSG("Use `aranya_team_device_public_key_bundle`.")
3149AranyaError aranya_team_device_keybundle_ext(const struct AranyaClient *client,
3150 const struct AranyaTeamId *team,
3151 const struct AranyaDeviceId *device,
3152 uint8_t *public_key_bundle,
3153 size_t *public_key_bundle_len,
3154 struct AranyaExtError *__ext_err);
3155
3171AranyaError aranya_team_device_label_assignments(const struct AranyaClient *client,
3172 const struct AranyaTeamId *team,
3173 const struct AranyaDeviceId *device,
3174 struct AranyaLabelId *labels,
3175 size_t *labels_len);
3176
3192AranyaError aranya_team_device_label_assignments_ext(const struct AranyaClient *client,
3193 const struct AranyaTeamId *team,
3194 const struct AranyaDeviceId *device,
3195 struct AranyaLabelId *labels,
3196 size_t *labels_len,
3197 struct AranyaExtError *__ext_err);
3198
3213AranyaError aranya_team_labels(const struct AranyaClient *client,
3214 const struct AranyaTeamId *team,
3215 struct AranyaLabelId *labels,
3216 size_t *labels_len);
3217
3232AranyaError aranya_team_labels_ext(const struct AranyaClient *client,
3233 const struct AranyaTeamId *team,
3234 struct AranyaLabelId *labels,
3235 size_t *labels_len,
3236 struct AranyaExtError *__ext_err);
3237
3251AranyaError aranya_team_label(const struct AranyaClient *client,
3252 const struct AranyaTeamId *team,
3253 const struct AranyaLabelId *label_id,
3254 struct AranyaLabel *label_out);
3255
3269AranyaError aranya_team_label_ext(const struct AranyaClient *client,
3270 const struct AranyaTeamId *team,
3271 const struct AranyaLabelId *label_id,
3272 struct AranyaLabel *label_out,
3273 struct AranyaExtError *__ext_err);
3274
3285AranyaError aranya_team_label_exists(const struct AranyaClient *client,
3286 const struct AranyaTeamId *team,
3287 const struct AranyaLabelId *label,
3288 bool *__output);
3289
3300AranyaError aranya_team_label_exists_ext(const struct AranyaClient *client,
3301 const struct AranyaTeamId *team,
3302 const struct AranyaLabelId *label,
3303 bool *__output,
3304 struct AranyaExtError *__ext_err);
3305
3306#if defined(ENABLE_ARANYA_AFC)
3315#endif
3316
3317#if defined(ENABLE_ARANYA_AFC)
3326#endif
3327
3328#if defined(ENABLE_ARANYA_AFC)
3337#endif
3338
3339#if defined(ENABLE_ARANYA_AFC)
3348#endif
3349
3350#if defined(ENABLE_ARANYA_AFC)
3372 const struct AranyaTeamId *team_id,
3373 const struct AranyaDeviceId *peer_id,
3374 const struct AranyaLabelId *label_id,
3375 struct AranyaAfcSendChannel *channel,
3376 struct AranyaAfcCtrlMsg *control);
3377#endif
3378
3379#if defined(ENABLE_ARANYA_AFC)
3401 const struct AranyaTeamId *team_id,
3402 const struct AranyaDeviceId *peer_id,
3403 const struct AranyaLabelId *label_id,
3404 struct AranyaAfcSendChannel *channel,
3405 struct AranyaAfcCtrlMsg *control,
3406 struct AranyaExtError *__ext_err);
3407#endif
3408
3409#if defined(ENABLE_ARANYA_AFC)
3422 const struct AranyaTeamId *team_id,
3423 const uint8_t *control,
3424 size_t control_len,
3425 struct AranyaAfcReceiveChannel *channel);
3426#endif
3427
3428#if defined(ENABLE_ARANYA_AFC)
3441 const struct AranyaTeamId *team_id,
3442 const uint8_t *control,
3443 size_t control_len,
3444 struct AranyaAfcReceiveChannel *channel,
3445 struct AranyaExtError *__ext_err);
3446#endif
3447
3448#if defined(ENABLE_ARANYA_AFC)
3456 struct AranyaLabelId *__output);
3457#endif
3458
3459#if defined(ENABLE_ARANYA_AFC)
3467 struct AranyaLabelId *__output,
3468 struct AranyaExtError *__ext_err);
3469#endif
3470
3471#if defined(ENABLE_ARANYA_AFC)
3479 struct AranyaAfcChannelId *__output);
3480#endif
3481
3482#if defined(ENABLE_ARANYA_AFC)
3490 struct AranyaAfcChannelId *__output,
3491 struct AranyaExtError *__ext_err);
3492#endif
3493
3494#if defined(ENABLE_ARANYA_AFC)
3502 struct AranyaDeviceId *__output);
3503#endif
3504
3505#if defined(ENABLE_ARANYA_AFC)
3513 struct AranyaDeviceId *__output,
3514 struct AranyaExtError *__ext_err);
3515#endif
3516
3517#if defined(ENABLE_ARANYA_AFC)
3525 struct AranyaLabelId *__output);
3526#endif
3527
3528#if defined(ENABLE_ARANYA_AFC)
3536 struct AranyaLabelId *__output,
3537 struct AranyaExtError *__ext_err);
3538#endif
3539
3540#if defined(ENABLE_ARANYA_AFC)
3548 struct AranyaAfcChannelId *__output);
3549#endif
3550
3551#if defined(ENABLE_ARANYA_AFC)
3559 struct AranyaAfcChannelId *__output,
3560 struct AranyaExtError *__ext_err);
3561#endif
3562
3563#if defined(ENABLE_ARANYA_AFC)
3571 struct AranyaDeviceId *__output);
3572#endif
3573
3574#if defined(ENABLE_ARANYA_AFC)
3582 struct AranyaDeviceId *__output,
3583 struct AranyaExtError *__ext_err);
3584#endif
3585
3586#if defined(ENABLE_ARANYA_AFC)
3597 const uint8_t **ptr,
3598 size_t *len);
3599#endif
3600
3601#if defined(ENABLE_ARANYA_AFC)
3612 const uint8_t **ptr,
3613 size_t *len,
3614 struct AranyaExtError *__ext_err);
3615#endif
3616
3617#if defined(ENABLE_ARANYA_AFC)
3626 const struct AranyaAfcSeq *seq2,
3627 int *__output);
3628#endif
3629
3630#if defined(ENABLE_ARANYA_AFC)
3639 const struct AranyaAfcSeq *seq2,
3640 int *__output,
3641 struct AranyaExtError *__ext_err);
3642#endif
3643
3644#if defined(ENABLE_ARANYA_AFC)
3656 const uint8_t *plaintext,
3657 size_t plaintext_len,
3658 uint8_t *dst,
3659 size_t *dst_len);
3660#endif
3661
3662#if defined(ENABLE_ARANYA_AFC)
3674 const uint8_t *plaintext,
3675 size_t plaintext_len,
3676 uint8_t *dst,
3677 size_t *dst_len,
3678 struct AranyaExtError *__ext_err);
3679#endif
3680
3681#if defined(ENABLE_ARANYA_AFC)
3694 const uint8_t *ciphertext,
3695 size_t ciphertext_len,
3696 uint8_t *dst,
3697 size_t *dst_len,
3698 struct AranyaAfcSeq *seq);
3699#endif
3700
3701#if defined(ENABLE_ARANYA_AFC)
3714 const uint8_t *ciphertext,
3715 size_t ciphertext_len,
3716 uint8_t *dst,
3717 size_t *dst_len,
3718 struct AranyaAfcSeq *seq,
3719 struct AranyaExtError *__ext_err);
3720#endif
3721
3722#if defined(ENABLE_ARANYA_AFC)
3735 struct AranyaAfcSendChannel *channel);
3736#endif
3737
3738#if defined(ENABLE_ARANYA_AFC)
3751 struct AranyaAfcSendChannel *channel,
3752 struct AranyaExtError *__ext_err);
3753#endif
3754
3755#if defined(ENABLE_ARANYA_AFC)
3768 struct AranyaAfcReceiveChannel *channel);
3769#endif
3770
3771#if defined(ENABLE_ARANYA_AFC)
3784 struct AranyaAfcReceiveChannel *channel,
3785 struct AranyaExtError *__ext_err);
3786#endif
3787
3788#ifdef __cplusplus
3789} // extern "C"
3790#endif // __cplusplus
3791
3792#endif /* ARANYA_CLIENT_H */
3793
3794
const char * AranyaRoleName
A role name.
Definition aranya-client.h:636
#define ARANYA_SEED_IKM_LEN
The size in bytes of a PSK seed IKM.
Definition aranya-client.h:109
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
int64_t AranyaRank
A numerical rank used for authorization in the rank-based hierarchy.
Definition aranya-client.h:643
uint64_t AranyaDuration
A type to represent a span of time in nanoseconds.
Definition aranya-client.h:599
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:664
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_add_perm_to_role_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role, AranyaPermission perm, struct AranyaExtError *__ext_err)
Add a permission to a role.
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:650
AranyaError aranya_remove_perm_from_role_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role, AranyaPermission perm, struct AranyaExtError *__ext_err)
Remove a permission from a role.
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.
AranyaPermission
Simple permission.
Definition aranya-client.h:217
@ ARANYA_PERMISSION_CAN_USE_AFC
The role can use AFC.
Definition aranya-client.h:281
@ ARANYA_PERMISSION_CREATE_ROLE
The role can create a role.
Definition aranya-client.h:238
@ ARANYA_PERMISSION_TERMINATE_TEAM
The role can terminate the team.
Definition aranya-client.h:230
@ ARANYA_PERMISSION_DELETE_LABEL
The role can delete a label.
Definition aranya-client.h:268
@ ARANYA_PERMISSION_CHANGE_ROLE_PERMS
The role can change permissions on roles.
Definition aranya-client.h:254
@ ARANYA_PERMISSION_DELETE_ROLE
The role can delete a role.
Definition aranya-client.h:242
@ ARANYA_PERMISSION_ADD_DEVICE
The role can add a device to the team.
Definition aranya-client.h:221
@ ARANYA_PERMISSION_CREATE_LABEL
The role can create a label.
Definition aranya-client.h:264
@ ARANYA_PERMISSION_SETUP_DEFAULT_ROLE
The role can set up default roles.
Definition aranya-client.h:260
@ ARANYA_PERMISSION_REMOVE_DEVICE
The role can remove a device from the team.
Definition aranya-client.h:225
@ ARANYA_PERMISSION_CREATE_AFC_UNI_CHANNEL
The role can create a unidirectional AFC channel.
Definition aranya-client.h:285
@ ARANYA_PERMISSION_ASSIGN_LABEL
The role can assign a label to a device.
Definition aranya-client.h:272
@ ARANYA_PERMISSION_ASSIGN_ROLE
The role can assign a role to other devices.
Definition aranya-client.h:246
@ ARANYA_PERMISSION_REVOKE_LABEL
The role can revoke a label from a device.
Definition aranya-client.h:276
@ ARANYA_PERMISSION_CHANGE_RANK
The role can change the rank of objects.
Definition aranya-client.h:234
@ ARANYA_PERMISSION_REVOKE_ROLE
The role can revoke a role from other devices.
Definition aranya-client.h:250
AranyaError aranya_init_logging_ext(struct AranyaExtError *__ext_err)
Initializes logging.
AranyaError aranya_add_perm_to_role(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role, AranyaPermission perm)
Add a permission to a role.
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:135
@ ARANYA_ERROR_INVALID_ARGUMENT
Invalid argument.
Definition aranya-client.h:151
@ ARANYA_ERROR_CONFIG
Unable to create configuration info.
Definition aranya-client.h:190
@ ARANYA_ERROR_IPC
Could not send request to daemon.
Definition aranya-client.h:171
@ ARANYA_ERROR_INVALID_UTF8
Invalid UTF-8.
Definition aranya-client.h:163
@ ARANYA_ERROR_TIMEOUT
Timed out.
Definition aranya-client.h:147
@ ARANYA_ERROR_BUFFER_TOO_SMALL
Buffer is too small.
Definition aranya-client.h:159
@ ARANYA_ERROR_BUG
Internal bug discovered.
Definition aranya-client.h:143
@ ARANYA_ERROR_INVALID_ADDR
Invalid Address.
Definition aranya-client.h:167
@ ARANYA_ERROR_SERIALIZATION
Serialization error.
Definition aranya-client.h:194
@ ARANYA_ERROR_SUCCESS
Success.
Definition aranya-client.h:139
@ ARANYA_ERROR_NOT_ENABLED
Component is not enabled.
Definition aranya-client.h:155
@ ARANYA_ERROR_OTHER
Some other error occurred.
Definition aranya-client.h:202
@ ARANYA_ERROR_ARANYA
An Aranya error.
Definition aranya-client.h:175
@ ARANYA_ERROR_CLOSED
A connection got unexpectedly closed.
Definition aranya-client.h:186
@ ARANYA_ERROR_WOULD_BLOCK
Tried to poll an endpoint but nothing received yet.
Definition aranya-client.h:182
@ ARANYA_ERROR_DOES_NOT_EXIST
The requested resource does not exist.
Definition aranya-client.h:198
AranyaChanOp
Valid channel operations for a label assignment.
Definition aranya-client.h:298
@ ARANYA_CHAN_OP_SEND_ONLY
The device can only send data in channels with this label.
Definition aranya-client.h:308
@ ARANYA_CHAN_OP_SEND_RECV
The device can send or receive data in channels with this label.
Definition aranya-client.h:313
@ ARANYA_CHAN_OP_RECV_ONLY
The device can only receive data in channels with this label.
Definition aranya-client.h:303
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_remove_perm_from_role(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role, AranyaPermission perm)
Remove a permission from a role.
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:514
Team configuration used when joining a team.
Definition aranya-client.h:547
A builder for initializing an `AranyaAddTeamQuicSyncConfig`.
Definition aranya-client.h:453
QUIC syncer configuration.
Definition aranya-client.h:502
Channel ID for AFC channel.
Definition aranya-client.h:731
An AFC Control Message, used to create the other end of a channel.
Definition aranya-client.h:701
AranyaError aranya_afc_ctrl_msg_cleanup(struct AranyaAfcCtrlMsg *ptr)
Releases any resources associated with ptr.
An AFC Receiving Channel Object.
Definition aranya-client.h:684
AranyaError aranya_afc_receive_channel_cleanup(struct AranyaAfcReceiveChannel *ptr)
Releases any resources associated with ptr.
An AFC Sending Channel Object.
Definition aranya-client.h:670
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:717
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:439
Configuration info for Aranya.
Definition aranya-client.h:375
A handle to an Aranya Client.
Definition aranya-client.h:361
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_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_change_rank_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaObjectId *object_id, AranyaRank old_rank, AranyaRank new_rank, struct AranyaExtError *__ext_err)
Change the rank of an object (device or label).
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_setup_default_roles(struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaRole *roles_out, size_t *roles_len)
Setup default roles on team.
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_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_setup_default_roles_ext(struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaRole *roles_out, size_t *roles_len, struct AranyaExtError *__ext_err)
Setup default roles on team.
AranyaError aranya_query_role_perms_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role, AranyaPermission *perms_out, size_t *perms_len, struct AranyaExtError *__ext_err)
Query all permissions assigned to a role.
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_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_change_rank(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaObjectId *object_id, AranyaRank old_rank, AranyaRank new_rank)
Change the rank of an object (device or label).
AranyaError aranya_delete_role(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role)
Delete a role.
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_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_create_role(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaRoleName role_name, AranyaRank rank, struct AranyaRole *role_out)
Create a role.
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_query_role_perms(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role, AranyaPermission *perms_out, size_t *perms_len)
Query all permissions assigned to a role.
AranyaError aranya_create_role_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaRoleName role_name, AranyaRank rank, struct AranyaRole *role_out, struct AranyaExtError *__ext_err)
Create a role.
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_delete_role_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role, struct AranyaExtError *__ext_err)
Delete a role.
AranyaError aranya_add_team(const struct AranyaClient *client, const struct AranyaAddTeamConfig *cfg)
Add a team to the local device store.
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_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, AranyaRank rank, struct AranyaExtError *__ext_err)
Add a device to the team with an explicit rank.
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, AranyaRank rank)
Add a device to the team with an explicit rank.
AranyaError aranya_query_rank(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaObjectId *object_id, AranyaRank *__output)
Query the rank of an object.
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_create_label(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaLabelName name, AranyaRank rank, struct AranyaLabelId *__output)
Create a channel label with an explicit rank.
AranyaError aranya_query_rank_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaObjectId *object_id, AranyaRank *__output, struct AranyaExtError *__ext_err)
Query the rank of an object.
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, AranyaRank rank, struct AranyaLabelId *__output, struct AranyaExtError *__ext_err)
Create a channel label with an explicit rank.
A builder for initializing a `AranyaCreateTeamConfig`.
Definition aranya-client.h:526
Team configuration used when creating a team.
Definition aranya-client.h:561
A builder for initializing a `AranyaCreateTeamQuicSyncConfig`.
Definition aranya-client.h:467
QUIC syncer configuration.
Definition aranya-client.h:488
Device ID.
Definition aranya-client.h:413
Functions suffixed with _ext accept an extra struct AranyaExtError *ext_err parameter for extended er...
Definition aranya-client.h:349
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:399
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:432
A label.
Definition aranya-client.h:420
AranyaError aranya_label_get_author(const struct AranyaLabel *label, struct AranyaDeviceId *__output)
Get the author of a label.
AranyaError aranya_label_get_id(const struct AranyaLabel *label, struct AranyaLabelId *__output)
Get ID of label.
AranyaError aranya_label_cleanup(struct AranyaLabel *ptr)
Releases any resources associated with ptr.
AranyaError aranya_label_get_name(const struct AranyaLabel *label, const char **__output)
Get name of label.
An identifier for any object with a unique Aranya ID defined in the policy.
Definition aranya-client.h:655
Uniquely identifies a `AranyaRole`.
Definition aranya-client.h:406
A role.
Definition aranya-client.h:387
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:479
Builder for a Sync Peer config `AranyaSyncPeerConfig`.
Definition aranya-client.h:573
Sync Peer config.
Definition aranya-client.h:587
Team ID.
Definition aranya-client.h:538