summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@cepl.eu>2020-12-08 17:31:09 +0100
committerMatěj Cepl <mcepl@cepl.eu>2020-12-08 17:31:09 +0100
commit044ae976a04e524ba001f63d437ecb866ebeff68 (patch)
tree54c37a11917ba074e9a15829a408decb226d2ffd
parentea3e5ce44844f12ffdf40257eabf20622027a125 (diff)
downloadm2crypto-044ae976a04e524ba001f63d437ecb866ebeff68.tar.gz
Administrative tasks to create release 0.37.0.37.0
-rw-r--r--CHANGES18
-rw-r--r--M2Crypto/__init__.py2
-rw-r--r--doc/doctrees/M2Crypto.SSL.doctreebin349315 -> 447469 bytes
-rw-r--r--doc/doctrees/M2Crypto.doctreebin963869 -> 1345083 bytes
-rw-r--r--doc/doctrees/ZServerSSL-HOWTO.doctreebin43570 -> 43612 bytes
-rw-r--r--doc/doctrees/environment.picklebin535122 -> 542878 bytes
-rw-r--r--doc/doctrees/howto.ca.doctreebin49113 -> 49176 bytes
-rw-r--r--doc/doctrees/howto.smime.doctreebin88860 -> 88920 bytes
-rw-r--r--doc/doctrees/howto.ssl.doctreebin20890 -> 20957 bytes
-rw-r--r--doc/doctrees/index.doctreebin6360 -> 6497 bytes
-rw-r--r--doc/html/M2Crypto.SSL.html904
-rw-r--r--doc/html/M2Crypto.html3352
-rw-r--r--doc/html/_modules/M2Crypto/ASN1.html64
-rw-r--r--doc/html/_modules/M2Crypto/AuthCookie.html42
-rw-r--r--doc/html/_modules/M2Crypto/BIO.html65
-rw-r--r--doc/html/_modules/M2Crypto/BN.html36
-rw-r--r--doc/html/_modules/M2Crypto/DH.html49
-rw-r--r--doc/html/_modules/M2Crypto/DSA.html47
-rw-r--r--doc/html/_modules/M2Crypto/EC.html46
-rw-r--r--doc/html/_modules/M2Crypto/EVP.html13
-rw-r--r--doc/html/_modules/M2Crypto/Engine.html41
-rw-r--r--doc/html/_modules/M2Crypto/RC4.html37
-rw-r--r--doc/html/_modules/M2Crypto/Rand.html36
-rw-r--r--doc/html/_modules/M2Crypto/SMIME.html43
-rw-r--r--doc/html/_modules/M2Crypto/SSL.html50
-rw-r--r--doc/html/_modules/M2Crypto/SSL/Checker.html42
-rw-r--r--doc/html/_modules/M2Crypto/SSL/Cipher.html2
-rw-r--r--doc/html/_modules/M2Crypto/SSL/Context.html2
-rw-r--r--doc/html/_modules/M2Crypto/SSL/SSLServer.html56
-rw-r--r--doc/html/_modules/M2Crypto/SSL/Session.html2
-rw-r--r--doc/html/_modules/M2Crypto/SSL/TwistedProtocolWrapper.html54
-rw-r--r--doc/html/_modules/M2Crypto/SSL/cb.html2
-rw-r--r--doc/html/_modules/M2Crypto/SSL/ssl_dispatcher.html37
-rw-r--r--doc/html/_modules/M2Crypto/SSL/timeout.html31
-rw-r--r--doc/html/_modules/M2Crypto/X509.html140
-rw-r--r--doc/html/_modules/M2Crypto/ftpslib.html37
-rw-r--r--doc/html/_modules/M2Crypto/httpslib.html46
-rw-r--r--doc/html/_modules/M2Crypto/m2urllib.html46
-rw-r--r--doc/html/_modules/M2Crypto/m2urllib2.html48
-rw-r--r--doc/html/_modules/M2Crypto/m2xmlrpclib.html54
-rw-r--r--doc/html/_modules/M2Crypto/threading.html33
-rw-r--r--doc/html/_modules/M2Crypto/util.html5
-rw-r--r--doc/html/_modules/index.html30
-rw-r--r--doc/html/_modules/urllib/request.html295
-rw-r--r--doc/html/genindex.html1384
-rw-r--r--doc/html/index.html50
-rw-r--r--doc/html/objects.invbin4395 -> 4432 bytes
-rw-r--r--doc/html/py-modindex.html135
-rw-r--r--doc/html/searchindex.js2
49 files changed, 6445 insertions, 933 deletions
diff --git a/CHANGES b/CHANGES
index d2fc378..10e6274 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,21 @@
+0.37.0 - 2020-12-08
+-------------------
+
+- Remove support for CentOS 6 and Python 2.6 (remove tests.vendor
+ module).
+- Remodel CI:
+ - on GitHub switched from Travis-CI to GH Actions
+ - on GitLab-CI: stop testing 2.7 on Fedora, add centos7
+ - update appveyor.yml
+- Stop playing with swig in setup.py, we don't support swig 1.* anymore.
+- Fix dereferencing of pointers (gl#m2crypto/m2crypto#281)
+- Replace deprecated PyObject_AsReadBuffer with our own shim.
+- Use parametrized to create parametrized tests (new external
+ dependency).
+- Only use DigestSign() and DigestUpdate() with OpenSSL >= 1.1.1
+- Expose all the X509_V_FLAG
+- Add support for DigestSign* and DigestVerify*
+
0.36.0 - 2020-07-13
-------------------
diff --git a/M2Crypto/__init__.py b/M2Crypto/__init__.py
index 06243c9..f0fd255 100644
--- a/M2Crypto/__init__.py
+++ b/M2Crypto/__init__.py
@@ -19,7 +19,7 @@ Copyright 2008-2011 Heikki Toivonen. All rights reserved.
"""
# noqa
from distutils.version import StrictVersion
-__version__ = '0.36.0'
+__version__ = '0.37.0'
version = __version__ # type: str
version_info = StrictVersion(__version__).version
diff --git a/doc/doctrees/M2Crypto.SSL.doctree b/doc/doctrees/M2Crypto.SSL.doctree
index 7ea180d..4b24ab4 100644
--- a/doc/doctrees/M2Crypto.SSL.doctree
+++ b/doc/doctrees/M2Crypto.SSL.doctree
Binary files differ
diff --git a/doc/doctrees/M2Crypto.doctree b/doc/doctrees/M2Crypto.doctree
index 9a06cce..2e219e5 100644
--- a/doc/doctrees/M2Crypto.doctree
+++ b/doc/doctrees/M2Crypto.doctree
Binary files differ
diff --git a/doc/doctrees/ZServerSSL-HOWTO.doctree b/doc/doctrees/ZServerSSL-HOWTO.doctree
index 040bc3f..ec0d8c9 100644
--- a/doc/doctrees/ZServerSSL-HOWTO.doctree
+++ b/doc/doctrees/ZServerSSL-HOWTO.doctree
Binary files differ
diff --git a/doc/doctrees/environment.pickle b/doc/doctrees/environment.pickle
index 9a85a4e..880df37 100644
--- a/doc/doctrees/environment.pickle
+++ b/doc/doctrees/environment.pickle
Binary files differ
diff --git a/doc/doctrees/howto.ca.doctree b/doc/doctrees/howto.ca.doctree
index d86d193..f9ccf3e 100644
--- a/doc/doctrees/howto.ca.doctree
+++ b/doc/doctrees/howto.ca.doctree
Binary files differ
diff --git a/doc/doctrees/howto.smime.doctree b/doc/doctrees/howto.smime.doctree
index 4199adb..92317fa 100644
--- a/doc/doctrees/howto.smime.doctree
+++ b/doc/doctrees/howto.smime.doctree
Binary files differ
diff --git a/doc/doctrees/howto.ssl.doctree b/doc/doctrees/howto.ssl.doctree
index e90779b..4caf727 100644
--- a/doc/doctrees/howto.ssl.doctree
+++ b/doc/doctrees/howto.ssl.doctree
Binary files differ
diff --git a/doc/doctrees/index.doctree b/doc/doctrees/index.doctree
index cab8fd0..1d082e7 100644
--- a/doc/doctrees/index.doctree
+++ b/doc/doctrees/index.doctree
Binary files differ
diff --git a/doc/html/M2Crypto.SSL.html b/doc/html/M2Crypto.SSL.html
index a6b1cb3..19a257d 100644
--- a/doc/html/M2Crypto.SSL.html
+++ b/doc/html/M2Crypto.SSL.html
@@ -36,9 +36,60 @@
<h1>SSL Package<a class="headerlink" href="#ssl-package" title="Permalink to this headline">¶</a></h1>
<div class="section" id="id1">
<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">SSL</span></code> Package<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2>
+<span class="target" id="module-M2Crypto.SSL"></span><dl class="py exception">
+<dt id="M2Crypto.SSL.SSLError">
+<em class="property">exception </em><code class="sig-prename descclassname">M2Crypto.SSL.</code><code class="sig-name descname">SSLError</code><a class="reference internal" href="_modules/M2Crypto/SSL.html#SSLError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.SSLError" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
+</dd></dl>
+
+<dl class="py exception">
+<dt id="M2Crypto.SSL.SSLTimeoutError">
+<em class="property">exception </em><code class="sig-prename descclassname">M2Crypto.SSL.</code><code class="sig-name descname">SSLTimeoutError</code><a class="reference internal" href="_modules/M2Crypto/SSL.html#SSLTimeoutError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.SSLTimeoutError" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#M2Crypto.SSL.SSLError" title="M2Crypto.SSL.SSLError"><code class="xref py py-class docutils literal notranslate"><span class="pre">M2Crypto.SSL.SSLError</span></code></a>, <code class="xref py py-class docutils literal notranslate"><span class="pre">socket.timeout</span></code></p>
+</dd></dl>
+
</div>
-<div class="section" id="checker-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">Checker</span></code> Module<a class="headerlink" href="#checker-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.SSL.Checker">
+<span id="checker-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">Checker</span></code> Module<a class="headerlink" href="#module-M2Crypto.SSL.Checker" title="Permalink to this headline">¶</a></h2>
+<p>SSL peer certificate checking routines</p>
+<p>Copyright (c) 2004-2007 Open Source Applications Foundation.
+All rights reserved.</p>
+<p>Copyright 2008 Heikki Toivonen. All rights reserved.</p>
+<dl class="py class">
+<dt id="M2Crypto.SSL.Checker.Checker">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.SSL.Checker.</code><code class="sig-name descname">Checker</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">host</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>str<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">peerCertHash</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bytes<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">peerCertDigest</span><span class="p">:</span> <span class="n">str</span> <span class="o">=</span> <span class="default_value">'sha1'</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/SSL/Checker.html#Checker"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.Checker.Checker" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<dl class="py attribute">
+<dt id="M2Crypto.SSL.Checker.Checker.numericIpMatch">
+<code class="sig-name descname">numericIpMatch</code><em class="property"> = re.compile('^[0-9]+(\\.[0-9]+)*$')</em><a class="headerlink" href="#M2Crypto.SSL.Checker.Checker.numericIpMatch" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py exception">
+<dt id="M2Crypto.SSL.Checker.NoCertificate">
+<em class="property">exception </em><code class="sig-prename descclassname">M2Crypto.SSL.Checker.</code><code class="sig-name descname">NoCertificate</code><a class="reference internal" href="_modules/M2Crypto/SSL/Checker.html#NoCertificate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.Checker.NoCertificate" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#M2Crypto.SSL.Checker.SSLVerificationError" title="M2Crypto.SSL.Checker.SSLVerificationError"><code class="xref py py-class docutils literal notranslate"><span class="pre">M2Crypto.SSL.Checker.SSLVerificationError</span></code></a></p>
+</dd></dl>
+
+<dl class="py exception">
+<dt id="M2Crypto.SSL.Checker.SSLVerificationError">
+<em class="property">exception </em><code class="sig-prename descclassname">M2Crypto.SSL.Checker.</code><code class="sig-name descname">SSLVerificationError</code><a class="reference internal" href="_modules/M2Crypto/SSL/Checker.html#SSLVerificationError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.Checker.SSLVerificationError" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
+</dd></dl>
+
+<dl class="py exception">
+<dt id="M2Crypto.SSL.Checker.WrongCertificate">
+<em class="property">exception </em><code class="sig-prename descclassname">M2Crypto.SSL.Checker.</code><code class="sig-name descname">WrongCertificate</code><a class="reference internal" href="_modules/M2Crypto/SSL/Checker.html#WrongCertificate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.Checker.WrongCertificate" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#M2Crypto.SSL.Checker.SSLVerificationError" title="M2Crypto.SSL.Checker.SSLVerificationError"><code class="xref py py-class docutils literal notranslate"><span class="pre">M2Crypto.SSL.Checker.SSLVerificationError</span></code></a></p>
+</dd></dl>
+
+<dl class="py exception">
+<dt id="M2Crypto.SSL.Checker.WrongHost">
+<em class="property">exception </em><code class="sig-prename descclassname">M2Crypto.SSL.Checker.</code><code class="sig-name descname">WrongHost</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expectedHost</span><span class="p">:</span> <span class="n">str</span></em>, <em class="sig-param"><span class="n">actualHost</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">fieldName</span><span class="p">:</span> <span class="n">str</span> <span class="o">=</span> <span class="default_value">'commonName'</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/SSL/Checker.html#WrongHost"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.Checker.WrongHost" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#M2Crypto.SSL.Checker.SSLVerificationError" title="M2Crypto.SSL.Checker.SSLVerificationError"><code class="xref py py-class docutils literal notranslate"><span class="pre">M2Crypto.SSL.Checker.SSLVerificationError</span></code></a></p>
+</dd></dl>
+
</div>
<div class="section" id="module-M2Crypto.SSL.Cipher">
<span id="cipher-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">Cipher</span></code> Module<a class="headerlink" href="#module-M2Crypto.SSL.Cipher" title="Permalink to this headline">¶</a></h2>
@@ -67,8 +118,588 @@
</dd></dl>
</div>
-<div class="section" id="connection-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">Connection</span></code> Module<a class="headerlink" href="#connection-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.SSL.Connection">
+<span id="connection-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">Connection</span></code> Module<a class="headerlink" href="#module-M2Crypto.SSL.Connection" title="Permalink to this headline">¶</a></h2>
+<dl class="py class">
+<dt id="M2Crypto.SSL.Connection.Connection">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.SSL.Connection.</code><code class="sig-name descname">Connection</code><span class="sig-paren">(</span><em class="sig-param">ctx: Context</em>, <em class="sig-param">sock: socket.socket = None</em>, <em class="sig-param">family: int = &lt;AddressFamily.AF_INET: 2&gt;</em><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>An SSL connection.</p>
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.accept">
+<code class="sig-name descname">accept</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Tuple<span class="p">[</span><a class="reference internal" href="#M2Crypto.SSL.Connection.Connection" title="M2Crypto.SSL.Connection.Connection">M2Crypto.SSL.Connection.Connection</a><span class="p">, </span>Union<span class="p">[</span>Tuple<span class="p">[</span>str<span class="p">, </span>int<span class="p">]</span><span class="p">, </span>str<span class="p">]</span><span class="p">]</span><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.accept" title="Permalink to this definition">¶</a></dt>
+<dd><p>Accept an SSL connection.</p>
+<p>The return value is a pair (ssl, addr) where ssl is a new SSL
+connection object and addr is the address bound to the other end
+of the SSL connection.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>tuple of Connection and addr. Address can take very
+various forms (see socket documentation), for IPv4 it
+is tuple(str, int), for IPv6 a tuple of four (host,
+port, flowinfo, scopeid), where the last two are
+optional ints.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.accept_ssl">
+<code class="sig-name descname">accept_ssl</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Optional<span class="p">[</span>int<span class="p">]</span><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.accept_ssl" title="Permalink to this definition">¶</a></dt>
+<dd><p>Waits for a TLS/SSL client to initiate the TLS/SSL handshake.</p>
+<p>The communication channel must already have been set and
+assigned to the ssl by setting an underlying BIO.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p><dl class="simple">
+<dt>0 The TLS/SSL handshake was not successful but was shut</dt><dd><p>down controlled and by the specifications of the
+TLS/SSL protocol. Call get_error() with the return
+value ret to find out the reason.</p>
+</dd>
+<dt>1 The TLS/SSL handshake was successfully completed,</dt><dd><p>a TLS/SSL connection has been established.</p>
+</dd>
+<dt>&lt;0 The TLS/SSL handshake was not successful because</dt><dd><p>a fatal error occurred either at the protocol level
+or a connection failure occurred. The shutdown was
+not clean. It can also occur of action is need to
+continue the operation for non-blocking BIOs. Call
+get_error() with the return value ret to find
+out the reason.</p>
+</dd>
+</dl>
+</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.bind">
+<code class="sig-name descname">bind</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">addr</span><span class="p">:</span> <span class="n">Union<span class="p">[</span>Tuple<span class="p">[</span>str<span class="p">, </span>int<span class="p">]</span><span class="p">, </span>str<span class="p">]</span></span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.bind" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.clear">
+<code class="sig-name descname">clear</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.clear" title="Permalink to this definition">¶</a></dt>
+<dd><p>If there were errors in this connection, call clear() rather
+than close() to end it, so that bad sessions will be cleared
+from cache.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.close">
+<code class="sig-name descname">close</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">freeBio</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.close" title="Permalink to this definition">¶</a></dt>
+<dd><p>if freeBio is true, call _free_bio</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.connect">
+<code class="sig-name descname">connect</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">addr</span><span class="p">:</span> <span class="n">Union<span class="p">[</span>Tuple<span class="p">[</span>str<span class="p">, </span>int<span class="p">]</span><span class="p">, </span>str<span class="p">]</span></span></em><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.connect" title="Permalink to this definition">¶</a></dt>
+<dd><p>Overloading socket.connect()</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>addr</strong> – addresses have various depending on their type</p>
+</dd>
+</dl>
+<p>:return:status of ssl_connect()</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.connect_ssl">
+<code class="sig-name descname">connect_ssl</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Optional<span class="p">[</span>int<span class="p">]</span><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.connect_ssl" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.fileno">
+<code class="sig-name descname">fileno</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.fileno" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.get_cipher">
+<code class="sig-name descname">get_cipher</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Optional<span class="p">[</span><a class="reference internal" href="#M2Crypto.SSL.Cipher.Cipher" title="M2Crypto.SSL.Cipher.Cipher">M2Crypto.SSL.Cipher.Cipher</a><span class="p">]</span><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.get_cipher" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return an M2Crypto.SSL.Cipher object for this connection; if the
+connection has not been initialised with a cipher suite, return None.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.get_cipher_list">
+<code class="sig-name descname">get_cipher_list</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">idx</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; str<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.get_cipher_list" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the cipher suites for this connection as a string object.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.get_ciphers">
+<code class="sig-name descname">get_ciphers</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Optional<span class="p">[</span><a class="reference internal" href="#M2Crypto.SSL.Cipher.Cipher_Stack" title="M2Crypto.SSL.Cipher.Cipher_Stack">M2Crypto.SSL.Cipher.Cipher_Stack</a><span class="p">]</span><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.get_ciphers" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return an M2Crypto.SSL.Cipher_Stack object for this
+connection; if the connection has not been initialised with
+cipher suites, return None.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.get_context">
+<code class="sig-name descname">get_context</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Context<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.get_context" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the Context object associated with this connection.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.get_default_session_timeout">
+<code class="sig-name descname">get_default_session_timeout</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.get_default_session_timeout" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.get_peer_cert">
+<code class="sig-name descname">get_peer_cert</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="M2Crypto.html#M2Crypto.X509.X509" title="M2Crypto.X509.X509">M2Crypto.X509.X509</a><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.get_peer_cert" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the peer certificate.</p>
+<p>If the peer did not provide a certificate, return None.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.get_peer_cert_chain">
+<code class="sig-name descname">get_peer_cert_chain</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Optional<span class="p">[</span><a class="reference internal" href="M2Crypto.html#M2Crypto.X509.X509_Stack" title="M2Crypto.X509.X509_Stack">M2Crypto.X509.X509_Stack</a><span class="p">]</span><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.get_peer_cert_chain" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the peer certificate chain; if the peer did not provide
+a certificate chain, return None.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Warning</dt>
+<dd class="field-odd"><p>The returned chain will be valid only for as long as the
+connection object is alive. Once the connection object
+gets freed, the chain will be freed as well.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.get_session">
+<code class="sig-name descname">get_session</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.SSL.Session.Session" title="M2Crypto.SSL.Session.Session">M2Crypto.SSL.Session.Session</a><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.get_session" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.get_shutdown">
+<code class="sig-name descname">get_shutdown</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.get_shutdown" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the current shutdown mode of the Connection.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.get_socket_read_timeout">
+<code class="sig-name descname">get_socket_read_timeout</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; timeout<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.get_socket_read_timeout" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.get_socket_write_timeout">
+<code class="sig-name descname">get_socket_write_timeout</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; timeout<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.get_socket_write_timeout" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.get_state">
+<code class="sig-name descname">get_state</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; bytes<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.get_state" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the SSL state of this connection.</p>
+<p>During its use, an SSL objects passes several states. The state
+is internally maintained. Querying the state information is not
+very informative before or when a connection has been
+established. It however can be of significant interest during
+the handshake.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>6 letter string indicating the current state of the SSL
+object ssl.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.get_verify_depth">
+<code class="sig-name descname">get_verify_depth</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.get_verify_depth" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the peer certificate verification depth.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.get_verify_mode">
+<code class="sig-name descname">get_verify_mode</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.get_verify_mode" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the peer certificate verification mode.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.get_verify_result">
+<code class="sig-name descname">get_verify_result</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.get_verify_result" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the peer certificate verification result.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.get_version">
+<code class="sig-name descname">get_version</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; str<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.get_version" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the TLS/SSL protocol version for this connection.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.getpeername">
+<code class="sig-name descname">getpeername</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Union<span class="p">[</span>Tuple<span class="p">[</span>str<span class="p">, </span>int<span class="p">]</span><span class="p">, </span>str<span class="p">]</span><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.getpeername" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the remote address to which the socket is connected.</p>
+<p>This is useful to find out the port number of a remote IPv4/v6 socket,
+for instance.
+On some systems this function is not supported.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.getsockname">
+<code class="sig-name descname">getsockname</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Union<span class="p">[</span>Tuple<span class="p">[</span>str<span class="p">, </span>int<span class="p">]</span><span class="p">, </span>str<span class="p">]</span><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.getsockname" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the socket’s own address.</p>
+<p>This is useful to find out the port number of an IPv4/v6 socket,
+for instance. (The format of the address returned depends
+on the address family – see above.)</p>
+<p>:return:socket’s address as addr type</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.getsockopt">
+<code class="sig-name descname">getsockopt</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">level</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">optname</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">buflen</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>int<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span> &#x2192; Union<span class="p">[</span>int<span class="p">, </span>bytes<span class="p">]</span><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.getsockopt" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the value of the given socket option.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>level</strong> – level at which the option resides.
+To manipulate options at the sockets API level, level is
+specified as socket.SOL_SOCKET. To manipulate options at
+any other level the protocol number of the appropriate
+protocol controlling the option is supplied. For example,
+to indicate that an option is to be interpreted by the
+TCP protocol, level should be set to the protocol number
+of socket.SOL_TCP; see getprotoent(3).</p></li>
+<li><p><strong>optname</strong> – The value of the given socket option is
+described in the Unix man page getsockopt(2)). The needed
+symbolic constants (SO_* etc.) are defined in the socket
+module.</p></li>
+<li><p><strong>buflen</strong> – If it is absent, an integer option is assumed
+and its integer value is returned by the function. If
+buflen is present, it specifies the maximum length of the
+buffer used to receive the option in, and this buffer is
+returned as a bytes object.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>Either integer or bytes value of the option. It is up
+to the caller to decode the contents of the buffer (see
+the optional built-in module struct for a way to decode
+C structures encoded as byte strings).</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.listen">
+<code class="sig-name descname">listen</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">qlen</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">5</span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.listen" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.m2_bio_free">
+<code class="sig-name descname">m2_bio_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.m2_bio_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt id="M2Crypto.SSL.Connection.Connection.m2_bio_noclose">
+<code class="sig-name descname">m2_bio_noclose</code><em class="property"> = 0</em><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.m2_bio_noclose" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.m2_ssl_free">
+<code class="sig-name descname">m2_ssl_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.m2_ssl_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.makefile">
+<code class="sig-name descname">makefile</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mode</span><span class="p">:</span> <span class="n">AnyStr</span> <span class="o">=</span> <span class="default_value">'rb'</span></em>, <em class="sig-param"><span class="n">bufsize</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">- 1</span></em><span class="sig-paren">)</span> &#x2192; Union<span class="p">[</span>_io.BufferedRWPair<span class="p">, </span>_io.BufferedReader<span class="p">]</span><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.makefile" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.pending">
+<code class="sig-name descname">pending</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.pending" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the numbers of octets that can be read from the connection.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.read">
+<code class="sig-name descname">read</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">size</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1024</span></em><span class="sig-paren">)</span> &#x2192; bytes<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.read" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.recv">
+<code class="sig-name descname">recv</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">size</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1024</span></em><span class="sig-paren">)</span> &#x2192; bytes<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.recv" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.recv_into">
+<code class="sig-name descname">recv_into</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">buff</span><span class="p">:</span> <span class="n">Union<span class="p">[</span>bytearray<span class="p">, </span>memoryview<span class="p">]</span></span></em>, <em class="sig-param"><span class="n">nbytes</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.recv_into" title="Permalink to this definition">¶</a></dt>
+<dd><p>A version of recv() that stores its data into a buffer rather
+than creating a new string. Receive up to buffersize bytes from
+the socket. If buffersize is not specified (or 0), receive up
+to the size available in the given buffer.</p>
+<p>If buff is bytearray, it will have after return length of the
+actually returned number of bytes. If buff is memoryview, then
+the size of buff won’t change (it cannot), but all bytes after
+the number of returned bytes will be NULL.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>buffer</strong> – a buffer for the received bytes</p></li>
+<li><p><strong>nbytes</strong> – maximum number of bytes to read</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>number of bytes read</p>
+</dd>
+</dl>
+<p>See recv() for documentation about the flags.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.renegotiate">
+<code class="sig-name descname">renegotiate</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.renegotiate" title="Permalink to this definition">¶</a></dt>
+<dd><p>Renegotiate this connection’s SSL parameters.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.send">
+<code class="sig-name descname">send</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.send" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.sendall">
+<code class="sig-name descname">sendall</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.sendall" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.serverPostConnectionCheck">
+<code class="sig-name descname">serverPostConnectionCheck</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kw</span><span class="p">:</span> <span class="n">Any</span></em><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.serverPostConnectionCheck" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.set1_host">
+<code class="sig-name descname">set1_host</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.set1_host" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the requested hostname to check in the server certificate.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.set_accept_state">
+<code class="sig-name descname">set_accept_state</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.set_accept_state" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets Connection to work in the server mode.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.set_bio">
+<code class="sig-name descname">set_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">readbio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="M2Crypto.html#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em>, <em class="sig-param"><span class="n">writebio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="M2Crypto.html#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.set_bio" title="Permalink to this definition">¶</a></dt>
+<dd><p>Explicitly set read and write bios</p>
+<p>Connects the BIOs for the read and write operations of the
+TLS/SSL (encrypted) side of ssl.</p>
+<p>The SSL engine inherits the behaviour of both BIO objects,
+respectively. If a BIO is non-blocking, the Connection will also
+have non-blocking behaviour.</p>
+<p>If there was already a BIO connected to Connection, BIO_free()
+will be called (for both the reading and writing side, if
+different).</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>readbio</strong> – BIO for reading</p></li>
+<li><p><strong>writebio</strong> – BIO for writing.</p></li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.set_cipher_list">
+<code class="sig-name descname">set_cipher_list</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cipher_list</span><span class="p">:</span> <span class="n">str</span></em><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.set_cipher_list" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the cipher suites for this connection.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.set_client_CA_list_from_context">
+<code class="sig-name descname">set_client_CA_list_from_context</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.set_client_CA_list_from_context" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the acceptable client CA list. If the client
+returns a certificate, it must have been issued by
+one of the CAs listed in context.</p>
+<p>Makes sense only for servers.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.set_client_CA_list_from_file">
+<code class="sig-name descname">set_client_CA_list_from_file</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cafile</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.set_client_CA_list_from_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the acceptable client CA list.</p>
+<p>If the client returns a certificate, it must have been issued by
+one of the CAs listed in cafile.</p>
+<p>Makes sense only for servers.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>cafile</strong> – Filename from which to load the CA list.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p><dl class="simple">
+<dt>0 A failure while manipulating the STACK_OF(X509_NAME)</dt><dd><p>object occurred or the X509_NAME could not be
+extracted from cacert. Check the error stack to find
+out the reason.</p>
+</dd>
+</dl>
+<p>1 The operation succeeded.</p>
+</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.set_connect_state">
+<code class="sig-name descname">set_connect_state</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.set_connect_state" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets Connection to work in the client mode.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.set_post_connection_check_callback">
+<code class="sig-name descname">set_post_connection_check_callback</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">postConnectionCheck</span><span class="p">:</span> <span class="n">Callable</span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.set_post_connection_check_callback" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.set_session">
+<code class="sig-name descname">set_session</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">session</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.SSL.Session.Session" title="M2Crypto.SSL.Session.Session">M2Crypto.SSL.Session.Session</a></span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.set_session" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.set_session_id_ctx">
+<code class="sig-name descname">set_session_id_ctx</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">id</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.set_session_id_ctx" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.set_shutdown">
+<code class="sig-name descname">set_shutdown</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mode</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.set_shutdown" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets the shutdown state of the Connection to mode.</p>
+<p>The shutdown state of an ssl connection is a bitmask of (use
+m2.SSL_* constants):</p>
+<p>0 No shutdown setting, yet.</p>
+<dl class="simple">
+<dt>SSL_SENT_SHUTDOWN</dt><dd><p>A “close notify” shutdown alert was sent to the peer, the
+connection is being considered closed and the session is
+closed and correct.</p>
+</dd>
+<dt>SSL_RECEIVED_SHUTDOWN</dt><dd><p>A shutdown alert was received form the peer, either a normal
+“close notify” or a fatal error.</p>
+</dd>
+</dl>
+<p>SSL_SENT_SHUTDOWN and SSL_RECEIVED_SHUTDOWN can be set at the
+same time.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>mode</strong> – set the mode bitmask.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.set_socket_read_timeout">
+<code class="sig-name descname">set_socket_read_timeout</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">timeo</span><span class="p">:</span> <span class="n">timeout</span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.set_socket_read_timeout" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.set_socket_write_timeout">
+<code class="sig-name descname">set_socket_write_timeout</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">timeo</span><span class="p">:</span> <span class="n">timeout</span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.set_socket_write_timeout" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.set_ssl_close_flag">
+<code class="sig-name descname">set_ssl_close_flag</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">flag</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.set_ssl_close_flag" title="Permalink to this definition">¶</a></dt>
+<dd><p>By default, SSL struct will be freed in __del__. Call with
+m2.bio_close to override this default.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>flag</strong> – either m2.bio_close or m2.bio_noclose</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.set_tlsext_host_name">
+<code class="sig-name descname">set_tlsext_host_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.set_tlsext_host_name" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the requested hostname for the SNI (Server Name Indication)
+extension.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.setblocking">
+<code class="sig-name descname">setblocking</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mode</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.setblocking" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set this connection’s underlying socket to _mode_.</p>
+<p>Set blocking or non-blocking mode of the socket: if flag is 0,
+the socket is set to non-blocking, else to blocking mode.
+Initially all sockets are in blocking mode. In non-blocking mode,
+if a recv() call doesn’t find any data, or if a send() call can’t
+immediately dispose of the data, a error exception is raised;
+in blocking mode, the calls block until they can proceed.
+s.setblocking(0) is equivalent to s.settimeout(0.0);
+s.setblocking(1) is equivalent to s.settimeout(None).</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>mode</strong> – new mode to be set</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.setsockopt">
+<code class="sig-name descname">setsockopt</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">level</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">optname</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">value</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>Union<span class="p">[</span>int<span class="p">, </span>bytes<span class="p">]</span><span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span> &#x2192; Optional<span class="p">[</span>bytes<span class="p">]</span><a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.setsockopt" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the value of the given socket option.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>level</strong> – same as with getsockopt() above</p></li>
+<li><p><strong>optname</strong> – same as with getsockopt() above</p></li>
+<li><p><strong>value</strong> – an integer or a string representing a buffer. In
+the latter case it is up to the caller to ensure
+that the string contains the proper bits (see the
+optional built-in module struct for a way to
+encode C structures as strings).</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>None for success or the error handler for failure.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.settimeout">
+<code class="sig-name descname">settimeout</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">timeout</span><span class="p">:</span> <span class="n">float</span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.settimeout" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set this connection’s underlying socket’s timeout to _timeout_.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.setup_addr">
+<code class="sig-name descname">setup_addr</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">addr</span><span class="p">:</span> <span class="n">Union<span class="p">[</span>Tuple<span class="p">[</span>str<span class="p">, </span>int<span class="p">]</span><span class="p">, </span>str<span class="p">]</span></span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.setup_addr" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.setup_ssl">
+<code class="sig-name descname">setup_ssl</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.setup_ssl" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.shutdown">
+<code class="sig-name descname">shutdown</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">how</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.shutdown" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.ssl_get_error">
+<code class="sig-name descname">ssl_get_error</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ret</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.ssl_get_error" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.verify_ok">
+<code class="sig-name descname">verify_ok</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; bool<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.verify_ok" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.Connection.Connection.write">
+<code class="sig-name descname">write</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.SSL.Connection.Connection.write" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
</div>
<div class="section" id="module-M2Crypto.SSL.Context">
<span id="context-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">Context</span></code> Module<a class="headerlink" href="#module-M2Crypto.SSL.Context" title="Permalink to this headline">¶</a></h2>
@@ -111,7 +742,7 @@ certificate if the certificate’s CA is unknown.</p>
<dl class="py method">
<dt id="M2Crypto.SSL.Context.Context.get_cert_store">
-<code class="sig-name descname">get_cert_store</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; X509.X509<a class="reference internal" href="_modules/M2Crypto/SSL/Context.html#Context.get_cert_store"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.Context.Context.get_cert_store" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">get_cert_store</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="M2Crypto.html#M2Crypto.X509.X509" title="M2Crypto.X509.X509">M2Crypto.X509.X509</a><a class="reference internal" href="_modules/M2Crypto/SSL/Context.html#Context.get_cert_store"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.Context.Context.get_cert_store" title="Permalink to this definition">¶</a></dt>
<dd><p>Get the certificate store associated with this context.</p>
<dl class="field-list simple">
<dt class="field-odd">Warning</dt>
@@ -548,8 +1179,40 @@ verification checks.</p></li>
<dd></dd></dl>
</div>
-<div class="section" id="sslserver-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">SSLServer</span></code> Module<a class="headerlink" href="#sslserver-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.SSL.SSLServer">
+<span id="sslserver-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">SSLServer</span></code> Module<a class="headerlink" href="#module-M2Crypto.SSL.SSLServer" title="Permalink to this headline">¶</a></h2>
+<dl class="py class">
+<dt id="M2Crypto.SSL.SSLServer.ForkingSSLServer">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.SSL.SSLServer.</code><code class="sig-name descname">ForkingSSLServer</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">server_address</span><span class="p">:</span> <span class="n">Union<span class="p">[</span>Tuple<span class="p">[</span>str<span class="p">, </span>int<span class="p">]</span><span class="p">, </span>str<span class="p">]</span></span></em>, <em class="sig-param"><span class="n">RequestHandlerClass</span><span class="p">:</span> <span class="n">socketserver.BaseRequestHandler</span></em>, <em class="sig-param"><span class="n">ssl_context</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.SSL.Context.Context" title="M2Crypto.SSL.Context.Context">M2Crypto.SSL.Context.Context</a></span></em>, <em class="sig-param"><span class="n">bind_and_activate</span><span class="p">:</span> <span class="n">bool</span> <span class="o">=</span> <span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/SSL/SSLServer.html#ForkingSSLServer"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.SSLServer.ForkingSSLServer" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">socketserver.ForkingMixIn</span></code>, <a class="reference internal" href="#M2Crypto.SSL.SSLServer.SSLServer" title="M2Crypto.SSL.SSLServer.SSLServer"><code class="xref py py-class docutils literal notranslate"><span class="pre">M2Crypto.SSL.SSLServer.SSLServer</span></code></a></p>
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.SSL.SSLServer.SSLServer">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.SSL.SSLServer.</code><code class="sig-name descname">SSLServer</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">server_address</span><span class="p">:</span> <span class="n">Union<span class="p">[</span>Tuple<span class="p">[</span>str<span class="p">, </span>int<span class="p">]</span><span class="p">, </span>str<span class="p">]</span></span></em>, <em class="sig-param"><span class="n">RequestHandlerClass</span><span class="p">:</span> <span class="n">socketserver.BaseRequestHandler</span></em>, <em class="sig-param"><span class="n">ssl_context</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.SSL.Context.Context" title="M2Crypto.SSL.Context.Context">M2Crypto.SSL.Context.Context</a></span></em>, <em class="sig-param"><span class="n">bind_and_activate</span><span class="p">:</span> <span class="n">bool</span> <span class="o">=</span> <span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/SSL/SSLServer.html#SSLServer"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.SSLServer.SSLServer" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">socketserver.TCPServer</span></code></p>
+<dl class="py method">
+<dt id="M2Crypto.SSL.SSLServer.SSLServer.handle_error">
+<code class="sig-name descname">handle_error</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">request</span><span class="p">:</span> <span class="n">Union<span class="p">[</span>socket.socket<span class="p">, </span><a class="reference internal" href="#M2Crypto.SSL.Connection.Connection" title="M2Crypto.SSL.Connection.Connection">M2Crypto.SSL.Connection.Connection</a><span class="p">]</span></span></em>, <em class="sig-param"><span class="n">client_address</span><span class="p">:</span> <span class="n">Union<span class="p">[</span>Tuple<span class="p">[</span>str<span class="p">, </span>int<span class="p">]</span><span class="p">, </span>str<span class="p">]</span></span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/SSL/SSLServer.html#SSLServer.handle_error"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.SSLServer.SSLServer.handle_error" title="Permalink to this definition">¶</a></dt>
+<dd><p>Handle an error gracefully. May be overridden.</p>
+<p>The default is to print a traceback and continue.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.SSLServer.SSLServer.handle_request">
+<code class="sig-name descname">handle_request</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/SSL/SSLServer.html#SSLServer.handle_request"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.SSLServer.SSLServer.handle_request" title="Permalink to this definition">¶</a></dt>
+<dd><p>Handle one request, possibly blocking.</p>
+<p>Respects self.timeout.</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.SSL.SSLServer.ThreadingSSLServer">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.SSL.SSLServer.</code><code class="sig-name descname">ThreadingSSLServer</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">server_address</span><span class="p">:</span> <span class="n">Union<span class="p">[</span>Tuple<span class="p">[</span>str<span class="p">, </span>int<span class="p">]</span><span class="p">, </span>str<span class="p">]</span></span></em>, <em class="sig-param"><span class="n">RequestHandlerClass</span><span class="p">:</span> <span class="n">socketserver.BaseRequestHandler</span></em>, <em class="sig-param"><span class="n">ssl_context</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.SSL.Context.Context" title="M2Crypto.SSL.Context.Context">M2Crypto.SSL.Context.Context</a></span></em>, <em class="sig-param"><span class="n">bind_and_activate</span><span class="p">:</span> <span class="n">bool</span> <span class="o">=</span> <span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/SSL/SSLServer.html#ThreadingSSLServer"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.SSLServer.ThreadingSSLServer" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">socketserver.ThreadingMixIn</span></code>, <a class="reference internal" href="#M2Crypto.SSL.SSLServer.SSLServer" title="M2Crypto.SSL.SSLServer.SSLServer"><code class="xref py py-class docutils literal notranslate"><span class="pre">M2Crypto.SSL.SSLServer.SSLServer</span></code></a></p>
+</dd></dl>
+
</div>
<div class="section" id="module-M2Crypto.SSL.Session">
<span id="session-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">Session</span></code> Module<a class="headerlink" href="#module-M2Crypto.SSL.Session" title="Permalink to this headline">¶</a></h2>
@@ -596,7 +1259,7 @@ verification checks.</p></li>
<dl class="py method">
<dt id="M2Crypto.SSL.Session.Session.write_bio">
-<code class="sig-name descname">write_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n">BIO.BIO</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/SSL/Session.html#Session.write_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.Session.Session.write_bio" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">write_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="M2Crypto.html#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/SSL/Session.html#Session.write_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.Session.Session.write_bio" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
@@ -607,8 +1270,119 @@ verification checks.</p></li>
<dd></dd></dl>
</div>
-<div class="section" id="twistedprotocolwrapper-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">TwistedProtocolWrapper</span></code> Module<a class="headerlink" href="#twistedprotocolwrapper-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.SSL.TwistedProtocolWrapper">
+<span id="twistedprotocolwrapper-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">TwistedProtocolWrapper</span></code> Module<a class="headerlink" href="#module-M2Crypto.SSL.TwistedProtocolWrapper" title="Permalink to this headline">¶</a></h2>
+<p>Make Twisted use M2Crypto for SSL</p>
+<p>Copyright (c) 2004-2007 Open Source Applications Foundation.
+All rights reserved.</p>
+<p>FIXME THIS HAS NOT BEEN FINISHED. NEITHER PEP484 NOR PORT PYTHON3 HAS
+BEEN FINISHED. THE FURTHER WORK WILL BE DONE WHEN THE STATUS OF TWISTED
+IN THE PYTHON 3 (AND ASYNCIO) WORLD WILL BE CLEAR.</p>
+<dl class="py class">
+<dt id="M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.SSL.TwistedProtocolWrapper.</code><code class="sig-name descname">TLSProtocolWrapper</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">factory</span><span class="p">:</span> <span class="n">twisted.protocols.policies.WrappingFactory</span></em>, <em class="sig-param"><span class="n">wrappedProtocol</span><span class="p">:</span> <span class="n">object</span></em>, <em class="sig-param"><span class="n">startPassThrough</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">client</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">contextFactory</span><span class="p">:</span> <span class="n">object</span></em>, <em class="sig-param"><span class="n">postConnectionCheck</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.SSL.Checker.Checker" title="M2Crypto.SSL.Checker.Checker">M2Crypto.SSL.Checker.Checker</a></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/SSL/TwistedProtocolWrapper.html#TLSProtocolWrapper"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">twisted.protocols.policies.ProtocolWrapper</span></code></p>
+<p>A SSL/TLS protocol wrapper to be used with Twisted. Typically
+you would not use this class directly. Use connectTCP,
+connectSSL, listenTCP, listenSSL functions defined above,
+which will hook in this class.</p>
+<dl class="py method">
+<dt id="M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.clear">
+<code class="sig-name descname">clear</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/SSL/TwistedProtocolWrapper.html#TLSProtocolWrapper.clear"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.clear" title="Permalink to this definition">¶</a></dt>
+<dd><p>Clear this instance, after which it is ready for reuse.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.connectionLost">
+<code class="sig-name descname">connectionLost</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">reason</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/SSL/TwistedProtocolWrapper.html#TLSProtocolWrapper.connectionLost"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.connectionLost" title="Permalink to this definition">¶</a></dt>
+<dd><p>Called when the connection is shut down.</p>
+<p>Clear any circular references here, and any external references
+to this Protocol. The connection has been closed.</p>
+<p>&#64;type reason: L{twisted.python.failure.Failure}</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.connectionMade">
+<code class="sig-name descname">connectionMade</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/SSL/TwistedProtocolWrapper.html#TLSProtocolWrapper.connectionMade"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.connectionMade" title="Permalink to this definition">¶</a></dt>
+<dd><p>Called when a connection is made.</p>
+<p>This may be considered the initializer of the protocol, because
+it is called when the connection is completed. For clients,
+this is called once the connection to the server has been
+established; for servers, this is called after an accept() call
+stops blocking and a socket has been received. If you need to
+send any greeting or initial message, do it here.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.dataReceived">
+<code class="sig-name descname">dataReceived</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/SSL/TwistedProtocolWrapper.html#TLSProtocolWrapper.dataReceived"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.dataReceived" title="Permalink to this definition">¶</a></dt>
+<dd><p>Called whenever data is received.</p>
+<p>Use this method to translate to a higher-level message. Usually, some
+callback will be made upon the receipt of each complete protocol
+message.</p>
+<dl class="simple">
+<dt>&#64;param data: a string of indeterminate length. Please keep in mind</dt><dd><p>that you will probably need to buffer some data, as partial
+(or multiple) protocol messages may be received! I recommend
+that unit tests for protocols call through to this method with
+differing chunk sizes, down to one byte at a time.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.loseConnection">
+<code class="sig-name descname">loseConnection</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/SSL/TwistedProtocolWrapper.html#TLSProtocolWrapper.loseConnection"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.loseConnection" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.startTLS">
+<code class="sig-name descname">startTLS</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ctx</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/SSL/TwistedProtocolWrapper.html#TLSProtocolWrapper.startTLS"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.startTLS" title="Permalink to this definition">¶</a></dt>
+<dd><p>Start SSL/TLS. If this is not called, this instance just passes data
+through untouched.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.write">
+<code class="sig-name descname">write</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/SSL/TwistedProtocolWrapper.html#TLSProtocolWrapper.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.write" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.writeSequence">
+<code class="sig-name descname">writeSequence</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span><span class="p">:</span> <span class="n">Iterable<span class="p">[</span>bytes<span class="p">]</span></span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/SSL/TwistedProtocolWrapper.html#TLSProtocolWrapper.writeSequence"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.writeSequence" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.SSL.TwistedProtocolWrapper.connectSSL">
+<code class="sig-prename descclassname">M2Crypto.SSL.TwistedProtocolWrapper.</code><code class="sig-name descname">connectSSL</code><span class="sig-paren">(</span><em class="sig-param">host: str</em>, <em class="sig-param">port: int</em>, <em class="sig-param">factory: object</em>, <em class="sig-param">contextFactory: object</em>, <em class="sig-param">timeout: int = 30</em>, <em class="sig-param">bindAddress: Optional[str] = None</em>, <em class="sig-param">reactor: twisted.internet.reactor = &lt;twisted.internet.epollreactor.EPollReactor object&gt;</em>, <em class="sig-param">postConnectionCheck: Checker = &lt;M2Crypto.SSL.Checker.Checker object&gt;</em><span class="sig-paren">)</span> &#x2192; reactor.connectTCP<a class="reference internal" href="_modules/M2Crypto/SSL/TwistedProtocolWrapper.html#connectSSL"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.TwistedProtocolWrapper.connectSSL" title="Permalink to this definition">¶</a></dt>
+<dd><p>A convenience function to start an SSL/TLS connection using Twisted.</p>
+<p>See IReactorSSL interface in Twisted.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.SSL.TwistedProtocolWrapper.connectTCP">
+<code class="sig-prename descclassname">M2Crypto.SSL.TwistedProtocolWrapper.</code><code class="sig-name descname">connectTCP</code><span class="sig-paren">(</span><em class="sig-param">host: str, port: int, factory: object, timeout: int = 30, bindAddress: Optional[Union[Tuple[str, int], str]] = None, reactor: object = &lt;twisted.internet.epollreactor.EPollReactor object&gt;, postConnectionCheck: Callable = &lt;M2Crypto.SSL.Checker.Checker object&gt;</em><span class="sig-paren">)</span> &#x2192; object<a class="reference internal" href="_modules/M2Crypto/SSL/TwistedProtocolWrapper.html#connectTCP"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.TwistedProtocolWrapper.connectTCP" title="Permalink to this definition">¶</a></dt>
+<dd><p>A convenience function to start a TCP connection using Twisted.</p>
+<p>NOTE: You must call startTLS(ctx) to go into SSL/TLS mode.</p>
+<p>See IReactorTCP interface in Twisted.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.SSL.TwistedProtocolWrapper.listenSSL">
+<code class="sig-prename descclassname">M2Crypto.SSL.TwistedProtocolWrapper.</code><code class="sig-name descname">listenSSL</code><span class="sig-paren">(</span><em class="sig-param">port</em>, <em class="sig-param">factory</em>, <em class="sig-param">contextFactory</em>, <em class="sig-param">backlog=5</em>, <em class="sig-param">interface=''</em>, <em class="sig-param">reactor=&lt;twisted.internet.epollreactor.EPollReactor object&gt;</em>, <em class="sig-param">postConnectionCheck=&lt;function _alwaysSucceedsPostConnectionCheck&gt;</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/SSL/TwistedProtocolWrapper.html#listenSSL"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.TwistedProtocolWrapper.listenSSL" title="Permalink to this definition">¶</a></dt>
+<dd><p>A convenience function to listen for SSL/TLS connections using Twisted.</p>
+<p>See IReactorSSL interface in Twisted.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.SSL.TwistedProtocolWrapper.listenTCP">
+<code class="sig-prename descclassname">M2Crypto.SSL.TwistedProtocolWrapper.</code><code class="sig-name descname">listenTCP</code><span class="sig-paren">(</span><em class="sig-param">port</em>, <em class="sig-param">factory</em>, <em class="sig-param">backlog=5</em>, <em class="sig-param">interface=''</em>, <em class="sig-param">reactor=&lt;twisted.internet.epollreactor.EPollReactor object&gt;</em>, <em class="sig-param">postConnectionCheck=None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/SSL/TwistedProtocolWrapper.html#listenTCP"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.TwistedProtocolWrapper.listenTCP" title="Permalink to this definition">¶</a></dt>
+<dd><p>A convenience function to listen for TCP connections using Twisted.</p>
+<p>NOTE: You must call startTLS(ctx) to go into SSL/TLS mode.</p>
+<p>See IReactorTCP interface in Twisted.</p>
+</dd></dl>
+
</div>
<div class="section" id="module-M2Crypto.SSL.cb">
<span id="cb-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">cb</span></code> Module<a class="headerlink" href="#module-M2Crypto.SSL.cb" title="Permalink to this headline">¶</a></h2>
@@ -633,11 +1407,63 @@ verification checks.</p></li>
<dd></dd></dl>
</div>
-<div class="section" id="ssl-dispatcher-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl_dispatcher</span></code> Module<a class="headerlink" href="#ssl-dispatcher-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.SSL.ssl_dispatcher">
+<span id="ssl-dispatcher-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl_dispatcher</span></code> Module<a class="headerlink" href="#module-M2Crypto.SSL.ssl_dispatcher" title="Permalink to this headline">¶</a></h2>
+<dl class="py class">
+<dt id="M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.SSL.ssl_dispatcher.</code><code class="sig-name descname">ssl_dispatcher</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sock</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">map</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/SSL/ssl_dispatcher.html#ssl_dispatcher"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">asyncore.dispatcher</span></code></p>
+<dl class="py method">
+<dt id="M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher.connect">
+<code class="sig-name descname">connect</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">addr</span><span class="p">:</span> <span class="n">Union<span class="p">[</span>Tuple<span class="p">[</span>str<span class="p">, </span>int<span class="p">]</span><span class="p">, </span>str<span class="p">]</span></span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/SSL/ssl_dispatcher.html#ssl_dispatcher.connect"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher.connect" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher.create_socket">
+<code class="sig-name descname">create_socket</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ssl_context</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.SSL.Context.Context" title="M2Crypto.SSL.Context.Context">M2Crypto.SSL.Context.Context</a></span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/SSL/ssl_dispatcher.html#ssl_dispatcher.create_socket"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher.create_socket" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher.recv">
+<code class="sig-name descname">recv</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">buffer_size</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">4096</span></em><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/SSL/ssl_dispatcher.html#ssl_dispatcher.recv"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher.recv" title="Permalink to this definition">¶</a></dt>
+<dd><p>Receive data over SSL.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher.send">
+<code class="sig-name descname">send</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">buffer</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/SSL/ssl_dispatcher.html#ssl_dispatcher.send"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher.send" title="Permalink to this definition">¶</a></dt>
+<dd><p>Send data over SSL.</p>
+</dd></dl>
+
+</dd></dl>
+
</div>
-<div class="section" id="timeout-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">timeout</span></code> Module<a class="headerlink" href="#timeout-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.SSL.timeout">
+<span id="timeout-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">timeout</span></code> Module<a class="headerlink" href="#module-M2Crypto.SSL.timeout" title="Permalink to this headline">¶</a></h2>
+<p>Support for SSL socket timeouts.</p>
+<p>Copyright (c) 1999-2003 Ng Pheng Siong. All rights reserved.</p>
+<p>Copyright 2008 Heikki Toivonen. All rights reserved.</p>
+<dl class="py function">
+<dt id="M2Crypto.SSL.timeout.struct_size">
+<code class="sig-prename descclassname">M2Crypto.SSL.timeout.</code><code class="sig-name descname">struct_size</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/SSL/timeout.html#struct_size"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.timeout.struct_size" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.SSL.timeout.struct_to_timeout">
+<code class="sig-prename descclassname">M2Crypto.SSL.timeout.</code><code class="sig-name descname">struct_to_timeout</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">binstr</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.SSL.timeout.timeout" title="M2Crypto.SSL.timeout.timeout">M2Crypto.SSL.timeout.timeout</a><a class="reference internal" href="_modules/M2Crypto/SSL/timeout.html#struct_to_timeout"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.timeout.struct_to_timeout" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.SSL.timeout.timeout">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.SSL.timeout.</code><code class="sig-name descname">timeout</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sec</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">600</span></em>, <em class="sig-param"><span class="n">microsec</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/SSL/timeout.html#timeout"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.timeout.timeout" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<dl class="py method">
+<dt id="M2Crypto.SSL.timeout.timeout.pack">
+<code class="sig-name descname">pack</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/SSL/timeout.html#timeout.pack"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SSL.timeout.timeout.pack" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
</div>
</div>
@@ -661,44 +1487,44 @@ verification checks.</p></li>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="M2Crypto.html">M2Crypto Package</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#id1"><code class="xref py py-mod docutils literal notranslate"><span class="pre">M2Crypto</span></code> Package</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#asn1-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ASN1</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#authcookie-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">AuthCookie</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#bio-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">BIO</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#bn-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">BN</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#dh-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">DH</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#dsa-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">DSA</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#ec-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">EC</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.ASN1"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ASN1</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.AuthCookie"><code class="xref py py-mod docutils literal notranslate"><span class="pre">AuthCookie</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.BIO"><code class="xref py py-mod docutils literal notranslate"><span class="pre">BIO</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.BN"><code class="xref py py-mod docutils literal notranslate"><span class="pre">BN</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.DH"><code class="xref py py-mod docutils literal notranslate"><span class="pre">DH</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.DSA"><code class="xref py py-mod docutils literal notranslate"><span class="pre">DSA</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.EC"><code class="xref py py-mod docutils literal notranslate"><span class="pre">EC</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.EVP"><code class="xref py py-mod docutils literal notranslate"><span class="pre">EVP</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#engine-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Engine</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.Engine"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Engine</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.Err"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Err</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#rc4-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">RC4</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.RC4"><code class="xref py py-mod docutils literal notranslate"><span class="pre">RC4</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.RSA"><code class="xref py py-mod docutils literal notranslate"><span class="pre">RSA</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#rand-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Rand</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#smime-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">SMIME</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#x509-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">X509</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#callback-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">callback</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#ftpslib-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ftpslib</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#httpslib-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">httpslib</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.Rand"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Rand</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.SMIME"><code class="xref py py-mod docutils literal notranslate"><span class="pre">SMIME</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.X509"><code class="xref py py-mod docutils literal notranslate"><span class="pre">X509</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.callback"><code class="xref py py-mod docutils literal notranslate"><span class="pre">callback</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.ftpslib"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ftpslib</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.httpslib"><code class="xref py py-mod docutils literal notranslate"><span class="pre">httpslib</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.m2"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.m2crypto"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2crypto</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#m2urllib-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2urllib</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#m2urllib2-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2urllib2</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#m2xmlrpclib-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2xmlrpclib</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#threading-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.m2urllib"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2urllib</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.m2urllib2"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2urllib2</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.m2xmlrpclib"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2xmlrpclib</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.threading"><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.util"><code class="xref py py-mod docutils literal notranslate"><span class="pre">util</span></code> Module</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="M2Crypto.html#subpackages">Subpackages</a><ul class="current">
<li class="toctree-l3 current"><a class="current reference internal" href="#">SSL Package</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#id1"><code class="xref py py-mod docutils literal notranslate"><span class="pre">SSL</span></code> Package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#checker-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Checker</span></code> Module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#module-M2Crypto.SSL.Checker"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Checker</span></code> Module</a></li>
<li class="toctree-l4"><a class="reference internal" href="#module-M2Crypto.SSL.Cipher"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Cipher</span></code> Module</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#connection-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Connection</span></code> Module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#module-M2Crypto.SSL.Connection"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Connection</span></code> Module</a></li>
<li class="toctree-l4"><a class="reference internal" href="#module-M2Crypto.SSL.Context"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Context</span></code> Module</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#sslserver-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">SSLServer</span></code> Module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#module-M2Crypto.SSL.SSLServer"><code class="xref py py-mod docutils literal notranslate"><span class="pre">SSLServer</span></code> Module</a></li>
<li class="toctree-l4"><a class="reference internal" href="#module-M2Crypto.SSL.Session"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Session</span></code> Module</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#twistedprotocolwrapper-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">TwistedProtocolWrapper</span></code> Module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#module-M2Crypto.SSL.TwistedProtocolWrapper"><code class="xref py py-mod docutils literal notranslate"><span class="pre">TwistedProtocolWrapper</span></code> Module</a></li>
<li class="toctree-l4"><a class="reference internal" href="#module-M2Crypto.SSL.cb"><code class="xref py py-mod docutils literal notranslate"><span class="pre">cb</span></code> Module</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#ssl-dispatcher-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl_dispatcher</span></code> Module</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#timeout-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">timeout</span></code> Module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#module-M2Crypto.SSL.ssl_dispatcher"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl_dispatcher</span></code> Module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#module-M2Crypto.SSL.timeout"><code class="xref py py-mod docutils literal notranslate"><span class="pre">timeout</span></code> Module</a></li>
</ul>
</li>
</ul>
diff --git a/doc/html/M2Crypto.html b/doc/html/M2Crypto.html
index ff8cc46..04046ac 100644
--- a/doc/html/M2Crypto.html
+++ b/doc/html/M2Crypto.html
@@ -37,27 +37,1439 @@
<h1>M2Crypto Package<a class="headerlink" href="#m2crypto-package" title="Permalink to this headline">¶</a></h1>
<div class="section" id="id1">
<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">M2Crypto</span></code> Package<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2>
+<span class="target" id="module-M2Crypto.__init__"></span></div>
+<div class="section" id="module-M2Crypto.ASN1">
+<span id="asn1-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">ASN1</span></code> Module<a class="headerlink" href="#module-M2Crypto.ASN1" title="Permalink to this headline">¶</a></h2>
+<dl class="py class">
+<dt id="M2Crypto.ASN1.ASN1_Integer">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.ASN1.</code><code class="sig-name descname">ASN1_Integer</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">asn1int</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.ASN1.ASN1_Integer" title="M2Crypto.ASN1.ASN1_Integer">M2Crypto.ASN1.ASN1_Integer</a></span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/ASN1.html#ASN1_Integer"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ASN1.ASN1_Integer" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<dl class="py method">
+<dt id="M2Crypto.ASN1.ASN1_Integer.m2_asn1_integer_free">
+<code class="sig-name descname">m2_asn1_integer_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.ASN1.ASN1_Integer.m2_asn1_integer_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.ASN1.ASN1_Object">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.ASN1.</code><code class="sig-name descname">ASN1_Object</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">asn1obj</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.ASN1.ASN1_Object" title="M2Crypto.ASN1.ASN1_Object">M2Crypto.ASN1.ASN1_Object</a></span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/ASN1.html#ASN1_Object"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ASN1.ASN1_Object" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<dl class="py method">
+<dt id="M2Crypto.ASN1.ASN1_Object.m2_asn1_object_free">
+<code class="sig-name descname">m2_asn1_object_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.ASN1.ASN1_Object.m2_asn1_object_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.ASN1.ASN1_String">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.ASN1.</code><code class="sig-name descname">ASN1_String</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">asn1str</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.ASN1.ASN1_String" title="M2Crypto.ASN1.ASN1_String">M2Crypto.ASN1.ASN1_String</a></span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/ASN1.html#ASN1_String"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ASN1.ASN1_String" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<dl class="py method">
+<dt id="M2Crypto.ASN1.ASN1_String.as_text">
+<code class="sig-name descname">as_text</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">flags</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/ASN1.html#ASN1_String.as_text"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ASN1.ASN1_String.as_text" title="Permalink to this definition">¶</a></dt>
+<dd><p>Output an ASN1_STRING structure according to the set flags.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>flags</strong> – determine the format of the output by using
+predetermined constants, see ASN1_STRING_print_ex(3)
+manpage for their meaning.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>output an ASN1_STRING structure.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.ASN1.ASN1_String.m2_asn1_string_free">
+<code class="sig-name descname">m2_asn1_string_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.ASN1.ASN1_String.m2_asn1_string_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.ASN1.ASN1_TIME">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.ASN1.</code><code class="sig-name descname">ASN1_TIME</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">asn1_time</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span><a class="reference internal" href="#M2Crypto.ASN1.ASN1_TIME" title="M2Crypto.ASN1.ASN1_TIME">M2Crypto.ASN1.ASN1_TIME</a><span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>int<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">0</span></em>, <em class="sig-param"><span class="n">asn1_utctime</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span><a class="reference internal" href="#M2Crypto.ASN1.ASN1_TIME" title="M2Crypto.ASN1.ASN1_TIME">M2Crypto.ASN1.ASN1_TIME</a><span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/ASN1.html#ASN1_TIME"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ASN1.ASN1_TIME" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<dl class="py method">
+<dt id="M2Crypto.ASN1.ASN1_TIME.get_datetime">
+<code class="sig-name descname">get_datetime</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.ASN1.ASN1_TIME" title="M2Crypto.ASN1.ASN1_TIME">M2Crypto.ASN1.ASN1_TIME</a><a class="reference internal" href="_modules/M2Crypto/ASN1.html#ASN1_TIME.get_datetime"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ASN1.ASN1_TIME.get_datetime" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.ASN1.ASN1_TIME.m2_asn1_time_free">
+<code class="sig-name descname">m2_asn1_time_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.ASN1.ASN1_TIME.m2_asn1_time_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.ASN1.ASN1_TIME.set_datetime">
+<code class="sig-name descname">set_datetime</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">date</span><span class="p">:</span> <span class="n">datetime.datetime</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.ASN1.ASN1_TIME" title="M2Crypto.ASN1.ASN1_TIME">M2Crypto.ASN1.ASN1_TIME</a><a class="reference internal" href="_modules/M2Crypto/ASN1.html#ASN1_TIME.set_datetime"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ASN1.ASN1_TIME.set_datetime" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.ASN1.ASN1_TIME.set_string">
+<code class="sig-name descname">set_string</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">string</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/ASN1.html#ASN1_TIME.set_string"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ASN1.ASN1_TIME.set_string" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set time from UTC string.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.ASN1.ASN1_TIME.set_time">
+<code class="sig-name descname">set_time</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">time</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.ASN1.ASN1_TIME" title="M2Crypto.ASN1.ASN1_TIME">M2Crypto.ASN1.ASN1_TIME</a><a class="reference internal" href="_modules/M2Crypto/ASN1.html#ASN1_TIME.set_time"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ASN1.ASN1_TIME.set_time" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set time from seconds since epoch (int).</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py attribute">
+<dt id="M2Crypto.ASN1.ASN1_UTCTIME">
+<code class="sig-prename descclassname">M2Crypto.ASN1.</code><code class="sig-name descname">ASN1_UTCTIME</code><a class="headerlink" href="#M2Crypto.ASN1.ASN1_UTCTIME" title="Permalink to this definition">¶</a></dt>
+<dd><p>alias of <a class="reference internal" href="#M2Crypto.ASN1.ASN1_TIME" title="M2Crypto.ASN1.ASN1_TIME"><code class="xref py py-class docutils literal notranslate"><span class="pre">M2Crypto.ASN1.ASN1_TIME</span></code></a></p>
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.ASN1.LocalTimezone">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.ASN1.</code><code class="sig-name descname">LocalTimezone</code><a class="reference internal" href="_modules/M2Crypto/ASN1.html#LocalTimezone"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ASN1.LocalTimezone" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.tzinfo</span></code></p>
+<p>Localtimezone from datetime manual.</p>
+<dl class="py method">
+<dt id="M2Crypto.ASN1.LocalTimezone.dst">
+<code class="sig-name descname">dst</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dt</span><span class="p">:</span> <span class="n">datetime.datetime</span></em><span class="sig-paren">)</span> &#x2192; datetime.timedelta<a class="reference internal" href="_modules/M2Crypto/ASN1.html#LocalTimezone.dst"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ASN1.LocalTimezone.dst" title="Permalink to this definition">¶</a></dt>
+<dd><p>datetime -&gt; DST offset as timedelta positive east of UTC.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.ASN1.LocalTimezone.tzname">
+<code class="sig-name descname">tzname</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dt</span><span class="p">:</span> <span class="n">datetime.datetime</span></em><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/ASN1.html#LocalTimezone.tzname"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ASN1.LocalTimezone.tzname" title="Permalink to this definition">¶</a></dt>
+<dd><p>datetime -&gt; string name of time zone.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.ASN1.LocalTimezone.utcoffset">
+<code class="sig-name descname">utcoffset</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dt</span><span class="p">:</span> <span class="n">datetime.datetime</span></em><span class="sig-paren">)</span> &#x2192; datetime.timedelta<a class="reference internal" href="_modules/M2Crypto/ASN1.html#LocalTimezone.utcoffset"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ASN1.LocalTimezone.utcoffset" title="Permalink to this definition">¶</a></dt>
+<dd><p>datetime -&gt; timedelta showing offset from UTC, negative values indicating West of UTC</p>
+</dd></dl>
+
+</dd></dl>
+
</div>
-<div class="section" id="asn1-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">ASN1</span></code> Module<a class="headerlink" href="#asn1-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.AuthCookie">
+<span id="authcookie-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">AuthCookie</span></code> Module<a class="headerlink" href="#module-M2Crypto.AuthCookie" title="Permalink to this headline">¶</a></h2>
+<dl class="py class">
+<dt id="M2Crypto.AuthCookie.AuthCookie">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.AuthCookie.</code><code class="sig-name descname">AuthCookie</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expiry</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">data</span><span class="p">:</span> <span class="n">str</span></em>, <em class="sig-param"><span class="n">dough</span><span class="p">:</span> <span class="n">str</span></em>, <em class="sig-param"><span class="n">mac</span><span class="p">:</span> <span class="n">str</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/AuthCookie.html#AuthCookie"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.AuthCookie.AuthCookie" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<dl class="py method">
+<dt id="M2Crypto.AuthCookie.AuthCookie.data">
+<code class="sig-name descname">data</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/AuthCookie.html#AuthCookie.data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.AuthCookie.AuthCookie.data" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the data portion of the cookie.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.AuthCookie.AuthCookie.expiry">
+<code class="sig-name descname">expiry</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; float<a class="reference internal" href="_modules/M2Crypto/AuthCookie.html#AuthCookie.expiry"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.AuthCookie.AuthCookie.expiry" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the cookie’s expiry time.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.AuthCookie.AuthCookie.headerValue">
+<code class="sig-name descname">headerValue</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/AuthCookie.html#AuthCookie.headerValue"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.AuthCookie.AuthCookie.headerValue" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.AuthCookie.AuthCookie.isExpired">
+<code class="sig-name descname">isExpired</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; bool<a class="reference internal" href="_modules/M2Crypto/AuthCookie.html#AuthCookie.isExpired"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.AuthCookie.AuthCookie.isExpired" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return 1 if the cookie has expired, 0 otherwise.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.AuthCookie.AuthCookie.mac">
+<code class="sig-name descname">mac</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/AuthCookie.html#AuthCookie.mac"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.AuthCookie.AuthCookie.mac" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the cookie’s MAC.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.AuthCookie.AuthCookie.name">
+<code class="sig-name descname">name</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/AuthCookie.html#AuthCookie.name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.AuthCookie.AuthCookie.name" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.AuthCookie.AuthCookie.output">
+<code class="sig-name descname">output</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">header</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>str<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">'Set-Cookie:'</span></em><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/AuthCookie.html#AuthCookie.output"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.AuthCookie.AuthCookie.output" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the cookie’s output in “Set-Cookie” format.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.AuthCookie.AuthCookie.value">
+<code class="sig-name descname">value</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/AuthCookie.html#AuthCookie.value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.AuthCookie.AuthCookie.value" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the cookie’s output minus the “Set-Cookie: ” portion.</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.AuthCookie.AuthCookieJar">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.AuthCookie.</code><code class="sig-name descname">AuthCookieJar</code><a class="reference internal" href="_modules/M2Crypto/AuthCookie.html#AuthCookieJar"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.AuthCookie.AuthCookieJar" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<dl class="py method">
+<dt id="M2Crypto.AuthCookie.AuthCookieJar.isGoodCookie">
+<code class="sig-name descname">isGoodCookie</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cookie</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.AuthCookie.AuthCookie" title="M2Crypto.AuthCookie.AuthCookie">M2Crypto.AuthCookie.AuthCookie</a></span></em><span class="sig-paren">)</span> &#x2192; Union<span class="p">[</span>bool<span class="p">, </span>int<span class="p">]</span><a class="reference internal" href="_modules/M2Crypto/AuthCookie.html#AuthCookieJar.isGoodCookie"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.AuthCookie.AuthCookieJar.isGoodCookie" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.AuthCookie.AuthCookieJar.isGoodCookieString">
+<code class="sig-name descname">isGoodCookieString</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cookie_str</span><span class="p">:</span> <span class="n">Union<span class="p">[</span>dict<span class="p">, </span>bytes<span class="p">]</span></span></em>, <em class="sig-param"><span class="n">_debug</span><span class="p">:</span> <span class="n">bool</span> <span class="o">=</span> <span class="default_value">False</span></em><span class="sig-paren">)</span> &#x2192; Union<span class="p">[</span>bool<span class="p">, </span>int<span class="p">]</span><a class="reference internal" href="_modules/M2Crypto/AuthCookie.html#AuthCookieJar.isGoodCookieString"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.AuthCookie.AuthCookieJar.isGoodCookieString" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.AuthCookie.AuthCookieJar.makeCookie">
+<code class="sig-name descname">makeCookie</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expiry</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">data</span><span class="p">:</span> <span class="n">str</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.AuthCookie.AuthCookie" title="M2Crypto.AuthCookie.AuthCookie">M2Crypto.AuthCookie.AuthCookie</a><a class="reference internal" href="_modules/M2Crypto/AuthCookie.html#AuthCookieJar.makeCookie"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.AuthCookie.AuthCookieJar.makeCookie" title="Permalink to this definition">¶</a></dt>
+<dd><p>Make a cookie</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>expiry</strong> – expiration time (float in seconds)</p></li>
+<li><p><strong>data</strong> – cookie content</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>AuthCookie object</p>
+</dd>
+</dl>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.AuthCookie.mix">
+<code class="sig-prename descclassname">M2Crypto.AuthCookie.</code><code class="sig-name descname">mix</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">expiry</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">data</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">format</span><span class="p">:</span> <span class="n">str</span> <span class="o">=</span> <span class="default_value">'exp=%f&amp;data=%s&amp;digest='</span></em><span class="sig-paren">)</span> &#x2192; AnyStr<a class="reference internal" href="_modules/M2Crypto/AuthCookie.html#mix"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.AuthCookie.mix" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.AuthCookie.unmix">
+<code class="sig-prename descclassname">M2Crypto.AuthCookie.</code><code class="sig-name descname">unmix</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dough</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">regex</span><span class="p">:</span> <span class="n">re</span> <span class="o">=</span> <span class="default_value">re.compile('exp=(\\d+\\.\\d+)&amp;data=(.+)&amp;digest=(\\S*)')</span></em><span class="sig-paren">)</span> &#x2192; object<a class="reference internal" href="_modules/M2Crypto/AuthCookie.html#unmix"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.AuthCookie.unmix" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.AuthCookie.unmix3">
+<code class="sig-prename descclassname">M2Crypto.AuthCookie.</code><code class="sig-name descname">unmix3</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dough</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">regex</span><span class="p">:</span> <span class="n">type_re</span> <span class="o">=</span> <span class="default_value">re.compile('exp=(\\d+\\.\\d+)&amp;data=(.+)&amp;digest=(\\S*)')</span></em><span class="sig-paren">)</span> &#x2192; Optional<span class="p">[</span>tuple<span class="p">[</span>float<span class="p">, </span>AnyStr<span class="p">, </span>AnyStr<span class="p">]</span><span class="p">]</span><a class="reference internal" href="_modules/M2Crypto/AuthCookie.html#unmix3"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.AuthCookie.unmix3" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
</div>
-<div class="section" id="authcookie-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">AuthCookie</span></code> Module<a class="headerlink" href="#authcookie-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.BIO">
+<span id="bio-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">BIO</span></code> Module<a class="headerlink" href="#module-M2Crypto.BIO" title="Permalink to this headline">¶</a></h2>
+<dl class="py class">
+<dt id="M2Crypto.BIO.BIO">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.BIO.</code><code class="sig-name descname">BIO</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a><span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em>, <em class="sig-param"><span class="n">_close_cb</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>Callable<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/BIO.html#BIO"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIO" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>Abstract object interface to the BIO API.</p>
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.bio_ptr">
+<code class="sig-name descname">bio_ptr</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.BIO.BIO.bio_ptr" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.close">
+<code class="sig-name descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/BIO.html#BIO.close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIO.close" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.fileno">
+<code class="sig-name descname">fileno</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/BIO.html#BIO.fileno"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIO.fileno" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.flush">
+<code class="sig-name descname">flush</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/BIO.html#BIO.flush"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIO.flush" title="Permalink to this definition">¶</a></dt>
+<dd><p>Flush the buffers.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>1 for success, and 0 or -1 for failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.m2_bio_free">
+<code class="sig-name descname">m2_bio_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.BIO.BIO.m2_bio_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.read">
+<code class="sig-name descname">read</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">size</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>int<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span> &#x2192; Union<span class="p">[</span>bytes<span class="p">, </span>bytearray<span class="p">]</span><a class="reference internal" href="_modules/M2Crypto/BIO.html#BIO.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIO.read" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.readable">
+<code class="sig-name descname">readable</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; bool<a class="reference internal" href="_modules/M2Crypto/BIO.html#BIO.readable"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIO.readable" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.readline">
+<code class="sig-name descname">readline</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">size</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">4096</span></em><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/BIO.html#BIO.readline"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIO.readline" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.readlines">
+<code class="sig-name descname">readlines</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sizehint</span><span class="p">:</span> <span class="n">Union<span class="p">[</span>AnyStr<span class="p">, </span>int<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">'ignored'</span></em><span class="sig-paren">)</span> &#x2192; Iterable<span class="p">[</span>bytes<span class="p">]</span><a class="reference internal" href="_modules/M2Crypto/BIO.html#BIO.readlines"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIO.readlines" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.reset">
+<code class="sig-name descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/BIO.html#BIO.reset"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIO.reset" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the bio to its initial state.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>1 for success, and 0 or -1 for failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.seek">
+<code class="sig-name descname">seek</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">off</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/BIO.html#BIO.seek"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIO.seek" title="Permalink to this definition">¶</a></dt>
+<dd><p>Seek to the specified absolute offset.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.should_read">
+<code class="sig-name descname">should_read</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/BIO.html#BIO.should_read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIO.should_read" title="Permalink to this definition">¶</a></dt>
+<dd><p>Should we read more data?</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.should_retry">
+<code class="sig-name descname">should_retry</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/BIO.html#BIO.should_retry"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIO.should_retry" title="Permalink to this definition">¶</a></dt>
+<dd><p>Can the call be attempted again, or was there an error
+ie do_handshake</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.should_write">
+<code class="sig-name descname">should_write</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/BIO.html#BIO.should_write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIO.should_write" title="Permalink to this definition">¶</a></dt>
+<dd><p>Should we write more data?</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.tell">
+<code class="sig-name descname">tell</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/BIO.html#BIO.tell"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIO.tell" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the current offset.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.write">
+<code class="sig-name descname">write</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/BIO.html#BIO.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIO.write" title="Permalink to this definition">¶</a></dt>
+<dd><p>Write data to BIO.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>either data written, or [0, -1] for nothing written,
+-2 not implemented</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.write_close">
+<code class="sig-name descname">write_close</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/BIO.html#BIO.write_close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIO.write_close" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.BIO.writeable">
+<code class="sig-name descname">writeable</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; bool<a class="reference internal" href="_modules/M2Crypto/BIO.html#BIO.writeable"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIO.writeable" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py exception">
+<dt id="M2Crypto.BIO.BIOError">
+<em class="property">exception </em><code class="sig-prename descclassname">M2Crypto.BIO.</code><code class="sig-name descname">BIOError</code><a class="reference internal" href="_modules/M2Crypto/BIO.html#BIOError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.BIOError" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">ValueError</span></code></p>
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.BIO.CipherStream">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.BIO.</code><code class="sig-name descname">CipherStream</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/BIO.html#CipherStream"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.CipherStream" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO"><code class="xref py py-class docutils literal notranslate"><span class="pre">M2Crypto.BIO.BIO</span></code></a></p>
+<p>Object interface to BIO_f_cipher.</p>
+<dl class="py attribute">
+<dt id="M2Crypto.BIO.CipherStream.SALT_LEN">
+<code class="sig-name descname">SALT_LEN</code><em class="property"> = 8</em><a class="headerlink" href="#M2Crypto.BIO.CipherStream.SALT_LEN" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.CipherStream.close">
+<code class="sig-name descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/BIO.html#CipherStream.close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.CipherStream.close" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.CipherStream.m2_bio_free">
+<code class="sig-name descname">m2_bio_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.BIO.CipherStream.m2_bio_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.CipherStream.m2_bio_pop">
+<code class="sig-name descname">m2_bio_pop</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.BIO.CipherStream.m2_bio_pop" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.CipherStream.set_cipher">
+<code class="sig-name descname">set_cipher</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">algo</span><span class="p">:</span> <span class="n">str</span></em>, <em class="sig-param"><span class="n">key</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">iv</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">op</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/BIO.html#CipherStream.set_cipher"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.CipherStream.set_cipher" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.CipherStream.write_close">
+<code class="sig-name descname">write_close</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/BIO.html#CipherStream.write_close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.CipherStream.write_close" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.BIO.File">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.BIO.</code><code class="sig-name descname">File</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pyfile</span><span class="p">:</span> <span class="n">Union<span class="p">[</span>_io.BytesIO<span class="p">, </span>AnyStr<span class="p">]</span></span></em>, <em class="sig-param"><span class="n">close_pyfile</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1</span></em>, <em class="sig-param"><span class="n">mode</span><span class="p">:</span> <span class="n">AnyStr</span> <span class="o">=</span> <span class="default_value">'rb'</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/BIO.html#File"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.File" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO"><code class="xref py py-class docutils literal notranslate"><span class="pre">M2Crypto.BIO.BIO</span></code></a></p>
+<p>Object interface to BIO_s_pyfd.</p>
+<p>This class interfaces Python to OpenSSL functions that expect BIO. For
+general file manipulation in Python, use Python’s builtin file object.</p>
+<dl class="py method">
+<dt id="M2Crypto.BIO.File.close">
+<code class="sig-name descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/BIO.html#File.close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.File.close" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.File.flush">
+<code class="sig-name descname">flush</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/BIO.html#File.flush"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.File.flush" title="Permalink to this definition">¶</a></dt>
+<dd><p>Flush the buffers.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>1 for success, and 0 or -1 for failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.File.reset">
+<code class="sig-name descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/BIO.html#File.reset"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.File.reset" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the bio to its initial state.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>0 for success, and -1 for failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.BIO.IOBuffer">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.BIO.</code><code class="sig-name descname">IOBuffer</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">under_bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em>, <em class="sig-param"><span class="n">mode</span><span class="p">:</span> <span class="n">str</span> <span class="o">=</span> <span class="default_value">'rwb'</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/BIO.html#IOBuffer"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.IOBuffer" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO"><code class="xref py py-class docutils literal notranslate"><span class="pre">M2Crypto.BIO.BIO</span></code></a></p>
+<p>Object interface to BIO_f_buffer.</p>
+<p>Its principal function is to be BIO_push()’ed on top of a BIO_f_ssl, so
+that makefile() of said underlying SSL socket works.</p>
+<dl class="py method">
+<dt id="M2Crypto.BIO.IOBuffer.close">
+<code class="sig-name descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/BIO.html#IOBuffer.close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.IOBuffer.close" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.IOBuffer.m2_bio_free">
+<code class="sig-name descname">m2_bio_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.BIO.IOBuffer.m2_bio_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.IOBuffer.m2_bio_pop">
+<code class="sig-name descname">m2_bio_pop</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.BIO.IOBuffer.m2_bio_pop" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.BIO.MemoryBuffer">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.BIO.</code><code class="sig-name descname">MemoryBuffer</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bytes<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/BIO.html#MemoryBuffer"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.MemoryBuffer" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO"><code class="xref py py-class docutils literal notranslate"><span class="pre">M2Crypto.BIO.BIO</span></code></a></p>
+<p>Object interface to BIO_s_mem.</p>
+<p>Empirical testing suggests that this class performs less well than
+cStringIO, because cStringIO is implemented in C, whereas this class
+is implemented in Python. Thus, the recommended practice is to use
+cStringIO for regular work and convert said cStringIO object to
+a MemoryBuffer object only when necessary.</p>
+<dl class="py method">
+<dt id="M2Crypto.BIO.MemoryBuffer.close">
+<code class="sig-name descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.BIO.MemoryBuffer.close" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.MemoryBuffer.getvalue">
+<code class="sig-name descname">getvalue</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">size</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; bytes<a class="headerlink" href="#M2Crypto.BIO.MemoryBuffer.getvalue" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.MemoryBuffer.read">
+<code class="sig-name descname">read</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">size</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/BIO.html#MemoryBuffer.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.MemoryBuffer.read" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.MemoryBuffer.read_all">
+<code class="sig-name descname">read_all</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">size</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; bytes<a class="headerlink" href="#M2Crypto.BIO.MemoryBuffer.read_all" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.MemoryBuffer.write_close">
+<code class="sig-name descname">write_close</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/BIO.html#MemoryBuffer.write_close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.MemoryBuffer.write_close" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.BIO.SSLBio">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.BIO.</code><code class="sig-name descname">SSLBio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/BIO.html#SSLBio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.SSLBio" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO"><code class="xref py py-class docutils literal notranslate"><span class="pre">M2Crypto.BIO.BIO</span></code></a></p>
+<p>Object interface to BIO_f_ssl.</p>
+<dl class="py method">
+<dt id="M2Crypto.BIO.SSLBio.do_handshake">
+<code class="sig-name descname">do_handshake</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/BIO.html#SSLBio.do_handshake"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.SSLBio.do_handshake" title="Permalink to this definition">¶</a></dt>
+<dd><p>Do the handshake.</p>
+<p>Return 1 if the handshake completes
+Return 0 or a negative number if there is a problem</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.BIO.SSLBio.set_ssl">
+<code class="sig-name descname">set_ssl</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">conn</span></em>, <em class="sig-param"><span class="n">close_flag</span><span class="o">=</span><span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/BIO.html#SSLBio.set_ssl"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.SSLBio.set_ssl" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets the bio to the SSL pointer which is
+contained in the connection object.</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.BIO.openfile">
+<code class="sig-prename descclassname">M2Crypto.BIO.</code><code class="sig-name descname">openfile</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">filename</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">mode</span><span class="p">:</span> <span class="n">AnyStr</span> <span class="o">=</span> <span class="default_value">'rb'</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.BIO.File" title="M2Crypto.BIO.File">M2Crypto.BIO.File</a><a class="reference internal" href="_modules/M2Crypto/BIO.html#openfile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BIO.openfile" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
</div>
-<div class="section" id="bio-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">BIO</span></code> Module<a class="headerlink" href="#bio-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.BN">
+<span id="bn-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">BN</span></code> Module<a class="headerlink" href="#module-M2Crypto.BN" title="Permalink to this headline">¶</a></h2>
+<dl class="py function">
+<dt id="M2Crypto.BN.rand">
+<code class="sig-prename descclassname">M2Crypto.BN.</code><code class="sig-name descname">rand</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bits</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">top</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">- 1</span></em>, <em class="sig-param"><span class="n">bottom</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; Optional<span class="p">[</span>int<span class="p">]</span><a class="reference internal" href="_modules/M2Crypto/BN.html#rand"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BN.rand" title="Permalink to this definition">¶</a></dt>
+<dd><p>Generate cryptographically strong random number.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>bits</strong> – Length of random number in bits.</p></li>
+<li><p><strong>top</strong> – If -1, the most significant bit can be 0. If 0, the most
+significant bit is 1, and if 1, the two most significant
+bits will be 1.</p></li>
+<li><p><strong>bottom</strong> – If bottom is true, the number will be odd.</p></li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.BN.rand_range">
+<code class="sig-prename descclassname">M2Crypto.BN.</code><code class="sig-name descname">rand_range</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">range</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/BN.html#rand_range"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BN.rand_range" title="Permalink to this definition">¶</a></dt>
+<dd><p>Generate a random number in a range.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>range</strong> – Upper limit for range.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>A random number in the range [0, range)</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.BN.randfname">
+<code class="sig-prename descclassname">M2Crypto.BN.</code><code class="sig-name descname">randfname</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">length</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/BN.html#randfname"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.BN.randfname" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return a random filename, which is simply a string where all
+the characters are from the set [a-zA-Z0-9].</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>length</strong> – Length of filename to return.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>random filename string</p>
+</dd>
+</dl>
+</dd></dl>
+
</div>
-<div class="section" id="bn-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">BN</span></code> Module<a class="headerlink" href="#bn-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.DH">
+<span id="dh-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">DH</span></code> Module<a class="headerlink" href="#module-M2Crypto.DH" title="Permalink to this headline">¶</a></h2>
+<dl class="py class">
+<dt id="M2Crypto.DH.DH">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.DH.</code><code class="sig-name descname">DH</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dh</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/DH.html#DH"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DH.DH" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>Object interface to the Diffie-Hellman key exchange protocol.</p>
+<dl class="py method">
+<dt id="M2Crypto.DH.DH.check_params">
+<code class="sig-name descname">check_params</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/DH.html#DH.check_params"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DH.DH.check_params" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DH.DH.compute_key">
+<code class="sig-name descname">compute_key</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pubkey</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/DH.html#DH.compute_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DH.DH.compute_key" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DH.DH.gen_key">
+<code class="sig-name descname">gen_key</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/DH.html#DH.gen_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DH.DH.gen_key" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DH.DH.m2_dh_free">
+<code class="sig-name descname">m2_dh_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.DH.DH.m2_dh_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DH.DH.print_params">
+<code class="sig-name descname">print_params</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/DH.html#DH.print_params"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DH.DH.print_params" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py exception">
+<dt id="M2Crypto.DH.DHError">
+<em class="property">exception </em><code class="sig-prename descclassname">M2Crypto.DH.</code><code class="sig-name descname">DHError</code><a class="reference internal" href="_modules/M2Crypto/DH.html#DHError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DH.DHError" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.DH.gen_params">
+<code class="sig-prename descclassname">M2Crypto.DH.</code><code class="sig-name descname">gen_params</code><span class="sig-paren">(</span><em class="sig-param">plen: int</em>, <em class="sig-param">g: int</em>, <em class="sig-param">callback: Optional[Callable] = &lt;function genparam_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.DH.DH" title="M2Crypto.DH.DH">M2Crypto.DH.DH</a><a class="reference internal" href="_modules/M2Crypto/DH.html#gen_params"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DH.gen_params" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.DH.load_params">
+<code class="sig-prename descclassname">M2Crypto.DH.</code><code class="sig-name descname">load_params</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">file</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.DH.DH" title="M2Crypto.DH.DH">M2Crypto.DH.DH</a><a class="reference internal" href="_modules/M2Crypto/DH.html#load_params"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DH.load_params" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.DH.load_params_bio">
+<code class="sig-prename descclassname">M2Crypto.DH.</code><code class="sig-name descname">load_params_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.DH.DH" title="M2Crypto.DH.DH">M2Crypto.DH.DH</a><a class="reference internal" href="_modules/M2Crypto/DH.html#load_params_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DH.load_params_bio" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.DH.set_params">
+<code class="sig-prename descclassname">M2Crypto.DH.</code><code class="sig-name descname">set_params</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">p</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">g</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.DH.DH" title="M2Crypto.DH.DH">M2Crypto.DH.DH</a><a class="reference internal" href="_modules/M2Crypto/DH.html#set_params"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DH.set_params" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
</div>
-<div class="section" id="dh-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">DH</span></code> Module<a class="headerlink" href="#dh-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.DSA">
+<span id="dsa-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">DSA</span></code> Module<a class="headerlink" href="#module-M2Crypto.DSA" title="Permalink to this headline">¶</a></h2>
+<dl class="py class">
+<dt id="M2Crypto.DSA.DSA">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.DSA.</code><code class="sig-name descname">DSA</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dsa</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/DSA.html#DSA"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSA" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>This class is a context supporting DSA key and parameter
+values, signing and verifying.</p>
+<p>Simple example:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">EVP</span><span class="p">,</span> <span class="n">DSA</span><span class="p">,</span> <span class="n">util</span>
+
+<span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;Kilroy was here!&#39;</span>
+<span class="n">md</span> <span class="o">=</span> <span class="n">EVP</span><span class="o">.</span><span class="n">MessageDigest</span><span class="p">(</span><span class="s1">&#39;sha1&#39;</span><span class="p">)</span>
+<span class="n">md</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
+<span class="n">digest</span> <span class="o">=</span> <span class="n">md</span><span class="o">.</span><span class="n">final</span><span class="p">()</span>
+
+<span class="n">dsa</span> <span class="o">=</span> <span class="n">DSA</span><span class="o">.</span><span class="n">gen_params</span><span class="p">(</span><span class="mi">1024</span><span class="p">)</span>
+<span class="n">dsa</span><span class="o">.</span><span class="n">gen_key</span><span class="p">()</span>
+<span class="n">r</span><span class="p">,</span> <span class="n">s</span> <span class="o">=</span> <span class="n">dsa</span><span class="o">.</span><span class="n">sign</span><span class="p">(</span><span class="n">digest</span><span class="p">)</span>
+<span class="n">good</span> <span class="o">=</span> <span class="n">dsa</span><span class="o">.</span><span class="n">verify</span><span class="p">(</span><span class="n">digest</span><span class="p">,</span> <span class="n">r</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
+<span class="k">if</span> <span class="n">good</span><span class="p">:</span>
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39; ** success **&#39;</span><span class="p">)</span>
+<span class="k">else</span><span class="p">:</span>
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39; ** verification failed **&#39;</span><span class="p">)</span>
+</pre></div>
</div>
-<div class="section" id="dsa-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">DSA</span></code> Module<a class="headerlink" href="#dsa-module" title="Permalink to this headline">¶</a></h2>
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA.check_key">
+<code class="sig-name descname">check_key</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/DSA.html#DSA.check_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSA.check_key" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check to be sure the DSA object has a valid private key.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>1 (true) if a valid private key</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA.gen_key">
+<code class="sig-name descname">gen_key</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/DSA.html#DSA.gen_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSA.gen_key" title="Permalink to this definition">¶</a></dt>
+<dd><p>Generate a key pair.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA.m2_dsa_free">
+<code class="sig-name descname">m2_dsa_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.DSA.DSA.m2_dsa_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA.save_key">
+<code class="sig-name descname">save_key</code><span class="sig-paren">(</span><em class="sig-param">filename: AnyStr</em>, <em class="sig-param">cipher: str = 'aes_128_cbc'</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/DSA.html#DSA.save_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSA.save_key" title="Permalink to this definition">¶</a></dt>
+<dd><p>Save the DSA key pair to a file.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>filename</strong> – Save the DSA key pair to this file.</p></li>
+<li><p><strong>cipher</strong> – name of symmetric key algorithm and mode
+to encrypt the private key.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 (true) if successful</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA.save_key_bio">
+<code class="sig-name descname">save_key_bio</code><span class="sig-paren">(</span><em class="sig-param">bio: M2Crypto.BIO.BIO</em>, <em class="sig-param">cipher: str = 'aes_128_cbc'</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/DSA.html#DSA.save_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSA.save_key_bio" title="Permalink to this definition">¶</a></dt>
+<dd><p>Save DSA key pair to a BIO object.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>bio</strong> – Save DSA parameters to this object.</p></li>
+<li><p><strong>cipher</strong> – name of symmetric key algorithm and mode
+to encrypt the private key.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 (true) if successful</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA.save_params">
+<code class="sig-name descname">save_params</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">filename</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/DSA.html#DSA.save_params"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSA.save_params" title="Permalink to this definition">¶</a></dt>
+<dd><p>Save the DSA parameters to a file.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>filename</strong> – Save the DSA parameters to this file.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 (true) if successful</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA.save_params_bio">
+<code class="sig-name descname">save_params_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/DSA.html#DSA.save_params_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSA.save_params_bio" title="Permalink to this definition">¶</a></dt>
+<dd><p>Save DSA parameters to a BIO object.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>bio</strong> – Save DSA parameters to this object.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 (true) if successful</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA.save_pub_key">
+<code class="sig-name descname">save_pub_key</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">filename</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/DSA.html#DSA.save_pub_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSA.save_pub_key" title="Permalink to this definition">¶</a></dt>
+<dd><p>Save the DSA public key (with parameters) to a file.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>filename</strong> – Save DSA public key (with parameters)
+to this file.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 (true) if successful</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA.save_pub_key_bio">
+<code class="sig-name descname">save_pub_key_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/DSA.html#DSA.save_pub_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSA.save_pub_key_bio" title="Permalink to this definition">¶</a></dt>
+<dd><p>Save DSA public key (with parameters) to a BIO object.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>bio</strong> – Save DSA public key (with parameters)
+to this object.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 (true) if successful</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA.set_params">
+<code class="sig-name descname">set_params</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">p</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">q</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">g</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/DSA.html#DSA.set_params"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSA.set_params" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set new parameters.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>p</strong> – MPI binary representation … format that consists of
+the number’s length in bytes represented as a 4-byte
+big-endian number, and the number itself in big-endian
+format, where the most significant bit signals
+a negative number (the representation of numbers with
+the MSB set is prefixed with null byte).</p></li>
+<li><p><strong>q</strong> – ditto</p></li>
+<li><p><strong>g</strong> – ditto</p></li>
+</ul>
+</dd>
+</dl>
+<dl class="simple">
+<dt>&#64;warning: This does not change the private key, so it may be</dt><dd><p>unsafe to use this method. It is better to use
+gen_params function to create a new DSA object.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA.sign">
+<code class="sig-name descname">sign</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">digest</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; Tuple<span class="p">[</span>bytes<span class="p">, </span>bytes<span class="p">]</span><a class="reference internal" href="_modules/M2Crypto/DSA.html#DSA.sign"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSA.sign" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sign the digest.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>digest</strong> – SHA-1 hash of message (same as output
+from MessageDigest, a “byte string”)</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>DSA signature, a tuple of two values, r and s,
+both “byte strings”.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA.sign_asn1">
+<code class="sig-name descname">sign_asn1</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">digest</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/DSA.html#DSA.sign_asn1"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSA.sign_asn1" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA.verify">
+<code class="sig-name descname">verify</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">digest</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">r</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">s</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/DSA.html#DSA.verify"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSA.verify" title="Permalink to this definition">¶</a></dt>
+<dd><p>Verify a newly calculated digest against the signature
+values r and s.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>digest</strong> – SHA-1 hash of message (same as output
+from MessageDigest, a “byte string”)</p></li>
+<li><p><strong>r</strong> – r value of the signature, a “byte string”</p></li>
+<li><p><strong>s</strong> – s value of the signature, a “byte string”</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 (true) if verify succeeded, 0 if failed</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA.verify_asn1">
+<code class="sig-name descname">verify_asn1</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">digest</span></em>, <em class="sig-param"><span class="n">blob</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/DSA.html#DSA.verify_asn1"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSA.verify_asn1" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py exception">
+<dt id="M2Crypto.DSA.DSAError">
+<em class="property">exception </em><code class="sig-prename descclassname">M2Crypto.DSA.</code><code class="sig-name descname">DSAError</code><a class="reference internal" href="_modules/M2Crypto/DSA.html#DSAError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSAError" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.DSA.DSA_pub">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.DSA.</code><code class="sig-name descname">DSA_pub</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dsa</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/DSA.html#DSA_pub"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSA_pub" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#M2Crypto.DSA.DSA" title="M2Crypto.DSA.DSA"><code class="xref py py-class docutils literal notranslate"><span class="pre">M2Crypto.DSA.DSA</span></code></a></p>
+<p>This class is a DSA context that only supports a public key
+and verification. It does NOT support a private key or
+signing.</p>
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA_pub.check_key">
+<code class="sig-name descname">check_key</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/DSA.html#DSA_pub.check_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSA_pub.check_key" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>does DSA_pub contain a pub key?</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA_pub.save_key">
+<code class="sig-name descname">save_key</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">filename</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.DSA.DSA_pub.save_key" title="Permalink to this definition">¶</a></dt>
+<dd><p>Save the DSA public key (with parameters) to a file.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>filename</strong> – Save DSA public key (with parameters)
+to this file.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 (true) if successful</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA_pub.save_key_bio">
+<code class="sig-name descname">save_key_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.DSA.DSA_pub.save_key_bio" title="Permalink to this definition">¶</a></dt>
+<dd><p>Save DSA public key (with parameters) to a BIO object.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>bio</strong> – Save DSA public key (with parameters)
+to this object.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 (true) if successful</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA_pub.sign">
+<code class="sig-name descname">sign</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">argv</span><span class="p">:</span> <span class="n">Any</span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/DSA.html#DSA_pub.sign"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.DSA_pub.sign" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sign the digest.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>digest</strong> – SHA-1 hash of message (same as output
+from MessageDigest, a “byte string”)</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>DSA signature, a tuple of two values, r and s,
+both “byte strings”.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.DSA.DSA_pub.sign_asn1">
+<code class="sig-name descname">sign_asn1</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">argv</span><span class="p">:</span> <span class="n">Any</span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#M2Crypto.DSA.DSA_pub.sign_asn1" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sign the digest.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>digest</strong> – SHA-1 hash of message (same as output
+from MessageDigest, a “byte string”)</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>DSA signature, a tuple of two values, r and s,
+both “byte strings”.</p>
+</dd>
+</dl>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.DSA.gen_params">
+<code class="sig-prename descclassname">M2Crypto.DSA.</code><code class="sig-name descname">gen_params</code><span class="sig-paren">(</span><em class="sig-param">bits: int</em>, <em class="sig-param">callback: Callable = &lt;function genparam_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.DSA.DSA" title="M2Crypto.DSA.DSA">M2Crypto.DSA.DSA</a><a class="reference internal" href="_modules/M2Crypto/DSA.html#gen_params"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.gen_params" title="Permalink to this definition">¶</a></dt>
+<dd><p>Factory function that generates DSA parameters and
+instantiates a DSA object from the output.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>bits</strong> – The length of the prime to be generated. If
+‘bits’ &lt; 512, it is set to 512.</p></li>
+<li><p><strong>callback</strong> – A Python callback object that will be
+invoked during parameter generation; it usual
+purpose is to provide visual feedback.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>instance of DSA.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.DSA.load_key">
+<code class="sig-prename descclassname">M2Crypto.DSA.</code><code class="sig-name descname">load_key</code><span class="sig-paren">(</span><em class="sig-param">file: AnyStr</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.DSA.DSA" title="M2Crypto.DSA.DSA">M2Crypto.DSA.DSA</a><a class="reference internal" href="_modules/M2Crypto/DSA.html#load_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.load_key" title="Permalink to this definition">¶</a></dt>
+<dd><p>Factory function that instantiates a DSA object from a
+PEM encoded DSA key pair.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>file</strong> – Names the file (a path) that contains the PEM
+representation of the DSA key pair.</p></li>
+<li><p><strong>callback</strong> – A Python callback object that will be
+invoked if the DSA key pair is
+passphrase-protected.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>instance of DSA.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.DSA.load_key_bio">
+<code class="sig-prename descclassname">M2Crypto.DSA.</code><code class="sig-name descname">load_key_bio</code><span class="sig-paren">(</span><em class="sig-param">bio: M2Crypto.BIO.BIO</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.DSA.DSA" title="M2Crypto.DSA.DSA">M2Crypto.DSA.DSA</a><a class="reference internal" href="_modules/M2Crypto/DSA.html#load_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.load_key_bio" title="Permalink to this definition">¶</a></dt>
+<dd><p>Factory function that instantiates a DSA object from a
+PEM encoded DSA key pair.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>bio</strong> – Contains the PEM representation of the DSA
+key pair.</p></li>
+<li><p><strong>callback</strong> – A Python callback object that will be
+invoked if the DSA key pair is
+passphrase-protected.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>instance of DSA.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.DSA.load_params">
+<code class="sig-prename descclassname">M2Crypto.DSA.</code><code class="sig-name descname">load_params</code><span class="sig-paren">(</span><em class="sig-param">file: AnyStr</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.DSA.DSA" title="M2Crypto.DSA.DSA">M2Crypto.DSA.DSA</a><a class="reference internal" href="_modules/M2Crypto/DSA.html#load_params"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.load_params" title="Permalink to this definition">¶</a></dt>
+<dd><p>Factory function that instantiates a DSA object with DSA
+parameters from a file.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>file</strong> – Names the file (a path) that contains the PEM
+representation of the DSA parameters.</p></li>
+<li><p><strong>callback</strong> – A Python callback object that will be
+invoked if the DSA parameters file is
+passphrase-protected.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>instance of DSA.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.DSA.load_params_bio">
+<code class="sig-prename descclassname">M2Crypto.DSA.</code><code class="sig-name descname">load_params_bio</code><span class="sig-paren">(</span><em class="sig-param">bio: M2Crypto.BIO.BIO</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.DSA.DSA" title="M2Crypto.DSA.DSA">M2Crypto.DSA.DSA</a><a class="reference internal" href="_modules/M2Crypto/DSA.html#load_params_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.load_params_bio" title="Permalink to this definition">¶</a></dt>
+<dd><p>Factory function that instantiates a DSA object with DSA
+parameters from a M2Crypto.BIO object.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>bio</strong> – Contains the PEM representation of the DSA
+parameters.</p></li>
+<li><p><strong>callback</strong> – A Python callback object that will be
+invoked if the DSA parameters file is
+passphrase-protected.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>instance of DSA.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.DSA.load_pub_key">
+<code class="sig-prename descclassname">M2Crypto.DSA.</code><code class="sig-name descname">load_pub_key</code><span class="sig-paren">(</span><em class="sig-param">file: AnyStr</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.DSA.DSA_pub" title="M2Crypto.DSA.DSA_pub">M2Crypto.DSA.DSA_pub</a><a class="reference internal" href="_modules/M2Crypto/DSA.html#load_pub_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.load_pub_key" title="Permalink to this definition">¶</a></dt>
+<dd><p>Factory function that instantiates a DSA_pub object using
+a DSA public key contained in PEM file. The PEM file
+must contain the parameters in addition to the public key.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>file</strong> – Names the file (a path) that contains the PEM
+representation of the DSA public key.</p></li>
+<li><p><strong>callback</strong> – A Python callback object that will be
+invoked should the DSA public key be
+passphrase-protected.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>instance of DSA_pub.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.DSA.load_pub_key_bio">
+<code class="sig-prename descclassname">M2Crypto.DSA.</code><code class="sig-name descname">load_pub_key_bio</code><span class="sig-paren">(</span><em class="sig-param">bio: M2Crypto.BIO.BIO</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.DSA.DSA_pub" title="M2Crypto.DSA.DSA_pub">M2Crypto.DSA.DSA_pub</a><a class="reference internal" href="_modules/M2Crypto/DSA.html#load_pub_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.load_pub_key_bio" title="Permalink to this definition">¶</a></dt>
+<dd><p>Factory function that instantiates a DSA_pub object using
+a DSA public key contained in PEM format. The PEM
+must contain the parameters in addition to the public key.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>bio</strong> – Contains the PEM representation of the DSA
+public key (with params).</p></li>
+<li><p><strong>callback</strong> – A Python callback object that will be
+invoked should the DSA public key be
+passphrase-protected.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>instance of DSA_pub.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.DSA.pub_key_from_params">
+<code class="sig-prename descclassname">M2Crypto.DSA.</code><code class="sig-name descname">pub_key_from_params</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">p</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">q</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">g</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">pub</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.DSA.DSA_pub" title="M2Crypto.DSA.DSA_pub">M2Crypto.DSA.DSA_pub</a><a class="reference internal" href="_modules/M2Crypto/DSA.html#pub_key_from_params"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.pub_key_from_params" title="Permalink to this definition">¶</a></dt>
+<dd><p>Factory function that instantiates a DSA_pub object using
+the parameters and public key specified.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>p</strong> – value of p</p></li>
+<li><p><strong>q</strong> – value of q</p></li>
+<li><p><strong>g</strong> – value of g</p></li>
+<li><p><strong>pub</strong> – value of the public key</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>instance of DSA_pub.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.DSA.set_params">
+<code class="sig-prename descclassname">M2Crypto.DSA.</code><code class="sig-name descname">set_params</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">p</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">q</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">g</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.DSA.DSA" title="M2Crypto.DSA.DSA">M2Crypto.DSA.DSA</a><a class="reference internal" href="_modules/M2Crypto/DSA.html#set_params"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.DSA.set_params" title="Permalink to this definition">¶</a></dt>
+<dd><p>Factory function that instantiates a DSA object with DSA
+parameters.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>p</strong> – value of p, a “byte string”</p></li>
+<li><p><strong>q</strong> – value of q, a “byte string”</p></li>
+<li><p><strong>g</strong> – value of g, a “byte string”</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>instance of DSA.</p>
+</dd>
+</dl>
+</dd></dl>
+
+</div>
+<div class="section" id="module-M2Crypto.EC">
+<span id="ec-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">EC</span></code> Module<a class="headerlink" href="#module-M2Crypto.EC" title="Permalink to this headline">¶</a></h2>
+<dl class="py class">
+<dt id="M2Crypto.EC.EC">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.EC.</code><code class="sig-name descname">EC</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ec</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.EC.EC" title="M2Crypto.EC.EC">M2Crypto.EC.EC</a></span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/EC.html#EC"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.EC" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>Object interface to a EC key pair.</p>
+<dl class="py method">
+<dt id="M2Crypto.EC.EC.as_pem">
+<code class="sig-name descname">as_pem</code><span class="sig-paren">(</span><em class="sig-param">cipher='aes_128_cbc'</em>, <em class="sig-param">callback=&lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/EC.html#EC.as_pem"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.EC.as_pem" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the key(pair) as a string in PEM format.
+If no password is passed and the cipher is set
+it exits with error</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.EC.EC.check_key">
+<code class="sig-name descname">check_key</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/EC.html#EC.check_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.EC.check_key" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.EC.EC.compute_dh_key">
+<code class="sig-name descname">compute_dh_key</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pub_key</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.EC.EC" title="M2Crypto.EC.EC">M2Crypto.EC.EC</a></span></em><span class="sig-paren">)</span> &#x2192; Optional<span class="p">[</span>bytes<span class="p">]</span><a class="reference internal" href="_modules/M2Crypto/EC.html#EC.compute_dh_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.EC.compute_dh_key" title="Permalink to this definition">¶</a></dt>
+<dd><p>Compute the ECDH shared key of this key pair and the given public
+key object. They must both use the same curve. Returns the
+shared key in binary as a buffer object. No Key Derivation Function is
+applied.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.EC.EC.gen_key">
+<code class="sig-name descname">gen_key</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/EC.html#EC.gen_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.EC.gen_key" title="Permalink to this definition">¶</a></dt>
+<dd><p>Generates the key pair from its parameters. Use:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">keypair</span> <span class="o">=</span> <span class="n">EC</span><span class="o">.</span><span class="n">gen_params</span><span class="p">(</span><span class="n">curve</span><span class="p">)</span>
+<span class="n">keypair</span><span class="o">.</span><span class="n">gen_key</span><span class="p">()</span>
+</pre></div>
</div>
-<div class="section" id="ec-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">EC</span></code> Module<a class="headerlink" href="#ec-module" title="Permalink to this headline">¶</a></h2>
+<p>to create an EC key pair.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.EC.EC.m2_ec_key_free">
+<code class="sig-name descname">m2_ec_key_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.EC.EC.m2_ec_key_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.EC.EC.pub">
+<code class="sig-name descname">pub</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EC.EC_pub" title="M2Crypto.EC.EC_pub">M2Crypto.EC.EC_pub</a><a class="reference internal" href="_modules/M2Crypto/EC.html#EC.pub"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.EC.pub" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.EC.EC.save_key">
+<code class="sig-name descname">save_key</code><span class="sig-paren">(</span><em class="sig-param">file: AnyStr</em>, <em class="sig-param">cipher: Optional[str] = 'aes_128_cbc'</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/EC.html#EC.save_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.EC.save_key" title="Permalink to this definition">¶</a></dt>
+<dd><p>Save the key pair to a file in PEM format.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>file</strong> – Name of filename to save key to.</p></li>
+<li><p><strong>cipher</strong> – Symmetric cipher to protect the key. The default
+cipher is ‘aes_128_cbc’. If cipher is None, then
+the key is saved in the clear.</p></li>
+<li><p><strong>callback</strong> – A Python callable object that is invoked
+to acquire a passphrase with which to protect
+the key. The default is
+util.passphrase_callback.</p></li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.EC.EC.save_key_bio">
+<code class="sig-name descname">save_key_bio</code><span class="sig-paren">(</span><em class="sig-param">bio: M2Crypto.BIO.BIO</em>, <em class="sig-param">cipher: Optional[str] = 'aes_128_cbc'</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/EC.html#EC.save_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.EC.save_key_bio" title="Permalink to this definition">¶</a></dt>
+<dd><p>Save the key pair to an M2Crypto.BIO.BIO object in PEM format.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>bio</strong> – M2Crypto.BIO.BIO object to save key to.</p></li>
+<li><p><strong>cipher</strong> – Symmetric cipher to protect the key. The default
+cipher is ‘aes_128_cbc’. If cipher is None, then
+the key is saved in the clear.</p></li>
+<li><p><strong>callback</strong> – A Python callable object that is invoked
+to acquire a passphrase with which to protect
+the key. The default is
+util.passphrase_callback.</p></li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.EC.EC.save_pub_key">
+<code class="sig-name descname">save_pub_key</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">file</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/EC.html#EC.save_pub_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.EC.save_pub_key" title="Permalink to this definition">¶</a></dt>
+<dd><p>Save the public key to a filename in PEM format.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>file</strong> – Name of filename to save key to.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.EC.EC.save_pub_key_bio">
+<code class="sig-name descname">save_pub_key_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/EC.html#EC.save_pub_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.EC.save_pub_key_bio" title="Permalink to this definition">¶</a></dt>
+<dd><p>Save the public key to an M2Crypto.BIO.BIO object in PEM format.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>bio</strong> – M2Crypto.BIO.BIO object to save key to.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.EC.EC.sign_dsa">
+<code class="sig-name descname">sign_dsa</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">digest</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; Tuple<span class="p">[</span>bytes<span class="p">, </span>bytes<span class="p">]</span><a class="reference internal" href="_modules/M2Crypto/EC.html#EC.sign_dsa"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.EC.sign_dsa" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sign the given digest using ECDSA. Returns a tuple (r,s), the two
+ECDSA signature parameters.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.EC.EC.sign_dsa_asn1">
+<code class="sig-name descname">sign_dsa_asn1</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">digest</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/EC.html#EC.sign_dsa_asn1"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.EC.sign_dsa_asn1" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.EC.EC.verify_dsa">
+<code class="sig-name descname">verify_dsa</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">digest</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">r</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">s</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/EC.html#EC.verify_dsa"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.EC.verify_dsa" title="Permalink to this definition">¶</a></dt>
+<dd><p>Verify the given digest using ECDSA. r and s are the ECDSA
+signature parameters.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.EC.EC.verify_dsa_asn1">
+<code class="sig-name descname">verify_dsa_asn1</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">digest</span></em>, <em class="sig-param"><span class="n">blob</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/EC.html#EC.verify_dsa_asn1"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.EC.verify_dsa_asn1" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py exception">
+<dt id="M2Crypto.EC.ECError">
+<em class="property">exception </em><code class="sig-prename descclassname">M2Crypto.EC.</code><code class="sig-name descname">ECError</code><a class="reference internal" href="_modules/M2Crypto/EC.html#ECError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.ECError" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.EC.EC_pub">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.EC.</code><code class="sig-name descname">EC_pub</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ec</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.EC.EC" title="M2Crypto.EC.EC">M2Crypto.EC.EC</a></span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/EC.html#EC_pub"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.EC_pub" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#M2Crypto.EC.EC" title="M2Crypto.EC.EC"><code class="xref py py-class docutils literal notranslate"><span class="pre">M2Crypto.EC.EC</span></code></a></p>
+<p>Object interface to an EC public key.
+((don’t like this implementation inheritance))</p>
+<dl class="py method">
+<dt id="M2Crypto.EC.EC_pub.get_der">
+<code class="sig-name descname">get_der</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/EC.html#EC_pub.get_der"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.EC_pub.get_der" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the public key in DER format as a buffer object.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.EC.EC_pub.get_key">
+<code class="sig-name descname">get_key</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/EC.html#EC_pub.get_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.EC_pub.get_key" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the public key as a byte string.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.EC.EC_pub.save_key">
+<code class="sig-name descname">save_key</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">file</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.EC.EC_pub.save_key" title="Permalink to this definition">¶</a></dt>
+<dd><p>Save the public key to a filename in PEM format.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>file</strong> – Name of filename to save key to.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.EC.EC_pub.save_key_bio">
+<code class="sig-name descname">save_key_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.EC.EC_pub.save_key_bio" title="Permalink to this definition">¶</a></dt>
+<dd><p>Save the public key to an M2Crypto.BIO.BIO object in PEM format.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>bio</strong> – M2Crypto.BIO.BIO object to save key to.</p>
+</dd>
+</dl>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.EC.ec_error">
+<code class="sig-prename descclassname">M2Crypto.EC.</code><code class="sig-name descname">ec_error</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EC.ECError" title="M2Crypto.EC.ECError">M2Crypto.EC.ECError</a><a class="reference internal" href="_modules/M2Crypto/EC.html#ec_error"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.ec_error" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.EC.gen_params">
+<code class="sig-prename descclassname">M2Crypto.EC.</code><code class="sig-name descname">gen_params</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">curve</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EC.EC" title="M2Crypto.EC.EC">M2Crypto.EC.EC</a><a class="reference internal" href="_modules/M2Crypto/EC.html#gen_params"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.gen_params" title="Permalink to this definition">¶</a></dt>
+<dd><p>Factory function that generates EC parameters and
+instantiates a EC object from the output.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>curve</strong> – This is the OpenSSL nid of the curve to use.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.EC.get_builtin_curves">
+<code class="sig-prename descclassname">M2Crypto.EC.</code><code class="sig-name descname">get_builtin_curves</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Tuple<span class="p">[</span>Dict<span class="p">[</span>str<span class="p">, </span>Union<span class="p">[</span>int<span class="p">, </span>str<span class="p">]</span><span class="p">]</span><span class="p">]</span><a class="reference internal" href="_modules/M2Crypto/EC.html#get_builtin_curves"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.get_builtin_curves" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.EC.load_key">
+<code class="sig-prename descclassname">M2Crypto.EC.</code><code class="sig-name descname">load_key</code><span class="sig-paren">(</span><em class="sig-param">file: AnyStr</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EC.EC" title="M2Crypto.EC.EC">M2Crypto.EC.EC</a><a class="reference internal" href="_modules/M2Crypto/EC.html#load_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.load_key" title="Permalink to this definition">¶</a></dt>
+<dd><p>Factory function that instantiates a EC object.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>file</strong> – Names the filename that contains the PEM representation
+of the EC key pair.</p></li>
+<li><p><strong>callback</strong> – Python callback object that will be invoked
+if the EC key pair is passphrase-protected.</p></li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.EC.load_key_bio">
+<code class="sig-prename descclassname">M2Crypto.EC.</code><code class="sig-name descname">load_key_bio</code><span class="sig-paren">(</span><em class="sig-param">bio: M2Crypto.BIO.BIO</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EC.EC" title="M2Crypto.EC.EC">M2Crypto.EC.EC</a><a class="reference internal" href="_modules/M2Crypto/EC.html#load_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.load_key_bio" title="Permalink to this definition">¶</a></dt>
+<dd><p>Factory function that instantiates a EC object.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>bio</strong> – M2Crypto.BIO object that contains the PEM
+representation of the EC key pair.</p></li>
+<li><p><strong>callback</strong> – Python callback object that will be invoked
+if the EC key pair is passphrase-protected.</p></li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.EC.load_key_string">
+<code class="sig-prename descclassname">M2Crypto.EC.</code><code class="sig-name descname">load_key_string</code><span class="sig-paren">(</span><em class="sig-param">string: str</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EC.EC" title="M2Crypto.EC.EC">M2Crypto.EC.EC</a><a class="reference internal" href="_modules/M2Crypto/EC.html#load_key_string"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.load_key_string" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load an EC key pair from a string.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>string</strong> – String containing EC key pair in PEM format.</p></li>
+<li><p><strong>callback</strong> – A Python callable object that is invoked
+to acquire a passphrase with which to unlock the
+key. The default is util.passphrase_callback.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>M2Crypto.EC.EC object.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.EC.load_key_string_pubkey">
+<code class="sig-prename descclassname">M2Crypto.EC.</code><code class="sig-name descname">load_key_string_pubkey</code><span class="sig-paren">(</span><em class="sig-param">string: str</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EVP.PKey" title="M2Crypto.EVP.PKey">M2Crypto.EVP.PKey</a><a class="reference internal" href="_modules/M2Crypto/EC.html#load_key_string_pubkey"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.load_key_string_pubkey" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load an M2Crypto.EC.PKey from a public key as a string.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>string</strong> – String containing the key in PEM format.</p></li>
+<li><p><strong>callback</strong> – A Python callable object that is invoked
+to acquire a passphrase with which to protect the
+key.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>M2Crypto.EC.PKey object.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.EC.load_pub_key">
+<code class="sig-prename descclassname">M2Crypto.EC.</code><code class="sig-name descname">load_pub_key</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">file</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EC.EC_pub" title="M2Crypto.EC.EC_pub">M2Crypto.EC.EC_pub</a><a class="reference internal" href="_modules/M2Crypto/EC.html#load_pub_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.load_pub_key" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load an EC public key from filename.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>file</strong> – Name of filename containing EC public key in PEM
+format.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>M2Crypto.EC.EC_pub object.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.EC.load_pub_key_bio">
+<code class="sig-prename descclassname">M2Crypto.EC.</code><code class="sig-name descname">load_pub_key_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EC.EC_pub" title="M2Crypto.EC.EC_pub">M2Crypto.EC.EC_pub</a><a class="reference internal" href="_modules/M2Crypto/EC.html#load_pub_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.load_pub_key_bio" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load an EC public key from an M2Crypto.BIO.BIO object.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>bio</strong> – M2Crypto.BIO.BIO object containing EC public key in PEM
+format.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>M2Crypto.EC.EC_pub object.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.EC.pub_key_from_der">
+<code class="sig-prename descclassname">M2Crypto.EC.</code><code class="sig-name descname">pub_key_from_der</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">der</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EC.EC_pub" title="M2Crypto.EC.EC_pub">M2Crypto.EC.EC_pub</a><a class="reference internal" href="_modules/M2Crypto/EC.html#pub_key_from_der"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.pub_key_from_der" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create EC_pub from DER.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.EC.pub_key_from_params">
+<code class="sig-prename descclassname">M2Crypto.EC.</code><code class="sig-name descname">pub_key_from_params</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">curve</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">bytes</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EC.EC_pub" title="M2Crypto.EC.EC_pub">M2Crypto.EC.EC_pub</a><a class="reference internal" href="_modules/M2Crypto/EC.html#pub_key_from_params"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EC.pub_key_from_params" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create EC_pub from curve name and octet string.</p>
+</dd></dl>
+
</div>
<div class="section" id="module-M2Crypto.EVP">
<span id="evp-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">EVP</span></code> Module<a class="headerlink" href="#module-M2Crypto.EVP" title="Permalink to this headline">¶</a></h2>
@@ -366,7 +1778,7 @@ util.passphrase_callback.</p></li>
<dl class="py method">
<dt id="M2Crypto.EVP.PKey.save_key_bio">
-<code class="sig-name descname">save_key_bio</code><span class="sig-paren">(</span><em class="sig-param">bio: BIO.BIO</em>, <em class="sig-param">cipher: Optional[str] = 'aes_128_cbc'</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/EVP.html#PKey.save_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EVP.PKey.save_key_bio" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">save_key_bio</code><span class="sig-paren">(</span><em class="sig-param">bio: M2Crypto.BIO.BIO</em>, <em class="sig-param">cipher: Optional[str] = 'aes_128_cbc'</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/EVP.html#PKey.save_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EVP.PKey.save_key_bio" title="Permalink to this definition">¶</a></dt>
<dd><p>Save the key pair to the M2Crypto.BIO object ‘bio’ in PEM format.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
@@ -492,7 +1904,7 @@ key.</p></li>
<dl class="py function">
<dt id="M2Crypto.EVP.load_key_bio">
-<code class="sig-prename descclassname">M2Crypto.EVP.</code><code class="sig-name descname">load_key_bio</code><span class="sig-paren">(</span><em class="sig-param">bio: BIO.BIO</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EVP.PKey" title="M2Crypto.EVP.PKey">PKey</a><a class="reference internal" href="_modules/M2Crypto/EVP.html#load_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EVP.load_key_bio" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">M2Crypto.EVP.</code><code class="sig-name descname">load_key_bio</code><span class="sig-paren">(</span><em class="sig-param">bio: M2Crypto.BIO.BIO</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EVP.PKey" title="M2Crypto.EVP.PKey">M2Crypto.EVP.PKey</a><a class="reference internal" href="_modules/M2Crypto/EVP.html#load_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EVP.load_key_bio" title="Permalink to this definition">¶</a></dt>
<dd><p>Load an M2Crypto.EVP.PKey from an M2Crypto.BIO object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
@@ -511,7 +1923,7 @@ key.</p></li>
<dl class="py function">
<dt id="M2Crypto.EVP.load_key_bio_pubkey">
-<code class="sig-prename descclassname">M2Crypto.EVP.</code><code class="sig-name descname">load_key_bio_pubkey</code><span class="sig-paren">(</span><em class="sig-param">bio: BIO.BIO</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EVP.PKey" title="M2Crypto.EVP.PKey">PKey</a><a class="reference internal" href="_modules/M2Crypto/EVP.html#load_key_bio_pubkey"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EVP.load_key_bio_pubkey" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">M2Crypto.EVP.</code><code class="sig-name descname">load_key_bio_pubkey</code><span class="sig-paren">(</span><em class="sig-param">bio: M2Crypto.BIO.BIO</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EVP.PKey" title="M2Crypto.EVP.PKey">M2Crypto.EVP.PKey</a><a class="reference internal" href="_modules/M2Crypto/EVP.html#load_key_bio_pubkey"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.EVP.load_key_bio_pubkey" title="Permalink to this definition">¶</a></dt>
<dd><p>Load an M2Crypto.EVP.PKey from a public key as a M2Crypto.BIO object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
@@ -605,8 +2017,117 @@ key.</p></li>
</dd></dl>
</div>
-<div class="section" id="engine-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">Engine</span></code> Module<a class="headerlink" href="#engine-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.Engine">
+<span id="engine-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">Engine</span></code> Module<a class="headerlink" href="#module-M2Crypto.Engine" title="Permalink to this headline">¶</a></h2>
+<dl class="py class">
+<dt id="M2Crypto.Engine.Engine">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.Engine.</code><code class="sig-name descname">Engine</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">id</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bytes<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">_ptr</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bytes<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/Engine.html#Engine"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Engine.Engine" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>Wrapper for ENGINE object.</p>
+<dl class="py method">
+<dt id="M2Crypto.Engine.Engine.ctrl_cmd_string">
+<code class="sig-name descname">ctrl_cmd_string</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmd</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">arg</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>AnyStr<span class="p">]</span></span></em>, <em class="sig-param"><span class="n">optional</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/Engine.html#Engine.ctrl_cmd_string"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Engine.Engine.ctrl_cmd_string" title="Permalink to this definition">¶</a></dt>
+<dd><p>Call ENGINE_ctrl_cmd_string</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.Engine.Engine.finish">
+<code class="sig-name descname">finish</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/Engine.html#Engine.finish"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Engine.Engine.finish" title="Permalink to this definition">¶</a></dt>
+<dd><p>Release a functional and structural reference to the engine.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.Engine.Engine.get_id">
+<code class="sig-name descname">get_id</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/Engine.html#Engine.get_id"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Engine.Engine.get_id" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return engine id</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.Engine.Engine.get_name">
+<code class="sig-name descname">get_name</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/Engine.html#Engine.get_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Engine.Engine.get_name" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return engine name</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.Engine.Engine.init">
+<code class="sig-name descname">init</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/Engine.html#Engine.init"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Engine.Engine.init" title="Permalink to this definition">¶</a></dt>
+<dd><p>Obtain a functional reference to the engine.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>0 on error, non-zero on success.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.Engine.Engine.load_certificate">
+<code class="sig-name descname">load_certificate</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509" title="M2Crypto.X509.X509">M2Crypto.X509.X509</a><a class="reference internal" href="_modules/M2Crypto/Engine.html#Engine.load_certificate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Engine.Engine.load_certificate" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load certificate from engine (e.g from smartcard).
+NOTE: This function may be not implemented by engine!</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.Engine.Engine.load_private_key">
+<code class="sig-name descname">load_private_key</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">pin</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bytes<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509" title="M2Crypto.X509.X509">M2Crypto.X509.X509</a><a class="reference internal" href="_modules/M2Crypto/Engine.html#Engine.load_private_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Engine.Engine.load_private_key" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load private key with engine methods (e.g from smartcard).
+If pin is not set it will be asked</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.Engine.Engine.load_public_key">
+<code class="sig-name descname">load_public_key</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">pin</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bytes<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EVP.PKey" title="M2Crypto.EVP.PKey">M2Crypto.EVP.PKey</a><a class="reference internal" href="_modules/M2Crypto/Engine.html#Engine.load_public_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Engine.Engine.load_public_key" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load public key with engine methods (e.g from smartcard).</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.Engine.Engine.m2_engine_free">
+<code class="sig-name descname">m2_engine_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.Engine.Engine.m2_engine_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.Engine.Engine.set_default">
+<code class="sig-name descname">set_default</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">methods</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">65535</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/Engine.html#Engine.set_default"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Engine.Engine.set_default" title="Permalink to this definition">¶</a></dt>
+<dd><p>Use this engine as default for methods specified in argument</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>methods</strong> – Possible values are bitwise OR of m2.ENGINE_METHOD_*</p>
+</dd>
+</dl>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py exception">
+<dt id="M2Crypto.Engine.EngineError">
+<em class="property">exception </em><code class="sig-prename descclassname">M2Crypto.Engine.</code><code class="sig-name descname">EngineError</code><a class="reference internal" href="_modules/M2Crypto/Engine.html#EngineError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Engine.EngineError" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.Engine.cleanup">
+<code class="sig-prename descclassname">M2Crypto.Engine.</code><code class="sig-name descname">cleanup</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/Engine.html#cleanup"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Engine.cleanup" title="Permalink to this definition">¶</a></dt>
+<dd><p>If you load any engines, you need to clean up after your application
+is finished with the engines.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.Engine.load_dynamic">
+<code class="sig-prename descclassname">M2Crypto.Engine.</code><code class="sig-name descname">load_dynamic</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/Engine.html#load_dynamic"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Engine.load_dynamic" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load dynamic engine</p>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.Engine.load_dynamic_engine">
+<code class="sig-prename descclassname">M2Crypto.Engine.</code><code class="sig-name descname">load_dynamic_engine</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">id</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">sopath</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.Engine.Engine" title="M2Crypto.Engine.Engine">M2Crypto.Engine.Engine</a><a class="reference internal" href="_modules/M2Crypto/Engine.html#load_dynamic_engine"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Engine.load_dynamic_engine" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load and return dymanic engine from sopath and assign id to it</p>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.Engine.load_openssl">
+<code class="sig-prename descclassname">M2Crypto.Engine.</code><code class="sig-name descname">load_openssl</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/Engine.html#load_openssl"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Engine.load_openssl" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load openssl engine</p>
+</dd></dl>
+
</div>
<div class="section" id="module-M2Crypto.Err">
<span id="err-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">Err</span></code> Module<a class="headerlink" href="#module-M2Crypto.Err" title="Permalink to this headline">¶</a></h2>
@@ -663,8 +2184,35 @@ key.</p></li>
<dd></dd></dl>
</div>
-<div class="section" id="rc4-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">RC4</span></code> Module<a class="headerlink" href="#rc4-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.RC4">
+<span id="rc4-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">RC4</span></code> Module<a class="headerlink" href="#module-M2Crypto.RC4" title="Permalink to this headline">¶</a></h2>
+<dl class="py class">
+<dt id="M2Crypto.RC4.RC4">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.RC4.</code><code class="sig-name descname">RC4</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bytes<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/RC4.html#RC4"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.RC4.RC4" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>Object interface to the stream cipher RC4.</p>
+<dl class="py method">
+<dt id="M2Crypto.RC4.RC4.final">
+<code class="sig-name descname">final</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/RC4.html#RC4.final"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.RC4.RC4.final" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.RC4.RC4.rc4_free">
+<code class="sig-name descname">rc4_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.RC4.RC4.rc4_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.RC4.RC4.set_key">
+<code class="sig-name descname">set_key</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/RC4.html#RC4.set_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.RC4.RC4.set_key" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.RC4.RC4.update">
+<code class="sig-name descname">update</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/RC4.html#RC4.update"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.RC4.RC4.update" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
</div>
<div class="section" id="module-M2Crypto.RSA">
<span id="rsa-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">RSA</span></code> Module<a class="headerlink" href="#module-M2Crypto.RSA" title="Permalink to this headline">¶</a></h2>
@@ -746,7 +2294,7 @@ util.passphrase_callback.</p></li>
<dl class="py method">
<dt id="M2Crypto.RSA.RSA.save_key_bio">
-<code class="sig-name descname">save_key_bio</code><span class="sig-paren">(</span><em class="sig-param">bio: BIO.BIO</em>, <em class="sig-param">cipher: Optional[str] = 'aes_128_cbc'</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/RSA.html#RSA.save_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.RSA.RSA.save_key_bio" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">save_key_bio</code><span class="sig-paren">(</span><em class="sig-param">bio: M2Crypto.BIO.BIO</em>, <em class="sig-param">cipher: Optional[str] = 'aes_128_cbc'</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/RSA.html#RSA.save_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.RSA.RSA.save_key_bio" title="Permalink to this definition">¶</a></dt>
<dd><p>Save the key pair to an M2Crypto.BIO.BIO object in PEM format.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
@@ -777,7 +2325,7 @@ util.passphrase_callback.</p></li>
<dl class="py method">
<dt id="M2Crypto.RSA.RSA.save_key_der_bio">
-<code class="sig-name descname">save_key_der_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n">BIO.BIO</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/RSA.html#RSA.save_key_der_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.RSA.RSA.save_key_der_bio" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">save_key_der_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/RSA.html#RSA.save_key_der_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.RSA.RSA.save_key_der_bio" title="Permalink to this definition">¶</a></dt>
<dd><p>Save the key pair to an M2Crypto.BIO.BIO object in DER format.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
@@ -819,7 +2367,7 @@ util.passphrase_callback.</p></li>
<dl class="py method">
<dt id="M2Crypto.RSA.RSA.save_pub_key_bio">
-<code class="sig-name descname">save_pub_key_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n">BIO.BIO</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/RSA.html#RSA.save_pub_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.RSA.RSA.save_pub_key_bio" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">save_pub_key_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/RSA.html#RSA.save_pub_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.RSA.RSA.save_pub_key_bio" title="Permalink to this definition">¶</a></dt>
<dd><p>Save the public key to an M2Crypto.BIO.BIO object in PEM format.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
@@ -956,7 +2504,7 @@ code can be obtained using ERR_get_error(3).</p>
<dl class="py method">
<dt id="M2Crypto.RSA.RSA_pub.save_key_bio">
-<code class="sig-name descname">save_key_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n">BIO.BIO</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">Any</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kw</span><span class="p">:</span> <span class="n">Any</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/RSA.html#RSA_pub.save_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.RSA.RSA_pub.save_key_bio" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">save_key_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em>, <em class="sig-param"><span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">Any</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kw</span><span class="p">:</span> <span class="n">Any</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/RSA.html#RSA_pub.save_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.RSA.RSA_pub.save_key_bio" title="Permalink to this definition">¶</a></dt>
<dd><p>Save public key to BIO.</p>
</dd></dl>
@@ -1010,7 +2558,7 @@ key. The default is util.passphrase_callback.</p></li>
<dl class="py function">
<dt id="M2Crypto.RSA.load_key_bio">
-<code class="sig-prename descclassname">M2Crypto.RSA.</code><code class="sig-name descname">load_key_bio</code><span class="sig-paren">(</span><em class="sig-param">bio: BIO.BIO</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.RSA.RSA" title="M2Crypto.RSA.RSA">RSA</a><a class="reference internal" href="_modules/M2Crypto/RSA.html#load_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.RSA.load_key_bio" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">M2Crypto.RSA.</code><code class="sig-name descname">load_key_bio</code><span class="sig-paren">(</span><em class="sig-param">bio: M2Crypto.BIO.BIO</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.RSA.RSA" title="M2Crypto.RSA.RSA">M2Crypto.RSA.RSA</a><a class="reference internal" href="_modules/M2Crypto/RSA.html#load_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.RSA.load_key_bio" title="Permalink to this definition">¶</a></dt>
<dd><p>Load an RSA key pair from an M2Crypto.BIO.BIO object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
@@ -1063,7 +2611,7 @@ key. The default is util.passphrase_callback.</p></li>
<dl class="py function">
<dt id="M2Crypto.RSA.load_pub_key_bio">
-<code class="sig-prename descclassname">M2Crypto.RSA.</code><code class="sig-name descname">load_pub_key_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n">BIO.BIO</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.RSA.RSA_pub" title="M2Crypto.RSA.RSA_pub">RSA_pub</a><a class="reference internal" href="_modules/M2Crypto/RSA.html#load_pub_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.RSA.load_pub_key_bio" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">M2Crypto.RSA.</code><code class="sig-name descname">load_pub_key_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.RSA.RSA_pub" title="M2Crypto.RSA.RSA_pub">M2Crypto.RSA.RSA_pub</a><a class="reference internal" href="_modules/M2Crypto/RSA.html#load_pub_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.RSA.load_pub_key_bio" title="Permalink to this definition">¶</a></dt>
<dd><p>Load an RSA public key from an M2Crypto.BIO.BIO object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
@@ -1103,23 +2651,1598 @@ appropriate number of bits.</p></li>
<dd></dd></dl>
</div>
-<div class="section" id="rand-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">Rand</span></code> Module<a class="headerlink" href="#rand-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.Rand">
+<span id="rand-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">Rand</span></code> Module<a class="headerlink" href="#module-M2Crypto.Rand" title="Permalink to this headline">¶</a></h2>
+<p>M2Crypto wrapper for OpenSSL PRNG. Requires OpenSSL 0.9.5 and above.</p>
+<p>Copyright (c) 1999-2003 Ng Pheng Siong. All rights reserved.
+Copyright (c) 2014-2017 Matej Cepl. All rights reserved.</p>
+<p>See LICENCE for the license information.</p>
+<dl class="py function">
+<dt id="M2Crypto.Rand.load_file">
+<code class="sig-prename descclassname">M2Crypto.Rand.</code><code class="sig-name descname">load_file</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">filename</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">max_bytes</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/Rand.html#load_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Rand.load_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>Read a number of bytes from file filename and adds them to the PRNG.</p>
+<p>If max_bytes is non-negative, up to to max_bytes are read; starting with
+OpenSSL 0.9.5, if max_bytes is -1, the complete file is read.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>filename</strong> – </p></li>
+<li><p><strong>max_bytes</strong> – </p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>the number of bytes read.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.Rand.rand_add">
+<code class="sig-prename descclassname">M2Crypto.Rand.</code><code class="sig-name descname">rand_add</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">blob</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">entropy</span><span class="p">:</span> <span class="n">float</span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/Rand.html#rand_add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Rand.rand_add" title="Permalink to this definition">¶</a></dt>
+<dd><p>Mixes blob into the PRNG state.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>blob</strong> – added data</p></li>
+<li><p><strong>entropy</strong> – (the lower bound of) an estimate of how much randomness
+is contained in blob, measured in bytes.</p></li>
+</ul>
+</dd>
+</dl>
+<p>Thus, if the data at buf are unpredictable to an adversary, this
+increases the uncertainty about the state and makes the PRNG output less
+predictable. Suitable input comes from user interaction (random key
+presses, mouse movements) and certain hardware events.</p>
+<p>Details about sources of randomness and how to estimate their entropy
+can be found in the literature, e.g. RFC 1750.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.Rand.rand_bytes">
+<code class="sig-prename descclassname">M2Crypto.Rand.</code><code class="sig-name descname">rand_bytes</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">num</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/Rand.html#rand_bytes"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Rand.rand_bytes" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return n cryptographically strong pseudo-random bytes.</p>
+<p>An error occurs if the PRNG has not been seeded with enough randomness
+to ensure an unpredictable byte sequence.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>num</strong> – number of bytes to be returned</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>random bytes</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.Rand.rand_file_name">
+<code class="sig-prename descclassname">M2Crypto.Rand.</code><code class="sig-name descname">rand_file_name</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/Rand.html#rand_file_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Rand.rand_file_name" title="Permalink to this definition">¶</a></dt>
+<dd><p>Generate a default path for the random seed file.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>string with the filename.
+The seed file is $RANDFILE if that environment variable
+is set, $HOME/.rnd otherwise. If $HOME is not set either,
+an error occurs.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.Rand.rand_pseudo_bytes">
+<code class="sig-prename descclassname">M2Crypto.Rand.</code><code class="sig-name descname">rand_pseudo_bytes</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">num</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; Tuple<span class="p">[</span>bytes<span class="p">, </span>int<span class="p">]</span><a class="reference internal" href="_modules/M2Crypto/Rand.html#rand_pseudo_bytes"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Rand.rand_pseudo_bytes" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return num pseudo-random bytes into buf.</p>
+<p>Pseudo-random byte sequences generated by this method will be unique
+if they are of sufficient length, but are not necessarily
+unpredictable. They can be used for non-cryptographic purposes and for
+certain purposes in cryptographic protocols, but usually not for key
+generation etc.</p>
+<p>Output of the function is mixed into the entropy pool before
+retrieving the new pseudo-random bytes unless disabled at compile
+time (see FAQ).</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>num</strong> – number of bytes to be returned</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>random bytes</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.Rand.rand_seed">
+<code class="sig-prename descclassname">M2Crypto.Rand.</code><code class="sig-name descname">rand_seed</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">seed</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/Rand.html#rand_seed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Rand.rand_seed" title="Permalink to this definition">¶</a></dt>
+<dd><p>Equivalent to rand_add() when len(seed) == entropy.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>seed</strong> – added data (see description at rand_add)</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.Rand.rand_status">
+<code class="sig-prename descclassname">M2Crypto.Rand.</code><code class="sig-name descname">rand_status</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/Rand.html#rand_status"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Rand.rand_status" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check whether there is enough entropy in PRNG.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>1 if the PRNG has been seeded with enough
+data, 0 otherwise.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.Rand.save_file">
+<code class="sig-prename descclassname">M2Crypto.Rand.</code><code class="sig-name descname">save_file</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">filename</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/Rand.html#save_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.Rand.save_file" title="Permalink to this definition">¶</a></dt>
+<dd><p>Write a number of random bytes (currently 1024) to file.</p>
+<p>The file then can be used to initialize the PRNG by calling load_file() in
+a later session.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>filename</strong> – </p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>returns the number of bytes written, and -1 if the bytes
+written were generated without appropriate seed.</p>
+</dd>
+</dl>
+</dd></dl>
+
</div>
-<div class="section" id="smime-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">SMIME</span></code> Module<a class="headerlink" href="#smime-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.SMIME">
+<span id="smime-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">SMIME</span></code> Module<a class="headerlink" href="#module-M2Crypto.SMIME" title="Permalink to this headline">¶</a></h2>
+<dl class="py class">
+<dt id="M2Crypto.SMIME.Cipher">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.SMIME.</code><code class="sig-name descname">Cipher</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">algo</span><span class="p">:</span> <span class="n">str</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/SMIME.html#Cipher"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.Cipher" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>Object interface to EVP_CIPHER without all the frills of
+M2Crypto.EVP.Cipher.</p>
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.SMIME.PKCS7">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.SMIME.</code><code class="sig-name descname">PKCS7</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pkcs7</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bytes<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/SMIME.html#PKCS7"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.PKCS7" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<dl class="py method">
+<dt id="M2Crypto.SMIME.PKCS7.get0_signers">
+<code class="sig-name descname">get0_signers</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">certs</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.X509.X509_Stack" title="M2Crypto.X509.X509_Stack">M2Crypto.X509.X509_Stack</a></span></em>, <em class="sig-param"><span class="n">flags</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509_Stack" title="M2Crypto.X509.X509_Stack">M2Crypto.X509.X509_Stack</a><a class="reference internal" href="_modules/M2Crypto/SMIME.html#PKCS7.get0_signers"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.PKCS7.get0_signers" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SMIME.PKCS7.m2_pkcs7_free">
+<code class="sig-name descname">m2_pkcs7_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.SMIME.PKCS7.m2_pkcs7_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SMIME.PKCS7.type">
+<code class="sig-name descname">type</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">text_name</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/SMIME.html#PKCS7.type"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.PKCS7.type" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SMIME.PKCS7.write">
+<code class="sig-name descname">write</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/SMIME.html#PKCS7.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.PKCS7.write" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SMIME.PKCS7.write_der">
+<code class="sig-name descname">write_der</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/SMIME.html#PKCS7.write_der"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.PKCS7.write_der" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py exception">
+<dt id="M2Crypto.SMIME.PKCS7_Error">
+<em class="property">exception </em><code class="sig-prename descclassname">M2Crypto.SMIME.</code><code class="sig-name descname">PKCS7_Error</code><a class="reference internal" href="_modules/M2Crypto/SMIME.html#PKCS7_Error"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.PKCS7_Error" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.SMIME.SMIME">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.SMIME.</code><code class="sig-name descname">SMIME</code><a class="reference internal" href="_modules/M2Crypto/SMIME.html#SMIME"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.SMIME" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<dl class="py method">
+<dt id="M2Crypto.SMIME.SMIME.decrypt">
+<code class="sig-name descname">decrypt</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pkcs7</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.SMIME.PKCS7" title="M2Crypto.SMIME.PKCS7">M2Crypto.SMIME.PKCS7</a></span></em>, <em class="sig-param"><span class="n">flags</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; Optional<span class="p">[</span>bytes<span class="p">]</span><a class="reference internal" href="_modules/M2Crypto/SMIME.html#SMIME.decrypt"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.SMIME.decrypt" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SMIME.SMIME.encrypt">
+<code class="sig-name descname">encrypt</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data_bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em>, <em class="sig-param"><span class="n">flags</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.SMIME.PKCS7" title="M2Crypto.SMIME.PKCS7">M2Crypto.SMIME.PKCS7</a><a class="reference internal" href="_modules/M2Crypto/SMIME.html#SMIME.encrypt"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.SMIME.encrypt" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SMIME.SMIME.load_key">
+<code class="sig-name descname">load_key</code><span class="sig-paren">(</span><em class="sig-param">keyfile: AnyStr</em>, <em class="sig-param">certfile: Optional[AnyStr] = None</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/SMIME.html#SMIME.load_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.SMIME.load_key" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SMIME.SMIME.load_key_bio">
+<code class="sig-name descname">load_key_bio</code><span class="sig-paren">(</span><em class="sig-param">keybio: M2Crypto.BIO.BIO</em>, <em class="sig-param">certbio: Optional[M2Crypto.BIO.BIO] = None</em>, <em class="sig-param">callback: Callable = &lt;function passphrase_callback&gt;</em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/SMIME.html#SMIME.load_key_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.SMIME.load_key_bio" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SMIME.SMIME.set_cipher">
+<code class="sig-name descname">set_cipher</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cipher</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.SMIME.Cipher" title="M2Crypto.SMIME.Cipher">M2Crypto.SMIME.Cipher</a></span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/SMIME.html#SMIME.set_cipher"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.SMIME.set_cipher" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SMIME.SMIME.set_x509_stack">
+<code class="sig-name descname">set_x509_stack</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">stack</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.X509.X509_Stack" title="M2Crypto.X509.X509_Stack">M2Crypto.X509.X509_Stack</a></span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/SMIME.html#SMIME.set_x509_stack"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.SMIME.set_x509_stack" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SMIME.SMIME.set_x509_store">
+<code class="sig-name descname">set_x509_store</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">store</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.X509.X509_Store" title="M2Crypto.X509.X509_Store">M2Crypto.X509.X509_Store</a></span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/SMIME.html#SMIME.set_x509_store"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.SMIME.set_x509_store" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SMIME.SMIME.sign">
+<code class="sig-name descname">sign</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data_bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em>, <em class="sig-param"><span class="n">flags</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em>, <em class="sig-param"><span class="n">algo</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>str<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">'sha1'</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.SMIME.PKCS7" title="M2Crypto.SMIME.PKCS7">M2Crypto.SMIME.PKCS7</a><a class="reference internal" href="_modules/M2Crypto/SMIME.html#SMIME.sign"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.SMIME.sign" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SMIME.SMIME.unset_cipher">
+<code class="sig-name descname">unset_cipher</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/SMIME.html#SMIME.unset_cipher"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.SMIME.unset_cipher" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SMIME.SMIME.unset_key">
+<code class="sig-name descname">unset_key</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/SMIME.html#SMIME.unset_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.SMIME.unset_key" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SMIME.SMIME.unset_x509_stack">
+<code class="sig-name descname">unset_x509_stack</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/SMIME.html#SMIME.unset_x509_stack"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.SMIME.unset_x509_stack" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SMIME.SMIME.unset_x509_store">
+<code class="sig-name descname">unset_x509_store</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/SMIME.html#SMIME.unset_x509_store"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.SMIME.unset_x509_store" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SMIME.SMIME.verify">
+<code class="sig-name descname">verify</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pkcs7</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.SMIME.PKCS7" title="M2Crypto.SMIME.PKCS7">M2Crypto.SMIME.PKCS7</a></span></em>, <em class="sig-param"><span class="n">data_bio</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a><span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">flags</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; Optional<span class="p">[</span>bytes<span class="p">]</span><a class="reference internal" href="_modules/M2Crypto/SMIME.html#SMIME.verify"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.SMIME.verify" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.SMIME.SMIME.write">
+<code class="sig-name descname">write</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">out_bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em>, <em class="sig-param"><span class="n">pkcs7</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.SMIME.PKCS7" title="M2Crypto.SMIME.PKCS7">M2Crypto.SMIME.PKCS7</a></span></em>, <em class="sig-param"><span class="n">data_bio</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a><span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">flags</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/SMIME.html#SMIME.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.SMIME.write" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py exception">
+<dt id="M2Crypto.SMIME.SMIME_Error">
+<em class="property">exception </em><code class="sig-prename descclassname">M2Crypto.SMIME.</code><code class="sig-name descname">SMIME_Error</code><a class="reference internal" href="_modules/M2Crypto/SMIME.html#SMIME_Error"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.SMIME_Error" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.SMIME.load_pkcs7">
+<code class="sig-prename descclassname">M2Crypto.SMIME.</code><code class="sig-name descname">load_pkcs7</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">p7file</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.SMIME.PKCS7" title="M2Crypto.SMIME.PKCS7">M2Crypto.SMIME.PKCS7</a><a class="reference internal" href="_modules/M2Crypto/SMIME.html#load_pkcs7"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.load_pkcs7" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.SMIME.load_pkcs7_bio">
+<code class="sig-prename descclassname">M2Crypto.SMIME.</code><code class="sig-name descname">load_pkcs7_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">p7_bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.SMIME.PKCS7" title="M2Crypto.SMIME.PKCS7">M2Crypto.SMIME.PKCS7</a><a class="reference internal" href="_modules/M2Crypto/SMIME.html#load_pkcs7_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.load_pkcs7_bio" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.SMIME.load_pkcs7_bio_der">
+<code class="sig-prename descclassname">M2Crypto.SMIME.</code><code class="sig-name descname">load_pkcs7_bio_der</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">p7_bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.SMIME.PKCS7" title="M2Crypto.SMIME.PKCS7">M2Crypto.SMIME.PKCS7</a><a class="reference internal" href="_modules/M2Crypto/SMIME.html#load_pkcs7_bio_der"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.load_pkcs7_bio_der" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.SMIME.load_pkcs7_der">
+<code class="sig-prename descclassname">M2Crypto.SMIME.</code><code class="sig-name descname">load_pkcs7_der</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">p7file</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.SMIME.PKCS7" title="M2Crypto.SMIME.PKCS7">M2Crypto.SMIME.PKCS7</a><a class="reference internal" href="_modules/M2Crypto/SMIME.html#load_pkcs7_der"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.load_pkcs7_der" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.SMIME.smime_load_pkcs7">
+<code class="sig-prename descclassname">M2Crypto.SMIME.</code><code class="sig-name descname">smime_load_pkcs7</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">p7file</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.SMIME.PKCS7" title="M2Crypto.SMIME.PKCS7">M2Crypto.SMIME.PKCS7</a><a class="reference internal" href="_modules/M2Crypto/SMIME.html#smime_load_pkcs7"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.smime_load_pkcs7" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.SMIME.smime_load_pkcs7_bio">
+<code class="sig-prename descclassname">M2Crypto.SMIME.</code><code class="sig-name descname">smime_load_pkcs7_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">p7_bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.SMIME.PKCS7" title="M2Crypto.SMIME.PKCS7">M2Crypto.SMIME.PKCS7</a><a class="reference internal" href="_modules/M2Crypto/SMIME.html#smime_load_pkcs7_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.smime_load_pkcs7_bio" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.SMIME.text_crlf">
+<code class="sig-prename descclassname">M2Crypto.SMIME.</code><code class="sig-name descname">text_crlf</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">text</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/SMIME.html#text_crlf"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.text_crlf" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.SMIME.text_crlf_bio">
+<code class="sig-prename descclassname">M2Crypto.SMIME.</code><code class="sig-name descname">text_crlf_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio_in</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a><a class="reference internal" href="_modules/M2Crypto/SMIME.html#text_crlf_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.SMIME.text_crlf_bio" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
</div>
-<div class="section" id="x509-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">X509</span></code> Module<a class="headerlink" href="#x509-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.X509">
+<span id="x509-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">X509</span></code> Module<a class="headerlink" href="#module-M2Crypto.X509" title="Permalink to this headline">¶</a></h2>
+<dl class="py class">
+<dt id="M2Crypto.X509.CRL">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">CRL</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">crl</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bytes<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/X509.html#CRL"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.CRL" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>X509 Certificate Revocation List</p>
+<dl class="py method">
+<dt id="M2Crypto.X509.CRL.as_text">
+<code class="sig-name descname">as_text</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/X509.html#CRL.as_text"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.CRL.as_text" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return CRL in PEM format in a string.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>String containing the CRL in PEM format.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.CRL.m2_x509_crl_free">
+<code class="sig-name descname">m2_x509_crl_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.X509.CRL.m2_x509_crl_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.X509.Request">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">Request</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">req</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>int<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/X509.html#Request"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.Request" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>X509 Certificate Request.</p>
+<dl class="py method">
+<dt id="M2Crypto.X509.Request.add_extensions">
+<code class="sig-name descname">add_extensions</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ext_stack</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.X509.X509_Extension_Stack" title="M2Crypto.X509.X509_Extension_Stack">M2Crypto.X509.X509_Extension_Stack</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#Request.add_extensions"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.Request.add_extensions" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add X509 extensions to this request.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>ext_stack</strong> – Stack of extensions to add.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 for success and 0 for failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.Request.as_der">
+<code class="sig-name descname">as_der</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/X509.html#Request.as_der"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.Request.as_der" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.Request.as_pem">
+<code class="sig-name descname">as_pem</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/X509.html#Request.as_pem"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.Request.as_pem" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.Request.as_text">
+<code class="sig-name descname">as_text</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/X509.html#Request.as_text"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.Request.as_text" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.Request.get_pubkey">
+<code class="sig-name descname">get_pubkey</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EVP.PKey" title="M2Crypto.EVP.PKey">M2Crypto.EVP.PKey</a><a class="reference internal" href="_modules/M2Crypto/X509.html#Request.get_pubkey"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.Request.get_pubkey" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the public key for the request.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>Public key from the request.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.Request.get_subject">
+<code class="sig-name descname">get_subject</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509_Name" title="M2Crypto.X509.X509_Name">M2Crypto.X509.X509_Name</a><a class="reference internal" href="_modules/M2Crypto/X509.html#Request.get_subject"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.Request.get_subject" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.Request.get_version">
+<code class="sig-name descname">get_version</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#Request.get_version"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.Request.get_version" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get version.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>Returns version.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.Request.m2_x509_req_free">
+<code class="sig-name descname">m2_x509_req_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.X509.Request.m2_x509_req_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.Request.save">
+<code class="sig-name descname">save</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">filename</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">format</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#Request.save"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.Request.save" title="Permalink to this definition">¶</a></dt>
+<dd><p>Saves X.509 certificate request to a file. Default output
+format is PEM.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>filename</strong> – Name of the file the request will be saved to.</p></li>
+<li><p><strong>format</strong> – Controls what output format is used to save the
+request. Either FORMAT_PEM or FORMAT_DER to save
+in PEM or DER format. Raises ValueError if an
+unknown format is used.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 for success, 0 for failure.
+The error code can be obtained by ERR_get_error.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.Request.save_pem">
+<code class="sig-name descname">save_pem</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">filename</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#Request.save_pem"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.Request.save_pem" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.Request.set_pubkey">
+<code class="sig-name descname">set_pubkey</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pkey</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.EVP.PKey" title="M2Crypto.EVP.PKey">M2Crypto.EVP.PKey</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#Request.set_pubkey"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.Request.set_pubkey" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the public key for the request.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>pkey</strong> – Public key</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>Return 1 for success and 0 for failure.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.Request.set_subject">
+<code class="sig-name descname">set_subject</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.X509.X509_Name" title="M2Crypto.X509.X509_Name">M2Crypto.X509.X509_Name</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.X509.Request.set_subject" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set subject name.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>name</strong> – subjectName field.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 for success and 0 for failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.Request.set_subject_name">
+<code class="sig-name descname">set_subject_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.X509.X509_Name" title="M2Crypto.X509.X509_Name">M2Crypto.X509.X509_Name</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#Request.set_subject_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.Request.set_subject_name" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set subject name.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>name</strong> – subjectName field.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 for success and 0 for failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.Request.set_version">
+<code class="sig-name descname">set_version</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">version</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#Request.set_version"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.Request.set_version" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set version.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>version</strong> – Version number.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>Returns 0 on failure.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.Request.sign">
+<code class="sig-name descname">sign</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pkey</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.EVP.PKey" title="M2Crypto.EVP.PKey">M2Crypto.EVP.PKey</a></span></em>, <em class="sig-param"><span class="n">md</span><span class="p">:</span> <span class="n">str</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#Request.sign"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.Request.sign" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>pkey</strong> – PKey to be signed</p></li>
+<li><p><strong>md</strong> – used algorigthm</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 for success and 0 for failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.Request.verify">
+<code class="sig-name descname">verify</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pkey</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.EVP.PKey" title="M2Crypto.EVP.PKey">M2Crypto.EVP.PKey</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#Request.verify"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.Request.verify" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>pkey</strong> – PKey to be verified</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 for success and 0 for failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.X509.X509">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">X509</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x509</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bytes<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/X509.html#X509"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>X.509 Certificate</p>
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.add_ext">
+<code class="sig-name descname">add_ext</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ext</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.X509.X509_Extension" title="M2Crypto.X509.X509_Extension">M2Crypto.X509.X509_Extension</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.add_ext"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.add_ext" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add X509 extension to this certificate.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>ext</strong> – Extension</p>
+</dd>
+</dl>
+<p>:return 1 for success and 0 for failure</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.as_der">
+<code class="sig-name descname">as_der</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.as_der"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.as_der" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.as_pem">
+<code class="sig-name descname">as_pem</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.as_pem"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.as_pem" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.as_text">
+<code class="sig-name descname">as_text</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.as_text"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.as_text" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.check_ca">
+<code class="sig-name descname">check_ca</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.check_ca"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.check_ca" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check if the certificate is a Certificate Authority (CA) certificate.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>0 if the certificate is not CA, nonzero otherwise.</p>
+</dd>
+<dt class="field-even">Requires</dt>
+<dd class="field-even"><p>OpenSSL 0.9.8 or newer</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.check_purpose">
+<code class="sig-name descname">check_purpose</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">id</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">ca</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.check_purpose"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.check_purpose" title="Permalink to this definition">¶</a></dt>
+<dd><p>Check if the certificate’s purpose matches the asked purpose.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>id</strong> – Purpose id. See X509_PURPOSE_* constants.</p></li>
+<li><p><strong>ca</strong> – 1 if the certificate should be CA, 0 otherwise.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>0 if the certificate purpose does not match, nonzero
+otherwise.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.get_ext">
+<code class="sig-name descname">get_ext</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span><span class="p">:</span> <span class="n">str</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509_Extension" title="M2Crypto.X509.X509_Extension">M2Crypto.X509.X509_Extension</a><a class="reference internal" href="_modules/M2Crypto/X509.html#X509.get_ext"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.get_ext" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get X509 extension by name.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>name</strong> – Name of the extension</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>X509_Extension</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.get_ext_at">
+<code class="sig-name descname">get_ext_at</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">index</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509_Extension" title="M2Crypto.X509.X509_Extension">M2Crypto.X509.X509_Extension</a><a class="reference internal" href="_modules/M2Crypto/X509.html#X509.get_ext_at"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.get_ext_at" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get X509 extension by index.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>index</strong> – Name of the extension</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>X509_Extension</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.get_ext_count">
+<code class="sig-name descname">get_ext_count</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.get_ext_count"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.get_ext_count" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get X509 extension count.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.get_fingerprint">
+<code class="sig-name descname">get_fingerprint</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">md</span><span class="p">:</span> <span class="n">str</span> <span class="o">=</span> <span class="default_value">'md5'</span></em><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.get_fingerprint"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.get_fingerprint" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the fingerprint of the certificate.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>md</strong> – Message digest algorithm to use.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>String containing the fingerprint in hex format.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.get_issuer">
+<code class="sig-name descname">get_issuer</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509_Name" title="M2Crypto.X509.X509_Name">M2Crypto.X509.X509_Name</a><a class="reference internal" href="_modules/M2Crypto/X509.html#X509.get_issuer"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.get_issuer" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.get_not_after">
+<code class="sig-name descname">get_not_after</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.ASN1.ASN1_TIME" title="M2Crypto.ASN1.ASN1_TIME">M2Crypto.ASN1.ASN1_TIME</a><a class="reference internal" href="_modules/M2Crypto/X509.html#X509.get_not_after"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.get_not_after" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.get_not_before">
+<code class="sig-name descname">get_not_before</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.ASN1.ASN1_TIME" title="M2Crypto.ASN1.ASN1_TIME">M2Crypto.ASN1.ASN1_TIME</a><a class="reference internal" href="_modules/M2Crypto/X509.html#X509.get_not_before"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.get_not_before" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.get_pubkey">
+<code class="sig-name descname">get_pubkey</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.EVP.PKey" title="M2Crypto.EVP.PKey">M2Crypto.EVP.PKey</a><a class="reference internal" href="_modules/M2Crypto/X509.html#X509.get_pubkey"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.get_pubkey" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.get_serial_number">
+<code class="sig-name descname">get_serial_number</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.ASN1.ASN1_Integer" title="M2Crypto.ASN1.ASN1_Integer">M2Crypto.ASN1.ASN1_Integer</a><a class="reference internal" href="_modules/M2Crypto/X509.html#X509.get_serial_number"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.get_serial_number" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.get_subject">
+<code class="sig-name descname">get_subject</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509_Name" title="M2Crypto.X509.X509_Name">M2Crypto.X509.X509_Name</a><a class="reference internal" href="_modules/M2Crypto/X509.html#X509.get_subject"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.get_subject" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.get_version">
+<code class="sig-name descname">get_version</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.get_version"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.get_version" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.m2_x509_free">
+<code class="sig-name descname">m2_x509_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.X509.X509.m2_x509_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.save">
+<code class="sig-name descname">save</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">filename</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">format</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.save"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.save" title="Permalink to this definition">¶</a></dt>
+<dd><p>Saves X.509 certificate to a file. Default output
+format is PEM.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>filename</strong> – Name of the file the cert will be saved to.</p></li>
+<li><p><strong>format</strong> – Controls what output format is used to save the cert.
+Either FORMAT_PEM or FORMAT_DER to save in PEM or
+DER format. Raises a ValueError if an unknow
+format is used.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 for success or 0 for failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.save_pem">
+<code class="sig-name descname">save_pem</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">filename</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.save_pem"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.save_pem" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>filename</strong> – name of the file to be loaded</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 for success or 0 for failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.set_issuer">
+<code class="sig-name descname">set_issuer</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.X509.X509_Name" title="M2Crypto.X509.X509_Name">M2Crypto.X509.X509_Name</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.set_issuer"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.set_issuer" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set issuer name.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>name</strong> – subjectName field.</p>
+</dd>
+</dl>
+<p>:return 1 for success and 0 for failure</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.set_issuer_name">
+<code class="sig-name descname">set_issuer_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.X509.X509_Name" title="M2Crypto.X509.X509_Name">M2Crypto.X509.X509_Name</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.set_issuer_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.set_issuer_name" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>1 on success, 0 on failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.set_not_after">
+<code class="sig-name descname">set_not_after</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">asn1_time</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.ASN1.ASN1_TIME" title="M2Crypto.ASN1.ASN1_TIME">M2Crypto.ASN1.ASN1_TIME</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.set_not_after"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.set_not_after" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>1 on success, 0 on failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.set_not_before">
+<code class="sig-name descname">set_not_before</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">asn1_time</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.ASN1.ASN1_TIME" title="M2Crypto.ASN1.ASN1_TIME">M2Crypto.ASN1.ASN1_TIME</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.set_not_before"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.set_not_before" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>1 on success, 0 on failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.set_pubkey">
+<code class="sig-name descname">set_pubkey</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pkey</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.EVP.PKey" title="M2Crypto.EVP.PKey">M2Crypto.EVP.PKey</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.set_pubkey"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.set_pubkey" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the public key for the certificate</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>pkey</strong> – Public key</p>
+</dd>
+</dl>
+<p>:return 1 for success and 0 for failure</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.set_serial_number">
+<code class="sig-name descname">set_serial_number</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">serial</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.ASN1.ASN1_Integer" title="M2Crypto.ASN1.ASN1_Integer">M2Crypto.ASN1.ASN1_Integer</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.set_serial_number"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.set_serial_number" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set serial number.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>serial</strong> – Serial number.</p>
+</dd>
+</dl>
+<p>:return 1 for success and 0 for failure.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.set_subject">
+<code class="sig-name descname">set_subject</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.X509.X509_Name" title="M2Crypto.X509.X509_Name">M2Crypto.X509.X509_Name</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.set_subject"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.set_subject" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set subject name.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>name</strong> – subjectName field.</p>
+</dd>
+</dl>
+<p>:return 1 for success and 0 for failure</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.set_subject_name">
+<code class="sig-name descname">set_subject_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.X509.X509_Name" title="M2Crypto.X509.X509_Name">M2Crypto.X509.X509_Name</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.set_subject_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.set_subject_name" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>1 on success, 0 on failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.set_version">
+<code class="sig-name descname">set_version</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">version</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.set_version"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.set_version" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set version of the certificate.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>version</strong> – Version number.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>Returns 0 on failure.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.sign">
+<code class="sig-name descname">sign</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pkey</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.EVP.PKey" title="M2Crypto.EVP.PKey">M2Crypto.EVP.PKey</a></span></em>, <em class="sig-param"><span class="n">md</span><span class="p">:</span> <span class="n">str</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.sign"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.sign" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sign the certificate.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>pkey</strong> – Public key</p></li>
+<li><p><strong>md</strong> – Message digest algorithm to use for signing,
+for example ‘sha1’.</p></li>
+</ul>
+</dd>
+</dl>
+<p>:return int</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509.verify">
+<code class="sig-name descname">verify</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pkey</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span><a class="reference internal" href="#M2Crypto.EVP.PKey" title="M2Crypto.EVP.PKey">M2Crypto.EVP.PKey</a><span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509.verify"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509.verify" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py exception">
+<dt id="M2Crypto.X509.X509Error">
+<em class="property">exception </em><code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">X509Error</code><a class="reference internal" href="_modules/M2Crypto/X509.html#X509Error"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509Error" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">ValueError</span></code></p>
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.X509.X509_Extension">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">X509_Extension</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x509_ext_ptr</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bytes<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Extension"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Extension" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>X509 Extension</p>
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Extension.get_critical">
+<code class="sig-name descname">get_critical</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Extension.get_critical"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Extension.get_critical" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return whether or not this is a critical extension.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>Nonzero if this is a critical extension.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Extension.get_name">
+<code class="sig-name descname">get_name</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Extension.get_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Extension.get_name" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the extension name, for example ‘subjectAltName’.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Extension.get_value">
+<code class="sig-name descname">get_value</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">flag</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em>, <em class="sig-param"><span class="n">indent</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Extension.get_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Extension.get_value" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the extension value, for example ‘<a class="reference external" href="DNS:www.example.com">DNS:www.example.com</a>’.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>flag</strong> – Flag to control what and how to print.</p></li>
+<li><p><strong>indent</strong> – How many spaces to print before actual value.</p></li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Extension.m2_x509_extension_free">
+<code class="sig-name descname">m2_x509_extension_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.X509.X509_Extension.m2_x509_extension_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Extension.set_critical">
+<code class="sig-name descname">set_critical</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">critical</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Extension.set_critical"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Extension.set_critical" title="Permalink to this definition">¶</a></dt>
+<dd><p>Mark this extension critical or noncritical. By default an
+extension is not critical.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>critical</strong> – Nonzero sets this extension as critical.
+Calling this method without arguments will
+set this extension to critical.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 for success, 0 for failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.X509.X509_Extension_Stack">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">X509_Extension_Stack</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">stack</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bytes<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Extension_Stack"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Extension_Stack" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>X509 Extension Stack</p>
+<dl class="field-list simple">
+<dt class="field-odd">Warning</dt>
+<dd class="field-odd"><p>Do not modify the underlying OpenSSL stack
+except through this interface, or use any OpenSSL
+functions that do so indirectly. Doing so will get the
+OpenSSL stack and the internal pystack of this class out
+of sync, leading to python memory leaks, exceptions or
+even python crashes!</p>
+</dd>
+</dl>
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Extension_Stack.m2_sk_x509_extension_free">
+<code class="sig-name descname">m2_sk_x509_extension_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.X509.X509_Extension_Stack.m2_sk_x509_extension_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Extension_Stack.pop">
+<code class="sig-name descname">pop</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509_Extension" title="M2Crypto.X509.X509_Extension">M2Crypto.X509.X509_Extension</a><a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Extension_Stack.pop"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Extension_Stack.pop" title="Permalink to this definition">¶</a></dt>
+<dd><p>Pop X509_Extension object from the stack.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>X509_Extension popped</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Extension_Stack.push">
+<code class="sig-name descname">push</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x509_ext</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.X509.X509_Extension" title="M2Crypto.X509.X509_Extension">M2Crypto.X509.X509_Extension</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Extension_Stack.push"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Extension_Stack.push" title="Permalink to this definition">¶</a></dt>
+<dd><p>Push X509_Extension object onto the stack.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>x509_ext</strong> – X509_Extension object to be pushed onto the stack.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>The number of extensions on the stack.</p>
+</dd>
+</dl>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.X509.X509_Name">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">X509_Name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x509_name</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bytes<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Name" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>X509 Name</p>
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Name.add_entry_by_txt">
+<code class="sig-name descname">add_entry_by_txt</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">field</span></em>, <em class="sig-param"><span class="n">type</span></em>, <em class="sig-param"><span class="n">entry</span></em>, <em class="sig-param"><span class="n">len</span></em>, <em class="sig-param"><span class="n">loc</span></em>, <em class="sig-param"><span class="n">set</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Name.add_entry_by_txt"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Name.add_entry_by_txt" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add X509_Name field whose name is identified by its name.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>field</strong> – name of the entry</p></li>
+<li><p><strong>type</strong> – use MBSTRING_ASC or MBSTRING_UTF8
+(or standard ASN1 type like V_ASN1_IA5STRING)</p></li>
+<li><p><strong>entry</strong> – value</p></li>
+<li><p><strong>len</strong> – buf_len of the entry
+(-1 and the length is computed automagically)</p></li>
+</ul>
+</dd>
+</dl>
+<p>The <code class="docutils literal notranslate"><span class="pre">loc</span></code> and <code class="docutils literal notranslate"><span class="pre">set</span></code> parameters determine where a new entry
+should be added.
+For almost all applications loc can be set to -1 and set to 0.
+This adds a new entry to the end of name as a single valued
+RelativeDistinguishedName (RDN).</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>loc</strong> – determines the index where the new entry is
+inserted: if it is -1 it is appended.</p></li>
+<li><p><strong>set</strong> – determines how the new type is added. If it is zero
+a new RDN is created.
+If set is -1 or 1 it is added to the previous or next RDN
+structure respectively. This will then be a multivalued
+RDN: since multivalues RDNs are very seldom used set is
+almost always set to zero.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 for success of 0 if an error occurred.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Name.as_der">
+<code class="sig-name descname">as_der</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Name.as_der"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Name.as_der" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Name.as_hash">
+<code class="sig-name descname">as_hash</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Name.as_hash"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Name.as_hash" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Name.as_text">
+<code class="sig-name descname">as_text</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">indent</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em>, <em class="sig-param"><span class="n">flags</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; str<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Name.as_text"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Name.as_text" title="Permalink to this definition">¶</a></dt>
+<dd><p>as_text returns the name as a string.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>indent</strong> – Each line in multiline format is indented
+by this many spaces.</p></li>
+<li><p><strong>flags</strong> – Flags that control how the output should be formatted.</p></li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Name.entry_count">
+<code class="sig-name descname">entry_count</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Name.entry_count"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Name.entry_count" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Name.get_entries_by_nid">
+<code class="sig-name descname">get_entries_by_nid</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">nid</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; List<span class="p">[</span><a class="reference internal" href="#M2Crypto.X509.X509_Name_Entry" title="M2Crypto.X509.X509_Name_Entry">M2Crypto.X509.X509_Name_Entry</a><span class="p">]</span><a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Name.get_entries_by_nid"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Name.get_entries_by_nid" title="Permalink to this definition">¶</a></dt>
+<dd><p>Retrieve the next index matching nid.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>nid</strong> – name of the entry (as m2.NID* constants)</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>list of X509_Name_Entry items</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Name.m2_x509_name_free">
+<code class="sig-name descname">m2_x509_name_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.X509.X509_Name.m2_x509_name_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt id="M2Crypto.X509.X509_Name.nid">
+<code class="sig-name descname">nid</code><em class="property"> = {'C': 14, 'CN': 13, 'Email': 48, 'GN': 99, 'L': 15, 'O': 17, 'OU': 18, 'SN': 100, 'SP': 16, 'ST': 16, 'commonName': 13, 'emailAddress': 48, 'givenName': 99, 'localityName': 15, 'organizationName': 17, 'organizationUnitName': 18, 'serialNumber': 105, 'stateOrProvinceName': 16, 'surname': 100}</em><a class="headerlink" href="#M2Crypto.X509.X509_Name.nid" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.X509.X509_Name_Entry">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">X509_Name_Entry</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x509_name_entry</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Name_Entry"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Name_Entry" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>X509 Name Entry</p>
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Name_Entry.create_by_txt">
+<code class="sig-name descname">create_by_txt</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">field</span></em>, <em class="sig-param"><span class="n">type</span></em>, <em class="sig-param"><span class="n">entry</span></em>, <em class="sig-param"><span class="n">len</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Name_Entry.create_by_txt"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Name_Entry.create_by_txt" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Name_Entry.get_data">
+<code class="sig-name descname">get_data</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.ASN1.ASN1_String" title="M2Crypto.ASN1.ASN1_String">M2Crypto.ASN1.ASN1_String</a><a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Name_Entry.get_data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Name_Entry.get_data" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Name_Entry.get_object">
+<code class="sig-name descname">get_object</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.ASN1.ASN1_Object" title="M2Crypto.ASN1.ASN1_Object">M2Crypto.ASN1.ASN1_Object</a><a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Name_Entry.get_object"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Name_Entry.get_object" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Name_Entry.m2_x509_name_entry_free">
+<code class="sig-name descname">m2_x509_name_entry_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.X509.X509_Name_Entry.m2_x509_name_entry_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Name_Entry.set_data">
+<code class="sig-name descname">set_data</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">type</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">4097</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Name_Entry.set_data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Name_Entry.set_data" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets the field name to asn1obj</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>data</strong> – data in a binary form to be set</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>0 on failure, 1 on success</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Name_Entry.set_object">
+<code class="sig-name descname">set_object</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">asn1obj</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.ASN1.ASN1_Object" title="M2Crypto.ASN1.ASN1_Object">M2Crypto.ASN1.ASN1_Object</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Name_Entry.set_object"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Name_Entry.set_object" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets the field name to asn1obj</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>asn1obj</strong> – </p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>0 on failure, 1 on success</p>
+</dd>
+</dl>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.X509.X509_Stack">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">X509_Stack</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">stack</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bytes<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em>, <em class="sig-param"><span class="n">_pyfree_x509</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Stack"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Stack" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>X509 Stack</p>
+<dl class="field-list simple">
+<dt class="field-odd">Warning</dt>
+<dd class="field-odd"><p>Do not modify the underlying OpenSSL stack
+except through this interface, or use any OpenSSL
+functions that do so indirectly. Doing so will get the
+OpenSSL stack and the internal pystack of this class out
+of sync, leading to python memory leaks, exceptions or
+even python crashes!</p>
+</dd>
+</dl>
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Stack.as_der">
+<code class="sig-name descname">as_der</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; bytes<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Stack.as_der"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Stack.as_der" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return the stack as a DER encoded string</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Stack.m2_sk_x509_free">
+<code class="sig-name descname">m2_sk_x509_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.X509.X509_Stack.m2_sk_x509_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Stack.pop">
+<code class="sig-name descname">pop</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509" title="M2Crypto.X509.X509">M2Crypto.X509.X509</a><a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Stack.pop"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Stack.pop" title="Permalink to this definition">¶</a></dt>
+<dd><p>pop a certificate from the stack.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>X509 object that was popped, or None if there is
+nothing to pop.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Stack.push">
+<code class="sig-name descname">push</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x509</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.X509.X509" title="M2Crypto.X509.X509">M2Crypto.X509.X509</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Stack.push"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Stack.push" title="Permalink to this definition">¶</a></dt>
+<dd><p>push an X509 certificate onto the stack.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>x509</strong> – X509 object.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>The number of X509 objects currently on the stack.</p>
+</dd>
+</dl>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.X509.X509_Store">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">X509_Store</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">store</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bytes<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Store"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Store" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>X509 Store</p>
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Store.add_cert">
+<code class="sig-name descname">add_cert</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x509</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.X509.X509" title="M2Crypto.X509.X509">M2Crypto.X509.X509</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.X509.X509_Store.add_cert" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Store.add_x509">
+<code class="sig-name descname">add_x509</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x509</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.X509.X509" title="M2Crypto.X509.X509">M2Crypto.X509.X509</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Store.add_x509"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Store.add_x509" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Store.load_info">
+<code class="sig-name descname">load_info</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">file</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Store.load_info"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Store.load_info" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>file</strong> – filename</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 on success, 0 on failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Store.load_locations">
+<code class="sig-name descname">load_locations</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">file</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; int<a class="headerlink" href="#M2Crypto.X509.X509_Store.load_locations" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>file</strong> – filename</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>1 on success, 0 on failure</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Store.m2_x509_store_free">
+<code class="sig-name descname">m2_x509_store_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.X509.X509_Store.m2_x509_store_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Store.set_flags">
+<code class="sig-name descname">set_flags</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">flags</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Store.set_flags"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Store.set_flags" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set the verification flags for the X509Store
+Wrapper over OpenSSL X509_STORE_set_flags()</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>flags</strong> – <cite>VERIFICATION FLAGS</cite> section of the
+X509_VERIFY_PARAM_set_flags man page has
+a complete description of values the flags
+parameter can take.
+Their M2Crypto equivalent is transformed following
+the pattern: “X509_V_FLAG_XYZ” -&gt; lowercase(“VERIFY_XYZ”)</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Store.set_verify_cb">
+<code class="sig-name descname">set_verify_cb</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">callback</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>callable<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Store.set_verify_cb"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Store.set_verify_cb" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set callback which will be called when the store is verified.
+Wrapper over OpenSSL X509_STORE_set_verify_cb().</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>callback</strong> – Callable to specify verification options.
+Type of the callable must be:
+(int, X509_Store_Context) -&gt; int.
+If None: set the standard options.</p>
+</dd>
+<dt class="field-even">Note</dt>
+<dd class="field-even"><p>compile-time or run-time errors in the callback would result
+in mysterious errors during verification, which could be hard
+to trace.</p>
+</dd>
+<dt class="field-odd">Note</dt>
+<dd class="field-odd"><p>Python exceptions raised in callbacks do not propagate to
+verify() call.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>None</p>
+</dd>
+</dl>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.X509.X509_Store_Context">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">X509_Store_Context</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x509_store_ctx</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Store_Context"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Store_Context" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
+<p>X509 Store Context</p>
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Store_Context.get1_chain">
+<code class="sig-name descname">get1_chain</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509_Stack" title="M2Crypto.X509.X509_Stack">M2Crypto.X509.X509_Stack</a><a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Store_Context.get1_chain"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Store_Context.get1_chain" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get certificate chain.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>Reference counted (i.e. safe to use even after the store
+context goes away) stack of certificates in the chain.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Store_Context.get_current_cert">
+<code class="sig-name descname">get_current_cert</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509" title="M2Crypto.X509.X509">M2Crypto.X509.X509</a><a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Store_Context.get_current_cert"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Store_Context.get_current_cert" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get current X.509 certificate.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Warning</dt>
+<dd class="field-odd"><p>The returned certificate is NOT refcounted, so you can not
+rely on it being valid once the store context goes
+away or is modified.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Store_Context.get_error">
+<code class="sig-name descname">get_error</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Store_Context.get_error"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Store_Context.get_error" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get error code.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Store_Context.get_error_depth">
+<code class="sig-name descname">get_error_depth</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#X509_Store_Context.get_error_depth"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.X509_Store_Context.get_error_depth" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get error depth.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.X509.X509_Store_Context.m2_x509_store_ctx_free">
+<code class="sig-name descname">m2_x509_store_ctx_free</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.X509.X509_Store_Context.m2_x509_store_ctx_free" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.X509.load_cert">
+<code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">load_cert</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">file</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">format</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509" title="M2Crypto.X509.X509">M2Crypto.X509.X509</a><a class="reference internal" href="_modules/M2Crypto/X509.html#load_cert"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.load_cert" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load certificate from file.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>file</strong> – Name of file containing certificate in either DER or
+PEM format.</p></li>
+<li><p><strong>format</strong> – Describes the format of the file to be loaded,
+either PEM or DER.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>M2Crypto.X509.X509 object.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.X509.load_cert_bio">
+<code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">load_cert_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em>, <em class="sig-param"><span class="n">format</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509" title="M2Crypto.X509.X509">M2Crypto.X509.X509</a><a class="reference internal" href="_modules/M2Crypto/X509.html#load_cert_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.load_cert_bio" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load certificate from a bio.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>bio</strong> – BIO pointing at a certificate in either DER or PEM format.</p></li>
+<li><p><strong>format</strong> – Describes the format of the cert to be loaded,
+either PEM or DER (via constants FORMAT_PEM
+and FORMAT_FORMAT_DER)</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>M2Crypto.X509.X509 object.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.X509.load_cert_der_string">
+<code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">load_cert_der_string</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">string</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509" title="M2Crypto.X509.X509">M2Crypto.X509.X509</a><a class="reference internal" href="_modules/M2Crypto/X509.html#load_cert_der_string"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.load_cert_der_string" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load certificate from a string.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>string</strong> – String containing a certificate in DER format.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>M2Crypto.X509.X509 object.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.X509.load_cert_string">
+<code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">load_cert_string</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">string</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">format</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509" title="M2Crypto.X509.X509">M2Crypto.X509.X509</a><a class="reference internal" href="_modules/M2Crypto/X509.html#load_cert_string"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.load_cert_string" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load certificate from a string.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>string</strong> – String containing a certificate in either DER or PEM format.</p></li>
+<li><p><strong>format</strong> – Describes the format of the cert to be loaded,
+either PEM or DER (via constants FORMAT_PEM
+and FORMAT_FORMAT_DER)</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>M2Crypto.X509.X509 object.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.X509.load_crl">
+<code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">load_crl</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">file</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.CRL" title="M2Crypto.X509.CRL">M2Crypto.X509.CRL</a><a class="reference internal" href="_modules/M2Crypto/X509.html#load_crl"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.load_crl" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load CRL from file.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>file</strong> – Name of file containing CRL in PEM format.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>M2Crypto.X509.CRL object.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.X509.load_request">
+<code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">load_request</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">file</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">format</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.Request" title="M2Crypto.X509.Request">M2Crypto.X509.Request</a><a class="reference internal" href="_modules/M2Crypto/X509.html#load_request"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.load_request" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load certificate request from file.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>file</strong> – Name of file containing certificate request in
+either PEM or DER format.</p></li>
+<li><p><strong>format</strong> – Describes the format of the file to be loaded,
+either PEM or DER. (using constants FORMAT_PEM
+and FORMAT_DER)</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>Request object.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.X509.load_request_bio">
+<code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">load_request_bio</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">bio</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.BIO.BIO" title="M2Crypto.BIO.BIO">M2Crypto.BIO.BIO</a></span></em>, <em class="sig-param"><span class="n">format</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.Request" title="M2Crypto.X509.Request">M2Crypto.X509.Request</a><a class="reference internal" href="_modules/M2Crypto/X509.html#load_request_bio"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.load_request_bio" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load certificate request from a bio.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>bio</strong> – BIO pointing at a certificate request in
+either DER or PEM format.</p></li>
+<li><p><strong>format</strong> – Describes the format of the request to be loaded,
+either PEM or DER. (using constants FORMAT_PEM
+and FORMAT_DER)</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>M2Crypto.X509.Request object.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.X509.load_request_der_string">
+<code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">load_request_der_string</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">string</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.Request" title="M2Crypto.X509.Request">M2Crypto.X509.Request</a><a class="reference internal" href="_modules/M2Crypto/X509.html#load_request_der_string"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.load_request_der_string" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load certificate request from a string.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><p><strong>string</strong> – String containing a certificate request in DER format.</p>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>M2Crypto.X509.Request object.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.X509.load_request_string">
+<code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">load_request_string</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">string</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">format</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.Request" title="M2Crypto.X509.Request">M2Crypto.X509.Request</a><a class="reference internal" href="_modules/M2Crypto/X509.html#load_request_string"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.load_request_string" title="Permalink to this definition">¶</a></dt>
+<dd><p>Load certificate request from a string.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>string</strong> – String containing a certificate request in
+either DER or PEM format.</p></li>
+<li><p><strong>format</strong> – Describes the format of the request to be loaded,
+either PEM or DER. (using constants FORMAT_PEM
+and FORMAT_DER)</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>M2Crypto.X509.Request object.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.X509.new_extension">
+<code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">new_extension</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span><span class="p">:</span> <span class="n">str</span></em>, <em class="sig-param"><span class="n">value</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">critical</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em>, <em class="sig-param"><span class="n">_pyfree</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509_Extension" title="M2Crypto.X509.X509_Extension">M2Crypto.X509.X509_Extension</a><a class="reference internal" href="_modules/M2Crypto/X509.html#new_extension"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.new_extension" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create new X509_Extension instance.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.X509.new_stack_from_der">
+<code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">new_stack_from_der</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">der_string</span><span class="p">:</span> <span class="n">bytes</span></em><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="#M2Crypto.X509.X509_Stack" title="M2Crypto.X509.X509_Stack">M2Crypto.X509.X509_Stack</a><a class="reference internal" href="_modules/M2Crypto/X509.html#new_stack_from_der"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.new_stack_from_der" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create a new X509_Stack from DER string.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns</dt>
+<dd class="field-odd"><p>X509_Stack</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.X509.x509_store_default_cb">
+<code class="sig-prename descclassname">M2Crypto.X509.</code><code class="sig-name descname">x509_store_default_cb</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ok</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">ctx</span><span class="p">:</span> <span class="n"><a class="reference internal" href="#M2Crypto.X509.X509_Store_Context" title="M2Crypto.X509.X509_Store_Context">M2Crypto.X509.X509_Store_Context</a></span></em><span class="sig-paren">)</span> &#x2192; int<a class="reference internal" href="_modules/M2Crypto/X509.html#x509_store_default_cb"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.X509.x509_store_default_cb" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
</div>
-<div class="section" id="callback-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">callback</span></code> Module<a class="headerlink" href="#callback-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.callback">
+<span id="callback-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">callback</span></code> Module<a class="headerlink" href="#module-M2Crypto.callback" title="Permalink to this headline">¶</a></h2>
</div>
-<div class="section" id="ftpslib-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">ftpslib</span></code> Module<a class="headerlink" href="#ftpslib-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.ftpslib">
+<span id="ftpslib-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">ftpslib</span></code> Module<a class="headerlink" href="#module-M2Crypto.ftpslib" title="Permalink to this headline">¶</a></h2>
+<dl class="py class">
+<dt id="M2Crypto.ftpslib.FTP_TLS">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.ftpslib.</code><code class="sig-name descname">FTP_TLS</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">host</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">ssl_ctx</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/ftpslib.html#FTP_TLS"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ftpslib.FTP_TLS" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">ftplib.FTP</span></code></p>
+<p>Python OO interface to client-side FTP/TLS.</p>
+<dl class="py method">
+<dt id="M2Crypto.ftpslib.FTP_TLS.auth_ssl">
+<code class="sig-name descname">auth_ssl</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/ftpslib.html#FTP_TLS.auth_ssl"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ftpslib.FTP_TLS.auth_ssl" title="Permalink to this definition">¶</a></dt>
+<dd><p>Secure the control connection per AUTH SSL, aka AUTH TLS-P.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.ftpslib.FTP_TLS.auth_tls">
+<code class="sig-name descname">auth_tls</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/ftpslib.html#FTP_TLS.auth_tls"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ftpslib.FTP_TLS.auth_tls" title="Permalink to this definition">¶</a></dt>
+<dd><p>Secure the control connection per AUTH TLS, aka AUTH TLS-C.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.ftpslib.FTP_TLS.ntransfercmd">
+<code class="sig-name descname">ntransfercmd</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cmd</span></em>, <em class="sig-param"><span class="n">rest</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/ftpslib.html#FTP_TLS.ntransfercmd"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ftpslib.FTP_TLS.ntransfercmd" title="Permalink to this definition">¶</a></dt>
+<dd><p>Initiate a data transfer.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.ftpslib.FTP_TLS.prot_c">
+<code class="sig-name descname">prot_c</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/ftpslib.html#FTP_TLS.prot_c"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ftpslib.FTP_TLS.prot_c" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set up data connection in the clear.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.ftpslib.FTP_TLS.prot_p">
+<code class="sig-name descname">prot_p</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/ftpslib.html#FTP_TLS.prot_p"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.ftpslib.FTP_TLS.prot_p" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set up secure data connection.</p>
+</dd></dl>
+
+</dd></dl>
+
</div>
-<div class="section" id="httpslib-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">httpslib</span></code> Module<a class="headerlink" href="#httpslib-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.httpslib">
+<span id="httpslib-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">httpslib</span></code> Module<a class="headerlink" href="#module-M2Crypto.httpslib" title="Permalink to this headline">¶</a></h2>
+<dl class="py class">
+<dt id="M2Crypto.httpslib.HTTPSConnection">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.httpslib.</code><code class="sig-name descname">HTTPSConnection</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">host</span><span class="p">:</span> <span class="n">str</span></em>, <em class="sig-param"><span class="n">port</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>int<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">strict</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bool<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">ssl</span><span class="p">:</span> <span class="n">Any</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/httpslib.html#HTTPSConnection"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.httpslib.HTTPSConnection" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">http.client.HTTPConnection</span></code></p>
+<p>This class allows communication via SSL using M2Crypto.</p>
+<dl class="py method">
+<dt id="M2Crypto.httpslib.HTTPSConnection.close">
+<code class="sig-name descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/httpslib.html#HTTPSConnection.close"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.httpslib.HTTPSConnection.close" title="Permalink to this definition">¶</a></dt>
+<dd><p>Close the connection to the HTTP server.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.httpslib.HTTPSConnection.connect">
+<code class="sig-name descname">connect</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/httpslib.html#HTTPSConnection.connect"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.httpslib.HTTPSConnection.connect" title="Permalink to this definition">¶</a></dt>
+<dd><p>Connect to the host and port specified in __init__.</p>
+</dd></dl>
+
+<dl class="py attribute">
+<dt id="M2Crypto.httpslib.HTTPSConnection.default_port">
+<code class="sig-name descname">default_port</code><em class="property"> = 443</em><a class="headerlink" href="#M2Crypto.httpslib.HTTPSConnection.default_port" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.httpslib.HTTPSConnection.get_session">
+<code class="sig-name descname">get_session</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; <a class="reference internal" href="M2Crypto.SSL.html#M2Crypto.SSL.Session.Session" title="M2Crypto.SSL.Session.Session">M2Crypto.SSL.Session.Session</a><a class="reference internal" href="_modules/M2Crypto/httpslib.html#HTTPSConnection.get_session"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.httpslib.HTTPSConnection.get_session" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.httpslib.HTTPSConnection.set_session">
+<code class="sig-name descname">set_session</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">session</span><span class="p">:</span> <span class="n"><a class="reference internal" href="M2Crypto.SSL.html#M2Crypto.SSL.Session.Session" title="M2Crypto.SSL.Session.Session">M2Crypto.SSL.Session.Session</a></span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/httpslib.html#HTTPSConnection.set_session"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.httpslib.HTTPSConnection.set_session" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt id="M2Crypto.httpslib.ProxyHTTPSConnection">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.httpslib.</code><code class="sig-name descname">ProxyHTTPSConnection</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">host</span><span class="p">:</span> <span class="n">str</span></em>, <em class="sig-param"><span class="n">port</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>int<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">strict</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bool<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">username</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>AnyStr<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">password</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>AnyStr<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">ssl</span><span class="p">:</span> <span class="n">Any</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/httpslib.html#ProxyHTTPSConnection"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.httpslib.ProxyHTTPSConnection" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#M2Crypto.httpslib.HTTPSConnection" title="M2Crypto.httpslib.HTTPSConnection"><code class="xref py py-class docutils literal notranslate"><span class="pre">M2Crypto.httpslib.HTTPSConnection</span></code></a></p>
+<p>An HTTPS Connection that uses a proxy and the CONNECT request.</p>
+<p>When the connection is initiated, CONNECT is first sent to the proxy (along
+with authorization headers, if supplied). If successful, an SSL connection
+will be established over the socket through the proxy and to the target
+host.</p>
+<p>Finally, the actual request is sent over the SSL connection tunneling
+through the proxy.</p>
+<dl class="py method">
+<dt id="M2Crypto.httpslib.ProxyHTTPSConnection.connect">
+<code class="sig-name descname">connect</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/httpslib.html#ProxyHTTPSConnection.connect"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.httpslib.ProxyHTTPSConnection.connect" title="Permalink to this definition">¶</a></dt>
+<dd><p>Connect to the host and port specified in __init__.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.httpslib.ProxyHTTPSConnection.endheaders">
+<code class="sig-name descname">endheaders</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">Any</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">Any</span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/httpslib.html#ProxyHTTPSConnection.endheaders"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.httpslib.ProxyHTTPSConnection.endheaders" title="Permalink to this definition">¶</a></dt>
+<dd><p>Indicate that the last header line has been sent to the server.</p>
+<p>This method sends the request to the server. The optional message_body
+argument can be used to pass a message body associated with the
+request.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.httpslib.ProxyHTTPSConnection.putheader">
+<code class="sig-name descname">putheader</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">header</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">value</span><span class="p">:</span> <span class="n">AnyStr</span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/httpslib.html#ProxyHTTPSConnection.putheader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.httpslib.ProxyHTTPSConnection.putheader" title="Permalink to this definition">¶</a></dt>
+<dd><p>Send a request header line to the server.</p>
+<p>For example: h.putheader(‘Accept’, ‘text/html’)</p>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.httpslib.ProxyHTTPSConnection.putrequest">
+<code class="sig-name descname">putrequest</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">method</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">url</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">skip_host</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em>, <em class="sig-param"><span class="n">skip_accept_encoding</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/httpslib.html#ProxyHTTPSConnection.putrequest"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.httpslib.ProxyHTTPSConnection.putrequest" title="Permalink to this definition">¶</a></dt>
+<dd><p>putrequest is called before connect, so can interpret url and get
+real host/port to be used to make CONNECT request to proxy</p>
+</dd></dl>
+
+</dd></dl>
+
</div>
<div class="section" id="module-M2Crypto.m2">
<span id="m2-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2</span></code> Module<a class="headerlink" href="#module-M2Crypto.m2" title="Permalink to this headline">¶</a></h2>
@@ -1127,17 +4250,100 @@ appropriate number of bits.</p></li>
<div class="section" id="module-M2Crypto.m2crypto">
<span id="m2crypto-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2crypto</span></code> Module<a class="headerlink" href="#module-M2Crypto.m2crypto" title="Permalink to this headline">¶</a></h2>
</div>
-<div class="section" id="m2urllib-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2urllib</span></code> Module<a class="headerlink" href="#m2urllib-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.m2urllib">
+<span id="m2urllib-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2urllib</span></code> Module<a class="headerlink" href="#module-M2Crypto.m2urllib" title="Permalink to this headline">¶</a></h2>
+<dl class="py function">
+<dt id="M2Crypto.m2urllib.open_https">
+<code class="sig-prename descclassname">M2Crypto.m2urllib.</code><code class="sig-name descname">open_https</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">self</span><span class="p">:</span> <span class="n">URLOpener</span></em>, <em class="sig-param"><span class="n">url</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">data</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>bytes<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="n">ssl_context</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>SSL.Context<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span> &#x2192; addinfourl<a class="reference internal" href="_modules/M2Crypto/m2urllib.html#open_https"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.m2urllib.open_https" title="Permalink to this definition">¶</a></dt>
+<dd><p>Open URL over the SSL connection.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>url</strong> – URL to be opened</p></li>
+<li><p><strong>data</strong> – data for the POST request</p></li>
+<li><p><strong>ssl_context</strong> – SSL.Context to be used</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p></p>
+</dd>
+</dl>
+</dd></dl>
+
</div>
-<div class="section" id="m2urllib2-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2urllib2</span></code> Module<a class="headerlink" href="#m2urllib2-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.m2urllib2">
+<span id="m2urllib2-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2urllib2</span></code> Module<a class="headerlink" href="#module-M2Crypto.m2urllib2" title="Permalink to this headline">¶</a></h2>
+<dl class="py class">
+<dt id="M2Crypto.m2urllib2.HTTPSHandler">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.m2urllib2.</code><code class="sig-name descname">HTTPSHandler</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ssl_context</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span><a class="reference internal" href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context" title="M2Crypto.SSL.Context.Context">M2Crypto.SSL.Context.Context</a><span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/m2urllib2.html#HTTPSHandler"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.m2urllib2.HTTPSHandler" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">urllib.request.AbstractHTTPHandler</span></code></p>
+<dl class="py method">
+<dt id="M2Crypto.m2urllib2.HTTPSHandler.https_open">
+<code class="sig-name descname">https_open</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">req</span><span class="p">:</span> <span class="n">urllib.request.Request</span></em><span class="sig-paren">)</span> &#x2192; urllib.response.addinfourl<a class="reference internal" href="_modules/M2Crypto/m2urllib2.html#HTTPSHandler.https_open"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.m2urllib2.HTTPSHandler.https_open" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return an addinfourl object for the request, using http_class.</p>
+<p>http_class must implement the HTTPConnection API from httplib.
+The addinfourl return value is a file-like object. It also
+has methods and attributes including:</p>
+<blockquote>
+<div><ul class="simple">
+<li><p>info(): return a mimetools.Message object for the headers</p></li>
+<li><p>geturl(): return the original request URL</p></li>
+<li><p>code: HTTP status code</p></li>
+</ul>
+</div></blockquote>
+</dd></dl>
+
+<dl class="py method">
+<dt id="M2Crypto.m2urllib2.HTTPSHandler.https_request">
+<code class="sig-name descname">https_request</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">request</span></em><span class="sig-paren">)</span><a class="headerlink" href="#M2Crypto.m2urllib2.HTTPSHandler.https_request" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.m2urllib2.build_opener">
+<code class="sig-prename descclassname">M2Crypto.m2urllib2.</code><code class="sig-name descname">build_opener</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ssl_context</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span><a class="reference internal" href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context" title="M2Crypto.SSL.Context.Context">M2Crypto.SSL.Context.Context</a><span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">handlers</span><span class="p">:</span> <span class="n">object</span></em><span class="sig-paren">)</span> &#x2192; urllib.request.OpenerDirector<a class="reference internal" href="_modules/M2Crypto/m2urllib2.html#build_opener"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.m2urllib2.build_opener" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create an opener object from a list of handlers.</p>
+<p>The opener will use several default handlers, including support
+for HTTP and FTP.</p>
+<p>If any of the handlers passed as arguments are subclasses of the
+default handlers, the default handlers will not be used.</p>
+</dd></dl>
+
</div>
-<div class="section" id="m2xmlrpclib-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2xmlrpclib</span></code> Module<a class="headerlink" href="#m2xmlrpclib-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.m2xmlrpclib">
+<span id="m2xmlrpclib-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2xmlrpclib</span></code> Module<a class="headerlink" href="#module-M2Crypto.m2xmlrpclib" title="Permalink to this headline">¶</a></h2>
+<dl class="py class">
+<dt id="M2Crypto.m2xmlrpclib.SSL_Transport">
+<em class="property">class </em><code class="sig-prename descclassname">M2Crypto.m2xmlrpclib.</code><code class="sig-name descname">SSL_Transport</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ssl_context</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span><a class="reference internal" href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context" title="M2Crypto.SSL.Context.Context">M2Crypto.SSL.Context.Context</a><span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">Any</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kw</span><span class="p">:</span> <span class="n">Any</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/M2Crypto/m2xmlrpclib.html#SSL_Transport"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.m2xmlrpclib.SSL_Transport" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">xmlrpc.client.Transport</span></code></p>
+<dl class="py method">
+<dt id="M2Crypto.m2xmlrpclib.SSL_Transport.request">
+<code class="sig-name descname">request</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">host</span><span class="p">:</span> <span class="n">AnyStr</span></em>, <em class="sig-param"><span class="n">handler</span><span class="p">:</span> <span class="n">Callable</span></em>, <em class="sig-param"><span class="n">request_body</span><span class="p">:</span> <span class="n">bytes</span></em>, <em class="sig-param"><span class="n">verbose</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span> &#x2192; object<a class="reference internal" href="_modules/M2Crypto/m2xmlrpclib.html#SSL_Transport.request"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.m2xmlrpclib.SSL_Transport.request" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt id="M2Crypto.m2xmlrpclib.SSL_Transport.user_agent">
+<code class="sig-name descname">user_agent</code><em class="property"> = 'M2Crypto_XMLRPC/0.36.0 - Python-xmlrpc/3.8'</em><a class="headerlink" href="#M2Crypto.m2xmlrpclib.SSL_Transport.user_agent" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
</div>
-<div class="section" id="threading-module">
-<h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code> Module<a class="headerlink" href="#threading-module" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="module-M2Crypto.threading">
+<span id="threading-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code> Module<a class="headerlink" href="#module-M2Crypto.threading" title="Permalink to this headline">¶</a></h2>
+<dl class="py function">
+<dt id="M2Crypto.threading.cleanup">
+<code class="sig-prename descclassname">M2Crypto.threading.</code><code class="sig-name descname">cleanup</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/threading.html#cleanup"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.threading.cleanup" title="Permalink to this definition">¶</a></dt>
+<dd><p>End and cleanup threading support.</p>
+</dd></dl>
+
+<dl class="py function">
+<dt id="M2Crypto.threading.init">
+<code class="sig-prename descclassname">M2Crypto.threading.</code><code class="sig-name descname">init</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/threading.html#init"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.threading.init" title="Permalink to this definition">¶</a></dt>
+<dd><p>Initialize threading support.</p>
+</dd></dl>
+
</div>
<div class="section" id="module-M2Crypto.util">
<span id="util-module"></span><h2><code class="xref py py-mod docutils literal notranslate"><span class="pre">util</span></code> Module<a class="headerlink" href="#module-M2Crypto.util" title="Permalink to this headline">¶</a></h2>
@@ -1154,7 +4360,7 @@ appropriate number of bits.</p></li>
<dl class="py function">
<dt id="M2Crypto.util.genparam_callback">
-<code class="sig-prename descclassname">M2Crypto.util.</code><code class="sig-name descname">genparam_callback</code><span class="sig-paren">(</span><em class="sig-param">p: int</em>, <em class="sig-param">n: Any</em>, <em class="sig-param">out: io.IOBase = &lt;_io.TextIOWrapper name='&lt;stdout&gt;' mode='w' encoding='utf-8'&gt;</em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/util.html#genparam_callback"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.util.genparam_callback" title="Permalink to this definition">¶</a></dt>
+<code class="sig-prename descclassname">M2Crypto.util.</code><code class="sig-name descname">genparam_callback</code><span class="sig-paren">(</span><em class="sig-param">p: int</em>, <em class="sig-param">n: Any</em>, <em class="sig-param">out: TextIO = &lt;_io.TextIOWrapper name='&lt;stdout&gt;' mode='w' encoding='utf-8'&gt;</em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="_modules/M2Crypto/util.html#genparam_callback"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#M2Crypto.util.genparam_callback" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dl class="py function">
@@ -1194,16 +4400,16 @@ appropriate number of bits.</p></li>
<ul>
<li class="toctree-l1"><a class="reference internal" href="M2Crypto.SSL.html">SSL Package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.SSL.html#id1"><code class="xref py py-mod docutils literal notranslate"><span class="pre">SSL</span></code> Package</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.SSL.html#checker-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Checker</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.Checker"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Checker</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.Cipher"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Cipher</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.SSL.html#connection-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Connection</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.Connection"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Connection</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.Context"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Context</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.SSL.html#sslserver-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">SSLServer</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.SSLServer"><code class="xref py py-mod docutils literal notranslate"><span class="pre">SSLServer</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.Session"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Session</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.SSL.html#twistedprotocolwrapper-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">TwistedProtocolWrapper</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.TwistedProtocolWrapper"><code class="xref py py-mod docutils literal notranslate"><span class="pre">TwistedProtocolWrapper</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.cb"><code class="xref py py-mod docutils literal notranslate"><span class="pre">cb</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.SSL.html#ssl-dispatcher-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl_dispatcher</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.SSL.html#timeout-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">timeout</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.ssl_dispatcher"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl_dispatcher</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.timeout"><code class="xref py py-mod docutils literal notranslate"><span class="pre">timeout</span></code> Module</a></li>
</ul>
</li>
</ul>
@@ -1231,30 +4437,30 @@ appropriate number of bits.</p></li>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">M2Crypto Package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#id1"><code class="xref py py-mod docutils literal notranslate"><span class="pre">M2Crypto</span></code> Package</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#asn1-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ASN1</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#authcookie-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">AuthCookie</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#bio-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">BIO</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#bn-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">BN</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#dh-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">DH</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#dsa-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">DSA</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#ec-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">EC</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.ASN1"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ASN1</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.AuthCookie"><code class="xref py py-mod docutils literal notranslate"><span class="pre">AuthCookie</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.BIO"><code class="xref py py-mod docutils literal notranslate"><span class="pre">BIO</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.BN"><code class="xref py py-mod docutils literal notranslate"><span class="pre">BN</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.DH"><code class="xref py py-mod docutils literal notranslate"><span class="pre">DH</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.DSA"><code class="xref py py-mod docutils literal notranslate"><span class="pre">DSA</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.EC"><code class="xref py py-mod docutils literal notranslate"><span class="pre">EC</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.EVP"><code class="xref py py-mod docutils literal notranslate"><span class="pre">EVP</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#engine-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Engine</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.Engine"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Engine</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.Err"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Err</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#rc4-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">RC4</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.RC4"><code class="xref py py-mod docutils literal notranslate"><span class="pre">RC4</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.RSA"><code class="xref py py-mod docutils literal notranslate"><span class="pre">RSA</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#rand-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Rand</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#smime-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">SMIME</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#x509-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">X509</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#callback-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">callback</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#ftpslib-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ftpslib</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#httpslib-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">httpslib</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.Rand"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Rand</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.SMIME"><code class="xref py py-mod docutils literal notranslate"><span class="pre">SMIME</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.X509"><code class="xref py py-mod docutils literal notranslate"><span class="pre">X509</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.callback"><code class="xref py py-mod docutils literal notranslate"><span class="pre">callback</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.ftpslib"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ftpslib</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.httpslib"><code class="xref py py-mod docutils literal notranslate"><span class="pre">httpslib</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.m2"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.m2crypto"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2crypto</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#m2urllib-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2urllib</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#m2urllib2-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2urllib2</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#m2xmlrpclib-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2xmlrpclib</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#threading-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.m2urllib"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2urllib</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.m2urllib2"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2urllib2</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.m2xmlrpclib"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2xmlrpclib</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.threading"><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-M2Crypto.util"><code class="xref py py-mod docutils literal notranslate"><span class="pre">util</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="#subpackages">Subpackages</a><ul>
<li class="toctree-l3"><a class="reference internal" href="M2Crypto.SSL.html">SSL Package</a></li>
diff --git a/doc/html/_modules/M2Crypto/ASN1.html b/doc/html/_modules/M2Crypto/ASN1.html
index bac4c1b..fea6386 100644
--- a/doc/html/_modules/M2Crypto/ASN1.html
+++ b/doc/html/_modules/M2Crypto/ASN1.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.ASN1 &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -33,7 +32,7 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.ASN1</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">M2Crypto wrapper for OpenSSL ASN1 API.</span>
@@ -47,9 +46,8 @@
<span class="kn">import</span> <span class="nn">datetime</span>
<span class="kn">import</span> <span class="nn">time</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">m2</span><span class="p">,</span> <span class="n">py27plus</span><span class="p">,</span> <span class="n">six</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">Callable</span><span class="p">,</span> <span class="n">Optional</span><span class="p">,</span> <span class="n">Tuple</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">BIO</span><span class="p">,</span> <span class="n">m2</span><span class="p">,</span> <span class="n">six</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
<span class="n">MBSTRING_FLAG</span> <span class="o">=</span> <span class="mh">0x1000</span>
<span class="n">MBSTRING_ASC</span> <span class="o">=</span> <span class="n">MBSTRING_FLAG</span> <span class="o">|</span> <span class="mi">1</span>
@@ -60,7 +58,7 @@
<span class="n">m2_asn1_integer_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">asn1_integer_free</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">asn1int</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">asn1int</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (ASN1_Integer, int) -&gt; None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">asn1int</span> <span class="o">=</span> <span class="n">asn1int</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="n">_pyfree</span>
@@ -73,12 +71,12 @@
<span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">asn1_integer_cmp</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">asn1int</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">asn1int</span><span class="p">)</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_asn1_integer_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">asn1int</span><span class="p">)</span>
- <span class="k">def</span> <span class="nf">__int__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__int__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; int</span>
<span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">asn1_integer_get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">asn1int</span><span class="p">)</span></div>
@@ -87,22 +85,22 @@
<span class="n">m2_asn1_string_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">asn1_string_free</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">asn1str</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">asn1str</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (ASN1_String, int) -&gt; None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">asn1str</span> <span class="o">=</span> <span class="n">asn1str</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="n">_pyfree</span>
- <span class="k">def</span> <span class="nf">__bytes__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__bytes__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; bytes</span>
<span class="n">buf</span> <span class="o">=</span> <span class="n">BIO</span><span class="o">.</span><span class="n">MemoryBuffer</span><span class="p">()</span>
<span class="n">m2</span><span class="o">.</span><span class="n">asn1_string_print</span><span class="p">(</span><span class="n">buf</span><span class="o">.</span><span class="n">bio_ptr</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">asn1str</span><span class="p">)</span>
<span class="k">return</span> <span class="n">buf</span><span class="o">.</span><span class="n">read_all</span><span class="p">()</span>
- <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; str</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="bp">self</span><span class="o">.</span><span class="fm">__bytes__</span><span class="p">())</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</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;_pyfree&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_asn1_string_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">asn1str</span><span class="p">)</span>
@@ -128,12 +126,12 @@
<span class="n">m2_asn1_object_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">asn1_object_free</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">asn1obj</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">asn1obj</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (ASN1_Object, int) -&gt; None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">asn1obj</span> <span class="o">=</span> <span class="n">asn1obj</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="n">_pyfree</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_asn1_object_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">asn1obj</span><span class="p">)</span>
@@ -155,7 +153,7 @@
<span class="c1"># type: (Optional[datetime.datetime]) -&gt; datetime.timedelta</span>
<span class="k">return</span> <span class="n">datetime</span><span class="o">.</span><span class="n">timedelta</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
- <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">return</span> <span class="s2">&quot;&lt;Timezone: </span><span class="si">%s</span><span class="s2">&gt;&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">tzname</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
@@ -165,7 +163,7 @@
<div class="viewcode-block" id="LocalTimezone"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.ASN1.LocalTimezone">[docs]</a><span class="k">class</span> <span class="nc">LocalTimezone</span><span class="p">(</span><span class="n">datetime</span><span class="o">.</span><span class="n">tzinfo</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Localtimezone from datetime manual.&quot;&quot;&quot;</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="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_stdoffset</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">timedelta</span><span class="p">(</span><span class="n">seconds</span><span class="o">=-</span><span class="n">time</span><span class="o">.</span><span class="n">timezone</span><span class="p">)</span>
<span class="k">if</span> <span class="n">time</span><span class="o">.</span><span class="n">daylight</span><span class="p">:</span>
@@ -207,7 +205,7 @@
<span class="s2">&quot;Sep&quot;</span><span class="p">,</span> <span class="s2">&quot;Oct&quot;</span><span class="p">,</span> <span class="s2">&quot;Nov&quot;</span><span class="p">,</span> <span class="s2">&quot;Dec&quot;</span><span class="p">]</span>
<span class="n">m2_asn1_time_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">asn1_time_free</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">asn1_time</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">asn1_utctime</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">asn1_time</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">asn1_utctime</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="c1"># type: (Optional[ASN1_TIME], Optional[int], Optional[ASN1_TIME]) -&gt; None</span>
<span class="c1"># handle old keyword parameter</span>
<span class="k">if</span> <span class="n">asn1_time</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
@@ -221,12 +219,12 @@
<span class="bp">self</span><span class="o">.</span><span class="n">asn1_time</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">asn1_time_new</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="mi">1</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</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;_pyfree&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_asn1_time_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">asn1_time</span><span class="p">)</span>
- <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; str</span>
<span class="k">assert</span> <span class="n">m2</span><span class="o">.</span><span class="n">asn1_time_type_check</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">asn1_time</span><span class="p">),</span> \
<span class="s2">&quot;&#39;asn1_time&#39; type error&#39;&quot;</span>
@@ -318,17 +316,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -345,7 +341,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/AuthCookie.html b/doc/html/_modules/M2Crypto/AuthCookie.html
index 3b2d629..92205f6 100644
--- a/doc/html/_modules/M2Crypto/AuthCookie.html
+++ b/doc/html/_modules/M2Crypto/AuthCookie.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.AuthCookie &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -33,7 +32,7 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.AuthCookie</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
<span class="sd">&quot;&quot;&quot;Secure Authenticator Cookies</span>
@@ -43,11 +42,10 @@
<span class="kn">import</span> <span class="nn">re</span>
<span class="kn">import</span> <span class="nn">time</span>
-<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="k">import</span> <span class="n">Rand</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="kn">from</span> <span class="nn">M2Crypto.six.moves.http_cookies</span> <span class="k">import</span> <span class="n">SimpleCookie</span> <span class="c1"># pylint: disable=no-name-in-module,import-error</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">Rand</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="kn">from</span> <span class="nn">M2Crypto.six.moves.http_cookies</span> <span class="kn">import</span> <span class="n">SimpleCookie</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">re</span> <span class="k">as</span> <span class="n">type_re</span><span class="p">,</span> <span class="n">AnyStr</span><span class="p">,</span> <span class="n">Dict</span><span class="p">,</span> <span class="n">Optional</span><span class="p">,</span> <span class="n">Union</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">re</span> <span class="k">as</span> <span class="n">type_re</span><span class="p">,</span> <span class="n">AnyStr</span><span class="p">,</span> <span class="n">Optional</span><span class="p">,</span> <span class="n">Union</span> <span class="c1"># noqa</span>
<span class="n">_MIX_FORMAT</span> <span class="o">=</span> <span class="s1">&#39;exp=</span><span class="si">%f</span><span class="s1">&amp;data=</span><span class="si">%s</span><span class="s1">&amp;digest=&#39;</span>
<span class="n">_MIX_RE</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;exp=(\d+\.\d+)&amp;data=(.+)&amp;digest=(\S*)&#39;</span><span class="p">)</span>
@@ -85,7 +83,7 @@
<span class="n">_keylen</span> <span class="o">=</span> <span class="mi">20</span> <span class="c1"># type: int</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="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_key</span> <span class="o">=</span> <span class="n">Rand</span><span class="o">.</span><span class="n">rand_bytes</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_keylen</span><span class="p">)</span>
@@ -142,7 +140,7 @@
<div class="viewcode-block" id="AuthCookie"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.AuthCookie.AuthCookie">[docs]</a><span class="k">class</span> <span class="nc">AuthCookie</span><span class="p">(</span><span class="nb">object</span><span class="p">):</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">expiry</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">dough</span><span class="p">,</span> <span class="n">mac</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expiry</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">dough</span><span class="p">,</span> <span class="n">mac</span><span class="p">):</span>
<span class="c1"># type: (float, str, str, str) -&gt; None</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Create new authentication cookie</span>
@@ -234,17 +232,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -261,7 +257,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/BIO.html b/doc/html/_modules/M2Crypto/BIO.html
index 212c05d..b7d66ff 100644
--- a/doc/html/_modules/M2Crypto/BIO.html
+++ b/doc/html/_modules/M2Crypto/BIO.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.BIO &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -33,17 +32,17 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.BIO</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
<span class="sd">&quot;&quot;&quot;M2Crypto wrapper for OpenSSL BIO API.</span>
<span class="sd">Copyright (c) 1999-2004 Ng Pheng Siong. All rights reserved.&quot;&quot;&quot;</span>
+<span class="kn">import</span> <span class="nn">io</span>
<span class="kn">import</span> <span class="nn">logging</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">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">Iterable</span><span class="p">,</span> <span class="n">Optional</span><span class="p">,</span> <span class="n">Union</span> <span class="c1"># noqa</span>
-<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="k">import</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="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">AnyStr</span><span class="p">,</span> <span class="n">Callable</span><span class="p">,</span> <span class="n">Iterable</span><span class="p">,</span> <span class="n">Optional</span><span class="p">,</span> <span class="n">Union</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">m2</span><span class="p">,</span> <span class="n">six</span>
<span class="n">log</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s1">&#39;BIO&#39;</span><span class="p">)</span>
@@ -60,7 +59,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="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bio</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">_close_cb</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bio</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">_close_cb</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="c1"># type: (Optional[BIO], int, Optional[Callable]) -&gt; None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">bio</span> <span class="o">=</span> <span class="n">bio</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="n">_pyfree</span>
@@ -68,7 +67,7 @@
<span class="bp">self</span><span class="o">.</span><span class="n">closed</span> <span class="o">=</span> <span class="mi">0</span>
<span class="bp">self</span><span class="o">.</span><span class="n">write_closed</span> <span class="o">=</span> <span class="mi">0</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</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">bio</span><span class="p">)</span>
@@ -196,10 +195,10 @@
<span class="sd">&quot;&quot;&quot;Seek to the specified absolute offset.&quot;&quot;&quot;</span>
<span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">bio_seek</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bio</span><span class="p">,</span> <span class="n">off</span><span class="p">)</span></div>
- <span class="k">def</span> <span class="nf">__enter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__enter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">return</span> <span class="bp">self</span>
- <span class="k">def</span> <span class="nf">__exit__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__exit__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
<span class="c1"># type: (*Any) -&gt; int</span>
<span class="bp">self</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div>
@@ -214,7 +213,7 @@
<span class="sd"> a MemoryBuffer object only when necessary.</span>
<span class="sd"> &quot;&quot;&quot;</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">data</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="c1"># type: (Optional[bytes]) -&gt; None</span>
<span class="nb">super</span><span class="p">(</span><span class="n">MemoryBuffer</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
<span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">):</span>
@@ -225,7 +224,7 @@
<span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">m2</span><span class="o">.</span><span class="n">bio_write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bio</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span>
- <span class="k">def</span> <span class="nf">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; int</span>
<span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">bio_ctrl_pending</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bio</span><span class="p">)</span>
@@ -256,7 +255,7 @@
<span class="sd"> general file manipulation in Python, use Python&#39;s builtin file object.</span>
<span class="sd"> &quot;&quot;&quot;</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">pyfile</span><span class="p">,</span> <span class="n">close_pyfile</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s1">&#39;rb&#39;</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pyfile</span><span class="p">,</span> <span class="n">close_pyfile</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s1">&#39;rb&#39;</span><span class="p">):</span>
<span class="c1"># type: (Union[io.BytesIO, AnyStr], int, AnyStr) -&gt; None</span>
<span class="nb">super</span><span class="p">(</span><span class="n">File</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
@@ -303,7 +302,7 @@
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">File</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">reset</span><span class="p">()</span></div>
- <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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">closed</span><span class="p">:</span>
<span class="n">m2</span><span class="o">.</span><span class="n">bio_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bio</span><span class="p">)</span></div>
@@ -328,7 +327,7 @@
<span class="n">m2_bio_pop</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">bio_pop</span>
<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="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">under_bio</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s1">&#39;rwb&#39;</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">under_bio</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s1">&#39;rwb&#39;</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
<span class="c1"># type: (BIO, str, int) -&gt; None</span>
<span class="nb">super</span><span class="p">(</span><span class="n">IOBuffer</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="n">_pyfree</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">io</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">bio_new</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">bio_f_buffer</span><span class="p">())</span>
@@ -340,7 +339,7 @@
<span class="k">else</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">write_closed</span> <span class="o">=</span> <span class="mi">1</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</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;_pyfree&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_bio_pop</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bio</span><span class="p">)</span>
@@ -359,14 +358,14 @@
<span class="n">m2_bio_pop</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">bio_pop</span>
<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="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obio</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obio</span><span class="p">):</span>
<span class="c1"># type: (BIO) -&gt; None</span>
<span class="nb">super</span><span class="p">(</span><span class="n">CipherStream</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">obio</span> <span class="o">=</span> <span class="n">obio</span>
<span class="bp">self</span><span class="o">.</span><span class="n">bio</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">bio_new</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">bio_f_cipher</span><span class="p">())</span>
<span class="bp">self</span><span class="o">.</span><span class="n">closed</span> <span class="o">=</span> <span class="mi">0</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</span>
<span class="k">if</span> <span class="ow">not</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;closed&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
@@ -398,14 +397,14 @@
<div class="viewcode-block" id="SSLBio"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.BIO.SSLBio">[docs]</a><span class="k">class</span> <span class="nc">SSLBio</span><span class="p">(</span><span class="n">BIO</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Object interface to BIO_f_ssl.&quot;&quot;&quot;</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">_pyfree</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
<span class="c1"># type: (int) -&gt; None</span>
<span class="nb">super</span><span class="p">(</span><span class="n">SSLBio</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="n">_pyfree</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">bio</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">bio_new</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">bio_f_ssl</span><span class="p">())</span>
<span class="bp">self</span><span class="o">.</span><span class="n">closed</span> <span class="o">=</span> <span class="mi">0</span>
<div class="viewcode-block" id="SSLBio.set_ssl"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.BIO.SSLBio.set_ssl">[docs]</a> <span class="k">def</span> <span class="nf">set_ssl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">conn</span><span class="p">,</span> <span class="n">close_flag</span><span class="o">=</span><span class="n">m2</span><span class="o">.</span><span class="n">bio_noclose</span><span class="p">):</span>
- <span class="c1"># type: (Connection, int) -&gt; None</span>
+ <span class="c1">## type: (Connection, int) -&gt; None</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Sets the bio to the SSL pointer which is</span>
<span class="sd"> contained in the connection object.</span>
@@ -455,17 +454,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -482,7 +479,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/BN.html b/doc/html/_modules/M2Crypto/BN.html
index b8287fb..8e643eb 100644
--- a/doc/html/_modules/M2Crypto/BN.html
+++ b/doc/html/_modules/M2Crypto/BN.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.BN &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -33,7 +32,7 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.BN</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">M2Crypto wrapper for OpenSSL BN (BIGNUM) API.</span>
@@ -41,9 +40,8 @@
<span class="sd">Copyright (c) 2005 Open Source Applications Foundation. All rights reserved.</span>
<span class="sd">&quot;&quot;&quot;</span>
-<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="k">import</span> <span class="n">m2</span><span class="p">,</span> <span class="n">util</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="kn">from</span> <span class="nn">typing</span> <span class="k">import</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">m2</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
<div class="viewcode-block" id="rand"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.BN.rand">[docs]</a><span class="k">def</span> <span class="nf">rand</span><span class="p">(</span><span class="n">bits</span><span class="p">,</span> <span class="n">top</span><span class="o">=-</span><span class="mi">1</span><span class="p">,</span> <span class="n">bottom</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
@@ -123,17 +121,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -150,7 +146,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/DH.html b/doc/html/_modules/M2Crypto/DH.html
index 0e6d33a..ed4bb1b 100644
--- a/doc/html/_modules/M2Crypto/DH.html
+++ b/doc/html/_modules/M2Crypto/DH.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.DH &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -33,21 +32,21 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.DH</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
<span class="sd">&quot;&quot;&quot;M2Crypto wrapper for OpenSSL DH API.</span>
<span class="sd">Copyright (c) 1999-2003 Ng Pheng Siong. All rights reserved.&quot;&quot;&quot;</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">m2</span><span class="p">,</span> <span class="n">util</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.util</span> <span class="k">import</span> <span class="n">genparam_callback</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="kn">from</span> <span class="nn">typing</span> <span class="k">import</span> <span class="n">AnyStr</span><span class="p">,</span> <span class="n">Callable</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">BIO</span><span class="p">,</span> <span class="n">m2</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.util</span> <span class="kn">import</span> <span class="n">genparam_callback</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">AnyStr</span><span class="p">,</span> <span class="n">Callable</span><span class="p">,</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
<div class="viewcode-block" id="DHError"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.DH.DHError">[docs]</a><span class="k">class</span> <span class="nc">DHError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
<span class="k">pass</span></div>
+
<span class="n">m2</span><span class="o">.</span><span class="n">dh_init</span><span class="p">(</span><span class="n">DHError</span><span class="p">)</span>
@@ -57,23 +56,23 @@
<span class="n">m2_dh_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">dh_free</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">dh</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dh</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (bytes, int) -&gt; None</span>
<span class="k">assert</span> <span class="n">m2</span><span class="o">.</span><span class="n">dh_type_check</span><span class="p">(</span><span class="n">dh</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">dh</span> <span class="o">=</span> <span class="n">dh</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="n">_pyfree</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</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;_pyfree&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_dh_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dh</span><span class="p">)</span>
- <span class="k">def</span> <span class="nf">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; int</span>
<span class="k">assert</span> <span class="n">m2</span><span class="o">.</span><span class="n">dh_type_check</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dh</span><span class="p">),</span> <span class="s2">&quot;&#39;dh&#39; type error&quot;</span>
<span class="k">return</span> <span class="nb">int</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">dh_size</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dh</span><span class="p">))</span>
- <span class="k">def</span> <span class="nf">__getattr__</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="k">def</span> <span class="fm">__getattr__</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: (str) -&gt; bytes</span>
<span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;g&#39;</span><span class="p">,</span> <span class="s1">&#39;pub&#39;</span><span class="p">,</span> <span class="s1">&#39;priv&#39;</span><span class="p">):</span>
<span class="n">method</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">m2</span><span class="p">,</span> <span class="s1">&#39;dh_get_</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">name</span><span class="p">,))</span>
@@ -82,7 +81,7 @@
<span class="k">else</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">AttributeError</span>
- <span class="k">def</span> <span class="nf">__setattr__</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="n">value</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__setattr__</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="n">value</span><span class="p">):</span>
<span class="c1"># type: (str, bytes) -&gt; bytes</span>
<span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;g&#39;</span><span class="p">):</span>
<span class="k">raise</span> <span class="n">DHError</span><span class="p">(</span><span class="s1">&#39;set (p, g) via set_params()&#39;</span><span class="p">)</span>
@@ -178,17 +177,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -205,7 +202,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/DSA.html b/doc/html/_modules/M2Crypto/DSA.html
index 6d97c52..267aaaf 100644
--- a/doc/html/_modules/M2Crypto/DSA.html
+++ b/doc/html/_modules/M2Crypto/DSA.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.DSA &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -33,7 +32,7 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.DSA</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">print_function</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">print_function</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> M2Crypto wrapper for OpenSSL DSA API.</span>
@@ -44,14 +43,14 @@
<span class="sd"> Copyright (C) 2004 OSAF. All Rights Reserved.</span>
<span class="sd">&quot;&quot;&quot;</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">m2</span><span class="p">,</span> <span class="n">util</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="kn">from</span> <span class="nn">typing</span> <span class="k">import</span> <span class="n">AnyStr</span><span class="p">,</span> <span class="n">Callable</span><span class="p">,</span> <span class="n">Tuple</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">BIO</span><span class="p">,</span> <span class="n">m2</span><span class="p">,</span> <span class="n">util</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">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">Tuple</span> <span class="c1"># noqa</span>
<div class="viewcode-block" id="DSAError"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.DSA.DSAError">[docs]</a><span class="k">class</span> <span class="nc">DSAError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
<span class="k">pass</span></div>
+
<span class="n">m2</span><span class="o">.</span><span class="n">dsa_init</span><span class="p">(</span><span class="n">DSAError</span><span class="p">)</span>
@@ -82,7 +81,7 @@
<span class="n">m2_dsa_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">dsa_free</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">dsa</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dsa</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (bytes, int) -&gt; None</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Use one of the factory functions to create an instance.</span>
@@ -92,12 +91,12 @@
<span class="bp">self</span><span class="o">.</span><span class="n">dsa</span> <span class="o">=</span> <span class="n">dsa</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="n">_pyfree</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</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;_pyfree&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_dsa_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dsa</span><span class="p">)</span>
- <span class="k">def</span> <span class="nf">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; int</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Return the key length.</span>
@@ -107,7 +106,7 @@
<span class="k">assert</span> <span class="n">m2</span><span class="o">.</span><span class="n">dsa_type_check</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dsa</span><span class="p">),</span> <span class="s2">&quot;&#39;dsa&#39; type error&quot;</span>
<span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">dsa_keylen</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dsa</span><span class="p">)</span>
- <span class="k">def</span> <span class="nf">__getattr__</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="k">def</span> <span class="fm">__getattr__</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: (str) -&gt; bytes</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Return specified DSA parameters and key values.</span>
@@ -123,7 +122,7 @@
<span class="k">else</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">AttributeError</span>
- <span class="k">def</span> <span class="nf">__setattr__</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="n">value</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__setattr__</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="n">value</span><span class="p">):</span>
<span class="c1"># type: (str, bytes) -&gt; None</span>
<span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;p&#39;</span><span class="p">,</span> <span class="s1">&#39;q&#39;</span><span class="p">,</span> <span class="s1">&#39;g&#39;</span><span class="p">]:</span>
<span class="k">raise</span> <span class="n">DSAError</span><span class="p">(</span><span class="s1">&#39;set (p, q, g) via set_params()&#39;</span><span class="p">)</span>
@@ -513,17 +512,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -540,7 +537,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/EC.html b/doc/html/_modules/M2Crypto/EC.html
index 8b62996..a850afc 100644
--- a/doc/html/_modules/M2Crypto/EC.html
+++ b/doc/html/_modules/M2Crypto/EC.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.EC &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -33,7 +32,7 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.EC</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">M2Crypto wrapper for OpenSSL ECDH/ECDSA API.</span>
@@ -45,9 +44,9 @@
<span class="sd">Portions copyright (c) 2005-2006 Vrije Universiteit Amsterdam.</span>
<span class="sd">All rights reserved.&quot;&quot;&quot;</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">EVP</span><span class="p">,</span> <span class="n">m2</span><span class="p">,</span> <span class="n">util</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="kn">from</span> <span class="nn">typing</span> <span class="k">import</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">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="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">BIO</span><span class="p">,</span> <span class="n">Err</span><span class="p">,</span> <span class="n">EVP</span><span class="p">,</span> <span class="n">m2</span><span class="p">,</span> <span class="n">util</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</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">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="kn">from</span> <span class="nn">M2Crypto.EVP</span> <span class="kn">import</span> <span class="n">PKey</span>
<span class="n">EC_Key</span> <span class="o">=</span> <span class="nb">bytes</span>
@@ -55,6 +54,7 @@
<div class="viewcode-block" id="ECError"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.ECError">[docs]</a><span class="k">class</span> <span class="nc">ECError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
<span class="k">pass</span></div>
+
<span class="n">m2</span><span class="o">.</span><span class="n">ec_init</span><span class="p">(</span><span class="n">ECError</span><span class="p">)</span>
<span class="c1"># Curve identifier constants</span>
@@ -171,18 +171,18 @@
<span class="n">m2_ec_key_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_free</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">ec</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ec</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (EC, int) -&gt; None</span>
<span class="k">assert</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_type_check</span><span class="p">(</span><span class="n">ec</span><span class="p">),</span> <span class="s2">&quot;&#39;ec&#39; type error&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ec</span> <span class="o">=</span> <span class="n">ec</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="n">_pyfree</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</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;_pyfree&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_ec_key_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ec</span><span class="p">)</span>
- <span class="k">def</span> <span class="nf">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; int</span>
<span class="k">assert</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_type_check</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ec</span><span class="p">),</span> <span class="s2">&quot;&#39;ec&#39; type error&quot;</span>
<span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_keylen</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ec</span><span class="p">)</span>
@@ -333,7 +333,7 @@
<span class="sd"> Object interface to an EC public key.</span>
<span class="sd"> ((don&#39;t like this implementation inheritance))</span>
<span class="sd"> &quot;&quot;&quot;</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">ec</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ec</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (EC, int) -&gt; None</span>
<span class="n">EC</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ec</span><span class="p">,</span> <span class="n">_pyfree</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">der</span> <span class="o">=</span> <span class="kc">None</span> <span class="c1"># type: Optional[bytes]</span>
@@ -524,17 +524,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -551,7 +549,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/EVP.html b/doc/html/_modules/M2Crypto/EVP.html
index 861dd5f..71b14d0 100644
--- a/doc/html/_modules/M2Crypto/EVP.html
+++ b/doc/html/_modules/M2Crypto/EVP.html
@@ -45,7 +45,6 @@
<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">BIO</span><span class="p">,</span> <span class="n">Err</span><span class="p">,</span> <span class="n">RSA</span><span class="p">,</span> <span class="n">m2</span><span class="p">,</span> <span class="n">util</span>
<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">AnyStr</span><span class="p">,</span> <span class="n">Optional</span><span class="p">,</span> <span class="n">Callable</span> <span class="c1"># noqa</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.SSL.Context</span> <span class="kn">import</span> <span class="n">Context</span>
<span class="n">log</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s1">&#39;EVP&#39;</span><span class="p">)</span>
@@ -230,7 +229,7 @@
<span class="k">if</span> <span class="n">mda</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s1">&#39;unknown message digest&#39;</span><span class="p">,</span> <span class="n">md</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">md</span> <span class="o">=</span> <span class="n">mda</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">m2</span><span class="o">.</span><span class="n">md_ctx_new</span><span class="p">()</span> <span class="c1"># type: Context</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">ctx</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">md_ctx_new</span><span class="p">()</span> <span class="c1">## type: Context</span>
<div class="viewcode-block" id="PKey.reset_context"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EVP.PKey.reset_context">[docs]</a> <span class="k">def</span> <span class="nf">reset_context</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">md</span><span class="o">=</span><span class="s1">&#39;sha1&#39;</span><span class="p">):</span>
<span class="c1"># type: (str) -&gt; None</span>
@@ -333,6 +332,11 @@
<span class="sd"> :return: The signature.</span>
<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="k">if</span> <span class="n">m2</span><span class="o">.</span><span class="n">OPENSSL_VERSION_NUMBER</span> <span class="o">&lt;</span> <span class="mh">0x10101000</span><span class="p">:</span>
+ <span class="k">raise</span> <span class="bp">NotImplemented</span><span class="p">(</span><span class="s1">&#39;This method requires OpenSSL version &#39;</span> <span class="o">+</span>
+ <span class="s1">&#39;1.1.1 or greater.&#39;</span><span class="p">)</span>
+
<span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">digest_sign</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ctx</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span></div>
<div class="viewcode-block" id="PKey.digest_verify_init"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EVP.PKey.digest_verify_init">[docs]</a> <span class="k">def</span> <span class="nf">digest_verify_init</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
@@ -376,6 +380,11 @@
<span class="sd"> :return: Result of verification: 1 for success, 0 for failure, -1 on</span>
<span class="sd"> other error.</span>
<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="k">if</span> <span class="n">m2</span><span class="o">.</span><span class="n">OPENSSL_VERSION_NUMBER</span> <span class="o">&lt;</span> <span class="mh">0x10101000</span><span class="p">:</span>
+ <span class="k">raise</span> <span class="bp">NotImplemented</span><span class="p">(</span><span class="s1">&#39;This method requires OpenSSL version &#39;</span> <span class="o">+</span>
+ <span class="s1">&#39;1.1.1 or greater.&#39;</span><span class="p">)</span>
+
<span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">digest_verify</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ctx</span><span class="p">,</span> <span class="n">sign</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span></div>
<div class="viewcode-block" id="PKey.assign_rsa"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EVP.PKey.assign_rsa">[docs]</a> <span class="k">def</span> <span class="nf">assign_rsa</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">rsa</span><span class="p">,</span> <span class="n">capture</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
diff --git a/doc/html/_modules/M2Crypto/Engine.html b/doc/html/_modules/M2Crypto/Engine.html
index 4d8474c..ef05bd2 100644
--- a/doc/html/_modules/M2Crypto/Engine.html
+++ b/doc/html/_modules/M2Crypto/Engine.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.Engine &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -34,7 +33,7 @@
<h1>Source code for M2Crypto.Engine</h1><div class="highlight"><pre>
<span></span><span class="c1"># vim: sts=4 sw=4 et</span>
-<span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">M2Crypto wrapper for OpenSSL ENGINE API.</span>
@@ -43,14 +42,14 @@
<span class="sd">IMEC MSU</span>
<span class="sd">&quot;&quot;&quot;</span>
-<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="k">import</span> <span class="n">EVP</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="k">if</span> <span class="n">util</span><span class="o">.</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">AnyStr</span><span class="p">,</span> <span class="n">Callable</span><span class="p">,</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">EVP</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="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">AnyStr</span><span class="p">,</span> <span class="n">Callable</span><span class="p">,</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
<div class="viewcode-block" id="EngineError"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.Engine.EngineError">[docs]</a><span class="k">class</span> <span class="nc">EngineError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
<span class="k">pass</span></div>
+
<span class="n">m2</span><span class="o">.</span><span class="n">engine_init_error</span><span class="p">(</span><span class="n">EngineError</span><span class="p">)</span>
@@ -59,7 +58,7 @@
<span class="n">m2_engine_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">engine_free</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="nb">id</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_ptr</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_ptr</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
<span class="c1"># type: (Optional[bytes], Optional[bytes], int) -&gt; None</span>
<span class="sd">&quot;&quot;&quot;Create new Engine from ENGINE pointer or obtain by id&quot;&quot;&quot;</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">_ptr</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">id</span><span class="p">:</span>
@@ -71,7 +70,7 @@
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Unknown engine: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="nb">id</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="n">_pyfree</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</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;_pyfree&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_engine_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_ptr</span><span class="p">)</span>
@@ -215,17 +214,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -242,7 +239,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/RC4.html b/doc/html/_modules/M2Crypto/RC4.html
index 95456f5..527f625 100644
--- a/doc/html/_modules/M2Crypto/RC4.html
+++ b/doc/html/_modules/M2Crypto/RC4.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.RC4 &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -33,13 +32,13 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.RC4</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
<span class="sd">&quot;&quot;&quot;M2Crypto wrapper for OpenSSL RC4 API.</span>
<span class="sd">Copyright (c) 1999-2003 Ng Pheng Siong. All rights reserved.&quot;&quot;&quot;</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.m2</span> <span class="k">import</span> <span class="n">rc4_free</span><span class="p">,</span> <span class="n">rc4_new</span><span class="p">,</span> <span class="n">rc4_set_key</span><span class="p">,</span> <span class="n">rc4_update</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.m2</span> <span class="kn">import</span> <span class="n">rc4_free</span><span class="p">,</span> <span class="n">rc4_new</span><span class="p">,</span> <span class="n">rc4_set_key</span><span class="p">,</span> <span class="n">rc4_update</span>
<div class="viewcode-block" id="RC4"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.RC4.RC4">[docs]</a><span class="k">class</span> <span class="nc">RC4</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
@@ -47,13 +46,13 @@
<span class="n">rc4_free</span> <span class="o">=</span> <span class="n">rc4_free</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">key</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="c1"># type: (bytes) -&gt; None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">cipher</span> <span class="o">=</span> <span class="n">rc4_new</span><span class="p">()</span>
<span class="k">if</span> <span class="n">key</span><span class="p">:</span>
<span class="n">rc4_set_key</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cipher</span><span class="p">,</span> <span class="n">key</span><span class="p">)</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</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;cipher&#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">rc4_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cipher</span><span class="p">)</span>
@@ -101,17 +100,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -128,7 +125,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/Rand.html b/doc/html/_modules/M2Crypto/Rand.html
index b2fa075..e23e4ee 100644
--- a/doc/html/_modules/M2Crypto/Rand.html
+++ b/doc/html/_modules/M2Crypto/Rand.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.Rand &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -40,11 +39,10 @@
<span class="sd">See LICENCE for the license information.</span>
<span class="sd">&quot;&quot;&quot;</span>
-<span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
-<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="k">import</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="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">AnyStr</span><span class="p">,</span> <span class="n">Tuple</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">m2</span><span class="p">,</span> <span class="n">six</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">AnyStr</span><span class="p">,</span> <span class="n">Tuple</span> <span class="c1"># noqa</span>
<span class="n">__all__</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;rand_seed&#39;</span><span class="p">,</span> <span class="s1">&#39;rand_add&#39;</span><span class="p">,</span> <span class="s1">&#39;load_file&#39;</span><span class="p">,</span> <span class="s1">&#39;save_file&#39;</span><span class="p">,</span> <span class="s1">&#39;rand_bytes&#39;</span><span class="p">,</span>
@@ -212,17 +210,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -239,7 +235,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/SMIME.html b/doc/html/_modules/M2Crypto/SMIME.html
index dbd0bb3..967e491 100644
--- a/doc/html/_modules/M2Crypto/SMIME.html
+++ b/doc/html/_modules/M2Crypto/SMIME.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.SMIME &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -33,15 +32,14 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.SMIME</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
<span class="sd">&quot;&quot;&quot;M2Crypto wrapper for OpenSSL S/MIME API.</span>
<span class="sd">Copyright (c) 1999-2003 Ng Pheng Siong. All rights reserved.&quot;&quot;&quot;</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">EVP</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">util</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="kn">from</span> <span class="nn">typing</span> <span class="k">import</span> <span class="n">AnyStr</span><span class="p">,</span> <span class="n">Callable</span><span class="p">,</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">BIO</span><span class="p">,</span> <span class="n">EVP</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">util</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">AnyStr</span><span class="p">,</span> <span class="n">Callable</span><span class="p">,</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
<span class="n">PKCS7_TEXT</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">PKCS7_TEXT</span> <span class="c1"># type: int</span>
<span class="n">PKCS7_NOCERTS</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">PKCS7_NOCERTS</span> <span class="c1"># type: int</span>
@@ -62,6 +60,7 @@
<div class="viewcode-block" id="PKCS7_Error"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.SMIME.PKCS7_Error">[docs]</a><span class="k">class</span> <span class="nc">PKCS7_Error</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
<span class="k">pass</span></div>
+
<span class="n">m2</span><span class="o">.</span><span class="n">pkcs7_init</span><span class="p">(</span><span class="n">PKCS7_Error</span><span class="p">)</span>
@@ -69,7 +68,7 @@
<span class="n">m2_pkcs7_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">pkcs7_free</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">pkcs7</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pkcs7</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (Optional[bytes], int) -&gt; None</span>
<span class="sd">&quot;&quot;&quot;PKCS7 object.</span>
@@ -83,7 +82,7 @@
<span class="bp">self</span><span class="o">.</span><span class="n">pkcs7</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">pkcs7_new</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="mi">1</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</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;_pyfree&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_pkcs7_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pkcs7</span><span class="p">)</span>
@@ -171,7 +170,7 @@
<span class="sd"> M2Crypto.EVP.Cipher.</span>
<span class="sd"> &quot;&quot;&quot;</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">algo</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">algo</span><span class="p">):</span>
<span class="c1"># type: (str) -&gt; None</span>
<span class="n">cipher</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">m2</span><span class="p">,</span> <span class="n">algo</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
<span class="k">if</span> <span class="n">cipher</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
@@ -356,17 +355,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -383,7 +380,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/SSL.html b/doc/html/_modules/M2Crypto/SSL.html
index ff0aa7a..f081292 100644
--- a/doc/html/_modules/M2Crypto/SSL.html
+++ b/doc/html/_modules/M2Crypto/SSL.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.SSL &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -33,7 +32,7 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.SSL</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
<span class="sd">&quot;&quot;&quot;M2Crypto SSL services.</span>
@@ -42,7 +41,7 @@
<span class="kn">import</span> <span class="nn">socket</span><span class="o">,</span> <span class="nn">os</span>
<span class="c1"># M2Crypto</span>
-<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="k">import</span> <span class="n">_m2crypto</span> <span class="k">as</span> <span class="n">m2</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">_m2crypto</span> <span class="k">as</span> <span class="n">m2</span>
<div class="viewcode-block" id="SSLError"><a class="viewcode-back" href="../../M2Crypto.SSL.html#M2Crypto.SSL.SSLError">[docs]</a><span class="k">class</span> <span class="nc">SSLError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
@@ -55,25 +54,28 @@
<span class="n">m2</span><span class="o">.</span><span class="n">ssl_init</span><span class="p">(</span><span class="n">SSLError</span><span class="p">,</span> <span class="n">SSLTimeoutError</span><span class="p">)</span>
<span class="c1"># M2Crypto.SSL</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.Connection</span> <span class="k">import</span> <span class="n">Connection</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.SSL.Context</span> <span class="k">import</span> <span class="n">Context</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.SSL.SSLServer</span> <span class="k">import</span> <span class="n">SSLServer</span><span class="p">,</span> <span class="n">ThreadingSSLServer</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.SSL.Cipher</span> <span class="kn">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.Connection</span> <span class="kn">import</span> <span class="n">Connection</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.SSL.Context</span> <span class="kn">import</span> <span class="n">Context</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.SSL.SSLServer</span> <span class="kn">import</span> <span class="n">SSLServer</span><span class="p">,</span> <span class="n">ThreadingSSLServer</span>
<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">name</span> <span class="o">!=</span> <span class="s1">&#39;nt&#39;</span><span class="p">:</span>
- <span class="kn">from</span> <span class="nn">M2Crypto.SSL.SSLServer</span> <span class="k">import</span> <span class="n">ForkingSSLServer</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.SSL.ssl_dispatcher</span> <span class="k">import</span> <span class="n">ssl_dispatcher</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.SSL.timeout</span> <span class="k">import</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">struct_to_timeout</span><span class="p">,</span> <span class="n">struct_size</span>
+ <span class="kn">from</span> <span class="nn">M2Crypto.SSL.SSLServer</span> <span class="kn">import</span> <span class="n">ForkingSSLServer</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.SSL.ssl_dispatcher</span> <span class="kn">import</span> <span class="n">ssl_dispatcher</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.SSL.timeout</span> <span class="kn">import</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">struct_to_timeout</span><span class="p">,</span> <span class="n">struct_size</span>
<span class="n">verify_none</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">SSL_VERIFY_NONE</span> <span class="c1"># type: int</span>
<span class="n">verify_peer</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">SSL_VERIFY_PEER</span> <span class="c1"># type: int</span>
<span class="n">verify_fail_if_no_peer_cert</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">SSL_VERIFY_FAIL_IF_NO_PEER_CERT</span> <span class="c1"># type: int</span>
<span class="n">verify_client_once</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">SSL_VERIFY_CLIENT_ONCE</span> <span class="c1"># type: int</span>
+<span class="n">verify_crl_check_chain</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_CRL_CHECK_CHAIN</span> <span class="c1"># type: int</span>
+<span class="n">verify_crl_check_leaf</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_CRL_CHECK_LEAF</span> <span class="c1"># type: int</span>
<span class="n">SSL_SENT_SHUTDOWN</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">SSL_SENT_SHUTDOWN</span> <span class="c1"># type: int</span>
<span class="n">SSL_RECEIVED_SHUTDOWN</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">SSL_RECEIVED_SHUTDOWN</span> <span class="c1"># type: int</span>
<span class="n">op_all</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">SSL_OP_ALL</span> <span class="c1"># type: int</span>
<span class="n">op_no_sslv2</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">SSL_OP_NO_SSLv2</span> <span class="c1"># type: int</span>
+
</pre></div>
</div>
@@ -106,17 +108,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -133,7 +133,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/SSL/Checker.html b/doc/html/_modules/M2Crypto/SSL/Checker.html
index dc1aea8..1bce837 100644
--- a/doc/html/_modules/M2Crypto/SSL/Checker.html
+++ b/doc/html/_modules/M2Crypto/SSL/Checker.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.SSL.Checker &#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" 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>
+ <script id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.js"></script>
+ <script src="../../../_static/jquery.js"></script>
+ <script src="../../../_static/underscore.js"></script>
+ <script src="../../../_static/doctools.js"></script>
+ <script src="../../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
@@ -48,9 +47,8 @@
<span class="kn">import</span> <span class="nn">re</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">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="k">if</span> <span class="n">util</span><span class="o">.</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">AnyStr</span><span class="p">,</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</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="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">AnyStr</span><span class="p">,</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
<div class="viewcode-block" id="SSLVerificationError"><a class="viewcode-back" href="../../../M2Crypto.SSL.html#M2Crypto.SSL.Checker.SSLVerificationError">[docs]</a><span class="k">class</span> <span class="nc">SSLVerificationError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
@@ -66,7 +64,7 @@
<div class="viewcode-block" id="WrongHost"><a class="viewcode-back" href="../../../M2Crypto.SSL.html#M2Crypto.SSL.Checker.WrongHost">[docs]</a><span class="k">class</span> <span class="nc">WrongHost</span><span class="p">(</span><span class="n">SSLVerificationError</span><span class="p">):</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">expectedHost</span><span class="p">,</span> <span class="n">actualHost</span><span class="p">,</span> <span class="n">fieldName</span><span class="o">=</span><span class="s1">&#39;commonName&#39;</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expectedHost</span><span class="p">,</span> <span class="n">actualHost</span><span class="p">,</span> <span class="n">fieldName</span><span class="o">=</span><span class="s1">&#39;commonName&#39;</span><span class="p">):</span>
<span class="c1"># type: (str, AnyStr, str) -&gt; None</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> This exception will be raised if the certificate returned by the</span>
@@ -90,7 +88,7 @@
<span class="bp">self</span><span class="o">.</span><span class="n">actualHost</span> <span class="o">=</span> <span class="n">actualHost</span>
<span class="bp">self</span><span class="o">.</span><span class="n">fieldName</span> <span class="o">=</span> <span class="n">fieldName</span>
- <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; str</span>
<span class="n">s</span> <span class="o">=</span> <span class="s1">&#39;Peer certificate </span><span class="si">%s</span><span class="s1"> does not match host, expected </span><span class="si">%s</span><span class="s1">, got </span><span class="si">%s</span><span class="s1">&#39;</span> \
<span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fieldName</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">expectedHost</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">actualHost</span><span class="p">)</span>
@@ -101,7 +99,7 @@
<span class="n">numericIpMatch</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s1">&#39;^[0-9]+(\.[0-9]+)*$&#39;</span><span class="p">)</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">host</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">peerCertHash</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">peerCertDigest</span><span class="o">=</span><span class="s1">&#39;sha1&#39;</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">host</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">peerCertHash</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">peerCertDigest</span><span class="o">=</span><span class="s1">&#39;sha1&#39;</span><span class="p">):</span>
<span class="c1"># type: (Optional[str], Optional[bytes], str) -&gt; None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">host</span> <span class="o">=</span> <span class="n">host</span>
<span class="k">if</span> <span class="n">peerCertHash</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
@@ -109,7 +107,7 @@
<span class="bp">self</span><span class="o">.</span><span class="n">fingerprint</span> <span class="o">=</span> <span class="n">peerCertHash</span>
<span class="bp">self</span><span class="o">.</span><span class="n">digest</span> <span class="o">=</span> <span class="n">peerCertDigest</span> <span class="c1"># type: str</span>
- <span class="k">def</span> <span class="nf">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">peerCert</span><span class="p">,</span> <span class="n">host</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">peerCert</span><span class="p">,</span> <span class="n">host</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="c1"># type: (X509.X509, Optional[str]) -&gt; bool</span>
<span class="k">if</span> <span class="n">peerCert</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NoCertificate</span><span class="p">(</span><span class="s1">&#39;peer did not return certificate&#39;</span><span class="p">)</span>
@@ -364,17 +362,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -391,7 +387,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/SSL/Cipher.html b/doc/html/_modules/M2Crypto/SSL/Cipher.html
index 5206169..9154ebc 100644
--- a/doc/html/_modules/M2Crypto/SSL/Cipher.html
+++ b/doc/html/_modules/M2Crypto/SSL/Cipher.html
@@ -118,6 +118,8 @@
<ul>
<li><a href="../../../index.html">Documentation overview</a><ul>
<li><a href="../../index.html">Module code</a><ul>
+ <li><a href="../SSL.html">M2Crypto.SSL</a><ul>
+ </ul></li>
</ul></li>
</ul></li>
</ul>
diff --git a/doc/html/_modules/M2Crypto/SSL/Context.html b/doc/html/_modules/M2Crypto/SSL/Context.html
index 21ccdc7..4f7dd23 100644
--- a/doc/html/_modules/M2Crypto/SSL/Context.html
+++ b/doc/html/_modules/M2Crypto/SSL/Context.html
@@ -504,6 +504,8 @@
<ul>
<li><a href="../../../index.html">Documentation overview</a><ul>
<li><a href="../../index.html">Module code</a><ul>
+ <li><a href="../SSL.html">M2Crypto.SSL</a><ul>
+ </ul></li>
</ul></li>
</ul></li>
</ul>
diff --git a/doc/html/_modules/M2Crypto/SSL/SSLServer.html b/doc/html/_modules/M2Crypto/SSL/SSLServer.html
index 3abb777..ac3f6a8 100644
--- a/doc/html/_modules/M2Crypto/SSL/SSLServer.html
+++ b/doc/html/_modules/M2Crypto/SSL/SSLServer.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.SSL.SSLServer &#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" 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>
+ <script id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.js"></script>
+ <script src="../../../_static/jquery.js"></script>
+ <script src="../../../_static/underscore.js"></script>
+ <script src="../../../_static/doctools.js"></script>
+ <script src="../../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
@@ -33,7 +32,7 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.SSL.SSLServer</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">print_function</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">print_function</span>
<span class="sd">&quot;&quot;&quot;SSLServer</span>
@@ -41,27 +40,26 @@
<span class="c1"># M2Crypto</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.Connection</span> <span class="k">import</span> <span class="n">Connection</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.SSL.Context</span> <span class="k">import</span> <span class="n">Context</span> <span class="c1"># noqa</span>
-<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="k">import</span> <span class="n">six</span> <span class="c1"># noqa</span>
-<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="k">import</span> <span class="n">util</span> <span class="c1"># noqa</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.six.moves.socketserver</span> <span class="k">import</span> <span class="p">(</span><span class="n">BaseServer</span><span class="p">,</span> <span class="n">TCPServer</span><span class="p">,</span>
- <span class="n">ThreadingMixIn</span><span class="p">)</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.SSL</span> <span class="kn">import</span> <span class="n">SSLError</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.SSL.Connection</span> <span class="kn">import</span> <span class="n">Connection</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.SSL.Context</span> <span class="kn">import</span> <span class="n">Context</span> <span class="c1"># noqa</span>
+<span class="c1"># from M2Crypto import six # noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">util</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.six.moves.socketserver</span> <span class="kn">import</span> <span class="p">(</span><span class="n">BaseRequestHandler</span><span class="p">,</span> <span class="n">BaseServer</span><span class="p">,</span>
+ <span class="n">TCPServer</span><span class="p">,</span> <span class="n">ThreadingMixIn</span><span class="p">)</span>
<span class="kn">import</span> <span class="nn">os</span>
<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">name</span> <span class="o">!=</span> <span class="s1">&#39;nt&#39;</span><span class="p">:</span>
- <span class="kn">from</span> <span class="nn">M2Crypto.six.moves.socketserver</span> <span class="k">import</span> <span class="n">ForkingMixIn</span>
-<span class="kn">from</span> <span class="nn">socket</span> <span class="k">import</span> <span class="n">socket</span> <span class="c1"># noqa</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="kn">from</span> <span class="nn">typing</span> <span class="k">import</span> <span class="n">Union</span> <span class="c1"># noqa</span>
+ <span class="kn">from</span> <span class="nn">M2Crypto.six.moves.socketserver</span> <span class="kn">import</span> <span class="n">ForkingMixIn</span>
+<span class="kn">from</span> <span class="nn">socket</span> <span class="kn">import</span> <span class="n">socket</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</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;SSLServer&#39;</span><span class="p">,</span> <span class="s1">&#39;ForkingSSLServer&#39;</span><span class="p">,</span> <span class="s1">&#39;ThreadingSSLServer&#39;</span><span class="p">]</span>
<div class="viewcode-block" id="SSLServer"><a class="viewcode-back" href="../../../M2Crypto.SSL.html#M2Crypto.SSL.SSLServer.SSLServer">[docs]</a><span class="k">class</span> <span class="nc">SSLServer</span><span class="p">(</span><span class="n">TCPServer</span><span class="p">):</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">server_address</span><span class="p">,</span> <span class="n">RequestHandlerClass</span><span class="p">,</span> <span class="n">ssl_context</span><span class="p">,</span> <span class="c1"># noqa</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">server_address</span><span class="p">,</span> <span class="n">RequestHandlerClass</span><span class="p">,</span> <span class="n">ssl_context</span><span class="p">,</span> <span class="c1"># noqa</span>
<span class="n">bind_and_activate</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
- <span class="c1"># type: (util.AddrType, socketserver.BaseRequestHandler, Context, bool) -&gt; None</span>
+ <span class="c1"># type: (util.AddrType, BaseRequestHandler, Context, bool) -&gt; None</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Superclass says: Constructor. May be extended, do not override.</span>
<span class="sd"> This class says: Ho-hum.</span>
@@ -133,17 +131,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -160,7 +156,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/SSL/Session.html b/doc/html/_modules/M2Crypto/SSL/Session.html
index d0c4435..b0c7bb8 100644
--- a/doc/html/_modules/M2Crypto/SSL/Session.html
+++ b/doc/html/_modules/M2Crypto/SSL/Session.html
@@ -128,6 +128,8 @@
<ul>
<li><a href="../../../index.html">Documentation overview</a><ul>
<li><a href="../../index.html">Module code</a><ul>
+ <li><a href="../SSL.html">M2Crypto.SSL</a><ul>
+ </ul></li>
</ul></li>
</ul></li>
</ul>
diff --git a/doc/html/_modules/M2Crypto/SSL/TwistedProtocolWrapper.html b/doc/html/_modules/M2Crypto/SSL/TwistedProtocolWrapper.html
index 88c32e0..b3357c1 100644
--- a/doc/html/_modules/M2Crypto/SSL/TwistedProtocolWrapper.html
+++ b/doc/html/_modules/M2Crypto/SSL/TwistedProtocolWrapper.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.SSL.TwistedProtocolWrapper &#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" 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>
+ <script id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.js"></script>
+ <script src="../../../_static/jquery.js"></script>
+ <script src="../../../_static/underscore.js"></script>
+ <script src="../../../_static/doctools.js"></script>
+ <script src="../../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
@@ -49,19 +48,18 @@
<span class="kn">import</span> <span class="nn">logging</span>
-<span class="kn">from</span> <span class="nn">functools</span> <span class="k">import</span> <span class="n">partial</span>
+<span class="kn">from</span> <span class="nn">functools</span> <span class="kn">import</span> <span class="n">partial</span>
<span class="kn">import</span> <span class="nn">twisted.internet.reactor</span>
<span class="kn">import</span> <span class="nn">twisted.protocols.policies</span> <span class="k">as</span> <span class="nn">policies</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">X509</span><span class="p">,</span> <span class="n">m2</span><span class="p">,</span> <span class="n">util</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.SSL.Checker</span> <span class="k">import</span> <span class="n">Checker</span><span class="p">,</span> <span class="n">SSLVerificationError</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">BIO</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">util</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.SSL.Checker</span> <span class="kn">import</span> <span class="n">Checker</span><span class="p">,</span> <span class="n">SSLVerificationError</span>
-<span class="kn">from</span> <span class="nn">twisted.internet.interfaces</span> <span class="k">import</span> <span class="n">ITLSTransport</span>
-<span class="kn">from</span> <span class="nn">twisted.protocols.policies</span> <span class="k">import</span> <span class="n">ProtocolWrapper</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="kn">from</span> <span class="nn">typing</span> <span class="k">import</span> <span class="n">AnyStr</span><span class="p">,</span> <span class="n">Callable</span><span class="p">,</span> <span class="n">Iterable</span><span class="p">,</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
- <span class="kn">from</span> <span class="nn">zope.interface</span> <span class="k">import</span> <span class="n">implementer</span>
+<span class="kn">from</span> <span class="nn">twisted.internet.interfaces</span> <span class="kn">import</span> <span class="n">ITLSTransport</span>
+<span class="kn">from</span> <span class="nn">twisted.protocols.policies</span> <span class="kn">import</span> <span class="n">ProtocolWrapper</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">AnyStr</span><span class="p">,</span> <span class="n">Callable</span><span class="p">,</span> <span class="n">Iterable</span><span class="p">,</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">zope.interface</span> <span class="kn">import</span> <span class="n">implementer</span>
<span class="n">log</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span>
@@ -161,13 +159,13 @@
<span class="n">m2_bio_free_all</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">bio_free_all</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">bio</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bio</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">bio</span> <span class="o">=</span> <span class="n">bio</span>
<span class="k">def</span> <span class="nf">_ptr</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">bio</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">bio</span> <span class="ow">is</span> <span class="ow">not</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_all</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bio</span><span class="p">)</span>
@@ -180,13 +178,13 @@
<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="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ssl</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ssl</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ssl</span> <span class="o">=</span> <span class="n">ssl</span>
<span class="k">def</span> <span class="nf">_ptr</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">ssl</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">ssl</span> <span class="ow">is</span> <span class="ow">not</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>
@@ -200,7 +198,7 @@
<span class="sd"> which will hook in this class.</span>
<span class="sd"> &quot;&quot;&quot;</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">factory</span><span class="p">,</span> <span class="n">wrappedProtocol</span><span class="p">,</span> <span class="n">startPassThrough</span><span class="p">,</span> <span class="n">client</span><span class="p">,</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">factory</span><span class="p">,</span> <span class="n">wrappedProtocol</span><span class="p">,</span> <span class="n">startPassThrough</span><span class="p">,</span> <span class="n">client</span><span class="p">,</span>
<span class="n">contextFactory</span><span class="p">,</span> <span class="n">postConnectionCheck</span><span class="p">):</span>
<span class="c1"># type: (policies.WrappingFactory, object, int, int, object, Checker) -&gt; None</span>
<span class="sd">&quot;&quot;&quot;</span>
@@ -558,17 +556,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -585,7 +581,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/SSL/cb.html b/doc/html/_modules/M2Crypto/SSL/cb.html
index 1eaa457..55487aa 100644
--- a/doc/html/_modules/M2Crypto/SSL/cb.html
+++ b/doc/html/_modules/M2Crypto/SSL/cb.html
@@ -155,6 +155,8 @@
<ul>
<li><a href="../../../index.html">Documentation overview</a><ul>
<li><a href="../../index.html">Module code</a><ul>
+ <li><a href="../SSL.html">M2Crypto.SSL</a><ul>
+ </ul></li>
</ul></li>
</ul></li>
</ul>
diff --git a/doc/html/_modules/M2Crypto/SSL/ssl_dispatcher.html b/doc/html/_modules/M2Crypto/SSL/ssl_dispatcher.html
index a6b964d..4c660d8 100644
--- a/doc/html/_modules/M2Crypto/SSL/ssl_dispatcher.html
+++ b/doc/html/_modules/M2Crypto/SSL/ssl_dispatcher.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.SSL.ssl_dispatcher &#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" 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>
+ <script id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.js"></script>
+ <script src="../../../_static/jquery.js"></script>
+ <script src="../../../_static/underscore.js"></script>
+ <script src="../../../_static/doctools.js"></script>
+ <script src="../../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
@@ -33,7 +32,7 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.SSL.ssl_dispatcher</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
<span class="sd">&quot;&quot;&quot;SSL dispatcher</span>
@@ -44,9 +43,9 @@
<span class="kn">import</span> <span class="nn">socket</span>
<span class="c1"># M2Crypto</span>
-<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="k">import</span> <span class="n">util</span> <span class="c1"># noqa</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.SSL.Connection</span> <span class="k">import</span> <span class="n">Connection</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.SSL.Context</span> <span class="k">import</span> <span class="n">Context</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">util</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.SSL.Connection</span> <span class="kn">import</span> <span class="n">Connection</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.SSL.Context</span> <span class="kn">import</span> <span class="n">Context</span> <span class="c1"># noqa</span>
<span class="n">__all__</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;ssl_dispatcher&#39;</span><span class="p">]</span>
@@ -110,17 +109,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -137,7 +134,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/SSL/timeout.html b/doc/html/_modules/M2Crypto/SSL/timeout.html
index d7fb07f..83fcd75 100644
--- a/doc/html/_modules/M2Crypto/SSL/timeout.html
+++ b/doc/html/_modules/M2Crypto/SSL/timeout.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.SSL.timeout &#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" 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>
+ <script id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.js"></script>
+ <script src="../../../_static/jquery.js"></script>
+ <script src="../../../_static/underscore.js"></script>
+ <script src="../../../_static/doctools.js"></script>
+ <script src="../../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
@@ -50,7 +49,7 @@
<div class="viewcode-block" id="timeout"><a class="viewcode-back" href="../../../M2Crypto.SSL.html#M2Crypto.SSL.timeout.timeout">[docs]</a><span class="k">class</span> <span class="nc">timeout</span><span class="p">(</span><span class="nb">object</span><span class="p">):</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">sec</span><span class="o">=</span><span class="n">DEFAULT_TIMEOUT</span><span class="p">,</span> <span class="n">microsec</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sec</span><span class="o">=</span><span class="n">DEFAULT_TIMEOUT</span><span class="p">,</span> <span class="n">microsec</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (int, int) -&gt; None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">sec</span> <span class="o">=</span> <span class="n">sec</span>
<span class="bp">self</span><span class="o">.</span><span class="n">microsec</span> <span class="o">=</span> <span class="n">microsec</span>
@@ -117,17 +116,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -144,7 +141,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/X509.html b/doc/html/_modules/M2Crypto/X509.html
index b546394..31b71c9 100644
--- a/doc/html/_modules/M2Crypto/X509.html
+++ b/doc/html/_modules/M2Crypto/X509.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.X509 &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -33,7 +32,7 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.X509</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
<span class="sd">&quot;&quot;&quot;M2Crypto wrapper for OpenSSL X509 API.</span>
@@ -47,19 +46,39 @@
<span class="kn">import</span> <span class="nn">binascii</span>
<span class="kn">import</span> <span class="nn">logging</span>
-<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="k">import</span> <span class="n">ASN1</span><span class="p">,</span> <span class="n">BIO</span><span class="p">,</span> <span class="n">EVP</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="c1"># noqa</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">AnyStr</span><span class="p">,</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">ASN1</span><span class="p">,</span> <span class="n">BIO</span><span class="p">,</span> <span class="n">EVP</span><span class="p">,</span> <span class="n">m2</span><span class="p">,</span> <span class="n">six</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">AnyStr</span><span class="p">,</span> <span class="n">List</span><span class="p">,</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
<span class="n">FORMAT_DER</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">FORMAT_PEM</span> <span class="o">=</span> <span class="mi">1</span>
+<span class="n">verify_allow_proxy_certs</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_ALLOW_PROXY_CERTS</span>
+<span class="n">verify_cb_issuer_check</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_CB_ISSUER_CHECK</span>
+<span class="n">verify_check_ss_signature</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_CHECK_SS_SIGNATURE</span>
+<span class="n">verify_crl_check</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_CRL_CHECK</span>
+<span class="n">verify_crl_check_all</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_CRL_CHECK_ALL</span>
+<span class="n">verify_explicit_policy</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_EXPLICIT_POLICY</span>
+<span class="n">verify_extended_crl_support</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_EXTENDED_CRL_SUPPORT</span>
+<span class="n">verify_ignore_critical</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_IGNORE_CRITICAL</span>
+<span class="n">verify_inhibit_any</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_INHIBIT_ANY</span>
+<span class="n">verify_inhibit_map</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_INHIBIT_MAP</span>
+<span class="n">verify_no_alt_chains</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_NO_ALT_CHAINS</span>
+<span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">m2</span><span class="p">,</span> <span class="s2">&quot;VERIFY_NO_CHECK_TIME&quot;</span><span class="p">):</span>
+ <span class="n">verify_no_check_time</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_NO_CHECK_TIME</span>
+<span class="n">verify_notify_policy</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_NOTIFY_POLICY</span>
+<span class="n">verify_partial_chain</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_PARTIAL_CHAIN</span>
+<span class="n">verify_policy_check</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_POLICY_CHECK</span>
+<span class="n">verify_trusted_first</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_TRUSTED_FIRST</span>
+<span class="n">verify_use_deltas</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_USE_DELTAS</span>
+<span class="n">verify_x509_strict</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">VERIFY_X509_STRICT</span>
+
<span class="n">log</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span>
<div class="viewcode-block" id="X509Error"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.X509.X509Error">[docs]</a><span class="k">class</span> <span class="nc">X509Error</span><span class="p">(</span><span class="ne">ValueError</span><span class="p">):</span>
<span class="k">pass</span></div>
+
<span class="n">m2</span><span class="o">.</span><span class="n">x509_init</span><span class="p">(</span><span class="n">X509Error</span><span class="p">)</span>
<span class="n">V_OK</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">X509_V_OK</span> <span class="c1"># type: int</span>
@@ -76,7 +95,7 @@
<span class="sd"> Create new X509_Extension instance.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="s1">&#39;subjectKeyIdentifier&#39;</span> <span class="ow">and</span> \
- <span class="n">value</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s1">&#39;0123456789abcdefABCDEF:&#39;</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="s1">&#39;&#39;</span><span class="p">:</span>
+ <span class="n">value</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s1">&#39;0123456789abcdefABCDEF:&#39;</span><span class="p">)</span> <span class="o">!=</span> <span class="s1">&#39;&#39;</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s1">&#39;value must be precomputed hash&#39;</span><span class="p">)</span>
<span class="n">ctx</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509v3_set_nconf</span><span class="p">()</span>
<span class="n">x509_ext_ptr</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509v3_ext_conf</span><span class="p">(</span><span class="kc">None</span><span class="p">,</span> <span class="n">ctx</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
@@ -96,12 +115,12 @@
<span class="n">m2_x509_extension_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_extension_free</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">x509_ext_ptr</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x509_ext_ptr</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
<span class="c1"># type: (Optional[bytes], int) -&gt; None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">x509_ext</span> <span class="o">=</span> <span class="n">x509_ext_ptr</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="n">_pyfree</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</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;_pyfree&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">x509_ext</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_x509_extension_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x509_ext</span><span class="p">)</span>
@@ -166,7 +185,7 @@
<span class="n">m2_sk_x509_extension_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">sk_x509_extension_free</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">stack</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stack</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (Optional[bytes], int) -&gt; None</span>
<span class="k">if</span> <span class="n">stack</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">stack</span> <span class="o">=</span> <span class="n">stack</span>
@@ -181,22 +200,22 @@
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="mi">1</span>
<span class="bp">self</span><span class="o">.</span><span class="n">pystack</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1"># This must be kept in sync with self.stack</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="k">def</span> <span class="fm">__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"># see BIO.py - unbalanced __init__ / __del__</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;_pyfree&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_sk_x509_extension_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">stack</span><span class="p">)</span>
- <span class="k">def</span> <span class="nf">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; int</span>
<span class="k">assert</span> <span class="n">m2</span><span class="o">.</span><span class="n">sk_x509_extension_num</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">stack</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pystack</span><span class="p">)</span>
<span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pystack</span><span class="p">)</span>
- <span class="k">def</span> <span class="nf">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">idx</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">idx</span><span class="p">):</span>
<span class="c1"># type: (int) -&gt; X509_Extension</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">pystack</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span>
- <span class="k">def</span> <span class="nf">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">return</span> <span class="nb">iter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pystack</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">_ptr</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
@@ -237,7 +256,7 @@
<span class="n">m2_x509_name_entry_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_name_entry_free</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">x509_name_entry</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x509_name_entry</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (bytes, int) -&gt; None</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> :param x509_name_entry: this should be OpenSSL X509_NAME_ENTRY binary</span>
@@ -246,7 +265,7 @@
<span class="bp">self</span><span class="o">.</span><span class="n">x509_name_entry</span> <span class="o">=</span> <span class="n">x509_name_entry</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="n">_pyfree</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</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;_pyfree&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_x509_name_entry_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x509_name_entry</span><span class="p">)</span>
@@ -319,7 +338,7 @@
<span class="n">m2_x509_name_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_name_free</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">x509_name</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x509_name</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (bytes, int) -&gt; None</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> :param x509_name: this should be OpenSSL X509_NAME binary</span>
@@ -333,18 +352,18 @@
<span class="bp">self</span><span class="o">.</span><span class="n">x509_name</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_name_new</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="mi">1</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</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;_pyfree&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_x509_name_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x509_name</span><span class="p">)</span>
- <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; bytes</span>
<span class="k">assert</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_name_type_check</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x509_name</span><span class="p">),</span> \
<span class="s2">&quot;&#39;x509_name&#39; type error&quot;</span>
<span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_name_oneline</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x509_name</span><span class="p">)</span>
- <span class="k">def</span> <span class="nf">__getattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">attr</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__getattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">attr</span><span class="p">):</span>
<span class="c1"># type: (str) -&gt; str</span>
<span class="k">if</span> <span class="n">attr</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">nid</span><span class="p">:</span>
<span class="k">assert</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_name_type_check</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x509_name</span><span class="p">),</span> \
@@ -356,7 +375,7 @@
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">attr</span><span class="p">)</span>
- <span class="k">def</span> <span class="nf">__setattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">attr</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__setattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">attr</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
<span class="c1"># type: (str, AnyStr) -&gt; int</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> :return: 1 for success of 0 if an error occurred.</span>
@@ -369,17 +388,17 @@
<span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">[</span><span class="n">attr</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
- <span class="k">def</span> <span class="nf">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; int</span>
<span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_name_entry_count</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x509_name</span><span class="p">)</span>
- <span class="k">def</span> <span class="nf">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">idx</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">idx</span><span class="p">):</span>
<span class="c1"># type: (int) -&gt; X509_Name_Entry</span>
<span class="k">if</span> <span class="ow">not</span> <span class="mi">0</span> <span class="o">&lt;=</span> <span class="n">idx</span> <span class="o">&lt;</span> <span class="bp">self</span><span class="o">.</span><span class="n">entry_count</span><span class="p">():</span>
<span class="k">raise</span> <span class="ne">IndexError</span><span class="p">(</span><span class="s2">&quot;index out of range&quot;</span><span class="p">)</span>
<span class="k">return</span> <span class="n">X509_Name_Entry</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">x509_name_get_entry</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x509_name</span><span class="p">,</span> <span class="n">idx</span><span class="p">))</span>
- <span class="k">def</span> <span class="nf">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">entry_count</span><span class="p">()):</span>
<span class="k">yield</span> <span class="bp">self</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
@@ -482,7 +501,7 @@
<span class="n">m2_x509_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_free</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">x509</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x509</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (Optional[bytes], int) -&gt; None</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> :param x509: binary representation of</span>
@@ -497,7 +516,7 @@
<span class="bp">self</span><span class="o">.</span><span class="n">x509</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_new</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="mi">1</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</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;_pyfree&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_x509_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x509</span><span class="p">)</span>
@@ -908,7 +927,7 @@
<span class="n">m2_x509_store_ctx_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_store_ctx_free</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">x509_store_ctx</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x509_store_ctx</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (bytes, int) -&gt; None</span>
<span class="sd">&quot;&quot;&quot;</span>
@@ -918,7 +937,7 @@
<span class="bp">self</span><span class="o">.</span><span class="n">ctx</span> <span class="o">=</span> <span class="n">x509_store_ctx</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="n">_pyfree</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="k">def</span> <span class="fm">__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"># see BIO.py - unbalanced __init__ / __del__</span>
<span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;_pyfree&#39;</span><span class="p">):</span>
@@ -972,7 +991,7 @@
<span class="n">m2_x509_store_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_store_free</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">store</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">store</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (Optional[bytes], int) -&gt; None</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> :param store: binary data for OpenSSL X509_STORE_CTX type.</span>
@@ -984,7 +1003,7 @@
<span class="bp">self</span><span class="o">.</span><span class="n">store</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_store_new</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="mi">1</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</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;_pyfree&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_x509_store_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">store</span><span class="p">)</span>
@@ -1036,7 +1055,22 @@
<span class="k">raise</span> <span class="n">X509Error</span><span class="p">(</span><span class="s2">&quot;set_verify(): callback is not callable&quot;</span><span class="p">)</span>
<span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_store_set_verify_cb</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">store</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span></div>
- <span class="n">add_cert</span> <span class="o">=</span> <span class="n">add_x509</span></div>
+ <span class="n">add_cert</span> <span class="o">=</span> <span class="n">add_x509</span>
+
+<div class="viewcode-block" id="X509_Store.set_flags"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.X509.X509_Store.set_flags">[docs]</a> <span class="k">def</span> <span class="nf">set_flags</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">flags</span><span class="p">):</span>
+ <span class="c1"># type: (int) -&gt; int</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Set the verification flags for the X509Store</span>
+<span class="sd"> Wrapper over OpenSSL X509_STORE_set_flags()</span>
+
+<span class="sd"> :param flags: `VERIFICATION FLAGS` section of the</span>
+<span class="sd"> X509_VERIFY_PARAM_set_flags man page has</span>
+<span class="sd"> a complete description of values the flags</span>
+<span class="sd"> parameter can take.</span>
+<span class="sd"> Their M2Crypto equivalent is transformed following</span>
+<span class="sd"> the pattern: &quot;X509_V_FLAG_XYZ&quot; -&gt; lowercase(&quot;VERIFY_XYZ&quot;)</span>
+<span class="sd"> &quot;&quot;&quot;</span>
+ <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_store_set_flags</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">store</span><span class="p">,</span> <span class="n">flags</span><span class="p">)</span></div></div>
<div class="viewcode-block" id="X509_Stack"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.X509.X509_Stack">[docs]</a><span class="k">class</span> <span class="nc">X509_Stack</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
@@ -1053,7 +1087,7 @@
<span class="n">m2_sk_x509_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">sk_x509_free</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">stack</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">_pyfree_x509</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stack</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">_pyfree_x509</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (bytes, int, int) -&gt; None</span>
<span class="k">if</span> <span class="n">stack</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">stack</span> <span class="o">=</span> <span class="n">stack</span>
@@ -1068,21 +1102,21 @@
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="mi">1</span>
<span class="bp">self</span><span class="o">.</span><span class="n">pystack</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1"># This must be kept in sync with self.stack</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</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;_pyfree&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_sk_x509_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">stack</span><span class="p">)</span>
- <span class="k">def</span> <span class="nf">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; int</span>
<span class="k">assert</span> <span class="n">m2</span><span class="o">.</span><span class="n">sk_x509_num</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">stack</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pystack</span><span class="p">)</span>
<span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pystack</span><span class="p">)</span>
- <span class="k">def</span> <span class="nf">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">idx</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">idx</span><span class="p">):</span>
<span class="c1"># type: (int) -&gt; X509</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">pystack</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span>
- <span class="k">def</span> <span class="nf">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">return</span> <span class="nb">iter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pystack</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">_ptr</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
@@ -1144,7 +1178,7 @@
<span class="n">m2_x509_req_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_req_free</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">req</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">req</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (Optional[int], int) -&gt; None</span>
<span class="k">if</span> <span class="n">req</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">req</span> <span class="o">=</span> <span class="n">req</span>
@@ -1154,7 +1188,7 @@
<span class="n">m2</span><span class="o">.</span><span class="n">x509_req_set_version</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">req</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="mi">1</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</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;_pyfree&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_x509_req_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">req</span><span class="p">)</span>
@@ -1380,7 +1414,7 @@
<span class="n">m2_x509_crl_free</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_crl_free</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">crl</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">crl</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">_pyfree</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="c1"># type: (Optional[bytes], int) -&gt; None</span>
<span class="sd">&quot;&quot;&quot;</span>
@@ -1394,7 +1428,7 @@
<span class="bp">self</span><span class="o">.</span><span class="n">crl</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">x509_crl_new</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_pyfree</span> <span class="o">=</span> <span class="mi">1</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1"># type: () -&gt; None</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;_pyfree&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">m2_x509_crl_free</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">crl</span><span class="p">)</span>
@@ -1456,17 +1490,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -1483,7 +1515,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/ftpslib.html b/doc/html/_modules/M2Crypto/ftpslib.html
index b0db673..426695b 100644
--- a/doc/html/_modules/M2Crypto/ftpslib.html
+++ b/doc/html/_modules/M2Crypto/ftpslib.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.ftpslib &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -33,7 +32,7 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.ftpslib</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
<span class="sd">&quot;&quot;&quot;M2Crypto client-side FTP/TLS.</span>
@@ -70,17 +69,17 @@
<span class="c1"># We want to import whole stdlib ftplib objects, because our users want</span>
<span class="c1"># to use them.</span>
-<span class="kn">from</span> <span class="nn">ftplib</span> <span class="k">import</span> <span class="o">*</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">ftplib</span> <span class="kn">import</span> <span class="o">*</span> <span class="c1"># noqa</span>
<span class="c1"># M2Crypto</span>
-<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="k">import</span> <span class="n">SSL</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">SSL</span>
<div class="viewcode-block" id="FTP_TLS"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.ftpslib.FTP_TLS">[docs]</a><span class="k">class</span> <span class="nc">FTP_TLS</span><span class="p">(</span><span class="n">FTP</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Python OO interface to client-side FTP/TLS.&quot;&quot;&quot;</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">host</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">ssl_ctx</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">host</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">ssl_ctx</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Initialise the client. If &#39;host&#39; is supplied, connect to it.&quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">ssl_ctx</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ssl_ctx</span> <span class="o">=</span> <span class="n">ssl_ctx</span>
@@ -156,17 +155,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -183,7 +180,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/httpslib.html b/doc/html/_modules/M2Crypto/httpslib.html
index 93c1cc5..c6437cb 100644
--- a/doc/html/_modules/M2Crypto/httpslib.html
+++ b/doc/html/_modules/M2Crypto/httpslib.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.httpslib &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -33,7 +32,7 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.httpslib</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
<span class="kn">import</span> <span class="nn">warnings</span>
@@ -44,13 +43,12 @@
<span class="kn">import</span> <span class="nn">base64</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">SSL</span><span class="p">,</span> <span class="n">py27plus</span><span class="p">,</span> <span class="n">six</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.six.moves.urllib_parse</span> <span class="k">import</span> <span class="n">urlsplit</span><span class="p">,</span> <span class="n">urlunsplit</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.six.moves.http_client</span> <span class="k">import</span> <span class="o">*</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">SSL</span><span class="p">,</span> <span class="n">six</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.six.moves.urllib_parse</span> <span class="kn">import</span> <span class="n">urlsplit</span><span class="p">,</span> <span class="n">urlunsplit</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.six.moves.http_client</span> <span class="kn">import</span> <span class="o">*</span> <span class="c1"># noqa</span>
<span class="c1"># This is not imported with just &#39;*&#39;</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.six.moves.http_client</span> <span class="k">import</span> <span class="n">HTTPS_PORT</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="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.six.moves.http_client</span> <span class="kn">import</span> <span class="n">HTTPS_PORT</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">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">Optional</span> <span class="c1"># noqa</span>
<div class="viewcode-block" id="HTTPSConnection"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.httpslib.HTTPSConnection">[docs]</a><span class="k">class</span> <span class="nc">HTTPSConnection</span><span class="p">(</span><span class="n">HTTPConnection</span><span class="p">):</span>
@@ -61,7 +59,7 @@
<span class="n">default_port</span> <span class="o">=</span> <span class="n">HTTPS_PORT</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">host</span><span class="p">,</span> <span class="n">port</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">strict</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">ssl</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">host</span><span class="p">,</span> <span class="n">port</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">strict</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">ssl</span><span class="p">):</span>
<span class="c1"># type: (str, Optional[int], Optional[bool], **Any) -&gt; None</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Represents one transaction with an HTTP server over the SSL</span>
@@ -168,7 +166,7 @@
<span class="n">_AUTH_HEADER</span> <span class="o">=</span> <span class="s2">&quot;Proxy-Authorization&quot;</span>
<span class="n">_UA_HEADER</span> <span class="o">=</span> <span class="s2">&quot;User-Agent&quot;</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">host</span><span class="p">,</span> <span class="n">port</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">strict</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">username</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">host</span><span class="p">,</span> <span class="n">port</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">strict</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">username</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
<span class="n">password</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">ssl</span><span class="p">):</span>
<span class="c1"># type: (str, Optional[int], Optional[bool], Optional[AnyStr], Optional[AnyStr], **Any) -&gt; None</span>
<span class="sd">&quot;&quot;&quot;</span>
@@ -334,17 +332,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -361,7 +357,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/m2urllib.html b/doc/html/_modules/M2Crypto/m2urllib.html
index bb1f8cb..3ddad86 100644
--- a/doc/html/_modules/M2Crypto/m2urllib.html
+++ b/doc/html/_modules/M2Crypto/m2urllib.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.m2urllib &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -33,7 +32,7 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.m2urllib</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">print_function</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">print_function</span>
<span class="sd">&quot;&quot;&quot;M2Crypto enhancement to Python&#39;s urllib for handling</span>
<span class="sd">&#39;https&#39; url&#39;s.</span>
@@ -46,19 +45,18 @@
<span class="kn">import</span> <span class="nn">base64</span>
<span class="kn">import</span> <span class="nn">warnings</span>
-<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="k">import</span> <span class="n">SSL</span><span class="p">,</span> <span class="n">httpslib</span><span class="p">,</span> <span class="n">six</span><span class="p">,</span> <span class="n">util</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">SSL</span><span class="p">,</span> <span class="n">httpslib</span><span class="p">,</span> <span class="n">six</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.six.moves.urllib_response</span> <span class="k">import</span> <span class="n">addinfourl</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="kn">from</span> <span class="nn">typing</span> <span class="k">import</span> <span class="n">AnyStr</span><span class="p">,</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.six.moves.urllib_response</span> <span class="kn">import</span> <span class="n">addinfourl</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">AnyStr</span><span class="p">,</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
<span class="c1"># six.moves doesn&#39;t support star imports</span>
<span class="k">if</span> <span class="n">six</span><span class="o">.</span><span class="n">PY3</span><span class="p">:</span>
- <span class="kn">from</span> <span class="nn">urllib.request</span> <span class="k">import</span> <span class="o">*</span> <span class="c1"># noqa for other modules to import</span>
- <span class="kn">from</span> <span class="nn">urllib.parse</span> <span class="k">import</span> <span class="o">*</span> <span class="c1"># noqa for other modules to import</span>
- <span class="kn">from</span> <span class="nn">urllib.error</span> <span class="k">import</span> <span class="o">*</span> <span class="c1"># noqa for other modules to import</span>
+ <span class="kn">from</span> <span class="nn">urllib.request</span> <span class="kn">import</span> <span class="o">*</span> <span class="c1"># noqa for other modules to import</span>
+ <span class="kn">from</span> <span class="nn">urllib.parse</span> <span class="kn">import</span> <span class="o">*</span> <span class="c1"># noqa for other modules to import</span>
+ <span class="kn">from</span> <span class="nn">urllib.error</span> <span class="kn">import</span> <span class="o">*</span> <span class="c1"># noqa for other modules to import</span>
<span class="k">else</span><span class="p">:</span>
- <span class="kn">from</span> <span class="nn">urllib</span> <span class="k">import</span> <span class="o">*</span> <span class="c1"># noqa</span>
+ <span class="kn">from</span> <span class="nn">urllib</span> <span class="kn">import</span> <span class="o">*</span> <span class="c1"># noqa</span>
<div class="viewcode-block" id="open_https"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.m2urllib.open_https">[docs]</a><span class="k">def</span> <span class="nf">open_https</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">url</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">ssl_context</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
@@ -186,17 +184,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -213,7 +209,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/m2urllib2.html b/doc/html/_modules/M2Crypto/m2urllib2.html
index 23bf5f2..deaace3 100644
--- a/doc/html/_modules/M2Crypto/m2urllib2.html
+++ b/doc/html/_modules/M2Crypto/m2urllib2.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.m2urllib2 &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -33,7 +32,7 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.m2urllib2</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">M2Crypto enhancement to Python&#39;s urllib2 for handling</span>
@@ -50,19 +49,18 @@
<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">SSL</span><span class="p">,</span> <span class="n">httpslib</span><span class="p">,</span> <span class="n">six</span><span class="p">,</span> <span class="n">util</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">SSL</span><span class="p">,</span> <span class="n">httpslib</span><span class="p">,</span> <span class="n">six</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.six.moves.urllib_parse</span> <span class="k">import</span> <span class="n">urldefrag</span><span class="p">,</span> <span class="n">urlparse</span> <span class="k">as</span> <span class="n">url_parse</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.six.moves.urllib_response</span> <span class="k">import</span> <span class="n">addinfourl</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="kn">from</span> <span class="nn">typing</span> <span class="k">import</span> <span class="n">List</span><span class="p">,</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.six.moves.urllib_parse</span> <span class="kn">import</span> <span class="n">urldefrag</span><span class="p">,</span> <span class="n">urlparse</span> <span class="k">as</span> <span class="n">url_parse</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.six.moves.urllib_response</span> <span class="kn">import</span> <span class="n">addinfourl</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Optional</span> <span class="c1"># noqa</span>
<span class="c1"># six.moves doesn&#39;t support star imports</span>
<span class="k">if</span> <span class="n">six</span><span class="o">.</span><span class="n">PY3</span><span class="p">:</span>
- <span class="kn">from</span> <span class="nn">urllib.request</span> <span class="k">import</span> <span class="o">*</span> <span class="c1"># noqa other modules want to import</span>
- <span class="kn">from</span> <span class="nn">urllib.error</span> <span class="k">import</span> <span class="o">*</span> <span class="c1"># noqa other modules want to import</span>
+ <span class="kn">from</span> <span class="nn">urllib.request</span> <span class="kn">import</span> <span class="o">*</span> <span class="c1"># noqa other modules want to import</span>
+ <span class="kn">from</span> <span class="nn">urllib.error</span> <span class="kn">import</span> <span class="o">*</span> <span class="c1"># noqa other modules want to import</span>
<span class="k">else</span><span class="p">:</span>
- <span class="kn">from</span> <span class="nn">urllib2</span> <span class="k">import</span> <span class="o">*</span> <span class="c1"># noqa</span>
+ <span class="kn">from</span> <span class="nn">urllib2</span> <span class="kn">import</span> <span class="o">*</span> <span class="c1"># noqa</span>
<span class="k">try</span><span class="p">:</span>
@@ -87,7 +85,7 @@
<div class="viewcode-block" id="HTTPSHandler"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.m2urllib2.HTTPSHandler">[docs]</a><span class="k">class</span> <span class="nc">HTTPSHandler</span><span class="p">(</span><span class="n">AbstractHTTPHandler</span><span class="p">):</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">ssl_context</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ssl_context</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="c1"># type: (SSL.Context) -&gt; None</span>
<span class="n">AbstractHTTPHandler</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
@@ -251,17 +249,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -278,7 +274,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/m2xmlrpclib.html b/doc/html/_modules/M2Crypto/m2xmlrpclib.html
index fb3834f..2ef4060 100644
--- a/doc/html/_modules/M2Crypto/m2xmlrpclib.html
+++ b/doc/html/_modules/M2Crypto/m2xmlrpclib.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.m2xmlrpclib &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -33,7 +32,7 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.m2xmlrpclib</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
<span class="sd">&quot;&quot;&quot;M2Crypto enhancement to xmlrpclib.</span>
@@ -43,16 +42,15 @@
<span class="kn">import</span> <span class="nn">M2Crypto</span>
-<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="k">import</span> <span class="n">SSL</span><span class="p">,</span> <span class="n">httpslib</span><span class="p">,</span> <span class="n">m2urllib</span><span class="p">,</span> <span class="n">six</span><span class="p">,</span> <span class="n">util</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="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">Optional</span> <span class="c1"># noqa</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">SSL</span><span class="p">,</span> <span class="n">httpslib</span><span class="p">,</span> <span class="n">m2urllib</span><span class="p">,</span> <span class="n">six</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">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">Optional</span> <span class="c1"># noqa</span>
-<span class="kn">from</span> <span class="nn">M2Crypto.six.moves.xmlrpc_client</span> <span class="k">import</span> <span class="n">ProtocolError</span><span class="p">,</span> <span class="n">Transport</span>
+<span class="kn">from</span> <span class="nn">M2Crypto.six.moves.xmlrpc_client</span> <span class="kn">import</span> <span class="n">ProtocolError</span><span class="p">,</span> <span class="n">Transport</span>
<span class="c1"># six.moves doesn&#39;t support star imports</span>
<span class="k">if</span> <span class="n">six</span><span class="o">.</span><span class="n">PY3</span><span class="p">:</span>
- <span class="kn">from</span> <span class="nn">xmlrpc.client</span> <span class="k">import</span> <span class="o">*</span> <span class="c1"># noqa</span>
+ <span class="kn">from</span> <span class="nn">xmlrpc.client</span> <span class="kn">import</span> <span class="o">*</span> <span class="c1"># noqa</span>
<span class="k">else</span><span class="p">:</span>
- <span class="kn">from</span> <span class="nn">xmlrpclib</span> <span class="k">import</span> <span class="o">*</span> <span class="c1"># noqa</span>
+ <span class="kn">from</span> <span class="nn">xmlrpclib</span> <span class="kn">import</span> <span class="o">*</span> <span class="c1"># noqa</span>
<span class="n">__version__</span> <span class="o">=</span> <span class="n">M2Crypto</span><span class="o">.</span><span class="n">__version__</span>
@@ -62,7 +60,7 @@
<span class="n">user_agent</span> <span class="o">=</span> <span class="s2">&quot;M2Crypto_XMLRPC/</span><span class="si">%s</span><span class="s2"> - </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">__version__</span><span class="p">,</span>
<span class="n">Transport</span><span class="o">.</span><span class="n">user_agent</span><span class="p">)</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">ssl_context</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ssl_context</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
<span class="c1"># type: (Optional[SSL.Context], *Any, **Any) -&gt; None</span>
<span class="n">Transport</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">)</span>
<span class="k">if</span> <span class="n">ssl_context</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
@@ -101,17 +99,17 @@
<span class="k">if</span> <span class="n">request_body</span><span class="p">:</span>
<span class="n">h</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="n">request_body</span><span class="p">)</span>
- <span class="n">errcode</span><span class="p">,</span> <span class="n">errmsg</span><span class="p">,</span> <span class="n">headers</span> <span class="o">=</span> <span class="n">h</span><span class="o">.</span><span class="n">getreply</span><span class="p">()</span>
+ <span class="n">response</span> <span class="o">=</span> <span class="n">h</span><span class="o">.</span><span class="n">getresponse</span><span class="p">()</span>
- <span class="k">if</span> <span class="n">errcode</span> <span class="o">!=</span> <span class="mi">200</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">response</span><span class="o">.</span><span class="n">status</span> <span class="o">!=</span> <span class="mi">200</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">ProtocolError</span><span class="p">(</span>
<span class="n">host</span> <span class="o">+</span> <span class="n">handler</span><span class="p">,</span>
- <span class="n">errcode</span><span class="p">,</span> <span class="n">errmsg</span><span class="p">,</span>
- <span class="n">headers</span>
+ <span class="n">response</span><span class="o">.</span><span class="n">status</span><span class="p">,</span> <span class="n">response</span><span class="o">.</span><span class="n">reason</span><span class="p">,</span>
+ <span class="n">response</span><span class="o">.</span><span class="n">getheaders</span><span class="p">()</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">verbose</span> <span class="o">=</span> <span class="n">verbose</span>
- <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parse_response</span><span class="p">(</span><span class="n">h</span><span class="o">.</span><span class="n">getfile</span><span class="p">())</span></div></div>
+ <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parse_response</span><span class="p">(</span><span class="n">response</span><span class="p">)</span></div></div>
</pre></div>
</div>
@@ -144,17 +142,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -171,7 +167,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/threading.html b/doc/html/_modules/M2Crypto/threading.html
index 7074d6c..5069ea6 100644
--- a/doc/html/_modules/M2Crypto/threading.html
+++ b/doc/html/_modules/M2Crypto/threading.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>M2Crypto.threading &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -33,7 +32,7 @@
<div class="body" role="main">
<h1>Source code for M2Crypto.threading</h1><div class="highlight"><pre>
-<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span>
+<span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">M2Crypto threading support, required for multithreaded applications.</span>
@@ -41,7 +40,7 @@
<span class="sd">Copyright (c) 1999-2003 Ng Pheng Siong. All rights reserved.&quot;&quot;&quot;</span>
<span class="c1"># M2Crypto</span>
-<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="k">import</span> <span class="n">m2</span>
+<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">m2</span>
<div class="viewcode-block" id="init"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.threading.init">[docs]</a><span class="k">def</span> <span class="nf">init</span><span class="p">():</span>
@@ -90,17 +89,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -117,7 +114,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/_modules/M2Crypto/util.html b/doc/html/_modules/M2Crypto/util.html
index c92cf20..134f261 100644
--- a/doc/html/_modules/M2Crypto/util.html
+++ b/doc/html/_modules/M2Crypto/util.html
@@ -46,12 +46,11 @@
<span class="sd">&quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">binascii</span>
-<span class="kn">import</span> <span class="nn">io</span>
<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">import</span> <span class="nn">sys</span>
<span class="kn">from</span> <span class="nn">M2Crypto</span> <span class="kn">import</span> <span class="n">m2</span><span class="p">,</span> <span class="n">six</span>
-<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Any</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="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Any</span><span class="p">,</span> <span class="n">Optional</span><span class="p">,</span> <span class="n">TextIO</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="c1"># see https://github.com/python/typeshed/issues/222</span>
<span class="n">AddrType</span> <span class="o">=</span> <span class="n">Union</span><span class="p">[</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">int</span><span class="p">],</span> <span class="nb">str</span><span class="p">]</span>
@@ -90,7 +89,7 @@
<div class="viewcode-block" id="genparam_callback"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.util.genparam_callback">[docs]</a><span class="k">def</span> <span class="nf">genparam_callback</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">out</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">):</span>
- <span class="c1"># type: (int, Any, io.IOBase) -&gt; None</span>
+ <span class="c1"># type: (int, Any, TextIO) -&gt; None</span>
<span class="n">ch</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;.&#39;</span><span class="p">,</span> <span class="s1">&#39;+&#39;</span><span class="p">,</span> <span class="s1">&#39;*&#39;</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">]</span>
<span class="n">out</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">ch</span><span class="p">[</span><span class="n">p</span><span class="p">])</span>
<span class="n">out</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span></div>
diff --git a/doc/html/_modules/index.html b/doc/html/_modules/index.html
index f6b2fe8..a843a44 100644
--- a/doc/html/_modules/index.html
+++ b/doc/html/_modules/index.html
@@ -32,15 +32,41 @@
<div class="body" role="main">
<h1>All modules for which code is available</h1>
-<ul><li><a href="M2Crypto/EVP.html">M2Crypto.EVP</a></li>
+<ul><li><a href="M2Crypto/ASN1.html">M2Crypto.ASN1</a></li>
+<li><a href="M2Crypto/AuthCookie.html">M2Crypto.AuthCookie</a></li>
+<li><a href="M2Crypto/BIO.html">M2Crypto.BIO</a></li>
+<li><a href="M2Crypto/BN.html">M2Crypto.BN</a></li>
+<li><a href="M2Crypto/DH.html">M2Crypto.DH</a></li>
+<li><a href="M2Crypto/DSA.html">M2Crypto.DSA</a></li>
+<li><a href="M2Crypto/EC.html">M2Crypto.EC</a></li>
+<li><a href="M2Crypto/EVP.html">M2Crypto.EVP</a></li>
+<li><a href="M2Crypto/Engine.html">M2Crypto.Engine</a></li>
<li><a href="M2Crypto/Err.html">M2Crypto.Err</a></li>
+<li><a href="M2Crypto/RC4.html">M2Crypto.RC4</a></li>
<li><a href="M2Crypto/RSA.html">M2Crypto.RSA</a></li>
+<li><a href="M2Crypto/Rand.html">M2Crypto.Rand</a></li>
+<li><a href="M2Crypto/SMIME.html">M2Crypto.SMIME</a></li>
+<li><a href="M2Crypto/SSL.html">M2Crypto.SSL</a></li>
+<ul><li><a href="M2Crypto/SSL/Checker.html">M2Crypto.SSL.Checker</a></li>
<li><a href="M2Crypto/SSL/Cipher.html">M2Crypto.SSL.Cipher</a></li>
+<li><a href="M2Crypto/SSL/Connection.html">M2Crypto.SSL.Connection</a></li>
<li><a href="M2Crypto/SSL/Context.html">M2Crypto.SSL.Context</a></li>
+<li><a href="M2Crypto/SSL/SSLServer.html">M2Crypto.SSL.SSLServer</a></li>
<li><a href="M2Crypto/SSL/Session.html">M2Crypto.SSL.Session</a></li>
+<li><a href="M2Crypto/SSL/TwistedProtocolWrapper.html">M2Crypto.SSL.TwistedProtocolWrapper</a></li>
<li><a href="M2Crypto/SSL/cb.html">M2Crypto.SSL.cb</a></li>
+<li><a href="M2Crypto/SSL/ssl_dispatcher.html">M2Crypto.SSL.ssl_dispatcher</a></li>
+<li><a href="M2Crypto/SSL/timeout.html">M2Crypto.SSL.timeout</a></li>
+</ul><li><a href="M2Crypto/X509.html">M2Crypto.X509</a></li>
+<li><a href="M2Crypto/_m2crypto.html">M2Crypto._m2crypto</a></li>
+<li><a href="M2Crypto/ftpslib.html">M2Crypto.ftpslib</a></li>
+<li><a href="M2Crypto/httpslib.html">M2Crypto.httpslib</a></li>
+<li><a href="M2Crypto/m2urllib.html">M2Crypto.m2urllib</a></li>
+<li><a href="M2Crypto/m2urllib2.html">M2Crypto.m2urllib2</a></li>
+<li><a href="M2Crypto/m2xmlrpclib.html">M2Crypto.m2xmlrpclib</a></li>
+<li><a href="M2Crypto/threading.html">M2Crypto.threading</a></li>
<li><a href="M2Crypto/util.html">M2Crypto.util</a></li>
-<li><a href="_m2crypto.html">_m2crypto</a></li>
+<li><a href="urllib/request.html">urllib.request</a></li>
</ul>
</div>
diff --git a/doc/html/_modules/urllib/request.html b/doc/html/_modules/urllib/request.html
index ee22b9d..12c0509 100644
--- a/doc/html/_modules/urllib/request.html
+++ b/doc/html/_modules/urllib/request.html
@@ -1,19 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>urllib.request &#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" 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>
+ <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
@@ -134,13 +133,13 @@
<span class="kn">import</span> <span class="nn">warnings</span>
-<span class="kn">from</span> <span class="nn">urllib.error</span> <span class="k">import</span> <span class="n">URLError</span><span class="p">,</span> <span class="n">HTTPError</span><span class="p">,</span> <span class="n">ContentTooShortError</span>
-<span class="kn">from</span> <span class="nn">urllib.parse</span> <span class="k">import</span> <span class="p">(</span>
+<span class="kn">from</span> <span class="nn">urllib.error</span> <span class="kn">import</span> <span class="n">URLError</span><span class="p">,</span> <span class="n">HTTPError</span><span class="p">,</span> <span class="n">ContentTooShortError</span>
+<span class="kn">from</span> <span class="nn">urllib.parse</span> <span class="kn">import</span> <span class="p">(</span>
<span class="n">urlparse</span><span class="p">,</span> <span class="n">urlsplit</span><span class="p">,</span> <span class="n">urljoin</span><span class="p">,</span> <span class="n">unwrap</span><span class="p">,</span> <span class="n">quote</span><span class="p">,</span> <span class="n">unquote</span><span class="p">,</span>
- <span class="n">splittype</span><span class="p">,</span> <span class="n">splithost</span><span class="p">,</span> <span class="n">splitport</span><span class="p">,</span> <span class="n">splituser</span><span class="p">,</span> <span class="n">splitpasswd</span><span class="p">,</span>
- <span class="n">splitattr</span><span class="p">,</span> <span class="n">splitquery</span><span class="p">,</span> <span class="n">splitvalue</span><span class="p">,</span> <span class="n">splittag</span><span class="p">,</span> <span class="n">to_bytes</span><span class="p">,</span>
+ <span class="n">_splittype</span><span class="p">,</span> <span class="n">_splithost</span><span class="p">,</span> <span class="n">_splitport</span><span class="p">,</span> <span class="n">_splituser</span><span class="p">,</span> <span class="n">_splitpasswd</span><span class="p">,</span>
+ <span class="n">_splitattr</span><span class="p">,</span> <span class="n">_splitquery</span><span class="p">,</span> <span class="n">_splitvalue</span><span class="p">,</span> <span class="n">_splittag</span><span class="p">,</span> <span class="n">_to_bytes</span><span class="p">,</span>
<span class="n">unquote_to_bytes</span><span class="p">,</span> <span class="n">urlunparse</span><span class="p">)</span>
-<span class="kn">from</span> <span class="nn">urllib.response</span> <span class="k">import</span> <span class="n">addinfourl</span><span class="p">,</span> <span class="n">addclosehook</span>
+<span class="kn">from</span> <span class="nn">urllib.response</span> <span class="kn">import</span> <span class="n">addinfourl</span><span class="p">,</span> <span class="n">addclosehook</span>
<span class="c1"># check for SSL</span>
<span class="k">try</span><span class="p">:</span>
@@ -277,7 +276,7 @@
<span class="sd"> Returns a tuple containing the path to the newly created</span>
<span class="sd"> data file as well as the resulting HTTPMessage object.</span>
<span class="sd"> &quot;&quot;&quot;</span>
- <span class="n">url_type</span><span class="p">,</span> <span class="n">path</span> <span class="o">=</span> <span class="n">splittype</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
+ <span class="n">url_type</span><span class="p">,</span> <span class="n">path</span> <span class="o">=</span> <span class="n">_splittype</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
<span class="k">with</span> <span class="n">contextlib</span><span class="o">.</span><span class="n">closing</span><span class="p">(</span><span class="n">urlopen</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">data</span><span class="p">))</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
<span class="n">headers</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">info</span><span class="p">()</span>
@@ -357,7 +356,7 @@
<span class="k">class</span> <span class="nc">Request</span><span class="p">:</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">url</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">headers</span><span class="o">=</span><span class="p">{},</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">url</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">headers</span><span class="o">=</span><span class="p">{},</span>
<span class="n">origin_req_host</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">unverifiable</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
<span class="n">method</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">full_url</span> <span class="o">=</span> <span class="n">url</span>
@@ -385,7 +384,7 @@
<span class="k">def</span> <span class="nf">full_url</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">url</span><span class="p">):</span>
<span class="c1"># unwrap(&#39;&lt;URL:type://host/path&gt;&#39;) --&gt; &#39;type://host/path&#39;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_full_url</span> <span class="o">=</span> <span class="n">unwrap</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">_full_url</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">fragment</span> <span class="o">=</span> <span class="n">splittag</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_full_url</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">_full_url</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">fragment</span> <span class="o">=</span> <span class="n">_splittag</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_full_url</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_parse</span><span class="p">()</span>
<span class="nd">@full_url</span><span class="o">.</span><span class="n">deleter</span>
@@ -413,10 +412,10 @@
<span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="kc">None</span>
<span class="k">def</span> <span class="nf">_parse</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">type</span><span class="p">,</span> <span class="n">rest</span> <span class="o">=</span> <span class="n">splittype</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_full_url</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">type</span><span class="p">,</span> <span class="n">rest</span> <span class="o">=</span> <span class="n">_splittype</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_full_url</span><span class="p">)</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;unknown url type: </span><span class="si">%r</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">full_url</span><span class="p">)</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">host</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">selector</span> <span class="o">=</span> <span class="n">splithost</span><span class="p">(</span><span class="n">rest</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">host</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">selector</span> <span class="o">=</span> <span class="n">_splithost</span><span class="p">(</span><span class="n">rest</span><span class="p">)</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">host</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="n">unquote</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">host</span><span class="p">)</span>
@@ -461,12 +460,11 @@
<span class="bp">self</span><span class="o">.</span><span class="n">unredirected_hdrs</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">header_name</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">header_items</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="n">hdrs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">unredirected_hdrs</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
- <span class="n">hdrs</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">headers</span><span class="p">)</span>
+ <span class="n">hdrs</span> <span class="o">=</span> <span class="p">{</span><span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">unredirected_hdrs</span><span class="p">,</span> <span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">headers</span><span class="p">}</span>
<span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="n">hdrs</span><span class="o">.</span><span class="n">items</span><span class="p">())</span>
<span class="k">class</span> <span class="nc">OpenerDirector</span><span class="p">:</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="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">client_version</span> <span class="o">=</span> <span class="s2">&quot;Python-urllib/</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">__version__</span>
<span class="bp">self</span><span class="o">.</span><span class="n">addheaders</span> <span class="o">=</span> <span class="p">[(</span><span class="s1">&#39;User-agent&#39;</span><span class="p">,</span> <span class="n">client_version</span><span class="p">)]</span>
<span class="c1"># self.handlers is retained only for backward compatibility</span>
@@ -557,6 +555,7 @@
<span class="n">meth</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">processor</span><span class="p">,</span> <span class="n">meth_name</span><span class="p">)</span>
<span class="n">req</span> <span class="o">=</span> <span class="n">meth</span><span class="p">(</span><span class="n">req</span><span class="p">)</span>
+ <span class="n">sys</span><span class="o">.</span><span class="n">audit</span><span class="p">(</span><span class="s1">&#39;urllib.Request&#39;</span><span class="p">,</span> <span class="n">req</span><span class="o">.</span><span class="n">full_url</span><span class="p">,</span> <span class="n">req</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">req</span><span class="o">.</span><span class="n">headers</span><span class="p">,</span> <span class="n">req</span><span class="o">.</span><span class="n">get_method</span><span class="p">())</span>
<span class="n">response</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_open</span><span class="p">(</span><span class="n">req</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span>
<span class="c1"># post-process response</span>
@@ -653,7 +652,7 @@
<span class="c1"># Only exists for backwards compatibility</span>
<span class="k">pass</span>
- <span class="k">def</span> <span class="nf">__lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
<span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="s2">&quot;handler_order&quot;</span><span class="p">):</span>
<span class="c1"># Try to preserve the old behavior of having custom classes</span>
<span class="c1"># inserted after default ones (works only for custom user</span>
@@ -803,7 +802,7 @@
<span class="sd"> According to RFC 3986, having an authority component means the URL must</span>
<span class="sd"> have two slashes after the scheme.</span>
<span class="sd"> &quot;&quot;&quot;</span>
- <span class="n">scheme</span><span class="p">,</span> <span class="n">r_scheme</span> <span class="o">=</span> <span class="n">splittype</span><span class="p">(</span><span class="n">proxy</span><span class="p">)</span>
+ <span class="n">scheme</span><span class="p">,</span> <span class="n">r_scheme</span> <span class="o">=</span> <span class="n">_splittype</span><span class="p">(</span><span class="n">proxy</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">r_scheme</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">&quot;/&quot;</span><span class="p">):</span>
<span class="c1"># authority</span>
<span class="n">scheme</span> <span class="o">=</span> <span class="kc">None</span>
@@ -818,9 +817,9 @@
<span class="k">if</span> <span class="n">end</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
<span class="n">end</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">authority</span> <span class="o">=</span> <span class="n">r_scheme</span><span class="p">[</span><span class="mi">2</span><span class="p">:</span><span class="n">end</span><span class="p">]</span>
- <span class="n">userinfo</span><span class="p">,</span> <span class="n">hostport</span> <span class="o">=</span> <span class="n">splituser</span><span class="p">(</span><span class="n">authority</span><span class="p">)</span>
+ <span class="n">userinfo</span><span class="p">,</span> <span class="n">hostport</span> <span class="o">=</span> <span class="n">_splituser</span><span class="p">(</span><span class="n">authority</span><span class="p">)</span>
<span class="k">if</span> <span class="n">userinfo</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
- <span class="n">user</span><span class="p">,</span> <span class="n">password</span> <span class="o">=</span> <span class="n">splitpasswd</span><span class="p">(</span><span class="n">userinfo</span><span class="p">)</span>
+ <span class="n">user</span><span class="p">,</span> <span class="n">password</span> <span class="o">=</span> <span class="n">_splitpasswd</span><span class="p">(</span><span class="n">userinfo</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">user</span> <span class="o">=</span> <span class="n">password</span> <span class="o">=</span> <span class="kc">None</span>
<span class="k">return</span> <span class="n">scheme</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">password</span><span class="p">,</span> <span class="n">hostport</span>
@@ -829,12 +828,13 @@
<span class="c1"># Proxies must be in front</span>
<span class="n">handler_order</span> <span class="o">=</span> <span class="mi">100</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">proxies</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">proxies</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="k">if</span> <span class="n">proxies</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">proxies</span> <span class="o">=</span> <span class="n">getproxies</span><span class="p">()</span>
<span class="k">assert</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">proxies</span><span class="p">,</span> <span class="s1">&#39;keys&#39;</span><span class="p">),</span> <span class="s2">&quot;proxies must be a mapping&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">proxies</span> <span class="o">=</span> <span class="n">proxies</span>
<span class="k">for</span> <span class="nb">type</span><span class="p">,</span> <span class="n">url</span> <span class="ow">in</span> <span class="n">proxies</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+ <span class="nb">type</span> <span class="o">=</span> <span class="nb">type</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
<span class="nb">setattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;</span><span class="si">%s</span><span class="s1">_open&#39;</span> <span class="o">%</span> <span class="nb">type</span><span class="p">,</span>
<span class="k">lambda</span> <span class="n">r</span><span class="p">,</span> <span class="n">proxy</span><span class="o">=</span><span class="n">url</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="nb">type</span><span class="p">,</span> <span class="n">meth</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">proxy_open</span><span class="p">:</span>
<span class="n">meth</span><span class="p">(</span><span class="n">r</span><span class="p">,</span> <span class="n">proxy</span><span class="p">,</span> <span class="nb">type</span><span class="p">))</span>
@@ -869,7 +869,7 @@
<span class="k">class</span> <span class="nc">HTTPPasswordMgr</span><span class="p">:</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="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">passwd</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">def</span> <span class="nf">add_password</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">realm</span><span class="p">,</span> <span class="n">uri</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">passwd</span><span class="p">):</span>
@@ -907,7 +907,7 @@
<span class="n">scheme</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">authority</span> <span class="o">=</span> <span class="n">uri</span>
<span class="n">path</span> <span class="o">=</span> <span class="s1">&#39;/&#39;</span>
- <span class="n">host</span><span class="p">,</span> <span class="n">port</span> <span class="o">=</span> <span class="n">splitport</span><span class="p">(</span><span class="n">authority</span><span class="p">)</span>
+ <span class="n">host</span><span class="p">,</span> <span class="n">port</span> <span class="o">=</span> <span class="n">_splitport</span><span class="p">(</span><span class="n">authority</span><span class="p">)</span>
<span class="k">if</span> <span class="n">default_port</span> <span class="ow">and</span> <span class="n">port</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">scheme</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">dport</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;http&quot;</span><span class="p">:</span> <span class="mi">80</span><span class="p">,</span>
<span class="s2">&quot;https&quot;</span><span class="p">:</span> <span class="mi">443</span><span class="p">,</span>
@@ -943,7 +943,7 @@
<span class="k">class</span> <span class="nc">HTTPPasswordMgrWithPriorAuth</span><span class="p">(</span><span class="n">HTTPPasswordMgrWithDefaultRealm</span><span class="p">):</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="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">authenticated</span> <span class="o">=</span> <span class="p">{}</span>
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
@@ -979,40 +979,71 @@
<span class="c1"># allow for double- and single-quoted realm values</span>
<span class="c1"># (single quotes are a violation of the RFC, but appear in the wild)</span>
- <span class="n">rx</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s1">&#39;(?:.*,)*[ </span><span class="se">\t</span><span class="s1">]*([^ </span><span class="se">\t</span><span class="s1">]+)[ </span><span class="se">\t</span><span class="s1">]+&#39;</span>
- <span class="s1">&#39;realm=([&quot;</span><span class="se">\&#39;</span><span class="s1">]?)([^&quot;</span><span class="se">\&#39;</span><span class="s1">]*)</span><span class="se">\\</span><span class="s1">2&#39;</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">I</span><span class="p">)</span>
+ <span class="n">rx</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s1">&#39;(?:^|,)&#39;</span> <span class="c1"># start of the string or &#39;,&#39;</span>
+ <span class="s1">&#39;[ </span><span class="se">\t</span><span class="s1">]*&#39;</span> <span class="c1"># optional whitespaces</span>
+ <span class="s1">&#39;([^ </span><span class="se">\t</span><span class="s1">]+)&#39;</span> <span class="c1"># scheme like &quot;Basic&quot;</span>
+ <span class="s1">&#39;[ </span><span class="se">\t</span><span class="s1">]+&#39;</span> <span class="c1"># mandatory whitespaces</span>
+ <span class="c1"># realm=xxx</span>
+ <span class="c1"># realm=&#39;xxx&#39;</span>
+ <span class="c1"># realm=&quot;xxx&quot;</span>
+ <span class="s1">&#39;realm=([&quot;</span><span class="se">\&#39;</span><span class="s1">]?)([^&quot;</span><span class="se">\&#39;</span><span class="s1">]*)</span><span class="se">\\</span><span class="s1">2&#39;</span><span class="p">,</span>
+ <span class="n">re</span><span class="o">.</span><span class="n">I</span><span class="p">)</span>
<span class="c1"># XXX could pre-emptively send auth info already accepted (RFC 2617,</span>
<span class="c1"># end of section 2, and section 1.2 immediately after &quot;credentials&quot;</span>
<span class="c1"># production).</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">password_mgr</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">password_mgr</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="k">if</span> <span class="n">password_mgr</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">password_mgr</span> <span class="o">=</span> <span class="n">HTTPPasswordMgr</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">passwd</span> <span class="o">=</span> <span class="n">password_mgr</span>
<span class="bp">self</span><span class="o">.</span><span class="n">add_password</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">passwd</span><span class="o">.</span><span class="n">add_password</span>
+ <span class="k">def</span> <span class="nf">_parse_realm</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">header</span><span class="p">):</span>
+ <span class="c1"># parse WWW-Authenticate header: accept multiple challenges per header</span>
+ <span class="n">found_challenge</span> <span class="o">=</span> <span class="kc">False</span>
+ <span class="k">for</span> <span class="n">mo</span> <span class="ow">in</span> <span class="n">AbstractBasicAuthHandler</span><span class="o">.</span><span class="n">rx</span><span class="o">.</span><span class="n">finditer</span><span class="p">(</span><span class="n">header</span><span class="p">):</span>
+ <span class="n">scheme</span><span class="p">,</span> <span class="n">quote</span><span class="p">,</span> <span class="n">realm</span> <span class="o">=</span> <span class="n">mo</span><span class="o">.</span><span class="n">groups</span><span class="p">()</span>
+ <span class="k">if</span> <span class="n">quote</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;&quot;&#39;</span><span class="p">,</span> <span class="s2">&quot;&#39;&quot;</span><span class="p">]:</span>
+ <span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s2">&quot;Basic Auth Realm was unquoted&quot;</span><span class="p">,</span>
+ <span class="ne">UserWarning</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
+
+ <span class="k">yield</span> <span class="p">(</span><span class="n">scheme</span><span class="p">,</span> <span class="n">realm</span><span class="p">)</span>
+
+ <span class="n">found_challenge</span> <span class="o">=</span> <span class="kc">True</span>
+
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">found_challenge</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">header</span><span class="p">:</span>
+ <span class="n">scheme</span> <span class="o">=</span> <span class="n">header</span><span class="o">.</span><span class="n">split</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="n">scheme</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
+ <span class="k">yield</span> <span class="p">(</span><span class="n">scheme</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+
<span class="k">def</span> <span class="nf">http_error_auth_reqed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">authreq</span><span class="p">,</span> <span class="n">host</span><span class="p">,</span> <span class="n">req</span><span class="p">,</span> <span class="n">headers</span><span class="p">):</span>
<span class="c1"># host may be an authority (without userinfo) or a URL with an</span>
<span class="c1"># authority</span>
- <span class="c1"># XXX could be multiple headers</span>
- <span class="n">authreq</span> <span class="o">=</span> <span class="n">headers</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">authreq</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+ <span class="n">headers</span> <span class="o">=</span> <span class="n">headers</span><span class="o">.</span><span class="n">get_all</span><span class="p">(</span><span class="n">authreq</span><span class="p">)</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">headers</span><span class="p">:</span>
+ <span class="c1"># no header found</span>
+ <span class="k">return</span>
- <span class="k">if</span> <span class="n">authreq</span><span class="p">:</span>
- <span class="n">scheme</span> <span class="o">=</span> <span class="n">authreq</span><span class="o">.</span><span class="n">split</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
- <span class="k">if</span> <span class="n">scheme</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">!=</span> <span class="s1">&#39;basic&#39;</span><span class="p">:</span>
- <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;AbstractBasicAuthHandler does not&quot;</span>
- <span class="s2">&quot; support the following scheme: &#39;</span><span class="si">%s</span><span class="s2">&#39;&quot;</span> <span class="o">%</span>
- <span class="n">scheme</span><span class="p">)</span>
- <span class="k">else</span><span class="p">:</span>
- <span class="n">mo</span> <span class="o">=</span> <span class="n">AbstractBasicAuthHandler</span><span class="o">.</span><span class="n">rx</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">authreq</span><span class="p">)</span>
- <span class="k">if</span> <span class="n">mo</span><span class="p">:</span>
- <span class="n">scheme</span><span class="p">,</span> <span class="n">quote</span><span class="p">,</span> <span class="n">realm</span> <span class="o">=</span> <span class="n">mo</span><span class="o">.</span><span class="n">groups</span><span class="p">()</span>
- <span class="k">if</span> <span class="n">quote</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;&quot;&#39;</span><span class="p">,</span><span class="s2">&quot;&#39;&quot;</span><span class="p">]:</span>
- <span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s2">&quot;Basic Auth Realm was unquoted&quot;</span><span class="p">,</span>
- <span class="ne">UserWarning</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
- <span class="k">if</span> <span class="n">scheme</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;basic&#39;</span><span class="p">:</span>
- <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">retry_http_basic_auth</span><span class="p">(</span><span class="n">host</span><span class="p">,</span> <span class="n">req</span><span class="p">,</span> <span class="n">realm</span><span class="p">)</span>
+ <span class="n">unsupported</span> <span class="o">=</span> <span class="kc">None</span>
+ <span class="k">for</span> <span class="n">header</span> <span class="ow">in</span> <span class="n">headers</span><span class="p">:</span>
+ <span class="k">for</span> <span class="n">scheme</span><span class="p">,</span> <span class="n">realm</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_realm</span><span class="p">(</span><span class="n">header</span><span class="p">):</span>
+ <span class="k">if</span> <span class="n">scheme</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">!=</span> <span class="s1">&#39;basic&#39;</span><span class="p">:</span>
+ <span class="n">unsupported</span> <span class="o">=</span> <span class="n">scheme</span>
+ <span class="k">continue</span>
+
+ <span class="k">if</span> <span class="n">realm</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+ <span class="c1"># Use the first matching Basic challenge.</span>
+ <span class="c1"># Ignore following challenges even if they use the Basic</span>
+ <span class="c1"># scheme.</span>
+ <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">retry_http_basic_auth</span><span class="p">(</span><span class="n">host</span><span class="p">,</span> <span class="n">req</span><span class="p">,</span> <span class="n">realm</span><span class="p">)</span>
+
+ <span class="k">if</span> <span class="n">unsupported</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+ <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;AbstractBasicAuthHandler does not &quot;</span>
+ <span class="s2">&quot;support the following scheme: </span><span class="si">%r</span><span class="s2">&quot;</span>
+ <span class="o">%</span> <span class="p">(</span><span class="n">scheme</span><span class="p">,))</span>
<span class="k">def</span> <span class="nf">retry_http_basic_auth</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">host</span><span class="p">,</span> <span class="n">req</span><span class="p">,</span> <span class="n">realm</span><span class="p">):</span>
<span class="n">user</span><span class="p">,</span> <span class="n">pw</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">passwd</span><span class="o">.</span><span class="n">find_user_password</span><span class="p">(</span><span class="n">realm</span><span class="p">,</span> <span class="n">host</span><span class="p">)</span>
@@ -1093,7 +1124,7 @@
<span class="c1"># XXX qop=&quot;auth-int&quot; supports is shaky</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">passwd</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">passwd</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="k">if</span> <span class="n">passwd</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">passwd</span> <span class="o">=</span> <span class="n">HTTPPasswordMgr</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">passwd</span> <span class="o">=</span> <span class="n">passwd</span>
@@ -1178,7 +1209,11 @@
<span class="n">A2</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">:</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">req</span><span class="o">.</span><span class="n">get_method</span><span class="p">(),</span>
<span class="c1"># XXX selector: what about proxies and full urls</span>
<span class="n">req</span><span class="o">.</span><span class="n">selector</span><span class="p">)</span>
- <span class="k">if</span> <span class="n">qop</span> <span class="o">==</span> <span class="s1">&#39;auth&#39;</span><span class="p">:</span>
+ <span class="c1"># NOTE: As per RFC 2617, when server sends &quot;auth,auth-int&quot;, the client could use either `auth`</span>
+ <span class="c1"># or `auth-int` to the response back. we use `auth` to send the response back.</span>
+ <span class="k">if</span> <span class="n">qop</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+ <span class="n">respdig</span> <span class="o">=</span> <span class="n">KD</span><span class="p">(</span><span class="n">H</span><span class="p">(</span><span class="n">A1</span><span class="p">),</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">:</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">nonce</span><span class="p">,</span> <span class="n">H</span><span class="p">(</span><span class="n">A2</span><span class="p">)))</span>
+ <span class="k">elif</span> <span class="s1">&#39;auth&#39;</span> <span class="ow">in</span> <span class="n">qop</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">):</span>
<span class="k">if</span> <span class="n">nonce</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">last_nonce</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">nonce_count</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="k">else</span><span class="p">:</span>
@@ -1186,10 +1221,8 @@
<span class="bp">self</span><span class="o">.</span><span class="n">last_nonce</span> <span class="o">=</span> <span class="n">nonce</span>
<span class="n">ncvalue</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%08x</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">nonce_count</span>
<span class="n">cnonce</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_cnonce</span><span class="p">(</span><span class="n">nonce</span><span class="p">)</span>
- <span class="n">noncebit</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">:</span><span class="si">%s</span><span class="s2">:</span><span class="si">%s</span><span class="s2">:</span><span class="si">%s</span><span class="s2">:</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">nonce</span><span class="p">,</span> <span class="n">ncvalue</span><span class="p">,</span> <span class="n">cnonce</span><span class="p">,</span> <span class="n">qop</span><span class="p">,</span> <span class="n">H</span><span class="p">(</span><span class="n">A2</span><span class="p">))</span>
+ <span class="n">noncebit</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">:</span><span class="si">%s</span><span class="s2">:</span><span class="si">%s</span><span class="s2">:</span><span class="si">%s</span><span class="s2">:</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">nonce</span><span class="p">,</span> <span class="n">ncvalue</span><span class="p">,</span> <span class="n">cnonce</span><span class="p">,</span> <span class="s1">&#39;auth&#39;</span><span class="p">,</span> <span class="n">H</span><span class="p">(</span><span class="n">A2</span><span class="p">))</span>
<span class="n">respdig</span> <span class="o">=</span> <span class="n">KD</span><span class="p">(</span><span class="n">H</span><span class="p">(</span><span class="n">A1</span><span class="p">),</span> <span class="n">noncebit</span><span class="p">)</span>
- <span class="k">elif</span> <span class="n">qop</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
- <span class="n">respdig</span> <span class="o">=</span> <span class="n">KD</span><span class="p">(</span><span class="n">H</span><span class="p">(</span><span class="n">A1</span><span class="p">),</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">:</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">nonce</span><span class="p">,</span> <span class="n">H</span><span class="p">(</span><span class="n">A2</span><span class="p">)))</span>
<span class="k">else</span><span class="p">:</span>
<span class="c1"># XXX handle auth-int.</span>
<span class="k">raise</span> <span class="n">URLError</span><span class="p">(</span><span class="s2">&quot;qop &#39;</span><span class="si">%s</span><span class="s2">&#39; is not supported.&quot;</span> <span class="o">%</span> <span class="n">qop</span><span class="p">)</span>
@@ -1258,7 +1291,7 @@
<span class="k">class</span> <span class="nc">AbstractHTTPHandler</span><span class="p">(</span><span class="n">BaseHandler</span><span class="p">):</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">debuglevel</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">debuglevel</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_debuglevel</span> <span class="o">=</span> <span class="n">debuglevel</span>
<span class="k">def</span> <span class="nf">set_http_debuglevel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">level</span><span class="p">):</span>
@@ -1296,8 +1329,8 @@
<span class="n">sel_host</span> <span class="o">=</span> <span class="n">host</span>
<span class="k">if</span> <span class="n">request</span><span class="o">.</span><span class="n">has_proxy</span><span class="p">():</span>
- <span class="n">scheme</span><span class="p">,</span> <span class="n">sel</span> <span class="o">=</span> <span class="n">splittype</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">selector</span><span class="p">)</span>
- <span class="n">sel_host</span><span class="p">,</span> <span class="n">sel_path</span> <span class="o">=</span> <span class="n">splithost</span><span class="p">(</span><span class="n">sel</span><span class="p">)</span>
+ <span class="n">scheme</span><span class="p">,</span> <span class="n">sel</span> <span class="o">=</span> <span class="n">_splittype</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">selector</span><span class="p">)</span>
+ <span class="n">sel_host</span><span class="p">,</span> <span class="n">sel_path</span> <span class="o">=</span> <span class="n">_splithost</span><span class="p">(</span><span class="n">sel</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">request</span><span class="o">.</span><span class="n">has_header</span><span class="p">(</span><span class="s1">&#39;Host&#39;</span><span class="p">):</span>
<span class="n">request</span><span class="o">.</span><span class="n">add_unredirected_header</span><span class="p">(</span><span class="s1">&#39;Host&#39;</span><span class="p">,</span> <span class="n">sel_host</span><span class="p">)</span>
<span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">addheaders</span><span class="p">:</span>
@@ -1385,7 +1418,7 @@
<span class="k">class</span> <span class="nc">HTTPSHandler</span><span class="p">(</span><span class="n">AbstractHTTPHandler</span><span class="p">):</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">debuglevel</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">context</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">check_hostname</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">debuglevel</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">context</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">check_hostname</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="n">AbstractHTTPHandler</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">debuglevel</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_context</span> <span class="o">=</span> <span class="n">context</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_check_hostname</span> <span class="o">=</span> <span class="n">check_hostname</span>
@@ -1399,7 +1432,7 @@
<span class="n">__all__</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;HTTPSHandler&#39;</span><span class="p">)</span>
<span class="k">class</span> <span class="nc">HTTPCookieProcessor</span><span class="p">(</span><span class="n">BaseHandler</span><span class="p">):</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">cookiejar</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cookiejar</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="kn">import</span> <span class="nn">http.cookiejar</span>
<span class="k">if</span> <span class="n">cookiejar</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">cookiejar</span> <span class="o">=</span> <span class="n">http</span><span class="o">.</span><span class="n">cookiejar</span><span class="o">.</span><span class="n">CookieJar</span><span class="p">()</span>
@@ -1513,7 +1546,7 @@
<span class="s1">&#39;Content-type: </span><span class="si">%s</span><span class="se">\n</span><span class="s1">Content-length: </span><span class="si">%d</span><span class="se">\n</span><span class="s1">Last-modified: </span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span>
<span class="p">(</span><span class="n">mtype</span> <span class="ow">or</span> <span class="s1">&#39;text/plain&#39;</span><span class="p">,</span> <span class="n">size</span><span class="p">,</span> <span class="n">modified</span><span class="p">))</span>
<span class="k">if</span> <span class="n">host</span><span class="p">:</span>
- <span class="n">host</span><span class="p">,</span> <span class="n">port</span> <span class="o">=</span> <span class="n">splitport</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
+ <span class="n">host</span><span class="p">,</span> <span class="n">port</span> <span class="o">=</span> <span class="n">_splitport</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">host</span> <span class="ow">or</span> \
<span class="p">(</span><span class="ow">not</span> <span class="n">port</span> <span class="ow">and</span> <span class="n">_safe_gethostbyname</span><span class="p">(</span><span class="n">host</span><span class="p">)</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_names</span><span class="p">()):</span>
<span class="k">if</span> <span class="n">host</span><span class="p">:</span>
@@ -1538,16 +1571,16 @@
<span class="n">host</span> <span class="o">=</span> <span class="n">req</span><span class="o">.</span><span class="n">host</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">host</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">URLError</span><span class="p">(</span><span class="s1">&#39;ftp error: no host given&#39;</span><span class="p">)</span>
- <span class="n">host</span><span class="p">,</span> <span class="n">port</span> <span class="o">=</span> <span class="n">splitport</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
+ <span class="n">host</span><span class="p">,</span> <span class="n">port</span> <span class="o">=</span> <span class="n">_splitport</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
<span class="k">if</span> <span class="n">port</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">port</span> <span class="o">=</span> <span class="n">ftplib</span><span class="o">.</span><span class="n">FTP_PORT</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">port</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">port</span><span class="p">)</span>
<span class="c1"># username/password handling</span>
- <span class="n">user</span><span class="p">,</span> <span class="n">host</span> <span class="o">=</span> <span class="n">splituser</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
+ <span class="n">user</span><span class="p">,</span> <span class="n">host</span> <span class="o">=</span> <span class="n">_splituser</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
<span class="k">if</span> <span class="n">user</span><span class="p">:</span>
- <span class="n">user</span><span class="p">,</span> <span class="n">passwd</span> <span class="o">=</span> <span class="n">splitpasswd</span><span class="p">(</span><span class="n">user</span><span class="p">)</span>
+ <span class="n">user</span><span class="p">,</span> <span class="n">passwd</span> <span class="o">=</span> <span class="n">_splitpasswd</span><span class="p">(</span><span class="n">user</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">passwd</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">host</span> <span class="o">=</span> <span class="n">unquote</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
@@ -1558,7 +1591,7 @@
<span class="n">host</span> <span class="o">=</span> <span class="n">socket</span><span class="o">.</span><span class="n">gethostbyname</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">msg</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">URLError</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
- <span class="n">path</span><span class="p">,</span> <span class="n">attrs</span> <span class="o">=</span> <span class="n">splitattr</span><span class="p">(</span><span class="n">req</span><span class="o">.</span><span class="n">selector</span><span class="p">)</span>
+ <span class="n">path</span><span class="p">,</span> <span class="n">attrs</span> <span class="o">=</span> <span class="n">_splitattr</span><span class="p">(</span><span class="n">req</span><span class="o">.</span><span class="n">selector</span><span class="p">)</span>
<span class="n">dirs</span> <span class="o">=</span> <span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)</span>
<span class="n">dirs</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="n">unquote</span><span class="p">,</span> <span class="n">dirs</span><span class="p">))</span>
<span class="n">dirs</span><span class="p">,</span> <span class="n">file</span> <span class="o">=</span> <span class="n">dirs</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">dirs</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
@@ -1568,7 +1601,7 @@
<span class="n">fw</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">connect_ftp</span><span class="p">(</span><span class="n">user</span><span class="p">,</span> <span class="n">passwd</span><span class="p">,</span> <span class="n">host</span><span class="p">,</span> <span class="n">port</span><span class="p">,</span> <span class="n">dirs</span><span class="p">,</span> <span class="n">req</span><span class="o">.</span><span class="n">timeout</span><span class="p">)</span>
<span class="nb">type</span> <span class="o">=</span> <span class="n">file</span> <span class="ow">and</span> <span class="s1">&#39;I&#39;</span> <span class="ow">or</span> <span class="s1">&#39;D&#39;</span>
<span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="n">attrs</span><span class="p">:</span>
- <span class="n">attr</span><span class="p">,</span> <span class="n">value</span> <span class="o">=</span> <span class="n">splitvalue</span><span class="p">(</span><span class="n">attr</span><span class="p">)</span>
+ <span class="n">attr</span><span class="p">,</span> <span class="n">value</span> <span class="o">=</span> <span class="n">_splitvalue</span><span class="p">(</span><span class="n">attr</span><span class="p">)</span>
<span class="k">if</span> <span class="n">attr</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;type&#39;</span> <span class="ow">and</span> \
<span class="n">value</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">&#39;a&#39;</span><span class="p">,</span> <span class="s1">&#39;A&#39;</span><span class="p">,</span> <span class="s1">&#39;i&#39;</span><span class="p">,</span> <span class="s1">&#39;I&#39;</span><span class="p">,</span> <span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="s1">&#39;D&#39;</span><span class="p">):</span>
<span class="nb">type</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
@@ -1592,7 +1625,7 @@
<span class="k">class</span> <span class="nc">CacheFTPHandler</span><span class="p">(</span><span class="n">FTPHandler</span><span class="p">):</span>
<span class="c1"># XXX would be nice to have pluggable cache strategies</span>
<span class="c1"># XXX this stuff is definitely not thread safe</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="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">cache</span> <span class="o">=</span> <span class="p">{}</span>
<span class="bp">self</span><span class="o">.</span><span class="n">timeout</span> <span class="o">=</span> <span class="p">{}</span>
<span class="bp">self</span><span class="o">.</span><span class="n">soonest</span> <span class="o">=</span> <span class="mi">0</span>
@@ -1679,7 +1712,7 @@
<span class="c1"># Helper for non-unix systems</span>
<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s1">&#39;nt&#39;</span><span class="p">:</span>
- <span class="kn">from</span> <span class="nn">nturl2path</span> <span class="k">import</span> <span class="n">url2pathname</span><span class="p">,</span> <span class="n">pathname2url</span>
+ <span class="kn">from</span> <span class="nn">nturl2path</span> <span class="kn">import</span> <span class="n">url2pathname</span><span class="p">,</span> <span class="n">pathname2url</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">def</span> <span class="nf">url2pathname</span><span class="p">(</span><span class="n">pathname</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;OS-specific conversion from a relative URL of the &#39;file&#39; scheme</span>
@@ -1708,7 +1741,7 @@
<span class="n">version</span> <span class="o">=</span> <span class="s2">&quot;Python-urllib/</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">__version__</span>
<span class="c1"># Constructor</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">proxies</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">x509</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">proxies</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">x509</span><span class="p">):</span>
<span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%(class)s</span><span class="s2"> style of invoking requests is deprecated. &quot;</span> \
<span class="s2">&quot;Use newer urlopen functions/methods&quot;</span> <span class="o">%</span> <span class="p">{</span><span class="s1">&#39;class&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">}</span>
<span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="ne">DeprecationWarning</span><span class="p">,</span> <span class="n">stacklevel</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>
@@ -1734,7 +1767,7 @@
<span class="c1"># in case you want logically independent URL openers</span>
<span class="c1"># XXX This is not threadsafe. Bah.</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="k">def</span> <span class="fm">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
@@ -1762,26 +1795,26 @@
<span class="c1"># External interface</span>
<span class="k">def</span> <span class="nf">open</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fullurl</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Use URLopener().open(file) instead of open(file, &#39;r&#39;).&quot;&quot;&quot;</span>
- <span class="n">fullurl</span> <span class="o">=</span> <span class="n">unwrap</span><span class="p">(</span><span class="n">to_bytes</span><span class="p">(</span><span class="n">fullurl</span><span class="p">))</span>
+ <span class="n">fullurl</span> <span class="o">=</span> <span class="n">unwrap</span><span class="p">(</span><span class="n">_to_bytes</span><span class="p">(</span><span class="n">fullurl</span><span class="p">))</span>
<span class="n">fullurl</span> <span class="o">=</span> <span class="n">quote</span><span class="p">(</span><span class="n">fullurl</span><span class="p">,</span> <span class="n">safe</span><span class="o">=</span><span class="s2">&quot;%/:=&amp;?~#+!$,;&#39;@()*[]|&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tempcache</span> <span class="ow">and</span> <span class="n">fullurl</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">tempcache</span><span class="p">:</span>
<span class="n">filename</span><span class="p">,</span> <span class="n">headers</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tempcache</span><span class="p">[</span><span class="n">fullurl</span><span class="p">]</span>
<span class="n">fp</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="s1">&#39;rb&#39;</span><span class="p">)</span>
<span class="k">return</span> <span class="n">addinfourl</span><span class="p">(</span><span class="n">fp</span><span class="p">,</span> <span class="n">headers</span><span class="p">,</span> <span class="n">fullurl</span><span class="p">)</span>
- <span class="n">urltype</span><span class="p">,</span> <span class="n">url</span> <span class="o">=</span> <span class="n">splittype</span><span class="p">(</span><span class="n">fullurl</span><span class="p">)</span>
+ <span class="n">urltype</span><span class="p">,</span> <span class="n">url</span> <span class="o">=</span> <span class="n">_splittype</span><span class="p">(</span><span class="n">fullurl</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">urltype</span><span class="p">:</span>
<span class="n">urltype</span> <span class="o">=</span> <span class="s1">&#39;file&#39;</span>
<span class="k">if</span> <span class="n">urltype</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">proxies</span><span class="p">:</span>
<span class="n">proxy</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">proxies</span><span class="p">[</span><span class="n">urltype</span><span class="p">]</span>
- <span class="n">urltype</span><span class="p">,</span> <span class="n">proxyhost</span> <span class="o">=</span> <span class="n">splittype</span><span class="p">(</span><span class="n">proxy</span><span class="p">)</span>
- <span class="n">host</span><span class="p">,</span> <span class="n">selector</span> <span class="o">=</span> <span class="n">splithost</span><span class="p">(</span><span class="n">proxyhost</span><span class="p">)</span>
+ <span class="n">urltype</span><span class="p">,</span> <span class="n">proxyhost</span> <span class="o">=</span> <span class="n">_splittype</span><span class="p">(</span><span class="n">proxy</span><span class="p">)</span>
+ <span class="n">host</span><span class="p">,</span> <span class="n">selector</span> <span class="o">=</span> <span class="n">_splithost</span><span class="p">(</span><span class="n">proxyhost</span><span class="p">)</span>
<span class="n">url</span> <span class="o">=</span> <span class="p">(</span><span class="n">host</span><span class="p">,</span> <span class="n">fullurl</span><span class="p">)</span> <span class="c1"># Signal special case to open_*()</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">proxy</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">name</span> <span class="o">=</span> <span class="s1">&#39;open_&#39;</span> <span class="o">+</span> <span class="n">urltype</span>
<span class="bp">self</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">urltype</span>
<span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;-&#39;</span><span class="p">,</span> <span class="s1">&#39;_&#39;</span><span class="p">)</span>
- <span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</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="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</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="ow">or</span> <span class="n">name</span> <span class="o">==</span> <span class="s1">&#39;open_local_file&#39;</span><span class="p">:</span>
<span class="k">if</span> <span class="n">proxy</span><span class="p">:</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">open_unknown_proxy</span><span class="p">(</span><span class="n">proxy</span><span class="p">,</span> <span class="n">fullurl</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
@@ -1798,28 +1831,28 @@
<span class="k">def</span> <span class="nf">open_unknown</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fullurl</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Overridable interface to open unknown URL type.&quot;&quot;&quot;</span>
- <span class="nb">type</span><span class="p">,</span> <span class="n">url</span> <span class="o">=</span> <span class="n">splittype</span><span class="p">(</span><span class="n">fullurl</span><span class="p">)</span>
+ <span class="nb">type</span><span class="p">,</span> <span class="n">url</span> <span class="o">=</span> <span class="n">_splittype</span><span class="p">(</span><span class="n">fullurl</span><span class="p">)</span>
<span class="k">raise</span> <span class="ne">OSError</span><span class="p">(</span><span class="s1">&#39;url error&#39;</span><span class="p">,</span> <span class="s1">&#39;unknown url type&#39;</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">open_unknown_proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">proxy</span><span class="p">,</span> <span class="n">fullurl</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Overridable interface to open unknown URL type.&quot;&quot;&quot;</span>
- <span class="nb">type</span><span class="p">,</span> <span class="n">url</span> <span class="o">=</span> <span class="n">splittype</span><span class="p">(</span><span class="n">fullurl</span><span class="p">)</span>
+ <span class="nb">type</span><span class="p">,</span> <span class="n">url</span> <span class="o">=</span> <span class="n">_splittype</span><span class="p">(</span><span class="n">fullurl</span><span class="p">)</span>
<span class="k">raise</span> <span class="ne">OSError</span><span class="p">(</span><span class="s1">&#39;url error&#39;</span><span class="p">,</span> <span class="s1">&#39;invalid proxy for </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="nb">type</span><span class="p">,</span> <span class="n">proxy</span><span class="p">)</span>
<span class="c1"># External interface</span>
<span class="k">def</span> <span class="nf">retrieve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">url</span><span class="p">,</span> <span class="n">filename</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">reporthook</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;retrieve(url) returns (filename, headers) for a local object</span>
<span class="sd"> or (tempfilename, headers) for a remote object.&quot;&quot;&quot;</span>
- <span class="n">url</span> <span class="o">=</span> <span class="n">unwrap</span><span class="p">(</span><span class="n">to_bytes</span><span class="p">(</span><span class="n">url</span><span class="p">))</span>
+ <span class="n">url</span> <span class="o">=</span> <span class="n">unwrap</span><span class="p">(</span><span class="n">_to_bytes</span><span class="p">(</span><span class="n">url</span><span class="p">))</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">tempcache</span> <span class="ow">and</span> <span class="n">url</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">tempcache</span><span class="p">:</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">tempcache</span><span class="p">[</span><span class="n">url</span><span class="p">]</span>
- <span class="nb">type</span><span class="p">,</span> <span class="n">url1</span> <span class="o">=</span> <span class="n">splittype</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
+ <span class="nb">type</span><span class="p">,</span> <span class="n">url1</span> <span class="o">=</span> <span class="n">_splittype</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
<span class="k">if</span> <span class="n">filename</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">and</span> <span class="p">(</span><span class="ow">not</span> <span class="nb">type</span> <span class="ow">or</span> <span class="nb">type</span> <span class="o">==</span> <span class="s1">&#39;file&#39;</span><span class="p">):</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">fp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">open_local_file</span><span class="p">(</span><span class="n">url1</span><span class="p">)</span>
<span class="n">hdrs</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">info</span><span class="p">()</span>
<span class="n">fp</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
- <span class="k">return</span> <span class="n">url2pathname</span><span class="p">(</span><span class="n">splithost</span><span class="p">(</span><span class="n">url1</span><span class="p">)[</span><span class="mi">1</span><span class="p">]),</span> <span class="n">hdrs</span>
+ <span class="k">return</span> <span class="n">url2pathname</span><span class="p">(</span><span class="n">_splithost</span><span class="p">(</span><span class="n">url1</span><span class="p">)[</span><span class="mi">1</span><span class="p">]),</span> <span class="n">hdrs</span>
<span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">msg</span><span class="p">:</span>
<span class="k">pass</span>
<span class="n">fp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span>
@@ -1828,10 +1861,10 @@
<span class="k">if</span> <span class="n">filename</span><span class="p">:</span>
<span class="n">tfp</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="s1">&#39;wb&#39;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
- <span class="n">garbage</span><span class="p">,</span> <span class="n">path</span> <span class="o">=</span> <span class="n">splittype</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
- <span class="n">garbage</span><span class="p">,</span> <span class="n">path</span> <span class="o">=</span> <span class="n">splithost</span><span class="p">(</span><span class="n">path</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
- <span class="n">path</span><span class="p">,</span> <span class="n">garbage</span> <span class="o">=</span> <span class="n">splitquery</span><span class="p">(</span><span class="n">path</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
- <span class="n">path</span><span class="p">,</span> <span class="n">garbage</span> <span class="o">=</span> <span class="n">splitattr</span><span class="p">(</span><span class="n">path</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
+ <span class="n">garbage</span><span class="p">,</span> <span class="n">path</span> <span class="o">=</span> <span class="n">_splittype</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
+ <span class="n">garbage</span><span class="p">,</span> <span class="n">path</span> <span class="o">=</span> <span class="n">_splithost</span><span class="p">(</span><span class="n">path</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
+ <span class="n">path</span><span class="p">,</span> <span class="n">garbage</span> <span class="o">=</span> <span class="n">_splitquery</span><span class="p">(</span><span class="n">path</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
+ <span class="n">path</span><span class="p">,</span> <span class="n">garbage</span> <span class="o">=</span> <span class="n">_splitattr</span><span class="p">(</span><span class="n">path</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
<span class="n">suffix</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">path</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
<span class="p">(</span><span class="n">fd</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span> <span class="o">=</span> <span class="n">tempfile</span><span class="o">.</span><span class="n">mkstemp</span><span class="p">(</span><span class="n">suffix</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">__tempfiles</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
@@ -1888,25 +1921,25 @@
<span class="n">user_passwd</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">proxy_passwd</span><span class="o">=</span> <span class="kc">None</span>
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
- <span class="n">host</span><span class="p">,</span> <span class="n">selector</span> <span class="o">=</span> <span class="n">splithost</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
+ <span class="n">host</span><span class="p">,</span> <span class="n">selector</span> <span class="o">=</span> <span class="n">_splithost</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
<span class="k">if</span> <span class="n">host</span><span class="p">:</span>
- <span class="n">user_passwd</span><span class="p">,</span> <span class="n">host</span> <span class="o">=</span> <span class="n">splituser</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
+ <span class="n">user_passwd</span><span class="p">,</span> <span class="n">host</span> <span class="o">=</span> <span class="n">_splituser</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
<span class="n">host</span> <span class="o">=</span> <span class="n">unquote</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
<span class="n">realhost</span> <span class="o">=</span> <span class="n">host</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">host</span><span class="p">,</span> <span class="n">selector</span> <span class="o">=</span> <span class="n">url</span>
<span class="c1"># check whether the proxy contains authorization information</span>
- <span class="n">proxy_passwd</span><span class="p">,</span> <span class="n">host</span> <span class="o">=</span> <span class="n">splituser</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
+ <span class="n">proxy_passwd</span><span class="p">,</span> <span class="n">host</span> <span class="o">=</span> <span class="n">_splituser</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
<span class="c1"># now we proceed with the url we want to obtain</span>
- <span class="n">urltype</span><span class="p">,</span> <span class="n">rest</span> <span class="o">=</span> <span class="n">splittype</span><span class="p">(</span><span class="n">selector</span><span class="p">)</span>
+ <span class="n">urltype</span><span class="p">,</span> <span class="n">rest</span> <span class="o">=</span> <span class="n">_splittype</span><span class="p">(</span><span class="n">selector</span><span class="p">)</span>
<span class="n">url</span> <span class="o">=</span> <span class="n">rest</span>
<span class="n">user_passwd</span> <span class="o">=</span> <span class="kc">None</span>
<span class="k">if</span> <span class="n">urltype</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">!=</span> <span class="s1">&#39;http&#39;</span><span class="p">:</span>
<span class="n">realhost</span> <span class="o">=</span> <span class="kc">None</span>
<span class="k">else</span><span class="p">:</span>
- <span class="n">realhost</span><span class="p">,</span> <span class="n">rest</span> <span class="o">=</span> <span class="n">splithost</span><span class="p">(</span><span class="n">rest</span><span class="p">)</span>
+ <span class="n">realhost</span><span class="p">,</span> <span class="n">rest</span> <span class="o">=</span> <span class="n">_splithost</span><span class="p">(</span><span class="n">rest</span><span class="p">)</span>
<span class="k">if</span> <span class="n">realhost</span><span class="p">:</span>
- <span class="n">user_passwd</span><span class="p">,</span> <span class="n">realhost</span> <span class="o">=</span> <span class="n">splituser</span><span class="p">(</span><span class="n">realhost</span><span class="p">)</span>
+ <span class="n">user_passwd</span><span class="p">,</span> <span class="n">realhost</span> <span class="o">=</span> <span class="n">_splituser</span><span class="p">(</span><span class="n">realhost</span><span class="p">)</span>
<span class="k">if</span> <span class="n">user_passwd</span><span class="p">:</span>
<span class="n">selector</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">://</span><span class="si">%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">urltype</span><span class="p">,</span> <span class="n">realhost</span><span class="p">,</span> <span class="n">rest</span><span class="p">)</span>
<span class="k">if</span> <span class="n">proxy_bypass</span><span class="p">(</span><span class="n">realhost</span><span class="p">):</span>
@@ -2012,7 +2045,7 @@
<span class="sd">&quot;&quot;&quot;Use local file.&quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">email.utils</span>
<span class="kn">import</span> <span class="nn">mimetypes</span>
- <span class="n">host</span><span class="p">,</span> <span class="n">file</span> <span class="o">=</span> <span class="n">splithost</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
+ <span class="n">host</span><span class="p">,</span> <span class="n">file</span> <span class="o">=</span> <span class="n">_splithost</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
<span class="n">localname</span> <span class="o">=</span> <span class="n">url2pathname</span><span class="p">(</span><span class="n">file</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">stats</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">stat</span><span class="p">(</span><span class="n">localname</span><span class="p">)</span>
@@ -2029,7 +2062,7 @@
<span class="k">if</span> <span class="n">file</span><span class="p">[:</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;/&#39;</span><span class="p">:</span>
<span class="n">urlfile</span> <span class="o">=</span> <span class="s1">&#39;file://&#39;</span> <span class="o">+</span> <span class="n">file</span>
<span class="k">return</span> <span class="n">addinfourl</span><span class="p">(</span><span class="nb">open</span><span class="p">(</span><span class="n">localname</span><span class="p">,</span> <span class="s1">&#39;rb&#39;</span><span class="p">),</span> <span class="n">headers</span><span class="p">,</span> <span class="n">urlfile</span><span class="p">)</span>
- <span class="n">host</span><span class="p">,</span> <span class="n">port</span> <span class="o">=</span> <span class="n">splitport</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
+ <span class="n">host</span><span class="p">,</span> <span class="n">port</span> <span class="o">=</span> <span class="n">_splitport</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
<span class="k">if</span> <span class="p">(</span><span class="ow">not</span> <span class="n">port</span>
<span class="ow">and</span> <span class="n">socket</span><span class="o">.</span><span class="n">gethostbyname</span><span class="p">(</span><span class="n">host</span><span class="p">)</span> <span class="ow">in</span> <span class="p">((</span><span class="n">localhost</span><span class="p">(),)</span> <span class="o">+</span> <span class="n">thishost</span><span class="p">())):</span>
<span class="n">urlfile</span> <span class="o">=</span> <span class="n">file</span>
@@ -2045,11 +2078,11 @@
<span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
<span class="k">raise</span> <span class="n">URLError</span><span class="p">(</span><span class="s1">&#39;ftp error: proxy support for ftp protocol currently not implemented&#39;</span><span class="p">)</span>
<span class="kn">import</span> <span class="nn">mimetypes</span>
- <span class="n">host</span><span class="p">,</span> <span class="n">path</span> <span class="o">=</span> <span class="n">splithost</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
+ <span class="n">host</span><span class="p">,</span> <span class="n">path</span> <span class="o">=</span> <span class="n">_splithost</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">host</span><span class="p">:</span> <span class="k">raise</span> <span class="n">URLError</span><span class="p">(</span><span class="s1">&#39;ftp error: no host given&#39;</span><span class="p">)</span>
- <span class="n">host</span><span class="p">,</span> <span class="n">port</span> <span class="o">=</span> <span class="n">splitport</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
- <span class="n">user</span><span class="p">,</span> <span class="n">host</span> <span class="o">=</span> <span class="n">splituser</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
- <span class="k">if</span> <span class="n">user</span><span class="p">:</span> <span class="n">user</span><span class="p">,</span> <span class="n">passwd</span> <span class="o">=</span> <span class="n">splitpasswd</span><span class="p">(</span><span class="n">user</span><span class="p">)</span>
+ <span class="n">host</span><span class="p">,</span> <span class="n">port</span> <span class="o">=</span> <span class="n">_splitport</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
+ <span class="n">user</span><span class="p">,</span> <span class="n">host</span> <span class="o">=</span> <span class="n">_splituser</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">user</span><span class="p">:</span> <span class="n">user</span><span class="p">,</span> <span class="n">passwd</span> <span class="o">=</span> <span class="n">_splitpasswd</span><span class="p">(</span><span class="n">user</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span> <span class="n">passwd</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">host</span> <span class="o">=</span> <span class="n">unquote</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
<span class="n">user</span> <span class="o">=</span> <span class="n">unquote</span><span class="p">(</span><span class="n">user</span> <span class="ow">or</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
@@ -2060,7 +2093,7 @@
<span class="n">port</span> <span class="o">=</span> <span class="n">ftplib</span><span class="o">.</span><span class="n">FTP_PORT</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">port</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">port</span><span class="p">)</span>
- <span class="n">path</span><span class="p">,</span> <span class="n">attrs</span> <span class="o">=</span> <span class="n">splitattr</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
+ <span class="n">path</span><span class="p">,</span> <span class="n">attrs</span> <span class="o">=</span> <span class="n">_splitattr</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
<span class="n">path</span> <span class="o">=</span> <span class="n">unquote</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
<span class="n">dirs</span> <span class="o">=</span> <span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)</span>
<span class="n">dirs</span><span class="p">,</span> <span class="n">file</span> <span class="o">=</span> <span class="n">dirs</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">dirs</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
@@ -2082,7 +2115,7 @@
<span class="k">if</span> <span class="ow">not</span> <span class="n">file</span><span class="p">:</span> <span class="nb">type</span> <span class="o">=</span> <span class="s1">&#39;D&#39;</span>
<span class="k">else</span><span class="p">:</span> <span class="nb">type</span> <span class="o">=</span> <span class="s1">&#39;I&#39;</span>
<span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="n">attrs</span><span class="p">:</span>
- <span class="n">attr</span><span class="p">,</span> <span class="n">value</span> <span class="o">=</span> <span class="n">splitvalue</span><span class="p">(</span><span class="n">attr</span><span class="p">)</span>
+ <span class="n">attr</span><span class="p">,</span> <span class="n">value</span> <span class="o">=</span> <span class="n">_splitvalue</span><span class="p">(</span><span class="n">attr</span><span class="p">)</span>
<span class="k">if</span> <span class="n">attr</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;type&#39;</span> <span class="ow">and</span> \
<span class="n">value</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">&#39;a&#39;</span><span class="p">,</span> <span class="s1">&#39;A&#39;</span><span class="p">,</span> <span class="s1">&#39;i&#39;</span><span class="p">,</span> <span class="s1">&#39;I&#39;</span><span class="p">,</span> <span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="s1">&#39;D&#39;</span><span class="p">):</span>
<span class="nb">type</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
@@ -2143,7 +2176,7 @@
<span class="k">class</span> <span class="nc">FancyURLopener</span><span class="p">(</span><span class="n">URLopener</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Derived class with handlers for errors we can handle (perhaps).&quot;&quot;&quot;</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="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="n">URLopener</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">auth_cache</span> <span class="o">=</span> <span class="p">{}</span>
<span class="bp">self</span><span class="o">.</span><span class="n">tries</span> <span class="o">=</span> <span class="mi">0</span>
@@ -2265,11 +2298,11 @@
<span class="k">return</span> <span class="nb">getattr</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="n">url</span><span class="p">,</span> <span class="n">realm</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">retry_proxy_http_basic_auth</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">url</span><span class="p">,</span> <span class="n">realm</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="n">host</span><span class="p">,</span> <span class="n">selector</span> <span class="o">=</span> <span class="n">splithost</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
+ <span class="n">host</span><span class="p">,</span> <span class="n">selector</span> <span class="o">=</span> <span class="n">_splithost</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
<span class="n">newurl</span> <span class="o">=</span> <span class="s1">&#39;http://&#39;</span> <span class="o">+</span> <span class="n">host</span> <span class="o">+</span> <span class="n">selector</span>
<span class="n">proxy</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">proxies</span><span class="p">[</span><span class="s1">&#39;http&#39;</span><span class="p">]</span>
- <span class="n">urltype</span><span class="p">,</span> <span class="n">proxyhost</span> <span class="o">=</span> <span class="n">splittype</span><span class="p">(</span><span class="n">proxy</span><span class="p">)</span>
- <span class="n">proxyhost</span><span class="p">,</span> <span class="n">proxyselector</span> <span class="o">=</span> <span class="n">splithost</span><span class="p">(</span><span class="n">proxyhost</span><span class="p">)</span>
+ <span class="n">urltype</span><span class="p">,</span> <span class="n">proxyhost</span> <span class="o">=</span> <span class="n">_splittype</span><span class="p">(</span><span class="n">proxy</span><span class="p">)</span>
+ <span class="n">proxyhost</span><span class="p">,</span> <span class="n">proxyselector</span> <span class="o">=</span> <span class="n">_splithost</span><span class="p">(</span><span class="n">proxyhost</span><span class="p">)</span>
<span class="n">i</span> <span class="o">=</span> <span class="n">proxyhost</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;@&#39;</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
<span class="n">proxyhost</span> <span class="o">=</span> <span class="n">proxyhost</span><span class="p">[</span><span class="n">i</span><span class="p">:]</span>
<span class="n">user</span><span class="p">,</span> <span class="n">passwd</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_user_passwd</span><span class="p">(</span><span class="n">proxyhost</span><span class="p">,</span> <span class="n">realm</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span>
@@ -2283,11 +2316,11 @@
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">newurl</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">retry_proxy_https_basic_auth</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">url</span><span class="p">,</span> <span class="n">realm</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="n">host</span><span class="p">,</span> <span class="n">selector</span> <span class="o">=</span> <span class="n">splithost</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
+ <span class="n">host</span><span class="p">,</span> <span class="n">selector</span> <span class="o">=</span> <span class="n">_splithost</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
<span class="n">newurl</span> <span class="o">=</span> <span class="s1">&#39;https://&#39;</span> <span class="o">+</span> <span class="n">host</span> <span class="o">+</span> <span class="n">selector</span>
<span class="n">proxy</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">proxies</span><span class="p">[</span><span class="s1">&#39;https&#39;</span><span class="p">]</span>
- <span class="n">urltype</span><span class="p">,</span> <span class="n">proxyhost</span> <span class="o">=</span> <span class="n">splittype</span><span class="p">(</span><span class="n">proxy</span><span class="p">)</span>
- <span class="n">proxyhost</span><span class="p">,</span> <span class="n">proxyselector</span> <span class="o">=</span> <span class="n">splithost</span><span class="p">(</span><span class="n">proxyhost</span><span class="p">)</span>
+ <span class="n">urltype</span><span class="p">,</span> <span class="n">proxyhost</span> <span class="o">=</span> <span class="n">_splittype</span><span class="p">(</span><span class="n">proxy</span><span class="p">)</span>
+ <span class="n">proxyhost</span><span class="p">,</span> <span class="n">proxyselector</span> <span class="o">=</span> <span class="n">_splithost</span><span class="p">(</span><span class="n">proxyhost</span><span class="p">)</span>
<span class="n">i</span> <span class="o">=</span> <span class="n">proxyhost</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;@&#39;</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
<span class="n">proxyhost</span> <span class="o">=</span> <span class="n">proxyhost</span><span class="p">[</span><span class="n">i</span><span class="p">:]</span>
<span class="n">user</span><span class="p">,</span> <span class="n">passwd</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_user_passwd</span><span class="p">(</span><span class="n">proxyhost</span><span class="p">,</span> <span class="n">realm</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span>
@@ -2301,7 +2334,7 @@
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">newurl</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">retry_http_basic_auth</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">url</span><span class="p">,</span> <span class="n">realm</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="n">host</span><span class="p">,</span> <span class="n">selector</span> <span class="o">=</span> <span class="n">splithost</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
+ <span class="n">host</span><span class="p">,</span> <span class="n">selector</span> <span class="o">=</span> <span class="n">_splithost</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
<span class="n">i</span> <span class="o">=</span> <span class="n">host</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;@&#39;</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
<span class="n">host</span> <span class="o">=</span> <span class="n">host</span><span class="p">[</span><span class="n">i</span><span class="p">:]</span>
<span class="n">user</span><span class="p">,</span> <span class="n">passwd</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_user_passwd</span><span class="p">(</span><span class="n">host</span><span class="p">,</span> <span class="n">realm</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span>
@@ -2315,7 +2348,7 @@
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">newurl</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">retry_https_basic_auth</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">url</span><span class="p">,</span> <span class="n">realm</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
- <span class="n">host</span><span class="p">,</span> <span class="n">selector</span> <span class="o">=</span> <span class="n">splithost</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
+ <span class="n">host</span><span class="p">,</span> <span class="n">selector</span> <span class="o">=</span> <span class="n">_splithost</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
<span class="n">i</span> <span class="o">=</span> <span class="n">host</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;@&#39;</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
<span class="n">host</span> <span class="o">=</span> <span class="n">host</span><span class="p">[</span><span class="n">i</span><span class="p">:]</span>
<span class="n">user</span><span class="p">,</span> <span class="n">passwd</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_user_passwd</span><span class="p">(</span><span class="n">host</span><span class="p">,</span> <span class="n">realm</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span>
@@ -2396,7 +2429,7 @@
<span class="k">class</span> <span class="nc">ftpwrapper</span><span class="p">:</span>
<span class="sd">&quot;&quot;&quot;Class used by open_ftp() for cache of open FTP connections.&quot;&quot;&quot;</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">user</span><span class="p">,</span> <span class="n">passwd</span><span class="p">,</span> <span class="n">host</span><span class="p">,</span> <span class="n">port</span><span class="p">,</span> <span class="n">dirs</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+ <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">passwd</span><span class="p">,</span> <span class="n">host</span><span class="p">,</span> <span class="n">port</span><span class="p">,</span> <span class="n">dirs</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
<span class="n">persistent</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">user</span> <span class="o">=</span> <span class="n">user</span>
<span class="bp">self</span><span class="o">.</span><span class="n">passwd</span> <span class="o">=</span> <span class="n">passwd</span>
@@ -2532,24 +2565,26 @@
<span class="k">try</span><span class="p">:</span>
<span class="n">no_proxy</span> <span class="o">=</span> <span class="n">proxies</span><span class="p">[</span><span class="s1">&#39;no&#39;</span><span class="p">]</span>
<span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
- <span class="k">return</span> <span class="mi">0</span>
+ <span class="k">return</span> <span class="kc">False</span>
<span class="c1"># &#39;*&#39; is special case for always bypass</span>
<span class="k">if</span> <span class="n">no_proxy</span> <span class="o">==</span> <span class="s1">&#39;*&#39;</span><span class="p">:</span>
- <span class="k">return</span> <span class="mi">1</span>
+ <span class="k">return</span> <span class="kc">True</span>
+ <span class="n">host</span> <span class="o">=</span> <span class="n">host</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
<span class="c1"># strip port off host</span>
- <span class="n">hostonly</span><span class="p">,</span> <span class="n">port</span> <span class="o">=</span> <span class="n">splitport</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
+ <span class="n">hostonly</span><span class="p">,</span> <span class="n">port</span> <span class="o">=</span> <span class="n">_splitport</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
<span class="c1"># check if the host ends with any of the DNS suffixes</span>
- <span class="n">no_proxy_list</span> <span class="o">=</span> <span class="p">[</span><span class="n">proxy</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">for</span> <span class="n">proxy</span> <span class="ow">in</span> <span class="n">no_proxy</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">)]</span>
- <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">no_proxy_list</span><span class="p">:</span>
+ <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">no_proxy</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">):</span>
+ <span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="k">if</span> <span class="n">name</span><span class="p">:</span>
<span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">lstrip</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span> <span class="c1"># ignore leading dots</span>
- <span class="n">name</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">escape</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
- <span class="n">pattern</span> <span class="o">=</span> <span class="sa">r</span><span class="s1">&#39;(.+\.)?</span><span class="si">%s</span><span class="s1">$&#39;</span> <span class="o">%</span> <span class="n">name</span>
- <span class="k">if</span> <span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">pattern</span><span class="p">,</span> <span class="n">hostonly</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">I</span><span class="p">)</span>
- <span class="ow">or</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">pattern</span><span class="p">,</span> <span class="n">host</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">I</span><span class="p">)):</span>
- <span class="k">return</span> <span class="mi">1</span>
+ <span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
+ <span class="k">if</span> <span class="n">hostonly</span> <span class="o">==</span> <span class="n">name</span> <span class="ow">or</span> <span class="n">host</span> <span class="o">==</span> <span class="n">name</span><span class="p">:</span>
+ <span class="k">return</span> <span class="kc">True</span>
+ <span class="n">name</span> <span class="o">=</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">name</span>
+ <span class="k">if</span> <span class="n">hostonly</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="n">host</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
+ <span class="k">return</span> <span class="kc">True</span>
<span class="c1"># otherwise, don&#39;t bypass</span>
- <span class="k">return</span> <span class="mi">0</span>
+ <span class="k">return</span> <span class="kc">False</span>
<span class="c1"># This code tests an OSX specific data structure but is testable on all</span>
@@ -2566,9 +2601,9 @@
<span class="sd"> &#39;exceptions&#39;: [&#39;foo.bar&#39;, &#39;*.bar.com&#39;, &#39;127.0.0.1&#39;, &#39;10.1&#39;, &#39;10.0/16&#39;]</span>
<span class="sd"> }</span>
<span class="sd"> &quot;&quot;&quot;</span>
- <span class="kn">from</span> <span class="nn">fnmatch</span> <span class="k">import</span> <span class="n">fnmatch</span>
+ <span class="kn">from</span> <span class="nn">fnmatch</span> <span class="kn">import</span> <span class="n">fnmatch</span>
- <span class="n">hostonly</span><span class="p">,</span> <span class="n">port</span> <span class="o">=</span> <span class="n">splitport</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
+ <span class="n">hostonly</span><span class="p">,</span> <span class="n">port</span> <span class="o">=</span> <span class="n">_splitport</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">ip2num</span><span class="p">(</span><span class="n">ipAddr</span><span class="p">):</span>
<span class="n">parts</span> <span class="o">=</span> <span class="n">ipAddr</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span>
@@ -2615,7 +2650,7 @@
<span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">platform</span> <span class="o">==</span> <span class="s1">&#39;darwin&#39;</span><span class="p">:</span>
- <span class="kn">from</span> <span class="nn">_scproxy</span> <span class="k">import</span> <span class="n">_get_proxy_settings</span><span class="p">,</span> <span class="n">_get_proxies</span>
+ <span class="kn">from</span> <span class="nn">_scproxy</span> <span class="kn">import</span> <span class="n">_get_proxy_settings</span><span class="p">,</span> <span class="n">_get_proxies</span>
<span class="k">def</span> <span class="nf">proxy_bypass_macosx_sysconf</span><span class="p">(</span><span class="n">host</span><span class="p">):</span>
<span class="n">proxy_settings</span> <span class="o">=</span> <span class="n">_get_proxy_settings</span><span class="p">()</span>
@@ -2675,7 +2710,7 @@
<span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">proxyServer</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;;&#39;</span><span class="p">):</span>
<span class="n">protocol</span><span class="p">,</span> <span class="n">address</span> <span class="o">=</span> <span class="n">p</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;=&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="c1"># See if address has a type:// prefix</span>
- <span class="k">if</span> <span class="ow">not</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="s1">&#39;^([^/:]+)://&#39;</span><span class="p">,</span> <span class="n">address</span><span class="p">):</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="s1">&#39;(?:[^/:]+)://&#39;</span><span class="p">,</span> <span class="n">address</span><span class="p">):</span>
<span class="n">address</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%s</span><span class="s1">://</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">protocol</span><span class="p">,</span> <span class="n">address</span><span class="p">)</span>
<span class="n">proxies</span><span class="p">[</span><span class="n">protocol</span><span class="p">]</span> <span class="o">=</span> <span class="n">address</span>
<span class="k">else</span><span class="p">:</span>
@@ -2722,7 +2757,7 @@
<span class="k">if</span> <span class="ow">not</span> <span class="n">proxyEnable</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">proxyOverride</span><span class="p">:</span>
<span class="k">return</span> <span class="mi">0</span>
<span class="c1"># try to make a host list from name and IP address.</span>
- <span class="n">rawHost</span><span class="p">,</span> <span class="n">port</span> <span class="o">=</span> <span class="n">splitport</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
+ <span class="n">rawHost</span><span class="p">,</span> <span class="n">port</span> <span class="o">=</span> <span class="n">_splitport</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
<span class="n">host</span> <span class="o">=</span> <span class="p">[</span><span class="n">rawHost</span><span class="p">]</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">addr</span> <span class="o">=</span> <span class="n">socket</span><span class="o">.</span><span class="n">gethostbyname</span><span class="p">(</span><span class="n">rawHost</span><span class="p">)</span>
@@ -2802,17 +2837,15 @@
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
- <h3>Quick search</h3>
+ <h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
- <input type="text" name="q" />
+ <input type="text" name="q" aria-labelledby="searchlabel" />
<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>
+<script>$('#searchbox').show(0);</script>
@@ -2829,7 +2862,7 @@
&copy;2017, Matej Cepl <mcepl@cepl.eu>.
|
- Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a>
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 3.2.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
diff --git a/doc/html/genindex.html b/doc/html/genindex.html
index c214985..d22a11f 100644
--- a/doc/html/genindex.html
+++ b/doc/html/genindex.html
@@ -43,6 +43,7 @@
| <a href="#F"><strong>F</strong></a>
| <a href="#G"><strong>G</strong></a>
| <a href="#H"><strong>H</strong></a>
+ | <a href="#I"><strong>I</strong></a>
| <a href="#K"><strong>K</strong></a>
| <a href="#L"><strong>L</strong></a>
| <a href="#M"><strong>M</strong></a>
@@ -52,34 +53,96 @@
| <a href="#Q"><strong>Q</strong></a>
| <a href="#R"><strong>R</strong></a>
| <a href="#S"><strong>S</strong></a>
+ | <a href="#T"><strong>T</strong></a>
| <a href="#U"><strong>U</strong></a>
| <a href="#V"><strong>V</strong></a>
| <a href="#W"><strong>W</strong></a>
+ | <a href="#X"><strong>X</strong></a>
</div>
<h2 id="A">A</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.accept">accept() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.accept_ssl">accept_ssl() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Store.add_cert">add_cert() (M2Crypto.X509.X509_Store method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Name.add_entry_by_txt">add_entry_by_txt() (M2Crypto.X509.X509_Name method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.add_ext">add_ext() (M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.Request.add_extensions">add_extensions() (M2Crypto.X509.Request method)</a>
+</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.add_session">add_session() (M2Crypto.SSL.Context.Context method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Store.add_x509">add_x509() (M2Crypto.X509.X509_Store method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.PKey.as_der">as_der() (M2Crypto.EVP.PKey method)</a>
<ul>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Session.Session.as_der">(M2Crypto.SSL.Session.Session method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.Request.as_der">(M2Crypto.X509.Request method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.as_der">(M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Name.as_der">(M2Crypto.X509.X509_Name method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Stack.as_der">(M2Crypto.X509.X509_Stack method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Name.as_hash">as_hash() (M2Crypto.X509.X509_Name method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC.as_pem">as_pem() (M2Crypto.EC.EC method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.EVP.PKey.as_pem">(M2Crypto.EVP.PKey method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.RSA.RSA.as_pem">(M2Crypto.RSA.RSA method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.Request.as_pem">(M2Crypto.X509.Request method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.as_pem">(M2Crypto.X509.X509 method)</a>
+</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
- <li><a href="M2Crypto.html#M2Crypto.EVP.PKey.as_pem">as_pem() (M2Crypto.EVP.PKey method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.ASN1_String.as_text">as_text() (M2Crypto.ASN1.ASN1_String method)</a>
<ul>
- <li><a href="M2Crypto.html#M2Crypto.RSA.RSA.as_pem">(M2Crypto.RSA.RSA method)</a>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Session.Session.as_text">(M2Crypto.SSL.Session.Session method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.CRL.as_text">(M2Crypto.X509.CRL method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.Request.as_text">(M2Crypto.X509.Request method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.as_text">(M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Name.as_text">(M2Crypto.X509.X509_Name method)</a>
</li>
</ul></li>
- <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Session.Session.as_text">as_text() (M2Crypto.SSL.Session.Session method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.ASN1_Integer">ASN1_Integer (class in M2Crypto.ASN1)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.ASN1_Object">ASN1_Object (class in M2Crypto.ASN1)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.ASN1_String">ASN1_String (class in M2Crypto.ASN1)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.ASN1_TIME">ASN1_TIME (class in M2Crypto.ASN1)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.ASN1_UTCTIME">ASN1_UTCTIME (in module M2Crypto.ASN1)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.PKey.assign_rsa">assign_rsa() (M2Crypto.EVP.PKey method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.ftpslib.FTP_TLS.auth_ssl">auth_ssl() (M2Crypto.ftpslib.FTP_TLS method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.ftpslib.FTP_TLS.auth_tls">auth_tls() (M2Crypto.ftpslib.FTP_TLS method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.AuthCookie.AuthCookie">AuthCookie (class in M2Crypto.AuthCookie)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.AuthCookie.AuthCookieJar">AuthCookieJar (class in M2Crypto.AuthCookie)</a>
+</li>
</ul></td>
</tr></table>
@@ -88,32 +151,124 @@
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="M2Crypto.html#M2Crypto.util.bin_to_hex">bin_to_hex() (in module M2Crypto.util)</a>
</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.bind">bind() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO">BIO (class in M2Crypto.BIO)</a>
+</li>
+ </ul></td>
+ <td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.bio_ptr">bio_ptr() (M2Crypto.BIO.BIO method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIOError">BIOError</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.m2urllib2.build_opener">build_opener() (in module M2Crypto.m2urllib2)</a>
+</li>
</ul></td>
</tr></table>
<h2 id="C">C</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
- <li><a href="M2Crypto.html#M2Crypto.RSA.RSA.check_key">check_key() (M2Crypto.RSA.RSA method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.check_ca">check_ca() (M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA.check_key">check_key() (M2Crypto.DSA.DSA method)</a>
<ul>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA_pub.check_key">(M2Crypto.DSA.DSA_pub method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC.check_key">(M2Crypto.EC.EC method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.RSA.RSA.check_key">(M2Crypto.RSA.RSA method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.RSA.RSA_pub.check_key">(M2Crypto.RSA.RSA_pub method)</a>
</li>
</ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.DH.DH.check_params">check_params() (M2Crypto.DH.DH method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.check_purpose">check_purpose() (M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Checker.Checker">Checker (class in M2Crypto.SSL.Checker)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.Cipher">Cipher (class in M2Crypto.EVP)</a>
<ul>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.Cipher">(class in M2Crypto.SMIME)</a>
+</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Cipher.Cipher">(class in M2Crypto.SSL.Cipher)</a>
</li>
</ul></li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Cipher.Cipher_Stack">Cipher_Stack (class in M2Crypto.SSL.Cipher)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.CipherStream">CipherStream (class in M2Crypto.BIO)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.Engine.cleanup">cleanup() (in module M2Crypto.Engine)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.threading.cleanup">(in module M2Crypto.threading)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.clear">clear() (M2Crypto.SSL.Connection.Connection method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.clear">(M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.close">close() (M2Crypto.BIO.BIO method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.CipherStream.close">(M2Crypto.BIO.CipherStream method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.File.close">(M2Crypto.BIO.File method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.IOBuffer.close">(M2Crypto.BIO.IOBuffer method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.MemoryBuffer.close">(M2Crypto.BIO.MemoryBuffer method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.httpslib.HTTPSConnection.close">(M2Crypto.httpslib.HTTPSConnection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.close">(M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.close">(M2Crypto.SSL.Context.Context method)</a>
+</li>
+ </ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
- <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Cipher.Cipher_Stack">Cipher_Stack (class in M2Crypto.SSL.Cipher)</a>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC.compute_dh_key">compute_dh_key() (M2Crypto.EC.EC method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.DH.DH.compute_key">compute_key() (M2Crypto.DH.DH method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.httpslib.HTTPSConnection.connect">connect() (M2Crypto.httpslib.HTTPSConnection method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.httpslib.ProxyHTTPSConnection.connect">(M2Crypto.httpslib.ProxyHTTPSConnection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.connect">(M2Crypto.SSL.Connection.Connection method)</a>
</li>
- <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.close">close() (M2Crypto.SSL.Context.Context method)</a>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher.connect">(M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.connect_ssl">connect_ssl() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection">Connection (class in M2Crypto.SSL.Connection)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.connectionLost">connectionLost() (M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.connectionMade">connectionMade() (M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.TwistedProtocolWrapper.connectSSL">connectSSL() (in module M2Crypto.SSL.TwistedProtocolWrapper)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.TwistedProtocolWrapper.connectTCP">connectTCP() (in module M2Crypto.SSL.TwistedProtocolWrapper)</a>
</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context">Context (class in M2Crypto.SSL.Context)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Name_Entry.create_by_txt">create_by_txt() (M2Crypto.X509.X509_Name_Entry method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher.create_socket">create_socket() (M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.CRL">CRL (class in M2Crypto.X509)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.Engine.Engine.ctrl_cmd_string">ctrl_cmd_string() (M2Crypto.Engine.Engine method)</a>
+</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.ctxmap">ctxmap() (in module M2Crypto.SSL.Context)</a>
</li>
</ul></td>
@@ -122,6 +277,18 @@
<h2 id="D">D</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.AuthCookie.AuthCookie.data">data() (M2Crypto.AuthCookie.AuthCookie method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.dataReceived">dataReceived() (M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.SMIME.decrypt">decrypt() (M2Crypto.SMIME.SMIME method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.httpslib.HTTPSConnection.default_port">default_port (M2Crypto.httpslib.HTTPSConnection attribute)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.DH.DH">DH (class in M2Crypto.DH)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.DH.DHError">DHError</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.HMAC.digest">digest() (M2Crypto.EVP.HMAC method)</a>
<ul>
@@ -132,10 +299,10 @@
</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.PKey.digest_sign_final">digest_sign_final() (M2Crypto.EVP.PKey method)</a>
</li>
- <li><a href="M2Crypto.html#M2Crypto.EVP.PKey.digest_sign_init">digest_sign_init() (M2Crypto.EVP.PKey method)</a>
-</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.EVP.PKey.digest_sign_init">digest_sign_init() (M2Crypto.EVP.PKey method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.PKey.digest_sign_update">digest_sign_update() (M2Crypto.EVP.PKey method)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.PKey.digest_verify">digest_verify() (M2Crypto.EVP.PKey method)</a>
@@ -146,20 +313,60 @@
</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.PKey.digest_verify_update">digest_verify_update() (M2Crypto.EVP.PKey method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.SSLBio.do_handshake">do_handshake() (M2Crypto.BIO.SSLBio method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA">DSA (class in M2Crypto.DSA)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA_pub">DSA_pub (class in M2Crypto.DSA)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSAError">DSAError</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.LocalTimezone.dst">dst() (M2Crypto.ASN1.LocalTimezone method)</a>
+</li>
</ul></td>
</tr></table>
<h2 id="E">E</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC">EC (class in M2Crypto.EC)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.ec_error">ec_error() (in module M2Crypto.EC)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC_pub">EC_pub (class in M2Crypto.EC)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.ECError">ECError</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.SMIME.encrypt">encrypt() (M2Crypto.SMIME.SMIME method)</a>
+</li>
+ </ul></td>
+ <td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.httpslib.ProxyHTTPSConnection.endheaders">endheaders() (M2Crypto.httpslib.ProxyHTTPSConnection method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.Engine.Engine">Engine (class in M2Crypto.Engine)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.Engine.EngineError">EngineError</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Name.entry_count">entry_count() (M2Crypto.X509.X509_Name method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.EVPError">EVPError</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.AuthCookie.AuthCookie.expiry">expiry() (M2Crypto.AuthCookie.AuthCookie method)</a>
+</li>
</ul></td>
</tr></table>
<h2 id="F">F</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.File">File (class in M2Crypto.BIO)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.fileno">fileno() (M2Crypto.BIO.BIO method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.fileno">(M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ </ul></li>
<li><a href="M2Crypto.html#M2Crypto.EVP.Cipher.final">final() (M2Crypto.EVP.Cipher method)</a>
<ul>
@@ -169,7 +376,23 @@
</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.PKey.final">(M2Crypto.EVP.PKey method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.RC4.RC4.final">(M2Crypto.RC4.RC4 method)</a>
+</li>
+ </ul></li>
+ </ul></td>
+ <td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.Engine.Engine.finish">finish() (M2Crypto.Engine.Engine method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.flush">flush() (M2Crypto.BIO.BIO method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.File.flush">(M2Crypto.BIO.File method)</a>
+</li>
</ul></li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.SSLServer.ForkingSSLServer">ForkingSSLServer (class in M2Crypto.SSL.SSLServer)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.ftpslib.FTP_TLS">FTP_TLS (class in M2Crypto.ftpslib)</a>
+</li>
</ul></td>
</tr></table>
@@ -177,57 +400,229 @@
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="M2Crypto.html#M2Crypto.RSA.gen_key">gen_key() (in module M2Crypto.RSA)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.DH.DH.gen_key">(M2Crypto.DH.DH method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA.gen_key">(M2Crypto.DSA.DSA method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC.gen_key">(M2Crypto.EC.EC method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.DH.gen_params">gen_params() (in module M2Crypto.DH)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.gen_params">(in module M2Crypto.DSA)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.gen_params">(in module M2Crypto.EC)</a>
</li>
+ </ul></li>
<li><a href="M2Crypto.html#M2Crypto.util.genparam_callback">genparam_callback() (in module M2Crypto.util)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.PKCS7.get0_signers">get0_signers() (M2Crypto.SMIME.PKCS7 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Store_Context.get1_chain">get1_chain() (M2Crypto.X509.X509_Store_Context method)</a>
+</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.get_allow_unknown_ca">get_allow_unknown_ca() (M2Crypto.SSL.Context.Context method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.get_builtin_curves">get_builtin_curves() (in module M2Crypto.EC)</a>
+</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.get_cert_store">get_cert_store() (M2Crypto.SSL.Context.Context method)</a>
</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_cipher">get_cipher() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_cipher_list">get_cipher_list() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_ciphers">get_ciphers() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_context">get_context() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Extension.get_critical">get_critical() (M2Crypto.X509.X509_Extension method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Store_Context.get_current_cert">get_current_cert() (M2Crypto.X509.X509_Store_Context method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Name_Entry.get_data">get_data() (M2Crypto.X509.X509_Name_Entry method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.ASN1_TIME.get_datetime">get_datetime() (M2Crypto.ASN1.ASN1_TIME method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_default_session_timeout">get_default_session_timeout() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC_pub.get_der">get_der() (M2Crypto.EC.EC_pub method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Name.get_entries_by_nid">get_entries_by_nid() (M2Crypto.X509.X509_Name method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.Err.get_error">get_error() (in module M2Crypto.Err)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Store_Context.get_error">(M2Crypto.X509.X509_Store_Context method)</a>
</li>
+ </ul></li>
<li><a href="M2Crypto.html#M2Crypto.Err.get_error_code">get_error_code() (in module M2Crypto.Err)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Store_Context.get_error_depth">get_error_depth() (M2Crypto.X509.X509_Store_Context method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.Err.get_error_func">get_error_func() (in module M2Crypto.Err)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.Err.get_error_lib">get_error_lib() (in module M2Crypto.Err)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.Err.get_error_message">get_error_message() (in module M2Crypto.Err)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.Err.get_error_reason">get_error_reason() (in module M2Crypto.Err)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.get_ext">get_ext() (M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.get_ext_at">get_ext_at() (M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.get_ext_count">get_ext_count() (M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.get_fingerprint">get_fingerprint() (M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.Engine.Engine.get_id">get_id() (M2Crypto.Engine.Engine method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.get_issuer">get_issuer() (M2Crypto.X509.X509 method)</a>
+</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
- <li><a href="M2Crypto.html#M2Crypto.Err.get_error_reason">get_error_reason() (in module M2Crypto.Err)</a>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC_pub.get_key">get_key() (M2Crypto.EC.EC_pub method)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.PKey.get_modulus">get_modulus() (M2Crypto.EVP.PKey method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.Engine.Engine.get_name">get_name() (M2Crypto.Engine.Engine method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Extension.get_name">(M2Crypto.X509.X509_Extension method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.get_not_after">get_not_after() (M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.get_not_before">get_not_before() (M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Name_Entry.get_object">get_object() (M2Crypto.X509.X509_Name_Entry method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_peer_cert">get_peer_cert() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_peer_cert_chain">get_peer_cert_chain() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.Request.get_pubkey">get_pubkey() (M2Crypto.X509.Request method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.get_pubkey">(M2Crypto.X509.X509 method)</a>
+</li>
+ </ul></li>
<li><a href="M2Crypto.html#M2Crypto.EVP.PKey.get_rsa">get_rsa() (M2Crypto.EVP.PKey method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.get_serial_number">get_serial_number() (M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.httpslib.HTTPSConnection.get_session">get_session() (M2Crypto.httpslib.HTTPSConnection method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_session">(M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ </ul></li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.get_session_cache_mode">get_session_cache_mode() (M2Crypto.SSL.Context.Context method)</a>
</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.get_session_timeout">get_session_timeout() (M2Crypto.SSL.Context.Context method)</a>
</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_shutdown">get_shutdown() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_socket_read_timeout">get_socket_read_timeout() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_socket_write_timeout">get_socket_write_timeout() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_state">get_state() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.Request.get_subject">get_subject() (M2Crypto.X509.Request method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.get_subject">(M2Crypto.X509.X509 method)</a>
+</li>
+ </ul></li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Session.Session.get_time">get_time() (M2Crypto.SSL.Session.Session method)</a>
</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Session.Session.get_timeout">get_timeout() (M2Crypto.SSL.Session.Session method)</a>
</li>
- <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.get_verify_depth">get_verify_depth() (M2Crypto.SSL.Context.Context method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Extension.get_value">get_value() (M2Crypto.X509.X509_Extension method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_verify_depth">get_verify_depth() (M2Crypto.SSL.Connection.Connection method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.get_verify_depth">(M2Crypto.SSL.Context.Context method)</a>
</li>
- <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.get_verify_mode">get_verify_mode() (M2Crypto.SSL.Context.Context method)</a>
+ </ul></li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_verify_mode">get_verify_mode() (M2Crypto.SSL.Connection.Connection method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.get_verify_mode">(M2Crypto.SSL.Context.Context method)</a>
</li>
+ </ul></li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_verify_result">get_verify_result() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.get_version">get_version() (M2Crypto.SSL.Connection.Connection method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.X509.Request.get_version">(M2Crypto.X509.Request method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.get_version">(M2Crypto.X509.X509 method)</a>
+</li>
+ </ul></li>
<li><a href="M2Crypto.html#M2Crypto.Err.get_x509_verify_error">get_x509_verify_error() (in module M2Crypto.Err)</a>
</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.getpeername">getpeername() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.getsockname">getsockname() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.getsockopt">getsockopt() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.MemoryBuffer.getvalue">getvalue() (M2Crypto.BIO.MemoryBuffer method)</a>
+</li>
</ul></td>
</tr></table>
<h2 id="H">H</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.SSLServer.SSLServer.handle_error">handle_error() (M2Crypto.SSL.SSLServer.SSLServer method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.SSLServer.SSLServer.handle_request">handle_request() (M2Crypto.SSL.SSLServer.SSLServer method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.AuthCookie.AuthCookie.headerValue">headerValue() (M2Crypto.AuthCookie.AuthCookie method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.HMAC">HMAC (class in M2Crypto.EVP)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="M2Crypto.html#M2Crypto.EVP.hmac">hmac() (in module M2Crypto.EVP)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.m2urllib2.HTTPSHandler.https_open">https_open() (M2Crypto.m2urllib2.HTTPSHandler method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.m2urllib2.HTTPSHandler.https_request">https_request() (M2Crypto.m2urllib2.HTTPSHandler method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.httpslib.HTTPSConnection">HTTPSConnection (class in M2Crypto.httpslib)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.m2urllib2.HTTPSHandler">HTTPSHandler (class in M2Crypto.m2urllib2)</a>
+</li>
+ </ul></td>
+</tr></table>
+
+<h2 id="I">I</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.threading.init">init() (in module M2Crypto.threading)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.Engine.Engine.init">(M2Crypto.Engine.Engine method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.IOBuffer">IOBuffer (class in M2Crypto.BIO)</a>
+</li>
+ </ul></td>
+ <td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.AuthCookie.AuthCookie.isExpired">isExpired() (M2Crypto.AuthCookie.AuthCookie method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.AuthCookie.AuthCookieJar.isGoodCookie">isGoodCookie() (M2Crypto.AuthCookie.AuthCookieJar method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.AuthCookie.AuthCookieJar.isGoodCookieString">isGoodCookieString() (M2Crypto.AuthCookie.AuthCookieJar method)</a>
+</li>
</ul></td>
</tr></table>
@@ -242,43 +637,137 @@
<h2 id="L">L</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
- <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.load_cert">load_cert() (M2Crypto.SSL.Context.Context method)</a>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.listen">listen() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.TwistedProtocolWrapper.listenSSL">listenSSL() (in module M2Crypto.SSL.TwistedProtocolWrapper)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.TwistedProtocolWrapper.listenTCP">listenTCP() (in module M2Crypto.SSL.TwistedProtocolWrapper)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.load_cert">load_cert() (in module M2Crypto.X509)</a>
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.load_cert">(M2Crypto.SSL.Context.Context method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.load_cert_bio">load_cert_bio() (in module M2Crypto.X509)</a>
</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.load_cert_chain">load_cert_chain() (M2Crypto.SSL.Context.Context method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.load_cert_der_string">load_cert_der_string() (in module M2Crypto.X509)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.load_cert_string">load_cert_string() (in module M2Crypto.X509)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.Engine.Engine.load_certificate">load_certificate() (M2Crypto.Engine.Engine method)</a>
+</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.load_client_CA">load_client_CA() (M2Crypto.SSL.Context.Context method)</a>
</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.load_client_ca">load_client_ca() (M2Crypto.SSL.Context.Context method)</a>
</li>
- <li><a href="M2Crypto.html#M2Crypto.EVP.load_key">load_key() (in module M2Crypto.EVP)</a>
+ <li><a href="M2Crypto.html#M2Crypto.X509.load_crl">load_crl() (in module M2Crypto.X509)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.Engine.load_dynamic">load_dynamic() (in module M2Crypto.Engine)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.Engine.load_dynamic_engine">load_dynamic_engine() (in module M2Crypto.Engine)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.Rand.load_file">load_file() (in module M2Crypto.Rand)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Store.load_info">load_info() (M2Crypto.X509.X509_Store method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.load_key">load_key() (in module M2Crypto.DSA)</a>
<ul>
+ <li><a href="M2Crypto.html#M2Crypto.EC.load_key">(in module M2Crypto.EC)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EVP.load_key">(in module M2Crypto.EVP)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.RSA.load_key">(in module M2Crypto.RSA)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.SMIME.load_key">(M2Crypto.SMIME.SMIME method)</a>
+</li>
</ul></li>
- <li><a href="M2Crypto.html#M2Crypto.EVP.load_key_bio">load_key_bio() (in module M2Crypto.EVP)</a>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.load_key_bio">load_key_bio() (in module M2Crypto.DSA)</a>
<ul>
+ <li><a href="M2Crypto.html#M2Crypto.EC.load_key_bio">(in module M2Crypto.EC)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EVP.load_key_bio">(in module M2Crypto.EVP)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.RSA.load_key_bio">(in module M2Crypto.RSA)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.SMIME.load_key_bio">(M2Crypto.SMIME.SMIME method)</a>
+</li>
</ul></li>
<li><a href="M2Crypto.html#M2Crypto.EVP.load_key_bio_pubkey">load_key_bio_pubkey() (in module M2Crypto.EVP)</a>
</li>
- </ul></td>
- <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="M2Crypto.html#M2Crypto.EVP.load_key_pubkey">load_key_pubkey() (in module M2Crypto.EVP)</a>
</li>
- <li><a href="M2Crypto.html#M2Crypto.EVP.load_key_string">load_key_string() (in module M2Crypto.EVP)</a>
+ <li><a href="M2Crypto.html#M2Crypto.EC.load_key_string">load_key_string() (in module M2Crypto.EC)</a>
<ul>
+ <li><a href="M2Crypto.html#M2Crypto.EVP.load_key_string">(in module M2Crypto.EVP)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.RSA.load_key_string">(in module M2Crypto.RSA)</a>
</li>
</ul></li>
- <li><a href="M2Crypto.html#M2Crypto.EVP.load_key_string_pubkey">load_key_string_pubkey() (in module M2Crypto.EVP)</a>
+ </ul></td>
+ <td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.EC.load_key_string_pubkey">load_key_string_pubkey() (in module M2Crypto.EC)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.EVP.load_key_string_pubkey">(in module M2Crypto.EVP)</a>
</li>
- <li><a href="M2Crypto.html#M2Crypto.RSA.load_pub_key">load_pub_key() (in module M2Crypto.RSA)</a>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Store.load_locations">load_locations() (M2Crypto.X509.X509_Store method)</a>
</li>
- <li><a href="M2Crypto.html#M2Crypto.RSA.load_pub_key_bio">load_pub_key_bio() (in module M2Crypto.RSA)</a>
+ <li><a href="M2Crypto.html#M2Crypto.Engine.load_openssl">load_openssl() (in module M2Crypto.Engine)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.DH.load_params">load_params() (in module M2Crypto.DH)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.load_params">(in module M2Crypto.DSA)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.DH.load_params_bio">load_params_bio() (in module M2Crypto.DH)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.load_params_bio">(in module M2Crypto.DSA)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.load_pkcs7">load_pkcs7() (in module M2Crypto.SMIME)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.load_pkcs7_bio">load_pkcs7_bio() (in module M2Crypto.SMIME)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.load_pkcs7_bio_der">load_pkcs7_bio_der() (in module M2Crypto.SMIME)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.load_pkcs7_der">load_pkcs7_der() (in module M2Crypto.SMIME)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.Engine.Engine.load_private_key">load_private_key() (M2Crypto.Engine.Engine method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.load_pub_key">load_pub_key() (in module M2Crypto.DSA)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.EC.load_pub_key">(in module M2Crypto.EC)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.RSA.load_pub_key">(in module M2Crypto.RSA)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.load_pub_key_bio">load_pub_key_bio() (in module M2Crypto.DSA)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.EC.load_pub_key_bio">(in module M2Crypto.EC)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.RSA.load_pub_key_bio">(in module M2Crypto.RSA)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.Engine.Engine.load_public_key">load_public_key() (M2Crypto.Engine.Engine method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.load_request">load_request() (in module M2Crypto.X509)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.load_request_bio">load_request_bio() (in module M2Crypto.X509)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.load_request_der_string">load_request_der_string() (in module M2Crypto.X509)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.load_request_string">load_request_string() (in module M2Crypto.X509)</a>
</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Session.load_session">load_session() (in module M2Crypto.SSL.Session)</a>
</li>
@@ -286,14 +775,52 @@
</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.load_verify_locations">load_verify_locations() (M2Crypto.SSL.Context.Context method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.LocalTimezone">LocalTimezone (class in M2Crypto.ASN1)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.loseConnection">loseConnection() (M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper method)</a>
+</li>
</ul></td>
</tr></table>
<h2 id="M">M</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.ASN1_Integer.m2_asn1_integer_free">m2_asn1_integer_free() (M2Crypto.ASN1.ASN1_Integer method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.ASN1_Object.m2_asn1_object_free">m2_asn1_object_free() (M2Crypto.ASN1.ASN1_Object method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.ASN1_String.m2_asn1_string_free">m2_asn1_string_free() (M2Crypto.ASN1.ASN1_String method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.ASN1_TIME.m2_asn1_time_free">m2_asn1_time_free() (M2Crypto.ASN1.ASN1_TIME method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.m2_bio_free">m2_bio_free() (M2Crypto.BIO.BIO method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.CipherStream.m2_bio_free">(M2Crypto.BIO.CipherStream method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.IOBuffer.m2_bio_free">(M2Crypto.BIO.IOBuffer method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.m2_bio_free">(M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.m2_bio_noclose">m2_bio_noclose (M2Crypto.SSL.Connection.Connection attribute)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.CipherStream.m2_bio_pop">m2_bio_pop() (M2Crypto.BIO.CipherStream method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.IOBuffer.m2_bio_pop">(M2Crypto.BIO.IOBuffer method)</a>
+</li>
+ </ul></li>
<li><a href="M2Crypto.html#M2Crypto.EVP.Cipher.m2_cipher_ctx_free">m2_cipher_ctx_free() (M2Crypto.EVP.Cipher method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.DH.DH.m2_dh_free">m2_dh_free() (M2Crypto.DH.DH method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA.m2_dsa_free">m2_dsa_free() (M2Crypto.DSA.DSA method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC.m2_ec_key_free">m2_ec_key_free() (M2Crypto.EC.EC method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.Engine.Engine.m2_engine_free">m2_engine_free() (M2Crypto.Engine.Engine method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.HMAC.m2_hmac_ctx_free">m2_hmac_ctx_free() (M2Crypto.EVP.HMAC method)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.MessageDigest.m2_md_ctx_free">m2_md_ctx_free() (M2Crypto.EVP.MessageDigest method)</a>
@@ -302,14 +829,108 @@
<li><a href="M2Crypto.html#M2Crypto.EVP.PKey.m2_md_ctx_free">(M2Crypto.EVP.PKey method)</a>
</li>
</ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.PKCS7.m2_pkcs7_free">m2_pkcs7_free() (M2Crypto.SMIME.PKCS7 method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.PKey.m2_pkey_free">m2_pkey_free() (M2Crypto.EVP.PKey method)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.RSA.RSA.m2_rsa_free">m2_rsa_free() (M2Crypto.RSA.RSA method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Extension_Stack.m2_sk_x509_extension_free">m2_sk_x509_extension_free() (M2Crypto.X509.X509_Extension_Stack method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Stack.m2_sk_x509_free">m2_sk_x509_free() (M2Crypto.X509.X509_Stack method)</a>
+</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.m2_ssl_ctx_free">m2_ssl_ctx_free() (M2Crypto.SSL.Context.Context method)</a>
</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.m2_ssl_free">m2_ssl_free() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Session.Session.m2_ssl_session_free">m2_ssl_session_free() (M2Crypto.SSL.Session.Session method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.CRL.m2_x509_crl_free">m2_x509_crl_free() (M2Crypto.X509.CRL method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Extension.m2_x509_extension_free">m2_x509_extension_free() (M2Crypto.X509.X509_Extension method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.m2_x509_free">m2_x509_free() (M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Name_Entry.m2_x509_name_entry_free">m2_x509_name_entry_free() (M2Crypto.X509.X509_Name_Entry method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Name.m2_x509_name_free">m2_x509_name_free() (M2Crypto.X509.X509_Name method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.Request.m2_x509_req_free">m2_x509_req_free() (M2Crypto.X509.Request method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Store_Context.m2_x509_store_ctx_free">m2_x509_store_ctx_free() (M2Crypto.X509.X509_Store_Context method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Store.m2_x509_store_free">m2_x509_store_free() (M2Crypto.X509.X509_Store method)</a>
+</li>
+ <li>
+ M2Crypto.__init__
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.__init__">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.ASN1
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.ASN1">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.AuthCookie
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.AuthCookie">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.BIO
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.BIO">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.BN
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.BN">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.callback
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.callback">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.DH
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.DH">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.DSA
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.DSA">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.EC
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.EC">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.Engine
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.Engine">module</a>
+</li>
+ </ul></li>
<li>
M2Crypto.Err
@@ -325,6 +946,20 @@
</li>
</ul></li>
<li>
+ M2Crypto.ftpslib
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.ftpslib">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.httpslib
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.httpslib">module</a>
+</li>
+ </ul></li>
+ <li>
M2Crypto.m2
<ul>
@@ -339,6 +974,43 @@
</li>
</ul></li>
<li>
+ M2Crypto.m2urllib
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.m2urllib">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.m2urllib2
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.m2urllib2">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.m2xmlrpclib
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.m2xmlrpclib">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.Rand
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.Rand">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.RC4
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.RC4">module</a>
+</li>
+ </ul></li>
+ </ul></td>
+ <td style="width: 33%; vertical-align: top;"><ul>
+ <li>
M2Crypto.RSA
<ul>
@@ -346,6 +1018,20 @@
</li>
</ul></li>
<li>
+ M2Crypto.SMIME
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.SMIME">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.SSL
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL">module</a>
+</li>
+ </ul></li>
+ <li>
M2Crypto.SSL.cb
<ul>
@@ -353,14 +1039,26 @@
</li>
</ul></li>
<li>
+ M2Crypto.SSL.Checker
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL.Checker">module</a>
+</li>
+ </ul></li>
+ <li>
M2Crypto.SSL.Cipher
<ul>
<li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL.Cipher">module</a>
</li>
</ul></li>
- </ul></td>
- <td style="width: 33%; vertical-align: top;"><ul>
+ <li>
+ M2Crypto.SSL.Connection
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL.Connection">module</a>
+</li>
+ </ul></li>
<li>
M2Crypto.SSL.Context
@@ -376,42 +1074,148 @@
</li>
</ul></li>
<li>
+ M2Crypto.SSL.ssl_dispatcher
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL.ssl_dispatcher">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.SSL.SSLServer
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL.SSLServer">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.SSL.timeout
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL.timeout">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.SSL.TwistedProtocolWrapper
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL.TwistedProtocolWrapper">module</a>
+</li>
+ </ul></li>
+ <li>
+ M2Crypto.threading
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.threading">module</a>
+</li>
+ </ul></li>
+ <li>
M2Crypto.util
<ul>
<li><a href="M2Crypto.html#module-M2Crypto.util">module</a>
</li>
</ul></li>
+ <li>
+ M2Crypto.X509
+
+ <ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.X509">module</a>
+</li>
+ </ul></li>
<li><a href="M2Crypto.html#M2Crypto.Err.M2CryptoError">M2CryptoError</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.AuthCookie.AuthCookie.mac">mac() (M2Crypto.AuthCookie.AuthCookie method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.AuthCookie.AuthCookieJar.makeCookie">makeCookie() (M2Crypto.AuthCookie.AuthCookieJar method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.makefile">makefile() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.map">map() (in module M2Crypto.SSL.Context)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.MemoryBuffer">MemoryBuffer (class in M2Crypto.BIO)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.MessageDigest">MessageDigest (class in M2Crypto.EVP)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.AuthCookie.mix">mix() (in module M2Crypto.AuthCookie)</a>
+</li>
<li>
module
<ul>
+ <li><a href="M2Crypto.html#module-M2Crypto.__init__">M2Crypto.__init__</a>
+</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.ASN1">M2Crypto.ASN1</a>
+</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.AuthCookie">M2Crypto.AuthCookie</a>
+</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.BIO">M2Crypto.BIO</a>
+</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.BN">M2Crypto.BN</a>
+</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.callback">M2Crypto.callback</a>
+</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.DH">M2Crypto.DH</a>
+</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.DSA">M2Crypto.DSA</a>
+</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.EC">M2Crypto.EC</a>
+</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.Engine">M2Crypto.Engine</a>
+</li>
<li><a href="M2Crypto.html#module-M2Crypto.Err">M2Crypto.Err</a>
</li>
<li><a href="M2Crypto.html#module-M2Crypto.EVP">M2Crypto.EVP</a>
</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.ftpslib">M2Crypto.ftpslib</a>
+</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.httpslib">M2Crypto.httpslib</a>
+</li>
<li><a href="M2Crypto.html#module-M2Crypto.m2">M2Crypto.m2</a>
</li>
<li><a href="M2Crypto.html#module-M2Crypto.m2crypto">M2Crypto.m2crypto</a>
</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.m2urllib">M2Crypto.m2urllib</a>
+</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.m2urllib2">M2Crypto.m2urllib2</a>
+</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.m2xmlrpclib">M2Crypto.m2xmlrpclib</a>
+</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.Rand">M2Crypto.Rand</a>
+</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.RC4">M2Crypto.RC4</a>
+</li>
<li><a href="M2Crypto.html#module-M2Crypto.RSA">M2Crypto.RSA</a>
</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.SMIME">M2Crypto.SMIME</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL">M2Crypto.SSL</a>
+</li>
<li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL.cb">M2Crypto.SSL.cb</a>
</li>
+ <li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL.Checker">M2Crypto.SSL.Checker</a>
+</li>
<li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL.Cipher">M2Crypto.SSL.Cipher</a>
</li>
+ <li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL.Connection">M2Crypto.SSL.Connection</a>
+</li>
<li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL.Context">M2Crypto.SSL.Context</a>
</li>
<li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL.Session">M2Crypto.SSL.Session</a>
</li>
+ <li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL.ssl_dispatcher">M2Crypto.SSL.ssl_dispatcher</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL.SSLServer">M2Crypto.SSL.SSLServer</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL.timeout">M2Crypto.SSL.timeout</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#module-M2Crypto.SSL.TwistedProtocolWrapper">M2Crypto.SSL.TwistedProtocolWrapper</a>
+</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.threading">M2Crypto.threading</a>
+</li>
<li><a href="M2Crypto.html#module-M2Crypto.util">M2Crypto.util</a>
</li>
+ <li><a href="M2Crypto.html#module-M2Crypto.X509">M2Crypto.X509</a>
+</li>
</ul></li>
</ul></td>
</tr></table>
@@ -419,14 +1223,30 @@
<h2 id="N">N</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
- <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Cipher.Cipher.name">name() (M2Crypto.SSL.Cipher.Cipher method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.AuthCookie.AuthCookie.name">name() (M2Crypto.AuthCookie.AuthCookie method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Cipher.Cipher.name">(M2Crypto.SSL.Cipher.Cipher method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.new_extension">new_extension() (in module M2Crypto.X509)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.RSA.new_pub_key">new_pub_key() (in module M2Crypto.RSA)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.new_stack_from_der">new_stack_from_der() (in module M2Crypto.X509)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
- <li><a href="M2Crypto.html#M2Crypto.RSA.new_pub_key">new_pub_key() (in module M2Crypto.RSA)</a>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Name.nid">nid (M2Crypto.X509.X509_Name attribute)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.util.no_passphrase_callback">no_passphrase_callback() (in module M2Crypto.util)</a>
</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Checker.NoCertificate">NoCertificate</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.ftpslib.FTP_TLS.ntransfercmd">ntransfercmd() (M2Crypto.ftpslib.FTP_TLS method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Checker.Checker.numericIpMatch">numericIpMatch (M2Crypto.SSL.Checker.Checker attribute)</a>
+</li>
</ul></td>
</tr></table>
@@ -435,44 +1255,96 @@
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="M2Crypto.html#M2Crypto.util.octx_to_num">octx_to_num() (in module M2Crypto.util)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.m2urllib.open_https">open_https() (in module M2Crypto.m2urllib)</a>
+</li>
+ </ul></td>
+ <td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.openfile">openfile() (in module M2Crypto.BIO)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.AuthCookie.AuthCookie.output">output() (M2Crypto.AuthCookie.AuthCookie method)</a>
+</li>
</ul></td>
</tr></table>
<h2 id="P">P</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.timeout.timeout.pack">pack() (M2Crypto.SSL.timeout.timeout method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.util.passphrase_callback">passphrase_callback() (in module M2Crypto.util)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.pbkdf2">pbkdf2() (in module M2Crypto.EVP)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.Err.peek_error_code">peek_error_code() (in module M2Crypto.Err)</a>
</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.pending">pending() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.util.pkcs5_pad">pkcs5_pad() (in module M2Crypto.util)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.PKCS7">PKCS7 (class in M2Crypto.SMIME)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.PKCS7_Error">PKCS7_Error</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.util.pkcs7_pad">pkcs7_pad() (in module M2Crypto.util)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.PKey">PKey (class in M2Crypto.EVP)</a>
</li>
- </ul></td>
- <td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Extension_Stack.pop">pop() (M2Crypto.X509.X509_Extension_Stack method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Stack.pop">(M2Crypto.X509.X509_Stack method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.DH.DH.print_params">print_params() (M2Crypto.DH.DH method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.RSA.RSA.private_decrypt">private_decrypt() (M2Crypto.RSA.RSA method)</a>
<ul>
<li><a href="M2Crypto.html#M2Crypto.RSA.RSA_pub.private_decrypt">(M2Crypto.RSA.RSA_pub method)</a>
</li>
</ul></li>
+ </ul></td>
+ <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="M2Crypto.html#M2Crypto.RSA.RSA.private_encrypt">private_encrypt() (M2Crypto.RSA.RSA method)</a>
<ul>
<li><a href="M2Crypto.html#M2Crypto.RSA.RSA_pub.private_encrypt">(M2Crypto.RSA.RSA_pub method)</a>
</li>
</ul></li>
- <li><a href="M2Crypto.html#M2Crypto.RSA.RSA.pub">pub() (M2Crypto.RSA.RSA method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.ftpslib.FTP_TLS.prot_c">prot_c() (M2Crypto.ftpslib.FTP_TLS method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.ftpslib.FTP_TLS.prot_p">prot_p() (M2Crypto.ftpslib.FTP_TLS method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.httpslib.ProxyHTTPSConnection">ProxyHTTPSConnection (class in M2Crypto.httpslib)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC.pub">pub() (M2Crypto.EC.EC method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.RSA.RSA.pub">(M2Crypto.RSA.RSA method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.pub_key_from_der">pub_key_from_der() (in module M2Crypto.EC)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.pub_key_from_params">pub_key_from_params() (in module M2Crypto.DSA)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.EC.pub_key_from_params">(in module M2Crypto.EC)</a>
+</li>
+ </ul></li>
<li><a href="M2Crypto.html#M2Crypto.RSA.RSA.public_decrypt">public_decrypt() (M2Crypto.RSA.RSA method)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.RSA.RSA.public_encrypt">public_encrypt() (M2Crypto.RSA.RSA method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Extension_Stack.push">push() (M2Crypto.X509.X509_Extension_Stack method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Stack.push">(M2Crypto.X509.X509_Stack method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.httpslib.ProxyHTTPSConnection.putheader">putheader() (M2Crypto.httpslib.ProxyHTTPSConnection method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.httpslib.ProxyHTTPSConnection.putrequest">putrequest() (M2Crypto.httpslib.ProxyHTTPSConnection method)</a>
+</li>
</ul></td>
</tr></table>
@@ -487,14 +1359,72 @@
<h2 id="R">R</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
- <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.remove_session">remove_session() (M2Crypto.SSL.Context.Context method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.BN.rand">rand() (in module M2Crypto.BN)</a>
</li>
- <li><a href="M2Crypto.html#M2Crypto.EVP.HMAC.reset">reset() (M2Crypto.EVP.HMAC method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.Rand.rand_add">rand_add() (in module M2Crypto.Rand)</a>
</li>
- <li><a href="M2Crypto.html#M2Crypto.EVP.PKey.reset_context">reset_context() (M2Crypto.EVP.PKey method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.Rand.rand_bytes">rand_bytes() (in module M2Crypto.Rand)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.Rand.rand_file_name">rand_file_name() (in module M2Crypto.Rand)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.Rand.rand_pseudo_bytes">rand_pseudo_bytes() (in module M2Crypto.Rand)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BN.rand_range">rand_range() (in module M2Crypto.BN)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.Rand.rand_seed">rand_seed() (in module M2Crypto.Rand)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.Rand.rand_status">rand_status() (in module M2Crypto.Rand)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BN.randfname">randfname() (in module M2Crypto.BN)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.RC4.RC4">RC4 (class in M2Crypto.RC4)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.RC4.RC4.rc4_free">rc4_free() (M2Crypto.RC4.RC4 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.read">read() (M2Crypto.BIO.BIO method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.MemoryBuffer.read">(M2Crypto.BIO.MemoryBuffer method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.read">(M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.MemoryBuffer.read_all">read_all() (M2Crypto.BIO.MemoryBuffer method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.readable">readable() (M2Crypto.BIO.BIO method)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.readline">readline() (M2Crypto.BIO.BIO method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.readlines">readlines() (M2Crypto.BIO.BIO method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.recv">recv() (M2Crypto.SSL.Connection.Connection method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher.recv">(M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.recv_into">recv_into() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.remove_session">remove_session() (M2Crypto.SSL.Context.Context method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.renegotiate">renegotiate() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.Request">Request (class in M2Crypto.X509)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.m2xmlrpclib.SSL_Transport.request">request() (M2Crypto.m2xmlrpclib.SSL_Transport method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.reset">reset() (M2Crypto.BIO.BIO method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.File.reset">(M2Crypto.BIO.File method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EVP.HMAC.reset">(M2Crypto.EVP.HMAC method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.EVP.PKey.reset_context">reset_context() (M2Crypto.EVP.PKey method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.RSA.RSA">RSA (class in M2Crypto.RSA)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.RSA.rsa_error">rsa_error() (in module M2Crypto.RSA)</a>
@@ -509,17 +1439,43 @@
<h2 id="S">S</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
- <li><a href="M2Crypto.html#M2Crypto.EVP.PKey.save_key">save_key() (M2Crypto.EVP.PKey method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.CipherStream.SALT_LEN">SALT_LEN (M2Crypto.BIO.CipherStream attribute)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.Request.save">save() (M2Crypto.X509.Request method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.save">(M2Crypto.X509.X509 method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.Rand.save_file">save_file() (in module M2Crypto.Rand)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA.save_key">save_key() (M2Crypto.DSA.DSA method)</a>
<ul>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA_pub.save_key">(M2Crypto.DSA.DSA_pub method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC.save_key">(M2Crypto.EC.EC method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC_pub.save_key">(M2Crypto.EC.EC_pub method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EVP.PKey.save_key">(M2Crypto.EVP.PKey method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.RSA.RSA.save_key">(M2Crypto.RSA.RSA method)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.RSA.RSA_pub.save_key">(M2Crypto.RSA.RSA_pub method)</a>
</li>
</ul></li>
- <li><a href="M2Crypto.html#M2Crypto.EVP.PKey.save_key_bio">save_key_bio() (M2Crypto.EVP.PKey method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA.save_key_bio">save_key_bio() (M2Crypto.DSA.DSA method)</a>
<ul>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA_pub.save_key_bio">(M2Crypto.DSA.DSA_pub method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC.save_key_bio">(M2Crypto.EC.EC method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC_pub.save_key_bio">(M2Crypto.EC.EC_pub method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EVP.PKey.save_key_bio">(M2Crypto.EVP.PKey method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.RSA.RSA.save_key_bio">(M2Crypto.RSA.RSA method)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.RSA.RSA_pub.save_key_bio">(M2Crypto.RSA.RSA_pub method)</a>
@@ -529,40 +1485,178 @@
</li>
<li><a href="M2Crypto.html#M2Crypto.RSA.RSA.save_key_der_bio">save_key_der_bio() (M2Crypto.RSA.RSA method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA.save_params">save_params() (M2Crypto.DSA.DSA method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA.save_params_bio">save_params_bio() (M2Crypto.DSA.DSA method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.RSA.RSA.save_pem">save_pem() (M2Crypto.RSA.RSA method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.X509.Request.save_pem">(M2Crypto.X509.Request method)</a>
</li>
- <li><a href="M2Crypto.html#M2Crypto.RSA.RSA.save_pub_key">save_pub_key() (M2Crypto.RSA.RSA method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.save_pem">(M2Crypto.X509.X509 method)</a>
</li>
- <li><a href="M2Crypto.html#M2Crypto.RSA.RSA.save_pub_key_bio">save_pub_key_bio() (M2Crypto.RSA.RSA method)</a>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA.save_pub_key">save_pub_key() (M2Crypto.DSA.DSA method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC.save_pub_key">(M2Crypto.EC.EC method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.RSA.RSA.save_pub_key">(M2Crypto.RSA.RSA method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA.save_pub_key_bio">save_pub_key_bio() (M2Crypto.DSA.DSA method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC.save_pub_key_bio">(M2Crypto.EC.EC method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.RSA.RSA.save_pub_key_bio">(M2Crypto.RSA.RSA method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.seek">seek() (M2Crypto.BIO.BIO method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.send">send() (M2Crypto.SSL.Connection.Connection method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher.send">(M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.sendall">sendall() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.serverPostConnectionCheck">serverPostConnectionCheck() (M2Crypto.SSL.Connection.Connection method)</a>
</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Session.Session">Session (class in M2Crypto.SSL.Session)</a>
</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set1_host">set1_host() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_accept_state">set_accept_state() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.set_allow_unknown_ca">set_allow_unknown_ca() (M2Crypto.SSL.Context.Context method)</a>
</li>
- <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.set_cipher_list">set_cipher_list() (M2Crypto.SSL.Context.Context method)</a>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_bio">set_bio() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.CipherStream.set_cipher">set_cipher() (M2Crypto.BIO.CipherStream method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.SMIME.set_cipher">(M2Crypto.SMIME.SMIME method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_cipher_list">set_cipher_list() (M2Crypto.SSL.Connection.Connection method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.set_cipher_list">(M2Crypto.SSL.Context.Context method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_client_CA_list_from_context">set_client_CA_list_from_context() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_client_CA_list_from_file">set_client_CA_list_from_file() (M2Crypto.SSL.Connection.Connection method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.set_client_CA_list_from_file">(M2Crypto.SSL.Context.Context method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_connect_state">set_connect_state() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Extension.set_critical">set_critical() (M2Crypto.X509.X509_Extension method)</a>
</li>
- <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.set_client_CA_list_from_file">set_client_CA_list_from_file() (M2Crypto.SSL.Context.Context method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Name_Entry.set_data">set_data() (M2Crypto.X509.X509_Name_Entry method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.ASN1_TIME.set_datetime">set_datetime() (M2Crypto.ASN1.ASN1_TIME method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.Engine.Engine.set_default">set_default() (M2Crypto.Engine.Engine method)</a>
</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.set_default_verify_paths">set_default_verify_paths() (M2Crypto.SSL.Context.Context method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Store.set_flags">set_flags() (M2Crypto.X509.X509_Store method)</a>
+</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.set_info_callback">set_info_callback() (M2Crypto.SSL.Context.Context method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.set_issuer">set_issuer() (M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.set_issuer_name">set_issuer_name() (M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.RC4.RC4.set_key">set_key() (M2Crypto.RC4.RC4 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.set_not_after">set_not_after() (M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.set_not_before">set_not_before() (M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Name_Entry.set_object">set_object() (M2Crypto.X509.X509_Name_Entry method)</a>
+</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.set_options">set_options() (M2Crypto.SSL.Context.Context method)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.Cipher.set_padding">set_padding() (M2Crypto.EVP.Cipher method)</a>
</li>
- <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.set_session_cache_mode">set_session_cache_mode() (M2Crypto.SSL.Context.Context method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.DH.set_params">set_params() (in module M2Crypto.DH)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.set_params">(in module M2Crypto.DSA)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA.set_params">(M2Crypto.DSA.DSA method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_post_connection_check_callback">set_post_connection_check_callback() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.Request.set_pubkey">set_pubkey() (M2Crypto.X509.Request method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.set_pubkey">(M2Crypto.X509.X509 method)</a>
</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.set_serial_number">set_serial_number() (M2Crypto.X509.X509 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.httpslib.HTTPSConnection.set_session">set_session() (M2Crypto.httpslib.HTTPSConnection method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_session">(M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ </ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
- <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.set_session_id_ctx">set_session_id_ctx() (M2Crypto.SSL.Context.Context method)</a>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.set_session_cache_mode">set_session_cache_mode() (M2Crypto.SSL.Context.Context method)</a>
</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_session_id_ctx">set_session_id_ctx() (M2Crypto.SSL.Connection.Connection method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.set_session_id_ctx">(M2Crypto.SSL.Context.Context method)</a>
+</li>
+ </ul></li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.set_session_timeout">set_session_timeout() (M2Crypto.SSL.Context.Context method)</a>
</li>
- <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Session.Session.set_time">set_time() (M2Crypto.SSL.Session.Session method)</a>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_shutdown">set_shutdown() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_socket_read_timeout">set_socket_read_timeout() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_socket_write_timeout">set_socket_write_timeout() (M2Crypto.SSL.Connection.Connection method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.SSLBio.set_ssl">set_ssl() (M2Crypto.BIO.SSLBio method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_ssl_close_flag">set_ssl_close_flag() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.ASN1_TIME.set_string">set_string() (M2Crypto.ASN1.ASN1_TIME method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.Request.set_subject">set_subject() (M2Crypto.X509.Request method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.set_subject">(M2Crypto.X509.X509 method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.Request.set_subject_name">set_subject_name() (M2Crypto.X509.Request method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.set_subject_name">(M2Crypto.X509.X509 method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.ASN1_TIME.set_time">set_time() (M2Crypto.ASN1.ASN1_TIME method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Session.Session.set_time">(M2Crypto.SSL.Session.Session method)</a>
+</li>
+ </ul></li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Session.Session.set_timeout">set_timeout() (M2Crypto.SSL.Session.Session method)</a>
</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.set_tlsext_host_name">set_tlsext_host_name() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.set_tmp_dh">set_tmp_dh() (M2Crypto.SSL.Context.Context method)</a>
</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.set_tmp_dh_callback">set_tmp_dh_callback() (M2Crypto.SSL.Context.Context method)</a>
@@ -573,7 +1667,59 @@
</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Context.Context.set_verify">set_verify() (M2Crypto.SSL.Context.Context method)</a>
</li>
- <li><a href="M2Crypto.html#M2Crypto.RSA.RSA.sign">sign() (M2Crypto.RSA.RSA method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Store.set_verify_cb">set_verify_cb() (M2Crypto.X509.X509_Store method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.Request.set_version">set_version() (M2Crypto.X509.Request method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.set_version">(M2Crypto.X509.X509 method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.SMIME.set_x509_stack">set_x509_stack() (M2Crypto.SMIME.SMIME method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.SMIME.set_x509_store">set_x509_store() (M2Crypto.SMIME.SMIME method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.setblocking">setblocking() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.setsockopt">setsockopt() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.settimeout">settimeout() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.setup_addr">setup_addr() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.setup_ssl">setup_ssl() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.should_read">should_read() (M2Crypto.BIO.BIO method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.should_retry">should_retry() (M2Crypto.BIO.BIO method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.should_write">should_write() (M2Crypto.BIO.BIO method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.shutdown">shutdown() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA.sign">sign() (M2Crypto.DSA.DSA method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA_pub.sign">(M2Crypto.DSA.DSA_pub method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.RSA.RSA.sign">(M2Crypto.RSA.RSA method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.SMIME.sign">(M2Crypto.SMIME.SMIME method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.Request.sign">(M2Crypto.X509.Request method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.sign">(M2Crypto.X509.X509 method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA.sign_asn1">sign_asn1() (M2Crypto.DSA.DSA method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA_pub.sign_asn1">(M2Crypto.DSA.DSA_pub method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC.sign_dsa">sign_dsa() (M2Crypto.EC.EC method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC.sign_dsa_asn1">sign_dsa_asn1() (M2Crypto.EC.EC method)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.PKey.sign_final">sign_final() (M2Crypto.EVP.PKey method)</a>
</li>
@@ -585,15 +1731,67 @@
</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.PKey.size">size() (M2Crypto.EVP.PKey method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.SMIME">SMIME (class in M2Crypto.SMIME)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.SMIME_Error">SMIME_Error</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.smime_load_pkcs7">smime_load_pkcs7() (in module M2Crypto.SMIME)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.smime_load_pkcs7_bio">smime_load_pkcs7_bio() (in module M2Crypto.SMIME)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher">ssl_dispatcher (class in M2Crypto.SSL.ssl_dispatcher)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.ssl_get_error">ssl_get_error() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.cb.ssl_info_callback">ssl_info_callback() (in module M2Crypto.SSL.cb)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.m2xmlrpclib.SSL_Transport">SSL_Transport (class in M2Crypto.m2xmlrpclib)</a>
+</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.cb.ssl_verify_callback">ssl_verify_callback() (in module M2Crypto.SSL.cb)</a>
</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.cb.ssl_verify_callback_allow_unknown_ca">ssl_verify_callback_allow_unknown_ca() (in module M2Crypto.SSL.cb)</a>
</li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.cb.ssl_verify_callback_stub">ssl_verify_callback_stub() (in module M2Crypto.SSL.cb)</a>
</li>
- <li><a href="M2Crypto.html#M2Crypto.Err.SSLError">SSLError</a>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.SSLBio">SSLBio (class in M2Crypto.BIO)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.SSLError">SSLError</a>, <a href="M2Crypto.html#M2Crypto.Err.SSLError">[1]</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.SSLServer.SSLServer">SSLServer (class in M2Crypto.SSL.SSLServer)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.SSLTimeoutError">SSLTimeoutError</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Checker.SSLVerificationError">SSLVerificationError</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.startTLS">startTLS() (M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.timeout.struct_size">struct_size() (in module M2Crypto.SSL.timeout)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.timeout.struct_to_timeout">struct_to_timeout() (in module M2Crypto.SSL.timeout)</a>
+</li>
+ </ul></td>
+</tr></table>
+
+<h2 id="T">T</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.tell">tell() (M2Crypto.BIO.BIO method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.text_crlf">text_crlf() (in module M2Crypto.SMIME)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.text_crlf_bio">text_crlf_bio() (in module M2Crypto.SMIME)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.SSLServer.ThreadingSSLServer">ThreadingSSLServer (class in M2Crypto.SSL.SSLServer)</a>
+</li>
+ </ul></td>
+ <td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.timeout.timeout">timeout (class in M2Crypto.SSL.timeout)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper">TLSProtocolWrapper (class in M2Crypto.SSL.TwistedProtocolWrapper)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.PKCS7.type">type() (M2Crypto.SMIME.PKCS7 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.LocalTimezone.tzname">tzname() (M2Crypto.ASN1.LocalTimezone method)</a>
</li>
</ul></td>
</tr></table>
@@ -601,6 +1799,18 @@
<h2 id="U">U</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.AuthCookie.unmix">unmix() (in module M2Crypto.AuthCookie)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.AuthCookie.unmix3">unmix3() (in module M2Crypto.AuthCookie)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.SMIME.unset_cipher">unset_cipher() (M2Crypto.SMIME.SMIME method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.SMIME.unset_key">unset_key() (M2Crypto.SMIME.SMIME method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.SMIME.unset_x509_stack">unset_x509_stack() (M2Crypto.SMIME.SMIME method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.SMIME.unset_x509_store">unset_x509_store() (M2Crypto.SMIME.SMIME method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.Cipher.update">update() (M2Crypto.EVP.Cipher method)</a>
<ul>
@@ -610,9 +1820,15 @@
</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.PKey.update">(M2Crypto.EVP.PKey method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.RC4.RC4.update">(M2Crypto.RC4.RC4 method)</a>
+</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.m2xmlrpclib.SSL_Transport.user_agent">user_agent (M2Crypto.m2xmlrpclib.SSL_Transport attribute)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.ASN1.LocalTimezone.utcoffset">utcoffset() (M2Crypto.ASN1.LocalTimezone method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.util.UtilError">UtilError</a>
</li>
</ul></td>
@@ -621,14 +1837,34 @@
<h2 id="V">V</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
- <li><a href="M2Crypto.html#M2Crypto.RSA.RSA.verify">verify() (M2Crypto.RSA.RSA method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.AuthCookie.AuthCookie.value">value() (M2Crypto.AuthCookie.AuthCookie method)</a>
</li>
- <li><a href="M2Crypto.html#M2Crypto.EVP.PKey.verify_final">verify_final() (M2Crypto.EVP.PKey method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA.verify">verify() (M2Crypto.DSA.DSA method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.RSA.RSA.verify">(M2Crypto.RSA.RSA method)</a>
</li>
- <li><a href="M2Crypto.html#M2Crypto.EVP.PKey.verify_init">verify_init() (M2Crypto.EVP.PKey method)</a>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.SMIME.verify">(M2Crypto.SMIME.SMIME method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.Request.verify">(M2Crypto.X509.Request method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509.verify">(M2Crypto.X509.X509 method)</a>
+</li>
+ </ul></li>
+ <li><a href="M2Crypto.html#M2Crypto.DSA.DSA.verify_asn1">verify_asn1() (M2Crypto.DSA.DSA method)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC.verify_dsa">verify_dsa() (M2Crypto.EC.EC method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EC.EC.verify_dsa_asn1">verify_dsa_asn1() (M2Crypto.EC.EC method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EVP.PKey.verify_final">verify_final() (M2Crypto.EVP.PKey method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.EVP.PKey.verify_init">verify_init() (M2Crypto.EVP.PKey method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.verify_ok">verify_ok() (M2Crypto.SSL.Connection.Connection method)</a>
+</li>
<li><a href="M2Crypto.html#M2Crypto.RSA.RSA.verify_rsassa_pss">verify_rsassa_pss() (M2Crypto.RSA.RSA method)</a>
</li>
<li><a href="M2Crypto.html#M2Crypto.EVP.PKey.verify_update">verify_update() (M2Crypto.EVP.PKey method)</a>
@@ -641,8 +1877,68 @@
<h2 id="W">W</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.write">write() (M2Crypto.BIO.BIO method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.PKCS7.write">(M2Crypto.SMIME.PKCS7 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.SMIME.write">(M2Crypto.SMIME.SMIME method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Connection.Connection.write">(M2Crypto.SSL.Connection.Connection method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.write">(M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper method)</a>
+</li>
+ </ul></li>
<li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Session.Session.write_bio">write_bio() (M2Crypto.SSL.Session.Session method)</a>
</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.write_close">write_close() (M2Crypto.BIO.BIO method)</a>
+
+ <ul>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.CipherStream.write_close">(M2Crypto.BIO.CipherStream method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.MemoryBuffer.write_close">(M2Crypto.BIO.MemoryBuffer method)</a>
+</li>
+ </ul></li>
+ </ul></td>
+ <td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.SMIME.PKCS7.write_der">write_der() (M2Crypto.SMIME.PKCS7 method)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.BIO.BIO.writeable">writeable() (M2Crypto.BIO.BIO method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper.writeSequence">writeSequence() (M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper method)</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Checker.WrongCertificate">WrongCertificate</a>
+</li>
+ <li><a href="M2Crypto.SSL.html#M2Crypto.SSL.Checker.WrongHost">WrongHost</a>
+</li>
+ </ul></td>
+</tr></table>
+
+<h2 id="X">X</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509">X509 (class in M2Crypto.X509)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Extension">X509_Extension (class in M2Crypto.X509)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Extension_Stack">X509_Extension_Stack (class in M2Crypto.X509)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Name">X509_Name (class in M2Crypto.X509)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Name_Entry">X509_Name_Entry (class in M2Crypto.X509)</a>
+</li>
+ </ul></td>
+ <td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Stack">X509_Stack (class in M2Crypto.X509)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Store">X509_Store (class in M2Crypto.X509)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509_Store_Context">X509_Store_Context (class in M2Crypto.X509)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.x509_store_default_cb">x509_store_default_cb() (in module M2Crypto.X509)</a>
+</li>
+ <li><a href="M2Crypto.html#M2Crypto.X509.X509Error">X509Error</a>
+</li>
</ul></td>
</tr></table>
diff --git a/doc/html/index.html b/doc/html/index.html
index 8eece7c..a65137e 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -39,44 +39,44 @@
<ul>
<li class="toctree-l1"><a class="reference internal" href="M2Crypto.html">M2Crypto Package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#id1"><code class="xref py py-mod docutils literal notranslate"><span class="pre">M2Crypto</span></code> Package</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#asn1-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ASN1</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#authcookie-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">AuthCookie</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#bio-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">BIO</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#bn-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">BN</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#dh-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">DH</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#dsa-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">DSA</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#ec-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">EC</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.ASN1"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ASN1</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.AuthCookie"><code class="xref py py-mod docutils literal notranslate"><span class="pre">AuthCookie</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.BIO"><code class="xref py py-mod docutils literal notranslate"><span class="pre">BIO</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.BN"><code class="xref py py-mod docutils literal notranslate"><span class="pre">BN</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.DH"><code class="xref py py-mod docutils literal notranslate"><span class="pre">DH</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.DSA"><code class="xref py py-mod docutils literal notranslate"><span class="pre">DSA</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.EC"><code class="xref py py-mod docutils literal notranslate"><span class="pre">EC</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.EVP"><code class="xref py py-mod docutils literal notranslate"><span class="pre">EVP</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#engine-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Engine</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.Engine"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Engine</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.Err"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Err</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#rc4-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">RC4</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.RC4"><code class="xref py py-mod docutils literal notranslate"><span class="pre">RC4</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.RSA"><code class="xref py py-mod docutils literal notranslate"><span class="pre">RSA</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#rand-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Rand</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#smime-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">SMIME</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#x509-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">X509</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#callback-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">callback</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#ftpslib-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ftpslib</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#httpslib-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">httpslib</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.Rand"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Rand</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.SMIME"><code class="xref py py-mod docutils literal notranslate"><span class="pre">SMIME</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.X509"><code class="xref py py-mod docutils literal notranslate"><span class="pre">X509</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.callback"><code class="xref py py-mod docutils literal notranslate"><span class="pre">callback</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.ftpslib"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ftpslib</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.httpslib"><code class="xref py py-mod docutils literal notranslate"><span class="pre">httpslib</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.m2"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.m2crypto"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2crypto</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#m2urllib-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2urllib</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#m2urllib2-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2urllib2</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#m2xmlrpclib-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2xmlrpclib</span></code> Module</a></li>
-<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#threading-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.m2urllib"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2urllib</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.m2urllib2"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2urllib2</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.m2xmlrpclib"><code class="xref py py-mod docutils literal notranslate"><span class="pre">m2xmlrpclib</span></code> Module</a></li>
+<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.threading"><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#module-M2Crypto.util"><code class="xref py py-mod docutils literal notranslate"><span class="pre">util</span></code> Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="M2Crypto.html#subpackages">Subpackages</a><ul>
<li class="toctree-l3"><a class="reference internal" href="M2Crypto.SSL.html">SSL Package</a><ul>
<li class="toctree-l4"><a class="reference internal" href="M2Crypto.SSL.html#id1"><code class="xref py py-mod docutils literal notranslate"><span class="pre">SSL</span></code> Package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="M2Crypto.SSL.html#checker-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Checker</span></code> Module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.Checker"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Checker</span></code> Module</a></li>
<li class="toctree-l4"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.Cipher"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Cipher</span></code> Module</a></li>
-<li class="toctree-l4"><a class="reference internal" href="M2Crypto.SSL.html#connection-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Connection</span></code> Module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.Connection"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Connection</span></code> Module</a></li>
<li class="toctree-l4"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.Context"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Context</span></code> Module</a></li>
-<li class="toctree-l4"><a class="reference internal" href="M2Crypto.SSL.html#sslserver-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">SSLServer</span></code> Module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.SSLServer"><code class="xref py py-mod docutils literal notranslate"><span class="pre">SSLServer</span></code> Module</a></li>
<li class="toctree-l4"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.Session"><code class="xref py py-mod docutils literal notranslate"><span class="pre">Session</span></code> Module</a></li>
-<li class="toctree-l4"><a class="reference internal" href="M2Crypto.SSL.html#twistedprotocolwrapper-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">TwistedProtocolWrapper</span></code> Module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.TwistedProtocolWrapper"><code class="xref py py-mod docutils literal notranslate"><span class="pre">TwistedProtocolWrapper</span></code> Module</a></li>
<li class="toctree-l4"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.cb"><code class="xref py py-mod docutils literal notranslate"><span class="pre">cb</span></code> Module</a></li>
-<li class="toctree-l4"><a class="reference internal" href="M2Crypto.SSL.html#ssl-dispatcher-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl_dispatcher</span></code> Module</a></li>
-<li class="toctree-l4"><a class="reference internal" href="M2Crypto.SSL.html#timeout-module"><code class="xref py py-mod docutils literal notranslate"><span class="pre">timeout</span></code> Module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.ssl_dispatcher"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl_dispatcher</span></code> Module</a></li>
+<li class="toctree-l4"><a class="reference internal" href="M2Crypto.SSL.html#module-M2Crypto.SSL.timeout"><code class="xref py py-mod docutils literal notranslate"><span class="pre">timeout</span></code> Module</a></li>
</ul>
</li>
</ul>
diff --git a/doc/html/objects.inv b/doc/html/objects.inv
index 8955897..20840a6 100644
--- a/doc/html/objects.inv
+++ b/doc/html/objects.inv
Binary files differ
diff --git a/doc/html/py-modindex.html b/doc/html/py-modindex.html
index 03c5d28..c801368 100644
--- a/doc/html/py-modindex.html
+++ b/doc/html/py-modindex.html
@@ -54,6 +54,56 @@
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.__init__"><code class="xref">M2Crypto.__init__</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.ASN1"><code class="xref">M2Crypto.ASN1</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.AuthCookie"><code class="xref">M2Crypto.AuthCookie</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.BIO"><code class="xref">M2Crypto.BIO</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.BN"><code class="xref">M2Crypto.BN</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.callback"><code class="xref">M2Crypto.callback</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.DH"><code class="xref">M2Crypto.DH</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.DSA"><code class="xref">M2Crypto.DSA</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.EC"><code class="xref">M2Crypto.EC</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.Engine"><code class="xref">M2Crypto.Engine</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
<a href="M2Crypto.html#module-M2Crypto.Err"><code class="xref">M2Crypto.Err</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
@@ -64,6 +114,16 @@
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.ftpslib"><code class="xref">M2Crypto.ftpslib</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.httpslib"><code class="xref">M2Crypto.httpslib</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
<a href="M2Crypto.html#module-M2Crypto.m2"><code class="xref">M2Crypto.m2</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
@@ -74,21 +134,66 @@
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.m2urllib"><code class="xref">M2Crypto.m2urllib</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.m2urllib2"><code class="xref">M2Crypto.m2urllib2</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.m2xmlrpclib"><code class="xref">M2Crypto.m2xmlrpclib</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.Rand"><code class="xref">M2Crypto.Rand</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.RC4"><code class="xref">M2Crypto.RC4</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
<a href="M2Crypto.html#module-M2Crypto.RSA"><code class="xref">M2Crypto.RSA</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.SMIME"><code class="xref">M2Crypto.SMIME</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.SSL.html#module-M2Crypto.SSL"><code class="xref">M2Crypto.SSL</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
<a href="M2Crypto.SSL.html#module-M2Crypto.SSL.cb"><code class="xref">M2Crypto.SSL.cb</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
+ <a href="M2Crypto.SSL.html#module-M2Crypto.SSL.Checker"><code class="xref">M2Crypto.SSL.Checker</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
<a href="M2Crypto.SSL.html#module-M2Crypto.SSL.Cipher"><code class="xref">M2Crypto.SSL.Cipher</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
+ <a href="M2Crypto.SSL.html#module-M2Crypto.SSL.Connection"><code class="xref">M2Crypto.SSL.Connection</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
<a href="M2Crypto.SSL.html#module-M2Crypto.SSL.Context"><code class="xref">M2Crypto.SSL.Context</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
@@ -99,8 +204,38 @@
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
+ <a href="M2Crypto.SSL.html#module-M2Crypto.SSL.ssl_dispatcher"><code class="xref">M2Crypto.SSL.ssl_dispatcher</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.SSL.html#module-M2Crypto.SSL.SSLServer"><code class="xref">M2Crypto.SSL.SSLServer</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.SSL.html#module-M2Crypto.SSL.timeout"><code class="xref">M2Crypto.SSL.timeout</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.SSL.html#module-M2Crypto.SSL.TwistedProtocolWrapper"><code class="xref">M2Crypto.SSL.TwistedProtocolWrapper</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.threading"><code class="xref">M2Crypto.threading</code></a></td><td>
+ <em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
<a href="M2Crypto.html#module-M2Crypto.util"><code class="xref">M2Crypto.util</code></a></td><td>
<em></em></td></tr>
+ <tr class="cg-1">
+ <td></td>
+ <td>&#160;&#160;&#160;
+ <a href="M2Crypto.html#module-M2Crypto.X509"><code class="xref">M2Crypto.X509</code></a></td><td>
+ <em></em></td></tr>
</table>
diff --git a/doc/html/searchindex.js b/doc/html/searchindex.js
index 32df7cb..bd43a94 100644
--- a/doc/html/searchindex.js
+++ b/doc/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["M2Crypto","M2Crypto.SSL","ZServerSSL-HOWTO","howto.ca","howto.smime","howto.ssl","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["M2Crypto.rst","M2Crypto.SSL.rst","ZServerSSL-HOWTO.rst","howto.ca.rst","howto.smime.rst","howto.ssl.rst","index.rst"],objects:{"M2Crypto.EVP":{Cipher:[0,1,1,""],EVPError:[0,3,1,""],HMAC:[0,1,1,""],MessageDigest:[0,1,1,""],PKey:[0,1,1,""],hmac:[0,4,1,""],load_key:[0,4,1,""],load_key_bio:[0,4,1,""],load_key_bio_pubkey:[0,4,1,""],load_key_pubkey:[0,4,1,""],load_key_string:[0,4,1,""],load_key_string_pubkey:[0,4,1,""],pbkdf2:[0,4,1,""]},"M2Crypto.EVP.Cipher":{"final":[0,2,1,""],m2_cipher_ctx_free:[0,2,1,""],set_padding:[0,2,1,""],update:[0,2,1,""]},"M2Crypto.EVP.HMAC":{"final":[0,2,1,""],digest:[0,2,1,""],m2_hmac_ctx_free:[0,2,1,""],reset:[0,2,1,""],update:[0,2,1,""]},"M2Crypto.EVP.MessageDigest":{"final":[0,2,1,""],digest:[0,2,1,""],m2_md_ctx_free:[0,2,1,""],update:[0,2,1,""]},"M2Crypto.EVP.PKey":{"final":[0,2,1,""],as_der:[0,2,1,""],as_pem:[0,2,1,""],assign_rsa:[0,2,1,""],digest_sign:[0,2,1,""],digest_sign_final:[0,2,1,""],digest_sign_init:[0,2,1,""],digest_sign_update:[0,2,1,""],digest_verify:[0,2,1,""],digest_verify_final:[0,2,1,""],digest_verify_init:[0,2,1,""],digest_verify_update:[0,2,1,""],get_modulus:[0,2,1,""],get_rsa:[0,2,1,""],m2_md_ctx_free:[0,2,1,""],m2_pkey_free:[0,2,1,""],reset_context:[0,2,1,""],save_key:[0,2,1,""],save_key_bio:[0,2,1,""],sign_final:[0,2,1,""],sign_init:[0,2,1,""],sign_update:[0,2,1,""],size:[0,2,1,""],update:[0,2,1,""],verify_final:[0,2,1,""],verify_init:[0,2,1,""],verify_update:[0,2,1,""]},"M2Crypto.Err":{M2CryptoError:[0,3,1,""],SSLError:[0,3,1,""],get_error:[0,4,1,""],get_error_code:[0,4,1,""],get_error_func:[0,4,1,""],get_error_lib:[0,4,1,""],get_error_message:[0,4,1,""],get_error_reason:[0,4,1,""],get_x509_verify_error:[0,4,1,""],peek_error_code:[0,4,1,""]},"M2Crypto.RSA":{RSA:[0,1,1,""],RSAError:[0,3,1,""],RSA_pub:[0,1,1,""],gen_key:[0,4,1,""],keygen_callback:[0,4,1,""],load_key:[0,4,1,""],load_key_bio:[0,4,1,""],load_key_string:[0,4,1,""],load_pub_key:[0,4,1,""],load_pub_key_bio:[0,4,1,""],new_pub_key:[0,4,1,""],rsa_error:[0,4,1,""]},"M2Crypto.RSA.RSA":{as_pem:[0,2,1,""],check_key:[0,2,1,""],m2_rsa_free:[0,2,1,""],private_decrypt:[0,2,1,""],private_encrypt:[0,2,1,""],pub:[0,2,1,""],public_decrypt:[0,2,1,""],public_encrypt:[0,2,1,""],save_key:[0,2,1,""],save_key_bio:[0,2,1,""],save_key_der:[0,2,1,""],save_key_der_bio:[0,2,1,""],save_pem:[0,2,1,""],save_pub_key:[0,2,1,""],save_pub_key_bio:[0,2,1,""],sign:[0,2,1,""],sign_rsassa_pss:[0,2,1,""],verify:[0,2,1,""],verify_rsassa_pss:[0,2,1,""]},"M2Crypto.RSA.RSA_pub":{check_key:[0,2,1,""],private_decrypt:[0,2,1,""],private_encrypt:[0,2,1,""],save_key:[0,2,1,""],save_key_bio:[0,2,1,""]},"M2Crypto.SSL":{Cipher:[1,0,0,"-"],Context:[1,0,0,"-"],Session:[1,0,0,"-"],cb:[1,0,0,"-"]},"M2Crypto.SSL.Cipher":{Cipher:[1,1,1,""],Cipher_Stack:[1,1,1,""]},"M2Crypto.SSL.Cipher.Cipher":{name:[1,2,1,""],version:[1,2,1,""]},"M2Crypto.SSL.Context":{Context:[1,1,1,""],ctxmap:[1,4,1,""],map:[1,4,1,""]},"M2Crypto.SSL.Context.Context":{add_session:[1,2,1,""],close:[1,2,1,""],get_allow_unknown_ca:[1,2,1,""],get_cert_store:[1,2,1,""],get_session_cache_mode:[1,2,1,""],get_session_timeout:[1,2,1,""],get_verify_depth:[1,2,1,""],get_verify_mode:[1,2,1,""],load_cert:[1,2,1,""],load_cert_chain:[1,2,1,""],load_client_CA:[1,2,1,""],load_client_ca:[1,2,1,""],load_verify_info:[1,2,1,""],load_verify_locations:[1,2,1,""],m2_ssl_ctx_free:[1,2,1,""],remove_session:[1,2,1,""],set_allow_unknown_ca:[1,2,1,""],set_cipher_list:[1,2,1,""],set_client_CA_list_from_file:[1,2,1,""],set_default_verify_paths:[1,2,1,""],set_info_callback:[1,2,1,""],set_options:[1,2,1,""],set_session_cache_mode:[1,2,1,""],set_session_id_ctx:[1,2,1,""],set_session_timeout:[1,2,1,""],set_tmp_dh:[1,2,1,""],set_tmp_dh_callback:[1,2,1,""],set_tmp_rsa:[1,2,1,""],set_tmp_rsa_callback:[1,2,1,""],set_verify:[1,2,1,""]},"M2Crypto.SSL.Session":{Session:[1,1,1,""],load_session:[1,4,1,""]},"M2Crypto.SSL.Session.Session":{as_der:[1,2,1,""],as_text:[1,2,1,""],get_time:[1,2,1,""],get_timeout:[1,2,1,""],m2_ssl_session_free:[1,2,1,""],set_time:[1,2,1,""],set_timeout:[1,2,1,""],write_bio:[1,2,1,""]},"M2Crypto.SSL.cb":{ssl_info_callback:[1,4,1,""],ssl_verify_callback:[1,4,1,""],ssl_verify_callback_allow_unknown_ca:[1,4,1,""],ssl_verify_callback_stub:[1,4,1,""]},"M2Crypto.util":{UtilError:[0,3,1,""],bin_to_hex:[0,4,1,""],genparam_callback:[0,4,1,""],no_passphrase_callback:[0,4,1,""],octx_to_num:[0,4,1,""],passphrase_callback:[0,4,1,""],pkcs5_pad:[0,4,1,""],pkcs7_pad:[0,4,1,""],quiet_genparam_callback:[0,4,1,""]},M2Crypto:{EVP:[0,0,0,"-"],Err:[0,0,0,"-"],RSA:[0,0,0,"-"],m2:[0,0,0,"-"],m2crypto:[0,0,0,"-"],util:[0,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","exception","Python exception"],"4":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:exception","4":"py:function"},terms:{"059600270x":5,"0ipy80":4,"0jwuq":4,"0qjhp6hut7fso":4,"0x0":[3,4],"0x1":3,"0x10001":[3,4],"0x2":[3,4],"0x822012c":4,"1024":[2,3,4],"1095":3,"115":2,"12345678":0,"127":2,"1365":2,"168":4,"19973a9dbbb601ba":3,"1998":2,"1999":1,"1bc9f3q":4,"1czdztgk7h9cdgx2qjsivymyytcfi3zsuzmjs8":3,"1dr9dy8l0naqh21y5fgss8b1wd":4,"1ezn9zmlryqzbtxnnrmp3dhj":4,"1g9epovswhpqr":4,"1hxxfyo88m":3,"1qk53c":3,"1t8luishhn9899imp2vyg0ub67fqfypymm2cm2":4,"1tcaqbmq":4,"1vsrcid":3,"200":2,"2000":[2,3,4,5],"2001":[2,3,4,5],"2002":[3,4],"2003":[1,2],"2006":5,"205":4,"21075075":4,"213":4,"217mrhyx2nswgrpkqndu3gespovml3jeqiaxuponbwq7rj42":3,"2311":4,"2312":4,"282":2,"2898":0,"2aglpogdcfdioqblb2dcscohmbbvr":3,"2bconvert":1,"2bdqvfpffx5lsmitkzaobldssjfr6rojxoqrsgia2az":4,"2cjcbfzokmijci03kbtqxofiqglstwxgzknf":3,"2dnyol50zu0sdzst1":3,"2iwrpascbeid8saraql3ddcli":3,"2zz2g7x1hxrwh95a":4,"300":1,"3037":2,"312":4,"313":2,"365":[3,4],"3c93156fc7b4ebf49fe9c7db7f503087":4,"3dizhtxigepfztiuyutxs3i2gnmx2pee3chtllywd3jneakz0iozpdphif2xhllq":4,"3pjiyfhaxk64iutmpsy393rhmeb4kn":4,"3wf7q915tveqoc74bnu6b8ibbgrmhzdzmvq4szffveaum":3,"41b2874df3d02dd4":3,"4ju6":4,"4mpgg20wd633d4z4dtlddz":3,"4oxll0bi":3,"509":4,"509v3":2,"535":2,"56vrpgppgut40hv8xqfbwiz2whwwlkpfahj8b79ztfuzuru6z2rnpvv8inhc":4,"5efdvbet":3,"65537":[3,4],"6l0g37faxur3xm28rchzvhu":3,"76h5jiznpbdsf2fjghwqvvdgyw4owy3mu739lhvnblicn":3,"7ay4jsdhyibcmgsq":3,"7pvwhtszeyhn3oa9dhlmv9uqc4wy5md7j":3,"7zjt2r5cpikgkwofamduxeltx":3,"8080":2,"8caweaaaaama0gcsqgsib3dqebbauaa4gb":3,"8czydsolmyibujccabycaqewydbbmqswcqydvqqgewjtrzerma8ga1uechmittjd":4,"8levy0cllw":3,"8tsi3wo5enkg4qwbnarqc3vgcv":4,"8yhspd0caweaaaobtjcbszadbgnvhq4efgquxoyoll1t4jabwzfrm7ms8nblzuow":4,"9021":2,"9080":2,"9081":2,"9443":2,"9444":2,"974aklcjnk1gzigarz":4,"9gul1bxbckrtedtxenqtem7spzomtswd2lhb8z65grx90cyt":4,"9ij5z6mja7rm7ttbsjup":4,"9rsqkrc9urv9mrbisredgnyecnerak5r1yzpoowninxc":3,"9znlfejkjj67vembxbj":4,"abstract":4,"break":2,"byte":[0,1],"case":[4,5],"class":[0,1,4,5],"default":[0,1,2,3,4,5],"export":[1,4],"final":[0,4],"function":[0,1,2,4,5],"import":[1,2,4],"int":[0,1],"long":5,"new":[1,2,3,4],"null":1,"public":[0,3,4],"return":[0,1,4,5],"true":[0,1,4],"while":[0,2,4],DES:[3,4],DNS:5,For:[2,3,4],NOT:1,Not:[3,4],TLS:5,That:[3,4],The:[0,1,2,4,5],There:[1,3,4,5],These:[1,2],Use:5,Using:[3,4,5],With:2,__init__:2,_ctxmap:1,_io:0,_pyfre:[0,1],_top:2,a4mgiy2kwwfie73qiyv7yyg8flrvr1iib:3,aaiavb8w:4,abl:4,about:[1,3,4],abov:[2,4,5],accept:[1,2,3,4,5],access:[2,4],accord:1,acl_us:2,acquir:0,actual:[0,1,4,5],add:[0,1,2],add_sess:1,added:1,addhead:2,adding:1,addit:[1,5],address:[3,4,5],admin:3,administr:4,advanc:3,aes_128_cbc:0,aetir4v7sgxmepx7thq1pv:4,affect:1,afresh:3,after:[1,3,4,5],again:[3,4],agent:2,aggtjgplibexlzalhpwlz9laqyrqpvcvjywaovfmmvrav4nafnoz2:4,ago:3,ahau6kwk:4,ahporp5ys55czpi:3,akbr4il1nkq8ecsmcr3wpa0i9n0ehi7zvpvahxc0sqapfl8ygdfhq:3,alg:0,algo:0,algorithm:[0,3,4],all:[1,3,5],allow:[1,3,5],alreadi:1,also:[1,2,3,4,5],alt:2,altern:[1,2],although:5,alwai:[0,4],amyxludrk45acua:3,analys:5,ani:[0,1,5],anoth:[1,3],anyon:4,anystr:[0,1],anyth:5,aogabaku8w3w1qu15hle1bjsl7gmreoreqeblobmmazz4by0l6sxzxjpjwxo86f:3,apach:2,api:1,appear:2,appli:[2,3],applic:[1,3,4,5],approach:4,appropri:[0,5],aqh:4,arg:0,argv:0,arm:4,around:2,as_der:[0,1],as_pem:0,as_text:1,ask:[3,4],asn1:6,assign:[0,1],assign_rsa:0,associ:1,assum:[2,4],asyncor:2,attach:4,attempt:5,attribut:[3,4],authcooki:6,authent:4,author:[2,3,4,5],autom:4,automag:4,automat:[1,5],avail:[1,2,4,5],avoid:2,awai:1,awfqq4jcc:4,awihma0gccqgsib3dqmcageoma0gcsqgsib3dqebaquabigaqpu8hfutlcf6ho2t:4,ax96lvs0:3,b4law8g59vtg6dykeetrg0rubx4bggc7pkbfuin423yjjodwchvvgnpozxmqt:3,b4txejzriyc8f3:4,b6gr5s8:4,b6ugcsqgsib3dqehataubggqhkig9w0dbwqirf525ufwszaaggea85rmx6axqmxb:4,b75:3,b877j9wbpbl:3,b9zjffauqtwzdnjgrkkyikhwjdojaac:4,base64:4,base:[0,1,2,3,4,5],basi:1,basic:[3,4],bat:2,bdclcn8a:4,becaus:[1,4],been:[0,4],befor:[0,1,3,4,5],began:3,begin:[3,4,5],behav:1,behaviour:1,being:4,below:2,best:5,between:5,beyond:4,bgbyj1dubkhzsc7dgxzdtuclgnxqnnsg:3,bgcolor:2,bgkqhkig9w0bbwewfayikozihvcnawcecmn:4,bgkqhkig9w0bbwewhayjkozihvcnaqkfmq8xdtaxmdmzmtexnduwmlowiwyjkozi:4,bhdelbr5jbpjcj5aid76mfr8:4,bhmcu0cxetapbgnvbaotce0yq3j5chrvmrkwfwydvqqdexbtl01jtuugumvjaxbp:4,big:0,bin_to_hex:0,binari:1,bio:[1,4,5,6],bit:[0,3,4],bitmask:1,bjq5hnxbouslq0rwbrkoxv64i:4,blank:[3,4],blklen:0,blob:4,blwegdqhonaiwbk5z1l:4,bmrlckblegftcgxllmrvbqibadajbgurdgmcgguaoigxmbggcsqgsib3dqejazel:4,bmvnwbppufzpiaivalycjt6pyextbbszs7:3,bo2w7ei6iejbazk:3,bodi:2,book:5,bool:[0,1],border:2,both:2,bottom:4,boundari:4,box:[2,4],br77:3,bring:4,brows:2,browser:2,browser_id_manag:2,buf:4,buffer:[4,5],bundl:[2,3,4],bxwxkuuvt81vbjwdn9jst6:4,c6fi3n03rgfmkectijc:3,cacert:3,cach:1,cadav:2,cafil:1,cakei:3,call:[1,3,4,5],callabl:[0,1],callback:[1,6],can:[0,1,2,3,4,5],capath:1,captur:0,cat:3,catalog:2,catop:3,cbc:[3,4],ccrt2tfwkbbfleuifl7mb:3,ccvkzzl:3,cenfqfwc:4,cert:[1,4,5],certain:[1,3],certchainfil:1,certdata2pem:5,certdata:5,certfil:1,certif:[1,2,3,5],certifi:[3,4],certmast:3,cgyikozihvcnawcwdgyikozihvcnawicagcama0gccqgsib3dqmcagfamacgbsso:4,chain:[1,5],challeng:3,chandra:5,chang:1,channel:2,cheap:4,check:[0,1,2,3,5],check_kei:0,checker:[0,5,6],choos:[3,4],chosen:5,cipher:[0,4,5,6],cipher_list:1,cipher_stack:1,citi:[3,4],claim:5,clbwev3ryfrlp4x8j9mdte0ykok3t0wqohqrettsifdtjnfp:3,clear:[0,1,3,4],click:[2,4],client:[1,4,5],client_addr:0,close:[1,2,4],clutter:2,cnf:[3,4],cngeq1qxtyduiguda2nbgcl:4,cnlwdg8xfjaubgnvbamtdvmvtulnrsbtzw5kzxixitafbgkqhkig9w0bcqewennl:4,code:[0,1,3,4],coll:2,collect:[2,5],com:[2,3,4,5],combin:1,come:[3,5],command:[3,5],comment:3,commerci:4,commit:3,common:[3,4,5],commonli:4,commonnam:[3,5],compani:[3,4],companion:4,compar:5,compat:5,complet:1,compos:2,composit:0,concaten:1,configur:[3,4],connect:[0,2,4,5,6],consist:4,constant:1,constrain:3,constraint:[3,4],consum:4,contain:[0,1,2,4],content:[4,6],context:[0,5,6],control:5,control_panel:2,convert:5,copi:[1,2,3],copyright:[1,2,3,4,5],corner:4,correct:4,correctli:4,correspond:4,could:[1,5],count:[0,2],counterpan:4,countri:[3,4],countrynam:3,cours:[3,4],cover:3,coz:4,cqydvqqgewjtrzerma8ga1uechmittjdcnlwdg8xfjaubgnvbamtdvmvtulnrsbt:4,cqzkt9:3,crack:4,creat:[0,1,2,4,5,6],creation:[1,3],credit:2,cryptograph:4,css:2,ctx:[1,5],ctxmap:1,current:[1,4],custom:1,cvzrxakeaxno80arbgxpumr11ghg:3,cw8kzzwh:4,cxo23r9wwrnzem:4,d2i_ssl_sess:1,dai:[3,4],dasmytmpc4ztytv06n07afbjl:3,dat:[2,4],data:[0,1,2,3,4,5],databas:3,date:[2,5],dav:2,dcwd:4,ddlzqbacuxwtv5xy8plmx7widaqab:3,dec:2,decid:[1,3],decis:3,decod:[3,5],decrypt:5,def:4,defin:1,dek:3,delet:0,demo:[2,3,4,5],democa:3,demonstr:[3,4,5],depend:[0,2,4],deploi:3,depth:[1,5],der:[0,4],deriv:0,des_ede3_cbc:4,describ:1,desktop:2,dev:2,develop:3,dh1024:2,dhpfile:1,dialog:[2,4],did:3,differ:5,diffi:2,digest:[0,4,5],digest_sign:0,digest_sign_fin:0,digest_sign_init:0,digest_sign_upd:0,digest_verifi:0,digest_verify_fin:0,digest_verify_init:0,digest_verify_upd:0,digit:4,directli:[1,5],directori:[1,2,3,5],dirnam:[3,4],disabl:1,discard:3,discuss:3,displai:[4,5],disposit:4,distinguish:[1,3,4],distribut:[2,5],dnli0rvuvxiwt:3,document:[2,3,4,5],doe:[1,5],dog:4,dom:[3,4],done:2,download:[2,4,5],dqehaaavbbnhihnpz24gb2ygb3vyihrpbwvzoiic5zccaumwggjmoamcaqicaqaw:4,dqyjkozihvcnaqeebqawwzelmakga1uebhmcu0cxetapbgnvbaotce0yq3j5chrv:4,dsa:[4,5,6],due:1,duhrqiml1tyi:3,duqhj2ygkkwdqq9v0xscjkgiyw:3,dure:[0,1,5],dw0boozhj8tc7co7lmyb0ye271b6:3,e9kybgki7vpojwbz27:3,e_n:0,each:[1,4],eawm5avuv7hnptt5zr:4,eaydvqqdewlsb2nhbghvc3qxjzalbgkqhkig9w0bcqewggfkbwluqhnlcnzlci5l:3,ebdz:4,ec9eyj:4,ede3:[3,4],effect:4,egftcgxllmrvbtcbnzanbgkqhkig9w0baqefaaobjqawgykcgyear1nyy1qrll1r:3,either:1,electron:4,els:[3,4],email:[3,4],emailaddress:3,emmarsgyedf5h1afl1smkomskbqxe1d2jg:4,emploi:5,enabl:[1,4],encod:[0,1,2,4],encrypt:3,end:3,endian:0,engin:6,enhanc:5,ensu:4,enter:[0,2,3,4],entri:3,environ:1,eopzyno4mi:4,eoq9wfscnii4:3,eovbgs7ezalvvkdj4hnl:4,eozfol5i20ykiv6j:4,ephemer:1,eric:5,err:[4,6],err_get_error:0,errdepth:1,errnum:1,error:[0,1,4],error_log:2,establish:[1,5],etag:2,etwitreft1heupnar:4,evp:6,evperror:0,ewjtrzerma8ga1uechmittjdcnlwdg8xfjaubgnvbamtdvmvtulnrsbtzw5kzxix:4,exampl:[0,2,3,4,5],except:[0,5],exchang:5,execut:[3,4],exist:[2,3],exiy8geir:4,expir:[1,3],explain:4,explan:1,explor:4,expon:[0,3,4],extens:[3,4],extern:1,extra:3,facilit:3,fact:0,fail:1,failur:[0,1,4],fakesocket:5,fals:[1,3],fancyurlopen:2,farm:2,fashion:2,fcgiserv:2,fcmspp3auq1:4,featur:5,feed:0,feedback:0,few:[3,4],ffffff:2,fi1wdpphywke97pojizvqesfzopty5hjiyzux4u:3,field:[3,4,5],fifth:5,file:[0,1,2,3,4,5],filenam:[0,1,3,4],find:1,first:[4,5],fixm:1,flag:[4,5],flndpcnkrtvqdx3rt6x6vbttcyom:4,fmt7a120s3gd2jixgh06l:4,follow:[0,2,3,4,5],forgotten:3,form:5,format:[0,1,4,5],found:1,foundat:5,fourth:5,fqlcrrr5nvupdin:3,freebsd:2,freeli:4,freewar:4,friendli:4,from:[0,1,2,3,4,5],from_addr:4,from_cert:4,from_kei:4,ftp:2,ftpserver:2,ftpslib:6,full:[3,4],fv4sgm3jkr:4,g3bgsmvlxkefztfjkxo6xnjcbnf5i:4,g7ppoo:3,gain:5,gd58p4mpmhu5iknz4yh4nlhnaitevcs85tzuaxze9g:4,gen_kei:0,gener:[0,1,3,4],genparam_callback:0,get:[0,1,2],get_allow_unknown_ca:1,get_cert_stor:1,get_error:[0,4],get_error_cod:0,get_error_func:0,get_error_lib:0,get_error_messag:0,get_error_reason:0,get_modulu:0,get_rsa:0,get_session_cache_mod:1,get_session_timeout:1,get_tim:1,get_timeout:1,get_verify_depth:1,get_verify_mod:1,get_x509_verify_error:0,getronicsgov:4,ggarfmmj4yuhewkys9jo1h8k4bdxugmauwni5:3,give:3,given:1,gknqqdblotqt06f3oissdjetm2itllyhgzv:3,global:4,gmt:[2,3,4],goe:1,govern:3,gpmpndsyvvceufpluwydim0vkwhgc2:4,gqnveov:3,gqzcvnzzcmx8uvrjqr8drwdsmpj0vxg1:4,gratefulli:4,grcgzeb9ymfcedxahtdufhjrkpdpsxzzvvgksbncbqu92obyqvnrq8m:4,grew:5,group:4,gucrblvd7n3ofnx5ujmpmcw9zwbu:4,gvyvi:4,gymga1udiwr8mhqaffzsqjs9bei2gcgrutozevjws81kov:4,h7nmicymi2wkz8h:4,h99suto:3,h9diul:3,hack:2,handi:3,handl:4,handshak:1,hanson:3,happen:5,has:[0,4,5],hash:0,have:[1,3,4],hcyiukxujtaqtxboh:4,head:2,header:2,height:2,heikki:5,hellman:2,henc:3,henceforth:2,here:[3,4],hex:0,hihsrgwtnd7lnxuucpx8yv1id0dlmp0hz:4,his:4,hkig9w0baqefaaobjqawgykcgyea5c5tj1chtsoxa1q2q0fyiwmwyhptjpjcvtzm:4,hmac:[0,4,5],hold:0,home:[2,4],host:5,hostnam:1,hot:4,how:[4,5],hpysvh:4,href:2,hrg6sai33usk8xpokjqa:3,htm:4,html:[2,4],http:[4,5],httpconnect:5,httplib:5,https_server:2,https_srv:4,httpsconnect:5,httpserver:2,httpslib:[5,6],hu3qdmtcwjd:3,hvcnaqkemryefooerud8exiyxfqq8btfukwrsp3imfigcsqgsib3dqejdzffmemw:4,hyswpz1xvlprmv4:3,i2d_ssl_sess:1,ia5str:3,icon:4,ident:[1,2,4,5],identifi:[3,4,5],ietf:4,ieucourgcxpyd1j65vt7ob3ziypu2f2nluicynqpg1sd:4,iihwd6gtv1uodf7urbxtl3hq9:4,imap:4,imc:4,img:2,implement:[4,5],imqqiiw:4,includ:3,incorpor:[3,4],index:6,index_html:2,indic:[1,4],info:[3,4],inform:[1,2,3,4,5],initialis:0,inkei:4,input:[1,5],instal:4,instanc:[0,1,4,5],instanti:[0,4],instead:[2,4],instruct:2,integr:4,intend:4,interfac:[0,4,5],intern:[0,1],internet:[3,4],interpret:5,intuit:3,invalid:0,invok:[0,1,2,4],iobas:0,iobuff:5,ioy0bdijcyn1jimohj:4,iqwxllnj:4,ir9fggophatzzq:4,isbn:5,issu:[2,4],issuer:[3,4],itafbgkqhkig9w0bcqewennlbmrlckblegftcgxllmrvbyibadambgnvhrmebtad:4,iter:0,its:[0,1,2,3,4],itself:4,iwq3n6j1suzs3uw6abq8bivynoucmkjaqqjbanqxfalu4b:3,j6wo9dzltioz3znvr3ljsskib4tip4ugqnjaluw7m3ftz3magxn68hbbjs8tz8tl:4,j9ftv3di:3,jan:2,jbt3ltgf743utyaas7hnguouobhoyt:3,jcyhx9vw4xvja7:4,jddsk:4,john:5,join:4,ju4:3,jun:2,just:5,jvy5cif:4,jy5rd:3,jyvbd7acn35p5yx7ktqvqerwdijxycanbcnvmrtmysanw9kv1ujtxc5vx7ylwipk:3,kdfqdmtfzqkymhp1laq1ihbq1rhwsbh5n3ekq:3,kdjqodst7ovu62motgf3arcduppwuztfxolyone5nioo1apvhbrinqwcplkpotqr:3,kebfzs8asq7uc9axw6ti0eapj8evhtwhsbgzqrwekfbxs6hbbhmidc4n0m7oq:4,keep:3,kef21pgguqpf14gkgfwx3sv4bjc1vbrrwq6zlg3nmuyqr5mtjjy9eq:3,kei:[0,1,2,3,5],key_as_byt:0,keyfil:1,keygen_callback:0,keyid:[3,4],keylen:0,keyout:3,kind:1,kiy8jkpv8dr5po1ikaxjfudbygdenjwybsrspsk3p:3,kkst1mcj:3,know:4,known:5,kozihvcnaqebbqaegyblzlgupfphwhsgtiapvdexn61qisz3oem88xoxkuw0szor:4,kozihvcnaqebbqaegycbaxz:4,ktgtcixjl2nmw7j:3,kv95ymtgbisuwkj93grbvqoj:4,kxtbbmqswcqydvqqg:4,l5trm4x6zjxwuxxmijcehmmd8tc8ybwwo4ao19b3ebffetvsugxsga:3,l6kn27mwzhe331vjttjsgl4:3,lamy57gkw4ondmrtqvq2ojqlvosbllpxzh:4,last:[3,4,5],later:1,lbow6ssdir6:4,lead:1,least:1,leav:[3,4],left:[3,4],legal:0,length:[0,1,2],let:[3,4,5],letter:[3,4],level:2,lg4q5yezr1ejaw:4,librari:[1,4],lifetim:1,like:[0,3,4],line:[4,5],link:[2,5],linux:5,list:[1,2],littl:[2,5],ljecgc3rqu1uwisbkmquis1s46ebbm5np75izpnujokj2hv:4,lkmac1dwb3dqgjt5xk4wjesinfdxecnegacyteagyztpiapu:3,lnzqowadmol:4,load:[0,1,2,4,5],load_cert:[1,4],load_cert_chain:1,load_client_ca:1,load_fil:4,load_info:4,load_kei:[0,4],load_key_bio:0,load_key_bio_pubkei:0,load_key_pubkei:0,load_key_str:0,load_key_string_pubkei:0,load_pub_kei:0,load_pub_key_bio:0,load_sess:1,load_verify_info:1,load_verify_loc:[1,5],local:[2,3,4],localhost:[2,3,4],locat:[1,2],lock:4,logger:2,logic:1,longer:0,look:[3,4],ltd:[3,4],lwpbxzf2k3fuudnkrlfbakeampxoybuifr2s5bma:3,ly4tpl5:3,m1awhen3vir2zlaw:3,m1je:3,m2_cipher_ctx_fre:0,m2_hmac_ctx_fre:0,m2_md_ctx_free:0,m2_pkey_fre:0,m2_rsa_fre:0,m2_ssl_ctx_free:1,m2_ssl_session_fre:1,m2crypto:[1,3],m2cryptoerror:0,m2urllib2:6,m2urllib:[2,6],m2xmlrpclib:[2,6],ma0gcsqgsib3dqebbauaa4gbaho3drchr86fstvavfixdsswwqktcehuhrdc:4,made:5,mai:[2,3,4,5],mail:4,make:[1,3,4,5],makebuf:4,malfunct:1,manag:2,mani:[2,4],manpag:1,manual:5,map:[1,4],mar:[3,4],march:4,mark:4,master:3,match:[3,4],materi:[2,5],matt:5,maximum:1,md5:0,md5withrsaencrypt:[3,4],mean:0,meant:3,medusa:2,memori:4,memorybuff:4,messag:[0,5],messagedigest:0,messier:5,method:[0,1],mg611eovkleoostv:3,mh2pz4lverxa:4,mhf6rqar:4,micalg:4,might:1,miibntccaqycaqawxtelmakga1uebhmcu0cxetapbgnvbaotce0yq3j5chrvmriw:3,miibvwyjkozihvcnaqcdoiibsdccauqcaqaxggeamih9ageamgywytelmakga1u:4,miicxgibaakbgqcvwdhjvcuwxwu4h8wqujguvm:3,miie8ayjkozihvcnaqccoiie4tccbn0caqexczajbgurdgmcgguamcigcsqgsib3:4,miiiwwyjkozihvcnaqcdoiiitdccclacaqaxggeamih9ageamgywytelmakga1u:4,mime:[3,5,6],miss:1,mkwcbi1nfvohcv3xdq2ela:4,mode:[0,1,2,4],model:[3,4],modifi:[2,4],modul:[4,5,6],modulu:[0,3,4],more:[1,3,5],most:[1,4,5],mozilla:[2,4],mpint:0,mrywfaydvqqdew1tl01jtuugu2vuzgvymsewhwyjkozihvcnaqkbfhjzzw5kzxja:4,msg:4,msg_bio:4,mua:4,multipart:4,multipurpos:4,must:[1,5],mutheybpq5th7ydrtnizkkxobnqe2kyux9x22a1kh49sojjfg6kpb9mugizbimlv:3,mutt:4,naccept:2,name:[0,1,3,4,5],navig:4,nbbba2yl0n5gs1tyiy9z:3,nbsp:2,nconnect:2,need:[1,3,4,5],negoti:1,nerx9zjgvrwuscqqcu:3,net:3,netmemet:5,netscap:3,network:[4,5],new_pub_kei:0,newca:3,newcert:3,newkei:[3,4],newkey2:3,newreq:3,next:[3,4],ngp:[2,3,4,5],nhost:2,nihuwgujn:3,niqfytycdl9i5sk:4,nkasxekr8auhjsbvumrqrl6r0nnsfpzdr1w7pv:4,no_passphrase_callback:0,node:4,non:4,none:[0,1,4],noout:[3,4],nor:4,normal:5,note:[4,5],notwithstand:4,now:[3,4],nqaodq3aobzpafp9l:3,nqxlmgj3jwq7x9:4,nss:[4,5],nueymfjdm0uvntg0icxgnufsfnjkntthpagykgetric3kgjz:3,number:[0,3,4],numer:2,nuser:2,nyndufwi0qm92qlk0ui:3,object:[0,1,4,5],obtain:[0,4],occur:0,octx_to_num:0,od2m3lp7jbwjqbrtndhimqul2s4yu:4,oiqto:4,old:[3,5],onc:[0,1],one:[1,2,3],ones:5,onli:3,open:[2,4,5],openpgp:4,openssl:[0,1,2,4,5,6],oper:[0,1,2,4],option:[0,1,3],org:[2,3,4,5],organ:[3,4],organiz:[3,4],organizationnam:3,osafound:5,other:[0,3,5],otherwis:0,our:4,out:[0,1,2,3,4],outform:4,output:4,over:5,overlap:4,overrid:1,overwrit:2,own:[0,1,2,4,6],p12:4,p7_bio:4,p7m:4,p7s:4,packag:6,pad:0,page:[2,6],pair:[0,2,3,4],paramet:[0,1,2,4,5],part:4,pass:3,passphras:[0,1,3,4],passphrase_callback:[0,1],password:[0,3,4],patch:[2,3],pathnam:2,pbkdf2:0,pcgiserv:2,pdlrrliknknfmhkiacktlrcu59sca6adeiwuzqmuzp5cs6jrsro3nkfg1bd09d1k:3,peek_error_cod:0,peer:1,pem:[0,1,2,3,4,5],pemfil:1,per:[1,2],perform:[0,5],period:3,perl:3,permit:5,pfi:3,pfl1k5dyxrgtzlb36uljd:4,pgpmime:4,pheng:[1,2,3,4,5],phrase:3,pick:4,pk7_smime:4,pkc:4,pkcs12:4,pkcs5_pad:0,pkcs7:4,pkcs7_detach:4,pkcs7_pad:0,pkcs7_text:4,pkcs7_verifi:4,pkei:0,pkg:[3,4],plain:4,pleas:3,pltnni25spyrcwfl6erd25u:4,plu:1,polici:[3,4],pop:4,popular:4,port:2,portal0:2,portal:2,portion:5,possibl:1,post1:[2,3,4],post_connection_check:1,power:2,practic:[4,5],pravir:5,premis:4,present:2,pretend:4,pretti:5,previous:1,primari:5,prime:0,print:[1,2,3,4],printabl:3,privaci:4,privat:[0,1,3,4],private_decrypt:0,private_encrypt:0,privkei:4,prng:[2,4],probabl:[4,5],proc:3,process:[1,3,4],produc:0,product:4,prog:4,program:[3,6],programm:[4,5],project:[4,5],prompt1:0,prompt2:0,prompt:4,properli:4,propertymap:2,protect:[0,1,4],protocol:[1,2,4,5],provid:[0,1,2,4,5],provinc:[3,4],pseudo:4,pss:0,pty:[3,4],pub:0,public_decrypt:0,public_encrypt:0,purpos:[0,4],push:4,python:[0,3,6],q1z7g:3,q7s4tn1z:4,qbcrdaoxdj0ulwytauev:4,qin7ujpkou61cn7h8dvhr8yw9:4,qjpbezwdp7gjfzfatqitesymwo3i:4,qppdzt3ykfmg2lzytaam1czvb6rbnrjjp2zrpbwn:3,qtm0ddmm:3,quarante:5,quiet_genparam_callback:0,quit:[2,3,4],quvxinaxygqco9lzdw6hudk8:4,qya6adywgbghr9jkhwn5gsdu7bwx:4,rais:[4,5],rand:[2,4,6],random:4,randpool:[2,4],rc4:6,read:[2,3,4,5],readi:[3,4],realiz:1,reason:[0,1],recal:4,receiv:4,recent:4,recipi:4,recipient_kei:4,recommend:5,record:5,recreat:4,refcount:1,refer:2,reject:1,reli:1,remov:1,remove_sess:1,renam:[3,4],render:4,repli:2,repudi:4,req:[3,4],request:[1,3,4],requir:[1,5],rescorla:5,reserv:1,reset:0,reset_context:0,resolv:2,result:[0,4],ret:[1,3],retriev:4,reus:1,rfc:[0,4],rgwnkxpj:4,right:[1,4],ripemd160:0,rm2htgotm2lmore4geotypi5f1fbi:3,rn9vpy0suy8:3,root:5,routin:4,rsa:[1,2,3,4,5,6],rsa_error:0,rsa_pub:0,rsaencrypt:[3,4],rsaerror:0,rsassa:0,rudimentari:5,run:[2,4],rwniyh0aw4xyyhhit:4,s0ovoc041cerazqfm2tl:4,safe:0,sai:4,said:4,salt:0,salt_length:0,same:[1,5],sat:[2,3],save:[0,4],save_fil:4,save_kei:0,save_key_bio:0,save_key_d:0,save_key_der_bio:0,save_pem:0,save_pub_kei:0,save_pub_key_bio:0,saver:4,sc3lsmhugu9xc26ogstjmkquiah:3,sc51hkebgckl1:4,scope:4,screen:[2,4],script:5,search:6,second:[1,5],secret:3,section:[3,4],secur:[1,3,4],see:[1,2,5],seed:[2,4],select:[1,2,4],self:[0,1,3,4],send:[2,5],sender:4,sendmail:4,sendsmim:4,sent:[1,3,4],seri:4,serial:[3,4],serv:2,server:[2,3,4,5],server_address:5,servic:[1,4],session:[0,6],session_data_manag:2,set:[1,3,4,5],set_allow_unknown_ca:1,set_ciph:4,set_cipher_list:1,set_client_ca_list_from_fil:1,set_default_verify_path:1,set_info_callback:1,set_mod:1,set_opt:1,set_pad:0,set_session_cache_mod:1,set_session_id_ctx:1,set_session_timeout:1,set_tim:1,set_timeout:1,set_tmp_dh:1,set_tmp_dh_callback:1,set_tmp_rsa:1,set_tmp_rsa_callback:1,set_verifi:[1,5],set_x509_stack:4,set_x509_stor:4,sever:[1,3],sfl_home:4,sfqo6lc9mtsj7fjydq:4,sha1:[0,4],sha224:0,sha256:0,shall:[2,4],should:[1,3],shown:[2,5],sid_ctx:1,side:5,sign:[0,3],sign_fin:0,sign_init:0,sign_rsassa_pss:0,sign_upd:0,signatur:[0,3,4],signer:4,signer_kei:4,similar:[1,2,3,4],simpl:[1,5],sinc:[3,5],siong:[1,2,3,4,5],sipba4ik5xcrlt9e0s2qjgrvo9gyfaqz:4,site:3,situat:3,size:0,sjai4kpfvt00xfnvgluywyeks9sygto7hihnqkcf44f5lyv6ntfwmfqb11daty9v:4,skip:4,skunk:2,smime:6,smime_error:4,smime_load_pkcs7:4,smime_load_pkcs7_bio:4,smtpd:4,smtplib:4,sntelhcawulwtifz:4,socket:5,softwar:4,some:[3,4],sophist:5,sourc:[0,1,4,5],specif:[3,5],specifi:[0,1],spoofer:4,sport:5,src:2,ssl:[0,2,3,4,6],ssl_cert_dir:1,ssl_cert_fil:1,ssl_ctx_flush_sess:1,ssl_ctx_ptr:1,ssl_ctx_set_opt:1,ssl_ctx_set_session_cache_mod:1,ssl_ctx_set_timeout:1,ssl_dispatch:[0,6],ssl_get_default_timeout:1,ssl_info_callback:1,ssl_ptr:1,ssl_sess_cache_:1,ssl_transport:2,ssl_verify_callback:1,ssl_verify_callback_allow_unknown_ca:1,ssl_verify_callback_stub:1,sslerror:0,sslserver:[0,6],sslv3:[1,5],stack:1,stamp:4,standard:4,standard_error_messag:2,standard_html_foot:2,standard_html_head:2,standard_templ:2,start:[2,3,4],state:[1,3,4],stderr:1,stdout:[0,5],step:[3,4,5],steve:3,still:1,stop:2,store:1,str:[0,1],string:[0,1,2,4],stringio:[4,5],style:1,subject:[3,4],subjectaltnam:5,subpackag:6,subsequ:5,substitut:4,succeed:[1,2],success:[0,1],suitabl:5,sun:2,support:[1,5],suppos:4,symmetr:[0,4,5],sys:4,system:[2,3,4],sztm5jrp2zw:4,t6lqehb32wfyxqbkfxfjsxzsxox3r:4,target:[2,4],tb7k3chfgw5wagwnll8lb:3,tcp:5,tell:5,temp_fold:2,temporari:[1,4],termin:1,test:[4,5],test_ssl:5,text:[2,3,4],textiowrapp:0,textual:5,than:[1,5],thei:[4,5],them:[4,5],therefor:1,thi:[0,1,2,3,4,5],third:5,those:5,thread:6,threat:[3,4],through:[3,4],thu:4,thusli:[2,4],time:[1,2,4,5],timeout:[0,6],titl:2,tlfgl4hdk2gyzxafuqzwiurz:4,tls:1,tmp:4,tmp_bio:4,to_addr:4,to_cert:4,tob:4,togeth:1,toivonen:5,too:5,tool:3,top:[2,4],topic:3,traceback:4,traffic:5,transfer:4,transform:4,treat:1,tri:[1,5],tripl:4,trust:4,tue:2,tupl:0,tvtk:4,twice:1,twist:5,twistedprotocolwrapp:[0,6],two:5,tws5k:3,txt:5,type:[2,3,4],typic:[1,4,5],tzsznk2qwgvsspos9mhuaepbnjmnbffbrulhrutsglm:4,u4dmyq9uxs421en3v2hkvhvdy8ut2ot29:4,u4j2f34u0xktwcp:4,u7rqbwpc9hr34saprs3ubbculet748kecbx247imbtidctzxcc1o86:4,ubowzitegtyli52:4,uifxaf6s4n2uihvp6tqxthejtpzoc7pc:4,ukidkhst60v2q9kegpzgfpoztskm:4,ull4d2cldx9ovynykwdezb5dyv0r:4,unattend:3,under:4,underli:[0,5],understand:4,unencrypt:[3,4],union:[0,1],unit:[3,4],unknown:1,unlock:0,unpack:2,until:3,untrust:2,updat:[0,3],urandom:2,urbfke2mocdxvdzxbmd:4,url:2,urllib:2,uryvak7vfoldaz6z3nosoi6nonnehpr:4,usag:4,use:[0,1,2,3,4,5],used:[0,1,3,4],useless:5,user:4,uses:[4,5],using:[0,1,3,4],usr:[3,4],usual:[0,5],utf:0,utifsh4jkkm:4,util:[5,6],utilerror:0,uweuasngtkpjv2jyumd3hwqox2q3cd4zgqvjj6gf3exa5126ckf:3,uwrgu5shra8oncm0cdxej0kpf3cfnjhffb8hwmzi4uegnmfxqnsxogz:4,valid:[0,1,3,4,5],valu:[0,1,3,4],valueerror:0,variabl:1,variou:5,verif:[0,1,4],verifi:[0,1,2,3],verify_fail_if_no_peer_cert:[1,5],verify_fin:0,verify_init:0,verify_p:[1,5],verify_rsassa_pss:0,verify_upd:0,verisign:4,version:[1,3,4,5],vhgdittnelgthbaezu5rhdswgdelvbp:4,vi4roin:3,via:1,viega:5,vihhfc1zzp:3,visual:0,vkwwecqqdkeu:3,vsgprqx2:4,vsxc7xx7xo:4,vtajp:3,vuzalydffdfutiqqzys4z:4,w4d1nnwu8agcpyshsexhc:3,w81xodtq2ecjxc8fn2wpa9y5vd1lt7ojksoul1:3,wai:4,walk:3,warn:[1,2],wbal2p:4,wdd1ar2k4k3gai7kkgobwt0:4,wdigqewjl:3,weak:5,weak_crypto:1,web:[2,4],well:[2,4],what:[0,3,4],when:[1,3,4,5],whenev:1,where:[1,3],wherea:5,whether:[0,4],which:[0,1,3,4,5],who:4,why:4,widgit:[3,4],width:2,window:[2,4],wish:[2,3,4],within:[1,3,5],wjtpvp0yobmju4vmkezi405r7o8oewi:3,wkat:4,wmbgsclvwsfzcccjhavw9nhfmucnrdwxaymvetnuon:4,word:4,work:[2,3,4,5],would:[1,4],wrap:4,wrapper:5,write:[3,4],write_bio:1,written:[3,5],wrylp3:4,wsluvo:3,www:[2,4],wyhfg8g3biehurpj2v:4,x509:[1,3,4,5,6],x509_ptr:1,x509_stack:4,x509_store:4,x509v3:[3,4],xc9dtimuutxtxlgytb0ujkbnsoaenolm:4,xekaxcmzegp0b6camwfmuqrbvgxbbncqkc:4,xgffb0okilylmwv2bf6:4,xisnot:4,xlcqyvk1tzhd:4,xlyg6hhzzgbfyyngj2y7ymz1rl1m8snrnmkcyskgtrudenf6wt9:4,xmtdg:4,y3klvhk09yl6d:4,y9mh7efw:4,year:[3,4],yl9qevh1pp2zvswq12p7gjt3t:4,you:[2,3,4,5],your:[2,4,6],ypfxy:3,yqor8jggsuzroyjqhj:4,yrpzcwq3gxahuj:3,yubj33ylmpjgngijlnolfy0hnw7tmwqr:4,ywmxnjz8:4,z04ovaeue4x0swm17hlbm2kvt:3,z2s:2,z6ebh:3,z6uxrm:4,zbq:3,zbxscvldasmckg:3,zhttp_handler:2,zhttp_server:2,zhttps_handler:2,zhttps_server:2,zip:2,zope:[2,4],zopebutton:2,zovnycmv1cintpalaw4bwtxnhcdvthavdy34okhemzncg:3,zpecllwhxd4b1auaiaargkl935u:4,zpqqqzkq:3,zserver:2,zserverssl:6,zssl:2,zsyncer:2,ztf6mpxjsixi6l4zyxebs6yhf:4,zw50msqwigyjkozihvcnaqkbfhvyzwnpcgllbnrazxhhbxbszs5kb20caqawdqyj:4,zw5kzxixitafbgkqhkig9w0bcqewennlbmrlckblegftcgxllmrvbtcbnzanbgkq:4,zwxy:4,zxhhbxbszs5kb20whhcnmdewmzmxmte0mdmzwhcnmdiwmzmxmte0mdmzwjbbmqsw:4},titles:["M2Crypto Package","SSL Package","<span class=\"sectnum\">1.</span> ZServerSSL-HOWTO","HOWTO: Creating your own CA with OpenSSL","HOWTO: Programming S/MIME in Python with M2Crypto","HOWTO: Programming SSL in Python with M2Crypto","Welcome to M2Crypto\u2019s documentation!"],titleterms:{The:3,asn1:0,authcooki:0,bio:0,bit:5,callback:0,certif:4,checker:1,cipher:1,code:5,conclus:[2,3],connect:1,content:2,context:1,creat:3,decrypt:4,document:6,dsa:0,encrypt:4,engin:0,err:0,evp:0,ftpslib:0,histori:5,howto:[2,3,4,5,6],http:2,httpslib:0,indic:6,instal:2,interoper:4,introduct:[2,3,4,5],kei:4,m2crypto:[0,2,4,5,6],m2urllib2:0,m2urllib:0,m2xmlrpclib:0,messag:4,messeng:4,microsoft:4,mime:4,modul:[0,1],netscap:4,openssl:3,origin:4,outlook:4,over:2,own:3,packag:[0,1],prepar:2,procedur:3,program:[4,5],python:[2,4,5],rand:0,rc4:0,resourc:4,rsa:0,sampl:5,secur:5,send:4,session:1,sign:4,smime:[0,4],smtp:4,sourc:2,ssl:[1,5],ssl_dispatch:1,ssldump:5,sslserver:1,subpackag:0,tabl:6,test:2,thread:0,timeout:1,twistedprotocolwrapp:1,util:0,verifi:4,via:4,webdav:2,welcom:6,x509:0,xmlrpc:2,your:3,zserverssl:2,zsmime:4}}) \ No newline at end of file
+Search.setIndex({docnames:["M2Crypto","M2Crypto.SSL","ZServerSSL-HOWTO","howto.ca","howto.smime","howto.ssl","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["M2Crypto.rst","M2Crypto.SSL.rst","ZServerSSL-HOWTO.rst","howto.ca.rst","howto.smime.rst","howto.ssl.rst","index.rst"],objects:{"M2Crypto.ASN1":{ASN1_Integer:[0,1,1,""],ASN1_Object:[0,1,1,""],ASN1_String:[0,1,1,""],ASN1_TIME:[0,1,1,""],ASN1_UTCTIME:[0,3,1,""],LocalTimezone:[0,1,1,""]},"M2Crypto.ASN1.ASN1_Integer":{m2_asn1_integer_free:[0,2,1,""]},"M2Crypto.ASN1.ASN1_Object":{m2_asn1_object_free:[0,2,1,""]},"M2Crypto.ASN1.ASN1_String":{as_text:[0,2,1,""],m2_asn1_string_free:[0,2,1,""]},"M2Crypto.ASN1.ASN1_TIME":{get_datetime:[0,2,1,""],m2_asn1_time_free:[0,2,1,""],set_datetime:[0,2,1,""],set_string:[0,2,1,""],set_time:[0,2,1,""]},"M2Crypto.ASN1.LocalTimezone":{dst:[0,2,1,""],tzname:[0,2,1,""],utcoffset:[0,2,1,""]},"M2Crypto.AuthCookie":{AuthCookie:[0,1,1,""],AuthCookieJar:[0,1,1,""],mix:[0,4,1,""],unmix3:[0,4,1,""],unmix:[0,4,1,""]},"M2Crypto.AuthCookie.AuthCookie":{data:[0,2,1,""],expiry:[0,2,1,""],headerValue:[0,2,1,""],isExpired:[0,2,1,""],mac:[0,2,1,""],name:[0,2,1,""],output:[0,2,1,""],value:[0,2,1,""]},"M2Crypto.AuthCookie.AuthCookieJar":{isGoodCookie:[0,2,1,""],isGoodCookieString:[0,2,1,""],makeCookie:[0,2,1,""]},"M2Crypto.BIO":{BIO:[0,1,1,""],BIOError:[0,5,1,""],CipherStream:[0,1,1,""],File:[0,1,1,""],IOBuffer:[0,1,1,""],MemoryBuffer:[0,1,1,""],SSLBio:[0,1,1,""],openfile:[0,4,1,""]},"M2Crypto.BIO.BIO":{bio_ptr:[0,2,1,""],close:[0,2,1,""],fileno:[0,2,1,""],flush:[0,2,1,""],m2_bio_free:[0,2,1,""],read:[0,2,1,""],readable:[0,2,1,""],readline:[0,2,1,""],readlines:[0,2,1,""],reset:[0,2,1,""],seek:[0,2,1,""],should_read:[0,2,1,""],should_retry:[0,2,1,""],should_write:[0,2,1,""],tell:[0,2,1,""],write:[0,2,1,""],write_close:[0,2,1,""],writeable:[0,2,1,""]},"M2Crypto.BIO.CipherStream":{SALT_LEN:[0,3,1,""],close:[0,2,1,""],m2_bio_free:[0,2,1,""],m2_bio_pop:[0,2,1,""],set_cipher:[0,2,1,""],write_close:[0,2,1,""]},"M2Crypto.BIO.File":{close:[0,2,1,""],flush:[0,2,1,""],reset:[0,2,1,""]},"M2Crypto.BIO.IOBuffer":{close:[0,2,1,""],m2_bio_free:[0,2,1,""],m2_bio_pop:[0,2,1,""]},"M2Crypto.BIO.MemoryBuffer":{close:[0,2,1,""],getvalue:[0,2,1,""],read:[0,2,1,""],read_all:[0,2,1,""],write_close:[0,2,1,""]},"M2Crypto.BIO.SSLBio":{do_handshake:[0,2,1,""],set_ssl:[0,2,1,""]},"M2Crypto.BN":{rand:[0,4,1,""],rand_range:[0,4,1,""],randfname:[0,4,1,""]},"M2Crypto.DH":{DH:[0,1,1,""],DHError:[0,5,1,""],gen_params:[0,4,1,""],load_params:[0,4,1,""],load_params_bio:[0,4,1,""],set_params:[0,4,1,""]},"M2Crypto.DH.DH":{check_params:[0,2,1,""],compute_key:[0,2,1,""],gen_key:[0,2,1,""],m2_dh_free:[0,2,1,""],print_params:[0,2,1,""]},"M2Crypto.DSA":{DSA:[0,1,1,""],DSAError:[0,5,1,""],DSA_pub:[0,1,1,""],gen_params:[0,4,1,""],load_key:[0,4,1,""],load_key_bio:[0,4,1,""],load_params:[0,4,1,""],load_params_bio:[0,4,1,""],load_pub_key:[0,4,1,""],load_pub_key_bio:[0,4,1,""],pub_key_from_params:[0,4,1,""],set_params:[0,4,1,""]},"M2Crypto.DSA.DSA":{check_key:[0,2,1,""],gen_key:[0,2,1,""],m2_dsa_free:[0,2,1,""],save_key:[0,2,1,""],save_key_bio:[0,2,1,""],save_params:[0,2,1,""],save_params_bio:[0,2,1,""],save_pub_key:[0,2,1,""],save_pub_key_bio:[0,2,1,""],set_params:[0,2,1,""],sign:[0,2,1,""],sign_asn1:[0,2,1,""],verify:[0,2,1,""],verify_asn1:[0,2,1,""]},"M2Crypto.DSA.DSA_pub":{check_key:[0,2,1,""],save_key:[0,2,1,""],save_key_bio:[0,2,1,""],sign:[0,2,1,""],sign_asn1:[0,2,1,""]},"M2Crypto.EC":{EC:[0,1,1,""],ECError:[0,5,1,""],EC_pub:[0,1,1,""],ec_error:[0,4,1,""],gen_params:[0,4,1,""],get_builtin_curves:[0,4,1,""],load_key:[0,4,1,""],load_key_bio:[0,4,1,""],load_key_string:[0,4,1,""],load_key_string_pubkey:[0,4,1,""],load_pub_key:[0,4,1,""],load_pub_key_bio:[0,4,1,""],pub_key_from_der:[0,4,1,""],pub_key_from_params:[0,4,1,""]},"M2Crypto.EC.EC":{as_pem:[0,2,1,""],check_key:[0,2,1,""],compute_dh_key:[0,2,1,""],gen_key:[0,2,1,""],m2_ec_key_free:[0,2,1,""],pub:[0,2,1,""],save_key:[0,2,1,""],save_key_bio:[0,2,1,""],save_pub_key:[0,2,1,""],save_pub_key_bio:[0,2,1,""],sign_dsa:[0,2,1,""],sign_dsa_asn1:[0,2,1,""],verify_dsa:[0,2,1,""],verify_dsa_asn1:[0,2,1,""]},"M2Crypto.EC.EC_pub":{get_der:[0,2,1,""],get_key:[0,2,1,""],save_key:[0,2,1,""],save_key_bio:[0,2,1,""]},"M2Crypto.EVP":{Cipher:[0,1,1,""],EVPError:[0,5,1,""],HMAC:[0,1,1,""],MessageDigest:[0,1,1,""],PKey:[0,1,1,""],hmac:[0,4,1,""],load_key:[0,4,1,""],load_key_bio:[0,4,1,""],load_key_bio_pubkey:[0,4,1,""],load_key_pubkey:[0,4,1,""],load_key_string:[0,4,1,""],load_key_string_pubkey:[0,4,1,""],pbkdf2:[0,4,1,""]},"M2Crypto.EVP.Cipher":{"final":[0,2,1,""],m2_cipher_ctx_free:[0,2,1,""],set_padding:[0,2,1,""],update:[0,2,1,""]},"M2Crypto.EVP.HMAC":{"final":[0,2,1,""],digest:[0,2,1,""],m2_hmac_ctx_free:[0,2,1,""],reset:[0,2,1,""],update:[0,2,1,""]},"M2Crypto.EVP.MessageDigest":{"final":[0,2,1,""],digest:[0,2,1,""],m2_md_ctx_free:[0,2,1,""],update:[0,2,1,""]},"M2Crypto.EVP.PKey":{"final":[0,2,1,""],as_der:[0,2,1,""],as_pem:[0,2,1,""],assign_rsa:[0,2,1,""],digest_sign:[0,2,1,""],digest_sign_final:[0,2,1,""],digest_sign_init:[0,2,1,""],digest_sign_update:[0,2,1,""],digest_verify:[0,2,1,""],digest_verify_final:[0,2,1,""],digest_verify_init:[0,2,1,""],digest_verify_update:[0,2,1,""],get_modulus:[0,2,1,""],get_rsa:[0,2,1,""],m2_md_ctx_free:[0,2,1,""],m2_pkey_free:[0,2,1,""],reset_context:[0,2,1,""],save_key:[0,2,1,""],save_key_bio:[0,2,1,""],sign_final:[0,2,1,""],sign_init:[0,2,1,""],sign_update:[0,2,1,""],size:[0,2,1,""],update:[0,2,1,""],verify_final:[0,2,1,""],verify_init:[0,2,1,""],verify_update:[0,2,1,""]},"M2Crypto.Engine":{Engine:[0,1,1,""],EngineError:[0,5,1,""],cleanup:[0,4,1,""],load_dynamic:[0,4,1,""],load_dynamic_engine:[0,4,1,""],load_openssl:[0,4,1,""]},"M2Crypto.Engine.Engine":{ctrl_cmd_string:[0,2,1,""],finish:[0,2,1,""],get_id:[0,2,1,""],get_name:[0,2,1,""],init:[0,2,1,""],load_certificate:[0,2,1,""],load_private_key:[0,2,1,""],load_public_key:[0,2,1,""],m2_engine_free:[0,2,1,""],set_default:[0,2,1,""]},"M2Crypto.Err":{M2CryptoError:[0,5,1,""],SSLError:[0,5,1,""],get_error:[0,4,1,""],get_error_code:[0,4,1,""],get_error_func:[0,4,1,""],get_error_lib:[0,4,1,""],get_error_message:[0,4,1,""],get_error_reason:[0,4,1,""],get_x509_verify_error:[0,4,1,""],peek_error_code:[0,4,1,""]},"M2Crypto.RC4":{RC4:[0,1,1,""]},"M2Crypto.RC4.RC4":{"final":[0,2,1,""],rc4_free:[0,2,1,""],set_key:[0,2,1,""],update:[0,2,1,""]},"M2Crypto.RSA":{RSA:[0,1,1,""],RSAError:[0,5,1,""],RSA_pub:[0,1,1,""],gen_key:[0,4,1,""],keygen_callback:[0,4,1,""],load_key:[0,4,1,""],load_key_bio:[0,4,1,""],load_key_string:[0,4,1,""],load_pub_key:[0,4,1,""],load_pub_key_bio:[0,4,1,""],new_pub_key:[0,4,1,""],rsa_error:[0,4,1,""]},"M2Crypto.RSA.RSA":{as_pem:[0,2,1,""],check_key:[0,2,1,""],m2_rsa_free:[0,2,1,""],private_decrypt:[0,2,1,""],private_encrypt:[0,2,1,""],pub:[0,2,1,""],public_decrypt:[0,2,1,""],public_encrypt:[0,2,1,""],save_key:[0,2,1,""],save_key_bio:[0,2,1,""],save_key_der:[0,2,1,""],save_key_der_bio:[0,2,1,""],save_pem:[0,2,1,""],save_pub_key:[0,2,1,""],save_pub_key_bio:[0,2,1,""],sign:[0,2,1,""],sign_rsassa_pss:[0,2,1,""],verify:[0,2,1,""],verify_rsassa_pss:[0,2,1,""]},"M2Crypto.RSA.RSA_pub":{check_key:[0,2,1,""],private_decrypt:[0,2,1,""],private_encrypt:[0,2,1,""],save_key:[0,2,1,""],save_key_bio:[0,2,1,""]},"M2Crypto.Rand":{load_file:[0,4,1,""],rand_add:[0,4,1,""],rand_bytes:[0,4,1,""],rand_file_name:[0,4,1,""],rand_pseudo_bytes:[0,4,1,""],rand_seed:[0,4,1,""],rand_status:[0,4,1,""],save_file:[0,4,1,""]},"M2Crypto.SMIME":{Cipher:[0,1,1,""],PKCS7:[0,1,1,""],PKCS7_Error:[0,5,1,""],SMIME:[0,1,1,""],SMIME_Error:[0,5,1,""],load_pkcs7:[0,4,1,""],load_pkcs7_bio:[0,4,1,""],load_pkcs7_bio_der:[0,4,1,""],load_pkcs7_der:[0,4,1,""],smime_load_pkcs7:[0,4,1,""],smime_load_pkcs7_bio:[0,4,1,""],text_crlf:[0,4,1,""],text_crlf_bio:[0,4,1,""]},"M2Crypto.SMIME.PKCS7":{get0_signers:[0,2,1,""],m2_pkcs7_free:[0,2,1,""],type:[0,2,1,""],write:[0,2,1,""],write_der:[0,2,1,""]},"M2Crypto.SMIME.SMIME":{decrypt:[0,2,1,""],encrypt:[0,2,1,""],load_key:[0,2,1,""],load_key_bio:[0,2,1,""],set_cipher:[0,2,1,""],set_x509_stack:[0,2,1,""],set_x509_store:[0,2,1,""],sign:[0,2,1,""],unset_cipher:[0,2,1,""],unset_key:[0,2,1,""],unset_x509_stack:[0,2,1,""],unset_x509_store:[0,2,1,""],verify:[0,2,1,""],write:[0,2,1,""]},"M2Crypto.SSL":{Checker:[1,0,0,"-"],Cipher:[1,0,0,"-"],Connection:[1,0,0,"-"],Context:[1,0,0,"-"],SSLError:[1,5,1,""],SSLServer:[1,0,0,"-"],SSLTimeoutError:[1,5,1,""],Session:[1,0,0,"-"],TwistedProtocolWrapper:[1,0,0,"-"],cb:[1,0,0,"-"],ssl_dispatcher:[1,0,0,"-"],timeout:[1,0,0,"-"]},"M2Crypto.SSL.Checker":{Checker:[1,1,1,""],NoCertificate:[1,5,1,""],SSLVerificationError:[1,5,1,""],WrongCertificate:[1,5,1,""],WrongHost:[1,5,1,""]},"M2Crypto.SSL.Checker.Checker":{numericIpMatch:[1,3,1,""]},"M2Crypto.SSL.Cipher":{Cipher:[1,1,1,""],Cipher_Stack:[1,1,1,""]},"M2Crypto.SSL.Cipher.Cipher":{name:[1,2,1,""],version:[1,2,1,""]},"M2Crypto.SSL.Connection":{Connection:[1,1,1,""]},"M2Crypto.SSL.Connection.Connection":{accept:[1,2,1,""],accept_ssl:[1,2,1,""],bind:[1,2,1,""],clear:[1,2,1,""],close:[1,2,1,""],connect:[1,2,1,""],connect_ssl:[1,2,1,""],fileno:[1,2,1,""],get_cipher:[1,2,1,""],get_cipher_list:[1,2,1,""],get_ciphers:[1,2,1,""],get_context:[1,2,1,""],get_default_session_timeout:[1,2,1,""],get_peer_cert:[1,2,1,""],get_peer_cert_chain:[1,2,1,""],get_session:[1,2,1,""],get_shutdown:[1,2,1,""],get_socket_read_timeout:[1,2,1,""],get_socket_write_timeout:[1,2,1,""],get_state:[1,2,1,""],get_verify_depth:[1,2,1,""],get_verify_mode:[1,2,1,""],get_verify_result:[1,2,1,""],get_version:[1,2,1,""],getpeername:[1,2,1,""],getsockname:[1,2,1,""],getsockopt:[1,2,1,""],listen:[1,2,1,""],m2_bio_free:[1,2,1,""],m2_bio_noclose:[1,3,1,""],m2_ssl_free:[1,2,1,""],makefile:[1,2,1,""],pending:[1,2,1,""],read:[1,2,1,""],recv:[1,2,1,""],recv_into:[1,2,1,""],renegotiate:[1,2,1,""],send:[1,2,1,""],sendall:[1,2,1,""],serverPostConnectionCheck:[1,2,1,""],set1_host:[1,2,1,""],set_accept_state:[1,2,1,""],set_bio:[1,2,1,""],set_cipher_list:[1,2,1,""],set_client_CA_list_from_context:[1,2,1,""],set_client_CA_list_from_file:[1,2,1,""],set_connect_state:[1,2,1,""],set_post_connection_check_callback:[1,2,1,""],set_session:[1,2,1,""],set_session_id_ctx:[1,2,1,""],set_shutdown:[1,2,1,""],set_socket_read_timeout:[1,2,1,""],set_socket_write_timeout:[1,2,1,""],set_ssl_close_flag:[1,2,1,""],set_tlsext_host_name:[1,2,1,""],setblocking:[1,2,1,""],setsockopt:[1,2,1,""],settimeout:[1,2,1,""],setup_addr:[1,2,1,""],setup_ssl:[1,2,1,""],shutdown:[1,2,1,""],ssl_get_error:[1,2,1,""],verify_ok:[1,2,1,""],write:[1,2,1,""]},"M2Crypto.SSL.Context":{Context:[1,1,1,""],ctxmap:[1,4,1,""],map:[1,4,1,""]},"M2Crypto.SSL.Context.Context":{add_session:[1,2,1,""],close:[1,2,1,""],get_allow_unknown_ca:[1,2,1,""],get_cert_store:[1,2,1,""],get_session_cache_mode:[1,2,1,""],get_session_timeout:[1,2,1,""],get_verify_depth:[1,2,1,""],get_verify_mode:[1,2,1,""],load_cert:[1,2,1,""],load_cert_chain:[1,2,1,""],load_client_CA:[1,2,1,""],load_client_ca:[1,2,1,""],load_verify_info:[1,2,1,""],load_verify_locations:[1,2,1,""],m2_ssl_ctx_free:[1,2,1,""],remove_session:[1,2,1,""],set_allow_unknown_ca:[1,2,1,""],set_cipher_list:[1,2,1,""],set_client_CA_list_from_file:[1,2,1,""],set_default_verify_paths:[1,2,1,""],set_info_callback:[1,2,1,""],set_options:[1,2,1,""],set_session_cache_mode:[1,2,1,""],set_session_id_ctx:[1,2,1,""],set_session_timeout:[1,2,1,""],set_tmp_dh:[1,2,1,""],set_tmp_dh_callback:[1,2,1,""],set_tmp_rsa:[1,2,1,""],set_tmp_rsa_callback:[1,2,1,""],set_verify:[1,2,1,""]},"M2Crypto.SSL.SSLServer":{ForkingSSLServer:[1,1,1,""],SSLServer:[1,1,1,""],ThreadingSSLServer:[1,1,1,""]},"M2Crypto.SSL.SSLServer.SSLServer":{handle_error:[1,2,1,""],handle_request:[1,2,1,""]},"M2Crypto.SSL.Session":{Session:[1,1,1,""],load_session:[1,4,1,""]},"M2Crypto.SSL.Session.Session":{as_der:[1,2,1,""],as_text:[1,2,1,""],get_time:[1,2,1,""],get_timeout:[1,2,1,""],m2_ssl_session_free:[1,2,1,""],set_time:[1,2,1,""],set_timeout:[1,2,1,""],write_bio:[1,2,1,""]},"M2Crypto.SSL.TwistedProtocolWrapper":{TLSProtocolWrapper:[1,1,1,""],connectSSL:[1,4,1,""],connectTCP:[1,4,1,""],listenSSL:[1,4,1,""],listenTCP:[1,4,1,""]},"M2Crypto.SSL.TwistedProtocolWrapper.TLSProtocolWrapper":{clear:[1,2,1,""],connectionLost:[1,2,1,""],connectionMade:[1,2,1,""],dataReceived:[1,2,1,""],loseConnection:[1,2,1,""],startTLS:[1,2,1,""],write:[1,2,1,""],writeSequence:[1,2,1,""]},"M2Crypto.SSL.cb":{ssl_info_callback:[1,4,1,""],ssl_verify_callback:[1,4,1,""],ssl_verify_callback_allow_unknown_ca:[1,4,1,""],ssl_verify_callback_stub:[1,4,1,""]},"M2Crypto.SSL.ssl_dispatcher":{ssl_dispatcher:[1,1,1,""]},"M2Crypto.SSL.ssl_dispatcher.ssl_dispatcher":{connect:[1,2,1,""],create_socket:[1,2,1,""],recv:[1,2,1,""],send:[1,2,1,""]},"M2Crypto.SSL.timeout":{struct_size:[1,4,1,""],struct_to_timeout:[1,4,1,""],timeout:[1,1,1,""]},"M2Crypto.SSL.timeout.timeout":{pack:[1,2,1,""]},"M2Crypto.X509":{CRL:[0,1,1,""],Request:[0,1,1,""],X509:[0,1,1,""],X509Error:[0,5,1,""],X509_Extension:[0,1,1,""],X509_Extension_Stack:[0,1,1,""],X509_Name:[0,1,1,""],X509_Name_Entry:[0,1,1,""],X509_Stack:[0,1,1,""],X509_Store:[0,1,1,""],X509_Store_Context:[0,1,1,""],load_cert:[0,4,1,""],load_cert_bio:[0,4,1,""],load_cert_der_string:[0,4,1,""],load_cert_string:[0,4,1,""],load_crl:[0,4,1,""],load_request:[0,4,1,""],load_request_bio:[0,4,1,""],load_request_der_string:[0,4,1,""],load_request_string:[0,4,1,""],new_extension:[0,4,1,""],new_stack_from_der:[0,4,1,""],x509_store_default_cb:[0,4,1,""]},"M2Crypto.X509.CRL":{as_text:[0,2,1,""],m2_x509_crl_free:[0,2,1,""]},"M2Crypto.X509.Request":{add_extensions:[0,2,1,""],as_der:[0,2,1,""],as_pem:[0,2,1,""],as_text:[0,2,1,""],get_pubkey:[0,2,1,""],get_subject:[0,2,1,""],get_version:[0,2,1,""],m2_x509_req_free:[0,2,1,""],save:[0,2,1,""],save_pem:[0,2,1,""],set_pubkey:[0,2,1,""],set_subject:[0,2,1,""],set_subject_name:[0,2,1,""],set_version:[0,2,1,""],sign:[0,2,1,""],verify:[0,2,1,""]},"M2Crypto.X509.X509":{add_ext:[0,2,1,""],as_der:[0,2,1,""],as_pem:[0,2,1,""],as_text:[0,2,1,""],check_ca:[0,2,1,""],check_purpose:[0,2,1,""],get_ext:[0,2,1,""],get_ext_at:[0,2,1,""],get_ext_count:[0,2,1,""],get_fingerprint:[0,2,1,""],get_issuer:[0,2,1,""],get_not_after:[0,2,1,""],get_not_before:[0,2,1,""],get_pubkey:[0,2,1,""],get_serial_number:[0,2,1,""],get_subject:[0,2,1,""],get_version:[0,2,1,""],m2_x509_free:[0,2,1,""],save:[0,2,1,""],save_pem:[0,2,1,""],set_issuer:[0,2,1,""],set_issuer_name:[0,2,1,""],set_not_after:[0,2,1,""],set_not_before:[0,2,1,""],set_pubkey:[0,2,1,""],set_serial_number:[0,2,1,""],set_subject:[0,2,1,""],set_subject_name:[0,2,1,""],set_version:[0,2,1,""],sign:[0,2,1,""],verify:[0,2,1,""]},"M2Crypto.X509.X509_Extension":{get_critical:[0,2,1,""],get_name:[0,2,1,""],get_value:[0,2,1,""],m2_x509_extension_free:[0,2,1,""],set_critical:[0,2,1,""]},"M2Crypto.X509.X509_Extension_Stack":{m2_sk_x509_extension_free:[0,2,1,""],pop:[0,2,1,""],push:[0,2,1,""]},"M2Crypto.X509.X509_Name":{add_entry_by_txt:[0,2,1,""],as_der:[0,2,1,""],as_hash:[0,2,1,""],as_text:[0,2,1,""],entry_count:[0,2,1,""],get_entries_by_nid:[0,2,1,""],m2_x509_name_free:[0,2,1,""],nid:[0,3,1,""]},"M2Crypto.X509.X509_Name_Entry":{create_by_txt:[0,2,1,""],get_data:[0,2,1,""],get_object:[0,2,1,""],m2_x509_name_entry_free:[0,2,1,""],set_data:[0,2,1,""],set_object:[0,2,1,""]},"M2Crypto.X509.X509_Stack":{as_der:[0,2,1,""],m2_sk_x509_free:[0,2,1,""],pop:[0,2,1,""],push:[0,2,1,""]},"M2Crypto.X509.X509_Store":{add_cert:[0,2,1,""],add_x509:[0,2,1,""],load_info:[0,2,1,""],load_locations:[0,2,1,""],m2_x509_store_free:[0,2,1,""],set_flags:[0,2,1,""],set_verify_cb:[0,2,1,""]},"M2Crypto.X509.X509_Store_Context":{get1_chain:[0,2,1,""],get_current_cert:[0,2,1,""],get_error:[0,2,1,""],get_error_depth:[0,2,1,""],m2_x509_store_ctx_free:[0,2,1,""]},"M2Crypto.ftpslib":{FTP_TLS:[0,1,1,""]},"M2Crypto.ftpslib.FTP_TLS":{auth_ssl:[0,2,1,""],auth_tls:[0,2,1,""],ntransfercmd:[0,2,1,""],prot_c:[0,2,1,""],prot_p:[0,2,1,""]},"M2Crypto.httpslib":{HTTPSConnection:[0,1,1,""],ProxyHTTPSConnection:[0,1,1,""]},"M2Crypto.httpslib.HTTPSConnection":{close:[0,2,1,""],connect:[0,2,1,""],default_port:[0,3,1,""],get_session:[0,2,1,""],set_session:[0,2,1,""]},"M2Crypto.httpslib.ProxyHTTPSConnection":{connect:[0,2,1,""],endheaders:[0,2,1,""],putheader:[0,2,1,""],putrequest:[0,2,1,""]},"M2Crypto.m2urllib":{open_https:[0,4,1,""]},"M2Crypto.m2urllib2":{HTTPSHandler:[0,1,1,""],build_opener:[0,4,1,""]},"M2Crypto.m2urllib2.HTTPSHandler":{https_open:[0,2,1,""],https_request:[0,2,1,""]},"M2Crypto.m2xmlrpclib":{SSL_Transport:[0,1,1,""]},"M2Crypto.m2xmlrpclib.SSL_Transport":{request:[0,2,1,""],user_agent:[0,3,1,""]},"M2Crypto.threading":{cleanup:[0,4,1,""],init:[0,4,1,""]},"M2Crypto.util":{UtilError:[0,5,1,""],bin_to_hex:[0,4,1,""],genparam_callback:[0,4,1,""],no_passphrase_callback:[0,4,1,""],octx_to_num:[0,4,1,""],passphrase_callback:[0,4,1,""],pkcs5_pad:[0,4,1,""],pkcs7_pad:[0,4,1,""],quiet_genparam_callback:[0,4,1,""]},M2Crypto:{ASN1:[0,0,0,"-"],AuthCookie:[0,0,0,"-"],BIO:[0,0,0,"-"],BN:[0,0,0,"-"],DH:[0,0,0,"-"],DSA:[0,0,0,"-"],EC:[0,0,0,"-"],EVP:[0,0,0,"-"],Engine:[0,0,0,"-"],Err:[0,0,0,"-"],RC4:[0,0,0,"-"],RSA:[0,0,0,"-"],Rand:[0,0,0,"-"],SMIME:[0,0,0,"-"],SSL:[1,0,0,"-"],X509:[0,0,0,"-"],__init__:[0,0,0,"-"],callback:[0,0,0,"-"],ftpslib:[0,0,0,"-"],httpslib:[0,0,0,"-"],m2:[0,0,0,"-"],m2crypto:[0,0,0,"-"],m2urllib2:[0,0,0,"-"],m2urllib:[0,0,0,"-"],m2xmlrpclib:[0,0,0,"-"],threading:[0,0,0,"-"],util:[0,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","attribute","Python attribute"],"4":["py","function","Python function"],"5":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:attribute","4":"py:function","5":"py:exception"},terms:{"059600270x":5,"0ipy80":4,"0jwuq":4,"0qjhp6hut7fso":4,"0x0":[3,4],"0x1":3,"0x10001":[3,4],"0x2":[3,4],"0x822012c":4,"100":0,"1024":[0,1,2,3,4],"105":0,"1095":3,"115":2,"12345678":0,"127":2,"1365":2,"168":4,"1750":0,"19973a9dbbb601ba":3,"1998":2,"1999":[0,1],"1bc9f3q":4,"1czdztgk7h9cdgx2qjsivymyytcfi3zsuzmjs8":3,"1dr9dy8l0naqh21y5fgss8b1wd":4,"1ezn9zmlryqzbtxnnrmp3dhj":4,"1g9epovswhpqr":4,"1hxxfyo88m":3,"1qk53c":3,"1t8luishhn9899imp2vyg0ub67fqfypymm2cm2":4,"1tcaqbmq":4,"1vsrcid":3,"200":2,"2000":[2,3,4,5],"2001":[2,3,4,5],"2002":[3,4],"2003":[0,1,2],"2004":1,"2006":5,"2007":1,"2008":1,"2014":0,"2017":0,"205":4,"21075075":4,"213":4,"217mrhyx2nswgrpkqndu3gespovml3jeqiaxuponbwq7rj42":3,"2311":4,"2312":4,"282":2,"2898":0,"2aglpogdcfdioqblb2dcscohmbbvr":3,"2bconvert":1,"2bdqvfpffx5lsmitkzaobldssjfr6rojxoqrsgia2az":4,"2cjcbfzokmijci03kbtqxofiqglstwxgzknf":3,"2dnyol50zu0sdzst1":3,"2iwrpascbeid8saraql3ddcli":3,"2zz2g7x1hxrwh95a":4,"300":1,"3037":2,"312":4,"313":2,"365":[3,4],"3c93156fc7b4ebf49fe9c7db7f503087":4,"3dizhtxigepfztiuyutxs3i2gnmx2pee3chtllywd3jneakz0iozpdphif2xhllq":4,"3pjiyfhaxk64iutmpsy393rhmeb4kn":4,"3wf7q915tveqoc74bnu6b8ibbgrmhzdzmvq4szffveaum":3,"4096":[0,1],"4097":0,"41b2874df3d02dd4":3,"443":0,"4ju6":4,"4mpgg20wd633d4z4dtlddz":3,"4oxll0bi":3,"509":[0,4],"509v3":2,"512":0,"535":2,"56vrpgppgut40hv8xqfbwiz2whwwlkpfahj8b79ztfuzuru6z2rnpvv8inhc":4,"5efdvbet":3,"600":1,"65535":0,"65537":[3,4],"6l0g37faxur3xm28rchzvhu":3,"76h5jiznpbdsf2fjghwqvvdgyw4owy3mu739lhvnblicn":3,"7ay4jsdhyibcmgsq":3,"7pvwhtszeyhn3oa9dhlmv9uqc4wy5md7j":3,"7zjt2r5cpikgkwofamduxeltx":3,"8080":2,"8caweaaaaama0gcsqgsib3dqebbauaa4gb":3,"8czydsolmyibujccabycaqewydbbmqswcqydvqqgewjtrzerma8ga1uechmittjd":4,"8levy0cllw":3,"8tsi3wo5enkg4qwbnarqc3vgcv":4,"8yhspd0caweaaaobtjcbszadbgnvhq4efgquxoyoll1t4jabwzfrm7ms8nblzuow":4,"9021":2,"9080":2,"9081":2,"9443":2,"9444":2,"974aklcjnk1gzigarz":4,"9gul1bxbckrtedtxenqtem7spzomtswd2lhb8z65grx90cyt":4,"9ij5z6mja7rm7ttbsjup":4,"9rsqkrc9urv9mrbisredgnyecnerak5r1yzpoowninxc":3,"9znlfejkjj67vembxbj":4,"abstract":[0,4],"break":2,"byte":[0,1],"case":[1,4,5],"class":[0,1,4,5],"default":[0,1,2,3,4,5],"export":[1,4],"final":[0,4],"float":[0,1],"function":[0,1,2,4,5],"import":[0,1,2,4],"int":[0,1],"long":[1,5],"new":[0,1,2,3,4],"null":[0,1],"public":[0,3,4],"return":[0,1,4,5],"true":[0,1,4],"while":[0,1,2,4],AND:1,CAs:1,DES:[3,4],DNS:[0,5],Doing:0,For:[0,1,2,3,4],HAS:1,Its:0,NOT:[0,1],Not:[3,4],THE:1,TLS:[0,1,5],That:[3,4],The:[0,1,2,4,5],Their:0,There:[1,3,4,5],These:[1,2],Use:[0,1,5],Using:[3,4,5],WILL:1,With:2,__del__:1,__init__:[0,2],_alwayssucceedspostconnectioncheck:1,_close_cb:0,_ctxmap:1,_debug:0,_free_bio:1,_io:[0,1],_mode_:1,_ptr:0,_pyfre:[0,1],_pyfree_x509:0,_timeout_:1,_top:2,a4mgiy2kwwfie73qiyv7yyg8flrvr1iib:3,aaiavb8w:4,abl:4,about:[0,1,3,4],abov:[0,1,2,4,5],absent:1,absolut:0,abstracthttphandl:0,accept:[0,1,2,3,4,5],accept_ssl:1,access:[2,4],accord:[0,1],acl_us:2,acquir:0,action:1,actual:[0,1,4,5],actualhost:1,add:[0,1,2],add_cert:0,add_entry_by_txt:0,add_ext:0,add_extens:0,add_sess:1,add_x509:0,added:[0,1],addhead:2,addinfourl:0,adding:1,addit:[0,1,5],addr:1,address:[1,3,4,5],addressfamili:1,admin:3,administr:4,advanc:3,adversari:0,aes_128_cbc:0,aetir4v7sgxmepx7thq1pv:4,af_inet:1,affect:1,afresh:3,after:[0,1,3,4,5],again:[0,3,4],against:0,agent:2,aggtjgplibexlzalhpwlz9laqyrqpvcvjywaovfmmvrav4nafnoz2:4,ago:3,ahau6kwk:4,ahporp5ys55czpi:3,aka:0,akbr4il1nkq8ecsmcr3wpa0i9n0ehi7zvpvahxc0sqapfl8ygdfhq:3,alert:1,alg:0,algo:0,algorigthm:0,algorithm:[0,3,4],alia:0,aliv:1,all:[0,1,3,5],allow:[0,1,3,5],almost:0,along:0,alreadi:1,also:[0,1,2,3,4,5],alt:2,altern:[1,2],although:5,alwai:[0,4],amyxludrk45acua:3,analys:5,ani:[0,1,5],anoth:[1,3],anyon:4,anystr:[0,1],anyth:5,aogabaku8w3w1qu15hle1bjsl7gmreoreqeblobmmazz4by0l6sxzxjpjwxo86f:3,apach:2,api:[0,1],appear:2,append:0,appli:[0,2,3],applic:[0,1,3,4,5],approach:4,appropri:[0,1,5],aqh:4,arg:0,argument:0,argv:0,arm:4,around:2,as_der:[0,1],as_hash:0,as_pem:0,as_text:[0,1],ask:[0,3,4],asn1:6,asn1_integ:0,asn1_object:0,asn1_str:0,asn1_string_print_ex:0,asn1_tim:0,asn1_utctim:0,asn1int:0,asn1obj:0,asn1str:0,assign:[0,1],assign_rsa:0,associ:[0,1],assum:[1,2,4],asyncio:1,asyncor:[1,2],attach:4,attempt:[0,5],attribut:[0,3,4],auth:0,auth_ssl:0,auth_tl:0,authcooki:6,authcookiejar:0,authent:4,author:[0,2,3,4,5],autom:4,automag:[0,4],automat:[1,5],avail:[1,2,4,5],avoid:2,awai:[0,1],awfqq4jcc:4,awihma0gccqgsib3dqmcageoma0gcsqgsib3dqebaquabigaqpu8hfutlcf6ho2t:4,ax96lvs0:3,b4law8g59vtg6dykeetrg0rubx4bggc7pkbfuin423yjjodwchvvgnpozxmqt:3,b4txejzriyc8f3:4,b6gr5s8:4,b6ugcsqgsib3dqehataubggqhkig9w0dbwqirf525ufwszaaggea85rmx6axqmxb:4,b75:3,b877j9wbpbl:3,b9zjffauqtwzdnjgrkkyikhwjdojaac:4,backlog:1,bad:1,base64:4,base:[0,1,2,3,4,5],baserequesthandl:1,basi:1,basic:[3,4],bat:2,bdclcn8a:4,becaus:[0,1,4],been:[0,1,4],befor:[0,1,3,4,5],began:3,begin:[3,4,5],behav:1,behaviour:1,being:[0,1,4],below:2,best:5,better:0,between:5,beyond:4,bgbyj1dubkhzsc7dgxzdtuclgnxqnnsg:3,bgcolor:2,bgkqhkig9w0bbwewfayikozihvcnawcecmn:4,bgkqhkig9w0bbwewhayjkozihvcnaqkfmq8xdtaxmdmzmtexnduwmlowiwyjkozi:4,bhdelbr5jbpjcj5aid76mfr8:4,bhmcu0cxetapbgnvbaotce0yq3j5chrvmrkwfwydvqqdexbtl01jtuugumvjaxbp:4,big:0,bin_to_hex:0,binari:[0,1],bind:1,bind_and_activ:1,bindaddress:1,binstr:1,bio:[1,4,5,6],bio_clos:1,bio_f_buff:0,bio_f_ciph:0,bio_f_ssl:0,bio_fre:1,bio_in:0,bio_noclos:1,bio_ptr:0,bio_push:0,bio_s_mem:0,bio_s_pyfd:0,bioerror:0,bit:[0,1,3,4],bitmask:1,bitwis:0,bjq5hnxbouslq0rwbrkoxv64i:4,blank:[3,4],blklen:0,blob:[0,4],block:1,blwegdqhonaiwbk5z1l:4,bmrlckblegftcgxllmrvbqibadajbgurdgmcgguaoigxmbggcsqgsib3dqejazel:4,bmvnwbppufzpiaivalycjt6pyextbbszs7:3,bo2w7ei6iejbazk:3,bodi:[0,2],book:5,bool:[0,1],border:2,both:[0,1,2],bottom:[0,4],bound:[0,1],boundari:4,box:[2,4],br77:3,bring:4,brows:2,browser:2,browser_id_manag:2,buf:[0,4],buf_len:0,buff:1,buffer:[0,1,4,5],buffer_s:1,bufferedread:1,bufferedrwpair:1,buffers:1,buflen:1,bufsiz:1,build_open:0,built:1,builtin:0,bundl:[2,3,4],bxwxkuuvt81vbjwdn9jst6:4,bytearrai:[0,1],bytesio:0,c6fi3n03rgfmkectijc:3,cacert:[1,3],cach:1,cadav:2,cafil:1,cakei:3,calcul:0,call:[0,1,3,4,5],callabl:[0,1],callback:[1,6],caller:1,can:[0,1,2,3,4,5],cannot:1,capath:1,captur:0,cat:3,catalog:2,catop:3,cbc:[3,4],ccrt2tfwkbbfleuifl7mb:3,ccvkzzl:3,cenfqfwc:4,cepl:0,cert:[0,1,4,5],certain:[0,1,3],certbio:0,certchainfil:1,certdata2pem:5,certdata:5,certfil:[0,1],certif:[0,1,2,3,5],certifi:[3,4],certmast:3,cgyikozihvcnawcwdgyikozihvcnawicagcama0gccqgsib3dqmcagfamacgbsso:4,chain:[0,1,5],challeng:3,chandra:5,chang:[0,1],channel:[1,2],charact:0,cheap:4,check:[0,1,2,3,5],check_ca:0,check_kei:0,check_param:0,check_purpos:0,checker:[0,5,6],choos:[3,4],chosen:5,chunk:1,cipher:[0,4,5,6],cipher_list:1,cipher_stack:1,cipherstream:0,circular:1,citi:[3,4],claim:5,clbwev3ryfrlp4x8j9mdte0ykok3t0wqohqrettsifdtjnfp:3,clean:[0,1],cleanup:0,clear:[0,1,3,4],click:[2,4],client:[0,1,4,5],client_addr:0,client_address:1,close:[0,1,2,4],close_flag:0,close_pyfil:0,clutter:2,cmd:0,cnf:[3,4],cngeq1qxtyduiguda2nbgcl:4,cnlwdg8xfjaubgnvbamtdvmvtulnrsbtzw5kzxixitafbgkqhkig9w0bcqewennl:4,code:[0,1,3,4],coll:2,collect:[2,5],com:[0,2,3,4,5],combin:1,come:[0,3,5],command:[3,5],comment:3,commerci:4,commit:3,common:[3,4,5],commonli:4,commonnam:[0,1,3,5],commun:[0,1],compani:[3,4],companion:4,compar:5,compat:5,compil:[0,1],complet:[0,1],compos:2,composit:0,comput:0,compute_dh_kei:0,compute_kei:0,concaten:1,configur:[3,4],conn:0,connect:[0,2,4,5,6],connect_ssl:1,connectionlost:1,connectionmad:1,connectssl:1,connecttcp:1,consid:1,consist:[0,4],constant:[0,1],constrain:3,constraint:[3,4],consum:4,contain:[0,1,2,4],content:[0,1,4,6],context:[0,5,6],contextfactori:1,continu:1,control:[0,1,5],control_panel:2,conveni:1,convert:[0,5],cooki:0,cookie_str:0,copi:[1,2,3],copyright:[0,1,2,3,4,5],corner:4,correct:[1,4],correctli:4,correspond:4,could:[0,1,5],count:[0,2],counterpan:4,countri:[3,4],countrynam:3,cours:[3,4],cover:3,coz:4,cqydvqqgewjtrzerma8ga1uechmittjdcnlwdg8xfjaubgnvbamtdvmvtulnrsbt:4,cqzkt9:3,crack:4,crash:0,creat:[0,1,2,4,5,6],create_by_txt:0,create_socket:1,creation:[1,3],credit:2,critic:0,crl:0,cryptograph:[0,4],css:2,cstringio:0,ctrl_cmd_string:0,ctx:[0,1,5],ctxmap:1,current:[0,1,4],curv:0,custom:1,cvzrxakeaxno80arbgxpumr11ghg:3,cw8kzzwh:4,cxo23r9wwrnzem:4,d2i_ssl_sess:1,dai:[3,4],dasmytmpc4ztytv06n07afbjl:3,dat:[2,4],data:[0,1,2,3,4,5],data_bio:0,databas:3,datareceiv:1,date:[0,2,5],datetim:0,dav:2,dcwd:4,ddlzqbacuxwtv5xy8plmx7widaqab:3,dec:2,decid:[1,3],decis:3,decod:[1,3,5],decrypt:[0,5],def:4,default_port:0,defin:1,dek:3,delet:0,demo:[2,3,4,5],democa:3,demonstr:[3,4,5],depend:[0,1,2,4],deploi:3,depth:[0,1,5],der:[0,4],der_str:0,deriv:0,des_ede3_cbc:4,describ:[0,1],descript:0,desktop:2,detail:0,determin:0,dev:2,develop:3,dh1024:2,dherror:0,dhpfile:1,dialog:[2,4],dict:0,did:[1,3],differ:[1,5],diffi:[0,2],digest:[0,4,5],digest_sign:0,digest_sign_fin:0,digest_sign_init:0,digest_sign_upd:0,digest_verifi:0,digest_verify_fin:0,digest_verify_init:0,digest_verify_upd:0,digit:4,directli:[1,5],directori:[1,2,3,5],dirnam:[3,4],disabl:[0,1],discard:3,discuss:3,dispatch:1,displai:[4,5],dispos:1,disposit:4,distinguish:[1,3,4],distribut:[2,5],ditto:0,dnli0rvuvxiwt:3,do_handshak:0,document:[1,2,3,4,5],doe:[0,1,5],doesn:1,dog:4,dom:[3,4],don:0,done:[1,2],dough:0,down:1,download:[2,4,5],dqehaaavbbnhihnpz24gb2ygb3vyihrpbwvzoiic5zccaumwggjmoamcaqicaqaw:4,dqyjkozihvcnaqeebqawwzelmakga1uebhmcu0cxetapbgnvbaotce0yq3j5chrv:4,dsa:[4,5,6],dsa_pub:0,dsaerror:0,dst:0,due:1,duhrqiml1tyi:3,duqhj2ygkkwdqq9v0xscjkgiyw:3,dure:[0,1,5],dw0boozhj8tc7co7lmyb0ye271b6:3,dyman:0,dynam:0,e9kybgki7vpojwbz27:3,e_n:0,each:[0,1,4],east:0,eawm5avuv7hnptt5zr:4,eaydvqqdewlsb2nhbghvc3qxjzalbgkqhkig9w0bcqewggfkbwluqhnlcnzlci5l:3,ebdz:4,ec9eyj:4,ec_error:0,ec_pub:0,ecdh:0,ecdsa:0,ecerror:0,ede3:[3,4],effect:4,egftcgxllmrvbtcbnzanbgkqhkig9w0baqefaaobjqawgykcgyear1nyy1qrll1r:3,either:[0,1],electron:4,els:[0,1,3,4],email:[0,3,4],emailaddress:[0,3],emmarsgyedf5h1afl1smkomskbqxe1d2jg:4,empir:0,emploi:5,enabl:[1,4],encod:[0,1,2,4],encrypt:[0,1,3],end:[0,1,3],endhead:0,endian:0,engin:[1,6],engine_ctrl_cmd_str:0,engine_method_:0,engineerror:0,enhanc:5,enough:0,ensu:4,ensur:[0,1],enter:[0,2,3,4],entri:[0,3],entropi:0,entry_count:0,environ:[0,1],eopzyno4mi:4,eoq9wfscnii4:3,eovbgs7ezalvvkdj4hnl:4,eozfol5i20ykiv6j:4,ephemer:1,epoch:0,epollreactor:1,equival:[0,1],eric:5,err:[4,6],err_get_error:0,errdepth:1,errnum:1,error:[0,1,4],error_log:2,establish:[0,1,5],estim:0,etag:2,etc:[0,1],etwitreft1heupnar:4,even:0,event:0,evp:6,evp_ciph:0,evperror:0,ewjtrzerma8ga1uechmittjdcnlwdg8xfjaubgnvbamtdvmvtulnrsbtzw5kzxix:4,exampl:[0,1,2,3,4,5],except:[0,1,5],exchang:[0,5],execut:[3,4],exist:[2,3],exit:0,exiy8geir:4,exp:0,expect:0,expectedhost:1,expir:[0,1,3],expiri:0,explain:4,explan:1,explicitli:1,explor:4,expon:[0,3,4],ext:0,ext_stack:0,extens:[0,1,3,4],extern:1,extra:3,extract:1,facilit:3,fact:0,factori:[0,1],fail:[0,1],failur:[0,1,4],fakesocket:5,fals:[0,1,3],famili:1,fancyurlopen:2,faq:0,farm:2,fashion:2,fatal:1,fcgiserv:2,fcmspp3auq1:4,featur:5,feed:0,feedback:0,few:[3,4],ffffff:2,fi1wdpphywke97pojizvqesfzopty5hjiyzux4u:3,field:[0,3,4,5],fieldnam:1,fifth:5,file:[0,1,2,3,4,5],filenam:[0,1,3,4],fileno:[0,1],find:1,fingerprint:0,finish:[0,1],first:[0,4,5],fixm:1,flag:[0,1,4,5],flndpcnkrtvqdx3rt6x6vbttcyom:4,flowinfo:1,flush:0,fmt7a120s3gd2jixgh06l:4,follow:[0,2,3,4,5],forgotten:3,forkingmixin:1,forkingsslserv:1,form:[0,1,5],format:[0,1,4,5],format_d:0,format_format_d:0,format_pem:0,found:[0,1],foundat:[1,5],four:1,fourth:5,fqlcrrr5nvupdin:3,freebio:1,freebsd:2,freed:1,freeli:4,freewar:4,friendli:4,frill:0,from:[0,1,2,3,4,5],from_addr:4,from_cert:4,from_kei:4,ftp:[0,2],ftp_tl:0,ftplib:0,ftpserver:2,ftpslib:6,full:[3,4],further:1,fv4sgm3jkr:4,g3bgsmvlxkefztfjkxo6xnjcbnf5i:4,g7ppoo:3,gain:5,gd58p4mpmhu5iknz4yh4nlhnaitevcs85tzuaxze9g:4,gen_kei:0,gen_param:0,gener:[0,1,3,4],genparam_callback:0,get0_sign:0,get1_chain:0,get:[0,1,2],get_allow_unknown_ca:1,get_builtin_curv:0,get_cert_stor:1,get_ciph:1,get_cipher_list:1,get_context:1,get_crit:0,get_current_cert:0,get_data:0,get_datetim:0,get_default_session_timeout:1,get_der:0,get_entries_by_nid:0,get_error:[0,1,4],get_error_cod:0,get_error_depth:0,get_error_func:0,get_error_lib:0,get_error_messag:0,get_error_reason:0,get_ext:0,get_ext_at:0,get_ext_count:0,get_fingerprint:0,get_id:0,get_issu:0,get_kei:0,get_modulu:0,get_nam:0,get_not_aft:0,get_not_befor:0,get_object:0,get_peer_cert:1,get_peer_cert_chain:1,get_pubkei:0,get_rsa:0,get_serial_numb:0,get_sess:[0,1],get_session_cache_mod:1,get_session_timeout:1,get_shutdown:1,get_socket_read_timeout:1,get_socket_write_timeout:1,get_stat:1,get_subject:0,get_tim:1,get_timeout:1,get_valu:0,get_verify_depth:1,get_verify_mod:1,get_verify_result:1,get_vers:[0,1],get_x509_verify_error:0,getpeernam:1,getproto:1,getronicsgov:4,getsocknam:1,getsockopt:1,geturl:0,getvalu:0,ggarfmmj4yuhewkys9jo1h8k4bdxugmauwni5:3,give:3,given:[0,1],givennam:0,gknqqdblotqt06f3oissdjetm2itllyhgzv:3,global:4,gmt:[2,3,4],goe:[0,1],good:0,govern:3,gpmpndsyvvceufpluwydim0vkwhgc2:4,gqnveov:3,gqzcvnzzcmx8uvrjqr8drwdsmpj0vxg1:4,gracefulli:1,gratefulli:4,grcgzeb9ymfcedxahtdufhjrkpdpsxzzvvgksbncbqu92obyqvnrq8m:4,greet:1,grew:5,group:4,gucrblvd7n3ofnx5ujmpmcw9zwbu:4,gvyvi:4,gymga1udiwr8mhqaffzsqjs9bei2gcgrutozevjws81kov:4,h7nmicymi2wkz8h:4,h99suto:3,h9diul:3,hack:2,handi:3,handl:[1,4],handle_error:1,handle_request:1,handler:[0,1],handshak:[0,1],hanson:3,happen:5,hard:0,hardwar:0,has:[0,1,4,5],hash:0,have:[1,3,4],hcyiukxujtaqtxboh:4,head:2,header:[0,2],headervalu:0,height:2,heikki:[1,5],hellman:[0,2],henc:3,henceforth:2,here:[0,1,3,4],hex:0,higher:1,hihsrgwtnd7lnxuucpx8yv1id0dlmp0hz:4,his:4,hkig9w0baqefaaobjqawgykcgyea5c5tj1chtsoxa1q2q0fyiwmwyhptjpjcvtzm:4,hmac:[0,4,5],hold:0,home:[0,2,4],hook:1,host:[0,1,5],hostnam:1,hot:4,how:[0,1,4,5],howev:1,hpysvh:4,href:2,hrg6sai33usk8xpokjqa:3,htm:4,html:[0,2,4],http:[0,4,5],http_class:0,httpconnect:[0,5],httplib:[0,5],https_open:0,https_request:0,https_server:2,https_srv:4,httpsconnect:[0,5],httpserver:2,httpshandler:0,httpslib:[5,6],hu3qdmtcwjd:3,hvcnaqkemryefooerud8exiyxfqq8btfukwrsp3imfigcsqgsib3dqejdzffmemw:4,hyswpz1xvlprmv4:3,i2d_ssl_sess:1,ia5str:3,icon:4,ident:[1,2,4,5],identifi:[0,3,4,5],idx:1,ietf:4,ieucourgcxpyd1j65vt7ob3ziypu2f2nluicynqpg1sd:4,ignor:0,iihwd6gtv1uodf7urbxtl3hq9:4,imap:4,imc:4,img:2,immedi:1,implement:[0,4,5],imqqiiw:4,includ:[0,3],incorpor:[3,4],increas:0,indent:0,indetermin:1,index:[0,6],index_html:2,indic:[0,1,4],indirectli:0,info:[0,3,4],inform:[0,1,2,3,4,5],inherit:[0,1],init:0,initi:[0,1],initialis:[0,1],inkei:4,input:[0,1,5],insert:0,instal:4,instanc:[0,1,4,5],instanti:[0,4],instead:[2,4],instruct:2,integ:1,integr:4,intend:4,interact:0,interest:1,interfac:[0,1,4,5],intern:[0,1],internet:[1,3,4],interpret:[0,1,5],intuit:3,invalid:0,invok:[0,1,2,4],iobas:[],iobuff:[0,5],ioy0bdijcyn1jimohj:4,ipv4:1,ipv6:1,iqwxllnj:4,ir9fggophatzzq:4,ireactorssl:1,ireactortcp:1,isbn:5,isexpir:0,isgoodcooki:0,isgoodcookiestr:0,issu:[1,2,4],issuer:[0,3,4],itafbgkqhkig9w0bcqewennlbmrlckblegftcgxllmrvbyibadambgnvhrmebtad:4,item:0,iter:[0,1],its:[0,1,2,3,4],itself:[0,4],iwq3n6j1suzs3uw6abq8bivynoucmkjaqqjbanqxfalu4b:3,j6wo9dzltioz3znvr3ljsskib4tip4ugqnjaluw7m3ftz3magxn68hbbjs8tz8tl:4,j9ftv3di:3,jan:2,jbt3ltgf743utyaas7hnguouobhoyt:3,jcyhx9vw4xvja7:4,jddsk:4,john:5,join:4,ju4:3,jun:2,just:[1,5],jvy5cif:4,jy5rd:3,jyvbd7acn35p5yx7ktqvqerwdijxycanbcnvmrtmysanw9kv1ujtxc5vx7ylwipk:3,kdfqdmtfzqkymhp1laq1ihbq1rhwsbh5n3ekq:3,kdjqodst7ovu62motgf3arcduppwuztfxolyone5nioo1apvhbrinqwcplkpotqr:3,kebfzs8asq7uc9axw6ti0eapj8evhtwhsbgzqrwekfbxs6hbbhmidc4n0m7oq:4,keep:[1,3],kef21pgguqpf14gkgfwx3sv4bjc1vbrrwq6zlg3nmuyqr5mtjjy9eq:3,kei:[0,1,2,3,5],key_as_byt:0,keybio:0,keyfil:[0,1],keygen_callback:0,keyid:[3,4],keylen:0,keyout:3,keypair:0,kilroi:0,kind:1,kiy8jkpv8dr5po1ikaxjfudbygdenjwybsrspsk3p:3,kkst1mcj:3,know:4,known:5,kozihvcnaqebbqaegyblzlgupfphwhsgtiapvdexn61qisz3oem88xoxkuw0szor:4,kozihvcnaqebbqaegycbaxz:4,ktgtcixjl2nmw7j:3,kv95ymtgbisuwkj93grbvqoj:4,kwarg:0,kxtbbmqswcqydvqqg:4,l5trm4x6zjxwuxxmijcehmmd8tc8ybwwo4ao19b3ebffetvsugxsga:3,l6kn27mwzhe331vjttjsgl4:3,lamy57gkw4ondmrtqvq2ojqlvosbllpxzh:4,last:[0,1,3,4,5],later:[0,1],latter:1,lbow6ssdir6:4,lead:[0,1],leak:0,least:1,leav:[3,4],left:[3,4],legal:0,len:0,length:[0,1,2],less:0,let:[3,4,5],letter:[1,3,4],level:[1,2],lg4q5yezr1ejaw:4,librari:[1,4],licenc:0,licens:0,lifetim:1,like:[0,3,4],limit:0,line:[0,4,5],link:[2,5],linux:5,list:[0,1,2],listen:1,listenssl:1,listentcp:1,literatur:0,littl:[2,5],ljecgc3rqu1uwisbkmquis1s46ebbm5np75izpnujokj2hv:4,lkmac1dwb3dqgjt5xk4wjesinfdxecnegacyteagyztpiapu:3,lnzqowadmol:4,load:[0,1,2,4,5],load_cert:[0,1,4],load_cert_bio:0,load_cert_chain:1,load_cert_der_str:0,load_cert_str:0,load_certif:0,load_client_ca:1,load_crl:0,load_dynam:0,load_dynamic_engin:0,load_fil:[0,4],load_info:[0,4],load_kei:[0,4],load_key_bio:0,load_key_bio_pubkei:0,load_key_pubkei:0,load_key_str:0,load_key_string_pubkei:0,load_loc:0,load_openssl:0,load_param:0,load_params_bio:0,load_pkcs7:0,load_pkcs7_bio:0,load_pkcs7_bio_d:0,load_pkcs7_der:0,load_private_kei:0,load_pub_kei:0,load_pub_key_bio:0,load_public_kei:0,load_request:0,load_request_bio:0,load_request_der_str:0,load_request_str:0,load_sess:1,load_verify_info:1,load_verify_loc:[1,5],loc:0,local:[2,3,4],localhost:[2,3,4],localitynam:0,localtimezon:0,locat:[1,2],lock:4,logger:2,logic:1,longer:0,look:[3,4],loseconnect:1,lower:0,lowercas:0,ltd:[3,4],lwpbxzf2k3fuudnkrlfbakeampxoybuifr2s5bma:3,ly4tpl5:3,m1awhen3vir2zlaw:3,m1je:3,m2_asn1_integer_fre:0,m2_asn1_object_fre:0,m2_asn1_string_fre:0,m2_asn1_time_fre:0,m2_bio_fre:[0,1],m2_bio_noclos:1,m2_bio_pop:0,m2_cipher_ctx_fre:0,m2_dh_free:0,m2_dsa_fre:0,m2_ec_key_fre:0,m2_engine_fre:0,m2_hmac_ctx_fre:0,m2_md_ctx_free:0,m2_pkcs7_free:0,m2_pkey_fre:0,m2_rsa_fre:0,m2_sk_x509_extension_fre:0,m2_sk_x509_free:0,m2_ssl_ctx_free:1,m2_ssl_free:1,m2_ssl_session_fre:1,m2_x509_crl_free:0,m2_x509_extension_fre:0,m2_x509_free:0,m2_x509_name_entry_fre:0,m2_x509_name_fre:0,m2_x509_req_fre:0,m2_x509_store_ctx_fre:0,m2_x509_store_fre:0,m2crypto:[1,3],m2crypto_xmlrpc:0,m2cryptoerror:0,m2urllib2:6,m2urllib:[2,6],m2xmlrpclib:[2,6],ma0gcsqgsib3dqebbauaa4gbaho3drchr86fstvavfixdsswwqktcehuhrdc:4,mac:0,made:[1,5],mai:[0,1,2,3,4,5],mail:4,maintain:1,make:[0,1,3,4,5],makebuf:4,makecooki:0,makefil:[0,1],malfunct:1,man:[0,1],manag:2,mani:[0,2,4],manipul:[0,1],manpag:[0,1],manual:[0,5],map:[1,4],mar:[3,4],march:4,mark:[0,4],master:3,match:[0,3,4],matej:0,materi:[2,5],matt:5,max_byt:0,maximum:1,mbstring_asc:0,mbstring_utf8:0,md5:0,md5withrsaencrypt:[3,4],mean:0,meant:3,measur:0,medusa:2,memori:[0,4],memorybuff:[0,4],memoryview:1,messag:[0,1,5],message_bodi:0,messagedigest:0,messier:5,method:[0,1],mg611eovkleoostv:3,mh2pz4lverxa:4,mhf6rqar:4,micalg:4,microsec:1,might:1,miibntccaqycaqawxtelmakga1uebhmcu0cxetapbgnvbaotce0yq3j5chrvmriw:3,miibvwyjkozihvcnaqcdoiibsdccauqcaqaxggeamih9ageamgywytelmakga1u:4,miicxgibaakbgqcvwdhjvcuwxwu4h8wqujguvm:3,miie8ayjkozihvcnaqccoiie4tccbn0caqexczajbgurdgmcgguamcigcsqgsib3:4,miiiwwyjkozihvcnaqcdoiiitdccclacaqaxggeamih9ageamgywytelmakga1u:4,mime:[3,5,6],mimetool:0,mind:1,minu:0,miss:1,mix:0,mkwcbi1nfvohcv3xdq2ela:4,mode:[0,1,2,4],model:[3,4],modifi:[0,2,4],modul:[4,5,6],modulu:[0,3,4],more:[0,1,3,5],most:[0,1,4,5],mous:0,movement:0,mozilla:[2,4],mpi:0,mpint:0,mrywfaydvqqdew1tl01jtuugu2vuzgvymsewhwyjkozihvcnaqkbfhjzzw5kzxja:4,msb:0,msg:4,msg_bio:4,mua:4,much:0,multilin:0,multipart:4,multipl:1,multipurpos:4,multivalu:0,must:[0,1,5],mutheybpq5th7ydrtnizkkxobnqe2kyux9x22a1kh49sojjfg6kpb9mugizbimlv:3,mutt:4,mysteri:0,naccept:2,name:[0,1,3,4,5],navig:4,nbbba2yl0n5gs1tyiy9z:3,nbsp:2,nbyte:1,nconnect:2,necessari:0,necessarili:0,need:[0,1,3,4,5],neg:0,negoti:1,neither:1,nerx9zjgvrwuscqqcu:3,net:3,netmemet:5,netscap:3,network:[4,5],new_extens:0,new_pub_kei:0,new_stack_from_d:0,newca:3,newcert:3,newer:0,newkei:[3,4],newkey2:3,newli:0,newreq:3,next:[0,3,4],ngp:[2,3,4,5],nhost:2,nid:0,nihuwgujn:3,niqfytycdl9i5sk:4,nkasxekr8auhjsbvumrqrl6r0nnsfpzdr1w7pv:4,no_passphrase_callback:0,nocertif:1,node:4,non:[0,1,4],noncrit:0,none:[0,1,4],nonzero:0,noout:[3,4],nor:[1,4],normal:[1,5],note:[0,1,4,5],noth:0,notifi:1,notwithstand:4,now:[3,4],nqaodq3aobzpafp9l:3,nqxlmgj3jwq7x9:4,nss:[4,5],ntransfercmd:0,nueymfjdm0uvntg0icxgnufsfnjkntthpagykgetric3kgjz:3,num:0,number:[0,1,3,4],numer:2,numericipmatch:1,nuser:2,nyndufwi0qm92qlk0ui:3,obio:0,object:[0,1,4,5],obtain:[0,4],occur:[0,1],octet:[0,1],octx_to_num:0,od2m3lp7jbwjqbrtndhimqul2s4yu:4,odd:0,off:0,offset:0,oiqto:4,old:[3,5],onc:[0,1],one:[1,2,3],ones:5,onli:[0,1,3],onto:0,open:[0,1,2,4,5],open_http:0,openerdirector:0,openfil:0,openpgp:4,openssl:[0,1,2,4,5,6],oper:[0,1,2,4],option:[0,1,3],optnam:1,org:[2,3,4,5],organ:[3,4],organiz:[3,4],organizationnam:[0,3],organizationunitnam:0,origin:0,osafound:5,other:[0,1,3,5],otherwis:0,our:4,out:[0,1,2,3,4],out_bio:0,outform:4,output:[0,4],over:[0,1,5],overlap:4,overload:1,overrid:1,overridden:1,overwrit:2,own:[0,1,2,4,6],p12:4,p7_bio:[0,4],p7file:0,p7m:4,p7s:4,pack:1,packag:6,pad:0,page:[0,1,2,6],pair:[0,1,2,3,4],param:[0,1],paramet:[0,1,2,4,5],part:4,partial:1,pass:[0,1,3],passphras:[0,1,3,4],passphrase_callback:[0,1],password:[0,3,4],patch:[2,3],path:0,pathnam:2,pattern:0,pbkdf2:0,pcgiserv:2,pdlrrliknknfmhkiacktlrcu59sca6adeiwuzqmuzp5cs6jrsro3nkfg1bd09d1k:3,peek_error_cod:0,peer:1,peercertdigest:1,peercerthash:1,pem:[0,1,2,3,4,5],pemfil:1,pend:1,pep484:1,per:[0,1,2],perform:[0,5],period:3,perl:3,permit:5,pfi:3,pfl1k5dyxrgtzlb36uljd:4,pgpmime:4,pheng:[0,1,2,3,4,5],phrase:3,pick:4,pin:0,pk7_smime:4,pkc:4,pkcs12:4,pkcs5_pad:0,pkcs7:[0,4],pkcs7_detach:4,pkcs7_error:0,pkcs7_pad:0,pkcs7_text:4,pkcs7_verifi:4,pkei:0,pkg:[3,4],plain:4,pleas:[1,3],plen:0,pltnni25spyrcwfl6erd25u:4,plu:1,point:0,pointer:0,polici:[1,3,4],pool:0,pop:[0,4],popular:4,port:[0,1,2],portal0:2,portal:2,portion:[0,5],posit:0,possibl:[0,1],post1:[2,3,4],post:0,post_connection_check:1,postconnectioncheck:1,power:2,practic:[0,4,5],pravir:5,predetermin:0,predict:0,prefix:0,premis:4,present:[1,2],press:0,pretend:4,pretti:5,previou:0,previous:1,primari:5,prime:0,princip:0,print:[0,1,2,3,4],print_param:0,printabl:3,privaci:4,privat:[0,1,3,4],private_decrypt:0,private_encrypt:0,privkei:4,prng:[0,2,4],probabl:[1,4,5],problem:0,proc:3,proce:1,process:[1,3,4],produc:0,product:4,prog:4,program:[3,6],programm:[4,5],project:[4,5],prompt1:0,prompt2:0,prompt:4,propag:0,proper:1,properli:4,propertymap:2,prot_c:0,prot_p:0,protect:[0,1,4],protocol:[0,1,2,4,5],protocolwrapp:1,provid:[0,1,2,4,5],provinc:[3,4],proxi:0,proxyhttpsconnect:0,pseudo:[0,4],pss:0,pty:[3,4],pub:0,pub_kei:0,pub_key_from_d:0,pub_key_from_param:0,pubkei:0,public_decrypt:0,public_encrypt:0,purpos:[0,4],push:[0,4],puthead:0,putrequest:0,pyfil:0,pystack:0,python3:1,python:[0,1,3,6],q1z7g:3,q7s4tn1z:4,qbcrdaoxdj0ulwytauev:4,qin7ujpkou61cn7h8dvhr8yw9:4,qjpbezwdp7gjfzfatqitesymwo3i:4,qlen:1,qppdzt3ykfmg2lzytaam1czvb6rbnrjjp2zrpbwn:3,qtm0ddmm:3,quarante:5,queri:1,quiet_genparam_callback:0,quit:[2,3,4],quvxinaxygqco9lzdw6hudk8:4,qya6adywgbghr9jkhwn5gsdu7bwx:4,rais:[0,1,4,5],rand:[2,4,6],rand_add:0,rand_byt:0,rand_file_nam:0,rand_pseudo_byt:0,rand_rang:0,rand_se:0,rand_statu:0,randfil:0,randfnam:0,random:[0,4],randpool:[2,4],rang:0,rather:1,rc4:6,rc4_free:0,rdn:0,reactor:1,read:[0,1,2,3,4,5],read_al:0,readabl:0,readbio:1,readi:[1,3,4],readlin:0,real:0,realiz:1,reason:[0,1],recal:4,receipt:1,receiv:[1,4],recent:4,recipi:4,recipient_kei:4,recommend:[0,1,5],record:5,recreat:4,recv:1,recv_into:1,refcount:[0,1],refer:[0,1,2],regex:0,regular:0,reject:1,relativedistinguishednam:0,releas:0,reli:[0,1],remot:1,remov:1,remove_sess:1,renam:[3,4],render:4,renegoti:1,repli:2,repres:[0,1],represent:0,repudi:4,req:[0,3,4],request:[0,1,3,4],request_bodi:0,requesthandlerclass:1,requir:[0,1,5],rescorla:5,reserv:[0,1],reset:0,reset_context:0,resid:1,resolv:2,respect:[0,1],respons:0,rest:0,result:[0,1,4],ret:[1,3],retriev:[0,4],reus:1,revoc:0,rfc:[0,4],rgwnkxpj:4,right:[0,1,4],ripemd160:0,rm2htgotm2lmore4geotypi5f1fbi:3,rn9vpy0suy8:3,rnd:0,root:5,routin:[1,4],rsa:[1,2,3,4,5,6],rsa_error:0,rsa_pub:0,rsaencrypt:[3,4],rsaerror:0,rsassa:0,rudimentari:5,run:[0,2,4],rwb:0,rwniyh0aw4xyyhhit:4,s0ovoc041cerazqfm2tl:4,safe:0,sai:4,said:[0,4],salt:0,salt_len:0,salt_length:0,same:[0,1,5],sat:[2,3],save:[0,4],save_fil:[0,4],save_kei:0,save_key_bio:0,save_key_d:0,save_key_der_bio:0,save_param:0,save_params_bio:0,save_pem:0,save_pub_kei:0,save_pub_key_bio:0,saver:4,sc3lsmhugu9xc26ogstjmkquiah:3,sc51hkebgckl1:4,scope:4,scopeid:1,screen:[2,4],script:5,search:6,sec:1,second:[0,1,5],secret:3,section:[0,3,4],secur:[0,1,3,4],see:[0,1,2,5],seed:[0,2,4],seek:0,seldom:0,select:[1,2,4],self:[0,1,3,4],send:[0,1,2,5],sendal:1,sender:4,sendmail:4,sendsmim:4,sens:1,sent:[0,1,3,4],sequenc:0,seri:4,serial:[0,3,4],serialnumb:0,serv:2,server:[0,1,2,3,4,5],server_address:[1,5],serverpostconnectioncheck:1,servic:[1,4],session:[0,6],session_data_manag:2,set1_host:1,set:[0,1,3,4,5],set_accept_st:1,set_allow_unknown_ca:1,set_bio:1,set_ciph:[0,4],set_cipher_list:1,set_client_ca_list_from_context:1,set_client_ca_list_from_fil:1,set_connect_st:1,set_crit:0,set_data:0,set_datetim:0,set_default:0,set_default_verify_path:1,set_flag:0,set_info_callback:1,set_issu:0,set_issuer_nam:0,set_kei:0,set_mod:1,set_not_aft:0,set_not_befor:0,set_object:0,set_opt:1,set_pad:0,set_param:0,set_post_connection_check_callback:1,set_pubkei:0,set_serial_numb:0,set_sess:[0,1],set_session_cache_mod:1,set_session_id_ctx:1,set_session_timeout:1,set_shutdown:1,set_socket_read_timeout:1,set_socket_write_timeout:1,set_ssl:0,set_ssl_close_flag:1,set_str:0,set_subject:0,set_subject_nam:0,set_tim:[0,1],set_timeout:1,set_tlsext_host_nam:1,set_tmp_dh:1,set_tmp_dh_callback:1,set_tmp_rsa:1,set_tmp_rsa_callback:1,set_verifi:[1,5],set_verify_cb:0,set_vers:0,set_x509_stack:[0,4],set_x509_stor:[0,4],setblock:1,setsockopt:1,settimeout:1,setup_addr:1,setup_ssl:1,sever:[0,1,3],sfl_home:4,sfqo6lc9mtsj7fjydq:4,sha1:[0,1,4],sha224:0,sha256:0,sha:0,shall:[2,4],share:0,should:[0,1,3],should_read:0,should_retri:0,should_writ:0,show:0,shown:[2,5],shut:1,shutdown:1,sid_ctx:1,side:[0,1,5],sign:[0,3],sign_asn1:0,sign_dsa:0,sign_dsa_asn1:0,sign_fin:0,sign_init:0,sign_rsassa_pss:0,sign_upd:0,signal:0,signatur:[0,3,4],signer:4,signer_kei:4,signific:[0,1],similar:[1,2,3,4],simpl:[0,1,5],simpli:0,sinc:[0,3,5],singl:0,siong:[0,1,2,3,4,5],sipba4ik5xcrlt9e0s2qjgrvo9gyfaqz:4,site:3,situat:3,size:[0,1],sizehint:0,sjai4kpfvt00xfnvgluywyeks9sygto7hihnqkcf44f5lyv6ntfwmfqb11daty9v:4,skip:4,skip_accept_encod:0,skip_host:0,skunk:2,smartcard:0,smime:6,smime_error:[0,4],smime_load_pkcs7:[0,4],smime_load_pkcs7_bio:[0,4],smtpd:4,smtplib:4,sni:1,sntelhcawulwtifz:4,so_:1,sock:1,socket:[0,1,5],socketserv:1,softwar:4,sol_socket:1,sol_tcp:1,some:[1,3,4],sopath:0,sophist:5,sourc:[0,1,4,5],space:0,specif:[1,3,5],specifi:[0,1],spoofer:4,sport:5,src:2,ssl:[0,2,3,4,6],ssl_:1,ssl_cert_dir:1,ssl_cert_fil:1,ssl_connect:1,ssl_context:[0,1],ssl_ctx:0,ssl_ctx_flush_sess:1,ssl_ctx_ptr:1,ssl_ctx_set_opt:1,ssl_ctx_set_session_cache_mod:1,ssl_ctx_set_timeout:1,ssl_dispatch:[0,6],ssl_get_default_timeout:1,ssl_get_error:1,ssl_info_callback:1,ssl_ptr:1,ssl_received_shutdown:1,ssl_sent_shutdown:1,ssl_sess_cache_:1,ssl_transport:[0,2],ssl_verify_callback:1,ssl_verify_callback_allow_unknown_ca:1,ssl_verify_callback_stub:1,sslbio:0,sslerror:[0,1],sslserver:[0,6],ssltimeouterror:1,sslv3:[1,5],sslverificationerror:1,stack:[0,1],stack_of:1,stamp:4,standard:[0,4],standard_error_messag:2,standard_html_foot:2,standard_html_head:2,standard_templ:2,start:[0,1,2,3,4],startpassthrough:1,starttl:1,state:[0,1,3,4],stateorprovincenam:0,statu:[0,1],stderr:1,stdout:[0,5],step:[3,4,5],steve:3,still:1,stop:[1,2],store:[0,1],str:[0,1],stream:0,strict:0,string:[0,1,2,4],stringio:[4,5],strong:0,struct:1,struct_siz:1,struct_to_timeout:1,structur:[0,1],style:1,subclass:0,subject:[0,3,4],subjectaltnam:[0,5],subjectnam:0,subpackag:6,subsequ:5,substitut:4,succeed:[0,1,2],success:[0,1],successfulli:1,suffici:0,suggest:0,suit:1,suitabl:[0,5],sun:2,suppli:[0,1],support:[0,1,5],suppos:4,sure:0,surnam:0,symbol:1,symmetr:[0,4,5],sync:0,sys:4,system:[1,2,3,4],sztm5jrp2zw:4,t6lqehb32wfyxqbkfxfjsxzsxox3r:4,take:[0,1],target:[0,2,4],tb7k3chfgw5wagwnll8lb:3,tcp:[1,5],tcpserver:1,tell:[0,5],temp_fold:2,temporari:[1,4],termin:1,test:[0,1,4,5],test_ssl:5,text:[0,2,3,4],text_crlf:0,text_crlf_bio:0,text_nam:0,textio:0,textiowrapp:0,textual:5,than:[0,1,5],thei:[0,1,4,5],them:[0,4,5],therefor:1,thi:[0,1,2,3,4,5],third:5,those:5,thread:6,threadingmixin:1,threadingsslserv:1,threat:[3,4],through:[0,1,3,4],thu:[0,4],thusli:[2,4],time:[0,1,2,4,5],timedelta:0,timeo:1,timeout:[0,6],titl:2,tlfgl4hdk2gyzxafuqzwiurz:4,tls:1,tlsprotocolwrapp:1,tmp:4,tmp_bio:4,to_addr:4,to_cert:4,tob:4,togeth:1,toivonen:[1,5],too:5,tool:3,top:[0,2,4],topic:3,trace:0,traceback:[1,4],traffic:5,transfer:[0,4],transform:[0,4],translat:1,transport:0,treat:1,tri:[1,5],tripl:4,trust:4,tue:2,tunnel:0,tupl:[0,1],tvtk:4,twice:1,twist:[1,5],twistedprotocolwrapp:[0,6],two:[0,1,5],tws5k:3,txt:5,type:[0,1,2,3,4],type_r:0,typic:[1,4,5],tzinfo:0,tzname:0,tzsznk2qwgvsspos9mhuaepbnjmnbffbrulhrutsglm:4,u4dmyq9uxs421en3v2hkvhvdy8ut2ot29:4,u4j2f34u0xktwcp:4,u7rqbwpc9hr34saprs3ubbculet748kecbx247imbtidctzxcc1o86:4,ubowzitegtyli52:4,uifxaf6s4n2uihvp6tqxthejtpzoc7pc:4,ukidkhst60v2q9kegpzgfpoztskm:4,ull4d2cldx9ovynykwdezb5dyv0r:4,unattend:3,uncertainti:0,under:4,under_bio:0,underli:[0,1,5],understand:4,unencrypt:[3,4],union:[0,1],uniqu:0,unit:[1,3,4],unix:1,unknow:0,unknown:[0,1],unless:0,unlock:0,unmix3:0,unmix:0,unpack:2,unpredict:0,unsaf:0,unset_ciph:0,unset_kei:0,unset_x509_stack:0,unset_x509_stor:0,until:[1,3],untouch:1,untrust:2,updat:[0,3],upon:1,upper:0,urandom:2,urbfke2mocdxvdzxbmd:4,url:[0,2],urllib:[0,2],urlopen:0,uryvak7vfoldaz6z3nosoi6nonnehpr:4,usag:4,use:[0,1,2,3,4,5],used:[0,1,3,4],useful:1,useless:5,user:[0,4],user_ag:0,usernam:0,uses:[0,4,5],using:[0,1,3,4],usr:[3,4],usual:[0,1,5],utc:0,utcoffset:0,utf:0,utifsh4jkkm:4,util:[5,6],utilerror:0,uweuasngtkpjv2jyumd3hwqox2q3cd4zgqvjj6gf3exa5126ckf:3,uwrgu5shra8oncm0cdxej0kpf3cfnjhffb8hwmzi4uegnmfxqnsxogz:4,v_asn1_ia5str:0,valid:[0,1,3,4,5],valu:[0,1,3,4],valueerror:0,variabl:[0,1],variou:[1,5],verbos:0,veri:[0,1],verif:[0,1,4],verifi:[0,1,2,3],verify_asn1:0,verify_dsa:0,verify_dsa_asn1:0,verify_fail_if_no_peer_cert:[1,5],verify_fin:0,verify_init:0,verify_ok:1,verify_p:[1,5],verify_rsassa_pss:0,verify_upd:0,verify_xyz:0,verisign:4,version:[0,1,3,4,5],vhgdittnelgthbaezu5rhdswgdelvbp:4,vi4roin:3,via:[0,1],viega:5,vihhfc1zzp:3,visual:0,vkwwecqqdkeu:3,vsgprqx2:4,vsxc7xx7xo:4,vtajp:3,vuzalydffdfutiqqzys4z:4,w4d1nnwu8agcpyshsexhc:3,w81xodtq2ecjxc8fn2wpa9y5vd1lt7ojksoul1:3,wai:[1,4],wait:1,walk:3,warn:[0,1,2],wbal2p:4,wdd1ar2k4k3gai7kkgobwt0:4,wdigqewjl:3,weak:5,weak_crypto:1,web:[2,4],well:[0,1,2,4],were:[0,1],west:0,what:[0,3,4],when:[0,1,3,4,5],whenev:1,where:[0,1,3],wherea:[0,5],whether:[0,4],which:[0,1,3,4,5],who:4,whose:0,why:4,widgit:[3,4],width:2,window:[2,4],wish:[2,3,4],within:[1,3,5],without:0,wjtpvp0yobmju4vmkezi405r7o8oewi:3,wkat:4,wmbgsclvwsfzcccjhavw9nhfmucnrdwxaymvetnuon:4,won:1,word:4,work:[0,1,2,3,4,5],world:1,would:[0,1,4],wrap:4,wrappedprotocol:1,wrapper:[0,1,5],wrappingfactori:1,write:[0,1,3,4],write_bio:1,write_clos:0,write_d:0,writeabl:0,writebio:1,writesequ:1,written:[0,3,5],wrongcertif:1,wronghost:1,wrylp3:4,wsluvo:3,www:[0,2,4],wyhfg8g3biehurpj2v:4,x509:[1,3,4,5,6],x509_ext:0,x509_ext_ptr:0,x509_extens:0,x509_extension_stack:0,x509_name:[0,1],x509_name_entri:0,x509_ptr:1,x509_purpose_:0,x509_stack:[0,1,4],x509_store:[0,4],x509_store_context:0,x509_store_ctx:0,x509_store_default_cb:0,x509_store_set_flag:0,x509_store_set_verify_cb:0,x509_v_flag_xyz:0,x509_verify_param_set_flag:0,x509error:0,x509store:0,x509v3:[3,4],xc9dtimuutxtxlgytb0ujkbnsoaenolm:4,xekaxcmzegp0b6camwfmuqrbvgxbbncqkc:4,xgffb0okilylmwv2bf6:4,xisnot:4,xlcqyvk1tzhd:4,xlyg6hhzzgbfyyngj2y7ymz1rl1m8snrnmkcyskgtrudenf6wt9:4,xmlrpc:0,xmtdg:4,y3klvhk09yl6d:4,y9mh7efw:4,year:[3,4],yet:1,yl9qevh1pp2zvswq12p7gjt3t:4,you:[0,1,2,3,4,5],your:[0,2,4,6],ypfxy:3,yqor8jggsuzroyjqhj:4,yrpzcwq3gxahuj:3,yubj33ylmpjgngijlnolfy0hnw7tmwqr:4,ywmxnjz8:4,z04ovaeue4x0swm17hlbm2kvt:3,z2s:2,z6ebh:3,z6uxrm:4,zbq:3,zbxscvldasmckg:3,zero:0,zhttp_handler:2,zhttp_server:2,zhttps_handler:2,zhttps_server:2,zip:2,zone:0,zope:[2,4],zopebutton:2,zovnycmv1cintpalaw4bwtxnhcdvthavdy34okhemzncg:3,zpecllwhxd4b1auaiaargkl935u:4,zpqqqzkq:3,zserver:2,zserverssl:6,zssl:2,zsyncer:2,ztf6mpxjsixi6l4zyxebs6yhf:4,zw50msqwigyjkozihvcnaqkbfhvyzwnpcgllbnrazxhhbxbszs5kb20caqawdqyj:4,zw5kzxixitafbgkqhkig9w0bcqewennlbmrlckblegftcgxllmrvbtcbnzanbgkq:4,zwxy:4,zxhhbxbszs5kb20whhcnmdewmzmxmte0mdmzwhcnmdiwmzmxmte0mdmzwjbbmqsw:4},titles:["M2Crypto Package","SSL Package","<span class=\"sectnum\">1.</span> ZServerSSL-HOWTO","HOWTO: Creating your own CA with OpenSSL","HOWTO: Programming S/MIME in Python with M2Crypto","HOWTO: Programming SSL in Python with M2Crypto","Welcome to M2Crypto\u2019s documentation!"],titleterms:{The:3,asn1:0,authcooki:0,bio:0,bit:5,callback:0,certif:4,checker:1,cipher:1,code:5,conclus:[2,3],connect:1,content:2,context:1,creat:3,decrypt:4,document:6,dsa:0,encrypt:4,engin:0,err:0,evp:0,ftpslib:0,histori:5,howto:[2,3,4,5,6],http:2,httpslib:0,indic:6,instal:2,interoper:4,introduct:[2,3,4,5],kei:4,m2crypto:[0,2,4,5,6],m2urllib2:0,m2urllib:0,m2xmlrpclib:0,messag:4,messeng:4,microsoft:4,mime:4,modul:[0,1],netscap:4,openssl:3,origin:4,outlook:4,over:2,own:3,packag:[0,1],prepar:2,procedur:3,program:[4,5],python:[2,4,5],rand:0,rc4:0,resourc:4,rsa:0,sampl:5,secur:5,send:4,session:1,sign:4,smime:[0,4],smtp:4,sourc:2,ssl:[1,5],ssl_dispatch:1,ssldump:5,sslserver:1,subpackag:0,tabl:6,test:2,thread:0,timeout:1,twistedprotocolwrapp:1,util:0,verifi:4,via:4,webdav:2,welcom:6,x509:0,xmlrpc:2,your:3,zserverssl:2,zsmime:4}}) \ No newline at end of file