11#ifndef ARANYA_CLIENT_H
12#define ARANYA_CLIENT_H
21#include <sys/socket.h>
23#if defined(ENABLE_ARANYA_AFC) && !defined(ENABLE_ARANYA_PREVIEW)
24 #error "AFC is currently in preview. Set `ENABLE_ARANYA_PREVIEW` to opt into preview APIs."
27#if defined(ENABLE_ARANYA_AQC) && !defined(ENABLE_ARANYA_EXPERIMENTAL)
28 #error "AQC is currently experimental. Set 'ENABLE_ARANYA_EXPERIMENTAL' to opt into experimental APIs."
31#ifndef __has_attribute
32 #define __has_attribute(x) 0
35#if !defined(ARANYA_ALIGNED)
36 #if __has_attribute(aligned)
37 #define ARANYA_ALIGNED(n) __attribute__((aligned(n)))
39 #error "compiler must support `aligned` attribute"
43#if !defined(ARANYA_DESIGNATED_INIT)
44 #if __has_attribute(designated_init)
45 #define ARANYA_DESIGNATED_INIT __attribute__((designated_init))
47 #define ARANYA_DESIGNATED_INIT
51#if !defined(ARANYA_MUST_USE)
52 #if __has_attribute(warn_unused_result)
53 #define ARANYA_MUST_USE __attribute__((warn_unused_result))
55 #define ARANYA_MUST_USE
59#if !defined(ARANYA_NO_RETURN)
60 #if __has_attribute(noreturn)
61 #define ARANYA_NO_RETURN __attribute__((noreturn))
63 #define ARANYA_NO_RETURN
67#if !defined(ARANYA_NON_NULL)
69 #if __has_attribute(nonnull)
70 #define ARANYA_NON_NULL __attribute__((nonnull))
72 #elif defined(__clang__)
73 #define ARANYA_NON_NULL _Nonnull
75 #define ARANYA_NON_NULL
79#if !defined(ARANYA_PACKED)
80 #if __has_attribute(packed)
81 #define ARANYA_PACKED __attribute__((packed))
88#define ARANYA_DURATION_SECONDS (1000 * ARANYA_DURATION_MILLISECONDS)
90#define ARANYA_DURATION_MILLISECONDS (1000 * ARANYA_DURATION_MICROSECONDS)
92#define ARANYA_DURATION_MICROSECONDS (1000 * ARANYA_DURATION_NANOSECONDS)
94#define ARANYA_DURATION_NANOSECONDS 1
99#define ARANYA_ID_LEN 32
104#define ARANYA_SEED_IKM_LEN 32
109#define ARANYA_ID_STR_LEN (((ARANYA_ID_LEN * 1375) / 1000) + 1)
111#if defined(ENABLE_ARANYA_AFC)
118#define ARANYA_AFC_CHANNEL_OVERHEAD 24
121#if defined(ENABLE_ARANYA_AFC)
128#define ARANYA_AFC_CHANNEL_OVERHEAD 24
131#if defined(ENABLE_ARANYA_AFC)
135enum AranyaAfcChannelType
140 ARANYA_AFC_CHANNEL_TYPE_BIDIRECTIONAL,
141 ARANYA_AFC_CHANNEL_TYPE_SENDER,
142 ARANYA_AFC_CHANNEL_TYPE_RECEIVER,
145typedef uint8_t AranyaAfcChannelType;
149#if defined(ENABLE_ARANYA_AQC)
153enum AranyaAqcChannelType
158 ARANYA_AQC_CHANNEL_TYPE_BIDIRECTIONAL,
159 ARANYA_AQC_CHANNEL_TYPE_RECEIVER,
162typedef uint8_t AranyaAqcChannelType;
244#if defined(ENABLE_ARANYA_AFC)
245 ARANYA_ERROR_WRONG_CHANNEL_TYPE,
247#if defined(ENABLE_ARANYA_AQC)
344 uint8_t __for_size_only[96];
356 uint8_t __for_size_only[3728];
370 uint8_t __for_size_only[56];
396 uint8_t __for_size_only[72];
399#if defined(ENABLE_ARANYA_AQC)
403typedef struct ARANYA_ALIGNED(8) AranyaAqcConfigBuilder {
409 uint8_t __for_size_only[24];
410} AranyaAqcConfigBuilder;
413#if defined(ENABLE_ARANYA_AQC)
419typedef struct ARANYA_ALIGNED(8) AranyaAqcConfig {
425 uint8_t __for_size_only[40];
440 uint8_t __for_size_only[288];
454 uint8_t __for_size_only[56];
475 uint8_t __for_size_only[56];
489 uint8_t __for_size_only[288];
501 uint8_t __for_size_only[328];
513 uint8_t __for_size_only[56];
534 uint8_t __for_size_only[320];
548 uint8_t __for_size_only[56];
560 uint8_t __for_size_only[40];
574 uint8_t __for_size_only[32];
603#if defined(ENABLE_ARANYA_AQC)
609typedef const char *AranyaNetIdentifier;
612#if defined(ENABLE_ARANYA_AQC)
620typedef struct ARANYA_ALIGNED(8) AranyaAqcPeerChannel {
626 uint8_t __for_size_only[168];
627} AranyaAqcPeerChannel;
630#if defined(ENABLE_ARANYA_AQC)
634typedef struct ARANYA_ALIGNED(8) AranyaAqcBidiChannel {
640 uint8_t __for_size_only[160];
641} AranyaAqcBidiChannel;
644#if defined(ENABLE_ARANYA_AQC)
648typedef struct ARANYA_ALIGNED(8) AranyaAqcSendChannel {
654 uint8_t __for_size_only[160];
655} AranyaAqcSendChannel;
658#if defined(ENABLE_ARANYA_AQC)
662typedef struct ARANYA_ALIGNED(8) AranyaAqcReceiveChannel {
668 uint8_t __for_size_only[160];
669} AranyaAqcReceiveChannel;
672#if defined(ENABLE_ARANYA_AQC)
676typedef struct ARANYA_ALIGNED(8) AranyaAqcBidiStream {
682 uint8_t __for_size_only[208];
683} AranyaAqcBidiStream;
686#if defined(ENABLE_ARANYA_AQC)
690typedef struct ARANYA_ALIGNED(8) AranyaAqcSendStream {
696 uint8_t __for_size_only[176];
697} AranyaAqcSendStream;
700#if defined(ENABLE_ARANYA_AQC)
704typedef struct ARANYA_ALIGNED(8) AranyaAqcReceiveStream {
710 uint8_t __for_size_only[208];
711} AranyaAqcReceiveStream;
714#if defined(ENABLE_ARANYA_AFC)
723typedef struct ARANYA_ALIGNED(8) AranyaAfcChannel {
729 uint8_t __for_size_only[96];
733#if defined(ENABLE_ARANYA_AFC)
740typedef struct ARANYA_ALIGNED(8) AranyaAfcCtrlMsg {
746 uint8_t __for_size_only[32];
750#if defined(ENABLE_ARANYA_AFC)
756typedef struct ARANYA_ALIGNED(8) AranyaAfcSeq {
762 uint8_t __for_size_only[24];
779const char *aranya_error_to_str(uint32_t err);
937 size_t *keybundle_len);
950 size_t *keybundle_len,
1078 const char *address);
1089 const char *address,
1092#if defined(ENABLE_ARANYA_AQC)
1101AranyaError aranya_aqc_config_builder_init(
struct AranyaAqcConfigBuilder *out);
1104#if defined(ENABLE_ARANYA_AQC)
1113AranyaError aranya_aqc_config_builder_init_ext(
struct AranyaAqcConfigBuilder *out,
1117#if defined(ENABLE_ARANYA_AQC)
1125AranyaError aranya_aqc_config_builder_cleanup(
struct AranyaAqcConfigBuilder *ptr);
1128#if defined(ENABLE_ARANYA_AQC)
1136AranyaError aranya_aqc_config_builder_cleanup_ext(
struct AranyaAqcConfigBuilder *ptr,
1140#if defined(ENABLE_ARANYA_AQC)
1152AranyaError aranya_aqc_config_build(
struct AranyaAqcConfigBuilder *cfg,
1153 struct AranyaAqcConfig *out);
1156#if defined(ENABLE_ARANYA_AQC)
1168AranyaError aranya_aqc_config_build_ext(
struct AranyaAqcConfigBuilder *cfg,
1169 struct AranyaAqcConfig *out,
1173#if defined(ENABLE_ARANYA_AQC)
1183AranyaError aranya_aqc_config_builder_set_address(
struct AranyaAqcConfigBuilder *cfg,
1184 const char *address);
1187#if defined(ENABLE_ARANYA_AQC)
1197AranyaError aranya_aqc_config_builder_set_address_ext(
struct AranyaAqcConfigBuilder *cfg,
1198 const char *address,
1202#if defined(ENABLE_ARANYA_AQC)
1212 const struct AranyaAqcConfig *aqc_config);
1215#if defined(ENABLE_ARANYA_AQC)
1225 const struct AranyaAqcConfig *aqc_config,
1343 const uint8_t *encap_seed,
1344 size_t encap_seed_len);
1357 const uint8_t *encap_seed,
1358 size_t encap_seed_len,
2134 const uint8_t *keybundle,
2135 size_t keybundle_len,
2161 const uint8_t *keybundle,
2162 size_t keybundle_len,
2250 const uint8_t *keybundle,
2251 size_t keybundle_len);
2267 const uint8_t *keybundle,
2268 size_t keybundle_len,
2432 size_t *devices_len);
2447 size_t *devices_len,
2465 size_t *keybundle_len);
2482 size_t *keybundle_len,
2504 size_t *labels_len);
2545 size_t *labels_len);
2600#if defined(ENABLE_ARANYA_AQC)
2620#if defined(ENABLE_ARANYA_AQC)
2641#if defined(ENABLE_ARANYA_AQC)
2661 AranyaNetIdentifier net_identifier);
2664#if defined(ENABLE_ARANYA_AQC)
2684 AranyaNetIdentifier net_identifier,
2688#if defined(ENABLE_ARANYA_AQC)
2704 AranyaNetIdentifier net_identifier);
2707#if defined(ENABLE_ARANYA_AQC)
2723 AranyaNetIdentifier net_identifier,
2727#if defined(ENABLE_ARANYA_AQC)
2735AranyaError aranya_aqc_peer_channel_cleanup(
struct AranyaAqcPeerChannel *ptr);
2738#if defined(ENABLE_ARANYA_AQC)
2746AranyaError aranya_aqc_peer_channel_cleanup_ext(
struct AranyaAqcPeerChannel *ptr,
2750#if defined(ENABLE_ARANYA_AQC)
2758AranyaError aranya_aqc_bidi_channel_cleanup(
struct AranyaAqcBidiChannel *ptr);
2761#if defined(ENABLE_ARANYA_AQC)
2769AranyaError aranya_aqc_bidi_channel_cleanup_ext(
struct AranyaAqcBidiChannel *ptr,
2773#if defined(ENABLE_ARANYA_AQC)
2781AranyaError aranya_aqc_send_channel_cleanup(
struct AranyaAqcSendChannel *ptr);
2784#if defined(ENABLE_ARANYA_AQC)
2792AranyaError aranya_aqc_send_channel_cleanup_ext(
struct AranyaAqcSendChannel *ptr,
2796#if defined(ENABLE_ARANYA_AQC)
2804AranyaError aranya_aqc_receive_channel_cleanup(
struct AranyaAqcReceiveChannel *ptr);
2807#if defined(ENABLE_ARANYA_AQC)
2815AranyaError aranya_aqc_receive_channel_cleanup_ext(
struct AranyaAqcReceiveChannel *ptr,
2819#if defined(ENABLE_ARANYA_AQC)
2827AranyaError aranya_aqc_bidi_stream_cleanup(
struct AranyaAqcBidiStream *ptr);
2830#if defined(ENABLE_ARANYA_AQC)
2838AranyaError aranya_aqc_bidi_stream_cleanup_ext(
struct AranyaAqcBidiStream *ptr,
2842#if defined(ENABLE_ARANYA_AQC)
2850AranyaError aranya_aqc_send_stream_cleanup(
struct AranyaAqcSendStream *ptr);
2853#if defined(ENABLE_ARANYA_AQC)
2861AranyaError aranya_aqc_send_stream_cleanup_ext(
struct AranyaAqcSendStream *ptr,
2865#if defined(ENABLE_ARANYA_AQC)
2873AranyaError aranya_aqc_receive_stream_cleanup(
struct AranyaAqcReceiveStream *ptr);
2876#if defined(ENABLE_ARANYA_AQC)
2884AranyaError aranya_aqc_receive_stream_cleanup_ext(
struct AranyaAqcReceiveStream *ptr,
2888#if defined(ENABLE_ARANYA_AQC)
2904 AranyaNetIdentifier peer,
2906 struct AranyaAqcBidiChannel *channel);
2909#if defined(ENABLE_ARANYA_AQC)
2925 AranyaNetIdentifier peer,
2927 struct AranyaAqcBidiChannel *channel,
2931#if defined(ENABLE_ARANYA_AQC)
2947 AranyaNetIdentifier peer,
2949 struct AranyaAqcSendChannel *channel);
2952#if defined(ENABLE_ARANYA_AQC)
2968 AranyaNetIdentifier peer,
2970 struct AranyaAqcSendChannel *channel,
2974#if defined(ENABLE_ARANYA_AQC)
2986 struct AranyaAqcBidiChannel *channel);
2989#if defined(ENABLE_ARANYA_AQC)
3001 struct AranyaAqcBidiChannel *channel,
3005#if defined(ENABLE_ARANYA_AQC)
3017 struct AranyaAqcSendChannel *channel);
3020#if defined(ENABLE_ARANYA_AQC)
3032 struct AranyaAqcSendChannel *channel,
3036#if defined(ENABLE_ARANYA_AQC)
3048 struct AranyaAqcReceiveChannel *channel);
3051#if defined(ENABLE_ARANYA_AQC)
3063 struct AranyaAqcReceiveChannel *channel,
3067#if defined(ENABLE_ARANYA_AQC)
3099 struct AranyaAqcPeerChannel *channel,
3100 AranyaAqcChannelType *__output);
3103#if defined(ENABLE_ARANYA_AQC)
3135 struct AranyaAqcPeerChannel *channel,
3136 AranyaAqcChannelType *__output,
3140#if defined(ENABLE_ARANYA_AQC)
3153AranyaError aranya_aqc_get_bidi_channel(
struct AranyaAqcPeerChannel *channel,
3154 struct AranyaAqcBidiChannel *bidi);
3157#if defined(ENABLE_ARANYA_AQC)
3170AranyaError aranya_aqc_get_bidi_channel_ext(
struct AranyaAqcPeerChannel *channel,
3171 struct AranyaAqcBidiChannel *bidi,
3175#if defined(ENABLE_ARANYA_AQC)
3188AranyaError aranya_aqc_get_receive_channel(
struct AranyaAqcPeerChannel *channel,
3189 struct AranyaAqcReceiveChannel *receiver);
3192#if defined(ENABLE_ARANYA_AQC)
3205AranyaError aranya_aqc_get_receive_channel_ext(
struct AranyaAqcPeerChannel *channel,
3206 struct AranyaAqcReceiveChannel *receiver,
3210#if defined(ENABLE_ARANYA_AQC)
3224 struct AranyaAqcBidiChannel *channel,
3225 struct AranyaAqcBidiStream *stream);
3228#if defined(ENABLE_ARANYA_AQC)
3242 struct AranyaAqcBidiChannel *channel,
3243 struct AranyaAqcBidiStream *stream,
3247#if defined(ENABLE_ARANYA_AQC)
3259 struct AranyaAqcBidiStream *stream,
3260 const uint8_t *data,
3264#if defined(ENABLE_ARANYA_AQC)
3276 struct AranyaAqcBidiStream *stream,
3277 const uint8_t *data,
3282#if defined(ENABLE_ARANYA_AQC)
3295AranyaError aranya_aqc_bidi_stream_try_recv(
struct AranyaAqcBidiStream *stream,
3297 size_t *buffer_len);
3300#if defined(ENABLE_ARANYA_AQC)
3313AranyaError aranya_aqc_bidi_stream_try_recv_ext(
struct AranyaAqcBidiStream *stream,
3319#if defined(ENABLE_ARANYA_AQC)
3333 struct AranyaAqcBidiChannel *channel,
3334 struct AranyaAqcSendStream *stream);
3337#if defined(ENABLE_ARANYA_AQC)
3351 struct AranyaAqcBidiChannel *channel,
3352 struct AranyaAqcSendStream *stream,
3356#if defined(ENABLE_ARANYA_AQC)
3375AranyaError aranya_aqc_bidi_try_receive_stream(
struct AranyaAqcBidiChannel *channel,
3376 struct AranyaAqcReceiveStream *recv_stream,
3377 struct AranyaAqcSendStream *send_stream,
3381#if defined(ENABLE_ARANYA_AQC)
3400AranyaError aranya_aqc_bidi_try_receive_stream_ext(
struct AranyaAqcBidiChannel *channel,
3401 struct AranyaAqcReceiveStream *recv_stream,
3402 struct AranyaAqcSendStream *send_stream,
3407#if defined(ENABLE_ARANYA_AQC)
3421 struct AranyaAqcSendChannel *channel,
3422 struct AranyaAqcSendStream *stream);
3425#if defined(ENABLE_ARANYA_AQC)
3439 struct AranyaAqcSendChannel *channel,
3440 struct AranyaAqcSendStream *stream,
3444#if defined(ENABLE_ARANYA_AQC)
3459AranyaError aranya_aqc_recv_try_receive_uni_stream(
struct AranyaAqcReceiveChannel *channel,
3460 struct AranyaAqcReceiveStream *stream);
3463#if defined(ENABLE_ARANYA_AQC)
3478AranyaError aranya_aqc_recv_try_receive_uni_stream_ext(
struct AranyaAqcReceiveChannel *channel,
3479 struct AranyaAqcReceiveStream *stream,
3483#if defined(ENABLE_ARANYA_AQC)
3495 struct AranyaAqcSendStream *stream,
3496 const uint8_t *data,
3500#if defined(ENABLE_ARANYA_AQC)
3512 struct AranyaAqcSendStream *stream,
3513 const uint8_t *data,
3518#if defined(ENABLE_ARANYA_AQC)
3531AranyaError aranya_aqc_recv_stream_try_recv(
struct AranyaAqcReceiveStream *stream,
3533 size_t *buffer_len);
3536#if defined(ENABLE_ARANYA_AQC)
3549AranyaError aranya_aqc_recv_stream_try_recv_ext(
struct AranyaAqcReceiveStream *stream,
3555#if defined(ENABLE_ARANYA_AFC)
3563AranyaError aranya_afc_channel_cleanup(
struct AranyaAfcChannel *ptr);
3566#if defined(ENABLE_ARANYA_AFC)
3574AranyaError aranya_afc_channel_cleanup_ext(
struct AranyaAfcChannel *ptr,
3578#if defined(ENABLE_ARANYA_AFC)
3586AranyaError aranya_afc_ctrl_msg_cleanup(
struct AranyaAfcCtrlMsg *ptr);
3589#if defined(ENABLE_ARANYA_AFC)
3597AranyaError aranya_afc_ctrl_msg_cleanup_ext(
struct AranyaAfcCtrlMsg *ptr,
3601#if defined(ENABLE_ARANYA_AFC)
3609AranyaError aranya_afc_seq_cleanup(
struct AranyaAfcSeq *ptr);
3612#if defined(ENABLE_ARANYA_AFC)
3620AranyaError aranya_afc_seq_cleanup_ext(
struct AranyaAfcSeq *ptr,
3624#if defined(ENABLE_ARANYA_AFC)
3648 struct AranyaAfcChannel *channel,
3649 struct AranyaAfcCtrlMsg *control);
3652#if defined(ENABLE_ARANYA_AFC)
3676 struct AranyaAfcChannel *channel,
3677 struct AranyaAfcCtrlMsg *control,
3681#if defined(ENABLE_ARANYA_AFC)
3705 struct AranyaAfcChannel *channel,
3706 struct AranyaAfcCtrlMsg *control);
3709#if defined(ENABLE_ARANYA_AFC)
3733 struct AranyaAfcChannel *channel,
3734 struct AranyaAfcCtrlMsg *control,
3738#if defined(ENABLE_ARANYA_AFC)
3762 struct AranyaAfcChannel *channel,
3763 struct AranyaAfcCtrlMsg *control);
3766#if defined(ENABLE_ARANYA_AFC)
3790 struct AranyaAfcChannel *channel,
3791 struct AranyaAfcCtrlMsg *control,
3795#if defined(ENABLE_ARANYA_AFC)
3809 const uint8_t *control,
3811 struct AranyaAfcChannel *channel,
3812 AranyaAfcChannelType *__output);
3815#if defined(ENABLE_ARANYA_AFC)
3829 const uint8_t *control,
3831 struct AranyaAfcChannel *channel,
3832 AranyaAfcChannelType *__output,
3836#if defined(ENABLE_ARANYA_AFC)
3843AranyaError aranya_afc_get_channel_type(
const struct AranyaAfcChannel *channel,
3844 AranyaAfcChannelType *__output);
3847#if defined(ENABLE_ARANYA_AFC)
3854AranyaError aranya_afc_get_channel_type_ext(
const struct AranyaAfcChannel *channel,
3855 AranyaAfcChannelType *__output,
3859#if defined(ENABLE_ARANYA_AFC)
3866AranyaError aranya_afc_get_label_id(
const struct AranyaAfcChannel *channel,
3870#if defined(ENABLE_ARANYA_AFC)
3877AranyaError aranya_afc_get_label_id_ext(
const struct AranyaAfcChannel *channel,
3882#if defined(ENABLE_ARANYA_AFC)
3892AranyaError aranya_afc_ctrl_msg_get_bytes(
const struct AranyaAfcCtrlMsg *control,
3893 const uint8_t **ptr,
3897#if defined(ENABLE_ARANYA_AFC)
3907AranyaError aranya_afc_ctrl_msg_get_bytes_ext(
const struct AranyaAfcCtrlMsg *control,
3908 const uint8_t **ptr,
3913#if defined(ENABLE_ARANYA_AFC)
3921AranyaError aranya_afc_seq_cmp(
const struct AranyaAfcSeq *seq1,
3922 const struct AranyaAfcSeq *seq2,
3926#if defined(ENABLE_ARANYA_AFC)
3934AranyaError aranya_afc_seq_cmp_ext(
const struct AranyaAfcSeq *seq1,
3935 const struct AranyaAfcSeq *seq2,
3940#if defined(ENABLE_ARANYA_AFC)
3951AranyaError aranya_afc_channel_seal(
const struct AranyaAfcChannel *channel,
3952 const uint8_t *plaintext,
3953 size_t plaintext_len,
3958#if defined(ENABLE_ARANYA_AFC)
3969AranyaError aranya_afc_channel_seal_ext(
const struct AranyaAfcChannel *channel,
3970 const uint8_t *plaintext,
3971 size_t plaintext_len,
3977#if defined(ENABLE_ARANYA_AFC)
3989AranyaError aranya_afc_channel_open(
const struct AranyaAfcChannel *channel,
3990 const uint8_t *ciphertext,
3991 size_t ciphertext_len,
3994 struct AranyaAfcSeq *seq);
3997#if defined(ENABLE_ARANYA_AFC)
4009AranyaError aranya_afc_channel_open_ext(
const struct AranyaAfcChannel *channel,
4010 const uint8_t *ciphertext,
4011 size_t ciphertext_len,
4014 struct AranyaAfcSeq *seq,
4018#if defined(ENABLE_ARANYA_AFC)
4031 struct AranyaAfcChannel *channel);
4034#if defined(ENABLE_ARANYA_AFC)
4047 struct AranyaAfcChannel *channel,
#define ARANYA_SEED_IKM_LEN
The size in bytes of a PSK seed IKM.
Definition aranya-client.h:104
#define ARANYA_ID_LEN
The size in bytes of an ID.
Definition aranya-client.h:99
uint64_t AranyaDuration
A type to represent a span of time in nanoseconds.
Definition aranya-client.h:580
const char * AranyaAddr
A network socket address for an Aranya client.
Definition aranya-client.h:601
AranyaError aranya_init_logging(void)
Initializes logging.
const char * AranyaLabelName
An AQC label name.
Definition aranya-client.h:587
AranyaError aranya_init_logging_ext(struct AranyaExtError *__ext_err)
Initializes logging.
AranyaError
An error code.
Definition aranya-client.h:203
@ ARANYA_ERROR_INVALID_ARGUMENT
Invalid argument.
Definition aranya-client.h:219
@ ARANYA_ERROR_CONFIG
Unable to create configuration info.
Definition aranya-client.h:264
@ ARANYA_ERROR_IPC
Could not send request to daemon.
Definition aranya-client.h:239
@ ARANYA_ERROR_INVALID_UTF8
Invalid UTF-8.
Definition aranya-client.h:231
@ ARANYA_ERROR_TIMEOUT
Timed out.
Definition aranya-client.h:215
@ ARANYA_ERROR_BUFFER_TOO_SMALL
Buffer is too small.
Definition aranya-client.h:227
@ ARANYA_ERROR_BUG
Internal bug discovered.
Definition aranya-client.h:211
@ ARANYA_ERROR_INVALID_ADDR
Invalid Address.
Definition aranya-client.h:235
@ ARANYA_ERROR_SERIALIZATION
Serialization error.
Definition aranya-client.h:268
@ ARANYA_ERROR_SUCCESS
Success.
Definition aranya-client.h:207
@ ARANYA_ERROR_NOT_ENABLED
Component is not enabled.
Definition aranya-client.h:223
@ ARANYA_ERROR_OTHER
Some other error occurred.
Definition aranya-client.h:272
@ ARANYA_ERROR_ARANYA
An Aranya error.
Definition aranya-client.h:243
@ ARANYA_ERROR_CLOSED
A connection got unexpectedly closed.
Definition aranya-client.h:260
@ ARANYA_ERROR_WOULD_BLOCK
Tried to poll an endpoint but nothing received yet.
Definition aranya-client.h:256
AranyaChanOp
Valid channel operations for a label assignment.
Definition aranya-client.h:173
@ ARANYA_CHAN_OP_SEND_ONLY
The device can only send data in channels with this label.
Definition aranya-client.h:183
@ ARANYA_CHAN_OP_SEND_RECV
The device can send and receive data in channels with this label.
Definition aranya-client.h:188
@ ARANYA_CHAN_OP_RECV_ONLY
The device can only receive data in channels with this label.
Definition aranya-client.h:178
AranyaRole
An enum containing team roles defined in the Aranya policy.
Definition aranya-client.h:285
@ ARANYA_ROLE_ADMIN
Admin role.
Definition aranya-client.h:293
@ ARANYA_ROLE_OWNER
Owner role.
Definition aranya-client.h:289
@ ARANYA_ROLE_MEMBER
Member role.
Definition aranya-client.h:301
@ ARANYA_ROLE_OPERATOR
Operator role.
Definition aranya-client.h:297
A builder for initializing an `AranyaAddTeamConfig`.
Definition aranya-client.h:495
AranyaError aranya_add_team_config_builder_set_quic_syncer(struct AranyaAddTeamConfigBuilder *cfg, struct AranyaAddTeamQuicSyncConfig *quic)
Configures QUIC syncer for `AranyaAddTeamConfigBuilder`.
AranyaError aranya_add_team_config_builder_set_id_ext(struct AranyaAddTeamConfigBuilder *cfg, const struct AranyaTeamId *team_id, struct AranyaExtError *__ext_err)
Configures team ID field for `AranyaAddTeamConfigBuilder`.
AranyaError aranya_add_team_config_builder_cleanup_ext(struct AranyaAddTeamConfigBuilder *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
AranyaError aranya_add_team_config_builder_cleanup(struct AranyaAddTeamConfigBuilder *ptr)
Releases any resources associated with ptr.
AranyaError aranya_add_team_config_builder_set_id(struct AranyaAddTeamConfigBuilder *cfg, const struct AranyaTeamId *team_id)
Configures team ID field for `AranyaAddTeamConfigBuilder`.
AranyaError aranya_add_team_config_builder_set_quic_syncer_ext(struct AranyaAddTeamConfigBuilder *cfg, struct AranyaAddTeamQuicSyncConfig *quic, struct AranyaExtError *__ext_err)
Configures QUIC syncer for `AranyaAddTeamConfigBuilder`.
AranyaError aranya_add_team_config_build_ext(struct AranyaAddTeamConfigBuilder *cfg, struct AranyaAddTeamConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct an `AranyaAddTeamConfig`.
AranyaError aranya_add_team_config_builder_init_ext(struct AranyaAddTeamConfigBuilder *out, struct AranyaExtError *__ext_err)
Initializes AranyaAddTeamConfigBuilder.
AranyaError aranya_add_team_config_build(struct AranyaAddTeamConfigBuilder *cfg, struct AranyaAddTeamConfig *out)
Attempts to construct an `AranyaAddTeamConfig`.
AranyaError aranya_add_team_config_builder_init(struct AranyaAddTeamConfigBuilder *out)
Initializes AranyaAddTeamConfigBuilder.
Team configuration used when joining a team.
Definition aranya-client.h:528
A builder for initializing an `AranyaAddTeamQuicSyncConfig`.
Definition aranya-client.h:434
AranyaError aranya_add_team_quic_sync_config_wrapped_seed_ext(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, const uint8_t *encap_seed, size_t encap_seed_len, struct AranyaExtError *__ext_err)
Attempts to set wrapped PSK seed value on `AranyaAddTeamQuicSyncConfigBuilder`.
AranyaError aranya_add_team_quic_sync_config_builder_init_ext(struct AranyaAddTeamQuicSyncConfigBuilder *out, struct AranyaExtError *__ext_err)
Initializes AranyaAddTeamQuicSyncConfigBuilder.
AranyaError aranya_add_team_quic_sync_config_raw_seed_ikm(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, const struct AranyaSeedIkm *ikm)
Attempts to set raw PSK seed IKM value `AranyaSeedIkm` on `AranyaAddTeamQuicSyncConfigBuilder`.
AranyaError aranya_add_team_quic_sync_config_builder_init(struct AranyaAddTeamQuicSyncConfigBuilder *out)
Initializes AranyaAddTeamQuicSyncConfigBuilder.
AranyaError aranya_add_team_quic_sync_config_build(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, struct AranyaAddTeamQuicSyncConfig *out)
Attempts to construct an `AranyaAddTeamQuicSyncConfig`.
AranyaError aranya_add_team_quic_sync_config_builder_cleanup_ext(struct AranyaAddTeamQuicSyncConfigBuilder *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
AranyaError aranya_add_team_quic_sync_config_wrapped_seed(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, const uint8_t *encap_seed, size_t encap_seed_len)
Attempts to set wrapped PSK seed value on `AranyaAddTeamQuicSyncConfigBuilder`.
AranyaError aranya_add_team_quic_sync_config_builder_cleanup(struct AranyaAddTeamQuicSyncConfigBuilder *ptr)
Releases any resources associated with ptr.
AranyaError aranya_add_team_quic_sync_config_build_ext(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, struct AranyaAddTeamQuicSyncConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct an `AranyaAddTeamQuicSyncConfig`.
AranyaError aranya_add_team_quic_sync_config_raw_seed_ikm_ext(struct AranyaAddTeamQuicSyncConfigBuilder *cfg, const struct AranyaSeedIkm *ikm, struct AranyaExtError *__ext_err)
Attempts to set raw PSK seed IKM value `AranyaSeedIkm` on `AranyaAddTeamQuicSyncConfigBuilder`.
QUIC syncer configuration.
Definition aranya-client.h:483
Configuration info builder for an Aranya client config `AranyaClientConfig`.
Definition aranya-client.h:390
AranyaError aranya_client_config_builder_set_daemon_uds_path_ext(struct AranyaClientConfigBuilder *cfg, const char *address, struct AranyaExtError *__ext_err)
Sets Unix Domain Socket path that the daemon is listening on.
AranyaError aranya_client_config_builder_cleanup(struct AranyaClientConfigBuilder *ptr)
Releases any resources associated with ptr.
AranyaError aranya_client_config_builder_init_ext(struct AranyaClientConfigBuilder *out, struct AranyaExtError *__ext_err)
Initializes AranyaClientConfigBuilder.
AranyaError aranya_client_config_build(struct AranyaClientConfigBuilder *cfg, struct AranyaClientConfig *out)
Attempts to construct a `AranyaClientConfig`.
AranyaError aranya_client_config_builder_init(struct AranyaClientConfigBuilder *out)
Initializes AranyaClientConfigBuilder.
AranyaError aranya_client_config_builder_set_daemon_uds_path(struct AranyaClientConfigBuilder *cfg, const char *address)
Sets Unix Domain Socket path that the daemon is listening on.
AranyaError aranya_client_config_build_ext(struct AranyaClientConfigBuilder *cfg, struct AranyaClientConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct a `AranyaClientConfig`.
AranyaError aranya_client_config_builder_cleanup_ext(struct AranyaClientConfigBuilder *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
Configuration info for Aranya.
Definition aranya-client.h:364
A handle to an Aranya Client.
Definition aranya-client.h:350
AranyaError aranya_client_cleanup_ext(struct AranyaClient *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
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_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_assign_role(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, AranyaRole role)
Assign a role to a device.
AranyaError aranya_query_label_exists(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label, bool *__output)
Query if a label exists.
AranyaError aranya_revoke_role_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, AranyaRole role, struct AranyaExtError *__ext_err)
Revoke a role from a device.
AranyaError aranya_delete_label(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label_id)
Delete a channel label.
AranyaError aranya_assign_role_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, AranyaRole role, struct AranyaExtError *__ext_err)
Assign a role to a device.
AranyaError aranya_query_labels(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaLabelId *labels, size_t *labels_len)
Query for list of existing labels.
AranyaError aranya_add_device_to_team_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const uint8_t *keybundle, size_t keybundle_len, struct AranyaExtError *__ext_err)
Add a device to the team with the default role.
AranyaError aranya_query_devices_on_team(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaDeviceId *devices, size_t *devices_len)
Query devices on team.
AranyaError aranya_add_sync_peer_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr, const struct AranyaSyncPeerConfig *config, struct AranyaExtError *__ext_err)
Add the peer for automatic periodic Aranya state syncing.
AranyaError aranya_sync_now(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaAddr addr, const struct AranyaSyncPeerConfig *config)
Sync with peer immediately.
AranyaError aranya_delete_label_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label_id, struct AranyaExtError *__ext_err)
Delete a channel label.
AranyaError aranya_revoke_label(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaLabelId *label_id)
Revoke a label from a device.
AranyaError aranya_query_device_label_assignments(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, struct AranyaLabelId *labels, size_t *labels_len)
Query device label assignments.
AranyaError aranya_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_client_cleanup(struct AranyaClient *ptr)
Releases any resources associated with ptr.
AranyaError aranya_create_label_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaLabelName name, struct AranyaLabelId *__output, struct AranyaExtError *__ext_err)
Create a channel label.
AranyaError aranya_query_label_exists_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaLabelId *label, bool *__output, struct AranyaExtError *__ext_err)
Query if a label exists.
AranyaError aranya_query_device_keybundle(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, uint8_t *keybundle, size_t *keybundle_len)
Query device's keybundle.
AranyaError aranya_add_device_to_team(const struct AranyaClient *client, const struct AranyaTeamId *team, const uint8_t *keybundle, size_t keybundle_len)
Add a device to the team with the default role.
AranyaError aranya_revoke_label_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, const struct AranyaLabelId *label_id, struct AranyaExtError *__ext_err)
Revoke a label from a device.
AranyaError aranya_remove_team(const struct AranyaClient *client, const struct AranyaTeamId *team)
Remove a team from local device storage.
AranyaError aranya_remove_device_from_team(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device)
Remove a device from the team.
AranyaError aranya_create_label(const struct AranyaClient *client, const struct AranyaTeamId *team, AranyaLabelName name, struct AranyaLabelId *__output)
Create a channel label.
AranyaError aranya_close_team(const struct AranyaClient *client, const struct AranyaTeamId *team)
Close the team and stop all operations on the graph.
AranyaError aranya_create_team(const struct AranyaClient *client, const struct AranyaCreateTeamConfig *cfg, struct AranyaTeamId *__output)
Create a new graph/team with the current device as the owner.
AranyaError aranya_client_init(struct AranyaClient *client, const struct AranyaClientConfig *config)
Initializes a new client instance.
AranyaError aranya_get_key_bundle(const struct AranyaClient *client, uint8_t *keybundle, size_t *keybundle_len)
Gets the public key bundle for this device.
AranyaError aranya_query_device_keybundle_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, uint8_t *keybundle, size_t *keybundle_len, struct AranyaExtError *__ext_err)
Query device's keybundle.
AranyaError aranya_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_query_labels_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaLabelId *labels, size_t *labels_len, struct AranyaExtError *__ext_err)
Query for list of existing labels.
AranyaError aranya_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_get_key_bundle_ext(const struct AranyaClient *client, uint8_t *keybundle, size_t *keybundle_len, struct AranyaExtError *__ext_err)
Gets the public key bundle for this device.
AranyaError aranya_revoke_role(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, AranyaRole role)
Revoke a role from a device.
AranyaError aranya_add_team(const struct AranyaClient *client, const struct AranyaAddTeamConfig *cfg)
Add a team to the local device store.
AranyaError aranya_query_device_label_assignments_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, const struct AranyaDeviceId *device, struct AranyaLabelId *labels, size_t *labels_len, struct AranyaExtError *__ext_err)
Query device label assignments.
AranyaError aranya_get_device_id_ext(const struct AranyaClient *client, struct AranyaDeviceId *__output, struct AranyaExtError *__ext_err)
Gets the public device ID.
AranyaError aranya_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_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_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_query_devices_on_team_ext(const struct AranyaClient *client, const struct AranyaTeamId *team, struct AranyaDeviceId *devices, size_t *devices_len, struct AranyaExtError *__ext_err)
Query devices on team.
A builder for initializing a `AranyaCreateTeamConfig`.
Definition aranya-client.h:507
AranyaError aranya_create_team_config_builder_set_quic_syncer(struct AranyaCreateTeamConfigBuilder *cfg, struct AranyaCreateTeamQuicSyncConfig *quic)
Configures QUIC syncer for `AranyaCreateTeamConfigBuilder`.
AranyaError aranya_create_team_config_builder_init(struct AranyaCreateTeamConfigBuilder *out)
Initializes AranyaCreateTeamConfigBuilder.
AranyaError aranya_create_team_config_builder_set_quic_syncer_ext(struct AranyaCreateTeamConfigBuilder *cfg, struct AranyaCreateTeamQuicSyncConfig *quic, struct AranyaExtError *__ext_err)
Configures QUIC syncer for `AranyaCreateTeamConfigBuilder`.
AranyaError aranya_create_team_config_build(struct AranyaCreateTeamConfigBuilder *cfg, struct AranyaCreateTeamConfig *out)
Attempts to construct a `AranyaCreateTeamConfig`.
AranyaError aranya_create_team_config_builder_cleanup_ext(struct AranyaCreateTeamConfigBuilder *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
AranyaError aranya_create_team_config_build_ext(struct AranyaCreateTeamConfigBuilder *cfg, struct AranyaCreateTeamConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct a `AranyaCreateTeamConfig`.
AranyaError aranya_create_team_config_builder_init_ext(struct AranyaCreateTeamConfigBuilder *out, struct AranyaExtError *__ext_err)
Initializes AranyaCreateTeamConfigBuilder.
AranyaError aranya_create_team_config_builder_cleanup(struct AranyaCreateTeamConfigBuilder *ptr)
Releases any resources associated with ptr.
Team configuration used when creating a team.
Definition aranya-client.h:542
A builder for initializing a `AranyaCreateTeamQuicSyncConfig`.
Definition aranya-client.h:448
AranyaError aranya_create_team_quic_sync_config_raw_seed_ikm(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg, const struct AranyaSeedIkm *ikm)
Attempts to set raw PSK seed IKM value `AranyaSeedIkm` on `AranyaCreateTeamQuicSyncConfigBuilder`.
AranyaError aranya_create_team_quic_sync_config_builder_cleanup_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
AranyaError aranya_create_team_quic_sync_config_raw_seed_ikm_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg, const struct AranyaSeedIkm *ikm, struct AranyaExtError *__ext_err)
Attempts to set raw PSK seed IKM value `AranyaSeedIkm` on `AranyaCreateTeamQuicSyncConfigBuilder`.
AranyaError aranya_create_team_quic_sync_config_builder_cleanup(struct AranyaCreateTeamQuicSyncConfigBuilder *ptr)
Releases any resources associated with ptr.
AranyaError aranya_create_team_quic_sync_config_build_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg, struct AranyaCreateTeamQuicSyncConfig *out, struct AranyaExtError *__ext_err)
Attempts to construct a `AranyaCreateTeamQuicSyncConfig`.
AranyaError aranya_create_team_quic_sync_config_build(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg, struct AranyaCreateTeamQuicSyncConfig *out)
Attempts to construct a `AranyaCreateTeamQuicSyncConfig`.
AranyaError aranya_create_team_quic_sync_config_generate_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg, struct AranyaExtError *__ext_err)
Attempts to set PSK seed generation mode value on `AranyaCreateTeamQuicSyncConfigBuilder`.
AranyaError aranya_create_team_quic_sync_config_builder_init(struct AranyaCreateTeamQuicSyncConfigBuilder *out)
Initializes AranyaCreateTeamQuicSyncConfigBuilder.
AranyaError aranya_create_team_quic_sync_config_builder_init_ext(struct AranyaCreateTeamQuicSyncConfigBuilder *out, struct AranyaExtError *__ext_err)
Initializes AranyaCreateTeamQuicSyncConfigBuilder.
AranyaError aranya_create_team_quic_sync_config_generate(struct AranyaCreateTeamQuicSyncConfigBuilder *cfg)
Attempts to set PSK seed generation mode value on `AranyaCreateTeamQuicSyncConfigBuilder`.
QUIC syncer configuration.
Definition aranya-client.h:469
Device ID.
Definition aranya-client.h:383
Definition aranya-client.h:338
AranyaError aranya_ext_error_msg_ext(const struct AranyaExtError *err, char *msg, size_t *msg_len, struct AranyaExtError *__ext_err)
Copies the extended error's message into msg.
AranyaError aranya_ext_error_init(struct AranyaExtError *out)
Initializes AranyaExtError.
AranyaError aranya_ext_error_msg(const struct AranyaExtError *err, char *msg, size_t *msg_len)
Copies the extended error's message into msg.
AranyaError aranya_ext_error_init_ext(struct AranyaExtError *out, struct AranyaExtError *__ext_err)
Initializes AranyaExtError.
AranyaError aranya_ext_error_cleanup(struct AranyaExtError *ptr)
Releases any resources associated with ptr.
AranyaError aranya_ext_error_cleanup_ext(struct AranyaExtError *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
Cryptographically secure Aranya ID.
Definition aranya-client.h:376
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:592
Raw PSK seed IKM for QUIC syncer.
Definition aranya-client.h:460
Builder for a Sync Peer config `AranyaSyncPeerConfig`.
Definition aranya-client.h:554
AranyaError aranya_sync_peer_config_builder_cleanup(struct AranyaSyncPeerConfigBuilder *ptr)
Releases any resources associated with ptr.
AranyaError aranya_sync_peer_config_builder_init_ext(struct AranyaSyncPeerConfigBuilder *out, struct AranyaExtError *__ext_err)
Initializes AranyaSyncPeerConfigBuilder.
AranyaError aranya_sync_peer_config_build(struct AranyaSyncPeerConfigBuilder *cfg, struct AranyaSyncPeerConfig *out)
Attempts to build a `AranyaSyncPeerConfig`.
AranyaError aranya_sync_peer_config_builder_init(struct AranyaSyncPeerConfigBuilder *out)
Initializes AranyaSyncPeerConfigBuilder.
AranyaError aranya_sync_peer_config_builder_set_sync_later_ext(struct AranyaSyncPeerConfigBuilder *cfg, struct AranyaExtError *__ext_err)
Updates the config to disable immediate syncing with the peer.
AranyaError aranya_sync_peer_config_builder_set_sync_now(struct AranyaSyncPeerConfigBuilder *cfg)
Updates the config to enable immediate syncing with the peer.
AranyaError aranya_sync_peer_config_builder_set_interval(struct AranyaSyncPeerConfigBuilder *cfg, AranyaDuration interval)
Configures how often the peer will be synced with.
AranyaError aranya_sync_peer_config_builder_set_sync_now_ext(struct AranyaSyncPeerConfigBuilder *cfg, struct AranyaExtError *__ext_err)
Updates the config to enable immediate syncing with the peer.
AranyaError aranya_sync_peer_config_builder_set_interval_ext(struct AranyaSyncPeerConfigBuilder *cfg, AranyaDuration interval, struct AranyaExtError *__ext_err)
Configures how often the peer will be synced with.
AranyaError aranya_sync_peer_config_builder_cleanup_ext(struct AranyaSyncPeerConfigBuilder *ptr, struct AranyaExtError *__ext_err)
Releases any resources associated with ptr.
AranyaError aranya_sync_peer_config_build_ext(struct AranyaSyncPeerConfigBuilder *cfg, struct AranyaSyncPeerConfig *out, struct AranyaExtError *__ext_err)
Attempts to build a `AranyaSyncPeerConfig`.
AranyaError aranya_sync_peer_config_builder_set_sync_later(struct AranyaSyncPeerConfigBuilder *cfg)
Updates the config to disable immediate syncing with the peer.
Sync Peer config.
Definition aranya-client.h:568
Team ID.
Definition aranya-client.h:519