1
0
mirror of https://github.com/fafhrd91/actix-net synced 2025-01-31 10:22:09 +01:00

330 lines
133 KiB
HTML
Raw Normal View History

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The state of an SSL/TLS session."><title>Ssl in actix_tls::accept::openssl::reexports - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-b778ab399e080a4b.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="actix_tls" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0-nightly (7608018cb 2024-09-29)" data-channel="nightly" data-search-js="search-e056c65ede92db13.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../../../../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-54bc299d2a5e4e43.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="icon" href="https://actix.rs/favicon.ico"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button><a class="logo-container" href="../../../../actix_tls/index.html"><img src="https://actix.rs/img/logo.png" alt=""></a></nav><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="../../../../actix_tls/index.html"><img src="https://actix.rs/img/logo.png" alt="logo"></a><h2><a href="../../../../actix_tls/index.html">actix_<wbr>tls</a><span class="version">3.4.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Ssl</a></h2><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.accept" title="accept">accept</a></li><li><a href="#method.connect" title="connect">connect</a></li><li><a href="#method.new" title="new">new</a></li><li><a href="#method.new_ex_index" title="new_ex_index">new_ex_index</a></li></ul><h3><a href="#deref-methods-SslRef">Methods from Deref&lt;<wbr>Target=<wbr>SslRef&gt;</a></h3><ul class="block deref-methods"><li><a href="#method.add_chain_cert" title="add_chain_cert">add_chain_cert</a></li><li><a href="#method.add_client_ca" title="add_client_ca">add_client_ca</a></li><li><a href="#method.bytes_to_cipher_list" title="bytes_to_cipher_list">bytes_to_cipher_list</a></li><li><a href="#method.certificate" title="certificate">certificate</a></li><li><a href="#method.client_hello_ciphers" title="client_hello_ciphers">client_hello_ciphers</a></li><li><a href="#method.client_hello_compression_methods" title="client_hello_compression_methods">client_hello_compression_methods</a></li><li><a href="#method.client_hello_isv2" title="client_hello_isv2">client_hello_isv2</a></li><li><a href="#method.client_hello_legacy_version" title="client_hello_legacy_version">client_hello_legacy_version</a></li><li><a href="#method.client_hello_random" title="client_hello_random">client_hello_random</a></li><li><a href="#method.client_hello_session_id" title="client_hello_session_id">client_hello_session_id</a></li><li><a href="#method.client_random" title="client_random">client_random</a></li><li><a href="#method.current_cipher" title="current_cipher">current_cipher</a></li><li><a href="#method.ex_data" title="ex_data">ex_data</a></li><li><a href="#m
<p><code>Ssl</code> objects are created from an <a href="struct.SslContext.html"><code>SslContext</code></a>, which provides configuration defaults.
These defaults can be overridden on a per-<code>Ssl</code> basis, however.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Ssl" class="impl"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2264">source</a><a href="#impl-Ssl" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Ssl.html" title="struct actix_tls::accept::openssl::reexports::Ssl">Ssl</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new_ex_index" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2270-2272">source</a><h4 class="code-header">pub fn <a href="#method.new_ex_index" class="fn">new_ex_index</a>&lt;T&gt;() -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ex_data/struct.Index.html" title="struct openssl::ex_data::Index">Index</a>&lt;<a class="struct" href="struct.Ssl.html" title="struct actix_tls::accept::openssl::reexports::Ssl">Ssl</a>, T&gt;, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;<div class="where">where
T: 'static + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Returns a new extra data index.</p>
<p>Each invocation of this function is guaranteed to return a distinct index. These can be used
to store data in the context that can be retrieved later by callbacks, for example.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_ex_new_index.html"><code>SSL_get_ex_new_index</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2305">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(ctx: &amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslContextRef.html" title="struct openssl::ssl::SslContextRef">SslContextRef</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.Ssl.html" title="struct actix_tls::accept::openssl::reexports::Ssl">Ssl</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Creates a new <code>Ssl</code>.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/ssl/SSL_new.html"><code>SSL_new</code></a>.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_new.html"><code>SSL_new</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.connect" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2328-2330">source</a><h4 class="code-header">pub fn <a href="#method.connect" class="fn">connect</a>&lt;S&gt;(self, stream: S) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslStream.html" title="struct openssl::ssl::SslStream">SslStream</a>&lt;S&gt;, <a class="enum" href="../../../connect/openssl/reexports/enum.HandshakeError.html" title="enum actix_tls::connect::openssl::reexports::HandshakeError">HandshakeError</a>&lt;S&gt;&gt;<div class="where">where
S: <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Read.html" title="trait std::io::Read">Read</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a>,</div></h4></section></summary><div class="docblock"><p>Initiates a client-side TLS handshake.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_connect.html"><code>SSL_connect</code></a>.</p>
<h5 id="warning"><a class="doc-anchor" href="#warning">§</a>Warning</h5>
<p>OpenSSLs default configuration is insecure. It is highly recommended to use
<code>SslConnector</code> rather than <code>Ssl</code> directly, as it manages that configuration.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_connect.html"><code>SSL_connect</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.accept" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2347-2349">source</a><h4 class="code-header">pub fn <a href="#method.accept" class="fn">accept</a>&lt;S&gt;(self, stream: S) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslStream.html" title="struct openssl::ssl::SslStream">SslStream</a>&lt;S&gt;, <a class="enum" href="../../../connect/openssl/reexports/enum.HandshakeError.html" title="enum actix_tls::connect::openssl::reexports::HandshakeError">HandshakeError</a>&lt;S&gt;&gt;<div class="where">where
S: <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Read.html" title="trait std::io::Read">Read</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a>,</div></h4></section></summary><div class="docblock"><p>Initiates a server-side TLS handshake.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_accept.html"><code>SSL_accept</code></a>.</p>
<h5 id="warning-1"><a class="doc-anchor" href="#warning-1">§</a>Warning</h5>
<p>OpenSSLs default configuration is insecure. It is highly recommended to use
<code>SslAcceptor</code> rather than <code>Ssl</code> directly, as it manages that configuration.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_accept.html"><code>SSL_accept</code></a>.</p>
</div></details></div></details></div><details class="toggle big-toggle" open><summary><h2 id="deref-methods-SslRef" class="section-header"><span>Methods from <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = <a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslRef.html" title="struct openssl::ssl::SslRef">SslRef</a>&gt;</span><a href="#deref-methods-SslRef" class="anchor">§</a></h2></summary><div id="deref-methods-SslRef-1" class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.set_connect_state" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2375">source</a><h4 class="code-header">pub fn <a href="#method.set_connect_state" class="fn">set_connect_state</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Configure as an outgoing stream from a client.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_connect_state.html"><code>SSL_set_connect_state</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_accept_state" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2381">source</a><h4 class="code-header">pub fn <a href="#method.set_accept_state" class="fn">set_accept_state</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Configure as an incoming stream to a server.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_accept_state.html"><code>SSL_set_accept_state</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_verify" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2389">source</a><h4 class="code-header">pub fn <a href="#method.set_verify" class="fn">set_verify</a>(&amp;mut self, mode: <a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslVerifyMode.html" title="struct openssl::ssl::SslVerifyMode">SslVerifyMode</a>)</h4></section></summary><div class="docblock"><p>Like <a href="struct.SslContextBuilder.html#method.set_verify"><code>SslContextBuilder::set_verify</code></a>.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_verify.html"><code>SSL_set_verify</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.verify_mode" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2395">source</a><h4 class="code-header">pub fn <a href="#method.verify_mode" class="fn">verify_mode</a>(&amp;self) -&gt; <a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslVerifyMode.html" title="struct openssl::ssl::SslVerifyMode">SslVerifyMode</a></h4></section></summary><div class="docblock"><p>Returns the verify mode that was set using <code>set_verify</code>.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_verify_mode.html"><code>SSL_set_verify_mode</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_verify_callback" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2404-2406">source</a><h4 class="code-header">pub fn <a href="#method.set_verify_callback" class="fn">set_verify_callback</a>&lt;F&gt;(&amp;mut self, mode: <a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslVerifyMode.html" title="struct openssl::ssl::SslVerifyMode">SslVerifyMode</a>, verify: F)<div class="where">where
F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>, &amp;mut <a class="struct" href="https://docs.rs/openssl/0.10/openssl/x509/struct.X509StoreContextRef.html" title="struct openssl::x509::X509StoreContextRef">X509StoreContextRef</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a> + 'static + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Like <a href="struct.SslContextBuilder.html#method.set_verify_callback"><code>SslContextBuilder::set_verify_callback</code></a>.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_verify.html"><code>SSL_set_verify</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_tmp_dh" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2423">source</a><h4 class="code-header">pub fn <a href="#method.set_tmp_dh" class="fn">set_tmp_dh</a>(&amp;mut self, dh: &amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/dh/struct.DhRef.html" title="struct openssl::dh::DhRef">DhRef</a>&lt;<a class="enum" href="https://docs.rs/openssl/0.10/openssl/pkey/enum.Params.html" title="enum openssl::pkey::Params">Params</a>&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Like <a href="struct.SslContextBuilder.html#method.set_tmp_dh"><code>SslContextBuilder::set_tmp_dh</code></a>.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_tmp_dh.html"><code>SSL_set_tmp_dh</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_tmp_dh_callback" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2431-2433">source</a><h4 class="code-header">pub fn <a href="#method.set_tmp_dh_callback" class="fn">set_tmp_dh_callback</a>&lt;F&gt;(&amp;mut self, callback: F)<div class="where">where
F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&amp;mut <a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslRef.html" title="struct openssl::ssl::SslRef">SslRef</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/dh/struct.Dh.html" title="struct openssl::dh::Dh">Dh</a>&lt;<a class="enum" href="https://docs.rs/openssl/0.10/openssl/pkey/enum.Params.html" title="enum openssl::pkey::Params">Params</a>&gt;, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt; + 'static + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Like <a href="struct.SslContextBuilder.html#method.set_tmp_dh_callback"><code>SslContextBuilder::set_tmp_dh_callback</code></a>.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_tmp_dh_callback.html"><code>SSL_set_tmp_dh_callback</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_tmp_ecdh" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2449">source</a><h4 class="code-header">pub fn <a href="#method.set_tmp_ecdh" class="fn">set_tmp_ecdh</a>(&amp;mut self, key: &amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ec/struct.EcKeyRef.html" title="struct openssl::ec::EcKeyRef">EcKeyRef</a>&lt;<a class="enum" href="https://docs.rs/openssl/0.10/openssl/pkey/enum.Params.html" title="enum openssl::pkey::Params">Params</a>&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Like <a href="struct.SslContextBuilder.html#method.set_tmp_ecdh"><code>SslContextBuilder::set_tmp_ecdh</code></a>.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_tmp_ecdh.html"><code>SSL_set_tmp_ecdh</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_alpn_protos" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2488">source</a><h4 class="code-header">pub fn <a href="#method.set_alpn_protos" class="fn">set_alpn_protos</a>(&amp;mut self, protocols: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Like <a href="struct.SslContextBuilder.html#method.set_alpn_protos"><code>SslContextBuilder::set_alpn_protos</code></a>.</p>
<p>Requires BoringSSL or OpenSSL 1.0.2 or LibreSSL 2.6.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_alpn_protos.html"><code>SSL_set_alpn_protos</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.current_cipher" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2504">source</a><h4 class="code-header">pub fn <a href="#method.current_cipher" class="fn">current_cipher</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslCipherRef.html" title="struct openssl::ssl::SslCipherRef">SslCipherRef</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the current cipher if the session is active.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_current_cipher.html"><code>SSL_get_current_cipher</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.state_string" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2514">source</a><h4 class="code-header">pub fn <a href="#method.state_string" class="fn">state_string</a>(&amp;self) -&gt; &amp;'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Returns a short string describing the state of the session.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_state_string.html"><code>SSL_state_string</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.state_string_long" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2525">source</a><h4 class="code-header">pub fn <a href="#method.state_string_long" class="fn">state_string_long</a>(&amp;self) -&gt; &amp;'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Returns a longer string describing the state of the session.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_state_string_long.html"><code>SSL_state_string_long</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_hostname" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2538">source</a><h4 class="code-header">pub fn <a href="#method.set_hostname" class="fn">set_hostname</a>(&amp;mut self, hostname: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Sets the host name to be sent to the server for Server Name Indication (SNI).</p>
<p>It has no effect for a server-side connection.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_tlsext_host_name.html"><code>SSL_set_tlsext_host_name</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.peer_certificate" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2548">source</a><h4 class="code-header">pub fn <a href="#method.peer_certificate" class="fn">peer_certificate</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/x509/struct.X509.html" title="struct openssl::x509::X509">X509</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the peers certificate, if present.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_peer_certificate.html"><code>SSL_get_peer_certificate</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.peer_cert_chain" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2560">source</a><h4 class="code-header">pub fn <a href="#method.peer_cert_chain" class="fn">peer_cert_chain</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/stack/struct.StackRef.html" title="struct openssl::stack::StackRef">StackRef</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/x509/struct.X509.html" title="struct openssl::x509::X509">X509</a>&gt;&gt;</h4></section></summary><div class="docblock"><p>Returns the certificate chain of the peer, if present.</p>
<p>On the client side, the chain includes the leaf certificate, but on the server side it does
not. Fun!</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_peer_cert_chain.html"><code>SSL_get_peer_cert_chain</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.verified_chain" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2578">source</a><h4 class="code-header">pub fn <a href="#method.verified_chain" class="fn">verified_chain</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/stack/struct.StackRef.html" title="struct openssl::stack::StackRef">StackRef</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/x509/struct.X509.html" title="struct openssl::x509::X509">X509</a>&gt;&gt;</h4></section></summary><div class="docblock"><p>Returns the verified certificate chain of the peer, including the leaf certificate.</p>
<p>If verification was not successful (i.e. <a href="#method.verify_result"><code>verify_result</code></a> does not return
<a href="../x509/struct.X509VerifyResult.html#associatedconstant.OK"><code>X509VerifyResult::OK</code></a>), this chain may be incomplete or invalid.</p>
<p>Requires OpenSSL 1.1.0 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get0_verified_chain.html"><code>SSL_get0_verified_chain</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.certificate" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2587">source</a><h4 class="code-header">pub fn <a href="#method.certificate" class="fn">certificate</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/x509/struct.X509Ref.html" title="struct openssl::x509::X509Ref">X509Ref</a>&gt;</h4></section></summary><div class="docblock"><p>Like [<code>SslContext::certificate</code>].</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_certificate.html"><code>SSL_get_certificate</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.private_key" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2598">source</a><h4 class="code-header">pub fn <a href="#method.private_key" class="fn">private_key</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/pkey/struct.PKeyRef.html" title="struct openssl::pkey::PKeyRef">PKeyRef</a>&lt;<a class="enum" href="https://docs.rs/openssl/0.10/openssl/pkey/enum.Private.html" title="enum openssl::pkey::Private">Private</a>&gt;&gt;</h4></section></summary><div class="docblock"><p>Like <a href="struct.SslContext.html#method.private_key"><code>SslContext::private_key</code></a>.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_privatekey.html"><code>SSL_get_privatekey</code></a>.</p>
</div></details><section id="method.version" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2606">source</a><h4 class="code-header">pub fn <a href="#method.version" class="fn">version</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 0.10.5: renamed to <code>version_str</code></span></div></span><details class="toggle method-toggle" open><summary><section id="method.version2" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2612">source</a><h4 class="code-header">pub fn <a href="#method.version2" class="fn">version2</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslVersion.html" title="struct openssl::ssl::SslVersion">SslVersion</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the protocol version of the session.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_version.html"><code>SSL_version</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.version_str" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2625">source</a><h4 class="code-header">pub fn <a href="#method.version_str" class="fn">version_str</a>(&amp;self) -&gt; &amp;'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Returns a string describing the protocol version of the session.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_version.html"><code>SSL_get_version</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.selected_alpn_protocol" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2642">source</a><h4 class="code-header">pub fn <a href="#method.selected_alpn_protocol" class="fn">selected_alpn_protocol</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]&gt;</h4></section></summary><div class="docblock"><p>Returns the protocol selected via Application Layer Protocol Negotiation (ALPN).</p>
<p>The protocols name is returned is an opaque sequence of bytes. It is up to the client
to interpret it.</p>
<p>Requires BoringSSL or OpenSSL 1.0.2 or LibreSSL 2.6.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get0_alpn_selected.html"><code>SSL_get0_alpn_selected</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_tlsext_use_srtp" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2664">source</a><h4 class="code-header">pub fn <a href="#method.set_tlsext_use_srtp" class="fn">set_tlsext_use_srtp</a>(&amp;mut self, protocols: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Enables the DTLS extension “use_srtp” as defined in RFC5764.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_tlsext_use_srtp.html"><code>SSL_set_tlsext_use_srtp</code></a>.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_tlsext_use_srtp.html"><code>SSL_set_tlsext_use_srtp</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.srtp_profiles" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2686">source</a><h4 class="code-header">pub fn <a href="#method.srtp_profiles" class="fn">srtp_profiles</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/stack/struct.StackRef.html" title="struct openssl::stack::StackRef">StackRef</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/srtp/struct.SrtpProtectionProfile.html" title="struct openssl::srtp::SrtpProtectionProfile">SrtpProtectionProfile</a>&gt;&gt;</h4></section></summary><div class="docblock"><p>Gets all SRTP profiles that are enabled for handshake via set_tlsext_use_srtp</p>
<p>DTLS extension “use_srtp” as defined in RFC5764 has to be enabled.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_tlsext_use_srtp.html"><code>SSL_get_srtp_profiles</code></a>.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_srtp_profiles.html"><code>SSL_get_srtp_profiles</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.selected_srtp_profile" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2698">source</a><h4 class="code-header">pub fn <a href="#method.selected_srtp_profile" class="fn">selected_srtp_profile</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/srtp/struct.SrtpProtectionProfileRef.html" title="struct openssl::srtp::SrtpProtectionProfileRef">SrtpProtectionProfileRef</a>&gt;</h4></section></summary><div class="docblock"><p>Gets the SRTP profile selected by handshake.</p>
<p>DTLS extension “use_srtp” as defined in RFC5764 has to be enabled.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_selected_srtp_profile.html"><code>SSL_get_selected_srtp_profile</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.pending" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2711">source</a><h4 class="code-header">pub fn <a href="#method.pending" class="fn">pending</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Returns the number of bytes remaining in the currently processed TLS record.</p>
<p>If this is greater than 0, the next call to <code>read</code> will not call down to the underlying
stream.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_pending.html"><code>SSL_pending</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.servername" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2729">source</a><h4 class="code-header">pub fn <a href="#method.servername" class="fn">servername</a>(&amp;self, type_: <a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.NameType.html" title="struct openssl::ssl::NameType">NameType</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the servername sent by the client via Server Name Indication (SNI).</p>
<p>It is only useful on the server side.</p>
<h5 id="note"><a class="doc-anchor" href="#note">§</a>Note</h5>
<p>While the SNI specification requires that servernames be valid domain names (and therefore
ASCII), OpenSSL does not enforce this restriction. If the servername provided by the client
is not valid UTF-8, this function will return <code>None</code>. The <code>servername_raw</code> method returns
the raw bytes and does not have this restriction.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_servername.html"><code>SSL_get_servername</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.servername_raw" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2742">source</a><h4 class="code-header">pub fn <a href="#method.servername_raw" class="fn">servername_raw</a>(&amp;self, type_: <a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.NameType.html" title="struct openssl::ssl::NameType">NameType</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]&gt;</h4></section></summary><div class="docblock"><p>Returns the servername sent by the client via Server Name Indication (SNI).</p>
<p>It is only useful on the server side.</p>
<h5 id="note-1"><a class="doc-anchor" href="#note-1">§</a>Note</h5>
<p>Unlike <code>servername</code>, this method does not require the name be valid UTF-8.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_servername.html"><code>SSL_get_servername</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_ssl_context" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2757">source</a><h4 class="code-header">pub fn <a href="#method.set_ssl_context" class="fn">set_ssl_context</a>(&amp;mut self, ctx: &amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslContextRef.html" title="struct openssl::ssl::SslContextRef">SslContextRef</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Changes the context corresponding to the current connection.</p>
<p>It is most commonly used in the Server Name Indication (SNI) callback.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_SSL_CTX.html"><code>SSL_set_SSL_CTX</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.ssl_context" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2763">source</a><h4 class="code-header">pub fn <a href="#method.ssl_context" class="fn">ssl_context</a>(&amp;self) -&gt; &amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslContextRef.html" title="struct openssl::ssl::SslContextRef">SslContextRef</a></h4></section></summary><div class="docblock"><p>Returns the context corresponding to the current connection.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_SSL_CTX.html"><code>SSL_get_SSL_CTX</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.param_mut" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2775">source</a><h4 class="code-header">pub fn <a href="#method.param_mut" class="fn">param_mut</a>(&amp;mut self) -&gt; &amp;mut <a class="struct" href="https://docs.rs/openssl/0.10/openssl/x509/verify/struct.X509VerifyParamRef.html" title="struct openssl::x509::verify::X509VerifyParamRef">X509VerifyParamRef</a></h4></section></summary><div class="docblock"><p>Returns a mutable reference to the X509 verification configuration.</p>
<p>Requires BoringSSL or OpenSSL 1.0.2 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get0_param.html"><code>SSL_get0_param</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.verify_result" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2781">source</a><h4 class="code-header">pub fn <a href="#method.verify_result" class="fn">verify_result</a>(&amp;self) -&gt; <a class="struct" href="https://docs.rs/openssl/0.10/openssl/x509/struct.X509VerifyResult.html" title="struct openssl::x509::X509VerifyResult">X509VerifyResult</a></h4></section></summary><div class="docblock"><p>Returns the certificate verification result.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_verify_result.html"><code>SSL_get_verify_result</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.session" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2787">source</a><h4 class="code-header">pub fn <a href="#method.session" class="fn">session</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslSessionRef.html" title="struct openssl::ssl::SslSessionRef">SslSessionRef</a>&gt;</h4></section></summary><div class="docblock"><p>Returns a shared reference to the SSL session.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_session.html"><code>SSL_get_session</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.client_random" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2802">source</a><h4 class="code-header">pub fn <a href="#method.client_random" class="fn">client_random</a>(&amp;self, buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Copies the <code>client_random</code> value sent by the client in the TLS handshake into a buffer.</p>
<p>Returns the number of bytes copied, or if the buffer is empty, the size of the <code>client_random</code>
value.</p>
<p>Requires OpenSSL 1.1.0 or LibreSSL 2.7.0 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_client_random.html"><code>SSL_get_client_random</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.server_random" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2816">source</a><h4 class="code-header">pub fn <a href="#method.server_random" class="fn">server_random</a>(&amp;self, buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Copies the <code>server_random</code> value sent by the server in the TLS handshake into a buffer.</p>
<p>Returns the number of bytes copied, or if the buffer is empty, the size of the <code>server_random</code>
value.</p>
<p>Requires OpenSSL 1.1.0 or LibreSSL 2.7.0 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_server_random.html"><code>SSL_get_server_random</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.export_keying_material" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2824-2829">source</a><h4 class="code-header">pub fn <a href="#method.export_keying_material" class="fn">export_keying_material</a>(
&amp;self,
out: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
label: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
context: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Derives keying material for application use in accordance to RFC 5705.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_export_keying_material.html"><code>SSL_export_keying_material</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.export_keying_material_early" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2857-2862">source</a><h4 class="code-header">pub fn <a href="#method.export_keying_material_early" class="fn">export_keying_material_early</a>(
&amp;self,
out: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
label: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
context: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Derives keying material for application use in accordance to RFC 5705.</p>
<p>This function is only usable with TLSv1.3, wherein there is no distinction between an empty context and no
context. Therefore, unlike <code>export_keying_material</code>, <code>context</code> must always be supplied.</p>
<p>Requires OpenSSL 1.1.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_export_keying_material_early.html"><code>SSL_export_keying_material_early</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_session" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2888">source</a><h4 class="code-header">pub unsafe fn <a href="#method.set_session" class="fn">set_session</a>(
&amp;mut self,
session: &amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslSessionRef.html" title="struct openssl::ssl::SslSessionRef">SslSessionRef</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Sets the session to be used.</p>
<p>This should be called before the handshake to attempt to reuse a previously established
session. If the server is not willing to reuse the session, a new one will be transparently
negotiated.</p>
<h5 id="safety"><a class="doc-anchor" href="#safety">§</a>Safety</h5>
<p>The caller of this method is responsible for ensuring that the session is associated
with the same <code>SslContext</code> as this <code>Ssl</code>.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_session.html"><code>SSL_set_session</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.session_reused" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2894">source</a><h4 class="code-header">pub fn <a href="#method.session_reused" class="fn">session_reused</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Determines if the session provided to <code>set_session</code> was successfully reused.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_session_reused.html"><code>SSL_session_reused</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_status_type" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2900">source</a><h4 class="code-header">pub fn <a href="#method.set_status_type" class="fn">set_status_type</a>(&amp;mut self, type_: <a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.StatusType.html" title="struct openssl::ssl::StatusType">StatusType</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Sets the status response a client wishes the server to reply with.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_tlsext_status_type.html"><code>SSL_set_tlsext_status_type</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.extms_support" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2911">source</a><h4 class="code-header">pub fn <a href="#method.extms_support" class="fn">extms_support</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>&gt;</h4></section></summary><div class="docblock"><p>Determines if current session used Extended Master Secret</p>
<p>Returns <code>None</code> if the handshake is still in-progress.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_extms_support.html"><code>SSL_get_extms_support</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.ocsp_status" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2923">source</a><h4 class="code-header">pub fn <a href="#method.ocsp_status" class="fn">ocsp_status</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]&gt;</h4></section></summary><div class="docblock"><p>Returns the servers OCSP response, if present.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_tlsext_status_ocsp_resp.html"><code>SSL_get_tlsext_status_ocsp_resp</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_ocsp_status" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2939">source</a><h4 class="code-header">pub fn <a href="#method.set_ocsp_status" class="fn">set_ocsp_status</a>(&amp;mut self, response: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Sets the OCSP response to be returned to the client.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_tlsext_status_oscp_resp.html"><code>SSL_set_tlsext_status_oscp_resp</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_server" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2959">source</a><h4 class="code-header">pub fn <a href="#method.is_server" class="fn">is_server</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Determines if this <code>Ssl</code> is configured for server-side or client-side use.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_is_server.html"><code>SSL_is_server</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_ex_data" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2969">source</a><h4 class="code-header">pub fn <a href="#method.set_ex_data" class="fn">set_ex_data</a>&lt;T&gt;(&amp;mut self, index: <a class="struct" href="https://docs.rs/openssl/0.10/openssl/ex_data/struct.Index.html" title="struct openssl::ex_data::Index">Index</a>&lt;<a class="struct" href="struct.Ssl.html" title="struct actix_tls::accept::openssl::reexports::Ssl">Ssl</a>, T&gt;, data: T)</h4></section></summary><div class="docblock"><p>Sets the extra data at the specified index.</p>
<p>This can be used to provide data to callbacks registered with the context. Use the
<code>Ssl::new_ex_index</code> method to create an <code>Index</code>.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_ex_data.html"><code>SSL_set_ex_data</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.ex_data" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2985">source</a><h4 class="code-header">pub fn <a href="#method.ex_data" class="fn">ex_data</a>&lt;T&gt;(&amp;self, index: <a class="struct" href="https://docs.rs/openssl/0.10/openssl/ex_data/struct.Index.html" title="struct openssl::ex_data::Index">Index</a>&lt;<a class="struct" href="struct.Ssl.html" title="struct actix_tls::accept::openssl::reexports::Ssl">Ssl</a>, T&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>&gt;</h4></section></summary><div class="docblock"><p>Returns a reference to the extra data at the specified index.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_ex_data.html"><code>SSL_get_ex_data</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.ex_data_mut" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2998">source</a><h4 class="code-header">pub fn <a href="#method.ex_data_mut" class="fn">ex_data_mut</a>&lt;T&gt;(&amp;mut self, index: <a class="struct" href="https://docs.rs/openssl/0.10/openssl/ex_data/struct.Index.html" title="struct openssl::ex_data::Index">Index</a>&lt;<a class="struct" href="struct.Ssl.html" title="struct actix_tls::accept::openssl::reexports::Ssl">Ssl</a>, T&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a>&gt;</h4></section></summary><div class="docblock"><p>Returns a mutable reference to the extra data at the specified index.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_ex_data.html"><code>SSL_get_ex_data</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_max_early_data" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3014">source</a><h4 class="code-header">pub fn <a href="#method.set_max_early_data" class="fn">set_max_early_data</a>(&amp;mut self, bytes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Sets the maximum amount of early data that will be accepted on this connection.</p>
<p>Requires OpenSSL 1.1.1 or LibreSSL 3.4.0 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_max_early_data.html"><code>SSL_set_max_early_data</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.max_early_data" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3027">source</a><h4 class="code-header">pub fn <a href="#method.max_early_data" class="fn">max_early_data</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></h4></section></summary><div class="docblock"><p>Gets the maximum amount of early data that can be sent on this connection.</p>
<p>Requires OpenSSL 1.1.1 or LibreSSL 3.4.0 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_max_early_data.html"><code>SSL_get_max_early_data</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.finished" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3036">source</a><h4 class="code-header">pub fn <a href="#method.finished" class="fn">finished</a>(&amp;self, buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Copies the contents of the last Finished message sent to the peer into the provided buffer.</p>
<p>The total size of the message is returned, so this can be used to determine the size of the
buffer required.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_finished.html"><code>SSL_get_finished</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.peer_finished" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3046">source</a><h4 class="code-header">pub fn <a href="#method.peer_finished" class="fn">peer_finished</a>(&amp;self, buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Copies the contents of the last Finished message received from the peer into the provided
buffer.</p>
<p>The total size of the message is returned, so this can be used to determine the size of the
buffer required.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_peer_finished.html"><code>SSL_get_peer_finished</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_init_finished" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3055">source</a><h4 class="code-header">pub fn <a href="#method.is_init_finished" class="fn">is_init_finished</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Determines if the initial handshake has been completed.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_is_init_finished.html"><code>SSL_is_init_finished</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.client_hello_isv2" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3066">source</a><h4 class="code-header">pub fn <a href="#method.client_hello_isv2" class="fn">client_hello_isv2</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Determines if the clients hello message is in the SSLv2 format.</p>
<p>This can only be used inside of the client hello callback. Otherwise, <code>false</code> is returned.</p>
<p>Requires OpenSSL 1.1.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_client_hello_isv2.html"><code>SSL_client_hello_isv2</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.client_hello_legacy_version" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3077">source</a><h4 class="code-header">pub fn <a href="#method.client_hello_legacy_version" class="fn">client_hello_legacy_version</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslVersion.html" title="struct openssl::ssl::SslVersion">SslVersion</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the legacy version field of the clients hello message.</p>
<p>This can only be used inside of the client hello callback. Otherwise, <code>None</code> is returned.</p>
<p>Requires OpenSSL 1.1.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_client_hello_get0_legacy_version.html"><code>SSL_client_hello_get0_legacy_version</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.client_hello_random" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3095">source</a><h4 class="code-header">pub fn <a href="#method.client_hello_random" class="fn">client_hello_random</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]&gt;</h4></section></summary><div class="docblock"><p>Returns the random field of the clients hello message.</p>
<p>This can only be used inside of the client hello callback. Otherwise, <code>None</code> is returned.</p>
<p>Requires OpenSSL 1.1.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_client_hello_get0_random.html"><code>SSL_client_hello_get0_random</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.client_hello_session_id" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3114">source</a><h4 class="code-header">pub fn <a href="#method.client_hello_session_id" class="fn">client_hello_session_id</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]&gt;</h4></section></summary><div class="docblock"><p>Returns the session ID field of the clients hello message.</p>
<p>This can only be used inside of the client hello callback. Otherwise, <code>None</code> is returned.</p>
<p>Requires OpenSSL 1.1.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_client_hello_get0_session_id.html"><code>SSL_client_hello_get0_session_id</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.client_hello_ciphers" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3133">source</a><h4 class="code-header">pub fn <a href="#method.client_hello_ciphers" class="fn">client_hello_ciphers</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]&gt;</h4></section></summary><div class="docblock"><p>Returns the ciphers field of the clients hello message.</p>
<p>This can only be used inside of the client hello callback. Otherwise, <code>None</code> is returned.</p>
<p>Requires OpenSSL 1.1.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_client_hello_get0_ciphers.html"><code>SSL_client_hello_get0_ciphers</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.bytes_to_cipher_list" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3151-3155">source</a><h4 class="code-header">pub fn <a href="#method.bytes_to_cipher_list" class="fn">bytes_to_cipher_list</a>(
&amp;self,
bytes: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
isv2format: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.CipherLists.html" title="struct openssl::ssl::CipherLists">CipherLists</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Decodes a slice of wire-format cipher suite specification bytes. Unsupported cipher suites
are ignored.</p>
<p>Requires OpenSSL 1.1.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_bytes_to_cipher_list.html"><code>SSL_bytes_to_cipher_list</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.client_hello_compression_methods" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3187">source</a><h4 class="code-header">pub fn <a href="#method.client_hello_compression_methods" class="fn">client_hello_compression_methods</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]&gt;</h4></section></summary><div class="docblock"><p>Returns the compression methods field of the clients hello message.</p>
<p>This can only be used inside of the client hello callback. Otherwise, <code>None</code> is returned.</p>
<p>Requires OpenSSL 1.1.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_client_hello_get0_compression_methods.html"><code>SSL_client_hello_get0_compression_methods</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_mtu" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3201">source</a><h4 class="code-header">pub fn <a href="#method.set_mtu" class="fn">set_mtu</a>(&amp;mut self, mtu: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Sets the MTU used for DTLS connections.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_mtu.html"><code>SSL_set_mtu</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.psk_identity_hint" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3210">source</a><h4 class="code-header">pub fn <a href="#method.psk_identity_hint" class="fn">psk_identity_hint</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]&gt;</h4></section></summary><div class="docblock"><p>Returns the PSK identity hint used during connection setup.</p>
<p>May return <code>None</code> if no PSK identity hint was used during the connection setup.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_psk_identity_hint.html"><code>SSL_get_psk_identity_hint</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.psk_identity" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3224">source</a><h4 class="code-header">pub fn <a href="#method.psk_identity" class="fn">psk_identity</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]&gt;</h4></section></summary><div class="docblock"><p>Returns the PSK identity used during connection setup.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_psk_identity.html"><code>SSL_get_psk_identity</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.add_chain_cert" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3237">source</a><h4 class="code-header">pub fn <a href="#method.add_chain_cert" class="fn">add_chain_cert</a>(&amp;mut self, chain: <a class="struct" href="https://docs.rs/openssl/0.10/openssl/x509/struct.X509.html" title="struct openssl::x509::X509">X509</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_add0_chain_cert.html"><code>SSL_add0_chain_cert</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_method" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3247">source</a><h4 class="code-header">pub fn <a href="#method.set_method" class="fn">set_method</a>(&amp;mut self, method: <a class="struct" href="../../../connect/openssl/reexports/struct.SslMethod.html" title="struct actix_tls::connect::openssl::reexports::SslMethod">SslMethod</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Sets a new default TLS/SSL method for SSL objects</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_private_key_file" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3256-3260">source</a><h4 class="code-header">pub fn <a href="#method.set_private_key_file" class="fn">set_private_key_file</a>&lt;P&gt;(
&amp;mut self,
path: P,
ssl_file_type: <a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslFiletype.html" title="struct openssl::ssl::SslFiletype">SslFiletype</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;<div class="where">where
P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/std/path/struct.Path.html" title="struct std::path::Path">Path</a>&gt;,</div></h4></section></summary><div class="docblock"><p>Loads the private key from a file.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_use_Private_Key_file.html"><code>SSL_use_Private_Key_file</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_private_key" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3275">source</a><h4 class="code-header">pub fn <a href="#method.set_private_key" class="fn">set_private_key</a>(
&amp;mut self,
pkey: &amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/pkey/struct.PKeyRef.html" title="struct openssl::pkey::PKeyRef">PKeyRef</a>&lt;<a class="enum" href="https://docs.rs/openssl/0.10/openssl/pkey/enum.Private.html" title="enum openssl::pkey::Private">Private</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Sets the private key.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_use_PrivateKey.html"><code>SSL_use_PrivateKey</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_certificate" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3284">source</a><h4 class="code-header">pub fn <a href="#method.set_certificate" class="fn">set_certificate</a>(&amp;mut self, cert: &amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/x509/struct.X509Ref.html" title="struct openssl::x509::X509Ref">X509Ref</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Sets the certificate</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_use_certificate.html"><code>SSL_use_certificate</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_certificate_chain_file" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3298-3301">source</a><h4 class="code-header">pub fn <a href="#method.set_certificate_chain_file" class="fn">set_certificate_chain_file</a>&lt;P&gt;(
&amp;mut self,
path: P,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;<div class="where">where
P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/std/path/struct.Path.html" title="struct std::path::Path">Path</a>&gt;,</div></h4></section></summary><div class="docblock"><p>Loads a certificate chain from a file.</p>
<p>The file should contain a sequence of PEM-formatted certificates, the first being the leaf
certificate, and the remainder forming the chain of certificates up to and including the
trusted root certificate.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_use_certificate_chain_file.html"><code>SSL_use_certificate_chain_file</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.add_client_ca" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3315">source</a><h4 class="code-header">pub fn <a href="#method.add_client_ca" class="fn">add_client_ca</a>(&amp;mut self, cacert: &amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/x509/struct.X509Ref.html" title="struct openssl::x509::X509Ref">X509Ref</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Sets ca certificate that client trusted</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_add_client_CA.html"><code>SSL_add_client_CA</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_client_ca_list" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3324">source</a><h4 class="code-header">pub fn <a href="#method.set_client_ca_list" class="fn">set_client_ca_list</a>(&amp;mut self, list: <a class="struct" href="https://docs.rs/openssl/0.10/openssl/stack/struct.Stack.html" title="struct openssl::stack::Stack">Stack</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/x509/struct.X509Name.html" title="struct openssl::x509::X509Name">X509Name</a>&gt;)</h4></section></summary><div class="docblock"><p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_client_CA_list.html"><code>SSL_set_client_CA_list</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_min_proto_version" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3337">source</a><h4 class="code-header">pub fn <a href="#method.set_min_proto_version" class="fn">set_min_proto_version</a>(
&amp;mut self,
version: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslVersion.html" title="struct openssl::ssl::SslVersion">SslVersion</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Sets the minimum supported protocol version.</p>
<p>A value of <code>None</code> will enable protocol versions down to the lowest version supported by
OpenSSL.</p>
<p>Requires BoringSSL or OpenSSL 1.1.0 or LibreSSL 2.6.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_min_proto_version.html"><code>SSL_set_min_proto_version</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_max_proto_version" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3355">source</a><h4 class="code-header">pub fn <a href="#method.set_max_proto_version" class="fn">set_max_proto_version</a>(
&amp;mut self,
version: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslVersion.html" title="struct openssl::ssl::SslVersion">SslVersion</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Sets the maximum supported protocol version.</p>
<p>A value of <code>None</code> will enable protocol versions up to the highest version supported by
OpenSSL.</p>
<p>Requires BoringSSL or OpenSSL 1.1.0 or or LibreSSL 2.6.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_max_proto_version.html"><code>SSL_set_max_proto_version</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_ciphersuites" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3375">source</a><h4 class="code-header">pub fn <a href="#method.set_ciphersuites" class="fn">set_ciphersuites</a>(&amp;mut self, cipher_list: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Sets the list of supported ciphers for the TLSv1.3 protocol.</p>
<p>The <code>set_cipher_list</code> method controls the cipher suites for protocols before TLSv1.3.</p>
<p>The format consists of TLSv1.3 cipher suite names separated by <code>:</code> characters in order of
preference.</p>
<p>Requires OpenSSL 1.1.1 or LibreSSL 3.4.0 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_ciphersuites.html"><code>SSL_set_ciphersuites</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_cipher_list" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3394">source</a><h4 class="code-header">pub fn <a href="#method.set_cipher_list" class="fn">set_cipher_list</a>(&amp;mut self, cipher_list: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Sets the list of supported ciphers for protocols before TLSv1.3.</p>
<p>The <code>set_ciphersuites</code> method controls the cipher suites for TLSv1.3.</p>
<p>See <a href="https://www.openssl.org/docs/manmaster/apps/ciphers.html"><code>ciphers</code></a> for details on the format.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_cipher_list.html"><code>SSL_set_cipher_list</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_verify_cert_store" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3408">source</a><h4 class="code-header">pub fn <a href="#method.set_verify_cert_store" class="fn">set_verify_cert_store</a>(
&amp;mut self,
cert_store: <a class="struct" href="https://docs.rs/openssl/0.10/openssl/x509/store/struct.X509Store.html" title="struct openssl::x509::store::X509Store">X509Store</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Set the certificate store used for certificate verification</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_cert_store.html"><code>SSL_set_cert_store</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_num_tickets" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3422">source</a><h4 class="code-header">pub fn <a href="#method.set_num_tickets" class="fn">set_num_tickets</a>(&amp;mut self, num_tickets: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Sets the number of TLS 1.3 session tickets that will be sent to a client after a full
handshake.</p>
<p>Requires OpenSSL 1.1.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_num_tickets.html"><code>SSL_set_num_tickets</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.num_tickets" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3432">source</a><h4 class="code-header">pub fn <a href="#method.num_tickets" class="fn">num_tickets</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Gets the number of TLS 1.3 session tickets that will be sent to a client after a full
handshake.</p>
<p>Requires OpenSSL 1.1.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_num_tickets.html"><code>SSL_get_num_tickets</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_security_level" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3442">source</a><h4 class="code-header">pub fn <a href="#method.set_security_level" class="fn">set_security_level</a>(&amp;mut self, level: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>)</h4></section></summary><div class="docblock"><p>Set the contexts security level to a value between 0 and 5, inclusive.
A security value of 0 allows allows all parameters and algorithms.</p>
<p>Requires OpenSSL 1.1.0 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_security_level.html"><code>SSL_set_security_level</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.security_level" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3452">source</a><h4 class="code-header">pub fn <a href="#method.security_level" class="fn">security_level</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></h4></section></summary><div class="docblock"><p>Get the connections security level, which controls the allowed parameters
and algorithms.</p>
<p>Requires OpenSSL 1.1.0 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_security_level.html"><code>SSL_get_security_level</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.peer_tmp_key" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3462">source</a><h4 class="code-header">pub fn <a href="#method.peer_tmp_key" class="fn">peer_tmp_key</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/pkey/struct.PKey.html" title="struct openssl::pkey::PKey">PKey</a>&lt;<a class="enum" href="https://docs.rs/openssl/0.10/openssl/pkey/enum.Public.html" title="enum openssl::pkey::Public">Public</a>&gt;, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Get the temporary key provided by the peer that is used during key
exchange.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_peer_tmp_key.html"><code>SSL_get_peer_tmp_key</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.tmp_key" class="method"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#3478">source</a><h4 class="code-header">pub fn <a href="#method.tmp_key" class="fn">tmp_key</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/pkey/struct.PKey.html" title="struct openssl::pkey::PKey">PKey</a>&lt;<a class="enum" href="https://docs.rs/openssl/0.10/openssl/pkey/enum.Private.html" title="enum openssl::pkey::Private">Private</a>&gt;, <a class="struct" href="https://docs.rs/openssl/0.10/openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the temporary key from the local end of the connection that is
used during key exchange.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_tmp_key.html"><code>SSL_get_tmp_key</code></a>.</p>
</div></details></div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AsRef%3CSslRef%3E-for-Ssl" class="impl"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2240-2256">source</a><a href="#impl-AsRef%3CSslRef%3E-for-Ssl" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslRef.html" title="struct openssl::ssl::SslRef">SslRef</a>&gt; for <a class="struct" href="struct.Ssl.html" title="struct actix_tls::accept::openssl::reexports::Ssl">Ssl</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.as_ref" class="method trait-impl"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2240-2256">source</a><a href="#method.as_ref" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html#tymethod.as_ref" class="fn">as_ref</a>(&amp;self) -&gt; &amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslRef.html" title="struct openssl::ssl::SslRef">SslRef</a></h4></section></summary><div class='docblock'>Converts this type into a shared reference of the (usually inferred) input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Borrow%3CSslRef%3E-for-Ssl" class="impl"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2240-2256">source</a><a href="#impl-Borrow%3CSslRef%3E-for-Ssl" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslRef.html" title="struct openssl::ssl::SslRef">SslRef</a>&gt; for <a class="struct" href="struct.Ssl.html" title="struct actix_tls::accept::openssl::reexports::Ssl">Ssl</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2240-2256">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; &amp;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/struct.SslRef.html" title="struct openssl::ssl::SslRef">SslRef</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-Ssl" class="impl"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2258">source</a><a href="#impl-Debug-for-Ssl" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Ssl.html" title="struct actix_tls::accept::openssl::reexports::Ssl">Ssl</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="https://docs.rs/openssl/0.10/src/openssl/ssl/mod.rs.html#2259">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#209">source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow-1" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#method.borrow-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#218">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#765">source</a><a href="#impl-From%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#768">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-T" class="impl"><a href="#impl-Instrument-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Instrument for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.instrument" class="method trait-impl"><a href="#method.instrument" class="anchor">§</a><h4 class="code-header">fn <a class="fn">instrument</a>(self, span: Span) -&gt; Instrumented&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the provided [<code>Span</code>], returning an
<code>Instrumented</code> wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl"><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a class="fn">in_current_span</a>(self) -&gt; Instrumented&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the <a href="super::Span::current()">current</a> <a href="crate::Span"><code>Span</code></a>, returning an
<code>Instrumented</code> wrapper. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#748-750">source</a><a href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#758">source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#805-807">source</a><a href="#impl-TryFrom%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#809">source</a><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#812">source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#790-792">source</a><a href="#impl-TryInto%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#794">source</a><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#797">source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-WithSubscriber-for-T" class="impl"><a href="#impl-WithSubscriber-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; WithSubscriber for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.with_subscriber" class="method trait-impl"><a href="#method.with_subscriber" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_subscriber</a>&lt;S&gt;(self, subscriber: S) -&gt; WithDispatch&lt;Self&gt;<div class="where">where
S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;Dispatch&gt;,</div></h4></section></summary><div class='docblock'>Attaches the provided <a href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl"><a href="#method.with_current_subscriber" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_current_subscriber</a>(self) -&gt; WithDispatch&lt;Self&gt;</h4></section></summary><div class='docblock'>Attaches the current <a href="crate::dispatcher#setting-the-default-subscriber">default</a> <a href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details></div></details></div></section></div></main></body></html>