pub struct TlsStream<S, C = Connection>{ /* private fields */ }Implementations§
Source§impl<S, C> TlsStream<S, C>
impl<S, C> TlsStream<S, C>
Sourcepub fn poll_blinding(
self: Pin<&mut TlsStream<S, C>>,
ctx: &mut Context<'_>,
) -> Poll<Result<(), Error>>
pub fn poll_blinding( self: Pin<&mut TlsStream<S, C>>, ctx: &mut Context<'_>, ) -> Poll<Result<(), Error>>
Polls the blinding timer, if there is any.
s2n has a “blinding” functionality - when a bad behavior from the peer
is detected, sleeps for 10-30 seconds before answering the client
and closing the connection. This mitigates some timing side channels
that could leak information about encrypted data. See the
s2n_connection_set_blinding docs for more details.
For security reasons, to allow for blinding to correctly function,
before dropping an s2n connection, you should wait until either
poll_blinding or poll_shutdown (which calls poll_blinding
internally) returns ready.
pub async fn apply_blinding(&mut self) -> Result<(), Error>
Trait Implementations§
Source§impl<S, C> AsMut<Connection> for TlsStream<S, C>
impl<S, C> AsMut<Connection> for TlsStream<S, C>
Source§fn as_mut(&mut self) -> &mut Connection
fn as_mut(&mut self) -> &mut Connection
Converts this type into a mutable reference of the (usually inferred) input type.
Source§impl<S, C> AsRef<Connection> for TlsStream<S, C>
impl<S, C> AsRef<Connection> for TlsStream<S, C>
Source§fn as_ref(&self) -> &Connection
fn as_ref(&self) -> &Connection
Converts this type into a shared reference of the (usually inferred) input type.
Source§impl<S, C> AsyncWrite for TlsStream<S, C>
impl<S, C> AsyncWrite for TlsStream<S, C>
Source§fn poll_write(
self: Pin<&mut TlsStream<S, C>>,
ctx: &mut Context<'_>,
buf: &[u8],
) -> Poll<Result<usize, Error>>
fn poll_write( self: Pin<&mut TlsStream<S, C>>, ctx: &mut Context<'_>, buf: &[u8], ) -> Poll<Result<usize, Error>>
Attempt to write bytes from
buf into the object. Read moreSource§fn poll_flush(
self: Pin<&mut TlsStream<S, C>>,
ctx: &mut Context<'_>,
) -> Poll<Result<(), Error>>
fn poll_flush( self: Pin<&mut TlsStream<S, C>>, ctx: &mut Context<'_>, ) -> Poll<Result<(), Error>>
Attempts to flush the object, ensuring that any buffered data reach
their destination. Read more
Source§fn poll_shutdown(
self: Pin<&mut TlsStream<S, C>>,
ctx: &mut Context<'_>,
) -> Poll<Result<(), Error>>
fn poll_shutdown( self: Pin<&mut TlsStream<S, C>>, ctx: &mut Context<'_>, ) -> Poll<Result<(), Error>>
Initiates or attempts to shut down this writer, returning success when
the I/O connection has completely shut down. Read more
Source§fn poll_write_vectored(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
bufs: &[IoSlice<'_>],
) -> Poll<Result<usize, Error>>
fn poll_write_vectored( self: Pin<&mut Self>, cx: &mut Context<'_>, bufs: &[IoSlice<'_>], ) -> Poll<Result<usize, Error>>
Like
poll_write, except that it writes from a slice of buffers. Read moreSource§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
Determines if this writer has an efficient
poll_write_vectored
implementation. Read moreAuto Trait Implementations§
impl<S, C = Connection> !RefUnwindSafe for TlsStream<S, C>
impl<S, C = Connection> !UnwindSafe for TlsStream<S, C>
impl<S, C> Freeze for TlsStream<S, C>
impl<S, C> Send for TlsStream<S, C>
impl<S, C> Sync for TlsStream<S, C>
impl<S, C> Unpin for TlsStream<S, C>
impl<S, C> UnsafeUnpin for TlsStream<S, C>where
C: UnsafeUnpin,
S: UnsafeUnpin,
Blanket Implementations§
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