diff options
Diffstat (limited to 'doc/html/_modules/M2Crypto/EC.html')
-rw-r--r-- | doc/html/_modules/M2Crypto/EC.html | 228 |
1 files changed, 109 insertions, 119 deletions
diff --git a/doc/html/_modules/M2Crypto/EC.html b/doc/html/_modules/M2Crypto/EC.html index 65e6690..c252714 100644 --- a/doc/html/_modules/M2Crypto/EC.html +++ b/doc/html/_modules/M2Crypto/EC.html @@ -1,55 +1,45 @@ - <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> - <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - - <title>M2Crypto.EC — M2Crypto documentation</title> - - <link rel="stylesheet" href="../../_static/default.css" type="text/css" /> + <title>M2Crypto.EC — M2Crypto documentation</title> + <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" /> <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../../', VERSION: '', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', - HAS_SOURCE: true + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' }; </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> - <link rel="top" title="M2Crypto documentation" href="../../index.html" /> - <link rel="up" title="Module code" href="../index.html" /> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + + <link rel="stylesheet" href="../../_static/custom.css" type="text/css" /> + + + <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> + </head> <body> - <div class="related"> - <h3>Navigation</h3> - <ul> - <li class="right" style="margin-right: 10px"> - <a href="../../genindex.html" title="General Index" - accesskey="I">index</a></li> - <li class="right" > - <a href="../../py-modindex.html" title="Python Module Index" - >modules</a> |</li> - <li><a href="../../index.html">M2Crypto documentation</a> »</li> - <li><a href="../index.html" accesskey="U">Module code</a> »</li> - </ul> - </div> + <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> - <div class="body"> + <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="kn">import</span> <span class="n">absolute_import</span> +<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="sd">"""</span> <span class="sd">M2Crypto wrapper for OpenSSL ECDH/ECDSA API.</span> @@ -61,16 +51,16 @@ <span class="sd">Portions copyright (c) 2005-2006 Vrije Universiteit Amsterdam.</span> <span class="sd">All rights reserved."""</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">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="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">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="n">EC_Key</span> <span class="o">=</span> <span class="nb">bytes</span> <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="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> @@ -214,13 +204,13 @@ <span class="sd"> to create an EC key pair.</span> <span class="sd"> """</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">"'ec' type error"</span> - <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_gen_key</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ec</span><span class="p">)</span> -</div> + <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_gen_key</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ec</span><span class="p">)</span></div> + <div class="viewcode-block" id="EC.pub"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.EC.pub">[docs]</a> <span class="k">def</span> <span class="nf">pub</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="c1"># type: () -> EC_pub</span> <span class="c1"># Don't let python free</span> - <span class="k">return</span> <span class="n">EC_pub</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="mi">0</span><span class="p">)</span> -</div> + <span class="k">return</span> <span class="n">EC_pub</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="mi">0</span><span class="p">)</span></div> + <div class="viewcode-block" id="EC.sign_dsa"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.EC.sign_dsa">[docs]</a> <span class="k">def</span> <span class="nf">sign_dsa</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">digest</span><span class="p">):</span> <span class="c1"># type: (bytes) -> Tuple[bytes, bytes]</span> <span class="sd">"""</span> @@ -228,8 +218,8 @@ <span class="sd"> ECDSA signature parameters.</span> <span class="sd"> """</span> <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">_check_key_type</span><span class="p">(),</span> <span class="s2">"'ec' type error"</span> - <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ecdsa_sign</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="n">digest</span><span class="p">)</span> -</div> + <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ecdsa_sign</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="n">digest</span><span class="p">)</span></div> + <div class="viewcode-block" id="EC.verify_dsa"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.EC.verify_dsa">[docs]</a> <span class="k">def</span> <span class="nf">verify_dsa</span><span class="p">(</span><span class="bp">self</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="c1"># type: (bytes, bytes, bytes) -> int</span> <span class="sd">"""</span> @@ -237,17 +227,17 @@ <span class="sd"> signature parameters.</span> <span class="sd"> """</span> <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">_check_key_type</span><span class="p">(),</span> <span class="s2">"'ec' type error"</span> - <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ecdsa_verify</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="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> -</div> + <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ecdsa_verify</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="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></div> + <div class="viewcode-block" id="EC.sign_dsa_asn1"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.EC.sign_dsa_asn1">[docs]</a> <span class="k">def</span> <span class="nf">sign_dsa_asn1</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">digest</span><span class="p">):</span> <span class="c1"># type: (bytes) -> bytes</span> <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">_check_key_type</span><span class="p">(),</span> <span class="s2">"'ec' type error"</span> - <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ecdsa_sign_asn1</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="n">digest</span><span class="p">)</span> -</div> + <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ecdsa_sign_asn1</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="n">digest</span><span class="p">)</span></div> + <div class="viewcode-block" id="EC.verify_dsa_asn1"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.EC.verify_dsa_asn1">[docs]</a> <span class="k">def</span> <span class="nf">verify_dsa_asn1</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">digest</span><span class="p">,</span> <span class="n">blob</span><span class="p">):</span> <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">_check_key_type</span><span class="p">(),</span> <span class="s2">"'ec' type error"</span> - <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ecdsa_verify_asn1</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="n">digest</span><span class="p">,</span> <span class="n">blob</span><span class="p">)</span> -</div> + <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ecdsa_verify_asn1</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="n">digest</span><span class="p">,</span> <span class="n">blob</span><span class="p">)</span></div> + <div class="viewcode-block" id="EC.compute_dh_key"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.EC.compute_dh_key">[docs]</a> <span class="k">def</span> <span class="nf">compute_dh_key</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pub_key</span><span class="p">):</span> <span class="c1"># type: (EC) -> Optional[bytes]</span> <span class="sd">"""</span> @@ -257,8 +247,8 @@ <span class="sd"> applied.</span> <span class="sd"> """</span> <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_key</span><span class="p">(),</span> <span class="s1">'key is not initialised'</span> - <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ecdh_compute_key</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="n">pub_key</span><span class="o">.</span><span class="n">ec</span><span class="p">)</span> -</div> + <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ecdh_compute_key</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="n">pub_key</span><span class="o">.</span><span class="n">ec</span><span class="p">)</span></div> + <div class="viewcode-block" id="EC.save_key_bio"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.EC.save_key_bio">[docs]</a> <span class="k">def</span> <span class="nf">save_key_bio</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="n">cipher</span><span class="o">=</span><span class="s1">'aes_128_cbc'</span><span class="p">,</span> <span class="n">callback</span><span class="o">=</span><span class="n">util</span><span class="o">.</span><span class="n">passphrase_callback</span><span class="p">):</span> <span class="c1"># type: (BIO.BIO, Optional[str], Callable) -> int</span> @@ -276,15 +266,15 @@ <span class="sd"> the key. The default is</span> <span class="sd"> util.passphrase_callback.</span> <span class="sd"> """</span> - <span class="k">if</span> <span class="n">cipher</span> <span class="ow">is</span> <span class="bp">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> <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_write_bio_no_cipher</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="n">bio</span><span class="o">.</span><span class="n">_ptr</span><span class="p">(),</span> <span class="n">callback</span><span class="p">)</span> <span class="k">else</span><span class="p">:</span> - <span class="n">ciph</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">cipher</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span> - <span class="k">if</span> <span class="n">ciph</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span> + <span class="n">ciph</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">cipher</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> + <span class="k">if</span> <span class="n">ciph</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">'not such cipher </span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="n">cipher</span><span class="p">)</span> - <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_write_bio</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="n">bio</span><span class="o">.</span><span class="n">_ptr</span><span class="p">(),</span> <span class="n">ciph</span><span class="p">(),</span> <span class="n">callback</span><span class="p">)</span> -</div> -<div class="viewcode-block" id="EC.save_key"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.EC.save_key">[docs]</a> <span class="k">def</span> <span class="nf">save_key</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">file</span><span class="p">,</span> <span class="n">cipher</span><span class="o">=</span><span class="s1">'aes_128_cbc'</span><span class="p">,</span> + <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_write_bio</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="n">bio</span><span class="o">.</span><span class="n">_ptr</span><span class="p">(),</span> <span class="n">ciph</span><span class="p">(),</span> <span class="n">callback</span><span class="p">)</span></div> + +<div class="viewcode-block" id="EC.save_key"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.EC.save_key">[docs]</a> <span class="k">def</span> <span class="nf">save_key</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file</span><span class="p">,</span> <span class="n">cipher</span><span class="o">=</span><span class="s1">'aes_128_cbc'</span><span class="p">,</span> <span class="n">callback</span><span class="o">=</span><span class="n">util</span><span class="o">.</span><span class="n">passphrase_callback</span><span class="p">):</span> <span class="c1"># type: (AnyStr, Optional[str], Callable) -> int</span> <span class="sd">"""</span> @@ -301,9 +291,9 @@ <span class="sd"> the key. The default is</span> <span class="sd"> util.passphrase_callback.</span> <span class="sd"> """</span> - <span class="k">with</span> <span class="n">BIO</span><span class="o">.</span><span class="n">openfile</span><span class="p">(</span><span class="nb">file</span><span class="p">,</span> <span class="s1">'wb'</span><span class="p">)</span> <span class="k">as</span> <span class="n">bio</span><span class="p">:</span> - <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">save_key_bio</span><span class="p">(</span><span class="n">bio</span><span class="p">,</span> <span class="n">cipher</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span> -</div> + <span class="k">with</span> <span class="n">BIO</span><span class="o">.</span><span class="n">openfile</span><span class="p">(</span><span class="n">file</span><span class="p">,</span> <span class="s1">'wb'</span><span class="p">)</span> <span class="k">as</span> <span class="n">bio</span><span class="p">:</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">save_key_bio</span><span class="p">(</span><span class="n">bio</span><span class="p">,</span> <span class="n">cipher</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span></div> + <div class="viewcode-block" id="EC.save_pub_key_bio"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.EC.save_pub_key_bio">[docs]</a> <span class="k">def</span> <span class="nf">save_pub_key_bio</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="c1"># type: (BIO.BIO) -> int</span> <span class="sd">"""</span> @@ -311,18 +301,18 @@ <span class="sd"> :param bio: M2Crypto.BIO.BIO object to save key to.</span> <span class="sd"> """</span> - <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_write_pubkey</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="n">bio</span><span class="o">.</span><span class="n">_ptr</span><span class="p">())</span> -</div> -<div class="viewcode-block" id="EC.save_pub_key"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.EC.save_pub_key">[docs]</a> <span class="k">def</span> <span class="nf">save_pub_key</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">file</span><span class="p">):</span> + <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_write_pubkey</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="n">bio</span><span class="o">.</span><span class="n">_ptr</span><span class="p">())</span></div> + +<div class="viewcode-block" id="EC.save_pub_key"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.EC.save_pub_key">[docs]</a> <span class="k">def</span> <span class="nf">save_pub_key</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file</span><span class="p">):</span> <span class="c1"># type: (AnyStr) -> int</span> <span class="sd">"""</span> <span class="sd"> Save the public key to a filename in PEM format.</span> <span class="sd"> :param file: Name of filename to save key to.</span> <span class="sd"> """</span> - <span class="k">with</span> <span class="n">BIO</span><span class="o">.</span><span class="n">openfile</span><span class="p">(</span><span class="nb">file</span><span class="p">,</span> <span class="s1">'wb'</span><span class="p">)</span> <span class="k">as</span> <span class="n">bio</span><span class="p">:</span> - <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_write_pubkey</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="n">bio</span><span class="o">.</span><span class="n">_ptr</span><span class="p">())</span> -</div> + <span class="k">with</span> <span class="n">BIO</span><span class="o">.</span><span class="n">openfile</span><span class="p">(</span><span class="n">file</span><span class="p">,</span> <span class="s1">'wb'</span><span class="p">)</span> <span class="k">as</span> <span class="n">bio</span><span class="p">:</span> + <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_write_pubkey</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="n">bio</span><span class="o">.</span><span class="n">_ptr</span><span class="p">())</span></div> + <div class="viewcode-block" id="EC.as_pem"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.EC.as_pem">[docs]</a> <span class="k">def</span> <span class="nf">as_pem</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cipher</span><span class="o">=</span><span class="s1">'aes_128_cbc'</span><span class="p">,</span> <span class="n">callback</span><span class="o">=</span><span class="n">util</span><span class="o">.</span><span class="n">passphrase_callback</span><span class="p">):</span> <span class="sd">"""</span> <span class="sd"> Returns the key(pair) as a string in PEM format.</span> @@ -331,8 +321,8 @@ <span class="sd"> """</span> <span class="k">with</span> <span class="n">BIO</span><span class="o">.</span><span class="n">MemoryBuffer</span><span class="p">()</span> <span class="k">as</span> <span class="n">bio</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">save_key_bio</span><span class="p">(</span><span class="n">bio</span><span class="p">,</span> <span class="n">cipher</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span> - <span class="k">return</span> <span class="n">bio</span><span class="o">.</span><span class="n">read</span><span class="p">()</span> -</div> + <span class="k">return</span> <span class="n">bio</span><span class="o">.</span><span class="n">read</span><span class="p">()</span></div> + <span class="k">def</span> <span class="nf">_check_key_type</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="c1"># type: () -> int</span> <span class="k">return</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> @@ -340,9 +330,9 @@ <div class="viewcode-block" id="EC.check_key"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.EC.check_key">[docs]</a> <span class="k">def</span> <span class="nf">check_key</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="c1"># type: () -> 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">"'ec' type error"</span> - <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_check_key</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">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_check_key</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ec</span><span class="p">)</span></div></div> + -</div></div> <div class="viewcode-block" id="EC_pub"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.EC_pub">[docs]</a><span class="k">class</span> <span class="nc">EC_pub</span><span class="p">(</span><span class="n">EC</span><span class="p">):</span> <span class="c1"># noqa</span> <span class="sd">"""</span> @@ -351,8 +341,8 @@ <span class="sd"> """</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="c1"># type: (EC, int) -> None</span> - <span class="n">EC</span><span class="o">.</span><span class="n">__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="bp">None</span> <span class="c1"># type: Optional[bytes]</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> <div class="viewcode-block" id="EC_pub.get_der"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.EC_pub.get_der">[docs]</a> <span class="k">def</span> <span class="nf">get_der</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="c1"># type: () -> bytes</span> @@ -360,23 +350,23 @@ <span class="sd"> Returns the public key in DER format as a buffer object.</span> <span class="sd"> """</span> <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_key</span><span class="p">(),</span> <span class="s1">'key is not initialised'</span> - <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">der</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">der</span> <span class="ow">is</span> <span class="kc">None</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="n">m2</span><span class="o">.</span><span class="n">ec_key_get_public_der</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">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">der</span> -</div> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">der</span></div> + <div class="viewcode-block" id="EC_pub.get_key"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.EC_pub.get_key">[docs]</a> <span class="k">def</span> <span class="nf">get_key</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="c1"># type: () -> bytes</span> <span class="sd">"""</span> <span class="sd"> Returns the public key as a byte string.</span> <span class="sd"> """</span> <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_key</span><span class="p">(),</span> <span class="s1">'key is not initialised'</span> - <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_get_public_key</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ec</span><span class="p">)</span> -</div> + <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_get_public_key</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ec</span><span class="p">)</span></div> + <span class="n">save_key</span> <span class="o">=</span> <span class="n">EC</span><span class="o">.</span><span class="n">save_pub_key</span> - <span class="n">save_key_bio</span> <span class="o">=</span> <span class="n">EC</span><span class="o">.</span><span class="n">save_pub_key_bio</span> + <span class="n">save_key_bio</span> <span class="o">=</span> <span class="n">EC</span><span class="o">.</span><span class="n">save_pub_key_bio</span></div> + -</div> <div class="viewcode-block" id="gen_params"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.gen_params">[docs]</a><span class="k">def</span> <span class="nf">gen_params</span><span class="p">(</span><span class="n">curve</span><span class="p">):</span> <span class="c1"># type: (int) -> EC</span> <span class="sd">"""</span> @@ -388,10 +378,10 @@ <span class="k">assert</span> <span class="n">curve</span> <span class="ow">in</span> <span class="p">[</span><span class="n">x</span><span class="p">[</span><span class="s1">'NID'</span><span class="p">]</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_get_builtin_curves</span><span class="p">()],</span> \ <span class="s1">'Elliptic curve </span><span class="si">%s</span><span class="s1"> is not available on this system.'</span> <span class="o">%</span> \ <span class="n">m2</span><span class="o">.</span><span class="n">obj_nid2sn</span><span class="p">(</span><span class="n">curve</span><span class="p">)</span> - <span class="k">return</span> <span class="n">EC</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">ec_key_new_by_curve_name</span><span class="p">(</span><span class="n">curve</span><span class="p">),</span> <span class="mi">1</span><span class="p">)</span> + <span class="k">return</span> <span class="n">EC</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">ec_key_new_by_curve_name</span><span class="p">(</span><span class="n">curve</span><span class="p">),</span> <span class="mi">1</span><span class="p">)</span></div> -</div> -<div class="viewcode-block" id="load_key"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.load_key">[docs]</a><span class="k">def</span> <span class="nf">load_key</span><span class="p">(</span><span class="nb">file</span><span class="p">,</span> <span class="n">callback</span><span class="o">=</span><span class="n">util</span><span class="o">.</span><span class="n">passphrase_callback</span><span class="p">):</span> + +<div class="viewcode-block" id="load_key"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.load_key">[docs]</a><span class="k">def</span> <span class="nf">load_key</span><span class="p">(</span><span class="n">file</span><span class="p">,</span> <span class="n">callback</span><span class="o">=</span><span class="n">util</span><span class="o">.</span><span class="n">passphrase_callback</span><span class="p">):</span> <span class="c1"># type: (AnyStr, Callable) -> EC</span> <span class="sd">"""</span> <span class="sd"> Factory function that instantiates a EC object.</span> @@ -402,10 +392,10 @@ <span class="sd"> :param callback: Python callback object that will be invoked</span> <span class="sd"> if the EC key pair is passphrase-protected.</span> <span class="sd"> """</span> - <span class="k">with</span> <span class="n">BIO</span><span class="o">.</span><span class="n">openfile</span><span class="p">(</span><span class="nb">file</span><span class="p">)</span> <span class="k">as</span> <span class="n">bio</span><span class="p">:</span> - <span class="k">return</span> <span class="n">load_key_bio</span><span class="p">(</span><span class="n">bio</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span> + <span class="k">with</span> <span class="n">BIO</span><span class="o">.</span><span class="n">openfile</span><span class="p">(</span><span class="n">file</span><span class="p">)</span> <span class="k">as</span> <span class="n">bio</span><span class="p">:</span> + <span class="k">return</span> <span class="n">load_key_bio</span><span class="p">(</span><span class="n">bio</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span></div> + -</div> <div class="viewcode-block" id="load_key_string"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.load_key_string">[docs]</a><span class="k">def</span> <span class="nf">load_key_string</span><span class="p">(</span><span class="n">string</span><span class="p">,</span> <span class="n">callback</span><span class="o">=</span><span class="n">util</span><span class="o">.</span><span class="n">passphrase_callback</span><span class="p">):</span> <span class="c1"># type: (str, Callable) -> EC</span> <span class="sd">"""</span> @@ -420,9 +410,9 @@ <span class="sd"> :return: M2Crypto.EC.EC object.</span> <span class="sd"> """</span> <span class="k">with</span> <span class="n">BIO</span><span class="o">.</span><span class="n">MemoryBuffer</span><span class="p">(</span><span class="n">string</span><span class="p">)</span> <span class="k">as</span> <span class="n">bio</span><span class="p">:</span> - <span class="k">return</span> <span class="n">load_key_bio</span><span class="p">(</span><span class="n">bio</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span> + <span class="k">return</span> <span class="n">load_key_bio</span><span class="p">(</span><span class="n">bio</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span></div> + -</div> <div class="viewcode-block" id="load_key_bio"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.load_key_bio">[docs]</a><span class="k">def</span> <span class="nf">load_key_bio</span><span class="p">(</span><span class="n">bio</span><span class="p">,</span> <span class="n">callback</span><span class="o">=</span><span class="n">util</span><span class="o">.</span><span class="n">passphrase_callback</span><span class="p">):</span> <span class="c1"># type: (BIO.BIO, Callable) -> EC</span> <span class="sd">"""</span> @@ -434,10 +424,10 @@ <span class="sd"> :param callback: Python callback object that will be invoked</span> <span class="sd"> if the EC key pair is passphrase-protected.</span> <span class="sd"> """</span> - <span class="k">return</span> <span class="n">EC</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">ec_key_read_bio</span><span class="p">(</span><span class="n">bio</span><span class="o">.</span><span class="n">_ptr</span><span class="p">(),</span> <span class="n">callback</span><span class="p">),</span> <span class="mi">1</span><span class="p">)</span> + <span class="k">return</span> <span class="n">EC</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">ec_key_read_bio</span><span class="p">(</span><span class="n">bio</span><span class="o">.</span><span class="n">_ptr</span><span class="p">(),</span> <span class="n">callback</span><span class="p">),</span> <span class="mi">1</span><span class="p">)</span></div> -</div> -<div class="viewcode-block" id="load_pub_key"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.load_pub_key">[docs]</a><span class="k">def</span> <span class="nf">load_pub_key</span><span class="p">(</span><span class="nb">file</span><span class="p">):</span> + +<div class="viewcode-block" id="load_pub_key"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.load_pub_key">[docs]</a><span class="k">def</span> <span class="nf">load_pub_key</span><span class="p">(</span><span class="n">file</span><span class="p">):</span> <span class="c1"># type: (AnyStr) -> EC_pub</span> <span class="sd">"""</span> <span class="sd"> Load an EC public key from filename.</span> @@ -447,10 +437,10 @@ <span class="sd"> :return: M2Crypto.EC.EC_pub object.</span> <span class="sd"> """</span> - <span class="k">with</span> <span class="n">BIO</span><span class="o">.</span><span class="n">openfile</span><span class="p">(</span><span class="nb">file</span><span class="p">)</span> <span class="k">as</span> <span class="n">bio</span><span class="p">:</span> - <span class="k">return</span> <span class="n">load_pub_key_bio</span><span class="p">(</span><span class="n">bio</span><span class="p">)</span> + <span class="k">with</span> <span class="n">BIO</span><span class="o">.</span><span class="n">openfile</span><span class="p">(</span><span class="n">file</span><span class="p">)</span> <span class="k">as</span> <span class="n">bio</span><span class="p">:</span> + <span class="k">return</span> <span class="n">load_pub_key_bio</span><span class="p">(</span><span class="n">bio</span><span class="p">)</span></div> + -</div> <div class="viewcode-block" id="load_key_string_pubkey"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.load_key_string_pubkey">[docs]</a><span class="k">def</span> <span class="nf">load_key_string_pubkey</span><span class="p">(</span><span class="n">string</span><span class="p">,</span> <span class="n">callback</span><span class="o">=</span><span class="n">util</span><span class="o">.</span><span class="n">passphrase_callback</span><span class="p">):</span> <span class="c1"># type: (str, Callable) -> PKey</span> <span class="sd">"""</span> @@ -465,9 +455,9 @@ <span class="sd"> :return: M2Crypto.EC.PKey object.</span> <span class="sd"> """</span> <span class="k">with</span> <span class="n">BIO</span><span class="o">.</span><span class="n">MemoryBuffer</span><span class="p">(</span><span class="n">string</span><span class="p">)</span> <span class="k">as</span> <span class="n">bio</span><span class="p">:</span> - <span class="k">return</span> <span class="n">load_key_bio_pubkey</span><span class="p">(</span><span class="n">bio</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span> + <span class="k">return</span> <span class="n">EVP</span><span class="o">.</span><span class="n">load_key_bio_pubkey</span><span class="p">(</span><span class="n">bio</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span></div> + -</div> <div class="viewcode-block" id="load_pub_key_bio"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.load_pub_key_bio">[docs]</a><span class="k">def</span> <span class="nf">load_pub_key_bio</span><span class="p">(</span><span class="n">bio</span><span class="p">):</span> <span class="c1"># type: (BIO.BIO) -> EC_pub</span> <span class="sd">"""</span> @@ -479,32 +469,32 @@ <span class="sd"> :return: M2Crypto.EC.EC_pub object.</span> <span class="sd"> """</span> <span class="n">ec</span> <span class="o">=</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_key_read_pubkey</span><span class="p">(</span><span class="n">bio</span><span class="o">.</span><span class="n">_ptr</span><span class="p">())</span> - <span class="k">if</span> <span class="n">ec</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span> + <span class="k">if</span> <span class="n">ec</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">ec_error</span><span class="p">()</span> - <span class="k">return</span> <span class="n">EC_pub</span><span class="p">(</span><span class="n">ec</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> + <span class="k">return</span> <span class="n">EC_pub</span><span class="p">(</span><span class="n">ec</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span></div> + -</div> <div class="viewcode-block" id="ec_error"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.ec_error">[docs]</a><span class="k">def</span> <span class="nf">ec_error</span><span class="p">():</span> <span class="c1"># type: () -> ECError</span> - <span class="k">raise</span> <span class="n">ECError</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">err_reason_error_string</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">err_get_error</span><span class="p">()))</span> + <span class="k">raise</span> <span class="n">ECError</span><span class="p">(</span><span class="n">Err</span><span class="o">.</span><span class="n">get_error_message</span><span class="p">())</span></div> + -</div> <div class="viewcode-block" id="pub_key_from_der"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.pub_key_from_der">[docs]</a><span class="k">def</span> <span class="nf">pub_key_from_der</span><span class="p">(</span><span class="n">der</span><span class="p">):</span> <span class="c1"># type: (bytes) -> EC_pub</span> <span class="sd">"""</span> <span class="sd"> Create EC_pub from DER.</span> <span class="sd"> """</span> - <span class="k">return</span> <span class="n">EC_pub</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">ec_key_from_pubkey_der</span><span class="p">(</span><span class="n">der</span><span class="p">),</span> <span class="mi">1</span><span class="p">)</span> + <span class="k">return</span> <span class="n">EC_pub</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">ec_key_from_pubkey_der</span><span class="p">(</span><span class="n">der</span><span class="p">),</span> <span class="mi">1</span><span class="p">)</span></div> + -</div> <div class="viewcode-block" id="pub_key_from_params"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.pub_key_from_params">[docs]</a><span class="k">def</span> <span class="nf">pub_key_from_params</span><span class="p">(</span><span class="n">curve</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">):</span> <span class="c1"># type: (bytes, bytes) -> EC_pub</span> <span class="sd">"""</span> <span class="sd"> Create EC_pub from curve name and octet string.</span> <span class="sd"> """</span> - <span class="k">return</span> <span class="n">EC_pub</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">ec_key_from_pubkey_params</span><span class="p">(</span><span class="n">curve</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">),</span> <span class="mi">1</span><span class="p">)</span> + <span class="k">return</span> <span class="n">EC_pub</span><span class="p">(</span><span class="n">m2</span><span class="o">.</span><span class="n">ec_key_from_pubkey_params</span><span class="p">(</span><span class="n">curve</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">),</span> <span class="mi">1</span><span class="p">)</span></div> + -</div> <div class="viewcode-block" id="get_builtin_curves"><a class="viewcode-back" href="../../M2Crypto.html#M2Crypto.EC.get_builtin_curves">[docs]</a><span class="k">def</span> <span class="nf">get_builtin_curves</span><span class="p">():</span> <span class="c1"># type: () -> Tuple[Dict[str, Union[int, str]]]</span> <span class="k">return</span> <span class="n">m2</span><span class="o">.</span><span class="n">ec_get_builtin_curves</span><span class="p">()</span></div> @@ -513,41 +503,41 @@ </div> </div> </div> - <div class="sphinxsidebar"> - <div class="sphinxsidebarwrapper"> -<div id="searchbox" style="display: none"> + <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> + <div class="sphinxsidebarwrapper"><div class="relations"> +<h3>Related Topics</h3> +<ul> + <li><a href="../../index.html">Documentation overview</a><ul> + <li><a href="../index.html">Module code</a><ul> + </ul></li> + </ul></li> +</ul> +</div> +<div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> <form class="search" action="../../search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> - <p class="searchtip" style="font-size: 90%"> - Enter search terms or a module, class or function name. - </p> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> - <div class="related"> - <h3>Navigation</h3> - <ul> - <li class="right" style="margin-right: 10px"> - <a href="../../genindex.html" title="General Index" - >index</a></li> - <li class="right" > - <a href="../../py-modindex.html" title="Python Module Index" - >modules</a> |</li> - <li><a href="../../index.html">M2Crypto documentation</a> »</li> - <li><a href="../index.html" >Module code</a> »</li> - </ul> - </div> <div class="footer"> - © Copyright 2017, Matej Cepl <mcepl@cepl.eu>. - Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3. + ©2017, Matej Cepl <mcepl@cepl.eu>. + + | + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.6.4</a> + & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.9</a> + </div> + + + + </body> </html>
\ No newline at end of file |