pub struct Channels { /* private fields */ }Available on crate feature
afc only.Expand description
Aranya Fast Channels handler for managing channels which allow encrypting/decrypting application data buffers.
Implementations§
Source§impl Channels
impl Channels
Sourcepub const OVERHEAD: usize = AfcClient<ReadState<CS>>::OVERHEAD
pub const OVERHEAD: usize = AfcClient<ReadState<CS>>::OVERHEAD
The number of additional octets required to encrypt plaintext data.
Sourcepub async fn create_channel(
&self,
team_id: TeamId,
peer_id: DeviceId,
label_id: LabelId,
) -> Result<(SendChannel, CtrlMsg)>
pub async fn create_channel( &self, team_id: TeamId, peer_id: DeviceId, label_id: LabelId, ) -> Result<(SendChannel, CtrlMsg)>
Create a unidirectional send-only channel SendChannel.
The creator of the channel will have a unidirectional channel SendChannel that can only seal() data.
Once the peer processes the CtrlMsg message with accept_channel(),
it will have a corresponding unidirectional channel ReceiveChannel object that can only open() data.
To send data from the creator of the channel to the peer:
- Invoke
seal()on the data to obtain a ciphertext buffer. - Send the ciphertext to the peer via any network transport.
- On the peer, invoke
open()on the ciphertext to obtain the plaintext.
Returns:
- A unidirectional channel
SendChannelobject that can onlyseal()data. - A
CtrlMsgmessage to send to the peer.
Sourcepub async fn accept_channel(
&self,
team_id: TeamId,
ctrl: CtrlMsg,
) -> Result<ReceiveChannel>
pub async fn accept_channel( &self, team_id: TeamId, ctrl: CtrlMsg, ) -> Result<ReceiveChannel>
Receive a CtrlMsg message from a peer to create a corresponding receive channel.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Channels
impl RefUnwindSafe for Channels
impl Send for Channels
impl Sync for Channels
impl Unpin for Channels
impl UnsafeUnpin for Channels
impl UnwindSafe for Channels
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.