Files
rapr-rs/docs/openssl/ssl/struct.ConnectConfiguration.html
T
2021-03-26 19:20:48 +00:00

208 lines
83 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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="API documentation for the Rust `ConnectConfiguration` struct in crate `openssl`."><meta name="keywords" content="rust, rustlang, rust-lang, ConnectConfiguration"><title>openssl::ssl::ConnectConfiguration - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../openssl/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class="location">Struct ConnectConfiguration</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#implementations">Methods</a><div class="sidebar-links"><a href="#method.connect">connect</a><a href="#method.into_ssl">into_ssl</a><a href="#method.set_use_server_name_indication">set_use_server_name_indication</a><a href="#method.set_verify_hostname">set_verify_hostname</a><a href="#method.use_server_name_indication">use_server_name_indication</a><a href="#method.verify_hostname">verify_hostname</a></div><a class="sidebar-title" href="#deref-methods-SslRef">Methods from Deref&lt;Target=SslRef&gt;</a><div class="sidebar-links"><a href="#method.certificate">certificate</a><a href="#method.client_hello_ciphers">client_hello_ciphers</a><a href="#method.client_hello_compression_methods">client_hello_compression_methods</a><a href="#method.client_hello_isv2">client_hello_isv2</a><a href="#method.client_hello_legacy_version">client_hello_legacy_version</a><a href="#method.client_hello_random">client_hello_random</a><a href="#method.client_hello_session_id">client_hello_session_id</a><a href="#method.client_random">client_random</a><a href="#method.current_cipher">current_cipher</a><a href="#method.ex_data">ex_data</a><a href="#method.ex_data_mut">ex_data_mut</a><a href="#method.export_keying_material">export_keying_material</a><a href="#method.export_keying_material_early">export_keying_material_early</a><a href="#method.finished">finished</a><a href="#method.is_init_finished">is_init_finished</a><a href="#method.is_server">is_server</a><a href="#method.max_early_data">max_early_data</a><a href="#method.ocsp_status">ocsp_status</a><a href="#method.param_mut">param_mut</a><a href="#method.peer_cert_chain">peer_cert_chain</a><a href="#method.peer_certificate">peer_certificate</a><a href="#method.peer_finished">peer_finished</a><a href="#method.pending">pending</a><a href="#method.private_key">private_key</a><a href="#method.selected_alpn_protocol">selected_alpn_protocol</a><a href="#method.selected_srtp_profile">selected_srtp_profile</a><a href="#method.server_random">server_random</a><a href="#method.servername">servername</a><a href="#method.servername_raw">servername_raw</a><a href="#method.session">session</a><a href="#method.session_reused">session_reused</a><a href="#method.set_accept_state">set_accept_state</a><a href="#method.set_alpn_protos">set_alpn_protos</a><a href="#method.set_connect_state">set_connect_state</a><a href="#method.set_ex_data">set_ex_data</a><a href="#method.set_hostname">set_hostname</a><a href="#method.set_max_early_data">set_max_early_data</a><a href="#method.set_mtu">set_mtu</a><a href="#method.set_ocsp_status">set_ocsp_status</a><a href="#method.set_session">set_session</a><a href="#method.set_ssl_context">set_ssl_context</a><a href="#method.set_status_type">set_status_type</a><a href="#method.set_tlsext_use_srtp">set_tlsext_use_srtp</a><a href="#method.set_tmp_dh">set_tmp_dh</a><a href="#method.set_tmp_dh_callback">set_tmp_dh_callback</a><a href="#method.set_tmp_ecdh">set_tmp_ecdh</a><a href="#method.set_verify">set_verify</a><a href="#method.set_verify_callback">set_verify_callback</a><a href="#method.srtp_profiles">srtp_profiles</a><a href="#method.ssl_context">ssl_context</a><a href="#method.state_string">state_string</a><a href="#method.state_string_long">state_string_long</a><a href="#method.verified_chain">verified_chain</a><a href="#method.verify_mode">verify_mode</a><a href="#method.verify_result">verify_result</a><a href="#method.version">version</a><a href="#method.version2">version2</a><a href="#method.version_str">version_str</a></div><a class="sidebar-title" href="#trait-implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-Deref">Deref</a><a href="#impl-DerefMut">DerefMut</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><a class="sidebar-title" href="#blanket-implementations">Blanket Implementations</a><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a></div></div><p class="location"><a href="../index.html">openssl</a>::<wbr><a href="index.html">ssl</a></p><div id="sidebar-vars" data-name="ConnectConfiguration" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" class="help-button">?</button>
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">openssl</a>::<wbr><a href="index.html">ssl</a>::<wbr><a class="struct" href="">ConnectConfiguration</a></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/openssl/ssl/connector.rs.html#133-137" title="goto source code">[src]</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class="rust struct">pub struct ConnectConfiguration { /* fields omitted */ }</pre></div><div class="docblock"><p>A type which allows for configuration of a client-side TLS session before connection.</p>
</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><h3 id="impl" class="impl"><code class="in-band">impl <a class="struct" href="../../openssl/ssl/struct.ConnectConfiguration.html" title="struct openssl::ssl::ConnectConfiguration">ConnectConfiguration</a></code><a href="#impl" class="anchor"></a><a class="srclink" href="../../src/openssl/ssl/connector.rs.html#139-196" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.use_server_name_indication" class="method"><code>pub fn <a href="#method.use_server_name_indication" class="fnname">use_server_name_indication</a>(self, use_sni: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -&gt; <a class="struct" href="../../openssl/ssl/struct.ConnectConfiguration.html" title="struct openssl::ssl::ConnectConfiguration">ConnectConfiguration</a></code><a class="srclink" href="../../src/openssl/ssl/connector.rs.html#141-144" title="goto source code">[src]</a></h4><div class="docblock"><p>A builder-style version of <code>set_use_server_name_indication</code>.</p>
</div><h4 id="method.set_use_server_name_indication" class="method"><code>pub fn <a href="#method.set_use_server_name_indication" class="fnname">set_use_server_name_indication</a>(&amp;mut self, use_sni: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>)</code><a class="srclink" href="../../src/openssl/ssl/connector.rs.html#149-151" title="goto source code">[src]</a></h4><div class="docblock"><p>Configures the use of Server Name Indication (SNI) when connecting.</p>
<p>Defaults to <code>true</code>.</p>
</div><h4 id="method.verify_hostname" class="method"><code>pub fn <a href="#method.verify_hostname" class="fnname">verify_hostname</a>(self, verify_hostname: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -&gt; <a class="struct" href="../../openssl/ssl/struct.ConnectConfiguration.html" title="struct openssl::ssl::ConnectConfiguration">ConnectConfiguration</a></code><a class="srclink" href="../../src/openssl/ssl/connector.rs.html#154-157" title="goto source code">[src]</a></h4><div class="docblock"><p>A builder-style version of <code>set_verify_hostname</code>.</p>
</div><h4 id="method.set_verify_hostname" class="method"><code>pub fn <a href="#method.set_verify_hostname" class="fnname">set_verify_hostname</a>(&amp;mut self, verify_hostname: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>)</code><a class="srclink" href="../../src/openssl/ssl/connector.rs.html#168-170" title="goto source code">[src]</a></h4><div class="docblock"><p>Configures the use of hostname verification when connecting.</p>
<p>Defaults to <code>true</code>.</p>
<h1 id="warning" class="section-header"><a href="#warning">Warning</a></h1>
<p>You should think very carefully before you use this method. If hostname verification is not
used, <em>any</em> valid certificate for <em>any</em> site will be trusted for use from any other. This
introduces a significant vulnerability to man-in-the-middle attacks.</p>
</div><h4 id="method.into_ssl" class="method"><code>pub fn <a href="#method.into_ssl" class="fnname">into_ssl</a>(self, domain: &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="struct" href="../../openssl/ssl/struct.Ssl.html" title="struct openssl::ssl::Ssl">Ssl</a>, <a class="struct" href="../../openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/connector.rs.html#175-185" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns an <code>Ssl</code> configured to connect to the provided domain.</p>
<p>The domain is used for SNI and hostname verification if enabled.</p>
</div><h4 id="method.connect" class="method"><code>pub fn <a href="#method.connect" class="fnname">connect</a>&lt;S&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;domain: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;stream: S<br>) -&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="../../openssl/ssl/struct.SslStream.html" title="struct openssl::ssl::SslStream">SslStream</a>&lt;S&gt;, <a class="enum" href="../../openssl/ssl/enum.HandshakeError.html" title="enum openssl::ssl::HandshakeError">HandshakeError</a>&lt;S&gt;&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;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>,&nbsp;</span></code><a class="srclink" href="../../src/openssl/ssl/connector.rs.html#190-195" title="goto source code">[src]</a></h4><div class="docblock"><p>Initiates a client-side TLS session on a stream.</p>
<p>The domain is used for SNI and hostname verification if enabled.</p>
</div></div><h2 id="deref-methods-SslRef" class="small-section-header">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="../../openssl/ssl/struct.SslRef.html" title="struct openssl::ssl::SslRef">SslRef</a>&gt;<a href="#deref-methods-SslRef" class="anchor"></a></h2><div class="impl-items"><h4 id="method.set_connect_state" class="method"><code>pub fn <a href="#method.set_connect_state" class="fnname">set_connect_state</a>(&amp;mut self)</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2477-2479" title="goto source code">[src]</a></h4><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><h4 id="method.set_accept_state" class="method"><code>pub fn <a href="#method.set_accept_state" class="fnname">set_accept_state</a>(&amp;mut self)</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2486-2488" title="goto source code">[src]</a></h4><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><h4 id="method.set_verify" class="method"><code>pub fn <a href="#method.set_verify" class="fnname">set_verify</a>(&amp;mut self, mode: <a class="struct" href="../../openssl/ssl/struct.SslVerifyMode.html" title="struct openssl::ssl::SslVerifyMode">SslVerifyMode</a>)</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2496-2498" title="goto source code">[src]</a></h4><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/man1.0.2/ssl/SSL_set_verify.html"><code>SSL_set_verify</code></a>.</p>
</div><h4 id="method.verify_mode" class="method"><code>pub fn <a href="#method.verify_mode" class="fnname">verify_mode</a>(&amp;self) -&gt; <a class="struct" href="../../openssl/ssl/struct.SslVerifyMode.html" title="struct openssl::ssl::SslVerifyMode">SslVerifyMode</a></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2505-2508" title="goto source code">[src]</a></h4><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/man1.1.1/man3/SSL_get_verify_mode.html"><code>SSL_get_verify_mode</code></a>.</p>
</div><h4 id="method.set_verify_callback" class="method"><code>pub fn <a href="#method.set_verify_callback" class="fnname">set_verify_callback</a>&lt;F&gt;(&amp;mut self, mode: <a class="struct" href="../../openssl/ssl/struct.SslVerifyMode.html" title="struct openssl::ssl::SslVerifyMode">SslVerifyMode</a>, verify: F) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;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="../../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>,&nbsp;</span></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2516-2525" title="goto source code">[src]</a></h4><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/man1.0.2/ssl/SSL_set_verify.html"><code>SSL_set_verify</code></a>.</p>
</div><h4 id="method.set_tmp_dh" class="method"><code>pub fn <a href="#method.set_tmp_dh" class="fnname">set_tmp_dh</a>(&amp;mut self, dh: &amp;<a class="struct" href="../../openssl/dh/struct.DhRef.html" title="struct openssl::dh::DhRef">DhRef</a>&lt;<a class="enum" href="../../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="../../openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2533-2535" title="goto source code">[src]</a></h4><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/man1.0.2/ssl/SSL_set_tmp_dh.html"><code>SSL_set_tmp_dh</code></a>.</p>
</div><h4 id="method.set_tmp_dh_callback" class="method"><code>pub fn <a href="#method.set_tmp_dh_callback" class="fnname">set_tmp_dh_callback</a>&lt;F&gt;(&amp;mut self, callback: F) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;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="../../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="../../openssl/dh/struct.Dh.html" title="struct openssl::dh::Dh">Dh</a>&lt;<a class="enum" href="../../openssl/pkey/enum.Params.html" title="enum openssl::pkey::Params">Params</a>&gt;, <a class="struct" href="../../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>,&nbsp;</span></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2543-2552" title="goto source code">[src]</a></h4><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/man1.0.2/ssl/SSL_set_tmp_dh.html"><code>SSL_set_tmp_dh_callback</code></a>.</p>
</div><h4 id="method.set_tmp_ecdh" class="method"><code>pub fn <a href="#method.set_tmp_ecdh" class="fnname">set_tmp_ecdh</a>(&amp;mut self, key: &amp;<a class="struct" href="../../openssl/ec/struct.EcKeyRef.html" title="struct openssl::ec::EcKeyRef">EcKeyRef</a>&lt;<a class="enum" href="../../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="../../openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2559-2561" title="goto source code">[src]</a></h4><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 <code>SSL_set_tmp_ecdh</code>.</p>
</div><h4 id="method.set_alpn_protos" class="method"><code>pub fn <a href="#method.set_alpn_protos" class="fnname">set_alpn_protos</a>(&amp;mut self, protocols: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</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="../../openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2604-2619" title="goto source code">[src]</a></h4><div class="docblock"><p>Like <a href="struct.SslContextBuilder.html#method.set_alpn_protos"><code>SslContextBuilder::set_alpn_protos</code></a>.</p>
<p>Requires OpenSSL 1.0.2 or LibreSSL 2.6.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.1.0/ssl/SSL_set_alpn_protos.html"><code>SSL_set_alpn_protos</code></a>.</p>
</div><h4 id="method.current_cipher" class="method"><code>pub fn <a href="#method.current_cipher" class="fnname">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="../../openssl/ssl/struct.SslCipherRef.html" title="struct openssl::ssl::SslCipherRef">SslCipherRef</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2626-2632" title="goto source code">[src]</a></h4><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/man1.1.0/ssl/SSL_get_current_cipher.html"><code>SSL_get_current_cipher</code></a>.</p>
</div><h4 id="method.state_string" class="method"><code>pub fn <a href="#method.state_string" class="fnname">state_string</a>(&amp;self) -&gt; &amp;'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2639-2646" title="goto source code">[src]</a></h4><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/man1.0.2/ssl/SSL_state_string.html"><code>SSL_state_string</code></a>.</p>
</div><h4 id="method.state_string_long" class="method"><code>pub fn <a href="#method.state_string_long" class="fnname">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></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2653-2660" title="goto source code">[src]</a></h4><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/man1.1.0/ssl/SSL_state_string_long.html"><code>SSL_state_string_long</code></a>.</p>
</div><h4 id="method.set_hostname" class="method"><code>pub fn <a href="#method.set_hostname" class="fnname">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="../../openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2669-2675" title="goto source code">[src]</a></h4><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_get_servername_type.html"><code>SSL_set_tlsext_host_name</code></a>.</p>
</div><h4 id="method.peer_certificate" class="method"><code>pub fn <a href="#method.peer_certificate" class="fnname">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="../../openssl/x509/struct.X509.html" title="struct openssl::x509::X509">X509</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2682-2687" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns the peer's certificate, if present.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.1.0/ssl/SSL_get_peer_certificate.html"><code>SSL_get_peer_certificate</code></a>.</p>
</div><h4 id="method.peer_cert_chain" class="method"><code>pub fn <a href="#method.peer_cert_chain" class="fnname">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="../../openssl/stack/struct.StackRef.html" title="struct openssl::stack::StackRef">StackRef</a>&lt;<a class="struct" href="../../openssl/x509/struct.X509.html" title="struct openssl::x509::X509">X509</a>&gt;&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2697-2702" title="goto source code">[src]</a></h4><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/man1.1.0/ssl/SSL_get_peer_cert_chain.html"><code>SSL_get_peer_cert_chain</code></a>.</p>
</div><h4 id="method.verified_chain" class="method"><code>pub fn <a href="#method.verified_chain" class="fnname">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="../../openssl/stack/struct.StackRef.html" title="struct openssl::stack::StackRef">StackRef</a>&lt;<a class="struct" href="../../openssl/x509/struct.X509.html" title="struct openssl::x509::X509">X509</a>&gt;&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2717-2722" title="goto source code">[src]</a></h4><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/man1.1.0/ssl/SSL_get0_verified_chain.html"><code>SSL_get0_verified_chain</code></a>.</p>
</div><h4 id="method.certificate" class="method"><code>pub fn <a href="#method.certificate" class="fnname">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="../../openssl/x509/struct.X509Ref.html" title="struct openssl::x509::X509Ref">X509Ref</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2729-2734" title="goto source code">[src]</a></h4><div class="docblock"><p>Like <a href="struct.SslContext.html#method.certificate"><code>SslContext::certificate</code></a>.</p>
<p>This corresponds to <code>SSL_get_certificate</code>.</p>
</div><h4 id="method.private_key" class="method"><code>pub fn <a href="#method.private_key" class="fnname">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="../../openssl/pkey/struct.PKeyRef.html" title="struct openssl::pkey::PKeyRef">PKeyRef</a>&lt;<a class="enum" href="../../openssl/pkey/enum.Private.html" title="enum openssl::pkey::Private">Private</a>&gt;&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2741-2746" title="goto source code">[src]</a></h4><div class="docblock"><p>Like <a href="struct.SslContext.html#method.private_key"><code>SslContext::private_key</code></a>.</p>
<p>This corresponds to <code>SSL_get_privatekey</code>.</p>
</div><h4 id="method.version" class="method"><code>pub fn <a href="#method.version" class="fnname">version</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2749-2751" title="goto source code">[src]</a></h4><div class="item-info"><div class="stab deprecated"><span class="emoji">👎</span> Deprecated since 0.10.5: <p>renamed to <code>version_str</code></p>
</div></div><h4 id="method.version2" class="method"><code>pub fn <a href="#method.version2" class="fnname">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="../../openssl/ssl/struct.SslVersion.html" title="struct openssl::ssl::SslVersion">SslVersion</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2758-2767" title="goto source code">[src]</a></h4><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><h4 id="method.version_str" class="method"><code>pub fn <a href="#method.version_str" class="fnname">version_str</a>(&amp;self) -&gt; &amp;'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2774-2781" title="goto source code">[src]</a></h4><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/man1.1.0/ssl/SSL_get_version.html"><code>SSL_get_version</code></a>.</p>
</div><h4 id="method.selected_alpn_protocol" class="method"><code>pub fn <a href="#method.selected_alpn_protocol" class="fnname">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;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2794-2808" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns the protocol selected via Application Layer Protocol Negotiation (ALPN).</p>
<p>The protocol's name is returned is an opaque sequence of bytes. It is up to the client
to interpret it.</p>
<p>Requires 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_next_proto_negotiated.html"><code>SSL_get0_alpn_selected</code></a>.</p>
</div><h4 id="method.set_tlsext_use_srtp" class="method"><code>pub fn <a href="#method.set_tlsext_use_srtp" class="fnname">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="../../openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2815-2827" title="goto source code">[src]</a></h4><div class="docblock"><p>Enables the DTLS extension &quot;use_srtp&quot; 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>
</div><h4 id="method.srtp_profiles" class="method"><code>pub fn <a href="#method.srtp_profiles" class="fnname">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="../../openssl/stack/struct.StackRef.html" title="struct openssl::stack::StackRef">StackRef</a>&lt;<a class="struct" href="../../openssl/srtp/struct.SrtpProtectionProfile.html" title="struct openssl::srtp::SrtpProtectionProfile">SrtpProtectionProfile</a>&gt;&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2836-2842" title="goto source code">[src]</a></h4><div class="docblock"><p>Gets all SRTP profiles that are enabled for handshake via set_tlsext_use_srtp</p>
<p>DTLS extension &quot;use_srtp&quot; 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>
</div><h4 id="method.selected_srtp_profile" class="method"><code>pub fn <a href="#method.selected_srtp_profile" class="fnname">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="../../openssl/srtp/struct.SrtpProtectionProfileRef.html" title="struct openssl::srtp::SrtpProtectionProfileRef">SrtpProtectionProfileRef</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2851-2857" title="goto source code">[src]</a></h4><div class="docblock"><p>Gets the SRTP profile selected by handshake.</p>
<p>DTLS extension &quot;use_srtp&quot; 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_selected_srtp_profile</code></a>.</p>
</div><h4 id="method.pending" class="method"><code>pub fn <a href="#method.pending" class="fnname">pending</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2867-2869" title="goto source code">[src]</a></h4><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/man1.1.0/ssl/SSL_pending.html"><code>SSL_pending</code></a>.</p>
</div><h4 id="method.servername" class="method"><code>pub fn <a href="#method.servername" class="fnname">servername</a>(&amp;self, type_: <a class="struct" href="../../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;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2886-2889" title="goto source code">[src]</a></h4><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>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_servername.html"><code>SSL_get_servername</code></a>.</p>
<h1 id="note" class="section-header"><a href="#note">Note</a></h1>
<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>
</div><h4 id="method.servername_raw" class="method"><code>pub fn <a href="#method.servername_raw" class="fnname">servername_raw</a>(&amp;self, type_: <a class="struct" href="../../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;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2902-2911" title="goto source code">[src]</a></h4><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>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_get_servername.html"><code>SSL_get_servername</code></a>.</p>
<h1 id="note-1" class="section-header"><a href="#note-1">Note</a></h1>
<p>Unlike <code>servername</code>, this method does not require the name be valid UTF-8.</p>
</div><h4 id="method.set_ssl_context" class="method"><code>pub fn <a href="#method.set_ssl_context" class="fnname">set_ssl_context</a>(&amp;mut self, ctx: &amp;<a class="struct" href="../../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="../../openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2918-2920" title="goto source code">[src]</a></h4><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 <code>SSL_set_SSL_CTX</code>.</p>
</div><h4 id="method.ssl_context" class="method"><code>pub fn <a href="#method.ssl_context" class="fnname">ssl_context</a>(&amp;self) -&gt; &amp;<a class="struct" href="../../openssl/ssl/struct.SslContextRef.html" title="struct openssl::ssl::SslContextRef">SslContextRef</a></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2927-2932" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns the context corresponding to the current connection.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.0.2/ssl/SSL_get_SSL_CTX.html"><code>SSL_get_SSL_CTX</code></a>.</p>
</div><h4 id="method.param_mut" class="method"><code>pub fn <a href="#method.param_mut" class="fnname">param_mut</a>(&amp;mut self) -&gt; &amp;mut <a class="struct" href="../../openssl/x509/verify/struct.X509VerifyParamRef.html" title="struct openssl::x509::verify::X509VerifyParamRef">X509VerifyParamRef</a></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2942-2944" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns a mutable reference to the X509 verification configuration.</p>
<p>Requires OpenSSL 1.0.2 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.0.2/ssl/SSL_get0_param.html"><code>SSL_get0_param</code></a>.</p>
</div><h4 id="method.verify_result" class="method"><code>pub fn <a href="#method.verify_result" class="fnname">verify_result</a>(&amp;self) -&gt; <a class="struct" href="../../openssl/x509/struct.X509VerifyResult.html" title="struct openssl::x509::X509VerifyResult">X509VerifyResult</a></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2951-2953" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns the certificate verification result.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.0.2/ssl/SSL_get_verify_result.html"><code>SSL_get_verify_result</code></a>.</p>
</div><h4 id="method.session" class="method"><code>pub fn <a href="#method.session" class="fnname">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="../../openssl/ssl/struct.SslSessionRef.html" title="struct openssl::ssl::SslSessionRef">SslSessionRef</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2960-2965" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns a shared reference to the SSL session.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.1.0/ssl/SSL_get_session.html"><code>SSL_get_session</code></a>.</p>
</div><h4 id="method.client_random" class="method"><code>pub fn <a href="#method.client_random" class="fnname">client_random</a>(&amp;self, buf: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;mut [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2978-2982" title="goto source code">[src]</a></h4><div class="docblock"><p>Copies the client_random 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 client_random
value.</p>
<p>Requires OpenSSL 1.1.0 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.1.0/ssl/SSL_get_client_random.html"><code>SSL_get_client_random</code></a>.</p>
</div><h4 id="method.server_random" class="method"><code>pub fn <a href="#method.server_random" class="fnname">server_random</a>(&amp;self, buf: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;mut [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#2995-2999" title="goto source code">[src]</a></h4><div class="docblock"><p>Copies the server_random 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 server_random
value.</p>
<p>Requires OpenSSL 1.1.0 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.1.0/ssl/SSL_get_client_random.html"><code>SSL_get_server_random</code></a>.</p>
</div><h4 id="method.export_keying_material" class="method"><code>pub fn <a href="#method.export_keying_material" class="fnname">export_keying_material</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;out: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;mut [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;label: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;context: <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.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;<br>) -&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="../../openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3006-3029" title="goto source code">[src]</a></h4><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><h4 id="method.export_keying_material_early" class="method"><code>pub fn <a href="#method.export_keying_material_early" class="fnname">export_keying_material_early</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;out: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;mut [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;label: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;context: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a><br>) -&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="../../openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3042-3060" title="goto source code">[src]</a></h4><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><h4 id="method.set_session" class="method"><code>pub unsafe fn <a href="#method.set_session" class="fnname">set_session</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;session: &amp;<a class="struct" href="../../openssl/ssl/struct.SslSessionRef.html" title="struct openssl::ssl::SslSessionRef">SslSessionRef</a><br>) -&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="../../openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3076-3078" title="goto source code">[src]</a></h4><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>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_session.html"><code>SSL_set_session</code></a>.</p>
<h1 id="safety" class="section-header"><a href="#safety">Safety</a></h1>
<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>
</div><h4 id="method.session_reused" class="method"><code>pub fn <a href="#method.session_reused" class="fnname">session_reused</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3085-3087" title="goto source code">[src]</a></h4><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/man1.1.0/ssl/SSL_session_reused.html"><code>SSL_session_reused</code></a>.</p>
</div><h4 id="method.set_status_type" class="method"><code>pub fn <a href="#method.set_status_type" class="fnname">set_status_type</a>(&amp;mut self, type_: <a class="struct" href="../../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="../../openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3094-3098" title="goto source code">[src]</a></h4><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/man1.0.2/ssl/SSL_set_tlsext_status_type.html"><code>SSL_set_tlsext_status_type</code></a>.</p>
</div><h4 id="method.ocsp_status" class="method"><code>pub fn <a href="#method.ocsp_status" class="fnname">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;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3105-3116" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns the server's OCSP response, if present.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.0.2/ssl/SSL_set_tlsext_status_type.html"><code>SSL_get_tlsext_status_ocsp_resp</code></a>.</p>
</div><h4 id="method.set_ocsp_status" class="method"><code>pub fn <a href="#method.set_ocsp_status" class="fnname">set_ocsp_status</a>(&amp;mut self, response: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</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="../../openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3123-3139" title="goto source code">[src]</a></h4><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/man1.0.2/ssl/SSL_set_tlsext_status_type.html"><code>SSL_set_tlsext_status_ocsp_resp</code></a>.</p>
</div><h4 id="method.is_server" class="method"><code>pub fn <a href="#method.is_server" class="fnname">is_server</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3146-3148" title="goto source code">[src]</a></h4><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><h4 id="method.set_ex_data" class="method"><code>pub fn <a href="#method.set_ex_data" class="fnname">set_ex_data</a>&lt;T&gt;(&amp;mut self, index: <a class="struct" href="../../openssl/ex_data/struct.Index.html" title="struct openssl::ex_data::Index">Index</a>&lt;<a class="struct" href="../../openssl/ssl/struct.Ssl.html" title="struct openssl::ssl::Ssl">Ssl</a>, T&gt;, data: T)</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3158-3167" title="goto source code">[src]</a></h4><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><h4 id="method.ex_data" class="method"><code>pub fn <a href="#method.ex_data" class="fnname">ex_data</a>&lt;T&gt;(&amp;self, index: <a class="struct" href="../../openssl/ex_data/struct.Index.html" title="struct openssl::ex_data::Index">Index</a>&lt;<a class="struct" href="../../openssl/ssl/struct.Ssl.html" title="struct openssl::ssl::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;</a>T&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3174-3183" title="goto source code">[src]</a></h4><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_set_ex_data.html"><code>SSL_get_ex_data</code></a>.</p>
</div><h4 id="method.ex_data_mut" class="method"><code>pub fn <a href="#method.ex_data_mut" class="fnname">ex_data_mut</a>&lt;T&gt;(&amp;mut self, index: <a class="struct" href="../../openssl/ex_data/struct.Index.html" title="struct openssl::ex_data::Index">Index</a>&lt;<a class="struct" href="../../openssl/ssl/struct.Ssl.html" title="struct openssl::ssl::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 </a>T&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3190-3199" title="goto source code">[src]</a></h4><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_set_ex_data.html"><code>SSL_get_ex_data</code></a>.</p>
</div><h4 id="method.set_max_early_data" class="method"><code>pub fn <a href="#method.set_max_early_data" class="fnname">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="../../openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3209-3215" title="goto source code">[src]</a></h4><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 newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.1.1/man3/SSL_set_max_early_data.html"><code>SSL_set_max_early_data</code></a>.</p>
</div><h4 id="method.max_early_data" class="method"><code>pub fn <a href="#method.max_early_data" class="fnname">max_early_data</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3225-3227" title="goto source code">[src]</a></h4><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 newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.1.1/man3/SSL_get_max_early_data.html"><code>SSL_get_max_early_data</code></a>.</p>
</div><h4 id="method.finished" class="method"><code>pub fn <a href="#method.finished" class="fnname">finished</a>(&amp;self, buf: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;mut [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3235-3237" title="goto source code">[src]</a></h4><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 <code>SSL_get_finished</code>.</p>
</div><h4 id="method.peer_finished" class="method"><code>pub fn <a href="#method.peer_finished" class="fnname">peer_finished</a>(&amp;self, buf: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;mut [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3246-3250" title="goto source code">[src]</a></h4><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 <code>SSL_get_peer_finished</code>.</p>
</div><h4 id="method.is_init_finished" class="method"><code>pub fn <a href="#method.is_init_finished" class="fnname">is_init_finished</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3258-3260" title="goto source code">[src]</a></h4><div class="docblock"><p>Determines if the initial handshake has been completed.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.1.1/man3/SSL_is_init_finished.html"><code>SSL_is_init_finished</code></a>.</p>
</div><h4 id="method.client_hello_isv2" class="method"><code>pub fn <a href="#method.client_hello_isv2" class="fnname">client_hello_isv2</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3272-3274" title="goto source code">[src]</a></h4><div class="docblock"><p>Determines if the client's 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/man1.1.1/man3/SSL_CTX_set_client_hello_cb.html"><code>SSL_client_hello_isv2</code></a>.</p>
</div><h4 id="method.client_hello_legacy_version" class="method"><code>pub fn <a href="#method.client_hello_legacy_version" class="fnname">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="../../openssl/ssl/struct.SslVersion.html" title="struct openssl::ssl::SslVersion">SslVersion</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3286-3295" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns the legacy version field of the client's 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/man1.1.1/man3/SSL_CTX_set_client_hello_cb.html"><code>SSL_client_hello_get0_legacy_version</code></a>.</p>
</div><h4 id="method.client_hello_random" class="method"><code>pub fn <a href="#method.client_hello_random" class="fnname">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;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3307-3317" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns the random field of the client's hello message.</p>
<p>This can only be used inside of the client hello callback. Otherwise, <code>None</code> is returend.</p>
<p>Requires OpenSSL 1.1.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_client_hello_cb.html"><code>SSL_client_hello_get0_random</code></a>.</p>
</div><h4 id="method.client_hello_session_id" class="method"><code>pub fn <a href="#method.client_hello_session_id" class="fnname">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;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3329-3339" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns the session ID field of the client's hello message.</p>
<p>This can only be used inside of the client hello callback. Otherwise, <code>None</code> is returend.</p>
<p>Requires OpenSSL 1.1.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_client_hello_cb.html"><code>SSL_client_hello_get0_session_id</code></a>.</p>
</div><h4 id="method.client_hello_ciphers" class="method"><code>pub fn <a href="#method.client_hello_ciphers" class="fnname">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;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3351-3361" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns the ciphers field of the client's hello message.</p>
<p>This can only be used inside of the client hello callback. Otherwise, <code>None</code> is returend.</p>
<p>Requires OpenSSL 1.1.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_client_hello_cb.html"><code>SSL_client_hello_get0_ciphers</code></a>.</p>
</div><h4 id="method.client_hello_compression_methods" class="method"><code>pub fn <a href="#method.client_hello_compression_methods" class="fnname">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;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3373-3383" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns the compression methods field of the client's hello message.</p>
<p>This can only be used inside of the client hello callback. Otherwise, <code>None</code> is returend.</p>
<p>Requires OpenSSL 1.1.1 or newer.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_client_hello_cb.html"><code>SSL_client_hello_get0_compression_methods</code></a>.</p>
</div><h4 id="method.set_mtu" class="method"><code>pub fn <a href="#method.set_mtu" class="fnname">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="../../openssl/error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</code><a class="srclink" href="../../src/openssl/ssl/mod.rs.html#3388-3390" title="goto source code">[src]</a></h4><div class="docblock"><p>Sets the MTU used for DTLS connections.</p>
<p>This corresponds to <code>SSL_set_mtu</code>.</p>
</div></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><h3 id="impl-Deref" class="impl"><code class="in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a> for <a class="struct" href="../../openssl/ssl/struct.ConnectConfiguration.html" title="struct openssl::ssl::ConnectConfiguration">ConnectConfiguration</a></code><a href="#impl-Deref" class="anchor"></a><a class="srclink" href="../../src/openssl/ssl/connector.rs.html#198-204" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Target" class="type"><code>type <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" class="type">Target</a> = <a class="struct" href="../../openssl/ssl/struct.SslRef.html" title="struct openssl::ssl::SslRef">SslRef</a></code></h4><div class='docblock'><p>The resulting type after dereferencing.</p>
</div><h4 id="method.deref" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#tymethod.deref" class="fnname">deref</a>(&amp;self) -&gt; &amp;<a class="struct" href="../../openssl/ssl/struct.SslRef.html" title="struct openssl::ssl::SslRef">SslRef</a></code><a class="srclink" href="../../src/openssl/ssl/connector.rs.html#201-203" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Dereferences the value.</p>
</div></div><h3 id="impl-DerefMut" class="impl"><code class="in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a> for <a class="struct" href="../../openssl/ssl/struct.ConnectConfiguration.html" title="struct openssl::ssl::ConnectConfiguration">ConnectConfiguration</a></code><a href="#impl-DerefMut" class="anchor"></a><a class="srclink" href="../../src/openssl/ssl/connector.rs.html#206-210" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.deref_mut" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html#tymethod.deref_mut" class="fnname">deref_mut</a>(&amp;mut self) -&gt; &amp;mut <a class="struct" href="../../openssl/ssl/struct.SslRef.html" title="struct openssl::ssl::SslRef">SslRef</a></code><a class="srclink" href="../../src/openssl/ssl/connector.rs.html#207-209" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Mutably dereferences the value.</p>
</div></div></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><h3 id="impl-RefUnwindSafe" class="impl"><code class="in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="../../openssl/ssl/struct.ConnectConfiguration.html" title="struct openssl::ssl::ConnectConfiguration">ConnectConfiguration</a></code><a href="#impl-RefUnwindSafe" class="anchor"></a><a class="srclink" href="../../src/openssl/lib.rs.html#1" title="goto source code">[src]</a></h3><div class="impl-items"></div><h3 id="impl-Send" class="impl"><code class="in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="../../openssl/ssl/struct.ConnectConfiguration.html" title="struct openssl::ssl::ConnectConfiguration">ConnectConfiguration</a></code><a href="#impl-Send" class="anchor"></a><a class="srclink" href="../../src/openssl/lib.rs.html#1" title="goto source code">[src]</a></h3><div class="impl-items"></div><h3 id="impl-Sync" class="impl"><code class="in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="../../openssl/ssl/struct.ConnectConfiguration.html" title="struct openssl::ssl::ConnectConfiguration">ConnectConfiguration</a></code><a href="#impl-Sync" class="anchor"></a><a class="srclink" href="../../src/openssl/lib.rs.html#1" title="goto source code">[src]</a></h3><div class="impl-items"></div><h3 id="impl-Unpin" class="impl"><code class="in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="../../openssl/ssl/struct.ConnectConfiguration.html" title="struct openssl::ssl::ConnectConfiguration">ConnectConfiguration</a></code><a href="#impl-Unpin" class="anchor"></a><a class="srclink" href="../../src/openssl/lib.rs.html#1" title="goto source code">[src]</a></h3><div class="impl-items"></div><h3 id="impl-UnwindSafe" class="impl"><code class="in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a> for <a class="struct" href="../../openssl/ssl/struct.ConnectConfiguration.html" title="struct openssl::ssl::ConnectConfiguration">ConnectConfiguration</a></code><a href="#impl-UnwindSafe" class="anchor"></a><a class="srclink" href="../../src/openssl/lib.rs.html#1" title="goto source code">[src]</a></h3><div class="impl-items"></div></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><h3 id="impl-Any" class="impl"><code class="in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href="#impl-Any" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#131-135" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.type_id" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">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></code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#132" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>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></p>
</div></div><h3 id="impl-Borrow%3CT%3E" class="impl"><code class="in-band">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 <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href="#impl-Borrow%3CT%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#207-211" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.borrow" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#208" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></div><h3 id="impl-BorrowMut%3CT%3E" class="impl"><code class="in-band">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 <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href="#impl-BorrowMut%3CT%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#214-218" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.borrow_mut" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#215" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>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></p>
</div></div><h3 id="impl-From%3CT%3E" class="impl"><code class="in-band">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</code><a href="#impl-From%3CT%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#545-549" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.from" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(t: T) -&gt; T</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#546" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id="impl-Into%3CU%3E" class="impl"><code class="in-band">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 <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;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;,&nbsp;</span></code><a href="#impl-Into%3CU%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#534-541" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.into" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fnname">into</a>(self) -&gt; U</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#538" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id="impl-TryFrom%3CU%3E" class="impl"><code class="in-band">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 <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;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;,&nbsp;</span></code><a href="#impl-TryFrom%3CU%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#582-591" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Error" class="type"><code>type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="type">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></code></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4 id="method.try_from" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fnname">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="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#588" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id="impl-TryInto%3CU%3E" class="impl"><code class="in-band">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 <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;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;,&nbsp;</span></code><a href="#impl-TryInto%3CU%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#568-577" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Error-1" class="type"><code>type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="type">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="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></code></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4 id="method.try_into" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fnname">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="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#574" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div></div></section><section id="search" class="content hidden"></section><section class="footer"></section><div id="rustdoc-vars" data-root-path="../../" data-current-crate="openssl"></div>
<script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>