Struct openssl::ssl::SslStream [] [src]

pub struct SslStream<S> {
    // some fields omitted
}

A stream wrapper which handles SSL encryption for an underlying stream.

Methods

impl SslStream<TcpStream>

fn try_clone(&self) -> Result<SslStream<TcpStream>>

Create a new independently owned handle to the underlying socket.

impl<S: Read + Write + AsRawFd> SslStream<S>

fn connect<T: IntoSsl>(ssl: T, stream: S) -> Result<SslStream<S>, SslError>

Creates an SSL/TLS client operating over the provided stream.

Streams passed to this method must implement AsRawFd on Unixy platforms and AsRawSocket on Windows. Use connect_generic for streams that do not.

fn accept<T: IntoSsl>(ssl: T, stream: S) -> Result<SslStream<S>, SslError>

Creates an SSL/TLS server operating over the provided stream.

Streams passed to this method must implement AsRawFd on Unixy platforms and AsRawSocket on Windows. Use accept_generic for streams that do not.

impl<S: Read + Write> SslStream<S>

fn connect_generic<T: IntoSsl>(ssl: T, stream: S) -> Result<SslStream<S>, SslError>

Creates an SSL/TLS client operating over the provided stream.

SslStreams returned by this method will be less efficient than ones returned by connect, so this method should only be used for streams that do not implement AsRawFd and AsRawSocket.

fn accept_generic<T: IntoSsl>(ssl: T, stream: S) -> Result<SslStream<S>, SslError>

Creates an SSL/TLS server operating over the provided stream.

SslStreams returned by this method will be less efficient than ones returned by accept, so this method should only be used for streams that do not implement AsRawFd and AsRawSocket.

fn get_ref(&self) -> &S

Returns a reference to the underlying stream.

fn get_mut(&mut self) -> &mut S

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.

fn ssl(&self) -> &Ssl

Returns the OpenSSL Ssl object associated with this stream.

Trait Implementations

impl<S> Debug for SslStream<S> where S: Debug

fn fmt(&self, fmt: &mut Formatter) -> Result

impl<S: Read + Write> Read for SslStream<S>

fn read(&mut self, buf: &mut [u8]) -> Result<usize>

fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>

fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>

fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>

fn by_ref(&mut self) -> &mut Self

fn bytes(self) -> Bytes<Self>

fn chars(self) -> Chars<Self>

fn chain<R>(self, next: R) -> Chain<Self, R> where R: Read

fn take(self, limit: u64) -> Take<Self>

fn tee<W>(self, out: W) -> Tee<Self, W> where W: Write

impl<S: Read + Write> Write for SslStream<S>

fn write(&mut self, buf: &[u8]) -> Result<usize>

fn flush(&mut self) -> Result<()>

fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

fn write_fmt(&mut self, fmt: Arguments) -> Result<(), Error>

fn by_ref(&mut self) -> &mut Self

fn broadcast<W>(self, other: W) -> Broadcast<Self, W> where W: Write

Derived Implementations

impl<S: Clone> Clone for SslStream<S>

fn clone(&self) -> SslStream<S>

fn clone_from(&mut self, source: &Self)