<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style></head><body style="word-wrap:break-word;line-break:after-white-space"><div id="bloop_customfont" style="margin:0px"><div id="bloop_customfont" style="margin:0px">PyCA cryptography 2.2.2 has been released to PyPI. cryptography includes both high level recipes and low level interfaces to common cryptographic algorithms such as symmetric ciphers, message digests, and key derivation functions. We support Python 2.7, Python 3.4+, and PyPy.</div><div style="color:rgb(0,0,0);font-family:Helvetica,Arial;font-size:13px"><br></div><div style="color:rgb(0,0,0);font-family:Helvetica,Arial;font-size:13px">Changelog (<a href="https://cryptography.io/en/latest/changelog/#v2-3">https://cryptography.io/en/latest/changelog/#v2-3</a>):</div></div><br><div id="bloop_sign_1531916269759031040" class="bloop_sign">* SECURITY ISSUE: finalize_with_tag() allowed tag truncation by default which can allow tag forgery in some cases. The method now enforces the min_tag_length provided to the GCM constructor.</div><div id="bloop_sign_1531916269759031040" class="bloop_sign"><div id="bloop_sign_1531916269759031040" class="bloop_sign">* Added support for Python 3.7.</div><div id="bloop_sign_1531916269759031040" class="bloop_sign">* Added extract_timestamp() to get the authenticated timestamp of a Fernet token.</div><div id="bloop_sign_1531916269759031040" class="bloop_sign">* Support for Python 2.7.x without hmac.compare_digest has been deprecated. We will require Python 2.7.7 or higher (or 2.7.6 on Ubuntu) in the next cryptography release.</div><div id="bloop_sign_1531916269759031040" class="bloop_sign">* Fixed multiple issues preventing cryptography from compiling against LibreSSL 2.7.x.</div><div id="bloop_sign_1531916269759031040" class="bloop_sign">* Added get_revoked_certificate_by_serial_number for quick serial number searches in CRLs.</div><div id="bloop_sign_1531916269759031040" class="bloop_sign">* The RelativeDistinguishedName class now preserves the order of attributes. Duplicate attributes now raise an error instead of silently discarding duplicates.</div><div id="bloop_sign_1531916269759031040" class="bloop_sign">* aes_key_unwrap() and aes_key_unwrap_with_padding() now raise InvalidUnwrap if the wrapped key is an invalid length, instead of ValueError.</div><div id="bloop_sign_1531916269759031040" class="bloop_sign"><br></div><div id="bloop_sign_1531916269759031040" class="bloop_sign">-Paul Kehrer (reaperhulk)</div></div></body></html>