blob: cd74ff86c3a721d8504bfe63f2e9129322135e43 [file] [log] [blame]
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001Changelog
2=========
3
Paul Kehrerfad63fe2016-12-12 16:41:26 -060041.8 - `master`_
5~~~~~~~~~~~~~~~
6
7.. note:: This version is not yet released and is under active development.
8
Alex Gaynor31b5d782016-12-23 12:20:36 -05009* Added support for Python 3.6.
Alex Gaynor5a059022017-02-11 10:05:34 -050010* Windows and macOS wheels now link against OpenSSL 1.1.0.
Ofek Lev0e6a1292017-02-08 00:09:41 -050011* Changed ASN.1 dependency from ``pyasn1`` to ``asn1crypto`` resulting in a
12 general performance increase when encoding/decoding ASN.1 structures. Also,
13 the ``pyasn1_modules`` test dependency is no longer required.
Paul Kehrer9b34ca92017-02-16 22:20:38 -060014* Added support for
15 :meth:`~cryptography.hazmat.primitives.ciphers.CipherContext.update_into` on
16 :class:`~cryptography.hazmat.primitives.ciphers.CipherContext`.
Aviv Palivoda1c7bd662017-02-08 06:38:42 +020017* Added
18 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKeyWithSerialization.private_bytes`
19 to
20 :class:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKeyWithSerialization`.
Aviv Palivoda1c7bd662017-02-08 06:38:42 +020021* Added
22 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPublicKeyWithSerialization.public_bytes`
23 to
24 :class:`~cryptography.hazmat.primitives.asymmetric.dh.DHPublicKeyWithSerialization`.
Paul Kehrer7a130852017-02-09 05:55:34 +080025* :func:`~cryptography.hazmat.primitives.serialization.load_pem_private_key`
26 and
27 :func:`~cryptography.hazmat.primitives.serialization.load_der_private_key`
28 now require that ``password`` must be bytes if provided. Previously this
29 was documented but not enforced.
Aviv Palivoda1c7bd662017-02-08 06:38:42 +020030
Paul Kehrerc7a2e722017-01-28 17:45:57 +0900311.7.2 - 2017-01-27
32~~~~~~~~~~~~~~~~~~
33
34* Updated Windows and macOS wheels to be compiled against OpenSSL 1.0.2k.
35
Paul Kehrerc8f47ad2016-12-14 19:26:06 -0600361.7.1 - 2016-12-13
37~~~~~~~~~~~~~~~~~~
38
39* Fixed a regression in ``int_from_bytes`` where it failed to accept
40 ``bytearray``.
Paul Kehrerfad63fe2016-12-12 16:41:26 -060041
Paul Kehrer5df72e82016-12-12 12:06:09 -0600421.7 - 2016-12-12
43~~~~~~~~~~~~~~~~
Paul Kehrer08585912016-11-22 20:04:40 +080044
Alex Gaynor29b2ebc2016-11-22 09:25:17 -050045* Support for OpenSSL 1.0.0 has been removed. Users on older version of OpenSSL
46 will need to upgrade.
Aviv Palivoda495f21a2016-11-25 18:51:28 +020047* Added support for Diffie-Hellman key exchange using
48 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKeyWithSerialization.exchange`
Paul Kehrera22964a2016-12-10 09:15:41 -060049* The OS random engine for OpenSSL has been rewritten to improve compatibility
50 with embedded Python and other edge cases. More information about this change
51 can be found in the
52 `pull request <https://github.com/pyca/cryptography/pull/3229>`_.
Paul Kehrer08585912016-11-22 20:04:40 +080053
Paul Kehrer4a2f36b2016-11-22 10:50:28 +0800541.6 - 2016-11-22
55~~~~~~~~~~~~~~~~
Alex Gaynorf25e63d2016-08-26 20:55:44 -040056
Alex Gaynor2e8725d2016-08-29 21:40:19 -040057* Deprecated support for OpenSSL 1.0.0. Support will be removed in
58 ``cryptography`` 1.7.
Paul Kehrer500850b2016-11-20 00:40:16 +080059* Replaced the Python-based OpenSSL locking callbacks with a C version to fix
60 a potential deadlock that could occur if a garbage collection cycle occurred
61 while inside the lock.
Paul Kehrer306ce512016-08-29 09:36:09 +080062* Added support for :class:`~cryptography.hazmat.primitives.hashes.BLAKE2b` and
63 :class:`~cryptography.hazmat.primitives.hashes.BLAKE2s` when using OpenSSL
64 1.1.0.
Paul Kehrerc7b29b82016-09-01 09:17:21 +080065* Added
66 :attr:`~cryptography.x509.Certificate.signature_algorithm_oid` support to
67 :class:`~cryptography.x509.Certificate`.
68* Added
69 :attr:`~cryptography.x509.CertificateSigningRequest.signature_algorithm_oid`
70 support to :class:`~cryptography.x509.CertificateSigningRequest`.
71* Added
72 :attr:`~cryptography.x509.CertificateRevocationList.signature_algorithm_oid`
73 support to :class:`~cryptography.x509.CertificateRevocationList`.
Terry Chiad8a27df2016-09-01 23:39:57 +080074* Added support for :class:`~cryptography.hazmat.primitives.kdf.scrypt.Scrypt`
75 when using OpenSSL 1.1.0.
Paul Kehrer99777862016-11-15 07:34:55 +080076* Added a workaround to improve compatibility with Python application bundling
77 tools like ``PyInstaller`` and ``cx_freeze``.
Paul Kehrer8b89bcc2016-09-03 11:31:43 -050078* Added support for generating a
79 :meth:`~cryptography.x509.random_serial_number`.
Paul Kehrer3feeec82016-10-01 07:12:27 -050080* Added support for encoding ``IPv4Network`` and ``IPv6Network`` in X.509
81 certificates for use with :class:`~cryptography.x509.NameConstraints`.
Paul Kehrer500850b2016-11-20 00:40:16 +080082* Added :meth:`~cryptography.x509.Name.public_bytes` to
83 :class:`~cryptography.x509.Name`.
Fraser Tweedale02467dd2016-11-07 15:54:04 +100084* Added :class:`~cryptography.x509.RelativeDistinguishedName`
85* :class:`~cryptography.x509.DistributionPoint` now accepts
86 :class:`~cryptography.x509.RelativeDistinguishedName` for
87 :attr:`~cryptography.x509.DistributionPoint.relative_name`.
88 Deprecated use of :class:`~cryptography.x509.Name` as
89 :attr:`~cryptography.x509.DistributionPoint.relative_name`.
Fraser Tweedale01ee6f52016-11-12 01:28:56 +100090* :class:`~cryptography.x509.Name` now accepts an iterable of
91 :class:`~cryptography.x509.RelativeDistinguishedName`. RDNs can
92 be accessed via the :attr:`~cryptography.x509.Name.rdns`
93 attribute. When constructed with an iterable of
94 :class:`~cryptography.x509.NameAttribute`, each attribute becomes
95 a single-valued RDN.
Ofek Levc41b9d42016-11-11 20:07:11 -050096* Added
97 :func:`~cryptography.hazmat.primitives.asymmetric.ec.derive_private_key`.
Paul Kehrerec7fc462016-11-21 07:55:18 +080098* Added support for signing and verifying RSA, DSA, and ECDSA signatures with
Paul Kehrerf555c742016-11-20 22:48:10 +080099 :class:`~cryptography.hazmat.primitives.asymmetric.utils.Prehashed`
100 digests.
Terry Chiad8a27df2016-09-01 23:39:57 +0800101
Alex Gaynorb94cacf2016-11-06 01:27:20 -04001021.5.3 - 2016-11-05
103~~~~~~~~~~~~~~~~~~
104
105* **SECURITY ISSUE**: Fixed a bug where ``HKDF`` would return an empty
106 byte-string if used with a ``length`` less than ``algorithm.digest_size``.
Alex Gaynorfb0e7192016-11-09 19:51:09 -0500107 Credit to **Markus Döring** for reporting the issue. *CVE-2016-9243*
Alex Gaynorb94cacf2016-11-06 01:27:20 -0400108
Alex Gaynorb4c087a2016-09-26 18:11:59 -04001091.5.2 - 2016-09-26
110~~~~~~~~~~~~~~~~~~
111
112* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2j.
Paul Kehrer306ce512016-08-29 09:36:09 +0800113
Paul Kehrer08652e92016-09-22 22:47:50 -05001141.5.1 - 2016-09-22
115~~~~~~~~~~~~~~~~~~
116
117* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2i.
118* Resolved a ``UserWarning`` when used with cffi 1.8.3.
119* Fixed a memory leak in name creation with X.509.
120* Added a workaround for old versions of setuptools.
121* Fixed an issue preventing ``cryptography`` from compiling against
122 OpenSSL 1.0.2i.
123
124
Paul Kehrerc0ee7382016-08-26 22:59:49 +08001251.5 - 2016-08-26
126~~~~~~~~~~~~~~~~
Paul Kehrer67ea4442016-06-04 12:00:54 -0700127
Alex Gaynor17097bf2016-06-27 22:29:38 -0400128* Added
129 :func:`~cryptography.hazmat.primitives.asymmetric.padding.calculate_max_pss_salt_length`.
Aviv Palivodaf67429b2016-06-30 21:42:46 +0300130* Added "one shot"
131 :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey.sign`
132 and
133 :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey.verify`
134 methods to DSA keys.
Aviv Palivoda2120a8e2016-07-02 19:43:06 +0300135* Added "one shot"
136 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey.sign`
137 and
138 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.verify`
139 methods to ECDSA keys.
Maximilian Hils679a9142016-07-31 16:43:19 -0700140* Switched back to the older callback model on Python 3.5 in order to mitigate
141 the locking callback problem with OpenSSL <1.1.0.
InvalidInterrupt8e66ca62016-08-16 19:39:31 -0700142* :class:`~cryptography.x509.CertificateBuilder`,
143 :class:`~cryptography.x509.CertificateRevocationListBuilder`, and
144 :class:`~cryptography.x509.RevokedCertificateBuilder` now accept timezone
145 aware ``datetime`` objects as method arguments
Paul Kehrer07ea3cd2016-08-26 21:48:24 +0800146* ``cryptography`` now supports OpenSSL 1.1.0 as a compilation target.
Alex Gaynor17097bf2016-06-27 22:29:38 -0400147
Paul Kehrer67ea4442016-06-04 12:00:54 -0700148
Paul Kehrer69365ce2016-06-04 09:57:11 -07001491.4 - 2016-06-04
150~~~~~~~~~~~~~~~~
Alex Gaynorf8c75fc2016-03-18 19:54:45 -0400151
Paul Kehrer69365ce2016-06-04 09:57:11 -0700152* Support for OpenSSL 0.9.8 has been removed. Users on older versions of
153 OpenSSL will need to upgrade.
Paul Kehrercb0fa2e2016-05-29 22:37:33 -0500154* Added :class:`~cryptography.hazmat.primitives.kdf.kbkdf.KBKDFHMAC`.
Alex Gaynor94989292016-06-03 13:04:26 -0700155* Added support for ``OpenSSH`` public key serialization.
Paul Kehrer69365ce2016-06-04 09:57:11 -0700156* Added support for SHA-2 in RSA
157 :class:`~cryptography.hazmat.primitives.asymmetric.padding.OAEP` when using
158 OpenSSL 1.0.2 or greater.
159* Added "one shot"
160 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey.sign`
161 and
162 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey.verify`
163 methods to RSA keys.
Alex Gaynor401ac6f2017-02-17 08:23:22 -0500164* Deprecated the ``serial`` attribute on
165 :class:`~cryptography.x509.Certificate`, in favor of
166 :attr:`~cryptography.x509.Certificate.serial_number`.
Paul Kehrer69365ce2016-06-04 09:57:11 -0700167
Alex Gaynorf8c75fc2016-03-18 19:54:45 -0400168
Alex Gaynor57515152016-06-02 20:53:52 -07001691.3.4 - 2016-06-03
170~~~~~~~~~~~~~~~~~~
171
172* Added another OpenSSL function to the bindings to support an upcoming
173 ``pyOpenSSL`` release.
174
175
1761.3.3 - 2016-06-02
177~~~~~~~~~~~~~~~~~~
178
179* Added two new OpenSSL functions to the bindings to support an upcoming
180 ``pyOpenSSL`` release.
181
Paul Kehrerbb8d69a2016-05-04 13:33:20 -05001821.3.2 - 2016-05-04
183~~~~~~~~~~~~~~~~~~
184
185* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2h.
186* Fixed an issue preventing ``cryptography`` from compiling against
187 LibreSSL 2.3.x.
188
Paul Kehrer81f48962016-03-21 17:46:53 -04001891.3.1 - 2016-03-21
190~~~~~~~~~~~~~~~~~~
191
192* Fixed a bug that caused an ``AttributeError`` when using ``mock`` to patch
193 some ``cryptography`` modules.
194
Paul Kehrerc9694612016-03-17 20:31:44 -04001951.3 - 2016-03-18
196~~~~~~~~~~~~~~~~
Paul Kehrerac904e32016-01-08 07:53:25 -0800197
Cédric Krierbf0f4642016-02-26 18:40:20 +0100198* Added support for padding ANSI X.923 with
199 :class:`~cryptography.hazmat.primitives.padding.ANSIX923`.
Alex Gaynorbe6dd9b2016-01-22 17:12:14 -0500200* Deprecated support for OpenSSL 0.9.8. Support will be removed in
201 ``cryptography`` 1.4.
Paul Kehrerdba49b92016-03-13 20:15:53 -0400202* Added support for the :class:`~cryptography.x509.PolicyConstraints`
203 X.509 extension including both parsing and generation using
204 :class:`~cryptography.x509.CertificateBuilder` and
205 :class:`~cryptography.x509.CertificateSigningRequestBuilder`.
Paul Kehrer15732122016-03-06 20:58:26 -0430206* Added :attr:`~cryptography.x509.CertificateSigningRequest.is_signature_valid`
207 to :class:`~cryptography.x509.CertificateSigningRequest`.
Alex Gaynoraf503662016-03-05 10:40:50 -0500208* Fixed an intermittent ``AssertionError`` when performing an RSA decryption on
209 an invalid ciphertext, ``ValueError`` is now correctly raised in all cases.
Paul Kehrer61ff3562016-03-11 22:51:27 -0400210* Added
211 :meth:`~cryptography.x509.AuthorityKeyIdentifier.from_issuer_subject_key_identifier`.
Alex Gaynorbe6dd9b2016-01-22 17:12:14 -0500212
Alex Gaynor287ab1b2016-03-01 22:15:55 -05002131.2.3 - 2016-03-01
214~~~~~~~~~~~~~~~~~~
215
216* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2g.
217
Paul Kehrer2c6b8d02016-01-29 13:36:40 -06002181.2.2 - 2016-01-29
219~~~~~~~~~~~~~~~~~~
220
221* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2f.
222
Paul Kehrer56ea7b82016-01-08 11:53:20 -08002231.2.1 - 2016-01-08
224~~~~~~~~~~~~~~~~~~
225
226* Reverts a change to an OpenSSL ``EVP_PKEY`` object that caused errors with
227 ``pyOpenSSL``.
228
Paul Kehrer577f95e2016-01-07 21:56:53 -08002291.2 - 2016-01-08
230~~~~~~~~~~~~~~~~
Paul Kehrerc5b430f2015-10-29 07:52:35 +0900231
Paul Kehrer49bb7562015-12-25 16:17:40 -0600232* **BACKWARDS INCOMPATIBLE:**
233 :class:`~cryptography.x509.RevokedCertificate`
234 :attr:`~cryptography.x509.RevokedCertificate.extensions` now uses extension
235 classes rather than returning raw values inside the
236 :class:`~cryptography.x509.Extension`
237 :attr:`~cryptography.x509.Extension.value`. The new classes
238 are:
239
240 * :class:`~cryptography.x509.CertificateIssuer`
Paul Kehrer7058ece2015-12-25 22:28:29 -0600241 * :class:`~cryptography.x509.CRLReason`
Paul Kehrer23c0bbc2015-12-25 22:35:19 -0600242 * :class:`~cryptography.x509.InvalidityDate`
Paul Kehrerf23722a2015-12-31 15:56:56 -0600243* Deprecated support for OpenSSL 0.9.8 and 1.0.0. At this time there is no time
244 table for actually dropping support, however we strongly encourage all users
Paul Kehrer0509ec22016-01-08 07:56:17 -0800245 to upgrade, as those versions no longer receive support from the OpenSSL
Paul Kehrerf23722a2015-12-31 15:56:56 -0600246 project.
Paul Kehrerd91e7c12015-10-01 16:50:42 -0500247* The :class:`~cryptography.x509.Certificate` class now has
248 :attr:`~cryptography.x509.Certificate.signature` and
Paul Kehrerd2898052015-11-03 22:00:41 +0900249 :attr:`~cryptography.x509.Certificate.tbs_certificate_bytes` attributes.
Paul Kehrer80dc7522015-12-03 22:19:30 -0600250* The :class:`~cryptography.x509.CertificateSigningRequest` class now has
251 :attr:`~cryptography.x509.CertificateSigningRequest.signature` and
252 :attr:`~cryptography.x509.CertificateSigningRequest.tbs_certrequest_bytes`
253 attributes.
Paul Kehrer18a96122015-12-21 11:14:34 -0600254* The :class:`~cryptography.x509.CertificateRevocationList` class now has
255 :attr:`~cryptography.x509.CertificateRevocationList.signature` and
256 :attr:`~cryptography.x509.CertificateRevocationList.tbs_certlist_bytes`
257 attributes.
Paul Kehrer8b399b72015-12-02 22:53:40 -0600258* :class:`~cryptography.x509.NameConstraints` are now supported in the
Paul Kehrer756d7d22015-12-02 23:45:42 -0600259 :class:`~cryptography.x509.CertificateBuilder` and
260 :class:`~cryptography.x509.CertificateSigningRequestBuilder`.
Paul Kehrer54a837d2015-12-20 23:42:32 -0600261* Support serialization of certificate revocation lists using the
Paul Kehrer2d1d24d2015-12-21 09:23:52 -0600262 :meth:`~cryptography.x509.CertificateRevocationList.public_bytes` method of
Paul Kehrer54a837d2015-12-20 23:42:32 -0600263 :class:`~cryptography.x509.CertificateRevocationList`.
Paul Kehrer51f39cb2015-12-21 21:17:39 -0600264* Add support for parsing :class:`~cryptography.x509.CertificateRevocationList`
265 :meth:`~cryptography.x509.CertificateRevocationList.extensions` in the
Paul Kehrer2587d302015-12-22 17:20:42 -0600266 OpenSSL backend. The following extensions are currently supported:
267
268 * :class:`~cryptography.x509.AuthorityInformationAccess`
269 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
Paul Kehrer3b95cd72015-12-22 21:40:20 -0600270 * :class:`~cryptography.x509.CRLNumber`
Paul Kehrer2587d302015-12-22 17:20:42 -0600271 * :class:`~cryptography.x509.IssuerAlternativeName`
Paul Kehrer09ad50c2015-12-26 13:59:27 -0600272* Added :class:`~cryptography.x509.CertificateRevocationListBuilder` and
273 :class:`~cryptography.x509.RevokedCertificateBuilder` to allow creation of
274 CRLs.
Paul Kehrer58ddc112015-12-30 20:19:00 -0600275* Unrecognized non-critical X.509 extensions are now parsed into an
276 :class:`~cryptography.x509.UnrecognizedExtension` object.
Paul Kehrerd91e7c12015-10-01 16:50:42 -0500277
Paul Kehrer869cfd92015-12-10 14:12:05 -06002781.1.2 - 2015-12-10
279~~~~~~~~~~~~~~~~~~
280
281* Fixed a SIGBUS crash with the OS X wheels caused by redefinition of a
282 method.
283* Fixed a runtime error ``undefined symbol EC_GFp_nistp224_method`` that
284 occurred with some OpenSSL installations.
285* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2e.
286
Paul Kehrerdcf40fc2015-11-18 22:11:36 -06002871.1.1 - 2015-11-19
288~~~~~~~~~~~~~~~~~~
289
290* Fixed several small bugs related to compiling the OpenSSL bindings with
291 unusual OpenSSL configurations.
292* Resolved an issue where, depending on the method of installation and
293 which Python interpreter they were using, users on El Capitan (OS X 10.11)
294 may have seen an ``InternalError`` on import.
295
Paul Kehrere9ac0272015-10-28 15:48:01 +09002961.1 - 2015-10-28
297~~~~~~~~~~~~~~~~
Paul Kehrerbff54ef2015-08-12 08:47:34 -0500298
Alex Gaynor39d38b92015-10-17 16:44:15 -0400299* Added support for Elliptic Curve Diffie-Hellman with
Alex Gaynord2949892015-10-17 16:45:55 -0400300 :class:`~cryptography.hazmat.primitives.asymmetric.ec.ECDH`.
Alex Gaynorace036d2015-09-24 20:23:08 -0400301* Added :class:`~cryptography.hazmat.primitives.kdf.x963kdf.X963KDF`.
Paul Kehrer87355482015-10-21 20:27:44 -0500302* Added support for parsing certificate revocation lists (CRLs) using
303 :func:`~cryptography.x509.load_pem_x509_crl` and
304 :func:`~cryptography.x509.load_der_x509_crl`.
Paul Kehrer0d76a2e2015-05-17 13:36:13 -0700305* Add support for AES key wrapping with
306 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_wrap` and
307 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap`.
Paul Kehrere9ac0272015-10-28 15:48:01 +0900308* Added a ``__hash__`` method to :class:`~cryptography.x509.Name`.
Paul Kehrer1a1b1152015-10-28 09:33:05 +0900309* Add support for encoding and decoding elliptic curve points to a byte string
310 form using
311 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.encode_point`
312 and
313 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.from_encoded_point`.
Paul Kehrere9ac0272015-10-28 15:48:01 +0900314* Added :meth:`~cryptography.x509.Extensions.get_extension_for_class`.
315* :class:`~cryptography.x509.CertificatePolicies` are now supported in the
316 :class:`~cryptography.x509.CertificateBuilder`.
317* ``countryName`` is now encoded as a ``PrintableString`` when creating subject
318 and issuer distinguished names with the Certificate and CSR builder classes.
Paul Kehrer1a1b1152015-10-28 09:33:05 +0900319
Paul Kehrer8addede2015-09-26 22:57:35 -05003201.0.2 - 2015-09-27
321~~~~~~~~~~~~~~~~~~
322* **SECURITY ISSUE**: The OpenSSL backend prior to 1.0.2 made extensive use
323 of assertions to check response codes where our tests could not trigger a
324 failure. However, when Python is run with ``-O`` these asserts are optimized
325 away. If a user ran Python with this flag and got an invalid response code
326 this could result in undefined behavior or worse. Accordingly, all response
327 checks from the OpenSSL backend have been converted from ``assert``
328 to a true function call. Credit **Emilia Käsper (Google Security Team)**
329 for the report.
330
Paul Kehrer2f6b1692015-09-05 20:58:52 -05003311.0.1 - 2015-09-05
332~~~~~~~~~~~~~~~~~~
333
334* We now ship OS X wheels that statically link OpenSSL by default. When
335 installing a wheel on OS X 10.10+ (and using a Python compiled against the
336 10.10 SDK) users will no longer need to compile. See :doc:`/installation` for
337 alternate installation methods if required.
338* Set the default string mask to UTF-8 in the OpenSSL backend to resolve
339 character encoding issues with older versions of OpenSSL.
340* Several new OpenSSL bindings have been added to support a future pyOpenSSL
341 release.
342* Raise an error during install on PyPy < 2.6. 1.0+ requires PyPy 2.6+.
Paul Kehrerbff54ef2015-08-12 08:47:34 -0500343
Paul Kehrer55ab8052015-08-11 18:22:55 -05003441.0 - 2015-08-12
Paul Kehrerd5257ab2015-05-13 20:48:36 -0500345~~~~~~~~~~~~~~~~
346
Paul Kehrer68b3b1e2015-05-19 13:05:21 -0700347* Switched to the new `cffi`_ ``set_source`` out-of-line API mode for
348 compilation. This results in significantly faster imports and lowered
Paul Kehrer73f06c72015-06-07 23:17:39 -0500349 memory consumption. Due to this change we no longer support PyPy releases
350 older than 2.6 nor do we support any released version of PyPy3 (until a
351 version supporting cffi 1.0 comes out).
Paul Kehrer60cc9ef2015-08-04 19:29:52 +0100352* Fix parsing of OpenSSH public keys that have spaces in comments.
Andre Caronbeed2942015-05-18 13:47:36 -0400353* Support serialization of certificate signing requests using the
354 ``public_bytes`` method of
355 :class:`~cryptography.x509.CertificateSigningRequest`.
Andre Carona8aded62015-05-19 20:11:57 -0400356* Support serialization of certificates using the ``public_bytes`` method of
357 :class:`~cryptography.x509.Certificate`.
Jiangge Zhang764f6372015-06-05 18:01:22 +0800358* Add ``get_provisioning_uri`` method to
359 :class:`~cryptography.hazmat.primitives.twofactor.hotp.HOTP` and
360 :class:`~cryptography.hazmat.primitives.twofactor.totp.TOTP` for generating
361 provisioning URIs.
Paul Kehrer66f380c2015-06-12 11:23:34 -0500362* Add :class:`~cryptography.hazmat.primitives.kdf.concatkdf.ConcatKDFHash`
363 and :class:`~cryptography.hazmat.primitives.kdf.concatkdf.ConcatKDFHMAC`.
Ian Cordascoab94b902015-06-17 08:28:02 -0500364* Raise a ``TypeError`` when passing objects that are not text as the value to
365 :class:`~cryptography.x509.NameAttribute`.
Paul Kehrer44171a22015-08-01 21:21:26 +0100366* Add support for :class:`~cryptography.x509.OtherName` as a general name
367 type.
368* Added new X.509 extension support in :class:`~cryptography.x509.Certificate`
369 The following new extensions are now supported:
370
371 * :class:`~cryptography.x509.OCSPNoCheck`
372 * :class:`~cryptography.x509.InhibitAnyPolicy`
373 * :class:`~cryptography.x509.IssuerAlternativeName`
374 * :class:`~cryptography.x509.NameConstraints`
375
376* Extension support was added to
377 :class:`~cryptography.x509.CertificateSigningRequest`.
Ian Cordasco46479d02015-08-03 08:30:20 -0500378* Add support for creating signed certificates with
379 :class:`~cryptography.x509.CertificateBuilder`. This includes support for
Paul Kehrere0ecfdc2015-08-06 10:53:15 +0100380 the following extensions:
Ian Cordasco46479d02015-08-03 08:30:20 -0500381
382 * :class:`~cryptography.x509.BasicConstraints`
383 * :class:`~cryptography.x509.SubjectAlternativeName`
Paul Kehrere0ecfdc2015-08-06 10:53:15 +0100384 * :class:`~cryptography.x509.KeyUsage`
385 * :class:`~cryptography.x509.ExtendedKeyUsage`
386 * :class:`~cryptography.x509.SubjectKeyIdentifier`
387 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
388 * :class:`~cryptography.x509.AuthorityInformationAccess`
389 * :class:`~cryptography.x509.CRLDistributionPoints`
Paul Kehrer683d4d82015-08-06 23:13:45 +0100390 * :class:`~cryptography.x509.InhibitAnyPolicy`
Paul Kehrer2dfd9da2015-08-10 21:30:23 -0500391 * :class:`~cryptography.x509.IssuerAlternativeName`
392 * :class:`~cryptography.x509.OCSPNoCheck`
Ian Cordasco46479d02015-08-03 08:30:20 -0500393
Paul Kehrer91e385d2015-08-08 22:50:28 -0500394* Add support for creating certificate signing requests with
395 :class:`~cryptography.x509.CertificateSigningRequestBuilder`. This includes
396 support for the same extensions supported in the ``CertificateBuilder``.
Paul Kehrer31c5c332015-08-10 11:59:38 -0500397* Deprecate ``encode_rfc6979_signature`` and ``decode_rfc6979_signature`` in
398 favor of
399 :func:`~cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature`
400 and
401 :func:`~cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature`.
402
Paul Kehrer91e385d2015-08-08 22:50:28 -0500403
Paul Kehrer3bbda282015-07-09 09:48:23 -05004040.9.3 - 2015-07-09
405~~~~~~~~~~~~~~~~~~
406
407* Updated Windows wheels to be compiled against OpenSSL 1.0.2d.
408
Paul Kehrer7b411632015-07-03 18:07:41 -05004090.9.2 - 2015-07-04
410~~~~~~~~~~~~~~~~~~
411
412* Updated Windows wheels to be compiled against OpenSSL 1.0.2c.
413
Alex Gaynorc4bb7d52015-06-06 17:27:14 -04004140.9.1 - 2015-06-06
415~~~~~~~~~~~~~~~~~~
416
417* **SECURITY ISSUE**: Fixed a double free in the OpenSSL backend when using DSA
418 to verify signatures. Note that this only affects PyPy 2.6.0 and (presently
419 unreleased) CFFI versions greater than 1.1.0.
420
Paul Kehrerc486ed52015-05-13 17:59:31 -05004210.9 - 2015-05-13
422~~~~~~~~~~~~~~~~
Paul Kehrer8ce597b2015-03-09 00:01:17 -0500423
Paul Kehrer741fccb2015-04-14 10:22:25 -0400424* Removed support for Python 3.2. This version of Python is rarely used
425 and caused support headaches. Users affected by this should upgrade to 3.3+.
Alex Gaynor6e7f6222015-03-29 21:51:38 -0400426* Deprecated support for Python 2.6. At the time there is no time table for
427 actually dropping support, however we strongly encourage all users to upgrade
428 their Python, as Python 2.6 no longer receives support from the Python core
429 team.
Paul Kehrerebbeedf2015-05-08 18:13:14 -0500430* Add support for the
431 :class:`~cryptography.hazmat.primitives.asymmetric.ec.SECP256K1` elliptic
432 curve.
Alex Gaynor5d27d4d2015-04-04 14:56:02 -0500433* Fixed compilation when using an OpenSSL which was compiled with the
434 ``no-comp`` (``OPENSSL_NO_COMP``) option.
Paul Kehrera2c48652015-03-10 15:48:37 -0500435* Support :attr:`~cryptography.hazmat.primitives.serialization.Encoding.DER`
436 serialization of public keys using the ``public_bytes`` method of
Paul Kehrer1955ebf2015-03-10 08:38:57 -0500437 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`,
438 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`,
439 and
Paul Kehrera2c48652015-03-10 15:48:37 -0500440 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`.
Paul Kehrer919a5b22015-03-14 13:15:17 -0500441* Support :attr:`~cryptography.hazmat.primitives.serialization.Encoding.DER`
442 serialization of private keys using the ``private_bytes`` method of
443 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`,
444 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`,
445 and
446 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`.
Paul Kehrera1a1f232015-03-15 15:34:35 -0500447* Add support for parsing X.509 certificate signing requests (CSRs) with
Paul Kehrer1effb6e2015-03-30 15:05:59 -0500448 :func:`~cryptography.x509.load_pem_x509_csr` and
449 :func:`~cryptography.x509.load_der_x509_csr`.
Paul Kehrerd14dcc52015-04-14 14:21:21 -0400450* Moved ``cryptography.exceptions.InvalidToken`` to
451 :class:`cryptography.hazmat.primitives.twofactor.InvalidToken` and deprecated
452 the old location. This was moved to minimize confusion between this exception
453 and :class:`cryptography.fernet.InvalidToken`.
Paul Kehreraeb77202015-05-13 11:52:38 -0500454* Added support for X.509 extensions in :class:`~cryptography.x509.Certificate`
455 objects. The following extensions are supported as of this release:
456
457 * :class:`~cryptography.x509.BasicConstraints`
458 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
459 * :class:`~cryptography.x509.SubjectKeyIdentifier`
460 * :class:`~cryptography.x509.KeyUsage`
461 * :class:`~cryptography.x509.SubjectAlternativeName`
462 * :class:`~cryptography.x509.ExtendedKeyUsage`
463 * :class:`~cryptography.x509.CRLDistributionPoints`
464 * :class:`~cryptography.x509.AuthorityInformationAccess`
465 * :class:`~cryptography.x509.CertificatePolicies`
466
467 Note that unsupported extensions with the critical flag raise
468 :class:`~cryptography.x509.UnsupportedExtension` while unsupported extensions
469 set to non-critical are silently ignored. Read the
Alex Gaynor5e0da3a2015-07-12 10:35:56 -0500470 :doc:`X.509 documentation</x509/index>` for more information.
Paul Kehrer1955ebf2015-03-10 08:38:57 -0500471
Paul Kehrer33906b82015-04-10 21:00:08 -04004720.8.2 - 2015-04-10
473~~~~~~~~~~~~~~~~~~
474
475* Fixed a race condition when initializing the OpenSSL or CommonCrypto backends
476 in a multi-threaded scenario.
477
Paul Kehrer41a750c2015-03-19 22:46:23 -05004780.8.1 - 2015-03-20
479~~~~~~~~~~~~~~~~~~
480
481* Updated Windows wheels to be compiled against OpenSSL 1.0.2a.
482
Paul Kehrer5dc4b882015-03-08 18:19:50 -05004830.8 - 2015-03-08
484~~~~~~~~~~~~~~~~
Paul Kehrer08120d72014-12-17 21:37:58 -0600485
Alex Gaynor5d66ca52014-12-25 18:39:39 -0800486* :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key` can
487 now load elliptic curve public keys.
Paul Kehrer836b8302015-01-18 09:42:58 -0600488* Added
Paul Kehrer8802a5b2015-02-13 12:06:57 -0600489 :attr:`~cryptography.x509.Certificate.signature_hash_algorithm` support to
Paul Kehrerb0a80392015-02-11 23:39:49 -0600490 :class:`~cryptography.x509.Certificate`.
491* Added
Paul Kehrer836b8302015-01-18 09:42:58 -0600492 :func:`~cryptography.hazmat.primitives.asymmetric.rsa.rsa_recover_prime_factors`
Paul Kehrer48402ff2015-02-16 15:31:52 -0600493* :class:`~cryptography.hazmat.primitives.kdf.KeyDerivationFunction` was moved
494 from :mod:`~cryptography.hazmat.primitives.interfaces` to
495 :mod:`~cryptography.hazmat.primitives.kdf`.
Paul Kehrer719d5362015-01-01 20:03:52 -0600496* Added support for parsing X.509 names. See the
Alex Gaynor5e0da3a2015-07-12 10:35:56 -0500497 :doc:`X.509 documentation</x509/index>` for more information.
Paul Kehrer99a249d2015-01-04 15:55:22 -0600498* Added
499 :func:`~cryptography.hazmat.primitives.serialization.load_der_private_key` to
500 support loading of DER encoded private keys and
501 :func:`~cryptography.hazmat.primitives.serialization.load_der_public_key` to
502 support loading DER encoded public keys.
Steven McDonald27e6b9c2015-02-18 16:37:03 +1100503* Fixed building against LibreSSL, a compile-time substitute for OpenSSL.
Paul Kehrer77f540d2015-02-20 12:53:04 -0600504* FreeBSD 9.2 was removed from the continuous integration system.
Paul Kehrerf28dd452015-03-05 10:22:59 -0600505* Updated Windows wheels to be compiled against OpenSSL 1.0.2.
Paul Kehrer7bfa22e2015-03-04 13:48:30 -0600506* :func:`~cryptography.hazmat.primitives.serialization.load_pem_public_key`
507 and :func:`~cryptography.hazmat.primitives.serialization.load_der_public_key`
Paul Kehrer791afc02015-03-05 14:29:28 -0600508 now support PKCS1 RSA public keys (in addition to the previous support for
Paul Kehrer7bfa22e2015-03-04 13:48:30 -0600509 SubjectPublicKeyInfo format for RSA, EC, and DSA).
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600510* Added
Paul Kehrer59e5c862015-03-02 10:36:50 -0600511 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500512 and deprecated ``EllipticCurvePrivateKeyWithNumbers``.
Paul Kehrer59e5c862015-03-02 10:36:50 -0600513* Added
514 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization.private_bytes`
515 to
516 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`.
517* Added
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600518 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500519 and deprecated ``RSAPrivateKeyWithNumbers``.
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600520* Added
Paul Kehrer223a8f02015-02-28 18:54:10 -0600521 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization.private_bytes`
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600522 to
523 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`.
Paul Kehrerec342632015-03-01 16:53:58 -0600524* Added
525 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500526 and deprecated ``DSAPrivateKeyWithNumbers``.
Paul Kehrerec342632015-03-01 16:53:58 -0600527* Added
528 :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization.private_bytes`
529 to
530 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`.
Paul Kehrer3f157e02015-02-28 11:31:06 -0600531* Added
532 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500533 and deprecated ``RSAPublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -0500534* Added ``public_bytes`` to
Paul Kehrer3f157e02015-02-28 11:31:06 -0600535 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`.
Paul Kehrer419615b2015-03-05 21:01:16 -0600536* Added
537 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500538 and deprecated ``EllipticCurvePublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -0500539* Added ``public_bytes`` to
Paul Kehrer419615b2015-03-05 21:01:16 -0600540 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`.
Paul Kehrer26006c52015-03-08 18:27:11 -0500541* Added
542 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500543 and deprecated ``DSAPublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -0500544* Added ``public_bytes`` to
Paul Kehrer26006c52015-03-08 18:27:11 -0500545 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`.
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500546* :class:`~cryptography.hazmat.primitives.hashes.HashAlgorithm` and
547 :class:`~cryptography.hazmat.primitives.hashes.HashContext` were moved from
548 :mod:`~cryptography.hazmat.primitives.interfaces` to
549 :mod:`~cryptography.hazmat.primitives.hashes`.
550* :class:`~cryptography.hazmat.primitives.ciphers.CipherContext`,
551 :class:`~cryptography.hazmat.primitives.ciphers.AEADCipherContext`,
552 :class:`~cryptography.hazmat.primitives.ciphers.AEADEncryptionContext`,
553 :class:`~cryptography.hazmat.primitives.ciphers.CipherAlgorithm`, and
554 :class:`~cryptography.hazmat.primitives.ciphers.BlockCipherAlgorithm`
555 were moved from :mod:`~cryptography.hazmat.primitives.interfaces` to
556 :mod:`~cryptography.hazmat.primitives.ciphers`.
557* :class:`~cryptography.hazmat.primitives.ciphers.modes.Mode`,
558 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithInitializationVector`,
559 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithNonce`, and
560 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithAuthenticationTag`
561 were moved from :mod:`~cryptography.hazmat.primitives.interfaces` to
562 :mod:`~cryptography.hazmat.primitives.ciphers.modes`.
563* :class:`~cryptography.hazmat.primitives.padding.PaddingContext` was moved
564 from :mod:`~cryptography.hazmat.primitives.interfaces` to
565 :mod:`~cryptography.hazmat.primitives.padding`.
566*
567 :class:`~cryptography.hazmat.primitives.asymmetric.padding.AsymmetricPadding`
568 was moved from :mod:`~cryptography.hazmat.primitives.interfaces` to
569 :mod:`~cryptography.hazmat.primitives.asymmetric.padding`.
570*
571 :class:`~cryptography.hazmat.primitives.asymmetric.AsymmetricSignatureContext`
572 and
573 :class:`~cryptography.hazmat.primitives.asymmetric.AsymmetricVerificationContext`
574 were moved from :mod:`~cryptography.hazmat.primitives.interfaces` to
575 :mod:`~cryptography.hazmat.primitives.asymmetric`.
576* :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAParameters`,
577 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAParametersWithNumbers`,
578 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500579 ``DSAPrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500580 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey` and
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500581 ``DSAPublicKeyWithNumbers`` were moved from
582 :mod:`~cryptography.hazmat.primitives.interfaces` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500583 :mod:`~cryptography.hazmat.primitives.asymmetric.dsa`
584* :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurve`,
585 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurveSignatureAlgorithm`,
586 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500587 ``EllipticCurvePrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500588 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500589 and ``EllipticCurvePublicKeyWithNumbers``
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500590 were moved from :mod:`~cryptography.hazmat.primitives.interfaces` to
591 :mod:`~cryptography.hazmat.primitives.asymmetric.ec`.
592* :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500593 ``RSAPrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500594 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey` and
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500595 ``RSAPublicKeyWithNumbers`` were moved from
596 :mod:`~cryptography.hazmat.primitives.interfaces` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500597 :mod:`~cryptography.hazmat.primitives.asymmetric.rsa`.
Alex Gaynor5d66ca52014-12-25 18:39:39 -0800598
Paul Kehrer72572f92015-01-16 08:10:12 -06005990.7.2 - 2015-01-16
600~~~~~~~~~~~~~~~~~~
601
602* Updated Windows wheels to be compiled against OpenSSL 1.0.1l.
603* ``enum34`` is no longer installed on Python 3.4, where it is included in
604 the standard library.
605* Added a new function to the OpenSSL bindings to support additional
606 functionality in pyOpenSSL.
607
Paul Kehrer842e58a2014-12-28 15:17:39 -07006080.7.1 - 2014-12-28
609~~~~~~~~~~~~~~~~~~
610
611* Fixed an issue preventing compilation on platforms where ``OPENSSL_NO_SSL3``
612 was defined.
613
Paul Kehrere8135092014-12-17 14:20:40 -06006140.7 - 2014-12-17
615~~~~~~~~~~~~~~~~
Paul Kehrer98681332014-09-29 21:43:57 -0500616
Alex Gaynordf6a5cd2014-11-07 09:36:47 -0300617* Cryptography has been relicensed from the Apache Software License, Version
618 2.0, to being available under *either* the Apache Software License, Version
619 2.0, or the BSD license.
Alex Gaynor4c825132014-10-20 21:27:08 -0700620* Added key-rotation support to :doc:`Fernet </fernet>` with
621 :class:`~cryptography.fernet.MultiFernet`.
Paul Kehrer214d91d2014-12-18 07:20:04 -0600622* More bit-lengths are now supported for ``p`` and ``q`` when loading DSA keys
Alex Gaynora438e832014-10-19 19:47:05 -0700623 from numbers.
Terry Chiaff5ec862014-10-20 12:15:22 +0800624* Added :class:`~cryptography.hazmat.primitives.interfaces.MACContext` as a
Paul Kehrerebee0062015-03-07 12:34:33 -0600625 common interface for CMAC and HMAC and deprecated ``CMACContext``.
Paul Kehrerb3a3e5c2014-11-27 11:27:32 -1000626* Added support for encoding and decoding :rfc:`6979` signatures in
627 :doc:`/hazmat/primitives/asymmetric/utils`.
Mark Adams78a7d1c2014-12-12 23:13:12 -0600628* Added
Alex Gaynor993b85a2014-12-15 10:42:45 -0800629 :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key` to
Paul Kehrere8135092014-12-17 14:20:40 -0600630 support the loading of OpenSSH public keys (:rfc:`4253`). Only RSA and DSA
631 keys are currently supported.
Paul Kehrere76cd272014-12-14 19:00:51 -0600632* Added initial support for X.509 certificate parsing. See the
Alex Gaynor5e0da3a2015-07-12 10:35:56 -0500633 :doc:`X.509 documentation</x509/index>` for more information.
Terry Chiac7c82f32014-10-20 12:15:22 +0800634
Paul Kehrer555b1502014-10-15 23:24:57 -05006350.6.1 - 2014-10-15
636~~~~~~~~~~~~~~~~~~
637
638* Updated Windows wheels to be compiled against OpenSSL 1.0.1j.
639* Fixed an issue where OpenSSL 1.0.1j changed the errors returned by some
640 functions.
641* Added our license file to the ``cryptography-vectors`` package.
642* Implemented DSA hash truncation support (per FIPS 186-3) in the OpenSSL
643 backend. This works around an issue in 1.0.0, 1.0.0a, and 1.0.0b where
644 truncation was not implemented.
645
Paul Kehrerc3f11d82014-09-29 20:31:15 -05006460.6 - 2014-09-29
647~~~~~~~~~~~~~~~~
Paul Kehrer1757fe32014-07-07 22:29:23 -0500648
Alex Gaynoref823342014-09-27 12:04:22 -0400649* Added
650 :func:`~cryptography.hazmat.primitives.serialization.load_pem_private_key` to
651 ease loading private keys, and
652 :func:`~cryptography.hazmat.primitives.serialization.load_pem_public_key` to
653 support loading public keys.
Alex Gaynor1658f942014-07-08 00:02:37 -0700654* Removed the, deprecated in 0.4, support for the ``salt_length`` argument to
655 the :class:`~cryptography.hazmat.primitives.asymmetric.padding.MGF1`
656 constructor. The ``salt_length`` should be passed to
657 :class:`~cryptography.hazmat.primitives.asymmetric.padding.PSS` instead.
Paul Kehrerf4fbf392014-08-21 08:36:49 -1000658* Fix compilation on OS X Yosemite.
Paul Kehrer77e95a02014-09-25 12:28:07 -0500659* Deprecated ``elliptic_curve_private_key_from_numbers`` and
660 ``elliptic_curve_public_key_from_numbers`` in favor of
661 ``load_elliptic_curve_private_numbers`` and
662 ``load_elliptic_curve_public_numbers`` on
663 :class:`~cryptography.hazmat.backends.interfaces.EllipticCurveBackend`.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600664* Added ``EllipticCurvePrivateKeyWithNumbers`` and
665 ``EllipticCurvePublicKeyWithNumbers`` support.
Paul Kehrerf378e402014-09-27 11:28:42 -0500666* Work around three GCM related bugs in CommonCrypto and OpenSSL.
Paul Kehrer4c773652014-09-27 11:26:02 -0500667
668 * On the CommonCrypto backend adding AAD but not subsequently calling update
669 would return null tag bytes.
670
671 * One the CommonCrypto backend a call to update without an empty add AAD call
672 would return null ciphertext bytes.
673
674 * On the OpenSSL backend with certain versions adding AAD only would give
675 invalid tag bytes.
676
677* Support loading EC private keys from PEM.
Alex Gaynor1658f942014-07-08 00:02:37 -0700678
Paul Kehrer01f0c672014-08-20 20:15:18 -10006790.5.4 - 2014-08-20
680~~~~~~~~~~~~~~~~~~
681
682* Added several functions to the OpenSSL bindings to support new
683 functionality in pyOpenSSL.
684* Fixed a redefined constant causing compilation failure with Solaris 11.2.
685
Paul Kehrer86cf5b12014-08-07 05:38:17 -10006860.5.3 - 2014-08-06
687~~~~~~~~~~~~~~~~~~
688
689* Updated Windows wheels to be compiled against OpenSSL 1.0.1i.
690
Paul Kehrer2456e662014-07-09 19:51:32 -05006910.5.2 - 2014-07-09
692~~~~~~~~~~~~~~~~~~
693
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600694* Add ``TraditionalOpenSSLSerializationBackend`` support to
695 :doc:`/hazmat/backends/multibackend`.
Paul Kehrer2456e662014-07-09 19:51:32 -0500696* Fix compilation error on OS X 10.8 (Mountain Lion).
697
Paul Kehrerf092d732014-07-07 19:42:15 -05006980.5.1 - 2014-07-07
699~~~~~~~~~~~~~~~~~~
700
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600701* Add ``PKCS8SerializationBackend`` support to
702 :doc:`/hazmat/backends/multibackend`.
Paul Kehrerf092d732014-07-07 19:42:15 -0500703
Paul Kehrer3c6a2392014-07-07 08:29:07 -05007040.5 - 2014-07-07
705~~~~~~~~~~~~~~~~
Paul Kehrer50a04852014-05-03 08:57:13 -0500706
Alex Gaynor8f1b8e82014-06-29 20:43:29 -0700707* **BACKWARDS INCOMPATIBLE:**
708 :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` no longer allows
709 truncation of tags by default. Previous versions of ``cryptography`` allowed
710 tags to be truncated by default, applications wishing to preserve this
Alex Gaynor4efe61a2014-06-29 20:44:53 -0700711 behavior (not recommended) can pass the ``min_tag_length`` argument.
Paul Kehrer8987bcb2014-07-06 09:28:29 -0500712* Windows builds now statically link OpenSSL by default. When installing a
Paul Kehrer3df9a312014-07-06 09:25:29 -0500713 wheel on Windows you no longer need to install OpenSSL separately. Windows
714 users can switch between static and dynamic linking with an environment
715 variable. See :doc:`/installation` for more details.
Paul Kehrer88bac252014-05-21 12:42:13 -0500716* Added :class:`~cryptography.hazmat.primitives.kdf.hkdf.HKDFExpand`.
Paul Kehrer2a947c42014-05-15 17:22:08 -0400717* Added :class:`~cryptography.hazmat.primitives.ciphers.modes.CFB8` support
718 for :class:`~cryptography.hazmat.primitives.ciphers.algorithms.AES` and
719 :class:`~cryptography.hazmat.primitives.ciphers.algorithms.TripleDES` on
720 :doc:`/hazmat/backends/commoncrypto` and :doc:`/hazmat/backends/openssl`.
Paul Kehrer055f9602014-05-20 23:21:26 -0500721* Added ``AES`` :class:`~cryptography.hazmat.primitives.ciphers.modes.CTR`
722 support to the OpenSSL backend when linked against 0.9.8.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600723* Added ``PKCS8SerializationBackend`` and
724 ``TraditionalOpenSSLSerializationBackend`` support to the
725 :doc:`/hazmat/backends/openssl`.
Paul Kehrer21fc5822014-07-04 09:28:55 -0500726* Added :doc:`/hazmat/primitives/asymmetric/ec` and
727 :class:`~cryptography.hazmat.backends.interfaces.EllipticCurveBackend`.
Paul Kehrerd1bac5e2014-06-13 12:34:49 -0500728* Added :class:`~cryptography.hazmat.primitives.ciphers.modes.ECB` support
729 for :class:`~cryptography.hazmat.primitives.ciphers.algorithms.TripleDES` on
730 :doc:`/hazmat/backends/commoncrypto` and :doc:`/hazmat/backends/openssl`.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600731* Deprecated the concrete ``RSAPrivateKey`` class in favor of backend
Paul Kehrera10be692015-02-12 12:58:27 -0600732 specific providers of the
733 :class:`cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
734 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600735* Deprecated the concrete ``RSAPublicKey`` in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -0600736 providers of the
737 :class:`cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`
738 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600739* Deprecated the concrete ``DSAPrivateKey`` class in favor of backend
Paul Kehrera10be692015-02-12 12:58:27 -0600740 specific providers of the
741 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`
742 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600743* Deprecated the concrete ``DSAPublicKey`` class in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -0600744 providers of the
745 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`
746 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600747* Deprecated the concrete ``DSAParameters`` class in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -0600748 providers of the
749 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAParameters`
750 interface.
Paul Kehrerf2fb02a2014-06-19 10:16:42 -0600751* Deprecated ``encrypt_rsa``, ``decrypt_rsa``, ``create_rsa_signature_ctx`` and
752 ``create_rsa_verification_ctx`` on
753 :class:`~cryptography.hazmat.backends.interfaces.RSABackend`.
Paul Kehrer1262be22014-06-26 16:16:50 -0600754* Deprecated ``create_dsa_signature_ctx`` and ``create_dsa_verification_ctx``
755 on :class:`~cryptography.hazmat.backends.interfaces.DSABackend`.
Paul Kehrerbb91c812014-05-12 15:03:04 -0400756
Paul Kehrer95862012014-05-01 16:48:05 -05007570.4 - 2014-05-03
758~~~~~~~~~~~~~~~~
Paul Kehrer3d4eb6e2014-03-27 16:27:31 -0500759
Paul Kehrerba987452014-04-02 17:12:26 -0500760* Deprecated ``salt_length`` on
761 :class:`~cryptography.hazmat.primitives.asymmetric.padding.MGF1` and added it
Alex Gaynor9963cb32014-07-12 09:35:33 -0700762 to :class:`~cryptography.hazmat.primitives.asymmetric.padding.PSS`. It will
Alex Gaynor2e49f212014-07-12 10:58:30 -0700763 be removed from ``MGF1`` in two releases per our :doc:`/api-stability`
Alex Gaynor9963cb32014-07-12 09:35:33 -0700764 policy.
765* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.SEED`
766 support.
Ayrx9bea9372014-04-22 21:00:34 +0800767* Added :class:`~cryptography.hazmat.primitives.cmac.CMAC`.
Alex Gaynorcd58b932014-05-01 23:11:06 -0700768* Added decryption support to
769 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
770 and encryption support to
771 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`.
Paul Kehrer80950e52014-05-01 16:48:55 -0500772* Added signature support to
773 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`
774 and verification support to
775 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`.
Ayrx9bea9372014-04-22 21:00:34 +0800776
Paul Kehrer9c2a11b2014-03-27 13:16:57 -05007770.3 - 2014-03-27
778~~~~~~~~~~~~~~~~
Matthew Iversen69a6fad2014-02-25 02:10:44 +1100779
780* Added :class:`~cryptography.hazmat.primitives.twofactor.hotp.HOTP`.
David Reideea08d92014-02-25 11:06:09 -0800781* Added :class:`~cryptography.hazmat.primitives.twofactor.totp.TOTP`.
Alex Gaynor9963cb32014-07-12 09:35:33 -0700782* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.IDEA`
783 support.
Alex Gaynorcd58b932014-05-01 23:11:06 -0700784* Added signature support to
785 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
786 and verification support to
787 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`.
Paul Kehrer1592e5b2014-03-27 14:29:38 -0500788* Moved test vectors to the new ``cryptography_vectors`` package.
Matthew Iversen69a6fad2014-02-25 02:10:44 +1100789
Paul Kehrer7f711ee2014-03-03 23:58:45 -04007900.2.2 - 2014-03-03
791~~~~~~~~~~~~~~~~~~
792
Alex Gaynor9963cb32014-07-12 09:35:33 -0700793* Removed a constant definition that was causing compilation problems with
794 specific versions of OpenSSL.
Paul Kehrer7f711ee2014-03-03 23:58:45 -0400795
Matthew Iversen69a6fad2014-02-25 02:10:44 +11007960.2.1 - 2014-02-22
797~~~~~~~~~~~~~~~~~~
Paul Kehrer7f711ee2014-03-03 23:58:45 -0400798
Alex Gaynorcd58b932014-05-01 23:11:06 -0700799* Fix a bug where importing cryptography from multiple paths could cause
800 initialization to fail.
Matthew Iversen69a6fad2014-02-25 02:10:44 +1100801
8020.2 - 2014-02-20
803~~~~~~~~~~~~~~~~
804
805* Added :doc:`/hazmat/backends/commoncrypto`.
806* Added initial :doc:`/hazmat/bindings/commoncrypto`.
807* Removed ``register_cipher_adapter`` method from
808 :class:`~cryptography.hazmat.backends.interfaces.CipherBackend`.
809* Added support for the OpenSSL backend under Windows.
810* Improved thread-safety for the OpenSSL backend.
811* Fixed compilation on systems where OpenSSL's ``ec.h`` header is not
812 available, such as CentOS.
813* Added :class:`~cryptography.hazmat.primitives.kdf.pbkdf2.PBKDF2HMAC`.
814* Added :class:`~cryptography.hazmat.primitives.kdf.hkdf.HKDF`.
815* Added :doc:`/hazmat/backends/multibackend`.
Alex Gaynorcd58b932014-05-01 23:11:06 -0700816* Set default random for the :doc:`/hazmat/backends/openssl` to the OS
817 random engine.
818* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.CAST5`
819 (CAST-128) support.
Matthew Iversen69a6fad2014-02-25 02:10:44 +1100820
8210.1 - 2014-01-08
822~~~~~~~~~~~~~~~~
823
824* Initial release.
825
Alex Stapletonb9df2782014-03-17 08:09:41 +0000826.. _`master`: https://github.com/pyca/cryptography/
Alex Gaynor988df9b2016-04-28 10:57:16 -0400827.. _`cffi`: https://cffi.readthedocs.io/