<div dir="ltr"><div dir="ltr">PyCA cryptography 2.5 has been released to PyPI. cryptography includes both high level recipes and low level interfaces to common cryptographic algorithms such as symmetric ciphers, asymmetric algorithms, message digests, X509, key derivation functions, and much more. We support Python 2.7, Python 3.4+, and PyPy.<br><div style="margin:0px"><br></div><div style="margin:0px">Changelog (<a href="https://cryptography.io/en/latest/changelog/#v2-6">https://cryptography.io/en/latest/changelog/#v2-6</a>):</div><div style="margin:0px"><br></div><div style="margin:0px"><div class="gmail-section" id="gmail-v2-6" style="box-sizing:border-box"><ul class="gmail-simple" style="box-sizing:border-box;margin:0px 0px 24px;padding:0px;list-style-position:initial;line-height:24px"><li style="box-sizing:border-box;list-style:disc;margin-left:24px"><strong style="box-sizing:border-box">BACKWARDS INCOMPATIBLE:</strong> Removed<code class="gmail-docutils gmail-literal gmail-notranslate" style="box-sizing:border-box;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:12px;white-space:nowrap;max-width:100%;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;border:1px solid rgb(225,228,229);padding:2px 5px;color:rgb(231,76,60);overflow-x:auto"><span class="gmail-pre" style="box-sizing:border-box">cryptography.hazmat.primitives.asymmetric.utils.encode_rfc6979_signature</span></code> and<code class="gmail-docutils gmail-literal gmail-notranslate" style="box-sizing:border-box;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:12px;white-space:nowrap;max-width:100%;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;border:1px solid rgb(225,228,229);padding:2px 5px;color:rgb(231,76,60);overflow-x:auto"><span class="gmail-pre" style="box-sizing:border-box">cryptography.hazmat.primitives.asymmetric.utils.decode_rfc6979_signature</span></code>, which had been deprecated for nearly 4 years. Use <a class="gmail-reference gmail-internal" href="https://cryptography.io/en/latest/hazmat/primitives/asymmetric/utils/#cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature" title="cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature" style="box-sizing:border-box;color:rgb(155,89,182);text-decoration-line:none"><code class="gmail-xref gmail-py gmail-py-func gmail-docutils gmail-literal gmail-notranslate" style="box-sizing:border-box;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:12px;white-space:nowrap;max-width:100%;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;border:1px solid rgb(225,228,229);padding:2px 5px;color:rgb(64,64,64);overflow-x:auto;font-weight:bold"><span class="gmail-pre" style="box-sizing:border-box">encode_dss_signature()</span></code></a> and <a class="gmail-reference gmail-internal" href="https://cryptography.io/en/latest/hazmat/primitives/asymmetric/utils/#cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature" title="cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature" style="box-sizing:border-box;color:rgb(155,89,182);text-decoration-line:none"><code class="gmail-xref gmail-py gmail-py-func gmail-docutils gmail-literal gmail-notranslate" style="box-sizing:border-box;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:12px;white-space:nowrap;max-width:100%;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;border:1px solid rgb(225,228,229);padding:2px 5px;color:rgb(64,64,64);overflow-x:auto;font-weight:bold"><span class="gmail-pre" style="box-sizing:border-box">decode_dss_signature()</span></code></a>instead.</li><li style="box-sizing:border-box;list-style:disc;margin-left:24px"><strong style="box-sizing:border-box">BACKWARDS INCOMPATIBLE</strong>: Removed <code class="gmail-docutils gmail-literal gmail-notranslate" style="box-sizing:border-box;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:12px;white-space:nowrap;max-width:100%;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;border:1px solid rgb(225,228,229);padding:2px 5px;color:rgb(231,76,60);overflow-x:auto"><span class="gmail-pre" style="box-sizing:border-box">cryptography.x509.Certificate.serial</span></code>, which had been deprecated for nearly 3 years. Use <a class="gmail-reference gmail-internal" href="https://cryptography.io/en/latest/x509/reference/#cryptography.x509.Certificate.serial_number" title="cryptography.x509.Certificate.serial_number" style="box-sizing:border-box;color:rgb(155,89,182);text-decoration-line:none"><code class="gmail-xref gmail-py gmail-py-attr gmail-docutils gmail-literal gmail-notranslate" style="box-sizing:border-box;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:12px;white-space:nowrap;max-width:100%;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;border:1px solid rgb(225,228,229);padding:2px 5px;color:rgb(64,64,64);overflow-x:auto;font-weight:bold"><span class="gmail-pre" style="box-sizing:border-box">serial_number</span></code></a> instead.</li><li style="box-sizing:border-box;list-style:disc;margin-left:24px">Updated Windows, macOS, and <code class="gmail-docutils gmail-literal gmail-notranslate" style="box-sizing:border-box;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:12px;white-space:nowrap;max-width:100%;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;border:1px solid rgb(225,228,229);padding:2px 5px;color:rgb(231,76,60);overflow-x:auto"><span class="gmail-pre" style="box-sizing:border-box">manylinux1</span></code> wheels to be compiled with OpenSSL 1.1.1b.</li><li style="box-sizing:border-box;list-style:disc;margin-left:24px">Added support for <a class="gmail-reference gmail-internal" href="https://cryptography.io/en/latest/hazmat/primitives/asymmetric/ed448/" style="box-sizing:border-box;color:rgb(155,89,182);text-decoration-line:none"><span class="gmail-doc" style="box-sizing:border-box">Ed448 signing</span></a> when using OpenSSL 1.1.1b or newer.</li><li style="box-sizing:border-box;list-style:disc;margin-left:24px">Added support for <a class="gmail-reference gmail-internal" href="https://cryptography.io/en/latest/hazmat/primitives/asymmetric/ed25519/" style="box-sizing:border-box;color:rgb(155,89,182);text-decoration-line:none"><span class="gmail-doc" style="box-sizing:border-box">Ed25519 signing</span></a> when using OpenSSL 1.1.1b or newer.</li><li style="box-sizing:border-box;list-style:disc;margin-left:24px"><a class="gmail-reference gmail-internal" href="https://cryptography.io/en/latest/hazmat/primitives/asymmetric/serialization/#cryptography.hazmat.primitives.serialization.load_ssh_public_key" title="cryptography.hazmat.primitives.serialization.load_ssh_public_key" style="box-sizing:border-box;color:rgb(155,89,182);text-decoration-line:none"><code class="gmail-xref gmail-py gmail-py-func gmail-docutils gmail-literal gmail-notranslate" style="box-sizing:border-box;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:12px;white-space:nowrap;max-width:100%;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;border:1px solid rgb(225,228,229);padding:2px 5px;color:rgb(64,64,64);overflow-x:auto;font-weight:bold"><span class="gmail-pre" style="box-sizing:border-box">load_ssh_public_key()</span></code></a> can now load <code class="gmail-docutils gmail-literal gmail-notranslate" style="box-sizing:border-box;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:12px;white-space:nowrap;max-width:100%;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;border:1px solid rgb(225,228,229);padding:2px 5px;color:rgb(231,76,60);overflow-x:auto"><span class="gmail-pre" style="box-sizing:border-box">ed25519</span></code> public keys.</li><li style="box-sizing:border-box;list-style:disc;margin-left:24px">Add support for easily mapping an object identifier to its elliptic curve class via<a class="gmail-reference gmail-internal" href="https://cryptography.io/en/latest/hazmat/primitives/asymmetric/ec/#cryptography.hazmat.primitives.asymmetric.ec.get_curve_for_oid" title="cryptography.hazmat.primitives.asymmetric.ec.get_curve_for_oid" style="box-sizing:border-box;color:rgb(155,89,182);text-decoration-line:none"><code class="gmail-xref gmail-py gmail-py-func gmail-docutils gmail-literal gmail-notranslate" style="box-sizing:border-box;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:12px;white-space:nowrap;max-width:100%;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;border:1px solid rgb(225,228,229);padding:2px 5px;color:rgb(64,64,64);overflow-x:auto;font-weight:bold"><span class="gmail-pre" style="box-sizing:border-box">get_curve_for_oid()</span></code></a>.</li><li style="box-sizing:border-box;list-style:disc;margin-left:24px">Add support for OpenSSL when compiled with the <code class="gmail-docutils gmail-literal gmail-notranslate" style="box-sizing:border-box;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:12px;white-space:nowrap;max-width:100%;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;border:1px solid rgb(225,228,229);padding:2px 5px;color:rgb(231,76,60);overflow-x:auto"><span class="gmail-pre" style="box-sizing:border-box">no-engine</span></code> (<code class="gmail-docutils gmail-literal gmail-notranslate" style="box-sizing:border-box;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:12px;white-space:nowrap;max-width:100%;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;border:1px solid rgb(225,228,229);padding:2px 5px;color:rgb(231,76,60);overflow-x:auto"><span class="gmail-pre" style="box-sizing:border-box">OPENSSL_NO_ENGINE</span></code>) flag.</li></ul></div><div class="gmail-section" id="gmail-v2-5" style="box-sizing:border-box"><span id="gmail-id2" style="box-sizing:border-box;color:rgb(64,64,64);font-family:Lato,proxima-nova,"Helvetica Neue",Arial,sans-serif;font-size:16px;background-color:rgb(252,252,252)"></span>Alex</div></div><br class="gmail-Apple-interchange-newline"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr">All that is necessary for evil to succeed is for good people to do nothing.<br></div></div></div></div></div></div>