blob: 4dd71460069fc28579f4d45ad693c7c6a4a0ecfa [file] [log] [blame]
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001Changelog
2=========
3
Lucia Lic6ba99d2021-11-08 22:06:11 +08004.. _v3-3-2:
5
63.3.2 - 2021-02-07
7~~~~~~~~~~~~~~~~~~
8
9* **SECURITY ISSUE:** Fixed a bug where certain sequences of ``update()`` calls
10 when symmetrically encrypting very large payloads (>2GB) could result in an
11 integer overflow, leading to buffer overflows. *CVE-2020-36242*
12
13.. _v3-3-1:
14
153.3.1 - 2020-12-09
16~~~~~~~~~~~~~~~~~~
17
18* Re-added a legacy symbol causing problems for older ``pyOpenSSL`` users.
19
20.. _v3-3:
21
223.3 - 2020-12-08
23~~~~~~~~~~~~~~~~
24
25* **BACKWARDS INCOMPATIBLE:** Support for Python 3.5 has been removed due to
26 low usage and maintenance burden.
27* **BACKWARDS INCOMPATIBLE:** The
28 :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` and
29 :class:`~cryptography.hazmat.primitives.ciphers.aead.AESGCM` now require
30 64-bit to 1024-bit (8 byte to 128 byte) initialization vectors. This change
31 is to conform with an upcoming OpenSSL release that will no longer support
32 sizes outside this window.
33* **BACKWARDS INCOMPATIBLE:** When deserializing asymmetric keys we now
34 raise ``ValueError`` rather than ``UnsupportedAlgorithm`` when an
35 unsupported cipher is used. This change is to conform with an upcoming
36 OpenSSL release that will no longer distinguish between error types.
37* **BACKWARDS INCOMPATIBLE:** We no longer allow loading of finite field
38 Diffie-Hellman parameters of less than 512 bits in length. This change is to
39 conform with an upcoming OpenSSL release that no longer supports smaller
40 sizes. These keys were already wildly insecure and should not have been used
41 in any application outside of testing.
42* Updated Windows, macOS, and ``manylinux`` wheels to be compiled with
43 OpenSSL 1.1.1i.
44* Python 2 support is deprecated in ``cryptography``. This is the last release
45 that will support Python 2.
46* Added the
47 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey.recover_data_from_signature`
48 function to
49 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`
50 for recovering the signed data from an RSA signature.
51
52.. _v3-2-1:
53
543.2.1 - 2020-10-27
55~~~~~~~~~~~~~~~~~~
56
57* Disable blinding on RSA public keys to address an error with some versions
58 of OpenSSL.
59
60.. _v3-2:
61
623.2 - 2020-10-25
63~~~~~~~~~~~~~~~~
64
65* **SECURITY ISSUE:** Attempted to make RSA PKCS#1v1.5 decryption more constant
66 time, to protect against Bleichenbacher vulnerabilities. Due to limitations
67 imposed by our API, we cannot completely mitigate this vulnerability and a
68 future release will contain a new API which is designed to be resilient to
69 these for contexts where it is required. Credit to **Hubert Kario** for
70 reporting the issue. *CVE-2020-25659*
71* Support for OpenSSL 1.0.2 has been removed. Users on older version of OpenSSL
72 will need to upgrade.
73* Added basic support for PKCS7 signing (including SMIME) via
74 :class:`~cryptography.hazmat.primitives.serialization.pkcs7.PKCS7SignatureBuilder`.
75
76.. _v3-1-1:
77
783.1.1 - 2020-09-22
79~~~~~~~~~~~~~~~~~~
80
81* Updated Windows, macOS, and ``manylinux`` wheels to be compiled with
82 OpenSSL 1.1.1h.
83
84.. _v3-1:
85
863.1 - 2020-08-26
87~~~~~~~~~~~~~~~~
88
89* **BACKWARDS INCOMPATIBLE:** Removed support for ``idna`` based
90 :term:`U-label` parsing in various X.509 classes. This support was originally
91 deprecated in version 2.1 and moved to an extra in 2.5.
92* Deprecated OpenSSL 1.0.2 support. OpenSSL 1.0.2 is no longer supported by
93 the OpenSSL project. The next version of ``cryptography`` will drop support
94 for it.
95* Deprecated support for Python 3.5. This version sees very little use and will
96 be removed in the next release.
97* ``backend`` arguments to functions are no longer required and the
98 default backend will automatically be selected if no ``backend`` is provided.
99* Added initial support for parsing certificates from PKCS7 files with
100 :func:`~cryptography.hazmat.primitives.serialization.pkcs7.load_pem_pkcs7_certificates`
101 and
102 :func:`~cryptography.hazmat.primitives.serialization.pkcs7.load_der_pkcs7_certificates`
103 .
104* Calling ``update`` or ``update_into`` on
105 :class:`~cryptography.hazmat.primitives.ciphers.CipherContext` with ``data``
106 longer than 2\ :sup:`31` bytes no longer raises an ``OverflowError``. This
107 also resolves the same issue in :doc:`/fernet`.
108
109.. _v3-0:
110
1113.0 - 2020-07-20
112~~~~~~~~~~~~~~~~
113
114* **BACKWARDS INCOMPATIBLE:** Removed support for passing an
115 :class:`~cryptography.x509.Extension` instance to
116 :meth:`~cryptography.x509.AuthorityKeyIdentifier.from_issuer_subject_key_identifier`,
117 as per our deprecation policy.
118* **BACKWARDS INCOMPATIBLE:** Support for LibreSSL 2.7.x, 2.8.x, and 2.9.0 has
119 been removed (2.9.1+ is still supported).
120* **BACKWARDS INCOMPATIBLE:** Dropped support for macOS 10.9, macOS users must
121 upgrade to 10.10 or newer.
122* **BACKWARDS INCOMPATIBLE:** RSA
123 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.generate_private_key`
124 no longer accepts ``public_exponent`` values except 65537 and 3 (the latter
125 for legacy purposes).
126* **BACKWARDS INCOMPATIBLE:** X.509 certificate parsing now enforces that the
127 ``version`` field contains a valid value, rather than deferring this check
128 until :attr:`~cryptography.x509.Certificate.version` is accessed.
129* Deprecated support for Python 2. At the time there is no time table for
130 actually dropping support, however we strongly encourage all users to upgrade
131 their Python, as Python 2 no longer receives support from the Python core
132 team.
133
134 If you have trouble suppressing this warning in tests view the :ref:`FAQ
135 entry addressing this issue <faq-howto-handle-deprecation-warning>`.
136
137* Added support for ``OpenSSH`` serialization format for
138 ``ec``, ``ed25519``, ``rsa`` and ``dsa`` private keys:
139 :func:`~cryptography.hazmat.primitives.serialization.load_ssh_private_key`
140 for loading and
141 :attr:`~cryptography.hazmat.primitives.serialization.PrivateFormat.OpenSSH`
142 for writing.
143* Added support for ``OpenSSH`` certificates to
144 :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key`.
145* Added :meth:`~cryptography.fernet.Fernet.encrypt_at_time` and
146 :meth:`~cryptography.fernet.Fernet.decrypt_at_time` to
147 :class:`~cryptography.fernet.Fernet`.
148* Added support for the :class:`~cryptography.x509.SubjectInformationAccess`
149 X.509 extension.
150* Added support for parsing
151 :class:`~cryptography.x509.SignedCertificateTimestamps` in OCSP responses.
152* Added support for parsing attributes in certificate signing requests via
153 :meth:`~cryptography.x509.CertificateSigningRequest.get_attribute_for_oid`.
154* Added support for encoding attributes in certificate signing requests via
155 :meth:`~cryptography.x509.CertificateSigningRequestBuilder.add_attribute`.
156* On OpenSSL 1.1.1d and higher ``cryptography`` now uses OpenSSL's
157 built-in CSPRNG instead of its own OS random engine because these versions of
158 OpenSSL properly reseed on fork.
159* Added initial support for creating PKCS12 files with
160 :func:`~cryptography.hazmat.primitives.serialization.pkcs12.serialize_key_and_certificates`.
161
162.. _v2-9-2:
163
1642.9.2 - 2020-04-22
165~~~~~~~~~~~~~~~~~~
166
167* Updated the macOS wheel to fix an issue where it would not run on macOS
168 versions older than 10.15.
169
170.. _v2-9-1:
171
1722.9.1 - 2020-04-21
173~~~~~~~~~~~~~~~~~~
174
175* Updated Windows, macOS, and ``manylinux`` wheels to be compiled with
176 OpenSSL 1.1.1g.
177
178.. _v2-9:
179
1802.9 - 2020-04-02
181~~~~~~~~~~~~~~~~
182
183* **BACKWARDS INCOMPATIBLE:** Support for Python 3.4 has been removed due to
184 low usage and maintenance burden.
185* **BACKWARDS INCOMPATIBLE:** Support for OpenSSL 1.0.1 has been removed.
186 Users on older version of OpenSSL will need to upgrade.
187* **BACKWARDS INCOMPATIBLE:** Support for LibreSSL 2.6.x has been removed.
188* Removed support for calling
189 :meth:`~cryptography.hazmat.primitives.asymmetric.x25519.X25519PublicKey.public_bytes`
190 with no arguments, as per our deprecation policy. You must now pass
191 ``encoding`` and ``format``.
192* **BACKWARDS INCOMPATIBLE:** Reversed the order in which
193 :meth:`~cryptography.x509.Name.rfc4514_string` returns the RDNs
194 as required by :rfc:`4514`.
195* Updated Windows, macOS, and ``manylinux`` wheels to be compiled with
196 OpenSSL 1.1.1f.
197* Added support for parsing
198 :attr:`~cryptography.x509.ocsp.OCSPResponse.single_extensions` in an OCSP
199 response.
200* :class:`~cryptography.x509.NameAttribute` values can now be empty strings.
201
202.. _v2-8:
203
2042.8 - 2019-10-16
205~~~~~~~~~~~~~~~~
206
207* Updated Windows, macOS, and ``manylinux`` wheels to be compiled with
208 OpenSSL 1.1.1d.
209* Added support for Python 3.8.
210* Added class methods
211 :meth:`Poly1305.generate_tag
212 <cryptography.hazmat.primitives.poly1305.Poly1305.generate_tag>`
213 and
214 :meth:`Poly1305.verify_tag
215 <cryptography.hazmat.primitives.poly1305.Poly1305.verify_tag>`
216 for Poly1305 sign and verify operations.
217* Deprecated support for OpenSSL 1.0.1. Support will be removed in
218 ``cryptography`` 2.9.
219* We now ship ``manylinux2010`` wheels in addition to our ``manylinux1``
220 wheels.
221* Added support for ``ed25519`` and ``ed448`` keys in the
222 :class:`~cryptography.x509.CertificateBuilder`,
223 :class:`~cryptography.x509.CertificateSigningRequestBuilder`,
224 :class:`~cryptography.x509.CertificateRevocationListBuilder` and
225 :class:`~cryptography.x509.ocsp.OCSPResponseBuilder`.
226* ``cryptography`` no longer depends on ``asn1crypto``.
227* :class:`~cryptography.x509.FreshestCRL` is now allowed as a
228 :class:`~cryptography.x509.CertificateRevocationList` extension.
229
230.. _v2-7:
231
2322.7 - 2019-05-30
233~~~~~~~~~~~~~~~~
234
235* **BACKWARDS INCOMPATIBLE:** We no longer distribute 32-bit ``manylinux1``
236 wheels. Continuing to produce them was a maintenance burden.
237* **BACKWARDS INCOMPATIBLE:** Removed the
238 ``cryptography.hazmat.primitives.mac.MACContext`` interface. The ``CMAC`` and
239 ``HMAC`` APIs have not changed, but they are no longer registered as
240 ``MACContext`` instances.
241* Updated Windows, macOS, and ``manylinux1`` wheels to be compiled with
242 OpenSSL 1.1.1c.
243* Removed support for running our tests with ``setup.py test``. Users
244 interested in running our tests can continue to follow the directions in our
245 :doc:`development documentation</development/getting-started>`.
246* Add support for :class:`~cryptography.hazmat.primitives.poly1305.Poly1305`
247 when using OpenSSL 1.1.1 or newer.
248* Support serialization with ``Encoding.OpenSSH`` and ``PublicFormat.OpenSSH``
249 in
250 :meth:`Ed25519PublicKey.public_bytes
251 <cryptography.hazmat.primitives.asymmetric.ed25519.Ed25519PublicKey.public_bytes>`
252 .
253* Correctly allow passing a ``SubjectKeyIdentifier`` to
254 :meth:`~cryptography.x509.AuthorityKeyIdentifier.from_issuer_subject_key_identifier`
255 and deprecate passing an ``Extension`` object. The documentation always
256 required ``SubjectKeyIdentifier`` but the implementation previously
257 required an ``Extension``.
258
259.. _v2-6-1:
260
2612.6.1 - 2019-02-27
262~~~~~~~~~~~~~~~~~~
263
264* Resolved an error in our build infrastructure that broke our Python3 wheels
265 for macOS and Linux.
266
267.. _v2-6:
268
2692.6 - 2019-02-27
270~~~~~~~~~~~~~~~~
271
272* **BACKWARDS INCOMPATIBLE:** Removed
273 ``cryptography.hazmat.primitives.asymmetric.utils.encode_rfc6979_signature``
274 and
275 ``cryptography.hazmat.primitives.asymmetric.utils.decode_rfc6979_signature``,
276 which had been deprecated for nearly 4 years. Use
277 :func:`~cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature`
278 and
279 :func:`~cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature`
280 instead.
281* **BACKWARDS INCOMPATIBLE**: Removed ``cryptography.x509.Certificate.serial``,
282 which had been deprecated for nearly 3 years. Use
283 :attr:`~cryptography.x509.Certificate.serial_number` instead.
284* Updated Windows, macOS, and ``manylinux1`` wheels to be compiled with
285 OpenSSL 1.1.1b.
286* Added support for :doc:`/hazmat/primitives/asymmetric/ed448` when using
287 OpenSSL 1.1.1b or newer.
288* Added support for :doc:`/hazmat/primitives/asymmetric/ed25519` when using
289 OpenSSL 1.1.1b or newer.
290* :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key` can
291 now load ``ed25519`` public keys.
292* Add support for easily mapping an object identifier to its elliptic curve
293 class via
294 :func:`~cryptography.hazmat.primitives.asymmetric.ec.get_curve_for_oid`.
295* Add support for OpenSSL when compiled with the ``no-engine``
296 (``OPENSSL_NO_ENGINE``) flag.
297
Paul Kehrer5edac0c2018-11-11 21:21:16 -0500298.. _v2-5:
299
Paul Kehrer83aa36d2019-01-22 09:35:05 -06003002.5 - 2019-01-22
301~~~~~~~~~~~~~~~~
Paul Kehrer5edac0c2018-11-11 21:21:16 -0500302
Paul Kehrer7e422822018-12-07 11:43:38 +0800303* **BACKWARDS INCOMPATIBLE:** :term:`U-label` strings were deprecated in
304 version 2.1, but this version removes the default ``idna`` dependency as
305 well. If you still need this deprecated path please install cryptography
306 with the ``idna`` extra: ``pip install cryptography[idna]``.
Paul Kehrer3c682502018-12-10 12:13:31 +0800307* **BACKWARDS INCOMPATIBLE:** The minimum supported PyPy version is now 5.4.
Paul Kehrer610ad372019-01-17 18:24:14 -0600308* Numerous classes and functions have been updated to allow :term:`bytes-like`
309 types for keying material and passwords, including symmetric algorithms, AEAD
310 ciphers, KDFs, loading asymmetric keys, and one time password classes.
Paul Kehrer83aa36d2019-01-22 09:35:05 -0600311* Updated Windows, macOS, and ``manylinux1`` wheels to be compiled with
312 OpenSSL 1.1.1a.
Paul Kehrerd67fa822018-11-12 21:41:26 -0500313* Added support for :class:`~cryptography.hazmat.primitives.hashes.SHA512_224`
314 and :class:`~cryptography.hazmat.primitives.hashes.SHA512_256` when using
315 OpenSSL 1.1.1.
Paul Kehrer3065e162018-11-22 23:42:42 +0800316* Added support for :class:`~cryptography.hazmat.primitives.hashes.SHA3_224`,
317 :class:`~cryptography.hazmat.primitives.hashes.SHA3_256`,
318 :class:`~cryptography.hazmat.primitives.hashes.SHA3_384`, and
319 :class:`~cryptography.hazmat.primitives.hashes.SHA3_512` when using OpenSSL
320 1.1.1.
Paul Kehrerf86696f2018-12-22 15:54:53 -0600321* Added support for :doc:`/hazmat/primitives/asymmetric/x448` when using
322 OpenSSL 1.1.1.
Paul Kehrer5fe88ea2019-01-19 00:52:43 -0600323* Added support for :class:`~cryptography.hazmat.primitives.hashes.SHAKE128`
324 and :class:`~cryptography.hazmat.primitives.hashes.SHAKE256` when using
325 OpenSSL 1.1.1.
Paul Kehrere4e7b892018-11-29 11:51:38 +0800326* Added initial support for parsing PKCS12 files with
327 :func:`~cryptography.hazmat.primitives.serialization.pkcs12.load_key_and_certificates`.
Paul Kehrereb3e2e02018-12-01 12:15:20 +0800328* Added support for :class:`~cryptography.x509.IssuingDistributionPoint`.
Alex Gaynorbef31142019-01-18 13:14:59 -0500329* Added ``rfc4514_string()`` method to
330 :meth:`x509.Name <cryptography.x509.Name.rfc4514_string>`,
331 :meth:`x509.RelativeDistinguishedName
332 <cryptography.x509.RelativeDistinguishedName.rfc4514_string>`, and
333 :meth:`x509.NameAttribute <cryptography.x509.NameAttribute.rfc4514_string>`
334 to format the name or component an :rfc:`4514` Distinguished Name string.
Paul Kehrer4c5740a2018-12-12 08:08:27 +0800335* Added
336 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.from_encoded_point`,
337 which immediately checks if the point is on the curve and supports compressed
Paul Kehrer89e1e342018-12-12 10:35:27 +0800338 points. Deprecated the previous method
339 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.from_encoded_point`.
Paul Kehrer60f264b2019-01-10 15:37:03 -0800340* Added :attr:`~cryptography.x509.ocsp.OCSPResponse.signature_hash_algorithm`
341 to ``OCSPResponse``.
Paul Kehrerc6c25c22019-01-14 21:50:17 -0600342* Updated :doc:`/hazmat/primitives/asymmetric/x25519` support to allow
343 additional serialization methods. Calling
344 :meth:`~cryptography.hazmat.primitives.asymmetric.x25519.X25519PublicKey.public_bytes`
345 with no arguments has been deprecated.
Paul Kehrera07b1f52019-01-20 15:02:59 -0600346* Added support for encoding compressed and uncompressed points via
Paul Kehrer2de450a2019-01-20 17:24:41 -0600347 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.public_bytes`. Deprecated the previous method
348 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.encode_point`.
Paul Kehrer89e1e342018-12-12 10:35:27 +0800349
Paul Kehrerd67fa822018-11-12 21:41:26 -0500350
Paul Kehrercd4de3c2018-11-21 11:42:41 +0800351.. _v2-4-2:
352
3532.4.2 - 2018-11-21
354~~~~~~~~~~~~~~~~~~
355
356* Updated Windows, macOS, and ``manylinux1`` wheels to be compiled with
357 OpenSSL 1.1.0j.
358
Alex Gaynordb084662018-11-11 19:50:10 -0500359.. _v2-4-1:
360
3612.4.1 - 2018-11-11
362~~~~~~~~~~~~~~~~~~
363
364* Fixed a build breakage in our ``manylinux1`` wheels.
365
Paul Kehrer39a3efb2018-07-19 06:35:38 +0800366.. _v2-4:
367
Paul Kehrer5e52fdc2018-11-11 17:48:23 -05003682.4 - 2018-11-11
369~~~~~~~~~~~~~~~~
Paul Kehrer39a3efb2018-07-19 06:35:38 +0800370
Paul Kehrer55552412018-10-20 09:02:19 +0800371* **BACKWARDS INCOMPATIBLE:** Dropped support for LibreSSL 2.4.x.
Alex Gaynor5a54f1a2018-08-31 10:46:20 -0400372* Deprecated OpenSSL 1.0.1 support. OpenSSL 1.0.1 is no longer supported by
373 the OpenSSL project. At this time there is no time table for dropping
374 support, however we strongly encourage all users to upgrade or install
375 ``cryptography`` from a wheel.
Alex Gaynor3d271fa2018-08-16 20:08:05 -0400376* Added initial :doc:`OCSP </x509/ocsp>` support.
Alex Gaynordd6b78b2018-08-31 18:25:52 -0500377* Added support for :class:`~cryptography.x509.PrecertPoison`.
Alex Gaynor3d271fa2018-08-16 20:08:05 -0400378
Paul Kehrerc11f4242018-08-14 13:25:23 -0500379.. _v2-3-1:
380
3812.3.1 - 2018-08-14
382~~~~~~~~~~~~~~~~~~
383
384* Updated Windows, macOS, and ``manylinux1`` wheels to be compiled with
385 OpenSSL 1.1.0i.
386
Paul Kehrerb6400af2018-03-18 23:30:18 -0400387.. _v2-3:
388
Paul Kehrer0a846e22018-07-18 19:12:46 +08003892.3 - 2018-07-18
390~~~~~~~~~~~~~~~~
Paul Kehrerb6400af2018-03-18 23:30:18 -0400391
Paul Kehrerd4378e42018-07-17 21:49:03 +0800392* **SECURITY ISSUE:**
393 :meth:`~cryptography.hazmat.primitives.ciphers.AEADDecryptionContext.finalize_with_tag`
394 allowed tag truncation by default which can allow tag forgery in some cases.
395 The method now enforces the ``min_tag_length`` provided to the
396 :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` constructor.
Paul Kehrer61114a22018-07-19 06:35:55 +0800397 *CVE-2018-10903*
Paul Kehrer4ee1cb92018-06-27 20:07:14 -0700398* Added support for Python 3.7.
Paul Kehrer36ad98f2018-05-12 11:57:32 -0400399* Added :meth:`~cryptography.fernet.Fernet.extract_timestamp` to get the
400 authenticated timestamp of a :doc:`Fernet </fernet>` token.
Paul Kehrerafdbfb12018-05-25 05:45:25 +0800401* Support for Python 2.7.x without ``hmac.compare_digest`` has been deprecated.
402 We will require Python 2.7.7 or higher (or 2.7.6 on Ubuntu) in the next
403 ``cryptography`` release.
Paul Kehrer611fa5a2018-05-31 11:39:12 +0800404* Fixed multiple issues preventing ``cryptography`` from compiling against
405 LibreSSL 2.7.x.
Paul Kehrer5d187402018-07-16 20:49:51 +0530406* Added
407 :class:`~cryptography.x509.CertificateRevocationList.get_revoked_certificate_by_serial_number`
408 for quick serial number searches in CRLs.
Marti Raudsepp9e1873a2018-07-09 16:11:18 +0300409* The :class:`~cryptography.x509.RelativeDistinguishedName` class now
410 preserves the order of attributes. Duplicate attributes now raise an error
411 instead of silently discarding duplicates.
Alex Gaynorb09b9ec2018-07-15 20:48:57 -0400412* :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap` and
413 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap_with_padding`
414 now raise :class:`~cryptography.hazmat.primitives.keywrap.InvalidUnwrap` if
415 the wrapped key is an invalid length, instead of ``ValueError``.
Paul Kehrer36ad98f2018-05-12 11:57:32 -0400416
Paul Kehrer67ddb8f2018-03-27 13:34:39 -0400417.. _v2-2-2:
418
4192.2.2 - 2018-03-27
420~~~~~~~~~~~~~~~~~~
421
422* Updated Windows, macOS, and ``manylinux1`` wheels to be compiled with
423 OpenSSL 1.1.0h.
424
Alex Gaynora1e9ddc2018-03-20 22:05:01 -0400425.. _v2-2-1:
426
4272.2.1 - 2018-03-20
428~~~~~~~~~~~~~~~~~~
429
430* Reverted a change to ``GeneralNames`` which prohibited having zero elements,
431 due to breakages.
432* Fixed a bug in
433 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap_with_padding`
434 that caused it to raise ``InvalidUnwrap`` when key length modulo 8 was
435 zero.
436
437
Paul Kehrer0d6831d2017-10-11 21:46:47 +0800438.. _v2-2:
439
Paul Kehrer4601fba2018-03-18 22:45:30 -04004402.2 - 2018-03-19
441~~~~~~~~~~~~~~~~
Paul Kehrer0d6831d2017-10-11 21:46:47 +0800442
Paul Kehrer4cf6e782017-10-12 06:06:01 +0800443* **BACKWARDS INCOMPATIBLE:** Support for Python 2.6 has been dropped.
Paul Kehrer858a4292018-01-06 17:55:27 -0600444* Resolved a bug in ``HKDF`` that incorrectly constrained output size.
Paul Kehrer17c8f122018-03-15 13:35:10 -0400445* Added :class:`~cryptography.hazmat.primitives.asymmetric.ec.BrainpoolP256R1`,
446 :class:`~cryptography.hazmat.primitives.asymmetric.ec.BrainpoolP384R1`, and
447 :class:`~cryptography.hazmat.primitives.asymmetric.ec.BrainpoolP512R1` to
448 support inter-operating with systems like German smart meters.
Chris Wolfeaf6f9902017-10-18 14:23:53 -0500449* Added token rotation support to :doc:`Fernet </fernet>` with
450 :meth:`~cryptography.fernet.MultiFernet.rotate`.
Paul Kehrerd6ad9fd2018-02-05 16:47:21 +0800451* Fixed a memory leak in
452 :func:`~cryptography.hazmat.primitives.asymmetric.ec.derive_private_key`.
Paul Kehrercd6cf4a2018-03-18 22:06:13 -0400453* Added support for AES key wrapping with padding via
454 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_wrap_with_padding`
455 and
456 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap_with_padding`
457 .
Paul Kehrer4601fba2018-03-18 22:45:30 -0400458* Allow loading DSA keys with 224 bit ``q``.
Christian Heimes765e7712017-08-03 16:08:09 +0200459
Paul Kehrer66460d82017-11-30 10:21:33 +0800460.. _v2-1-4:
461
4622.1.4 - 2017-11-29
463~~~~~~~~~~~~~~~~~~
464
465* Added ``X509_up_ref`` for an upcoming ``pyOpenSSL`` release.
466
Alex Gaynorb1f9a512017-11-02 16:09:07 -0400467.. _v2-1-3:
468
4692.1.3 - 2017-11-02
470~~~~~~~~~~~~~~~~~~
471
472* Updated Windows, macOS, and ``manylinux1`` wheels to be compiled with
473 OpenSSL 1.1.0g.
474
Alex Gaynord3b9af62017-10-24 12:23:16 -0400475.. _v2-1-2:
476
4772.1.2 - 2017-10-24
478~~~~~~~~~~~~~~~~~~
479
480* Corrected a bug with the ``manylinux1`` wheels where OpenSSL's stack was
481 marked executable.
482
Paul Kehrer0a42f4e2017-10-12 19:35:39 +0800483.. _v2-1-1:
484
4852.1.1 - 2017-10-12
486~~~~~~~~~~~~~~~~~~
487
488* Fixed support for install with the system ``pip`` on Ubuntu 16.04.
489
Christian Heimes765e7712017-08-03 16:08:09 +0200490.. _v2-1:
491
Paul Kehrer0ed0e7e2017-10-11 20:31:09 +08004922.1 - 2017-10-11
493~~~~~~~~~~~~~~~~
Alex Gaynor9c521ee2017-07-17 14:59:03 -0400494
Alex Gaynordd567cb2017-09-30 21:22:07 -0400495* **FINAL DEPRECATION** Python 2.6 support is deprecated, and will be removed
496 in the next release of ``cryptography``.
Paul Kehrer0d6aaf42017-07-20 13:04:25 +0200497* **BACKWARDS INCOMPATIBLE:** ``Whirlpool``, ``RIPEMD160``, and
498 ``UnsupportedExtension`` have been removed in accordance with our
499 :doc:`/api-stability` policy.
Christian Heimesa0022ea2017-10-17 04:56:01 +0200500* **BACKWARDS INCOMPATIBLE:**
501 :attr:`DNSName.value <cryptography.x509.DNSName.value>`,
502 :attr:`RFC822Name.value <cryptography.x509.RFC822Name.value>`, and
503 :attr:`UniformResourceIdentifier.value
504 <cryptography.x509.UniformResourceIdentifier.value>`
505 will now return an :term:`A-label` string when parsing a certificate
506 containing an internationalized domain name (IDN) or if the caller passed
507 a :term:`U-label` to the constructor. See below for additional deprecations
508 related to this change.
Alex Gaynor4c41ab02017-08-23 20:33:01 -0400509* Installing ``cryptography`` now requires ``pip`` 6 or newer.
Paul Kehrere885bd62017-10-11 20:29:23 +0800510* Deprecated passing :term:`U-label` strings to the
511 :class:`~cryptography.x509.DNSName`,
512 :class:`~cryptography.x509.UniformResourceIdentifier`, and
513 :class:`~cryptography.x509.RFC822Name` constructors. Instead, users should
514 pass values as :term:`A-label` strings with ``idna`` encoding if necessary.
515 This change will not affect anyone who is not processing internationalized
516 domains.
Paul Kehrer62ebb422017-09-28 23:46:49 +0800517* Added support for
518 :class:`~cryptography.hazmat.primitives.ciphers.algorithms.ChaCha20`. In
519 most cases users should choose
520 :class:`~cryptography.hazmat.primitives.ciphers.aead.ChaCha20Poly1305`
521 rather than using this unauthenticated form.
Paul Kehrerf944c402017-08-12 08:52:55 -0500522* Added :meth:`~cryptography.x509.CertificateRevocationList.is_signature_valid`
523 to :class:`~cryptography.x509.CertificateRevocationList`.
Paul Kehrere2c1c0f2017-08-22 09:37:32 -0700524* Support :class:`~cryptography.hazmat.primitives.hashes.BLAKE2b` and
525 :class:`~cryptography.hazmat.primitives.hashes.BLAKE2s` with
526 :class:`~cryptography.hazmat.primitives.hmac.HMAC`.
Paul Kehrera397d752017-10-02 10:03:20 +0800527* Added support for
528 :class:`~cryptography.hazmat.primitives.ciphers.modes.XTS` mode for
529 AES.
Paul Kehrerd4bde9c2017-09-09 07:03:50 +0800530* Added support for using labels with
531 :class:`~cryptography.hazmat.primitives.asymmetric.padding.OAEP` when using
532 OpenSSL 1.0.2 or greater.
Paul Kehrer72c92f52017-09-26 10:23:24 +0800533* Improved compatibility with NSS when issuing certificates from an issuer
534 that has a subject with non-``UTF8String`` string types.
Paul Kehrer5e3cc982017-09-22 21:29:36 +0800535* Add support for the :class:`~cryptography.x509.DeltaCRLIndicator` extension.
Paul Kehrer5d669662017-09-11 09:16:34 +0800536* Add support for the :class:`~cryptography.x509.TLSFeature`
537 extension. This is commonly used for enabling ``OCSP Must-Staple`` in
538 certificates.
Paul Kehrerb76bcf82017-09-24 08:44:12 +0800539* Add support for the :class:`~cryptography.x509.FreshestCRL` extension.
Paul Kehrer0d6aaf42017-07-20 13:04:25 +0200540
Paul Kehrerad294c62017-08-03 20:16:32 -0500541.. _v2-0-3:
542
5432.0.3 - 2017-08-03
544~~~~~~~~~~~~~~~~~~
545
546* Fixed an issue with weak linking symbols when compiling on macOS
547 versions older than 10.12.
548
549
Christian Heimes765e7712017-08-03 16:08:09 +0200550.. _v2-0-2:
551
Paul Kehrer2bab0ac2017-07-27 06:03:27 -05005522.0.2 - 2017-07-27
553~~~~~~~~~~~~~~~~~~
554
555* Marked all symbols as hidden in the ``manylinux1`` wheel to avoid a
556 bug with symbol resolution in certain scenarios.
557
Christian Heimes765e7712017-08-03 16:08:09 +0200558
559.. _v2-0-1:
560
Paul Kehrerdce57f62017-07-26 19:18:55 -05005612.0.1 - 2017-07-26
562~~~~~~~~~~~~~~~~~~
563
564* Fixed a compilation bug affecting OpenBSD.
565* Altered the ``manylinux1`` wheels to statically link OpenSSL instead of
566 dynamically linking and bundling the shared object. This should resolve
567 crashes seen when using ``uwsgi`` or other binaries that link against
568 OpenSSL independently.
569* Fixed the stack level for the ``signer`` and ``verifier`` warnings.
570
Christian Heimes765e7712017-08-03 16:08:09 +0200571
572.. _v2-0:
573
Paul Kehrer9799e582017-07-17 16:38:15 +02005742.0 - 2017-07-17
575~~~~~~~~~~~~~~~~
Alex Gaynorb90e8d82017-05-29 23:10:39 -0400576
Paul Kehrere3a2fb22017-06-26 15:08:33 -1000577* **BACKWARDS INCOMPATIBLE:** Support for Python 3.3 has been dropped.
Paul Kehrer85675fc2017-07-01 13:02:37 -0500578* We now ship ``manylinux1`` wheels linked against OpenSSL 1.1.0f. These wheels
579 will be automatically used with most Linux distributions if you are running
580 the latest pip.
Paul Kehrer1a5d70e2017-06-03 17:11:55 -1000581* Deprecated the use of ``signer`` on
582 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`,
583 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`,
584 and
585 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey`
586 in favor of ``sign``.
587* Deprecated the use of ``verifier`` on
588 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`,
589 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`,
590 and
591 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey`
592 in favor of ``verify``.
Alex Gaynor6a0718f2017-06-04 13:36:58 -0400593* Added support for parsing
594 :class:`~cryptography.x509.certificate_transparency.SignedCertificateTimestamp`
595 objects from X.509 certificate extensions.
Paul Kehrer7e53d912017-06-07 18:08:57 -1000596* Added support for
597 :class:`~cryptography.hazmat.primitives.ciphers.aead.ChaCha20Poly1305`.
Paul Kehrer1a2e8172017-07-16 16:46:13 +0200598* Added support for
599 :class:`~cryptography.hazmat.primitives.ciphers.aead.AESCCM`.
Paul Kehrera2173582017-07-17 13:10:14 +0200600* Added
601 :class:`~cryptography.hazmat.primitives.ciphers.aead.AESGCM`, a "one shot"
602 API for AES GCM encryption.
Paul Kehrer3e357f72017-06-09 02:31:30 -1000603* Added support for :doc:`/hazmat/primitives/asymmetric/x25519`.
Paul Kehrer361a9fc2017-06-24 10:12:04 -1000604* Added support for serializing and deserializing Diffie-Hellman parameters
605 with
606 :func:`~cryptography.hazmat.primitives.serialization.load_pem_parameters`,
607 :func:`~cryptography.hazmat.primitives.serialization.load_der_parameters`,
608 and
Paul Kehrer2748e2e2017-06-24 13:20:15 -1000609 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHParameters.parameter_bytes`
Paul Kehrer361a9fc2017-06-24 10:12:04 -1000610 .
Alex Gaynor0c9aed92017-07-08 21:50:01 -0400611* The ``extensions`` attribute on :class:`~cryptography.x509.Certificate`,
612 :class:`~cryptography.x509.CertificateSigningRequest`,
613 :class:`~cryptography.x509.CertificateRevocationList`, and
614 :class:`~cryptography.x509.RevokedCertificate` now caches the computed
615 ``Extensions`` object. There should be no performance change, just a
616 performance improvement for programs accessing the ``extensions`` attribute
617 multiple times.
Paul Kehrer1a5d70e2017-06-03 17:11:55 -1000618
Christian Heimes765e7712017-08-03 16:08:09 +0200619
620.. _v1-9:
621
Paul Kehrer23ead432017-05-29 21:10:46 -05006221.9 - 2017-05-29
623~~~~~~~~~~~~~~~~
Paul Kehrerd0aad452017-03-10 08:36:18 -0400624
Paul Kehrera55cc3b2017-05-27 18:00:44 -0500625* **BACKWARDS INCOMPATIBLE:** Elliptic Curve signature verification no longer
Alex Gaynor5ca99462017-05-10 23:11:30 -0400626 returns ``True`` on success. This brings it in line with the interface's
627 documentation, and our intent. The correct way to use
628 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.verify`
629 has always been to check whether or not
630 :class:`~cryptography.exceptions.InvalidSignature` was raised.
Alex Gaynor2240ba22017-05-20 13:23:15 -0700631* **BACKWARDS INCOMPATIBLE:** Dropped support for macOS 10.7 and 10.8.
Alex Gaynor6091e112017-05-23 20:31:03 -0700632* **BACKWARDS INCOMPATIBLE:** The minimum supported PyPy version is now 5.3.
Paul Kehrer66e1eb22017-05-25 15:56:57 -0500633* Python 3.3 support has been deprecated, and will be removed in the next
Alex Gaynordb511142017-05-22 20:53:47 -0700634 ``cryptography`` release.
Alex Gaynor2240ba22017-05-20 13:23:15 -0700635* Add support for providing ``tag`` during
636 :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` finalization via
637 :meth:`~cryptography.hazmat.primitives.ciphers.AEADDecryptionContext.finalize_with_tag`.
Paul Kehrer6fcbebd2017-05-20 12:04:06 -0700638* Fixed an issue preventing ``cryptography`` from compiling against
639 LibreSSL 2.5.x.
Paul Kehrer416f5262017-05-23 23:38:59 -0700640* Added
641 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.key_size`
642 and
643 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey.key_size`
644 as convenience methods for determining the bit size of a secret scalar for
645 the curve.
Alex Gaynord08ddd52017-05-20 09:01:54 -0700646* Accessing an unrecognized extension marked critical on an X.509 object will
647 no longer raise an ``UnsupportedExtension`` exception, instead an
648 :class:`~cryptography.x509.UnrecognizedExtension` object will be returned.
649 This behavior was based on a poor reading of the RFC, unknown critical
650 extensions only need to be rejected on certificate verification.
Paul Kehrer51032352017-05-20 10:09:02 -0700651* The CommonCrypto backend has been removed.
Paul Kehrera4668c62017-05-20 13:25:47 -0700652* MultiBackend has been removed.
Paul Kehrer70e8f902017-05-23 16:55:19 -0700653* ``Whirlpool`` and ``RIPEMD160`` have been deprecated.
Paul Kehrer5fb10212017-05-02 12:04:53 -0500654
Christian Heimes765e7712017-08-03 16:08:09 +0200655
656.. _v1-8-2:
657
Paul Kehrer139b25f2017-05-26 06:32:15 -05006581.8.2 - 2017-05-26
659~~~~~~~~~~~~~~~~~~
660
661* Fixed a compilation bug affecting OpenSSL 1.1.0f.
662* Updated Windows and macOS wheels to be compiled against OpenSSL 1.1.0f.
Paul Kehrerd0aad452017-03-10 08:36:18 -0400663
Christian Heimes765e7712017-08-03 16:08:09 +0200664
665.. _v1-8-1:
666
Paul Kehrerd0aad452017-03-10 08:36:18 -04006671.8.1 - 2017-03-10
668~~~~~~~~~~~~~~~~~~
669
670* Fixed macOS wheels to properly link against 1.1.0 rather than 1.0.2.
671
Christian Heimes765e7712017-08-03 16:08:09 +0200672
673.. _v1-8:
674
Paul Kehrer928e4ee2017-03-09 22:43:42 -04006751.8 - 2017-03-09
676~~~~~~~~~~~~~~~~
Paul Kehrerfad63fe2016-12-12 16:41:26 -0600677
Alex Gaynor31b5d782016-12-23 12:20:36 -0500678* Added support for Python 3.6.
Alex Gaynor5a059022017-02-11 10:05:34 -0500679* Windows and macOS wheels now link against OpenSSL 1.1.0.
Paul Kehrere9dbbd82017-03-09 18:43:40 -0400680* macOS wheels are no longer universal. This change significantly shrinks the
681 size of the wheels. Users on macOS 32-bit Python (if there are any) should
682 migrate to 64-bit or build their own packages.
Ofek Lev0e6a1292017-02-08 00:09:41 -0500683* Changed ASN.1 dependency from ``pyasn1`` to ``asn1crypto`` resulting in a
684 general performance increase when encoding/decoding ASN.1 structures. Also,
685 the ``pyasn1_modules`` test dependency is no longer required.
Paul Kehrer9b34ca92017-02-16 22:20:38 -0600686* Added support for
687 :meth:`~cryptography.hazmat.primitives.ciphers.CipherContext.update_into` on
688 :class:`~cryptography.hazmat.primitives.ciphers.CipherContext`.
Aviv Palivoda1c7bd662017-02-08 06:38:42 +0200689* Added
690 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKeyWithSerialization.private_bytes`
691 to
692 :class:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKeyWithSerialization`.
Aviv Palivoda1c7bd662017-02-08 06:38:42 +0200693* Added
Paul Kehrer2748e2e2017-06-24 13:20:15 -1000694 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPublicKey.public_bytes`
Aviv Palivoda1c7bd662017-02-08 06:38:42 +0200695 to
Paul Kehrer2748e2e2017-06-24 13:20:15 -1000696 :class:`~cryptography.hazmat.primitives.asymmetric.dh.DHPublicKey`.
Paul Kehrer7a130852017-02-09 05:55:34 +0800697* :func:`~cryptography.hazmat.primitives.serialization.load_pem_private_key`
698 and
699 :func:`~cryptography.hazmat.primitives.serialization.load_der_private_key`
700 now require that ``password`` must be bytes if provided. Previously this
701 was documented but not enforced.
Paul Kehrer20fe2be2017-03-09 13:06:51 -0400702* Added support for subgroup order in :doc:`/hazmat/primitives/asymmetric/dh`.
Aviv Palivoda1c7bd662017-02-08 06:38:42 +0200703
Christian Heimes765e7712017-08-03 16:08:09 +0200704
705.. _v1-7-2:
706
Paul Kehrerc7a2e722017-01-28 17:45:57 +09007071.7.2 - 2017-01-27
708~~~~~~~~~~~~~~~~~~
709
710* Updated Windows and macOS wheels to be compiled against OpenSSL 1.0.2k.
711
Christian Heimes765e7712017-08-03 16:08:09 +0200712
713.. _v1-7-1:
714
Paul Kehrerc8f47ad2016-12-14 19:26:06 -06007151.7.1 - 2016-12-13
716~~~~~~~~~~~~~~~~~~
717
718* Fixed a regression in ``int_from_bytes`` where it failed to accept
719 ``bytearray``.
Paul Kehrerfad63fe2016-12-12 16:41:26 -0600720
Christian Heimes765e7712017-08-03 16:08:09 +0200721
722.. _v1-7:
723
Paul Kehrer5df72e82016-12-12 12:06:09 -06007241.7 - 2016-12-12
725~~~~~~~~~~~~~~~~
Paul Kehrer08585912016-11-22 20:04:40 +0800726
Alex Gaynor29b2ebc2016-11-22 09:25:17 -0500727* Support for OpenSSL 1.0.0 has been removed. Users on older version of OpenSSL
728 will need to upgrade.
Aviv Palivoda495f21a2016-11-25 18:51:28 +0200729* Added support for Diffie-Hellman key exchange using
Alex Gaynora9b86902017-05-24 15:01:14 -0700730 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKey.exchange`.
Paul Kehrera22964a2016-12-10 09:15:41 -0600731* The OS random engine for OpenSSL has been rewritten to improve compatibility
732 with embedded Python and other edge cases. More information about this change
733 can be found in the
734 `pull request <https://github.com/pyca/cryptography/pull/3229>`_.
Paul Kehrer08585912016-11-22 20:04:40 +0800735
Christian Heimes765e7712017-08-03 16:08:09 +0200736
737.. _v1-6:
738
Paul Kehrer4a2f36b2016-11-22 10:50:28 +08007391.6 - 2016-11-22
740~~~~~~~~~~~~~~~~
Alex Gaynorf25e63d2016-08-26 20:55:44 -0400741
Alex Gaynor2e8725d2016-08-29 21:40:19 -0400742* Deprecated support for OpenSSL 1.0.0. Support will be removed in
743 ``cryptography`` 1.7.
Paul Kehrer500850b2016-11-20 00:40:16 +0800744* Replaced the Python-based OpenSSL locking callbacks with a C version to fix
745 a potential deadlock that could occur if a garbage collection cycle occurred
746 while inside the lock.
Paul Kehrer306ce512016-08-29 09:36:09 +0800747* Added support for :class:`~cryptography.hazmat.primitives.hashes.BLAKE2b` and
748 :class:`~cryptography.hazmat.primitives.hashes.BLAKE2s` when using OpenSSL
749 1.1.0.
Paul Kehrerc7b29b82016-09-01 09:17:21 +0800750* Added
751 :attr:`~cryptography.x509.Certificate.signature_algorithm_oid` support to
752 :class:`~cryptography.x509.Certificate`.
753* Added
754 :attr:`~cryptography.x509.CertificateSigningRequest.signature_algorithm_oid`
755 support to :class:`~cryptography.x509.CertificateSigningRequest`.
756* Added
757 :attr:`~cryptography.x509.CertificateRevocationList.signature_algorithm_oid`
758 support to :class:`~cryptography.x509.CertificateRevocationList`.
Terry Chiad8a27df2016-09-01 23:39:57 +0800759* Added support for :class:`~cryptography.hazmat.primitives.kdf.scrypt.Scrypt`
760 when using OpenSSL 1.1.0.
Paul Kehrer99777862016-11-15 07:34:55 +0800761* Added a workaround to improve compatibility with Python application bundling
762 tools like ``PyInstaller`` and ``cx_freeze``.
Paul Kehrer8b89bcc2016-09-03 11:31:43 -0500763* Added support for generating a
764 :meth:`~cryptography.x509.random_serial_number`.
Paul Kehrer3feeec82016-10-01 07:12:27 -0500765* Added support for encoding ``IPv4Network`` and ``IPv6Network`` in X.509
766 certificates for use with :class:`~cryptography.x509.NameConstraints`.
Paul Kehrer500850b2016-11-20 00:40:16 +0800767* Added :meth:`~cryptography.x509.Name.public_bytes` to
768 :class:`~cryptography.x509.Name`.
Fraser Tweedale02467dd2016-11-07 15:54:04 +1000769* Added :class:`~cryptography.x509.RelativeDistinguishedName`
770* :class:`~cryptography.x509.DistributionPoint` now accepts
771 :class:`~cryptography.x509.RelativeDistinguishedName` for
772 :attr:`~cryptography.x509.DistributionPoint.relative_name`.
773 Deprecated use of :class:`~cryptography.x509.Name` as
774 :attr:`~cryptography.x509.DistributionPoint.relative_name`.
Fraser Tweedale01ee6f52016-11-12 01:28:56 +1000775* :class:`~cryptography.x509.Name` now accepts an iterable of
776 :class:`~cryptography.x509.RelativeDistinguishedName`. RDNs can
777 be accessed via the :attr:`~cryptography.x509.Name.rdns`
778 attribute. When constructed with an iterable of
779 :class:`~cryptography.x509.NameAttribute`, each attribute becomes
780 a single-valued RDN.
Ofek Levc41b9d42016-11-11 20:07:11 -0500781* Added
782 :func:`~cryptography.hazmat.primitives.asymmetric.ec.derive_private_key`.
Paul Kehrerec7fc462016-11-21 07:55:18 +0800783* Added support for signing and verifying RSA, DSA, and ECDSA signatures with
Paul Kehrerf555c742016-11-20 22:48:10 +0800784 :class:`~cryptography.hazmat.primitives.asymmetric.utils.Prehashed`
785 digests.
Terry Chiad8a27df2016-09-01 23:39:57 +0800786
Christian Heimes765e7712017-08-03 16:08:09 +0200787
788.. _v1-5-3:
789
Alex Gaynorb94cacf2016-11-06 01:27:20 -04007901.5.3 - 2016-11-05
791~~~~~~~~~~~~~~~~~~
792
793* **SECURITY ISSUE**: Fixed a bug where ``HKDF`` would return an empty
794 byte-string if used with a ``length`` less than ``algorithm.digest_size``.
Alex Gaynorfb0e7192016-11-09 19:51:09 -0500795 Credit to **Markus Döring** for reporting the issue. *CVE-2016-9243*
Alex Gaynorb94cacf2016-11-06 01:27:20 -0400796
Christian Heimes765e7712017-08-03 16:08:09 +0200797
798.. _v1-5-2:
799
Alex Gaynorb4c087a2016-09-26 18:11:59 -04008001.5.2 - 2016-09-26
801~~~~~~~~~~~~~~~~~~
802
803* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2j.
Paul Kehrer306ce512016-08-29 09:36:09 +0800804
Christian Heimes765e7712017-08-03 16:08:09 +0200805
806.. _v1-5-1:
807
Paul Kehrer08652e92016-09-22 22:47:50 -05008081.5.1 - 2016-09-22
809~~~~~~~~~~~~~~~~~~
810
811* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2i.
812* Resolved a ``UserWarning`` when used with cffi 1.8.3.
813* Fixed a memory leak in name creation with X.509.
814* Added a workaround for old versions of setuptools.
815* Fixed an issue preventing ``cryptography`` from compiling against
816 OpenSSL 1.0.2i.
817
818
Christian Heimes765e7712017-08-03 16:08:09 +0200819
820.. _v1-5:
821
Paul Kehrerc0ee7382016-08-26 22:59:49 +08008221.5 - 2016-08-26
823~~~~~~~~~~~~~~~~
Paul Kehrer67ea4442016-06-04 12:00:54 -0700824
Alex Gaynor17097bf2016-06-27 22:29:38 -0400825* Added
826 :func:`~cryptography.hazmat.primitives.asymmetric.padding.calculate_max_pss_salt_length`.
Aviv Palivodaf67429b2016-06-30 21:42:46 +0300827* Added "one shot"
828 :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey.sign`
829 and
830 :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey.verify`
831 methods to DSA keys.
Aviv Palivoda2120a8e2016-07-02 19:43:06 +0300832* Added "one shot"
833 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey.sign`
834 and
835 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.verify`
836 methods to ECDSA keys.
Maximilian Hils679a9142016-07-31 16:43:19 -0700837* Switched back to the older callback model on Python 3.5 in order to mitigate
838 the locking callback problem with OpenSSL <1.1.0.
InvalidInterrupt8e66ca62016-08-16 19:39:31 -0700839* :class:`~cryptography.x509.CertificateBuilder`,
840 :class:`~cryptography.x509.CertificateRevocationListBuilder`, and
841 :class:`~cryptography.x509.RevokedCertificateBuilder` now accept timezone
842 aware ``datetime`` objects as method arguments
Paul Kehrer07ea3cd2016-08-26 21:48:24 +0800843* ``cryptography`` now supports OpenSSL 1.1.0 as a compilation target.
Alex Gaynor17097bf2016-06-27 22:29:38 -0400844
Paul Kehrer67ea4442016-06-04 12:00:54 -0700845
Christian Heimes765e7712017-08-03 16:08:09 +0200846
847.. _v1-4:
848
Paul Kehrer69365ce2016-06-04 09:57:11 -07008491.4 - 2016-06-04
850~~~~~~~~~~~~~~~~
Alex Gaynorf8c75fc2016-03-18 19:54:45 -0400851
Paul Kehrer69365ce2016-06-04 09:57:11 -0700852* Support for OpenSSL 0.9.8 has been removed. Users on older versions of
853 OpenSSL will need to upgrade.
Paul Kehrercb0fa2e2016-05-29 22:37:33 -0500854* Added :class:`~cryptography.hazmat.primitives.kdf.kbkdf.KBKDFHMAC`.
Alex Gaynor94989292016-06-03 13:04:26 -0700855* Added support for ``OpenSSH`` public key serialization.
Paul Kehrer69365ce2016-06-04 09:57:11 -0700856* Added support for SHA-2 in RSA
857 :class:`~cryptography.hazmat.primitives.asymmetric.padding.OAEP` when using
858 OpenSSL 1.0.2 or greater.
859* Added "one shot"
860 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey.sign`
861 and
862 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey.verify`
863 methods to RSA keys.
Alex Gaynor401ac6f2017-02-17 08:23:22 -0500864* Deprecated the ``serial`` attribute on
865 :class:`~cryptography.x509.Certificate`, in favor of
866 :attr:`~cryptography.x509.Certificate.serial_number`.
Paul Kehrer69365ce2016-06-04 09:57:11 -0700867
Alex Gaynorf8c75fc2016-03-18 19:54:45 -0400868
Christian Heimes765e7712017-08-03 16:08:09 +0200869
870.. _v1-3-4:
871
Alex Gaynor57515152016-06-02 20:53:52 -07008721.3.4 - 2016-06-03
873~~~~~~~~~~~~~~~~~~
874
875* Added another OpenSSL function to the bindings to support an upcoming
876 ``pyOpenSSL`` release.
877
878
Christian Heimes765e7712017-08-03 16:08:09 +0200879
880.. _v1-3-3:
881
Alex Gaynor57515152016-06-02 20:53:52 -07008821.3.3 - 2016-06-02
883~~~~~~~~~~~~~~~~~~
884
885* Added two new OpenSSL functions to the bindings to support an upcoming
886 ``pyOpenSSL`` release.
887
Christian Heimes765e7712017-08-03 16:08:09 +0200888
889.. _v1-3-2:
890
Paul Kehrerbb8d69a2016-05-04 13:33:20 -05008911.3.2 - 2016-05-04
892~~~~~~~~~~~~~~~~~~
893
894* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2h.
895* Fixed an issue preventing ``cryptography`` from compiling against
896 LibreSSL 2.3.x.
897
Christian Heimes765e7712017-08-03 16:08:09 +0200898
899.. _v1-3-1:
900
Paul Kehrer81f48962016-03-21 17:46:53 -04009011.3.1 - 2016-03-21
902~~~~~~~~~~~~~~~~~~
903
904* Fixed a bug that caused an ``AttributeError`` when using ``mock`` to patch
905 some ``cryptography`` modules.
906
Christian Heimes765e7712017-08-03 16:08:09 +0200907
908.. _v1-3:
909
Paul Kehrerc9694612016-03-17 20:31:44 -04009101.3 - 2016-03-18
911~~~~~~~~~~~~~~~~
Paul Kehrerac904e32016-01-08 07:53:25 -0800912
Cédric Krierbf0f4642016-02-26 18:40:20 +0100913* Added support for padding ANSI X.923 with
914 :class:`~cryptography.hazmat.primitives.padding.ANSIX923`.
Alex Gaynorbe6dd9b2016-01-22 17:12:14 -0500915* Deprecated support for OpenSSL 0.9.8. Support will be removed in
916 ``cryptography`` 1.4.
Paul Kehrerdba49b92016-03-13 20:15:53 -0400917* Added support for the :class:`~cryptography.x509.PolicyConstraints`
918 X.509 extension including both parsing and generation using
919 :class:`~cryptography.x509.CertificateBuilder` and
920 :class:`~cryptography.x509.CertificateSigningRequestBuilder`.
Paul Kehrer15732122016-03-06 20:58:26 -0430921* Added :attr:`~cryptography.x509.CertificateSigningRequest.is_signature_valid`
922 to :class:`~cryptography.x509.CertificateSigningRequest`.
Alex Gaynoraf503662016-03-05 10:40:50 -0500923* Fixed an intermittent ``AssertionError`` when performing an RSA decryption on
924 an invalid ciphertext, ``ValueError`` is now correctly raised in all cases.
Paul Kehrer61ff3562016-03-11 22:51:27 -0400925* Added
926 :meth:`~cryptography.x509.AuthorityKeyIdentifier.from_issuer_subject_key_identifier`.
Alex Gaynorbe6dd9b2016-01-22 17:12:14 -0500927
Christian Heimes765e7712017-08-03 16:08:09 +0200928
929.. _v1-2-3:
930
Alex Gaynor287ab1b2016-03-01 22:15:55 -05009311.2.3 - 2016-03-01
932~~~~~~~~~~~~~~~~~~
933
934* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2g.
935
Christian Heimes765e7712017-08-03 16:08:09 +0200936
937.. _v1-2-2:
938
Paul Kehrer2c6b8d02016-01-29 13:36:40 -06009391.2.2 - 2016-01-29
940~~~~~~~~~~~~~~~~~~
941
942* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2f.
943
Christian Heimes765e7712017-08-03 16:08:09 +0200944
945.. _v1-2-1:
946
Paul Kehrer56ea7b82016-01-08 11:53:20 -08009471.2.1 - 2016-01-08
948~~~~~~~~~~~~~~~~~~
949
950* Reverts a change to an OpenSSL ``EVP_PKEY`` object that caused errors with
951 ``pyOpenSSL``.
952
Christian Heimes765e7712017-08-03 16:08:09 +0200953
954.. _v1-2:
955
Paul Kehrer577f95e2016-01-07 21:56:53 -08009561.2 - 2016-01-08
957~~~~~~~~~~~~~~~~
Paul Kehrerc5b430f2015-10-29 07:52:35 +0900958
Paul Kehrer49bb7562015-12-25 16:17:40 -0600959* **BACKWARDS INCOMPATIBLE:**
960 :class:`~cryptography.x509.RevokedCertificate`
961 :attr:`~cryptography.x509.RevokedCertificate.extensions` now uses extension
962 classes rather than returning raw values inside the
963 :class:`~cryptography.x509.Extension`
964 :attr:`~cryptography.x509.Extension.value`. The new classes
965 are:
966
967 * :class:`~cryptography.x509.CertificateIssuer`
Paul Kehrer7058ece2015-12-25 22:28:29 -0600968 * :class:`~cryptography.x509.CRLReason`
Paul Kehrer23c0bbc2015-12-25 22:35:19 -0600969 * :class:`~cryptography.x509.InvalidityDate`
Paul Kehrerf23722a2015-12-31 15:56:56 -0600970* Deprecated support for OpenSSL 0.9.8 and 1.0.0. At this time there is no time
971 table for actually dropping support, however we strongly encourage all users
Paul Kehrer0509ec22016-01-08 07:56:17 -0800972 to upgrade, as those versions no longer receive support from the OpenSSL
Paul Kehrerf23722a2015-12-31 15:56:56 -0600973 project.
Paul Kehrerd91e7c12015-10-01 16:50:42 -0500974* The :class:`~cryptography.x509.Certificate` class now has
975 :attr:`~cryptography.x509.Certificate.signature` and
Paul Kehrerd2898052015-11-03 22:00:41 +0900976 :attr:`~cryptography.x509.Certificate.tbs_certificate_bytes` attributes.
Paul Kehrer80dc7522015-12-03 22:19:30 -0600977* The :class:`~cryptography.x509.CertificateSigningRequest` class now has
978 :attr:`~cryptography.x509.CertificateSigningRequest.signature` and
979 :attr:`~cryptography.x509.CertificateSigningRequest.tbs_certrequest_bytes`
980 attributes.
Paul Kehrer18a96122015-12-21 11:14:34 -0600981* The :class:`~cryptography.x509.CertificateRevocationList` class now has
982 :attr:`~cryptography.x509.CertificateRevocationList.signature` and
983 :attr:`~cryptography.x509.CertificateRevocationList.tbs_certlist_bytes`
984 attributes.
Paul Kehrer8b399b72015-12-02 22:53:40 -0600985* :class:`~cryptography.x509.NameConstraints` are now supported in the
Paul Kehrer756d7d22015-12-02 23:45:42 -0600986 :class:`~cryptography.x509.CertificateBuilder` and
987 :class:`~cryptography.x509.CertificateSigningRequestBuilder`.
Paul Kehrer54a837d2015-12-20 23:42:32 -0600988* Support serialization of certificate revocation lists using the
Paul Kehrer2d1d24d2015-12-21 09:23:52 -0600989 :meth:`~cryptography.x509.CertificateRevocationList.public_bytes` method of
Paul Kehrer54a837d2015-12-20 23:42:32 -0600990 :class:`~cryptography.x509.CertificateRevocationList`.
Paul Kehrer51f39cb2015-12-21 21:17:39 -0600991* Add support for parsing :class:`~cryptography.x509.CertificateRevocationList`
992 :meth:`~cryptography.x509.CertificateRevocationList.extensions` in the
Paul Kehrer2587d302015-12-22 17:20:42 -0600993 OpenSSL backend. The following extensions are currently supported:
994
995 * :class:`~cryptography.x509.AuthorityInformationAccess`
996 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
Paul Kehrer3b95cd72015-12-22 21:40:20 -0600997 * :class:`~cryptography.x509.CRLNumber`
Paul Kehrer2587d302015-12-22 17:20:42 -0600998 * :class:`~cryptography.x509.IssuerAlternativeName`
Paul Kehrer09ad50c2015-12-26 13:59:27 -0600999* Added :class:`~cryptography.x509.CertificateRevocationListBuilder` and
1000 :class:`~cryptography.x509.RevokedCertificateBuilder` to allow creation of
1001 CRLs.
Paul Kehrer58ddc112015-12-30 20:19:00 -06001002* Unrecognized non-critical X.509 extensions are now parsed into an
1003 :class:`~cryptography.x509.UnrecognizedExtension` object.
Paul Kehrerd91e7c12015-10-01 16:50:42 -05001004
Christian Heimes765e7712017-08-03 16:08:09 +02001005
1006.. _v1-1-2:
1007
Paul Kehrer869cfd92015-12-10 14:12:05 -060010081.1.2 - 2015-12-10
1009~~~~~~~~~~~~~~~~~~
1010
1011* Fixed a SIGBUS crash with the OS X wheels caused by redefinition of a
1012 method.
1013* Fixed a runtime error ``undefined symbol EC_GFp_nistp224_method`` that
1014 occurred with some OpenSSL installations.
1015* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2e.
1016
Christian Heimes765e7712017-08-03 16:08:09 +02001017
1018.. _v1-1-1:
1019
Paul Kehrerdcf40fc2015-11-18 22:11:36 -060010201.1.1 - 2015-11-19
1021~~~~~~~~~~~~~~~~~~
1022
1023* Fixed several small bugs related to compiling the OpenSSL bindings with
1024 unusual OpenSSL configurations.
1025* Resolved an issue where, depending on the method of installation and
1026 which Python interpreter they were using, users on El Capitan (OS X 10.11)
1027 may have seen an ``InternalError`` on import.
1028
Christian Heimes765e7712017-08-03 16:08:09 +02001029
1030.. _v1-1:
1031
Paul Kehrere9ac0272015-10-28 15:48:01 +090010321.1 - 2015-10-28
1033~~~~~~~~~~~~~~~~
Paul Kehrerbff54ef2015-08-12 08:47:34 -05001034
Alex Gaynor39d38b92015-10-17 16:44:15 -04001035* Added support for Elliptic Curve Diffie-Hellman with
Alex Gaynord2949892015-10-17 16:45:55 -04001036 :class:`~cryptography.hazmat.primitives.asymmetric.ec.ECDH`.
Alex Gaynorace036d2015-09-24 20:23:08 -04001037* Added :class:`~cryptography.hazmat.primitives.kdf.x963kdf.X963KDF`.
Paul Kehrer87355482015-10-21 20:27:44 -05001038* Added support for parsing certificate revocation lists (CRLs) using
1039 :func:`~cryptography.x509.load_pem_x509_crl` and
1040 :func:`~cryptography.x509.load_der_x509_crl`.
Paul Kehrer0d76a2e2015-05-17 13:36:13 -07001041* Add support for AES key wrapping with
1042 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_wrap` and
1043 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap`.
Paul Kehrere9ac0272015-10-28 15:48:01 +09001044* Added a ``__hash__`` method to :class:`~cryptography.x509.Name`.
Paul Kehrer1a1b1152015-10-28 09:33:05 +09001045* Add support for encoding and decoding elliptic curve points to a byte string
1046 form using
1047 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.encode_point`
1048 and
1049 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.from_encoded_point`.
Paul Kehrere9ac0272015-10-28 15:48:01 +09001050* Added :meth:`~cryptography.x509.Extensions.get_extension_for_class`.
1051* :class:`~cryptography.x509.CertificatePolicies` are now supported in the
1052 :class:`~cryptography.x509.CertificateBuilder`.
1053* ``countryName`` is now encoded as a ``PrintableString`` when creating subject
1054 and issuer distinguished names with the Certificate and CSR builder classes.
Paul Kehrer1a1b1152015-10-28 09:33:05 +09001055
Christian Heimes765e7712017-08-03 16:08:09 +02001056
1057.. _v1-0-2:
1058
Paul Kehrer8addede2015-09-26 22:57:35 -050010591.0.2 - 2015-09-27
1060~~~~~~~~~~~~~~~~~~
1061* **SECURITY ISSUE**: The OpenSSL backend prior to 1.0.2 made extensive use
1062 of assertions to check response codes where our tests could not trigger a
1063 failure. However, when Python is run with ``-O`` these asserts are optimized
1064 away. If a user ran Python with this flag and got an invalid response code
1065 this could result in undefined behavior or worse. Accordingly, all response
1066 checks from the OpenSSL backend have been converted from ``assert``
1067 to a true function call. Credit **Emilia Käsper (Google Security Team)**
1068 for the report.
1069
Christian Heimes765e7712017-08-03 16:08:09 +02001070
1071.. _v1-0-1:
1072
Paul Kehrer2f6b1692015-09-05 20:58:52 -050010731.0.1 - 2015-09-05
1074~~~~~~~~~~~~~~~~~~
1075
1076* We now ship OS X wheels that statically link OpenSSL by default. When
1077 installing a wheel on OS X 10.10+ (and using a Python compiled against the
1078 10.10 SDK) users will no longer need to compile. See :doc:`/installation` for
1079 alternate installation methods if required.
1080* Set the default string mask to UTF-8 in the OpenSSL backend to resolve
1081 character encoding issues with older versions of OpenSSL.
1082* Several new OpenSSL bindings have been added to support a future pyOpenSSL
1083 release.
1084* Raise an error during install on PyPy < 2.6. 1.0+ requires PyPy 2.6+.
Paul Kehrerbff54ef2015-08-12 08:47:34 -05001085
Christian Heimes765e7712017-08-03 16:08:09 +02001086
1087.. _v1-0:
1088
Paul Kehrer55ab8052015-08-11 18:22:55 -050010891.0 - 2015-08-12
Paul Kehrerd5257ab2015-05-13 20:48:36 -05001090~~~~~~~~~~~~~~~~
1091
Paul Kehrer68b3b1e2015-05-19 13:05:21 -07001092* Switched to the new `cffi`_ ``set_source`` out-of-line API mode for
1093 compilation. This results in significantly faster imports and lowered
Paul Kehrer73f06c72015-06-07 23:17:39 -05001094 memory consumption. Due to this change we no longer support PyPy releases
1095 older than 2.6 nor do we support any released version of PyPy3 (until a
1096 version supporting cffi 1.0 comes out).
Paul Kehrer60cc9ef2015-08-04 19:29:52 +01001097* Fix parsing of OpenSSH public keys that have spaces in comments.
Andre Caronbeed2942015-05-18 13:47:36 -04001098* Support serialization of certificate signing requests using the
1099 ``public_bytes`` method of
1100 :class:`~cryptography.x509.CertificateSigningRequest`.
Andre Carona8aded62015-05-19 20:11:57 -04001101* Support serialization of certificates using the ``public_bytes`` method of
1102 :class:`~cryptography.x509.Certificate`.
Jiangge Zhang764f6372015-06-05 18:01:22 +08001103* Add ``get_provisioning_uri`` method to
1104 :class:`~cryptography.hazmat.primitives.twofactor.hotp.HOTP` and
1105 :class:`~cryptography.hazmat.primitives.twofactor.totp.TOTP` for generating
1106 provisioning URIs.
Paul Kehrer66f380c2015-06-12 11:23:34 -05001107* Add :class:`~cryptography.hazmat.primitives.kdf.concatkdf.ConcatKDFHash`
1108 and :class:`~cryptography.hazmat.primitives.kdf.concatkdf.ConcatKDFHMAC`.
Ian Cordascoab94b902015-06-17 08:28:02 -05001109* Raise a ``TypeError`` when passing objects that are not text as the value to
1110 :class:`~cryptography.x509.NameAttribute`.
Paul Kehrer44171a22015-08-01 21:21:26 +01001111* Add support for :class:`~cryptography.x509.OtherName` as a general name
1112 type.
1113* Added new X.509 extension support in :class:`~cryptography.x509.Certificate`
1114 The following new extensions are now supported:
1115
1116 * :class:`~cryptography.x509.OCSPNoCheck`
1117 * :class:`~cryptography.x509.InhibitAnyPolicy`
1118 * :class:`~cryptography.x509.IssuerAlternativeName`
1119 * :class:`~cryptography.x509.NameConstraints`
1120
1121* Extension support was added to
1122 :class:`~cryptography.x509.CertificateSigningRequest`.
Ian Cordasco46479d02015-08-03 08:30:20 -05001123* Add support for creating signed certificates with
1124 :class:`~cryptography.x509.CertificateBuilder`. This includes support for
Paul Kehrere0ecfdc2015-08-06 10:53:15 +01001125 the following extensions:
Ian Cordasco46479d02015-08-03 08:30:20 -05001126
1127 * :class:`~cryptography.x509.BasicConstraints`
1128 * :class:`~cryptography.x509.SubjectAlternativeName`
Paul Kehrere0ecfdc2015-08-06 10:53:15 +01001129 * :class:`~cryptography.x509.KeyUsage`
1130 * :class:`~cryptography.x509.ExtendedKeyUsage`
1131 * :class:`~cryptography.x509.SubjectKeyIdentifier`
1132 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
1133 * :class:`~cryptography.x509.AuthorityInformationAccess`
1134 * :class:`~cryptography.x509.CRLDistributionPoints`
Paul Kehrer683d4d82015-08-06 23:13:45 +01001135 * :class:`~cryptography.x509.InhibitAnyPolicy`
Paul Kehrer2dfd9da2015-08-10 21:30:23 -05001136 * :class:`~cryptography.x509.IssuerAlternativeName`
1137 * :class:`~cryptography.x509.OCSPNoCheck`
Ian Cordasco46479d02015-08-03 08:30:20 -05001138
Paul Kehrer91e385d2015-08-08 22:50:28 -05001139* Add support for creating certificate signing requests with
1140 :class:`~cryptography.x509.CertificateSigningRequestBuilder`. This includes
1141 support for the same extensions supported in the ``CertificateBuilder``.
Paul Kehrer31c5c332015-08-10 11:59:38 -05001142* Deprecate ``encode_rfc6979_signature`` and ``decode_rfc6979_signature`` in
1143 favor of
1144 :func:`~cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature`
1145 and
1146 :func:`~cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature`.
1147
Paul Kehrer91e385d2015-08-08 22:50:28 -05001148
Christian Heimes765e7712017-08-03 16:08:09 +02001149
1150.. _v0-9-3:
1151
Paul Kehrer3bbda282015-07-09 09:48:23 -050011520.9.3 - 2015-07-09
1153~~~~~~~~~~~~~~~~~~
1154
1155* Updated Windows wheels to be compiled against OpenSSL 1.0.2d.
1156
Christian Heimes765e7712017-08-03 16:08:09 +02001157
1158.. _v0-9-2:
1159
Paul Kehrer7b411632015-07-03 18:07:41 -050011600.9.2 - 2015-07-04
1161~~~~~~~~~~~~~~~~~~
1162
1163* Updated Windows wheels to be compiled against OpenSSL 1.0.2c.
1164
Christian Heimes765e7712017-08-03 16:08:09 +02001165
1166.. _v0-9-1:
1167
Alex Gaynorc4bb7d52015-06-06 17:27:14 -040011680.9.1 - 2015-06-06
1169~~~~~~~~~~~~~~~~~~
1170
1171* **SECURITY ISSUE**: Fixed a double free in the OpenSSL backend when using DSA
1172 to verify signatures. Note that this only affects PyPy 2.6.0 and (presently
1173 unreleased) CFFI versions greater than 1.1.0.
1174
Christian Heimes765e7712017-08-03 16:08:09 +02001175
1176.. _v0-9:
1177
Paul Kehrerc486ed52015-05-13 17:59:31 -050011780.9 - 2015-05-13
1179~~~~~~~~~~~~~~~~
Paul Kehrer8ce597b2015-03-09 00:01:17 -05001180
Paul Kehrer741fccb2015-04-14 10:22:25 -04001181* Removed support for Python 3.2. This version of Python is rarely used
1182 and caused support headaches. Users affected by this should upgrade to 3.3+.
Alex Gaynor6e7f6222015-03-29 21:51:38 -04001183* Deprecated support for Python 2.6. At the time there is no time table for
1184 actually dropping support, however we strongly encourage all users to upgrade
1185 their Python, as Python 2.6 no longer receives support from the Python core
1186 team.
Paul Kehrerebbeedf2015-05-08 18:13:14 -05001187* Add support for the
1188 :class:`~cryptography.hazmat.primitives.asymmetric.ec.SECP256K1` elliptic
1189 curve.
Alex Gaynor5d27d4d2015-04-04 14:56:02 -05001190* Fixed compilation when using an OpenSSL which was compiled with the
1191 ``no-comp`` (``OPENSSL_NO_COMP``) option.
Paul Kehrera2c48652015-03-10 15:48:37 -05001192* Support :attr:`~cryptography.hazmat.primitives.serialization.Encoding.DER`
1193 serialization of public keys using the ``public_bytes`` method of
Paul Kehrer1955ebf2015-03-10 08:38:57 -05001194 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`,
1195 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`,
1196 and
Paul Kehrera2c48652015-03-10 15:48:37 -05001197 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`.
Paul Kehrer919a5b22015-03-14 13:15:17 -05001198* Support :attr:`~cryptography.hazmat.primitives.serialization.Encoding.DER`
1199 serialization of private keys using the ``private_bytes`` method of
1200 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`,
1201 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`,
1202 and
1203 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`.
Paul Kehrera1a1f232015-03-15 15:34:35 -05001204* Add support for parsing X.509 certificate signing requests (CSRs) with
Paul Kehrer1effb6e2015-03-30 15:05:59 -05001205 :func:`~cryptography.x509.load_pem_x509_csr` and
1206 :func:`~cryptography.x509.load_der_x509_csr`.
Paul Kehrerd14dcc52015-04-14 14:21:21 -04001207* Moved ``cryptography.exceptions.InvalidToken`` to
1208 :class:`cryptography.hazmat.primitives.twofactor.InvalidToken` and deprecated
1209 the old location. This was moved to minimize confusion between this exception
1210 and :class:`cryptography.fernet.InvalidToken`.
Paul Kehreraeb77202015-05-13 11:52:38 -05001211* Added support for X.509 extensions in :class:`~cryptography.x509.Certificate`
1212 objects. The following extensions are supported as of this release:
1213
1214 * :class:`~cryptography.x509.BasicConstraints`
1215 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
1216 * :class:`~cryptography.x509.SubjectKeyIdentifier`
1217 * :class:`~cryptography.x509.KeyUsage`
1218 * :class:`~cryptography.x509.SubjectAlternativeName`
1219 * :class:`~cryptography.x509.ExtendedKeyUsage`
1220 * :class:`~cryptography.x509.CRLDistributionPoints`
1221 * :class:`~cryptography.x509.AuthorityInformationAccess`
1222 * :class:`~cryptography.x509.CertificatePolicies`
1223
1224 Note that unsupported extensions with the critical flag raise
Alex Gaynord08ddd52017-05-20 09:01:54 -07001225 ``UnsupportedExtension`` while unsupported extensions set to non-critical are
1226 silently ignored. Read the :doc:`X.509 documentation</x509/index>` for more
1227 information.
Paul Kehrer1955ebf2015-03-10 08:38:57 -05001228
Christian Heimes765e7712017-08-03 16:08:09 +02001229
1230.. _v0-8-2:
1231
Paul Kehrer33906b82015-04-10 21:00:08 -040012320.8.2 - 2015-04-10
1233~~~~~~~~~~~~~~~~~~
1234
1235* Fixed a race condition when initializing the OpenSSL or CommonCrypto backends
1236 in a multi-threaded scenario.
1237
Christian Heimes765e7712017-08-03 16:08:09 +02001238
1239.. _v0-8-1:
1240
Paul Kehrer41a750c2015-03-19 22:46:23 -050012410.8.1 - 2015-03-20
1242~~~~~~~~~~~~~~~~~~
1243
1244* Updated Windows wheels to be compiled against OpenSSL 1.0.2a.
1245
Christian Heimes765e7712017-08-03 16:08:09 +02001246
1247.. _v0-8:
1248
Paul Kehrer5dc4b882015-03-08 18:19:50 -050012490.8 - 2015-03-08
1250~~~~~~~~~~~~~~~~
Paul Kehrer08120d72014-12-17 21:37:58 -06001251
Alex Gaynor5d66ca52014-12-25 18:39:39 -08001252* :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key` can
1253 now load elliptic curve public keys.
Paul Kehrer836b8302015-01-18 09:42:58 -06001254* Added
Paul Kehrer8802a5b2015-02-13 12:06:57 -06001255 :attr:`~cryptography.x509.Certificate.signature_hash_algorithm` support to
Paul Kehrerb0a80392015-02-11 23:39:49 -06001256 :class:`~cryptography.x509.Certificate`.
1257* Added
Paul Kehrer836b8302015-01-18 09:42:58 -06001258 :func:`~cryptography.hazmat.primitives.asymmetric.rsa.rsa_recover_prime_factors`
Paul Kehrer48402ff2015-02-16 15:31:52 -06001259* :class:`~cryptography.hazmat.primitives.kdf.KeyDerivationFunction` was moved
Paul Kehrer7bc36862017-05-29 10:13:35 -05001260 from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer48402ff2015-02-16 15:31:52 -06001261 :mod:`~cryptography.hazmat.primitives.kdf`.
Paul Kehrer719d5362015-01-01 20:03:52 -06001262* Added support for parsing X.509 names. See the
Alex Gaynor5e0da3a2015-07-12 10:35:56 -05001263 :doc:`X.509 documentation</x509/index>` for more information.
Paul Kehrer99a249d2015-01-04 15:55:22 -06001264* Added
1265 :func:`~cryptography.hazmat.primitives.serialization.load_der_private_key` to
1266 support loading of DER encoded private keys and
1267 :func:`~cryptography.hazmat.primitives.serialization.load_der_public_key` to
1268 support loading DER encoded public keys.
Steven McDonald27e6b9c2015-02-18 16:37:03 +11001269* Fixed building against LibreSSL, a compile-time substitute for OpenSSL.
Paul Kehrer77f540d2015-02-20 12:53:04 -06001270* FreeBSD 9.2 was removed from the continuous integration system.
Paul Kehrerf28dd452015-03-05 10:22:59 -06001271* Updated Windows wheels to be compiled against OpenSSL 1.0.2.
Paul Kehrer7bfa22e2015-03-04 13:48:30 -06001272* :func:`~cryptography.hazmat.primitives.serialization.load_pem_public_key`
1273 and :func:`~cryptography.hazmat.primitives.serialization.load_der_public_key`
Paul Kehrer791afc02015-03-05 14:29:28 -06001274 now support PKCS1 RSA public keys (in addition to the previous support for
Paul Kehrer7bfa22e2015-03-04 13:48:30 -06001275 SubjectPublicKeyInfo format for RSA, EC, and DSA).
Paul Kehrerf83e25c2015-02-21 18:34:00 -06001276* Added
Paul Kehrer59e5c862015-03-02 10:36:50 -06001277 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001278 and deprecated ``EllipticCurvePrivateKeyWithNumbers``.
Paul Kehrer59e5c862015-03-02 10:36:50 -06001279* Added
1280 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization.private_bytes`
1281 to
1282 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`.
1283* Added
Paul Kehrerf83e25c2015-02-21 18:34:00 -06001284 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001285 and deprecated ``RSAPrivateKeyWithNumbers``.
Paul Kehrerf83e25c2015-02-21 18:34:00 -06001286* Added
Paul Kehrer223a8f02015-02-28 18:54:10 -06001287 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization.private_bytes`
Paul Kehrerf83e25c2015-02-21 18:34:00 -06001288 to
1289 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`.
Paul Kehrerec342632015-03-01 16:53:58 -06001290* Added
1291 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001292 and deprecated ``DSAPrivateKeyWithNumbers``.
Paul Kehrerec342632015-03-01 16:53:58 -06001293* Added
1294 :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization.private_bytes`
1295 to
1296 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`.
Paul Kehrer3f157e02015-02-28 11:31:06 -06001297* Added
1298 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001299 and deprecated ``RSAPublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -05001300* Added ``public_bytes`` to
Paul Kehrer3f157e02015-02-28 11:31:06 -06001301 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`.
Paul Kehrer419615b2015-03-05 21:01:16 -06001302* Added
1303 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001304 and deprecated ``EllipticCurvePublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -05001305* Added ``public_bytes`` to
Paul Kehrer419615b2015-03-05 21:01:16 -06001306 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`.
Paul Kehrer26006c52015-03-08 18:27:11 -05001307* Added
1308 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001309 and deprecated ``DSAPublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -05001310* Added ``public_bytes`` to
Paul Kehrer26006c52015-03-08 18:27:11 -05001311 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`.
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001312* :class:`~cryptography.hazmat.primitives.hashes.HashAlgorithm` and
1313 :class:`~cryptography.hazmat.primitives.hashes.HashContext` were moved from
Paul Kehrer7bc36862017-05-29 10:13:35 -05001314 ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001315 :mod:`~cryptography.hazmat.primitives.hashes`.
1316* :class:`~cryptography.hazmat.primitives.ciphers.CipherContext`,
1317 :class:`~cryptography.hazmat.primitives.ciphers.AEADCipherContext`,
1318 :class:`~cryptography.hazmat.primitives.ciphers.AEADEncryptionContext`,
1319 :class:`~cryptography.hazmat.primitives.ciphers.CipherAlgorithm`, and
1320 :class:`~cryptography.hazmat.primitives.ciphers.BlockCipherAlgorithm`
Paul Kehrer7bc36862017-05-29 10:13:35 -05001321 were moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001322 :mod:`~cryptography.hazmat.primitives.ciphers`.
1323* :class:`~cryptography.hazmat.primitives.ciphers.modes.Mode`,
1324 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithInitializationVector`,
1325 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithNonce`, and
1326 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithAuthenticationTag`
Paul Kehrer7bc36862017-05-29 10:13:35 -05001327 were moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001328 :mod:`~cryptography.hazmat.primitives.ciphers.modes`.
1329* :class:`~cryptography.hazmat.primitives.padding.PaddingContext` was moved
Paul Kehrer7bc36862017-05-29 10:13:35 -05001330 from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001331 :mod:`~cryptography.hazmat.primitives.padding`.
1332*
1333 :class:`~cryptography.hazmat.primitives.asymmetric.padding.AsymmetricPadding`
Paul Kehrer7bc36862017-05-29 10:13:35 -05001334 was moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001335 :mod:`~cryptography.hazmat.primitives.asymmetric.padding`.
Paul Kehrer1a5d70e2017-06-03 17:11:55 -10001336* ``AsymmetricSignatureContext`` and ``AsymmetricVerificationContext``
Paul Kehrer7bc36862017-05-29 10:13:35 -05001337 were moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer1a5d70e2017-06-03 17:11:55 -10001338 ``cryptography.hazmat.primitives.asymmetric``.
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001339* :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAParameters`,
1340 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAParametersWithNumbers`,
1341 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001342 ``DSAPrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001343 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey` and
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001344 ``DSAPublicKeyWithNumbers`` were moved from
Paul Kehrer7bc36862017-05-29 10:13:35 -05001345 ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001346 :mod:`~cryptography.hazmat.primitives.asymmetric.dsa`
1347* :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurve`,
1348 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurveSignatureAlgorithm`,
1349 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001350 ``EllipticCurvePrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001351 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001352 and ``EllipticCurvePublicKeyWithNumbers``
Paul Kehrer7bc36862017-05-29 10:13:35 -05001353 were moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001354 :mod:`~cryptography.hazmat.primitives.asymmetric.ec`.
1355* :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001356 ``RSAPrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001357 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey` and
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001358 ``RSAPublicKeyWithNumbers`` were moved from
Paul Kehrer7bc36862017-05-29 10:13:35 -05001359 ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001360 :mod:`~cryptography.hazmat.primitives.asymmetric.rsa`.
Alex Gaynor5d66ca52014-12-25 18:39:39 -08001361
Christian Heimes765e7712017-08-03 16:08:09 +02001362
1363.. _v0-7-2:
1364
Paul Kehrer72572f92015-01-16 08:10:12 -060013650.7.2 - 2015-01-16
1366~~~~~~~~~~~~~~~~~~
1367
1368* Updated Windows wheels to be compiled against OpenSSL 1.0.1l.
1369* ``enum34`` is no longer installed on Python 3.4, where it is included in
1370 the standard library.
1371* Added a new function to the OpenSSL bindings to support additional
1372 functionality in pyOpenSSL.
1373
Christian Heimes765e7712017-08-03 16:08:09 +02001374
1375.. _v0-7-1:
1376
Paul Kehrer842e58a2014-12-28 15:17:39 -070013770.7.1 - 2014-12-28
1378~~~~~~~~~~~~~~~~~~
1379
1380* Fixed an issue preventing compilation on platforms where ``OPENSSL_NO_SSL3``
1381 was defined.
1382
Christian Heimes765e7712017-08-03 16:08:09 +02001383
1384.. _v0-7:
1385
Paul Kehrere8135092014-12-17 14:20:40 -060013860.7 - 2014-12-17
1387~~~~~~~~~~~~~~~~
Paul Kehrer98681332014-09-29 21:43:57 -05001388
Alex Gaynordf6a5cd2014-11-07 09:36:47 -03001389* Cryptography has been relicensed from the Apache Software License, Version
1390 2.0, to being available under *either* the Apache Software License, Version
1391 2.0, or the BSD license.
Alex Gaynor4c825132014-10-20 21:27:08 -07001392* Added key-rotation support to :doc:`Fernet </fernet>` with
1393 :class:`~cryptography.fernet.MultiFernet`.
Paul Kehrer214d91d2014-12-18 07:20:04 -06001394* More bit-lengths are now supported for ``p`` and ``q`` when loading DSA keys
Alex Gaynora438e832014-10-19 19:47:05 -07001395 from numbers.
Lucia Lic6ba99d2021-11-08 22:06:11 +08001396* Added ``MACContext`` as a common interface for CMAC and HMAC and
1397 deprecated ``CMACContext``.
Paul Kehrerb3a3e5c2014-11-27 11:27:32 -10001398* Added support for encoding and decoding :rfc:`6979` signatures in
1399 :doc:`/hazmat/primitives/asymmetric/utils`.
Mark Adams78a7d1c2014-12-12 23:13:12 -06001400* Added
Alex Gaynor993b85a2014-12-15 10:42:45 -08001401 :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key` to
Paul Kehrere8135092014-12-17 14:20:40 -06001402 support the loading of OpenSSH public keys (:rfc:`4253`). Only RSA and DSA
1403 keys are currently supported.
Paul Kehrere76cd272014-12-14 19:00:51 -06001404* Added initial support for X.509 certificate parsing. See the
Alex Gaynor5e0da3a2015-07-12 10:35:56 -05001405 :doc:`X.509 documentation</x509/index>` for more information.
Terry Chiac7c82f32014-10-20 12:15:22 +08001406
Christian Heimes765e7712017-08-03 16:08:09 +02001407
1408.. _v0-6-1:
1409
Paul Kehrer555b1502014-10-15 23:24:57 -050014100.6.1 - 2014-10-15
1411~~~~~~~~~~~~~~~~~~
1412
1413* Updated Windows wheels to be compiled against OpenSSL 1.0.1j.
1414* Fixed an issue where OpenSSL 1.0.1j changed the errors returned by some
1415 functions.
1416* Added our license file to the ``cryptography-vectors`` package.
1417* Implemented DSA hash truncation support (per FIPS 186-3) in the OpenSSL
1418 backend. This works around an issue in 1.0.0, 1.0.0a, and 1.0.0b where
1419 truncation was not implemented.
1420
Christian Heimes765e7712017-08-03 16:08:09 +02001421
1422.. _v0-6:
1423
Paul Kehrerc3f11d82014-09-29 20:31:15 -050014240.6 - 2014-09-29
1425~~~~~~~~~~~~~~~~
Paul Kehrer1757fe32014-07-07 22:29:23 -05001426
Alex Gaynoref823342014-09-27 12:04:22 -04001427* Added
1428 :func:`~cryptography.hazmat.primitives.serialization.load_pem_private_key` to
1429 ease loading private keys, and
1430 :func:`~cryptography.hazmat.primitives.serialization.load_pem_public_key` to
1431 support loading public keys.
Alex Gaynor1658f942014-07-08 00:02:37 -07001432* Removed the, deprecated in 0.4, support for the ``salt_length`` argument to
1433 the :class:`~cryptography.hazmat.primitives.asymmetric.padding.MGF1`
1434 constructor. The ``salt_length`` should be passed to
1435 :class:`~cryptography.hazmat.primitives.asymmetric.padding.PSS` instead.
Paul Kehrerf4fbf392014-08-21 08:36:49 -10001436* Fix compilation on OS X Yosemite.
Paul Kehrer77e95a02014-09-25 12:28:07 -05001437* Deprecated ``elliptic_curve_private_key_from_numbers`` and
1438 ``elliptic_curve_public_key_from_numbers`` in favor of
1439 ``load_elliptic_curve_private_numbers`` and
1440 ``load_elliptic_curve_public_numbers`` on
1441 :class:`~cryptography.hazmat.backends.interfaces.EllipticCurveBackend`.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001442* Added ``EllipticCurvePrivateKeyWithNumbers`` and
1443 ``EllipticCurvePublicKeyWithNumbers`` support.
Paul Kehrerf378e402014-09-27 11:28:42 -05001444* Work around three GCM related bugs in CommonCrypto and OpenSSL.
Paul Kehrer4c773652014-09-27 11:26:02 -05001445
1446 * On the CommonCrypto backend adding AAD but not subsequently calling update
1447 would return null tag bytes.
1448
1449 * One the CommonCrypto backend a call to update without an empty add AAD call
1450 would return null ciphertext bytes.
1451
1452 * On the OpenSSL backend with certain versions adding AAD only would give
1453 invalid tag bytes.
1454
1455* Support loading EC private keys from PEM.
Alex Gaynor1658f942014-07-08 00:02:37 -07001456
Christian Heimes765e7712017-08-03 16:08:09 +02001457
1458.. _v0-5-4:
1459
Paul Kehrer01f0c672014-08-20 20:15:18 -100014600.5.4 - 2014-08-20
1461~~~~~~~~~~~~~~~~~~
1462
1463* Added several functions to the OpenSSL bindings to support new
1464 functionality in pyOpenSSL.
1465* Fixed a redefined constant causing compilation failure with Solaris 11.2.
1466
Christian Heimes765e7712017-08-03 16:08:09 +02001467
1468.. _v0-5-3:
1469
Paul Kehrer86cf5b12014-08-07 05:38:17 -100014700.5.3 - 2014-08-06
1471~~~~~~~~~~~~~~~~~~
1472
1473* Updated Windows wheels to be compiled against OpenSSL 1.0.1i.
1474
Christian Heimes765e7712017-08-03 16:08:09 +02001475
1476.. _v0-5-2:
1477
Paul Kehrer2456e662014-07-09 19:51:32 -050014780.5.2 - 2014-07-09
1479~~~~~~~~~~~~~~~~~~
1480
Paul Kehrera4668c62017-05-20 13:25:47 -07001481* Add ``TraditionalOpenSSLSerializationBackend`` support to ``multibackend``.
Paul Kehrer2456e662014-07-09 19:51:32 -05001482* Fix compilation error on OS X 10.8 (Mountain Lion).
1483
Christian Heimes765e7712017-08-03 16:08:09 +02001484
1485.. _v0-5-1:
1486
Paul Kehrerf092d732014-07-07 19:42:15 -050014870.5.1 - 2014-07-07
1488~~~~~~~~~~~~~~~~~~
1489
Paul Kehrera4668c62017-05-20 13:25:47 -07001490* Add ``PKCS8SerializationBackend`` support to ``multibackend``.
Paul Kehrerf092d732014-07-07 19:42:15 -05001491
Christian Heimes765e7712017-08-03 16:08:09 +02001492
1493.. _v0-5:
1494
Paul Kehrer3c6a2392014-07-07 08:29:07 -050014950.5 - 2014-07-07
1496~~~~~~~~~~~~~~~~
Paul Kehrer50a04852014-05-03 08:57:13 -05001497
Alex Gaynor8f1b8e82014-06-29 20:43:29 -07001498* **BACKWARDS INCOMPATIBLE:**
1499 :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` no longer allows
1500 truncation of tags by default. Previous versions of ``cryptography`` allowed
1501 tags to be truncated by default, applications wishing to preserve this
Alex Gaynor4efe61a2014-06-29 20:44:53 -07001502 behavior (not recommended) can pass the ``min_tag_length`` argument.
Paul Kehrer8987bcb2014-07-06 09:28:29 -05001503* Windows builds now statically link OpenSSL by default. When installing a
Paul Kehrer3df9a312014-07-06 09:25:29 -05001504 wheel on Windows you no longer need to install OpenSSL separately. Windows
1505 users can switch between static and dynamic linking with an environment
1506 variable. See :doc:`/installation` for more details.
Paul Kehrer88bac252014-05-21 12:42:13 -05001507* Added :class:`~cryptography.hazmat.primitives.kdf.hkdf.HKDFExpand`.
Paul Kehrer2a947c42014-05-15 17:22:08 -04001508* Added :class:`~cryptography.hazmat.primitives.ciphers.modes.CFB8` support
1509 for :class:`~cryptography.hazmat.primitives.ciphers.algorithms.AES` and
1510 :class:`~cryptography.hazmat.primitives.ciphers.algorithms.TripleDES` on
Paul Kehrer51032352017-05-20 10:09:02 -07001511 ``commoncrypto`` and :doc:`/hazmat/backends/openssl`.
Paul Kehrer055f9602014-05-20 23:21:26 -05001512* Added ``AES`` :class:`~cryptography.hazmat.primitives.ciphers.modes.CTR`
1513 support to the OpenSSL backend when linked against 0.9.8.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001514* Added ``PKCS8SerializationBackend`` and
1515 ``TraditionalOpenSSLSerializationBackend`` support to the
1516 :doc:`/hazmat/backends/openssl`.
Paul Kehrer21fc5822014-07-04 09:28:55 -05001517* Added :doc:`/hazmat/primitives/asymmetric/ec` and
1518 :class:`~cryptography.hazmat.backends.interfaces.EllipticCurveBackend`.
Paul Kehrerd1bac5e2014-06-13 12:34:49 -05001519* Added :class:`~cryptography.hazmat.primitives.ciphers.modes.ECB` support
1520 for :class:`~cryptography.hazmat.primitives.ciphers.algorithms.TripleDES` on
Paul Kehrer51032352017-05-20 10:09:02 -07001521 ``commoncrypto`` and :doc:`/hazmat/backends/openssl`.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001522* Deprecated the concrete ``RSAPrivateKey`` class in favor of backend
Paul Kehrera10be692015-02-12 12:58:27 -06001523 specific providers of the
1524 :class:`cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
1525 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001526* Deprecated the concrete ``RSAPublicKey`` in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -06001527 providers of the
1528 :class:`cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`
1529 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001530* Deprecated the concrete ``DSAPrivateKey`` class in favor of backend
Paul Kehrera10be692015-02-12 12:58:27 -06001531 specific providers of the
1532 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`
1533 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001534* Deprecated the concrete ``DSAPublicKey`` class in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -06001535 providers of the
1536 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`
1537 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001538* Deprecated the concrete ``DSAParameters`` class in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -06001539 providers of the
1540 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAParameters`
1541 interface.
Paul Kehrerf2fb02a2014-06-19 10:16:42 -06001542* Deprecated ``encrypt_rsa``, ``decrypt_rsa``, ``create_rsa_signature_ctx`` and
1543 ``create_rsa_verification_ctx`` on
1544 :class:`~cryptography.hazmat.backends.interfaces.RSABackend`.
Paul Kehrer1262be22014-06-26 16:16:50 -06001545* Deprecated ``create_dsa_signature_ctx`` and ``create_dsa_verification_ctx``
1546 on :class:`~cryptography.hazmat.backends.interfaces.DSABackend`.
Paul Kehrerbb91c812014-05-12 15:03:04 -04001547
Christian Heimes765e7712017-08-03 16:08:09 +02001548
1549.. _v0-4:
1550
Paul Kehrer95862012014-05-01 16:48:05 -050015510.4 - 2014-05-03
1552~~~~~~~~~~~~~~~~
Paul Kehrer3d4eb6e2014-03-27 16:27:31 -05001553
Paul Kehrerba987452014-04-02 17:12:26 -05001554* Deprecated ``salt_length`` on
1555 :class:`~cryptography.hazmat.primitives.asymmetric.padding.MGF1` and added it
Alex Gaynor9963cb32014-07-12 09:35:33 -07001556 to :class:`~cryptography.hazmat.primitives.asymmetric.padding.PSS`. It will
Alex Gaynor2e49f212014-07-12 10:58:30 -07001557 be removed from ``MGF1`` in two releases per our :doc:`/api-stability`
Alex Gaynor9963cb32014-07-12 09:35:33 -07001558 policy.
1559* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.SEED`
1560 support.
Ayrx9bea9372014-04-22 21:00:34 +08001561* Added :class:`~cryptography.hazmat.primitives.cmac.CMAC`.
Alex Gaynorcd58b932014-05-01 23:11:06 -07001562* Added decryption support to
1563 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
1564 and encryption support to
1565 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`.
Paul Kehrer80950e52014-05-01 16:48:55 -05001566* Added signature support to
1567 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`
1568 and verification support to
1569 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`.
Ayrx9bea9372014-04-22 21:00:34 +08001570
Christian Heimes765e7712017-08-03 16:08:09 +02001571
1572.. _v0-3:
1573
Paul Kehrer9c2a11b2014-03-27 13:16:57 -050015740.3 - 2014-03-27
1575~~~~~~~~~~~~~~~~
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001576
1577* Added :class:`~cryptography.hazmat.primitives.twofactor.hotp.HOTP`.
David Reideea08d92014-02-25 11:06:09 -08001578* Added :class:`~cryptography.hazmat.primitives.twofactor.totp.TOTP`.
Alex Gaynor9963cb32014-07-12 09:35:33 -07001579* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.IDEA`
1580 support.
Alex Gaynorcd58b932014-05-01 23:11:06 -07001581* Added signature support to
1582 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
1583 and verification support to
1584 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`.
Paul Kehrer1592e5b2014-03-27 14:29:38 -05001585* Moved test vectors to the new ``cryptography_vectors`` package.
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001586
Christian Heimes765e7712017-08-03 16:08:09 +02001587
1588.. _v0-2-2:
1589
Paul Kehrer7f711ee2014-03-03 23:58:45 -040015900.2.2 - 2014-03-03
1591~~~~~~~~~~~~~~~~~~
1592
Alex Gaynor9963cb32014-07-12 09:35:33 -07001593* Removed a constant definition that was causing compilation problems with
1594 specific versions of OpenSSL.
Paul Kehrer7f711ee2014-03-03 23:58:45 -04001595
Christian Heimes765e7712017-08-03 16:08:09 +02001596
1597.. _v0-2-1:
1598
Matthew Iversen69a6fad2014-02-25 02:10:44 +110015990.2.1 - 2014-02-22
1600~~~~~~~~~~~~~~~~~~
Paul Kehrer7f711ee2014-03-03 23:58:45 -04001601
Alex Gaynorcd58b932014-05-01 23:11:06 -07001602* Fix a bug where importing cryptography from multiple paths could cause
1603 initialization to fail.
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001604
Christian Heimes765e7712017-08-03 16:08:09 +02001605
1606.. _v0-2:
1607
Matthew Iversen69a6fad2014-02-25 02:10:44 +110016080.2 - 2014-02-20
1609~~~~~~~~~~~~~~~~
1610
Paul Kehrer51032352017-05-20 10:09:02 -07001611* Added ``commoncrypto``.
1612* Added initial ``commoncrypto``.
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001613* Removed ``register_cipher_adapter`` method from
1614 :class:`~cryptography.hazmat.backends.interfaces.CipherBackend`.
1615* Added support for the OpenSSL backend under Windows.
1616* Improved thread-safety for the OpenSSL backend.
1617* Fixed compilation on systems where OpenSSL's ``ec.h`` header is not
1618 available, such as CentOS.
1619* Added :class:`~cryptography.hazmat.primitives.kdf.pbkdf2.PBKDF2HMAC`.
1620* Added :class:`~cryptography.hazmat.primitives.kdf.hkdf.HKDF`.
Paul Kehrera4668c62017-05-20 13:25:47 -07001621* Added ``multibackend``.
Alex Gaynorcd58b932014-05-01 23:11:06 -07001622* Set default random for the :doc:`/hazmat/backends/openssl` to the OS
1623 random engine.
1624* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.CAST5`
1625 (CAST-128) support.
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001626
Christian Heimes765e7712017-08-03 16:08:09 +02001627
1628.. _v0-1:
1629
Matthew Iversen69a6fad2014-02-25 02:10:44 +110016300.1 - 2014-01-08
1631~~~~~~~~~~~~~~~~
1632
1633* Initial release.
1634
Alex Stapletonb9df2782014-03-17 08:09:41 +00001635.. _`master`: https://github.com/pyca/cryptography/
Alex Gaynor988df9b2016-04-28 10:57:16 -04001636.. _`cffi`: https://cffi.readthedocs.io/