11#ifndef ARANYA_CLIENT_H
12#define ARANYA_CLIENT_H
21#include <sys/socket.h>
23#ifndef __has_attribute
24 #define __has_attribute(x) 0
27#if !defined(ARANYA_ALIGNED)
28 #if __has_attribute(aligned)
29 #define ARANYA_ALIGNED(n) __attribute__((aligned(n)))
31 #error "compiler must support `aligned` attribute"
35#if !defined(ARANYA_DESIGNATED_INIT)
36 #if __has_attribute(designated_init)
37 #define ARANYA_DESIGNATED_INIT __attribute__((designated_init))
39 #define ARANYA_DESIGNATED_INIT
43#if !defined(ARANYA_MUST_USE)
44 #if __has_attribute(warn_unused_result)
45 #define ARANYA_MUST_USE __attribute__((warn_unused_result))
47 #define ARANYA_MUST_USE
51#if !defined(ARANYA_NO_RETURN)
52 #if __has_attribute(noreturn)
53 #define ARANYA_NO_RETURN __attribute__((noreturn))
55 #define ARANYA_NO_RETURN
59#if !defined(ARANYA_NON_NULL)
61 #if __has_attribute(nonnull)
62 #define ARANYA_NON_NULL __attribute__((nonnull))
64 #elif defined(__clang__)
65 #define ARANYA_NON_NULL _Nonnull
67 #define ARANYA_NON_NULL
71#if !defined(ARANYA_PACKED)
72 #if __has_attribute(packed)
73 #define ARANYA_PACKED __attribute__((packed))
80#define ARANYA_DURATION_SECONDS (1000 * ARANYA_DURATION_MILLISECONDS)
82#define ARANYA_DURATION_MILLISECONDS (1000 * ARANYA_DURATION_MICROSECONDS)
84#define ARANYA_DURATION_MICROSECONDS (1000 * ARANYA_DURATION_NANOSECONDS)
86#define ARANYA_DURATION_NANOSECONDS 1
91#define ARANYA_ID_LEN 32
96#define DEFAULT_ROLES_LEN 3
101#define ARANYA_SEED_IKM_LEN 32
106#define ARANYA_ID_STR_LEN (((ARANYA_ID_LEN * 1375) / 1000) + 1)
108#if defined(ENABLE_ARANYA_AFC)
115#define ARANYA_AFC_CHANNEL_OVERHEAD 24
118#if defined(ENABLE_ARANYA_AFC)
125#define ARANYA_AFC_CHANNEL_OVERHEAD 24
206#if defined(ENABLE_ARANYA_AFC)
207 ARANYA_ERROR_WRONG_CHANNEL_TYPE,
387 uint8_t __for_size_only[96];
399 uint8_t __for_size_only[3728];
413 uint8_t __for_size_only[56];
425 uint8_t __for_size_only[112];
458 uint8_t __for_size_only[72];
472 uint8_t __for_size_only[288];
486 uint8_t __for_size_only[56];
507 uint8_t __for_size_only[56];
521 uint8_t __for_size_only[288];
533 uint8_t __for_size_only[328];
545 uint8_t __for_size_only[56];
566 uint8_t __for_size_only[320];
580 uint8_t __for_size_only[56];
592 uint8_t __for_size_only[40];
606 uint8_t __for_size_only[40];
642#if defined(ENABLE_ARANYA_AFC)
652 uint8_t __for_size_only[160];
656#if defined(ENABLE_ARANYA_AFC)
666 uint8_t __for_size_only[152];
670#if defined(ENABLE_ARANYA_AFC)
683 uint8_t __for_size_only[32];
687#if defined(ENABLE_ARANYA_AFC)
699 uint8_t __for_size_only[24];
703#if defined(ENABLE_ARANYA_AFC)
725const char *aranya_error_to_str(uint32_t err);
865 const char **__output);
915 size_t *keybundle_len);
928 size_t *keybundle_len,
1035 const char *address);
1046 const char *address,
1121 const uint8_t *encap_seed,
1122 size_t encap_seed_len);
1135 const uint8_t *encap_seed,
1136 size_t encap_seed_len,
1570 uint32_t sync_on_hello);
1583 uint32_t sync_on_hello,
1882 size_t *roles_out_len);
1901 size_t *roles_out_len,
2391 const uint8_t *keybundle,
2392 size_t keybundle_len,
2418 const uint8_t *keybundle,
2419 size_t keybundle_len,
2508 const uint8_t *keybundle,
2509 size_t keybundle_len,
2527 const uint8_t *keybundle,
2528 size_t keybundle_len,
2767 size_t *devices_len);
2782 size_t *devices_len,
2837 size_t *keybundle_len);
2854 size_t *keybundle_len,
2876 size_t *labels_len);
2917 size_t *labels_len);
2972#if defined(ENABLE_ARANYA_AFC)
2983#if defined(ENABLE_ARANYA_AFC)
2994#if defined(ENABLE_ARANYA_AFC)
3005#if defined(ENABLE_ARANYA_AFC)
3016#if defined(ENABLE_ARANYA_AFC)
3044#if defined(ENABLE_ARANYA_AFC)
3073#if defined(ENABLE_ARANYA_AFC)
3087 const uint8_t *control,
3092#if defined(ENABLE_ARANYA_AFC)
3106 const uint8_t *control,
3112#if defined(ENABLE_ARANYA_AFC)
3123#if defined(ENABLE_ARANYA_AFC)
3135#if defined(ENABLE_ARANYA_AFC)
3146#if defined(ENABLE_ARANYA_AFC)
3158#if defined(ENABLE_ARANYA_AFC)
3169#if defined(ENABLE_ARANYA_AFC)
3181#if defined(ENABLE_ARANYA_AFC)
3192#if defined(ENABLE_ARANYA_AFC)
3204#if defined(ENABLE_ARANYA_AFC)
3215#if defined(ENABLE_ARANYA_AFC)
3227#if defined(ENABLE_ARANYA_AFC)
3238#if defined(ENABLE_ARANYA_AFC)
3250#if defined(ENABLE_ARANYA_AFC)
3261 const uint8_t **ptr,
3265#if defined(ENABLE_ARANYA_AFC)
3276 const uint8_t **ptr,
3281#if defined(ENABLE_ARANYA_AFC)
3294#if defined(ENABLE_ARANYA_AFC)
3308#if defined(ENABLE_ARANYA_AFC)
3320 const uint8_t *plaintext,
3321 size_t plaintext_len,
3326#if defined(ENABLE_ARANYA_AFC)
3338 const uint8_t *plaintext,
3339 size_t plaintext_len,
3345#if defined(ENABLE_ARANYA_AFC)
3358 const uint8_t *ciphertext,
3359 size_t ciphertext_len,
3365#if defined(ENABLE_ARANYA_AFC)
3378 const uint8_t *ciphertext,
3379 size_t ciphertext_len,
3386#if defined(ENABLE_ARANYA_AFC)
3402#if defined(ENABLE_ARANYA_AFC)
3419#if defined(ENABLE_ARANYA_AFC)
3435#if defined(ENABLE_ARANYA_AFC)
const char * AranyaRoleName
A role name.
Definition aranya-client.h:619
#define ARANYA_SEED_IKM_LEN
The size in bytes of a PSK seed IKM.
Definition aranya-client.h:101
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:91
uint64_t AranyaDuration
A type to represent a span of time in nanoseconds.
Definition aranya-client.h:612
AranyaError aranya_afc_send_channel_get_id(const struct AranyaAfcSendChannel *channel, struct AranyaAfcChannelId *__output)
Returns the `AranyaAfcChannelId` for the associated `AranyaAfcSendChannel`.
AranyaError aranya_afc_channel_open_ext(const struct AranyaAfcReceiveChannel *channel, const uint8_t *ciphertext, size_t ciphertext_len, uint8_t *dst, size_t *dst_len, struct AranyaAfcSeq *seq, struct AranyaExtError *__ext_err)
Decrypts and authenticates ciphertext, and writes it to dst.
AranyaError aranya_afc_send_channel_get_id_ext(const struct AranyaAfcSendChannel *channel, struct AranyaAfcChannelId *__output, struct AranyaExtError *__ext_err)
Returns the `AranyaAfcChannelId` for the associated `AranyaAfcSendChannel`.
const char * AranyaAddr
A network socket address for an Aranya client.
Definition aranya-client.h:640
AranyaError aranya_init_logging(void)
Initializes logging.
AranyaRoleManagementPermission
Role management permission.
Definition aranya-client.h:329
@ ARANYA_ROLE_MANAGEMENT_PERMISSION_CAN_REVOKE_ROLE
Grants a managing role the ability to revoke the target role from any device.
Definition aranya-client.h:339
@ ARANYA_ROLE_MANAGEMENT_PERMISSION_CAN_ASSIGN_ROLE
Grants a managing role the ability to assign the target role to any device except itself.
Definition aranya-client.h:334
@ ARANYA_ROLE_MANAGEMENT_PERMISSION_CAN_CHANGE_ROLE_PERMS
Grants a managing role the ability to change the permissions assigned to the target role.
Definition aranya-client.h:344
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:626
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:241
@ ARANYA_PERMISSION_CAN_USE_AFC
The role can use AFC.
Definition aranya-client.h:312
@ ARANYA_PERMISSION_CREATE_ROLE
The role can create a role.
Definition aranya-client.h:258
@ ARANYA_PERMISSION_CHANGE_ROLE_MANAGING_ROLE
The role can add a managing role to or remove a managing role from a target role.
Definition aranya-client.h:281
@ ARANYA_PERMISSION_TERMINATE_TEAM
The role can terminate the team.
Definition aranya-client.h:254
@ ARANYA_PERMISSION_DELETE_LABEL
The role can delete a label.
Definition aranya-client.h:289
@ ARANYA_PERMISSION_DELETE_ROLE
The role can delete a role.
Definition aranya-client.h:262
@ ARANYA_PERMISSION_ADD_DEVICE
The role can add a device to the team.
Definition aranya-client.h:245
@ ARANYA_PERMISSION_CREATE_LABEL
The role can create a label.
Definition aranya-client.h:285
@ ARANYA_PERMISSION_SETUP_DEFAULT_ROLE
The role can set up default roles.
Definition aranya-client.h:276
@ ARANYA_PERMISSION_REMOVE_DEVICE
The role can remove a device from the team.
Definition aranya-client.h:249
@ ARANYA_PERMISSION_CREATE_AFC_UNI_CHANNEL
The role can create a unidirectional AFC channel.
Definition aranya-client.h:316
@ ARANYA_PERMISSION_ASSIGN_LABEL
The role can assign a label to a device.
Definition aranya-client.h:301
@ ARANYA_PERMISSION_ASSIGN_ROLE
The role can assign a role to other devices.
Definition aranya-client.h:266
@ ARANYA_PERMISSION_REVOKE_LABEL
The role can revoke a label from a device.
Definition aranya-client.h:307
@ ARANYA_PERMISSION_REVOKE_ROLE
The role can revoke a role from other devices.
Definition aranya-client.h:270
@ ARANYA_PERMISSION_CHANGE_LABEL_MANAGING_ROLE
The role can grant a target role the ability to manage a label.
Definition aranya-client.h:295
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:165
@ ARANYA_ERROR_INVALID_ARGUMENT
Invalid argument.
Definition aranya-client.h:181
@ ARANYA_ERROR_CONFIG
Unable to create configuration info.
Definition aranya-client.h:220
@ ARANYA_ERROR_IPC
Could not send request to daemon.
Definition aranya-client.h:201
@ ARANYA_ERROR_INVALID_UTF8
Invalid UTF-8.
Definition aranya-client.h:193
@ ARANYA_ERROR_TIMEOUT
Timed out.
Definition aranya-client.h:177
@ ARANYA_ERROR_BUFFER_TOO_SMALL
Buffer is too small.
Definition aranya-client.h:189
@ ARANYA_ERROR_BUG
Internal bug discovered.
Definition aranya-client.h:173
@ ARANYA_ERROR_INVALID_ADDR
Invalid Address.
Definition aranya-client.h:197
@ ARANYA_ERROR_SERIALIZATION
Serialization error.
Definition aranya-client.h:224
@ ARANYA_ERROR_SUCCESS
Success.
Definition aranya-client.h:169
@ ARANYA_ERROR_NOT_ENABLED
Component is not enabled.
Definition aranya-client.h:185
@ ARANYA_ERROR_OTHER
Some other error occurred.
Definition aranya-client.h:228
@ ARANYA_ERROR_ARANYA
An Aranya error.
Definition aranya-client.h:205
@ ARANYA_ERROR_CLOSED
A connection got unexpectedly closed.
Definition aranya-client.h:216
@ ARANYA_ERROR_WOULD_BLOCK
Tried to poll an endpoint but nothing received yet.
Definition aranya-client.h:212
AranyaChanOp
Valid channel operations for a label assignment.
Definition aranya-client.h:135
@ ARANYA_CHAN_OP_SEND_ONLY
The device can only send data in channels with this label.
Definition aranya-client.h:145
@ ARANYA_CHAN_OP_SEND_RECV
The device can send or receive data in channels with this label.
Definition aranya-client.h:150
@ ARANYA_CHAN_OP_RECV_ONLY
The device can only receive data in channels with this label.
Definition aranya-client.h:140
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:527
AranyaError aranya_add_team_config_builder_set_quic_syncer(struct AranyaAddTeamConfigBuilder *cfg, struct AranyaAddTeamQuicSyncConfig *quic)
Configures QUIC syncer for `AranyaAddTeamConfigBuilder`.
AranyaError aranya_add_team_config_builder_set_id_ext(struct AranyaAddTeamConfigBuilder *cfg, const struct AranyaTeamId *team_id, struct AranyaExtError *__ext_err)
Configures team ID field for `AranyaAddTeamConfigBuilder`.
AranyaError aranya_add_team_config_builder_cleanup(struct AranyaAddTeamConfigBuilder *ptr)
Releases any resources associated with ptr.
AranyaError aranya_add_team_config_builder_set_id(struct AranyaAddTeamConfigBuilder *cfg, const struct AranyaTeamId *team_id)
Configures team ID field for `AranyaAddTeamConfigBuilder`.
AranyaError aranya_add_team_config_builder_set_quic_syncer_ext(struct AranyaAddTeamConfigBuilder *cfg, struct AranyaAddTeamQuicSyncConfig *quic, struct AranyaExtError *__ext_err)
Configures QUIC syncer for `AranyaAddTeamConfigBuilder`.
AranyaError aranya_add_team_config_build_ext(struct AranyaAddTeamConfigBuilder *cfg, struct AranyaAddTeamConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct an `AranyaAddTeamConfig`.
AranyaError aranya_add_team_config_build(struct AranyaAddTeamConfigBuilder *cfg, struct AranyaAddTeamConfig *out)
Attempts to construct an `AranyaAddTeamConfig`.
AranyaError aranya_add_team_config_builder_init(struct AranyaAddTeamConfigBuilder *out)
Initializes AranyaAddTeamConfigBuilder.
Team configuration used when joining a team.
Definition aranya-client.h:560
A builder for initializing an `AranyaAddTeamQuicSyncConfig`.
Definition aranya-client.h:466
AranyaError aranya_add_team_quic_sync_config_wrapped_seed_ext(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, const uint8_t *encap_seed, size_t encap_seed_len, struct AranyaExtError *__ext_err)
Attempts to set wrapped PSK seed value on `AranyaAddTeamQuicSyncConfigBuilder`.
AranyaError aranya_add_team_quic_sync_config_raw_seed_ikm(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, const struct AranyaSeedIkm *ikm)
Attempts to set raw PSK seed IKM value `AranyaSeedIkm` on `AranyaAddTeamQuicSyncConfigBuilder`.
AranyaError aranya_add_team_quic_sync_config_builder_init(struct AranyaAddTeamQuicSyncConfigBuilder *out)
Initializes AranyaAddTeamQuicSyncConfigBuilder.
AranyaError aranya_add_team_quic_sync_config_build(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, struct AranyaAddTeamQuicSyncConfig *out)
Attempts to construct an `AranyaAddTeamQuicSyncConfig`.
AranyaError aranya_add_team_quic_sync_config_wrapped_seed(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, const uint8_t *encap_seed, size_t encap_seed_len)
Attempts to set wrapped PSK seed value on `AranyaAddTeamQuicSyncConfigBuilder`.
AranyaError aranya_add_team_quic_sync_config_builder_cleanup(struct AranyaAddTeamQuicSyncConfigBuilder *ptr)
Releases any resources associated with ptr.
AranyaError aranya_add_team_quic_sync_config_build_ext(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, struct AranyaAddTeamQuicSyncConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct an `AranyaAddTeamQuicSyncConfig`.
AranyaError aranya_add_team_quic_sync_config_raw_seed_ikm_ext(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, const struct AranyaSeedIkm *ikm, struct AranyaExtError *__ext_err)
Attempts to set raw PSK seed IKM value `AranyaSeedIkm` on `AranyaAddTeamQuicSyncConfigBuilder`.
QUIC syncer configuration.
Definition aranya-client.h:515
Channel ID for AFC channel.
Definition aranya-client.h:707
An AFC Control Message, used to create the other end of a channel.
Definition aranya-client.h:677
AranyaError aranya_afc_ctrl_msg_cleanup(struct AranyaAfcCtrlMsg *ptr)
Releases any resources associated with ptr.
An AFC Receiving Channel Object.
Definition aranya-client.h:660
AranyaError aranya_afc_receive_channel_cleanup(struct AranyaAfcReceiveChannel *ptr)
Releases any resources associated with ptr.
An AFC Sending Channel Object.
Definition aranya-client.h:646
AranyaError aranya_afc_send_channel_cleanup(struct AranyaAfcSendChannel *ptr)
Releases any resources associated with ptr.
An AFC Sequence Number, for reordering messages.
Definition aranya-client.h:693
AranyaError aranya_afc_seq_cleanup(struct AranyaAfcSeq *ptr)
Releases any resources associated with ptr.
Configuration info builder for an Aranya client config `AranyaClientConfig`.
Definition aranya-client.h:452
AranyaError aranya_client_config_builder_set_daemon_uds_path_ext(struct AranyaClientConfigBuilder *cfg, const char *address, struct AranyaExtError *__ext_err)
Sets Unix Domain Socket path that the daemon is listening on.
AranyaError aranya_client_config_builder_cleanup(struct AranyaClientConfigBuilder *ptr)
Releases any resources associated with ptr.
AranyaError aranya_client_config_build(struct AranyaClientConfigBuilder *cfg, struct AranyaClientConfig *out)
Attempts to construct a `AranyaClientConfig`.
AranyaError aranya_client_config_builder_init(struct AranyaClientConfigBuilder *out)
Initializes AranyaClientConfigBuilder.
AranyaError aranya_client_config_builder_set_daemon_uds_path(struct AranyaClientConfigBuilder *cfg, const char *address)
Sets Unix Domain Socket path that the daemon is listening on.
AranyaError aranya_client_config_build_ext(struct AranyaClientConfigBuilder *cfg, struct AranyaClientConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct a `AranyaClientConfig`.
Configuration info for Aranya.
Definition aranya-client.h:407
A handle to an Aranya Client.
Definition aranya-client.h:393
AranyaError aranya_add_role_owner(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role, const struct AranyaRoleId *owning_role)
Adds owning_role as an owner of role.
AranyaError aranya_team_labels(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaLabelId *labels, size_t *labels_len)
Query for list of existing labels.
AranyaError aranya_remove_team_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaExtError *__ext_err)
Remove a team from local device storage.
AranyaError aranya_afc_send_channel_delete_ext(const struct AranyaClient *client, struct AranyaAfcSendChannel *channel, struct AranyaExtError *__ext_err)
Removes an `AranyaAfcSendChannel` from use.
AranyaError aranya_afc_accept_channel_ext(const struct AranyaClient *client, const struct AranyaTeamId *team_id, const uint8_t *control, size_t control_len, struct AranyaAfcReceiveChannel *channel, struct AranyaExtError *__ext_err)
Accept a receive-only AFC channel from by a peer by processing a control message.
AranyaError aranya_assign_label_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaLabelId *label_id, AranyaChanOp op, struct AranyaExtError *__ext_err)
Assign a label to a device so that it can be used for a channel.
AranyaError aranya_sync_now_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr, const struct AranyaSyncPeerConfig *config, struct AranyaExtError *__ext_err)
Sync with peer immediately.
AranyaError aranya_setup_default_roles_ext(struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *owning_role, struct AranyaRole *roles_out, size_t *roles_len, struct AranyaExtError *__ext_err)
Assign a role to a device.
AranyaError aranya_delete_label(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label_id)
Delete a channel label.
AranyaError aranya_change_role_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaRoleId *old_role, const struct AranyaRoleId *new_role, struct AranyaExtError *__ext_err)
Changes the role on a device
AranyaError aranya_afc_accept_channel(const struct AranyaClient *client, const struct AranyaTeamId *team_id, const uint8_t *control, size_t control_len, struct AranyaAfcReceiveChannel *channel)
Accept a receive-only AFC channel from by a peer by processing a control message.
AranyaError aranya_add_role_owner_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role, const struct AranyaRoleId *owning_role, struct AranyaExtError *__ext_err)
Adds owning_role as an owner of role.
AranyaError aranya_sync_hello_unsubscribe_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr peer, struct AranyaExtError *__ext_err)
Unsubscribe from hello notifications from a sync peer.
AranyaError aranya_sync_hello_subscribe_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr peer, AranyaDuration graph_change_delay, AranyaDuration duration, AranyaDuration schedule_delay, struct AranyaExtError *__ext_err)
Subscribe to hello notifications from a sync peer.
AranyaError aranya_revoke_role(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaRoleId *role_id)
Revoke a role from a device.
AranyaError aranya_team_device_label_assignments(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, struct AranyaLabelId *labels, size_t *labels_len)
Query device label assignments.
AranyaError aranya_add_sync_peer_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr, const struct AranyaSyncPeerConfig *config, struct AranyaExtError *__ext_err)
Add the peer for automatic periodic Aranya state syncing.
AranyaError aranya_sync_now(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr, const struct AranyaSyncPeerConfig *config)
Sync with peer immediately.
AranyaError aranya_remove_role_owner_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role, const struct AranyaRoleId *owning_role, struct AranyaExtError *__ext_err)
Removes an owning_role as an owner of role.
AranyaError aranya_delete_label_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label_id, struct AranyaExtError *__ext_err)
Delete a channel label.
AranyaError aranya_revoke_label(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaLabelId *label_id)
Revoke a label from a device.
AranyaError aranya_add_team_ext(const struct AranyaClient *client, const struct AranyaAddTeamConfig *cfg, struct AranyaExtError *__ext_err)
Add a team to the local device store.
AranyaError aranya_encrypt_psk_seed_for_peer(const struct AranyaClient *client, const struct AranyaTeamId *team_id, const uint8_t *keybundle, size_t keybundle_len, uint8_t *seed, size_t *seed_len)
Return serialized PSK seed encrypted for another device on the team.
AranyaError aranya_add_device_to_team_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const uint8_t *keybundle, size_t keybundle_len, const struct AranyaRoleId *role_id, struct AranyaExtError *__ext_err)
Add a device to the team with the default role.
AranyaError aranya_team_devices_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaDeviceId *devices, size_t *devices_len, struct AranyaExtError *__ext_err)
Query devices on team.
AranyaError aranya_client_cleanup(struct AranyaClient *ptr)
Releases any resources associated with ptr.
AranyaError aranya_team_device_keybundle(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, uint8_t *keybundle, size_t *keybundle_len)
Query device's keybundle.
AranyaError aranya_revoke_label_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaLabelId *label_id, struct AranyaExtError *__ext_err)
Revoke a label from a device.
AranyaError aranya_team_label_exists_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label, bool *__output, struct AranyaExtError *__ext_err)
Query if a label exists.
AranyaError aranya_team_roles(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaRole *roles_out, size_t *roles_out_len)
Returns all of the roles for this team.
AranyaError aranya_remove_team(const struct AranyaClient *client, const struct AranyaTeamId *team)
Remove a team from local device storage.
AranyaError aranya_team_device_role_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, struct AranyaRole *role_out, bool *has_role, struct AranyaExtError *__ext_err)
Returns the role assigned to the device, if any.
AranyaError aranya_team_labels_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaLabelId *labels, size_t *labels_len, struct AranyaExtError *__ext_err)
Query for list of existing labels.
AranyaError aranya_remove_device_from_team(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device)
Remove a device from the team.
AranyaError aranya_close_team(const struct AranyaClient *client, const struct AranyaTeamId *team)
Close the team and stop all operations on the graph.
AranyaError aranya_team_device_keybundle_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, uint8_t *keybundle, size_t *keybundle_len, struct AranyaExtError *__ext_err)
Query device's keybundle.
AranyaError aranya_create_role(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaRoleName role_name, const struct AranyaRoleId *owning_role, struct AranyaRole *role_out)
Create 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_add_device_to_team(const struct AranyaClient *client, const struct AranyaTeamId *team, const uint8_t *keybundle, size_t keybundle_len, const struct AranyaRoleId *role_id)
Add a device to the team with the default role.
AranyaError aranya_create_team(const struct AranyaClient *client, const struct AranyaCreateTeamConfig *cfg, struct AranyaTeamId *__output)
Create a new graph/team with the current device as the owner.
AranyaError aranya_add_label_managing_role(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label_id, const struct AranyaRoleId *managing_role_id)
Add label managing role.
AranyaError aranya_client_init(struct AranyaClient *client, const struct AranyaClientConfig *config)
Initializes a new client instance.
AranyaError aranya_add_label_managing_role_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label_id, const struct AranyaRoleId *managing_role_id, struct AranyaExtError *__ext_err)
Add label managing role.
AranyaError aranya_sync_hello_unsubscribe(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr peer)
Unsubscribe from hello notifications from a sync peer.
AranyaError aranya_remove_role_owner(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role, const struct AranyaRoleId *owning_role)
Removes an owning_role as an owner of role.
AranyaError aranya_delete_role(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role)
Delete a role.
AranyaError aranya_get_key_bundle(const struct AranyaClient *client, uint8_t *keybundle, size_t *keybundle_len)
Gets the public key bundle for this device.
AranyaError aranya_team_label_exists(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label, bool *__output)
Query if a label exists.
AranyaError aranya_create_role_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaRoleName role_name, const struct AranyaRoleId *owning_role, struct AranyaRole *role_out, struct AranyaExtError *__ext_err)
Create a role.
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_sync_hello_subscribe(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr peer, AranyaDuration graph_change_delay, AranyaDuration duration, AranyaDuration schedule_delay)
Subscribe to hello notifications from a sync peer.
AranyaError aranya_remove_device_from_team_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, struct AranyaExtError *__ext_err)
Remove a device from the team.
AranyaError aranya_get_device_id(const struct AranyaClient *client, struct AranyaDeviceId *__output)
Gets the public device ID.
AranyaError aranya_team_roles_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaRole *roles_out, size_t *roles_out_len, struct AranyaExtError *__ext_err)
Returns all of the roles for this team.
AranyaError aranya_get_key_bundle_ext(const struct AranyaClient *client, uint8_t *keybundle, size_t *keybundle_len, struct AranyaExtError *__ext_err)
Gets the public key bundle for this device.
AranyaError aranya_afc_receive_channel_delete_ext(const struct AranyaClient *client, struct AranyaAfcReceiveChannel *channel, struct AranyaExtError *__ext_err)
Removes an `AranyaAfcReceiveChannel` from use.
AranyaError aranya_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_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_revoke_role_management_permission_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role, const struct AranyaRoleId *managing_role, AranyaRoleManagementPermission perm, struct AranyaExtError *__ext_err)
Revokes a role management permission from a managing role.
AranyaError aranya_get_device_id_ext(const struct AranyaClient *client, struct AranyaDeviceId *__output, struct AranyaExtError *__ext_err)
Gets the public device ID.
AranyaError aranya_rand_ext(const struct AranyaClient *client, uint8_t *buf, size_t buf_len, struct AranyaExtError *__ext_err)
Return random bytes from Aranya's CSPRNG.
AranyaError aranya_client_init_ext(struct AranyaClient *client, const struct AranyaClientConfig *config, struct AranyaExtError *__ext_err)
Initializes a new client instance.
AranyaError aranya_add_sync_peer(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr, const struct AranyaSyncPeerConfig *config)
Add the peer for automatic periodic Aranya state syncing.
AranyaError aranya_assign_role_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaRoleId *role_id, struct AranyaExtError *__ext_err)
Assign a role to a device.
AranyaError aranya_revoke_role_management_permission(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role, const struct AranyaRoleId *managing_role, AranyaRoleManagementPermission perm)
Revokes a role management permission from a managing role.
AranyaError aranya_encrypt_psk_seed_for_peer_ext(const struct AranyaClient *client, const struct AranyaTeamId *team_id, const uint8_t *keybundle, size_t keybundle_len, uint8_t *seed, size_t *seed_len, struct AranyaExtError *__ext_err)
Return serialized PSK seed encrypted for another device on the team.
AranyaError aranya_revoke_role_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaRoleId *role_id, struct AranyaExtError *__ext_err)
Revoke a role from a device.
AranyaError aranya_afc_send_channel_delete(const struct AranyaClient *client, struct AranyaAfcSendChannel *channel)
Removes an `AranyaAfcSendChannel` from use.
AranyaError aranya_remove_sync_peer_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr, struct AranyaExtError *__ext_err)
Remove the peer from automatic Aranya state syncing.
AranyaError aranya_close_team_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaExtError *__ext_err)
Close the team and stop all operations on the graph.
AranyaError aranya_assign_label(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaLabelId *label_id, AranyaChanOp op)
Assign a label to a device so that it can be used for a channel.
AranyaError aranya_assign_role_management_permission(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role, const struct AranyaRoleId *managing_role, AranyaRoleManagementPermission perm)
Assigns a role management permission to a managing role.
AranyaError aranya_team_device_label_assignments_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, struct AranyaLabelId *labels, size_t *labels_len, struct AranyaExtError *__ext_err)
Query device label assignments.
AranyaError aranya_assign_role_management_permission_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaRoleId *role, const struct AranyaRoleId *managing_role, AranyaRoleManagementPermission perm, struct AranyaExtError *__ext_err)
Assigns a role management permission to a managing role.
AranyaError aranya_create_label_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaLabelName name, const struct AranyaRoleId *managing_role_id, struct AranyaLabelId *__output, struct AranyaExtError *__ext_err)
Create a channel label.
AranyaError aranya_create_label(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaLabelName name, const struct AranyaRoleId *managing_role_id, struct AranyaLabelId *__output)
Create a channel label.
A builder for initializing a `AranyaCreateTeamConfig`.
Definition aranya-client.h:539
AranyaError aranya_create_team_config_builder_set_quic_syncer(struct AranyaCreateTeamConfigBuilder *cfg, struct AranyaCreateTeamQuicSyncConfig *quic)
Configures QUIC syncer for `AranyaCreateTeamConfigBuilder`.
AranyaError aranya_create_team_config_builder_init(struct AranyaCreateTeamConfigBuilder *out)
Initializes AranyaCreateTeamConfigBuilder.
AranyaError aranya_create_team_config_builder_set_quic_syncer_ext(struct AranyaCreateTeamConfigBuilder *cfg, struct AranyaCreateTeamQuicSyncConfig *quic, struct AranyaExtError *__ext_err)
Configures QUIC syncer for `AranyaCreateTeamConfigBuilder`.
AranyaError aranya_create_team_config_build(struct AranyaCreateTeamConfigBuilder *cfg, struct AranyaCreateTeamConfig *out)
Attempts to construct a `AranyaCreateTeamConfig`.
AranyaError aranya_create_team_config_build_ext(struct AranyaCreateTeamConfigBuilder *cfg, struct AranyaCreateTeamConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct a `AranyaCreateTeamConfig`.
AranyaError aranya_create_team_config_builder_cleanup(struct AranyaCreateTeamConfigBuilder *ptr)
Releases any resources associated with ptr.
Team configuration used when creating a team.
Definition aranya-client.h:574
A builder for initializing a `AranyaCreateTeamQuicSyncConfig`.
Definition aranya-client.h:480
AranyaError aranya_create_team_quic_sync_config_raw_seed_ikm(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg, const struct AranyaSeedIkm *ikm)
Attempts to set raw PSK seed IKM value `AranyaSeedIkm` on `AranyaCreateTeamQuicSyncConfigBuilder`.
AranyaError aranya_create_team_quic_sync_config_raw_seed_ikm_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg, const struct AranyaSeedIkm *ikm, struct AranyaExtError *__ext_err)
Attempts to set raw PSK seed IKM value `AranyaSeedIkm` on `AranyaCreateTeamQuicSyncConfigBuilder`.
AranyaError aranya_create_team_quic_sync_config_builder_cleanup(struct AranyaCreateTeamQuicSyncConfigBuilder *ptr)
Releases any resources associated with ptr.
AranyaError aranya_create_team_quic_sync_config_build_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg, struct AranyaCreateTeamQuicSyncConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct a `AranyaCreateTeamQuicSyncConfig`.
AranyaError aranya_create_team_quic_sync_config_build(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg, struct AranyaCreateTeamQuicSyncConfig *out)
Attempts to construct a `AranyaCreateTeamQuicSyncConfig`.
AranyaError aranya_create_team_quic_sync_config_generate_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg, struct AranyaExtError *__ext_err)
Attempts to set PSK seed generation mode value on `AranyaCreateTeamQuicSyncConfigBuilder`.
AranyaError aranya_create_team_quic_sync_config_builder_init(struct AranyaCreateTeamQuicSyncConfigBuilder *out)
Initializes AranyaCreateTeamQuicSyncConfigBuilder.
AranyaError aranya_create_team_quic_sync_config_generate(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg)
Attempts to set PSK seed generation mode value on `AranyaCreateTeamQuicSyncConfigBuilder`.
QUIC syncer configuration.
Definition aranya-client.h:501
Device ID.
Definition aranya-client.h:445
Definition aranya-client.h:381
AranyaError aranya_ext_error_msg_ext(const struct AranyaExtError *err, char *msg, size_t *msg_len, struct AranyaExtError *__ext_err)
Copies the extended error's message into msg.
AranyaError aranya_ext_error_init(struct AranyaExtError *out)
Initializes AranyaExtError.
AranyaError aranya_ext_error_msg(const struct AranyaExtError *err, char *msg, size_t *msg_len)
Copies the extended error's message into msg.
AranyaError aranya_ext_error_cleanup(struct AranyaExtError *ptr)
Releases any resources associated with ptr.
Cryptographically secure Aranya ID.
Definition aranya-client.h:431
AranyaError aranya_id_from_str(const char *str, struct AranyaId *__output)
Decodes str into an `AranyaId`.
AranyaError aranya_id_to_str(const struct AranyaId *id, char *str, size_t *str_len)
Writes the human-readable encoding of id to str.
Label ID.
Definition aranya-client.h:631
Uniquely identifies a `AranyaRole`.
Definition aranya-client.h:438
A role.
Definition aranya-client.h:419
AranyaError aranya_role_get_author(const struct AranyaRole *role, struct AranyaDeviceId *__output)
Get the author of a role.
AranyaError aranya_role_get_id_ext(const struct AranyaRole *role, struct AranyaRoleId *__output, struct AranyaExtError *__ext_err)
Get ID of role.
AranyaError aranya_role_cleanup(struct AranyaRole *ptr)
Releases any resources associated with ptr.
AranyaError aranya_role_get_name(const struct AranyaRole *role, const char **__output)
Get name of role.
AranyaError aranya_role_get_id(const struct AranyaRole *role, struct AranyaRoleId *__output)
Get ID of role.
AranyaError aranya_role_get_author_ext(const struct AranyaRole *role, struct AranyaDeviceId *__output, struct AranyaExtError *__ext_err)
Get the author of a role.
Raw PSK seed IKM for QUIC syncer.
Definition aranya-client.h:492
Builder for a Sync Peer config `AranyaSyncPeerConfig`.
Definition aranya-client.h:586
AranyaError aranya_sync_peer_config_builder_cleanup(struct AranyaSyncPeerConfigBuilder *ptr)
Releases any resources associated with ptr.
AranyaError aranya_sync_peer_config_build(struct AranyaSyncPeerConfigBuilder *cfg, struct AranyaSyncPeerConfig *out)
Attempts to build a `AranyaSyncPeerConfig`.
AranyaError aranya_sync_peer_config_builder_init(struct AranyaSyncPeerConfigBuilder *out)
Initializes AranyaSyncPeerConfigBuilder.
AranyaError aranya_sync_peer_config_builder_set_sync_later_ext(struct AranyaSyncPeerConfigBuilder *cfg, struct AranyaExtError *__ext_err)
Updates the config to disable immediate syncing with the peer.
AranyaError aranya_sync_peer_config_builder_set_sync_now(struct AranyaSyncPeerConfigBuilder *cfg)
Updates the config to enable immediate syncing with the peer.
AranyaError aranya_sync_peer_config_builder_set_interval(struct AranyaSyncPeerConfigBuilder *cfg, AranyaDuration interval)
Configures how often the peer will be synced with.
AranyaError aranya_sync_peer_config_builder_set_sync_now_ext(struct AranyaSyncPeerConfigBuilder *cfg, struct AranyaExtError *__ext_err)
Updates the config to enable immediate syncing with the peer.
AranyaError aranya_sync_peer_config_builder_set_sync_on_hello(struct AranyaSyncPeerConfigBuilder *cfg, uint32_t sync_on_hello)
Sets whether automatic syncing should occur when a hello message is received from this peer indicatin...
AranyaError aranya_sync_peer_config_builder_set_interval_ext(struct AranyaSyncPeerConfigBuilder *cfg, AranyaDuration interval, struct AranyaExtError *__ext_err)
Configures how often the peer will be synced with.
AranyaError aranya_sync_peer_config_builder_set_sync_on_hello_ext(struct AranyaSyncPeerConfigBuilder *cfg, uint32_t sync_on_hello, struct AranyaExtError *__ext_err)
Sets whether automatic syncing should occur when a hello message is received from this peer indicatin...
AranyaError aranya_sync_peer_config_build_ext(struct AranyaSyncPeerConfigBuilder *cfg, struct AranyaSyncPeerConfig *out, struct AranyaExtError *__ext_err)
Attempts to build a `AranyaSyncPeerConfig`.
AranyaError aranya_sync_peer_config_builder_set_sync_later(struct AranyaSyncPeerConfigBuilder *cfg)
Updates the config to disable immediate syncing with the peer.
Sync Peer config.
Definition aranya-client.h:600
Team ID.
Definition aranya-client.h:551