summaryrefslogtreecommitdiff
path: root/doc/html/_modules/M2Crypto/SSL/Connection.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/html/_modules/M2Crypto/SSL/Connection.html')
-rw-r--r--doc/html/_modules/M2Crypto/SSL/Connection.html135
1 files changed, 95 insertions, 40 deletions
diff --git a/doc/html/_modules/M2Crypto/SSL/Connection.html b/doc/html/_modules/M2Crypto/SSL/Connection.html
index 68462e0..fcc8c69 100644
--- a/doc/html/_modules/M2Crypto/SSL/Connection.html
+++ b/doc/html/_modules/M2Crypto/SSL/Connection.html
@@ -4,23 +4,16 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
+ <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>M2Crypto.SSL.Connection &#8212; M2Crypto documentation</title>
<link rel="stylesheet" href="../../../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '../../../',
- VERSION: '',
- COLLAPSE_INDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true,
- SOURCELINK_SUFFIX: '.txt'
- };
- </script>
+ <script type="text/javascript" id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.js"></script>
<script type="text/javascript" src="../../../_static/jquery.js"></script>
<script type="text/javascript" src="../../../_static/underscore.js"></script>
<script type="text/javascript" src="../../../_static/doctools.js"></script>
+ <script type="text/javascript" src="../../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
@@ -29,13 +22,14 @@
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
- </head>
- <body>
+ </head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
+
+
<div class="body" role="main">
<h1>Source code for M2Crypto.SSL.Connection</h1><div class="highlight"><pre>
@@ -54,12 +48,12 @@
<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">import</span> <span class="nn">socket</span>
-<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="k">import</span> <span class="n">BIO</span><span class="p">,</span> <span class="n">Err</span><span class="p">,</span> <span class="n">X509</span><span class="p">,</span> <span class="n">m2</span><span class="p">,</span> <span class="n">six</span><span class="p">,</span> <span class="n">util</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="k">import</span> <span class="n">BIO</span><span class="p">,</span> <span class="n">Err</span><span class="p">,</span> <span class="n">X509</span><span class="p">,</span> <span class="n">m2</span><span class="p">,</span> <span class="n">py27plus</span><span class="p">,</span> <span class="n">six</span><span class="p">,</span> <span class="n">util</span> <span class="c1"># noqa</span>
<span class="kn">from</span> <span class="nn">M2Crypto.SSL</span> <span class="k">import</span> <span class="n">Checker</span><span class="p">,</span> <span class="n">Context</span><span class="p">,</span> <span class="n">timeout</span> <span class="c1"># noqa</span>
<span class="kn">from</span> <span class="nn">M2Crypto.SSL</span> <span class="k">import</span> <span class="n">SSLError</span>
<span class="kn">from</span> <span class="nn">M2Crypto.SSL.Cipher</span> <span class="k">import</span> <span class="n">Cipher</span><span class="p">,</span> <span class="n">Cipher_Stack</span>
<span class="kn">from</span> <span class="nn">M2Crypto.SSL.Session</span> <span class="k">import</span> <span class="n">Session</span>
-<span class="k">if</span> <span class="n">util</span><span class="o">.</span><span class="n">py27plus</span><span class="p">:</span>
+<span class="k">if</span> <span class="n">py27plus</span><span class="p">:</span>
<span class="kn">from</span> <span class="nn">typing</span> <span class="k">import</span> <span class="n">Any</span><span class="p">,</span> <span class="n">AnyStr</span><span class="p">,</span> <span class="n">Callable</span><span class="p">,</span> <span class="n">Dict</span><span class="p">,</span> <span class="n">List</span><span class="p">,</span> <span class="n">Optional</span><span class="p">,</span> <span class="n">Tuple</span><span class="p">,</span> <span class="n">Union</span> <span class="c1"># noqa</span>
<span class="n">__all__</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;Connection&#39;</span><span class="p">,</span>
@@ -74,7 +68,7 @@
<span class="k">return</span> <span class="mi">1</span>
-<div class="viewcode-block" id="Connection"><a class="viewcode-back" href="../../../M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection">[docs]</a><span class="k">class</span> <span class="nc">Connection</span><span class="p">:</span>
+<div class="viewcode-block" id="Connection"><a class="viewcode-back" href="../../../M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection">[docs]</a><span class="k">class</span> <span class="nc">Connection</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;An SSL connection.&quot;&quot;&quot;</span>
<span class="n">clientPostConnectionCheck</span> <span class="o">=</span> <span class="n">Checker</span><span class="o">.</span><span class="n">Checker</span><span class="p">()</span>
@@ -82,6 +76,7 @@
<span class="n">m2_bio_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">bio_free</span>
<span class="n">m2_ssl_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">ssl_free</span>
+ <span class="n">m2_bio_noclose</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">bio_noclose</span>
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ctx</span><span class="p">,</span> <span class="n">sock</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">family</span><span class="o">=</span><span class="n">socket</span><span class="o">.</span><span class="n">AF_INET</span><span class="p">):</span>
<span class="c1"># type: (Context, socket.socket, int) -&gt; None</span>
@@ -110,16 +105,18 @@
<span class="bp">self</span><span class="o">.</span><span class="n">set_post_connection_check_callback</span><span class="p">(</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ctx</span><span class="o">.</span><span class="n">post_connection_check</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">host</span> <span class="o">=</span> <span class="kc">None</span>
+
<span class="k">def</span> <span class="nf">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</span>
+ <span class="c1"># Notice that M2Crypto doesn&#39;t automatically shuts down the</span>
+ <span class="c1"># connection here. You have to call self.close() in your</span>
+ <span class="c1"># program, M2Crypto won&#39;t do it automatically for you.</span>
<span class="k">if</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;sslbio&#39;</span><span class="p">,</span> <span class="kc">None</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_bio_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sslbio</span><span class="p">)</span>
<span class="k">if</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;sockbio&#39;</span><span class="p">,</span> <span class="kc">None</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_bio_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sockbio</span><span class="p">)</span>
- <span class="c1"># in __del__ method we have to check whether m2.bio_noclose</span>
- <span class="c1"># exists at all.</span>
- <span class="k">if</span> <span class="n">m2</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">m2</span><span class="o">.</span><span class="n">bio_noclose</span> <span class="ow">and</span> \
- <span class="bp">self</span><span class="o">.</span><span class="n">ssl_close_flag</span> <span class="o">==</span> <span class="n">m2</span><span class="o">.</span><span class="n">bio_noclose</span> <span class="ow">and</span> \
+ <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">ssl_close_flag</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">m2_bio_noclose</span> <span class="ow">and</span> \
<span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;ssl&#39;</span><span class="p">,</span> <span class="kc">None</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_ssl_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ssl</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">socket</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
@@ -346,7 +343,8 @@
<span class="n">check</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;postConnectionCheck&#39;</span><span class="p">,</span>
<span class="bp">self</span><span class="o">.</span><span class="n">clientPostConnectionCheck</span><span class="p">)</span>
<span class="k">if</span> <span class="n">check</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
- <span class="k">if</span> <span class="ow">not</span> <span class="n">check</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_peer_cert</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">addr</span><span class="p">[</span><span class="mi">0</span><span class="p">]):</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">check</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_peer_cert</span><span class="p">(),</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">host</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">host</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">addr</span><span class="p">[</span><span class="mi">0</span><span class="p">]):</span>
<span class="k">raise</span> <span class="n">Checker</span><span class="o">.</span><span class="n">SSLVerificationError</span><span class="p">(</span>
<span class="s1">&#39;post connection check failed&#39;</span><span class="p">)</span>
<span class="k">return</span> <span class="n">ret</span></div>
@@ -396,16 +394,21 @@
<span class="k">pass</span>
<div class="viewcode-block" id="Connection.recv_into"><a class="viewcode-back" href="../../../M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.recv_into">[docs]</a> <span class="k">def</span> <span class="nf">recv_into</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">buff</span><span class="p">,</span> <span class="n">nbytes</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
- <span class="c1"># type: (bytearray, int) -&gt; int</span>
+ <span class="c1"># type: (Union[bytearray, memoryview], int) -&gt; int</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> A version of recv() that stores its data into a buffer rather</span>
<span class="sd"> than creating a new string. Receive up to buffersize bytes from</span>
<span class="sd"> the socket. If buffersize is not specified (or 0), receive up</span>
<span class="sd"> to the size available in the given buffer.</span>
-<span class="sd"> @param buffer: a buffer for the received bytes</span>
-<span class="sd"> @param nbytes: maximum number of bytes to read</span>
-<span class="sd"> @return: number of bytes added</span>
+<span class="sd"> If buff is bytearray, it will have after return length of the</span>
+<span class="sd"> actually returned number of bytes. If buff is memoryview, then</span>
+<span class="sd"> the size of buff won&#39;t change (it cannot), but all bytes after</span>
+<span class="sd"> the number of returned bytes will be NULL.</span>
+
+<span class="sd"> :param buffer: a buffer for the received bytes</span>
+<span class="sd"> :param nbytes: maximum number of bytes to read</span>
+<span class="sd"> :return: number of bytes read</span>
<span class="sd"> See recv() for documentation about the flags.</span>
<span class="sd"> &quot;&quot;&quot;</span>
@@ -413,11 +416,19 @@
<span class="k">if</span> <span class="n">n</span> <span class="o">&lt;=</span> <span class="mi">0</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s1">&#39;size &lt;= 0&#39;</span><span class="p">)</span>
+
+ <span class="c1"># buff_bytes are actual bytes returned</span>
<span class="n">buff_bytes</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">ssl_read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ssl</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_timeout</span><span class="p">)</span>
- <span class="n">buff</span><span class="p">[:]</span> <span class="o">=</span> <span class="sa">b</span><span class="s1">&#39;&#39;</span>
- <span class="n">buff</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">buff_bytes</span><span class="p">)</span>
+ <span class="n">buflen</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">buff_bytes</span><span class="p">)</span>
- <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="n">buff</span><span class="p">)</span></div>
+ <span class="c1"># memoryview type has been added in 2.7</span>
+ <span class="k">if</span> <span class="n">py27plus</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">buff</span><span class="p">,</span> <span class="nb">memoryview</span><span class="p">):</span>
+ <span class="n">buff</span><span class="p">[:</span><span class="n">buflen</span><span class="p">]</span> <span class="o">=</span> <span class="n">buff_bytes</span>
+ <span class="n">buff</span><span class="p">[</span><span class="n">buflen</span><span class="p">:]</span> <span class="o">=</span> <span class="sa">b</span><span class="s1">&#39;</span><span class="se">\x00</span><span class="s1">&#39;</span> <span class="o">*</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">buff</span><span class="p">)</span> <span class="o">-</span> <span class="n">buflen</span><span class="p">)</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="n">buff</span><span class="p">[:]</span> <span class="o">=</span> <span class="n">buff_bytes</span>
+
+ <span class="k">return</span> <span class="n">buflen</span></div>
<div class="viewcode-block" id="Connection.read"><a class="viewcode-back" href="../../../M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.read">[docs]</a> <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="mi">1024</span><span class="p">):</span>
<span class="c1"># type: (int) -&gt; bytes</span>
@@ -598,7 +609,7 @@
<div class="viewcode-block" id="Connection.get_cipher_list"><a class="viewcode-back" href="../../../M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_cipher_list">[docs]</a> <span class="k">def</span> <span class="nf">get_cipher_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">idx</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (int) -&gt; str</span>
<span class="sd">&quot;&quot;&quot;Return the cipher suites for this connection as a string object.&quot;&quot;&quot;</span>
- <span class="k">return</span> <span class="n">util</span><span class="o">.</span><span class="n">py3str</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">ssl_get_cipher_list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ssl</span><span class="p">,</span> <span class="n">idx</span><span class="p">))</span></div>
+ <span class="k">return</span> <span class="n">six</span><span class="o">.</span><span class="n">ensure_text</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">ssl_get_cipher_list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ssl</span><span class="p">,</span> <span class="n">idx</span><span class="p">))</span></div>
<div class="viewcode-block" id="Connection.set_cipher_list"><a class="viewcode-back" href="../../../M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_cipher_list">[docs]</a> <span class="k">def</span> <span class="nf">set_cipher_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cipher_list</span><span class="p">):</span>
<span class="c1"># type: (str) -&gt; int</span>
@@ -661,11 +672,20 @@
<span class="bp">self</span><span class="o">.</span><span class="n">socket</span><span class="o">.</span><span class="n">getsockopt</span><span class="p">(</span><span class="n">socket</span><span class="o">.</span><span class="n">SOL_SOCKET</span><span class="p">,</span> <span class="n">socket</span><span class="o">.</span><span class="n">SO_RCVTIMEO</span><span class="p">,</span>
<span class="n">timeout</span><span class="o">.</span><span class="n">struct_size</span><span class="p">()))</span></div>
+ <span class="nd">@staticmethod</span>
+ <span class="k">def</span> <span class="nf">_hexdump</span><span class="p">(</span><span class="n">s</span><span class="p">):</span>
+ <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">six</span><span class="o">.</span><span class="n">binary_type</span><span class="p">)</span>
+ <span class="k">return</span> <span class="s2">&quot;:&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">{0:02x}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">ord</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> <span class="k">if</span> <span class="n">six</span><span class="o">.</span><span class="n">PY2</span> <span class="k">else</span> <span class="n">c</span><span class="p">)</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">s</span><span class="p">)</span>
+
<div class="viewcode-block" id="Connection.get_socket_write_timeout"><a class="viewcode-back" href="../../../M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_socket_write_timeout">[docs]</a> <span class="k">def</span> <span class="nf">get_socket_write_timeout</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; timeout</span>
- <span class="k">return</span> <span class="n">timeout</span><span class="o">.</span><span class="n">struct_to_timeout</span><span class="p">(</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">socket</span><span class="o">.</span><span class="n">getsockopt</span><span class="p">(</span><span class="n">socket</span><span class="o">.</span><span class="n">SOL_SOCKET</span><span class="p">,</span> <span class="n">socket</span><span class="o">.</span><span class="n">SO_SNDTIMEO</span><span class="p">,</span>
- <span class="n">timeout</span><span class="o">.</span><span class="n">struct_size</span><span class="p">()))</span></div>
+ <span class="n">binstr</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">socket</span><span class="o">.</span><span class="n">getsockopt</span><span class="p">(</span>
+ <span class="n">socket</span><span class="o">.</span><span class="n">SOL_SOCKET</span><span class="p">,</span> <span class="n">socket</span><span class="o">.</span><span class="n">SO_SNDTIMEO</span><span class="p">,</span> <span class="n">timeout</span><span class="o">.</span><span class="n">struct_size</span><span class="p">())</span>
+ <span class="n">timeo</span> <span class="o">=</span> <span class="n">timeout</span><span class="o">.</span><span class="n">struct_to_timeout</span><span class="p">(</span><span class="n">binstr</span><span class="p">)</span>
+ <span class="c1">#print(&quot;Debug: get_socket_write_timeout: &quot;</span>
+ <span class="c1"># &quot;get sockopt value: %s -&gt; returned timeout(sec=%r, microsec=%r)&quot; %</span>
+ <span class="c1"># (self._hexdump(binstr), timeo.sec, timeo.microsec))</span>
+ <span class="k">return</span> <span class="n">timeo</span></div>
<div class="viewcode-block" id="Connection.set_socket_read_timeout"><a class="viewcode-back" href="../../../M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_socket_read_timeout">[docs]</a> <span class="k">def</span> <span class="nf">set_socket_read_timeout</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">timeo</span><span class="p">):</span>
<span class="c1"># type: (timeout) -&gt; None</span>
@@ -676,13 +696,17 @@
<div class="viewcode-block" id="Connection.set_socket_write_timeout"><a class="viewcode-back" href="../../../M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_socket_write_timeout">[docs]</a> <span class="k">def</span> <span class="nf">set_socket_write_timeout</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">timeo</span><span class="p">):</span>
<span class="c1"># type: (timeout) -&gt; None</span>
<span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">timeo</span><span class="p">,</span> <span class="n">timeout</span><span class="o">.</span><span class="n">timeout</span><span class="p">)</span>
+ <span class="n">binstr</span> <span class="o">=</span> <span class="n">timeo</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span>
+ <span class="c1">#print(&quot;Debug: set_socket_write_timeout: &quot;</span>
+ <span class="c1"># &quot;input timeout(sec=%r, microsec=%r) -&gt; set sockopt value: %s&quot; %</span>
+ <span class="c1"># (timeo.sec, timeo.microsec, self._hexdump(binstr)))</span>
<span class="bp">self</span><span class="o">.</span><span class="n">socket</span><span class="o">.</span><span class="n">setsockopt</span><span class="p">(</span>
- <span class="n">socket</span><span class="o">.</span><span class="n">SOL_SOCKET</span><span class="p">,</span> <span class="n">socket</span><span class="o">.</span><span class="n">SO_SNDTIMEO</span><span class="p">,</span> <span class="n">timeo</span><span class="o">.</span><span class="n">pack</span><span class="p">())</span></div>
+ <span class="n">socket</span><span class="o">.</span><span class="n">SOL_SOCKET</span><span class="p">,</span> <span class="n">socket</span><span class="o">.</span><span class="n">SO_SNDTIMEO</span><span class="p">,</span> <span class="n">binstr</span><span class="p">)</span></div>
<div class="viewcode-block" id="Connection.get_version"><a class="viewcode-back" href="../../../M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_version">[docs]</a> <span class="k">def</span> <span class="nf">get_version</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; str</span>
- <span class="s2">&quot;Return the TLS/SSL protocol version for this connection.&quot;</span>
- <span class="k">return</span> <span class="n">util</span><span class="o">.</span><span class="n">py3str</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">ssl_get_version</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ssl</span><span class="p">))</span></div>
+ <span class="sd">&quot;&quot;&quot;Return the TLS/SSL protocol version for this connection.&quot;&quot;&quot;</span>
+ <span class="k">return</span> <span class="n">six</span><span class="o">.</span><span class="n">ensure_text</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">ssl_get_version</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ssl</span><span class="p">))</span></div>
<div class="viewcode-block" id="Connection.set_post_connection_check_callback"><a class="viewcode-back" href="../../../M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_post_connection_check_callback">[docs]</a> <span class="k">def</span> <span class="nf">set_post_connection_check_callback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">postConnectionCheck</span><span class="p">):</span> <span class="c1"># noqa</span>
<span class="c1"># type: (Callable) -&gt; None</span>
@@ -693,14 +717,35 @@
<span class="sd">&quot;&quot;&quot;Set the requested hostname for the SNI (Server Name Indication)</span>
<span class="sd"> extension.</span>
<span class="sd"> &quot;&quot;&quot;</span>
- <span class="n">m2</span><span class="o">.</span><span class="n">ssl_set_tlsext_host_name</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ssl</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span></div></div>
+ <span class="n">m2</span><span class="o">.</span><span class="n">ssl_set_tlsext_host_name</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ssl</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span></div>
+
+<div class="viewcode-block" id="Connection.set1_host"><a class="viewcode-back" href="../../../M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set1_host">[docs]</a> <span class="k">def</span> <span class="nf">set1_host</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
+ <span class="c1"># type: (bytes) -&gt; None</span>
+ <span class="sd">&quot;&quot;&quot;Set the requested hostname to check in the server certificate.&quot;&quot;&quot;</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">host</span> <span class="o">=</span> <span class="n">name</span></div></div>
</pre></div>
</div>
+
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
- <div class="sphinxsidebarwrapper"><div class="relations">
+ <div class="sphinxsidebarwrapper">
+<h1 class="logo"><a href="../../../index.html">M2Crypto</a></h1>
+
+
+
+
+
+
+
+
+<h3>Navigation</h3>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../M2Crypto.html">M2Crypto Package</a></li>
+</ul>
+
+<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../../../index.html">Documentation overview</a><ul>
@@ -713,14 +758,24 @@
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
+ <div class="searchformwrapper">
<form class="search" action="../../../search.html" method="get">
- <div><input type="text" name="q" /></div>
- <div><input type="submit" value="Go" /></div>
+ <input type="text" name="q" />
+ <input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
+ </div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
+
+
+
+
+
+
+
+
</div>
</div>
<div class="clearer"></div>
@@ -729,8 +784,8 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.6.4</a>
- &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.9</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>