Struct openssl::ssl::SslStreamBuilder [−][src]
A partially constructed SslStream
, useful for unusual handshakes.
Implementations
impl<S> SslStreamBuilder<S> where
S: Read + Write,
[src]
S: Read + Write,
pub fn new(ssl: Ssl, stream: S) -> Self
[src]
Begin creating an SslStream
atop stream
pub fn stateless(&mut self) -> Result<bool, ErrorStack>
[src]
Perform a stateless server-side handshake
Requires that cookie generation and verification callbacks were set on the SSL context.
Returns Ok(true)
if a complete ClientHello containing a valid cookie
was read, in which case the handshake should be continued via
accept
. If a HelloRetryRequest containing a fresh cookie was
transmitted, Ok(false)
is returned instead. If the handshake cannot
proceed at all, Err
is returned.
This corresponds to SSL_stateless
pub fn set_connect_state(&mut self)
[src]
Configure as an outgoing stream from a client.
This corresponds to SSL_set_connect_state
.
pub fn set_accept_state(&mut self)
[src]
Configure as an incoming stream to a server.
This corresponds to SSL_set_accept_state
.
pub fn connect(self) -> Result<SslStream<S>, HandshakeError<S>>
[src]
See Ssl::connect
pub fn accept(self) -> Result<SslStream<S>, HandshakeError<S>>
[src]
See Ssl::accept
pub fn handshake(self) -> Result<SslStream<S>, HandshakeError<S>>
[src]
Initiates the handshake.
This will fail if set_accept_state
or set_connect_state
was not called first.
This corresponds to SSL_do_handshake
.
pub fn read_early_data(&mut self, buf: &mut [u8]) -> Result<usize, Error>
[src]
Read application data transmitted by a client before handshake completion.
Useful for reducing latency, but vulnerable to replay attacks. Call
set_accept_state
first.
Returns Ok(0)
if all early data has been read.
Requires OpenSSL 1.1.1 or newer.
This corresponds to SSL_read_early_data
.
pub fn write_early_data(&mut self, buf: &[u8]) -> Result<usize, Error>
[src]
Send data to the server without blocking on handshake completion.
Useful for reducing latency, but vulnerable to replay attacks. Call
set_connect_state
first.
Requires OpenSSL 1.1.1 or newer.
This corresponds to SSL_write_early_data
.
impl<S> SslStreamBuilder<S>
[src]
pub fn get_ref(&self) -> &S
[src]
Returns a shared reference to the underlying stream.
pub fn get_mut(&mut self) -> &mut S
[src]
Returns a mutable reference to the underlying stream.
Warning
It is inadvisable to read from or write to the underlying stream as it will most likely corrupt the SSL session.
pub fn ssl(&self) -> &SslRef
[src]
Returns a shared reference to the Ssl
object associated with this builder.
pub fn set_dtls_mtu_size(&mut self, mtu_size: usize)
[src]
Set the DTLS MTU size.
It will be ignored if the value is smaller than the minimum packet size the DTLS protocol requires.
Panics
This function panics if the given mtu size can’t be represented in a positive c_long
range
Auto Trait Implementations
impl<S> RefUnwindSafe for SslStreamBuilder<S> where
S: RefUnwindSafe,
S: RefUnwindSafe,
impl<S> Send for SslStreamBuilder<S> where
S: Send,
S: Send,
impl<S> Sync for SslStreamBuilder<S> where
S: Sync,
S: Sync,
impl<S> Unpin for SslStreamBuilder<S> where
S: Unpin,
S: Unpin,
impl<S> UnwindSafe for SslStreamBuilder<S> where
S: UnwindSafe,
S: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,