blob: 88e2aaf58d6062f61edb3a1dbb814c15e2a50f4c [file] [log] [blame]
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001Changelog
2=========
3
Paul Kehrer5edac0c2018-11-11 21:21:16 -05004.. _v2-5:
5
62.5 - `master`_
7~~~~~~~~~~~~~~~
8
9.. note:: This version is not yet released and is under active development.
10
Paul Kehrer7e422822018-12-07 11:43:38 +080011* **BACKWARDS INCOMPATIBLE:** :term:`U-label` strings were deprecated in
12 version 2.1, but this version removes the default ``idna`` dependency as
13 well. If you still need this deprecated path please install cryptography
14 with the ``idna`` extra: ``pip install cryptography[idna]``.
Paul Kehrer3c682502018-12-10 12:13:31 +080015* **BACKWARDS INCOMPATIBLE:** The minimum supported PyPy version is now 5.4.
Paul Kehrer610ad372019-01-17 18:24:14 -060016* Numerous classes and functions have been updated to allow :term:`bytes-like`
17 types for keying material and passwords, including symmetric algorithms, AEAD
18 ciphers, KDFs, loading asymmetric keys, and one time password classes.
Paul Kehrerd67fa822018-11-12 21:41:26 -050019* Added support for :class:`~cryptography.hazmat.primitives.hashes.SHA512_224`
20 and :class:`~cryptography.hazmat.primitives.hashes.SHA512_256` when using
21 OpenSSL 1.1.1.
Paul Kehrer3065e162018-11-22 23:42:42 +080022* Added support for :class:`~cryptography.hazmat.primitives.hashes.SHA3_224`,
23 :class:`~cryptography.hazmat.primitives.hashes.SHA3_256`,
24 :class:`~cryptography.hazmat.primitives.hashes.SHA3_384`, and
25 :class:`~cryptography.hazmat.primitives.hashes.SHA3_512` when using OpenSSL
26 1.1.1.
Paul Kehrerf86696f2018-12-22 15:54:53 -060027* Added support for :doc:`/hazmat/primitives/asymmetric/x448` when using
28 OpenSSL 1.1.1.
Paul Kehrer5fe88ea2019-01-19 00:52:43 -060029* Added support for :class:`~cryptography.hazmat.primitives.hashes.SHAKE128`
30 and :class:`~cryptography.hazmat.primitives.hashes.SHAKE256` when using
31 OpenSSL 1.1.1.
Paul Kehrere4e7b892018-11-29 11:51:38 +080032* Added initial support for parsing PKCS12 files with
33 :func:`~cryptography.hazmat.primitives.serialization.pkcs12.load_key_and_certificates`.
Paul Kehrereb3e2e02018-12-01 12:15:20 +080034* Added support for :class:`~cryptography.x509.IssuingDistributionPoint`.
Alex Gaynorbef31142019-01-18 13:14:59 -050035* Added ``rfc4514_string()`` method to
36 :meth:`x509.Name <cryptography.x509.Name.rfc4514_string>`,
37 :meth:`x509.RelativeDistinguishedName
38 <cryptography.x509.RelativeDistinguishedName.rfc4514_string>`, and
39 :meth:`x509.NameAttribute <cryptography.x509.NameAttribute.rfc4514_string>`
40 to format the name or component an :rfc:`4514` Distinguished Name string.
Paul Kehrer4c5740a2018-12-12 08:08:27 +080041* Added
42 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.from_encoded_point`,
43 which immediately checks if the point is on the curve and supports compressed
Paul Kehrer89e1e342018-12-12 10:35:27 +080044 points. Deprecated the previous method
45 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.from_encoded_point`.
Paul Kehrer60f264b2019-01-10 15:37:03 -080046* Added :attr:`~cryptography.x509.ocsp.OCSPResponse.signature_hash_algorithm`
47 to ``OCSPResponse``.
Paul Kehrerc6c25c22019-01-14 21:50:17 -060048* Updated :doc:`/hazmat/primitives/asymmetric/x25519` support to allow
49 additional serialization methods. Calling
50 :meth:`~cryptography.hazmat.primitives.asymmetric.x25519.X25519PublicKey.public_bytes`
51 with no arguments has been deprecated.
Paul Kehrera07b1f52019-01-20 15:02:59 -060052* Added support for encoding compressed and uncompressed points via
53 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.public_bytes`.
Paul Kehrer89e1e342018-12-12 10:35:27 +080054
Paul Kehrerd67fa822018-11-12 21:41:26 -050055
Paul Kehrercd4de3c2018-11-21 11:42:41 +080056.. _v2-4-2:
57
582.4.2 - 2018-11-21
59~~~~~~~~~~~~~~~~~~
60
61* Updated Windows, macOS, and ``manylinux1`` wheels to be compiled with
62 OpenSSL 1.1.0j.
63
Alex Gaynordb084662018-11-11 19:50:10 -050064.. _v2-4-1:
65
662.4.1 - 2018-11-11
67~~~~~~~~~~~~~~~~~~
68
69* Fixed a build breakage in our ``manylinux1`` wheels.
70
Paul Kehrer39a3efb2018-07-19 06:35:38 +080071.. _v2-4:
72
Paul Kehrer5e52fdc2018-11-11 17:48:23 -0500732.4 - 2018-11-11
74~~~~~~~~~~~~~~~~
Paul Kehrer39a3efb2018-07-19 06:35:38 +080075
Paul Kehrer55552412018-10-20 09:02:19 +080076* **BACKWARDS INCOMPATIBLE:** Dropped support for LibreSSL 2.4.x.
Alex Gaynor5a54f1a2018-08-31 10:46:20 -040077* Deprecated OpenSSL 1.0.1 support. OpenSSL 1.0.1 is no longer supported by
78 the OpenSSL project. At this time there is no time table for dropping
79 support, however we strongly encourage all users to upgrade or install
80 ``cryptography`` from a wheel.
Alex Gaynor3d271fa2018-08-16 20:08:05 -040081* Added initial :doc:`OCSP </x509/ocsp>` support.
Alex Gaynordd6b78b2018-08-31 18:25:52 -050082* Added support for :class:`~cryptography.x509.PrecertPoison`.
Alex Gaynor3d271fa2018-08-16 20:08:05 -040083
Paul Kehrerc11f4242018-08-14 13:25:23 -050084.. _v2-3-1:
85
862.3.1 - 2018-08-14
87~~~~~~~~~~~~~~~~~~
88
89* Updated Windows, macOS, and ``manylinux1`` wheels to be compiled with
90 OpenSSL 1.1.0i.
91
Paul Kehrerb6400af2018-03-18 23:30:18 -040092.. _v2-3:
93
Paul Kehrer0a846e22018-07-18 19:12:46 +0800942.3 - 2018-07-18
95~~~~~~~~~~~~~~~~
Paul Kehrerb6400af2018-03-18 23:30:18 -040096
Paul Kehrerd4378e42018-07-17 21:49:03 +080097* **SECURITY ISSUE:**
98 :meth:`~cryptography.hazmat.primitives.ciphers.AEADDecryptionContext.finalize_with_tag`
99 allowed tag truncation by default which can allow tag forgery in some cases.
100 The method now enforces the ``min_tag_length`` provided to the
101 :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` constructor.
Paul Kehrer61114a22018-07-19 06:35:55 +0800102 *CVE-2018-10903*
Paul Kehrer4ee1cb92018-06-27 20:07:14 -0700103* Added support for Python 3.7.
Paul Kehrer36ad98f2018-05-12 11:57:32 -0400104* Added :meth:`~cryptography.fernet.Fernet.extract_timestamp` to get the
105 authenticated timestamp of a :doc:`Fernet </fernet>` token.
Paul Kehrerafdbfb12018-05-25 05:45:25 +0800106* Support for Python 2.7.x without ``hmac.compare_digest`` has been deprecated.
107 We will require Python 2.7.7 or higher (or 2.7.6 on Ubuntu) in the next
108 ``cryptography`` release.
Paul Kehrer611fa5a2018-05-31 11:39:12 +0800109* Fixed multiple issues preventing ``cryptography`` from compiling against
110 LibreSSL 2.7.x.
Paul Kehrer5d187402018-07-16 20:49:51 +0530111* Added
112 :class:`~cryptography.x509.CertificateRevocationList.get_revoked_certificate_by_serial_number`
113 for quick serial number searches in CRLs.
Marti Raudsepp9e1873a2018-07-09 16:11:18 +0300114* The :class:`~cryptography.x509.RelativeDistinguishedName` class now
115 preserves the order of attributes. Duplicate attributes now raise an error
116 instead of silently discarding duplicates.
Alex Gaynorb09b9ec2018-07-15 20:48:57 -0400117* :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap` and
118 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap_with_padding`
119 now raise :class:`~cryptography.hazmat.primitives.keywrap.InvalidUnwrap` if
120 the wrapped key is an invalid length, instead of ``ValueError``.
Paul Kehrer36ad98f2018-05-12 11:57:32 -0400121
Paul Kehrer67ddb8f2018-03-27 13:34:39 -0400122.. _v2-2-2:
123
1242.2.2 - 2018-03-27
125~~~~~~~~~~~~~~~~~~
126
127* Updated Windows, macOS, and ``manylinux1`` wheels to be compiled with
128 OpenSSL 1.1.0h.
129
Alex Gaynora1e9ddc2018-03-20 22:05:01 -0400130.. _v2-2-1:
131
1322.2.1 - 2018-03-20
133~~~~~~~~~~~~~~~~~~
134
135* Reverted a change to ``GeneralNames`` which prohibited having zero elements,
136 due to breakages.
137* Fixed a bug in
138 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap_with_padding`
139 that caused it to raise ``InvalidUnwrap`` when key length modulo 8 was
140 zero.
141
142
Paul Kehrer0d6831d2017-10-11 21:46:47 +0800143.. _v2-2:
144
Paul Kehrer4601fba2018-03-18 22:45:30 -04001452.2 - 2018-03-19
146~~~~~~~~~~~~~~~~
Paul Kehrer0d6831d2017-10-11 21:46:47 +0800147
Paul Kehrer4cf6e782017-10-12 06:06:01 +0800148* **BACKWARDS INCOMPATIBLE:** Support for Python 2.6 has been dropped.
Paul Kehrer858a4292018-01-06 17:55:27 -0600149* Resolved a bug in ``HKDF`` that incorrectly constrained output size.
Paul Kehrer17c8f122018-03-15 13:35:10 -0400150* Added :class:`~cryptography.hazmat.primitives.asymmetric.ec.BrainpoolP256R1`,
151 :class:`~cryptography.hazmat.primitives.asymmetric.ec.BrainpoolP384R1`, and
152 :class:`~cryptography.hazmat.primitives.asymmetric.ec.BrainpoolP512R1` to
153 support inter-operating with systems like German smart meters.
Chris Wolfeaf6f9902017-10-18 14:23:53 -0500154* Added token rotation support to :doc:`Fernet </fernet>` with
155 :meth:`~cryptography.fernet.MultiFernet.rotate`.
Paul Kehrerd6ad9fd2018-02-05 16:47:21 +0800156* Fixed a memory leak in
157 :func:`~cryptography.hazmat.primitives.asymmetric.ec.derive_private_key`.
Paul Kehrercd6cf4a2018-03-18 22:06:13 -0400158* Added support for AES key wrapping with padding via
159 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_wrap_with_padding`
160 and
161 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap_with_padding`
162 .
Paul Kehrer4601fba2018-03-18 22:45:30 -0400163* Allow loading DSA keys with 224 bit ``q``.
Christian Heimes765e7712017-08-03 16:08:09 +0200164
Paul Kehrer66460d82017-11-30 10:21:33 +0800165.. _v2-1-4:
166
1672.1.4 - 2017-11-29
168~~~~~~~~~~~~~~~~~~
169
170* Added ``X509_up_ref`` for an upcoming ``pyOpenSSL`` release.
171
Alex Gaynorb1f9a512017-11-02 16:09:07 -0400172.. _v2-1-3:
173
1742.1.3 - 2017-11-02
175~~~~~~~~~~~~~~~~~~
176
177* Updated Windows, macOS, and ``manylinux1`` wheels to be compiled with
178 OpenSSL 1.1.0g.
179
Alex Gaynord3b9af62017-10-24 12:23:16 -0400180.. _v2-1-2:
181
1822.1.2 - 2017-10-24
183~~~~~~~~~~~~~~~~~~
184
185* Corrected a bug with the ``manylinux1`` wheels where OpenSSL's stack was
186 marked executable.
187
Paul Kehrer0a42f4e2017-10-12 19:35:39 +0800188.. _v2-1-1:
189
1902.1.1 - 2017-10-12
191~~~~~~~~~~~~~~~~~~
192
193* Fixed support for install with the system ``pip`` on Ubuntu 16.04.
194
Christian Heimes765e7712017-08-03 16:08:09 +0200195.. _v2-1:
196
Paul Kehrer0ed0e7e2017-10-11 20:31:09 +08001972.1 - 2017-10-11
198~~~~~~~~~~~~~~~~
Alex Gaynor9c521ee2017-07-17 14:59:03 -0400199
Alex Gaynordd567cb2017-09-30 21:22:07 -0400200* **FINAL DEPRECATION** Python 2.6 support is deprecated, and will be removed
201 in the next release of ``cryptography``.
Paul Kehrer0d6aaf42017-07-20 13:04:25 +0200202* **BACKWARDS INCOMPATIBLE:** ``Whirlpool``, ``RIPEMD160``, and
203 ``UnsupportedExtension`` have been removed in accordance with our
204 :doc:`/api-stability` policy.
Christian Heimesa0022ea2017-10-17 04:56:01 +0200205* **BACKWARDS INCOMPATIBLE:**
206 :attr:`DNSName.value <cryptography.x509.DNSName.value>`,
207 :attr:`RFC822Name.value <cryptography.x509.RFC822Name.value>`, and
208 :attr:`UniformResourceIdentifier.value
209 <cryptography.x509.UniformResourceIdentifier.value>`
210 will now return an :term:`A-label` string when parsing a certificate
211 containing an internationalized domain name (IDN) or if the caller passed
212 a :term:`U-label` to the constructor. See below for additional deprecations
213 related to this change.
Alex Gaynor4c41ab02017-08-23 20:33:01 -0400214* Installing ``cryptography`` now requires ``pip`` 6 or newer.
Paul Kehrere885bd62017-10-11 20:29:23 +0800215* Deprecated passing :term:`U-label` strings to the
216 :class:`~cryptography.x509.DNSName`,
217 :class:`~cryptography.x509.UniformResourceIdentifier`, and
218 :class:`~cryptography.x509.RFC822Name` constructors. Instead, users should
219 pass values as :term:`A-label` strings with ``idna`` encoding if necessary.
220 This change will not affect anyone who is not processing internationalized
221 domains.
Paul Kehrer62ebb422017-09-28 23:46:49 +0800222* Added support for
223 :class:`~cryptography.hazmat.primitives.ciphers.algorithms.ChaCha20`. In
224 most cases users should choose
225 :class:`~cryptography.hazmat.primitives.ciphers.aead.ChaCha20Poly1305`
226 rather than using this unauthenticated form.
Paul Kehrerf944c402017-08-12 08:52:55 -0500227* Added :meth:`~cryptography.x509.CertificateRevocationList.is_signature_valid`
228 to :class:`~cryptography.x509.CertificateRevocationList`.
Paul Kehrere2c1c0f2017-08-22 09:37:32 -0700229* Support :class:`~cryptography.hazmat.primitives.hashes.BLAKE2b` and
230 :class:`~cryptography.hazmat.primitives.hashes.BLAKE2s` with
231 :class:`~cryptography.hazmat.primitives.hmac.HMAC`.
Paul Kehrera397d752017-10-02 10:03:20 +0800232* Added support for
233 :class:`~cryptography.hazmat.primitives.ciphers.modes.XTS` mode for
234 AES.
Paul Kehrerd4bde9c2017-09-09 07:03:50 +0800235* Added support for using labels with
236 :class:`~cryptography.hazmat.primitives.asymmetric.padding.OAEP` when using
237 OpenSSL 1.0.2 or greater.
Paul Kehrer72c92f52017-09-26 10:23:24 +0800238* Improved compatibility with NSS when issuing certificates from an issuer
239 that has a subject with non-``UTF8String`` string types.
Paul Kehrer5e3cc982017-09-22 21:29:36 +0800240* Add support for the :class:`~cryptography.x509.DeltaCRLIndicator` extension.
Paul Kehrer5d669662017-09-11 09:16:34 +0800241* Add support for the :class:`~cryptography.x509.TLSFeature`
242 extension. This is commonly used for enabling ``OCSP Must-Staple`` in
243 certificates.
Paul Kehrerb76bcf82017-09-24 08:44:12 +0800244* Add support for the :class:`~cryptography.x509.FreshestCRL` extension.
Paul Kehrer0d6aaf42017-07-20 13:04:25 +0200245
Paul Kehrerad294c62017-08-03 20:16:32 -0500246.. _v2-0-3:
247
2482.0.3 - 2017-08-03
249~~~~~~~~~~~~~~~~~~
250
251* Fixed an issue with weak linking symbols when compiling on macOS
252 versions older than 10.12.
253
254
Christian Heimes765e7712017-08-03 16:08:09 +0200255.. _v2-0-2:
256
Paul Kehrer2bab0ac2017-07-27 06:03:27 -05002572.0.2 - 2017-07-27
258~~~~~~~~~~~~~~~~~~
259
260* Marked all symbols as hidden in the ``manylinux1`` wheel to avoid a
261 bug with symbol resolution in certain scenarios.
262
Christian Heimes765e7712017-08-03 16:08:09 +0200263
264.. _v2-0-1:
265
Paul Kehrerdce57f62017-07-26 19:18:55 -05002662.0.1 - 2017-07-26
267~~~~~~~~~~~~~~~~~~
268
269* Fixed a compilation bug affecting OpenBSD.
270* Altered the ``manylinux1`` wheels to statically link OpenSSL instead of
271 dynamically linking and bundling the shared object. This should resolve
272 crashes seen when using ``uwsgi`` or other binaries that link against
273 OpenSSL independently.
274* Fixed the stack level for the ``signer`` and ``verifier`` warnings.
275
Christian Heimes765e7712017-08-03 16:08:09 +0200276
277.. _v2-0:
278
Paul Kehrer9799e582017-07-17 16:38:15 +02002792.0 - 2017-07-17
280~~~~~~~~~~~~~~~~
Alex Gaynorb90e8d82017-05-29 23:10:39 -0400281
Paul Kehrere3a2fb22017-06-26 15:08:33 -1000282* **BACKWARDS INCOMPATIBLE:** Support for Python 3.3 has been dropped.
Paul Kehrer85675fc2017-07-01 13:02:37 -0500283* We now ship ``manylinux1`` wheels linked against OpenSSL 1.1.0f. These wheels
284 will be automatically used with most Linux distributions if you are running
285 the latest pip.
Paul Kehrer1a5d70e2017-06-03 17:11:55 -1000286* Deprecated the use of ``signer`` on
287 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`,
288 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`,
289 and
290 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey`
291 in favor of ``sign``.
292* Deprecated the use of ``verifier`` on
293 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`,
294 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`,
295 and
296 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey`
297 in favor of ``verify``.
Alex Gaynor6a0718f2017-06-04 13:36:58 -0400298* Added support for parsing
299 :class:`~cryptography.x509.certificate_transparency.SignedCertificateTimestamp`
300 objects from X.509 certificate extensions.
Paul Kehrer7e53d912017-06-07 18:08:57 -1000301* Added support for
302 :class:`~cryptography.hazmat.primitives.ciphers.aead.ChaCha20Poly1305`.
Paul Kehrer1a2e8172017-07-16 16:46:13 +0200303* Added support for
304 :class:`~cryptography.hazmat.primitives.ciphers.aead.AESCCM`.
Paul Kehrera2173582017-07-17 13:10:14 +0200305* Added
306 :class:`~cryptography.hazmat.primitives.ciphers.aead.AESGCM`, a "one shot"
307 API for AES GCM encryption.
Paul Kehrer3e357f72017-06-09 02:31:30 -1000308* Added support for :doc:`/hazmat/primitives/asymmetric/x25519`.
Paul Kehrer361a9fc2017-06-24 10:12:04 -1000309* Added support for serializing and deserializing Diffie-Hellman parameters
310 with
311 :func:`~cryptography.hazmat.primitives.serialization.load_pem_parameters`,
312 :func:`~cryptography.hazmat.primitives.serialization.load_der_parameters`,
313 and
Paul Kehrer2748e2e2017-06-24 13:20:15 -1000314 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHParameters.parameter_bytes`
Paul Kehrer361a9fc2017-06-24 10:12:04 -1000315 .
Alex Gaynor0c9aed92017-07-08 21:50:01 -0400316* The ``extensions`` attribute on :class:`~cryptography.x509.Certificate`,
317 :class:`~cryptography.x509.CertificateSigningRequest`,
318 :class:`~cryptography.x509.CertificateRevocationList`, and
319 :class:`~cryptography.x509.RevokedCertificate` now caches the computed
320 ``Extensions`` object. There should be no performance change, just a
321 performance improvement for programs accessing the ``extensions`` attribute
322 multiple times.
Paul Kehrer1a5d70e2017-06-03 17:11:55 -1000323
Christian Heimes765e7712017-08-03 16:08:09 +0200324
325.. _v1-9:
326
Paul Kehrer23ead432017-05-29 21:10:46 -05003271.9 - 2017-05-29
328~~~~~~~~~~~~~~~~
Paul Kehrerd0aad452017-03-10 08:36:18 -0400329
Paul Kehrera55cc3b2017-05-27 18:00:44 -0500330* **BACKWARDS INCOMPATIBLE:** Elliptic Curve signature verification no longer
Alex Gaynor5ca99462017-05-10 23:11:30 -0400331 returns ``True`` on success. This brings it in line with the interface's
332 documentation, and our intent. The correct way to use
333 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.verify`
334 has always been to check whether or not
335 :class:`~cryptography.exceptions.InvalidSignature` was raised.
Alex Gaynor2240ba22017-05-20 13:23:15 -0700336* **BACKWARDS INCOMPATIBLE:** Dropped support for macOS 10.7 and 10.8.
Alex Gaynor6091e112017-05-23 20:31:03 -0700337* **BACKWARDS INCOMPATIBLE:** The minimum supported PyPy version is now 5.3.
Paul Kehrer66e1eb22017-05-25 15:56:57 -0500338* Python 3.3 support has been deprecated, and will be removed in the next
Alex Gaynordb511142017-05-22 20:53:47 -0700339 ``cryptography`` release.
Alex Gaynor2240ba22017-05-20 13:23:15 -0700340* Add support for providing ``tag`` during
341 :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` finalization via
342 :meth:`~cryptography.hazmat.primitives.ciphers.AEADDecryptionContext.finalize_with_tag`.
Paul Kehrer6fcbebd2017-05-20 12:04:06 -0700343* Fixed an issue preventing ``cryptography`` from compiling against
344 LibreSSL 2.5.x.
Paul Kehrer416f5262017-05-23 23:38:59 -0700345* Added
346 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.key_size`
347 and
348 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey.key_size`
349 as convenience methods for determining the bit size of a secret scalar for
350 the curve.
Alex Gaynord08ddd52017-05-20 09:01:54 -0700351* Accessing an unrecognized extension marked critical on an X.509 object will
352 no longer raise an ``UnsupportedExtension`` exception, instead an
353 :class:`~cryptography.x509.UnrecognizedExtension` object will be returned.
354 This behavior was based on a poor reading of the RFC, unknown critical
355 extensions only need to be rejected on certificate verification.
Paul Kehrer51032352017-05-20 10:09:02 -0700356* The CommonCrypto backend has been removed.
Paul Kehrera4668c62017-05-20 13:25:47 -0700357* MultiBackend has been removed.
Paul Kehrer70e8f902017-05-23 16:55:19 -0700358* ``Whirlpool`` and ``RIPEMD160`` have been deprecated.
Paul Kehrer5fb10212017-05-02 12:04:53 -0500359
Christian Heimes765e7712017-08-03 16:08:09 +0200360
361.. _v1-8-2:
362
Paul Kehrer139b25f2017-05-26 06:32:15 -05003631.8.2 - 2017-05-26
364~~~~~~~~~~~~~~~~~~
365
366* Fixed a compilation bug affecting OpenSSL 1.1.0f.
367* Updated Windows and macOS wheels to be compiled against OpenSSL 1.1.0f.
Paul Kehrerd0aad452017-03-10 08:36:18 -0400368
Christian Heimes765e7712017-08-03 16:08:09 +0200369
370.. _v1-8-1:
371
Paul Kehrerd0aad452017-03-10 08:36:18 -04003721.8.1 - 2017-03-10
373~~~~~~~~~~~~~~~~~~
374
375* Fixed macOS wheels to properly link against 1.1.0 rather than 1.0.2.
376
Christian Heimes765e7712017-08-03 16:08:09 +0200377
378.. _v1-8:
379
Paul Kehrer928e4ee2017-03-09 22:43:42 -04003801.8 - 2017-03-09
381~~~~~~~~~~~~~~~~
Paul Kehrerfad63fe2016-12-12 16:41:26 -0600382
Alex Gaynor31b5d782016-12-23 12:20:36 -0500383* Added support for Python 3.6.
Alex Gaynor5a059022017-02-11 10:05:34 -0500384* Windows and macOS wheels now link against OpenSSL 1.1.0.
Paul Kehrere9dbbd82017-03-09 18:43:40 -0400385* macOS wheels are no longer universal. This change significantly shrinks the
386 size of the wheels. Users on macOS 32-bit Python (if there are any) should
387 migrate to 64-bit or build their own packages.
Ofek Lev0e6a1292017-02-08 00:09:41 -0500388* Changed ASN.1 dependency from ``pyasn1`` to ``asn1crypto`` resulting in a
389 general performance increase when encoding/decoding ASN.1 structures. Also,
390 the ``pyasn1_modules`` test dependency is no longer required.
Paul Kehrer9b34ca92017-02-16 22:20:38 -0600391* Added support for
392 :meth:`~cryptography.hazmat.primitives.ciphers.CipherContext.update_into` on
393 :class:`~cryptography.hazmat.primitives.ciphers.CipherContext`.
Aviv Palivoda1c7bd662017-02-08 06:38:42 +0200394* Added
395 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKeyWithSerialization.private_bytes`
396 to
397 :class:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKeyWithSerialization`.
Aviv Palivoda1c7bd662017-02-08 06:38:42 +0200398* Added
Paul Kehrer2748e2e2017-06-24 13:20:15 -1000399 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPublicKey.public_bytes`
Aviv Palivoda1c7bd662017-02-08 06:38:42 +0200400 to
Paul Kehrer2748e2e2017-06-24 13:20:15 -1000401 :class:`~cryptography.hazmat.primitives.asymmetric.dh.DHPublicKey`.
Paul Kehrer7a130852017-02-09 05:55:34 +0800402* :func:`~cryptography.hazmat.primitives.serialization.load_pem_private_key`
403 and
404 :func:`~cryptography.hazmat.primitives.serialization.load_der_private_key`
405 now require that ``password`` must be bytes if provided. Previously this
406 was documented but not enforced.
Paul Kehrer20fe2be2017-03-09 13:06:51 -0400407* Added support for subgroup order in :doc:`/hazmat/primitives/asymmetric/dh`.
Aviv Palivoda1c7bd662017-02-08 06:38:42 +0200408
Christian Heimes765e7712017-08-03 16:08:09 +0200409
410.. _v1-7-2:
411
Paul Kehrerc7a2e722017-01-28 17:45:57 +09004121.7.2 - 2017-01-27
413~~~~~~~~~~~~~~~~~~
414
415* Updated Windows and macOS wheels to be compiled against OpenSSL 1.0.2k.
416
Christian Heimes765e7712017-08-03 16:08:09 +0200417
418.. _v1-7-1:
419
Paul Kehrerc8f47ad2016-12-14 19:26:06 -06004201.7.1 - 2016-12-13
421~~~~~~~~~~~~~~~~~~
422
423* Fixed a regression in ``int_from_bytes`` where it failed to accept
424 ``bytearray``.
Paul Kehrerfad63fe2016-12-12 16:41:26 -0600425
Christian Heimes765e7712017-08-03 16:08:09 +0200426
427.. _v1-7:
428
Paul Kehrer5df72e82016-12-12 12:06:09 -06004291.7 - 2016-12-12
430~~~~~~~~~~~~~~~~
Paul Kehrer08585912016-11-22 20:04:40 +0800431
Alex Gaynor29b2ebc2016-11-22 09:25:17 -0500432* Support for OpenSSL 1.0.0 has been removed. Users on older version of OpenSSL
433 will need to upgrade.
Aviv Palivoda495f21a2016-11-25 18:51:28 +0200434* Added support for Diffie-Hellman key exchange using
Alex Gaynora9b86902017-05-24 15:01:14 -0700435 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKey.exchange`.
Paul Kehrera22964a2016-12-10 09:15:41 -0600436* The OS random engine for OpenSSL has been rewritten to improve compatibility
437 with embedded Python and other edge cases. More information about this change
438 can be found in the
439 `pull request <https://github.com/pyca/cryptography/pull/3229>`_.
Paul Kehrer08585912016-11-22 20:04:40 +0800440
Christian Heimes765e7712017-08-03 16:08:09 +0200441
442.. _v1-6:
443
Paul Kehrer4a2f36b2016-11-22 10:50:28 +08004441.6 - 2016-11-22
445~~~~~~~~~~~~~~~~
Alex Gaynorf25e63d2016-08-26 20:55:44 -0400446
Alex Gaynor2e8725d2016-08-29 21:40:19 -0400447* Deprecated support for OpenSSL 1.0.0. Support will be removed in
448 ``cryptography`` 1.7.
Paul Kehrer500850b2016-11-20 00:40:16 +0800449* Replaced the Python-based OpenSSL locking callbacks with a C version to fix
450 a potential deadlock that could occur if a garbage collection cycle occurred
451 while inside the lock.
Paul Kehrer306ce512016-08-29 09:36:09 +0800452* Added support for :class:`~cryptography.hazmat.primitives.hashes.BLAKE2b` and
453 :class:`~cryptography.hazmat.primitives.hashes.BLAKE2s` when using OpenSSL
454 1.1.0.
Paul Kehrerc7b29b82016-09-01 09:17:21 +0800455* Added
456 :attr:`~cryptography.x509.Certificate.signature_algorithm_oid` support to
457 :class:`~cryptography.x509.Certificate`.
458* Added
459 :attr:`~cryptography.x509.CertificateSigningRequest.signature_algorithm_oid`
460 support to :class:`~cryptography.x509.CertificateSigningRequest`.
461* Added
462 :attr:`~cryptography.x509.CertificateRevocationList.signature_algorithm_oid`
463 support to :class:`~cryptography.x509.CertificateRevocationList`.
Terry Chiad8a27df2016-09-01 23:39:57 +0800464* Added support for :class:`~cryptography.hazmat.primitives.kdf.scrypt.Scrypt`
465 when using OpenSSL 1.1.0.
Paul Kehrer99777862016-11-15 07:34:55 +0800466* Added a workaround to improve compatibility with Python application bundling
467 tools like ``PyInstaller`` and ``cx_freeze``.
Paul Kehrer8b89bcc2016-09-03 11:31:43 -0500468* Added support for generating a
469 :meth:`~cryptography.x509.random_serial_number`.
Paul Kehrer3feeec82016-10-01 07:12:27 -0500470* Added support for encoding ``IPv4Network`` and ``IPv6Network`` in X.509
471 certificates for use with :class:`~cryptography.x509.NameConstraints`.
Paul Kehrer500850b2016-11-20 00:40:16 +0800472* Added :meth:`~cryptography.x509.Name.public_bytes` to
473 :class:`~cryptography.x509.Name`.
Fraser Tweedale02467dd2016-11-07 15:54:04 +1000474* Added :class:`~cryptography.x509.RelativeDistinguishedName`
475* :class:`~cryptography.x509.DistributionPoint` now accepts
476 :class:`~cryptography.x509.RelativeDistinguishedName` for
477 :attr:`~cryptography.x509.DistributionPoint.relative_name`.
478 Deprecated use of :class:`~cryptography.x509.Name` as
479 :attr:`~cryptography.x509.DistributionPoint.relative_name`.
Fraser Tweedale01ee6f52016-11-12 01:28:56 +1000480* :class:`~cryptography.x509.Name` now accepts an iterable of
481 :class:`~cryptography.x509.RelativeDistinguishedName`. RDNs can
482 be accessed via the :attr:`~cryptography.x509.Name.rdns`
483 attribute. When constructed with an iterable of
484 :class:`~cryptography.x509.NameAttribute`, each attribute becomes
485 a single-valued RDN.
Ofek Levc41b9d42016-11-11 20:07:11 -0500486* Added
487 :func:`~cryptography.hazmat.primitives.asymmetric.ec.derive_private_key`.
Paul Kehrerec7fc462016-11-21 07:55:18 +0800488* Added support for signing and verifying RSA, DSA, and ECDSA signatures with
Paul Kehrerf555c742016-11-20 22:48:10 +0800489 :class:`~cryptography.hazmat.primitives.asymmetric.utils.Prehashed`
490 digests.
Terry Chiad8a27df2016-09-01 23:39:57 +0800491
Christian Heimes765e7712017-08-03 16:08:09 +0200492
493.. _v1-5-3:
494
Alex Gaynorb94cacf2016-11-06 01:27:20 -04004951.5.3 - 2016-11-05
496~~~~~~~~~~~~~~~~~~
497
498* **SECURITY ISSUE**: Fixed a bug where ``HKDF`` would return an empty
499 byte-string if used with a ``length`` less than ``algorithm.digest_size``.
Alex Gaynorfb0e7192016-11-09 19:51:09 -0500500 Credit to **Markus Döring** for reporting the issue. *CVE-2016-9243*
Alex Gaynorb94cacf2016-11-06 01:27:20 -0400501
Christian Heimes765e7712017-08-03 16:08:09 +0200502
503.. _v1-5-2:
504
Alex Gaynorb4c087a2016-09-26 18:11:59 -04005051.5.2 - 2016-09-26
506~~~~~~~~~~~~~~~~~~
507
508* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2j.
Paul Kehrer306ce512016-08-29 09:36:09 +0800509
Christian Heimes765e7712017-08-03 16:08:09 +0200510
511.. _v1-5-1:
512
Paul Kehrer08652e92016-09-22 22:47:50 -05005131.5.1 - 2016-09-22
514~~~~~~~~~~~~~~~~~~
515
516* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2i.
517* Resolved a ``UserWarning`` when used with cffi 1.8.3.
518* Fixed a memory leak in name creation with X.509.
519* Added a workaround for old versions of setuptools.
520* Fixed an issue preventing ``cryptography`` from compiling against
521 OpenSSL 1.0.2i.
522
523
Christian Heimes765e7712017-08-03 16:08:09 +0200524
525.. _v1-5:
526
Paul Kehrerc0ee7382016-08-26 22:59:49 +08005271.5 - 2016-08-26
528~~~~~~~~~~~~~~~~
Paul Kehrer67ea4442016-06-04 12:00:54 -0700529
Alex Gaynor17097bf2016-06-27 22:29:38 -0400530* Added
531 :func:`~cryptography.hazmat.primitives.asymmetric.padding.calculate_max_pss_salt_length`.
Aviv Palivodaf67429b2016-06-30 21:42:46 +0300532* Added "one shot"
533 :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey.sign`
534 and
535 :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey.verify`
536 methods to DSA keys.
Aviv Palivoda2120a8e2016-07-02 19:43:06 +0300537* Added "one shot"
538 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey.sign`
539 and
540 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.verify`
541 methods to ECDSA keys.
Maximilian Hils679a9142016-07-31 16:43:19 -0700542* Switched back to the older callback model on Python 3.5 in order to mitigate
543 the locking callback problem with OpenSSL <1.1.0.
InvalidInterrupt8e66ca62016-08-16 19:39:31 -0700544* :class:`~cryptography.x509.CertificateBuilder`,
545 :class:`~cryptography.x509.CertificateRevocationListBuilder`, and
546 :class:`~cryptography.x509.RevokedCertificateBuilder` now accept timezone
547 aware ``datetime`` objects as method arguments
Paul Kehrer07ea3cd2016-08-26 21:48:24 +0800548* ``cryptography`` now supports OpenSSL 1.1.0 as a compilation target.
Alex Gaynor17097bf2016-06-27 22:29:38 -0400549
Paul Kehrer67ea4442016-06-04 12:00:54 -0700550
Christian Heimes765e7712017-08-03 16:08:09 +0200551
552.. _v1-4:
553
Paul Kehrer69365ce2016-06-04 09:57:11 -07005541.4 - 2016-06-04
555~~~~~~~~~~~~~~~~
Alex Gaynorf8c75fc2016-03-18 19:54:45 -0400556
Paul Kehrer69365ce2016-06-04 09:57:11 -0700557* Support for OpenSSL 0.9.8 has been removed. Users on older versions of
558 OpenSSL will need to upgrade.
Paul Kehrercb0fa2e2016-05-29 22:37:33 -0500559* Added :class:`~cryptography.hazmat.primitives.kdf.kbkdf.KBKDFHMAC`.
Alex Gaynor94989292016-06-03 13:04:26 -0700560* Added support for ``OpenSSH`` public key serialization.
Paul Kehrer69365ce2016-06-04 09:57:11 -0700561* Added support for SHA-2 in RSA
562 :class:`~cryptography.hazmat.primitives.asymmetric.padding.OAEP` when using
563 OpenSSL 1.0.2 or greater.
564* Added "one shot"
565 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey.sign`
566 and
567 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey.verify`
568 methods to RSA keys.
Alex Gaynor401ac6f2017-02-17 08:23:22 -0500569* Deprecated the ``serial`` attribute on
570 :class:`~cryptography.x509.Certificate`, in favor of
571 :attr:`~cryptography.x509.Certificate.serial_number`.
Paul Kehrer69365ce2016-06-04 09:57:11 -0700572
Alex Gaynorf8c75fc2016-03-18 19:54:45 -0400573
Christian Heimes765e7712017-08-03 16:08:09 +0200574
575.. _v1-3-4:
576
Alex Gaynor57515152016-06-02 20:53:52 -07005771.3.4 - 2016-06-03
578~~~~~~~~~~~~~~~~~~
579
580* Added another OpenSSL function to the bindings to support an upcoming
581 ``pyOpenSSL`` release.
582
583
Christian Heimes765e7712017-08-03 16:08:09 +0200584
585.. _v1-3-3:
586
Alex Gaynor57515152016-06-02 20:53:52 -07005871.3.3 - 2016-06-02
588~~~~~~~~~~~~~~~~~~
589
590* Added two new OpenSSL functions to the bindings to support an upcoming
591 ``pyOpenSSL`` release.
592
Christian Heimes765e7712017-08-03 16:08:09 +0200593
594.. _v1-3-2:
595
Paul Kehrerbb8d69a2016-05-04 13:33:20 -05005961.3.2 - 2016-05-04
597~~~~~~~~~~~~~~~~~~
598
599* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2h.
600* Fixed an issue preventing ``cryptography`` from compiling against
601 LibreSSL 2.3.x.
602
Christian Heimes765e7712017-08-03 16:08:09 +0200603
604.. _v1-3-1:
605
Paul Kehrer81f48962016-03-21 17:46:53 -04006061.3.1 - 2016-03-21
607~~~~~~~~~~~~~~~~~~
608
609* Fixed a bug that caused an ``AttributeError`` when using ``mock`` to patch
610 some ``cryptography`` modules.
611
Christian Heimes765e7712017-08-03 16:08:09 +0200612
613.. _v1-3:
614
Paul Kehrerc9694612016-03-17 20:31:44 -04006151.3 - 2016-03-18
616~~~~~~~~~~~~~~~~
Paul Kehrerac904e32016-01-08 07:53:25 -0800617
Cédric Krierbf0f4642016-02-26 18:40:20 +0100618* Added support for padding ANSI X.923 with
619 :class:`~cryptography.hazmat.primitives.padding.ANSIX923`.
Alex Gaynorbe6dd9b2016-01-22 17:12:14 -0500620* Deprecated support for OpenSSL 0.9.8. Support will be removed in
621 ``cryptography`` 1.4.
Paul Kehrerdba49b92016-03-13 20:15:53 -0400622* Added support for the :class:`~cryptography.x509.PolicyConstraints`
623 X.509 extension including both parsing and generation using
624 :class:`~cryptography.x509.CertificateBuilder` and
625 :class:`~cryptography.x509.CertificateSigningRequestBuilder`.
Paul Kehrer15732122016-03-06 20:58:26 -0430626* Added :attr:`~cryptography.x509.CertificateSigningRequest.is_signature_valid`
627 to :class:`~cryptography.x509.CertificateSigningRequest`.
Alex Gaynoraf503662016-03-05 10:40:50 -0500628* Fixed an intermittent ``AssertionError`` when performing an RSA decryption on
629 an invalid ciphertext, ``ValueError`` is now correctly raised in all cases.
Paul Kehrer61ff3562016-03-11 22:51:27 -0400630* Added
631 :meth:`~cryptography.x509.AuthorityKeyIdentifier.from_issuer_subject_key_identifier`.
Alex Gaynorbe6dd9b2016-01-22 17:12:14 -0500632
Christian Heimes765e7712017-08-03 16:08:09 +0200633
634.. _v1-2-3:
635
Alex Gaynor287ab1b2016-03-01 22:15:55 -05006361.2.3 - 2016-03-01
637~~~~~~~~~~~~~~~~~~
638
639* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2g.
640
Christian Heimes765e7712017-08-03 16:08:09 +0200641
642.. _v1-2-2:
643
Paul Kehrer2c6b8d02016-01-29 13:36:40 -06006441.2.2 - 2016-01-29
645~~~~~~~~~~~~~~~~~~
646
647* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2f.
648
Christian Heimes765e7712017-08-03 16:08:09 +0200649
650.. _v1-2-1:
651
Paul Kehrer56ea7b82016-01-08 11:53:20 -08006521.2.1 - 2016-01-08
653~~~~~~~~~~~~~~~~~~
654
655* Reverts a change to an OpenSSL ``EVP_PKEY`` object that caused errors with
656 ``pyOpenSSL``.
657
Christian Heimes765e7712017-08-03 16:08:09 +0200658
659.. _v1-2:
660
Paul Kehrer577f95e2016-01-07 21:56:53 -08006611.2 - 2016-01-08
662~~~~~~~~~~~~~~~~
Paul Kehrerc5b430f2015-10-29 07:52:35 +0900663
Paul Kehrer49bb7562015-12-25 16:17:40 -0600664* **BACKWARDS INCOMPATIBLE:**
665 :class:`~cryptography.x509.RevokedCertificate`
666 :attr:`~cryptography.x509.RevokedCertificate.extensions` now uses extension
667 classes rather than returning raw values inside the
668 :class:`~cryptography.x509.Extension`
669 :attr:`~cryptography.x509.Extension.value`. The new classes
670 are:
671
672 * :class:`~cryptography.x509.CertificateIssuer`
Paul Kehrer7058ece2015-12-25 22:28:29 -0600673 * :class:`~cryptography.x509.CRLReason`
Paul Kehrer23c0bbc2015-12-25 22:35:19 -0600674 * :class:`~cryptography.x509.InvalidityDate`
Paul Kehrerf23722a2015-12-31 15:56:56 -0600675* Deprecated support for OpenSSL 0.9.8 and 1.0.0. At this time there is no time
676 table for actually dropping support, however we strongly encourage all users
Paul Kehrer0509ec22016-01-08 07:56:17 -0800677 to upgrade, as those versions no longer receive support from the OpenSSL
Paul Kehrerf23722a2015-12-31 15:56:56 -0600678 project.
Paul Kehrerd91e7c12015-10-01 16:50:42 -0500679* The :class:`~cryptography.x509.Certificate` class now has
680 :attr:`~cryptography.x509.Certificate.signature` and
Paul Kehrerd2898052015-11-03 22:00:41 +0900681 :attr:`~cryptography.x509.Certificate.tbs_certificate_bytes` attributes.
Paul Kehrer80dc7522015-12-03 22:19:30 -0600682* The :class:`~cryptography.x509.CertificateSigningRequest` class now has
683 :attr:`~cryptography.x509.CertificateSigningRequest.signature` and
684 :attr:`~cryptography.x509.CertificateSigningRequest.tbs_certrequest_bytes`
685 attributes.
Paul Kehrer18a96122015-12-21 11:14:34 -0600686* The :class:`~cryptography.x509.CertificateRevocationList` class now has
687 :attr:`~cryptography.x509.CertificateRevocationList.signature` and
688 :attr:`~cryptography.x509.CertificateRevocationList.tbs_certlist_bytes`
689 attributes.
Paul Kehrer8b399b72015-12-02 22:53:40 -0600690* :class:`~cryptography.x509.NameConstraints` are now supported in the
Paul Kehrer756d7d22015-12-02 23:45:42 -0600691 :class:`~cryptography.x509.CertificateBuilder` and
692 :class:`~cryptography.x509.CertificateSigningRequestBuilder`.
Paul Kehrer54a837d2015-12-20 23:42:32 -0600693* Support serialization of certificate revocation lists using the
Paul Kehrer2d1d24d2015-12-21 09:23:52 -0600694 :meth:`~cryptography.x509.CertificateRevocationList.public_bytes` method of
Paul Kehrer54a837d2015-12-20 23:42:32 -0600695 :class:`~cryptography.x509.CertificateRevocationList`.
Paul Kehrer51f39cb2015-12-21 21:17:39 -0600696* Add support for parsing :class:`~cryptography.x509.CertificateRevocationList`
697 :meth:`~cryptography.x509.CertificateRevocationList.extensions` in the
Paul Kehrer2587d302015-12-22 17:20:42 -0600698 OpenSSL backend. The following extensions are currently supported:
699
700 * :class:`~cryptography.x509.AuthorityInformationAccess`
701 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
Paul Kehrer3b95cd72015-12-22 21:40:20 -0600702 * :class:`~cryptography.x509.CRLNumber`
Paul Kehrer2587d302015-12-22 17:20:42 -0600703 * :class:`~cryptography.x509.IssuerAlternativeName`
Paul Kehrer09ad50c2015-12-26 13:59:27 -0600704* Added :class:`~cryptography.x509.CertificateRevocationListBuilder` and
705 :class:`~cryptography.x509.RevokedCertificateBuilder` to allow creation of
706 CRLs.
Paul Kehrer58ddc112015-12-30 20:19:00 -0600707* Unrecognized non-critical X.509 extensions are now parsed into an
708 :class:`~cryptography.x509.UnrecognizedExtension` object.
Paul Kehrerd91e7c12015-10-01 16:50:42 -0500709
Christian Heimes765e7712017-08-03 16:08:09 +0200710
711.. _v1-1-2:
712
Paul Kehrer869cfd92015-12-10 14:12:05 -06007131.1.2 - 2015-12-10
714~~~~~~~~~~~~~~~~~~
715
716* Fixed a SIGBUS crash with the OS X wheels caused by redefinition of a
717 method.
718* Fixed a runtime error ``undefined symbol EC_GFp_nistp224_method`` that
719 occurred with some OpenSSL installations.
720* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2e.
721
Christian Heimes765e7712017-08-03 16:08:09 +0200722
723.. _v1-1-1:
724
Paul Kehrerdcf40fc2015-11-18 22:11:36 -06007251.1.1 - 2015-11-19
726~~~~~~~~~~~~~~~~~~
727
728* Fixed several small bugs related to compiling the OpenSSL bindings with
729 unusual OpenSSL configurations.
730* Resolved an issue where, depending on the method of installation and
731 which Python interpreter they were using, users on El Capitan (OS X 10.11)
732 may have seen an ``InternalError`` on import.
733
Christian Heimes765e7712017-08-03 16:08:09 +0200734
735.. _v1-1:
736
Paul Kehrere9ac0272015-10-28 15:48:01 +09007371.1 - 2015-10-28
738~~~~~~~~~~~~~~~~
Paul Kehrerbff54ef2015-08-12 08:47:34 -0500739
Alex Gaynor39d38b92015-10-17 16:44:15 -0400740* Added support for Elliptic Curve Diffie-Hellman with
Alex Gaynord2949892015-10-17 16:45:55 -0400741 :class:`~cryptography.hazmat.primitives.asymmetric.ec.ECDH`.
Alex Gaynorace036d2015-09-24 20:23:08 -0400742* Added :class:`~cryptography.hazmat.primitives.kdf.x963kdf.X963KDF`.
Paul Kehrer87355482015-10-21 20:27:44 -0500743* Added support for parsing certificate revocation lists (CRLs) using
744 :func:`~cryptography.x509.load_pem_x509_crl` and
745 :func:`~cryptography.x509.load_der_x509_crl`.
Paul Kehrer0d76a2e2015-05-17 13:36:13 -0700746* Add support for AES key wrapping with
747 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_wrap` and
748 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap`.
Paul Kehrere9ac0272015-10-28 15:48:01 +0900749* Added a ``__hash__`` method to :class:`~cryptography.x509.Name`.
Paul Kehrer1a1b1152015-10-28 09:33:05 +0900750* Add support for encoding and decoding elliptic curve points to a byte string
751 form using
752 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.encode_point`
753 and
754 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.from_encoded_point`.
Paul Kehrere9ac0272015-10-28 15:48:01 +0900755* Added :meth:`~cryptography.x509.Extensions.get_extension_for_class`.
756* :class:`~cryptography.x509.CertificatePolicies` are now supported in the
757 :class:`~cryptography.x509.CertificateBuilder`.
758* ``countryName`` is now encoded as a ``PrintableString`` when creating subject
759 and issuer distinguished names with the Certificate and CSR builder classes.
Paul Kehrer1a1b1152015-10-28 09:33:05 +0900760
Christian Heimes765e7712017-08-03 16:08:09 +0200761
762.. _v1-0-2:
763
Paul Kehrer8addede2015-09-26 22:57:35 -05007641.0.2 - 2015-09-27
765~~~~~~~~~~~~~~~~~~
766* **SECURITY ISSUE**: The OpenSSL backend prior to 1.0.2 made extensive use
767 of assertions to check response codes where our tests could not trigger a
768 failure. However, when Python is run with ``-O`` these asserts are optimized
769 away. If a user ran Python with this flag and got an invalid response code
770 this could result in undefined behavior or worse. Accordingly, all response
771 checks from the OpenSSL backend have been converted from ``assert``
772 to a true function call. Credit **Emilia Käsper (Google Security Team)**
773 for the report.
774
Christian Heimes765e7712017-08-03 16:08:09 +0200775
776.. _v1-0-1:
777
Paul Kehrer2f6b1692015-09-05 20:58:52 -05007781.0.1 - 2015-09-05
779~~~~~~~~~~~~~~~~~~
780
781* We now ship OS X wheels that statically link OpenSSL by default. When
782 installing a wheel on OS X 10.10+ (and using a Python compiled against the
783 10.10 SDK) users will no longer need to compile. See :doc:`/installation` for
784 alternate installation methods if required.
785* Set the default string mask to UTF-8 in the OpenSSL backend to resolve
786 character encoding issues with older versions of OpenSSL.
787* Several new OpenSSL bindings have been added to support a future pyOpenSSL
788 release.
789* Raise an error during install on PyPy < 2.6. 1.0+ requires PyPy 2.6+.
Paul Kehrerbff54ef2015-08-12 08:47:34 -0500790
Christian Heimes765e7712017-08-03 16:08:09 +0200791
792.. _v1-0:
793
Paul Kehrer55ab8052015-08-11 18:22:55 -05007941.0 - 2015-08-12
Paul Kehrerd5257ab2015-05-13 20:48:36 -0500795~~~~~~~~~~~~~~~~
796
Paul Kehrer68b3b1e2015-05-19 13:05:21 -0700797* Switched to the new `cffi`_ ``set_source`` out-of-line API mode for
798 compilation. This results in significantly faster imports and lowered
Paul Kehrer73f06c72015-06-07 23:17:39 -0500799 memory consumption. Due to this change we no longer support PyPy releases
800 older than 2.6 nor do we support any released version of PyPy3 (until a
801 version supporting cffi 1.0 comes out).
Paul Kehrer60cc9ef2015-08-04 19:29:52 +0100802* Fix parsing of OpenSSH public keys that have spaces in comments.
Andre Caronbeed2942015-05-18 13:47:36 -0400803* Support serialization of certificate signing requests using the
804 ``public_bytes`` method of
805 :class:`~cryptography.x509.CertificateSigningRequest`.
Andre Carona8aded62015-05-19 20:11:57 -0400806* Support serialization of certificates using the ``public_bytes`` method of
807 :class:`~cryptography.x509.Certificate`.
Jiangge Zhang764f6372015-06-05 18:01:22 +0800808* Add ``get_provisioning_uri`` method to
809 :class:`~cryptography.hazmat.primitives.twofactor.hotp.HOTP` and
810 :class:`~cryptography.hazmat.primitives.twofactor.totp.TOTP` for generating
811 provisioning URIs.
Paul Kehrer66f380c2015-06-12 11:23:34 -0500812* Add :class:`~cryptography.hazmat.primitives.kdf.concatkdf.ConcatKDFHash`
813 and :class:`~cryptography.hazmat.primitives.kdf.concatkdf.ConcatKDFHMAC`.
Ian Cordascoab94b902015-06-17 08:28:02 -0500814* Raise a ``TypeError`` when passing objects that are not text as the value to
815 :class:`~cryptography.x509.NameAttribute`.
Paul Kehrer44171a22015-08-01 21:21:26 +0100816* Add support for :class:`~cryptography.x509.OtherName` as a general name
817 type.
818* Added new X.509 extension support in :class:`~cryptography.x509.Certificate`
819 The following new extensions are now supported:
820
821 * :class:`~cryptography.x509.OCSPNoCheck`
822 * :class:`~cryptography.x509.InhibitAnyPolicy`
823 * :class:`~cryptography.x509.IssuerAlternativeName`
824 * :class:`~cryptography.x509.NameConstraints`
825
826* Extension support was added to
827 :class:`~cryptography.x509.CertificateSigningRequest`.
Ian Cordasco46479d02015-08-03 08:30:20 -0500828* Add support for creating signed certificates with
829 :class:`~cryptography.x509.CertificateBuilder`. This includes support for
Paul Kehrere0ecfdc2015-08-06 10:53:15 +0100830 the following extensions:
Ian Cordasco46479d02015-08-03 08:30:20 -0500831
832 * :class:`~cryptography.x509.BasicConstraints`
833 * :class:`~cryptography.x509.SubjectAlternativeName`
Paul Kehrere0ecfdc2015-08-06 10:53:15 +0100834 * :class:`~cryptography.x509.KeyUsage`
835 * :class:`~cryptography.x509.ExtendedKeyUsage`
836 * :class:`~cryptography.x509.SubjectKeyIdentifier`
837 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
838 * :class:`~cryptography.x509.AuthorityInformationAccess`
839 * :class:`~cryptography.x509.CRLDistributionPoints`
Paul Kehrer683d4d82015-08-06 23:13:45 +0100840 * :class:`~cryptography.x509.InhibitAnyPolicy`
Paul Kehrer2dfd9da2015-08-10 21:30:23 -0500841 * :class:`~cryptography.x509.IssuerAlternativeName`
842 * :class:`~cryptography.x509.OCSPNoCheck`
Ian Cordasco46479d02015-08-03 08:30:20 -0500843
Paul Kehrer91e385d2015-08-08 22:50:28 -0500844* Add support for creating certificate signing requests with
845 :class:`~cryptography.x509.CertificateSigningRequestBuilder`. This includes
846 support for the same extensions supported in the ``CertificateBuilder``.
Paul Kehrer31c5c332015-08-10 11:59:38 -0500847* Deprecate ``encode_rfc6979_signature`` and ``decode_rfc6979_signature`` in
848 favor of
849 :func:`~cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature`
850 and
851 :func:`~cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature`.
852
Paul Kehrer91e385d2015-08-08 22:50:28 -0500853
Christian Heimes765e7712017-08-03 16:08:09 +0200854
855.. _v0-9-3:
856
Paul Kehrer3bbda282015-07-09 09:48:23 -05008570.9.3 - 2015-07-09
858~~~~~~~~~~~~~~~~~~
859
860* Updated Windows wheels to be compiled against OpenSSL 1.0.2d.
861
Christian Heimes765e7712017-08-03 16:08:09 +0200862
863.. _v0-9-2:
864
Paul Kehrer7b411632015-07-03 18:07:41 -05008650.9.2 - 2015-07-04
866~~~~~~~~~~~~~~~~~~
867
868* Updated Windows wheels to be compiled against OpenSSL 1.0.2c.
869
Christian Heimes765e7712017-08-03 16:08:09 +0200870
871.. _v0-9-1:
872
Alex Gaynorc4bb7d52015-06-06 17:27:14 -04008730.9.1 - 2015-06-06
874~~~~~~~~~~~~~~~~~~
875
876* **SECURITY ISSUE**: Fixed a double free in the OpenSSL backend when using DSA
877 to verify signatures. Note that this only affects PyPy 2.6.0 and (presently
878 unreleased) CFFI versions greater than 1.1.0.
879
Christian Heimes765e7712017-08-03 16:08:09 +0200880
881.. _v0-9:
882
Paul Kehrerc486ed52015-05-13 17:59:31 -05008830.9 - 2015-05-13
884~~~~~~~~~~~~~~~~
Paul Kehrer8ce597b2015-03-09 00:01:17 -0500885
Paul Kehrer741fccb2015-04-14 10:22:25 -0400886* Removed support for Python 3.2. This version of Python is rarely used
887 and caused support headaches. Users affected by this should upgrade to 3.3+.
Alex Gaynor6e7f6222015-03-29 21:51:38 -0400888* Deprecated support for Python 2.6. At the time there is no time table for
889 actually dropping support, however we strongly encourage all users to upgrade
890 their Python, as Python 2.6 no longer receives support from the Python core
891 team.
Paul Kehrerebbeedf2015-05-08 18:13:14 -0500892* Add support for the
893 :class:`~cryptography.hazmat.primitives.asymmetric.ec.SECP256K1` elliptic
894 curve.
Alex Gaynor5d27d4d2015-04-04 14:56:02 -0500895* Fixed compilation when using an OpenSSL which was compiled with the
896 ``no-comp`` (``OPENSSL_NO_COMP``) option.
Paul Kehrera2c48652015-03-10 15:48:37 -0500897* Support :attr:`~cryptography.hazmat.primitives.serialization.Encoding.DER`
898 serialization of public keys using the ``public_bytes`` method of
Paul Kehrer1955ebf2015-03-10 08:38:57 -0500899 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`,
900 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`,
901 and
Paul Kehrera2c48652015-03-10 15:48:37 -0500902 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`.
Paul Kehrer919a5b22015-03-14 13:15:17 -0500903* Support :attr:`~cryptography.hazmat.primitives.serialization.Encoding.DER`
904 serialization of private keys using the ``private_bytes`` method of
905 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`,
906 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`,
907 and
908 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`.
Paul Kehrera1a1f232015-03-15 15:34:35 -0500909* Add support for parsing X.509 certificate signing requests (CSRs) with
Paul Kehrer1effb6e2015-03-30 15:05:59 -0500910 :func:`~cryptography.x509.load_pem_x509_csr` and
911 :func:`~cryptography.x509.load_der_x509_csr`.
Paul Kehrerd14dcc52015-04-14 14:21:21 -0400912* Moved ``cryptography.exceptions.InvalidToken`` to
913 :class:`cryptography.hazmat.primitives.twofactor.InvalidToken` and deprecated
914 the old location. This was moved to minimize confusion between this exception
915 and :class:`cryptography.fernet.InvalidToken`.
Paul Kehreraeb77202015-05-13 11:52:38 -0500916* Added support for X.509 extensions in :class:`~cryptography.x509.Certificate`
917 objects. The following extensions are supported as of this release:
918
919 * :class:`~cryptography.x509.BasicConstraints`
920 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
921 * :class:`~cryptography.x509.SubjectKeyIdentifier`
922 * :class:`~cryptography.x509.KeyUsage`
923 * :class:`~cryptography.x509.SubjectAlternativeName`
924 * :class:`~cryptography.x509.ExtendedKeyUsage`
925 * :class:`~cryptography.x509.CRLDistributionPoints`
926 * :class:`~cryptography.x509.AuthorityInformationAccess`
927 * :class:`~cryptography.x509.CertificatePolicies`
928
929 Note that unsupported extensions with the critical flag raise
Alex Gaynord08ddd52017-05-20 09:01:54 -0700930 ``UnsupportedExtension`` while unsupported extensions set to non-critical are
931 silently ignored. Read the :doc:`X.509 documentation</x509/index>` for more
932 information.
Paul Kehrer1955ebf2015-03-10 08:38:57 -0500933
Christian Heimes765e7712017-08-03 16:08:09 +0200934
935.. _v0-8-2:
936
Paul Kehrer33906b82015-04-10 21:00:08 -04009370.8.2 - 2015-04-10
938~~~~~~~~~~~~~~~~~~
939
940* Fixed a race condition when initializing the OpenSSL or CommonCrypto backends
941 in a multi-threaded scenario.
942
Christian Heimes765e7712017-08-03 16:08:09 +0200943
944.. _v0-8-1:
945
Paul Kehrer41a750c2015-03-19 22:46:23 -05009460.8.1 - 2015-03-20
947~~~~~~~~~~~~~~~~~~
948
949* Updated Windows wheels to be compiled against OpenSSL 1.0.2a.
950
Christian Heimes765e7712017-08-03 16:08:09 +0200951
952.. _v0-8:
953
Paul Kehrer5dc4b882015-03-08 18:19:50 -05009540.8 - 2015-03-08
955~~~~~~~~~~~~~~~~
Paul Kehrer08120d72014-12-17 21:37:58 -0600956
Alex Gaynor5d66ca52014-12-25 18:39:39 -0800957* :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key` can
958 now load elliptic curve public keys.
Paul Kehrer836b8302015-01-18 09:42:58 -0600959* Added
Paul Kehrer8802a5b2015-02-13 12:06:57 -0600960 :attr:`~cryptography.x509.Certificate.signature_hash_algorithm` support to
Paul Kehrerb0a80392015-02-11 23:39:49 -0600961 :class:`~cryptography.x509.Certificate`.
962* Added
Paul Kehrer836b8302015-01-18 09:42:58 -0600963 :func:`~cryptography.hazmat.primitives.asymmetric.rsa.rsa_recover_prime_factors`
Paul Kehrer48402ff2015-02-16 15:31:52 -0600964* :class:`~cryptography.hazmat.primitives.kdf.KeyDerivationFunction` was moved
Paul Kehrer7bc36862017-05-29 10:13:35 -0500965 from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer48402ff2015-02-16 15:31:52 -0600966 :mod:`~cryptography.hazmat.primitives.kdf`.
Paul Kehrer719d5362015-01-01 20:03:52 -0600967* Added support for parsing X.509 names. See the
Alex Gaynor5e0da3a2015-07-12 10:35:56 -0500968 :doc:`X.509 documentation</x509/index>` for more information.
Paul Kehrer99a249d2015-01-04 15:55:22 -0600969* Added
970 :func:`~cryptography.hazmat.primitives.serialization.load_der_private_key` to
971 support loading of DER encoded private keys and
972 :func:`~cryptography.hazmat.primitives.serialization.load_der_public_key` to
973 support loading DER encoded public keys.
Steven McDonald27e6b9c2015-02-18 16:37:03 +1100974* Fixed building against LibreSSL, a compile-time substitute for OpenSSL.
Paul Kehrer77f540d2015-02-20 12:53:04 -0600975* FreeBSD 9.2 was removed from the continuous integration system.
Paul Kehrerf28dd452015-03-05 10:22:59 -0600976* Updated Windows wheels to be compiled against OpenSSL 1.0.2.
Paul Kehrer7bfa22e2015-03-04 13:48:30 -0600977* :func:`~cryptography.hazmat.primitives.serialization.load_pem_public_key`
978 and :func:`~cryptography.hazmat.primitives.serialization.load_der_public_key`
Paul Kehrer791afc02015-03-05 14:29:28 -0600979 now support PKCS1 RSA public keys (in addition to the previous support for
Paul Kehrer7bfa22e2015-03-04 13:48:30 -0600980 SubjectPublicKeyInfo format for RSA, EC, and DSA).
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600981* Added
Paul Kehrer59e5c862015-03-02 10:36:50 -0600982 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500983 and deprecated ``EllipticCurvePrivateKeyWithNumbers``.
Paul Kehrer59e5c862015-03-02 10:36:50 -0600984* Added
985 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization.private_bytes`
986 to
987 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`.
988* Added
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600989 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500990 and deprecated ``RSAPrivateKeyWithNumbers``.
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600991* Added
Paul Kehrer223a8f02015-02-28 18:54:10 -0600992 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization.private_bytes`
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600993 to
994 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`.
Paul Kehrerec342632015-03-01 16:53:58 -0600995* Added
996 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500997 and deprecated ``DSAPrivateKeyWithNumbers``.
Paul Kehrerec342632015-03-01 16:53:58 -0600998* Added
999 :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization.private_bytes`
1000 to
1001 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`.
Paul Kehrer3f157e02015-02-28 11:31:06 -06001002* Added
1003 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001004 and deprecated ``RSAPublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -05001005* Added ``public_bytes`` to
Paul Kehrer3f157e02015-02-28 11:31:06 -06001006 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`.
Paul Kehrer419615b2015-03-05 21:01:16 -06001007* Added
1008 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001009 and deprecated ``EllipticCurvePublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -05001010* Added ``public_bytes`` to
Paul Kehrer419615b2015-03-05 21:01:16 -06001011 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`.
Paul Kehrer26006c52015-03-08 18:27:11 -05001012* Added
1013 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001014 and deprecated ``DSAPublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -05001015* Added ``public_bytes`` to
Paul Kehrer26006c52015-03-08 18:27:11 -05001016 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`.
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001017* :class:`~cryptography.hazmat.primitives.hashes.HashAlgorithm` and
1018 :class:`~cryptography.hazmat.primitives.hashes.HashContext` were moved from
Paul Kehrer7bc36862017-05-29 10:13:35 -05001019 ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001020 :mod:`~cryptography.hazmat.primitives.hashes`.
1021* :class:`~cryptography.hazmat.primitives.ciphers.CipherContext`,
1022 :class:`~cryptography.hazmat.primitives.ciphers.AEADCipherContext`,
1023 :class:`~cryptography.hazmat.primitives.ciphers.AEADEncryptionContext`,
1024 :class:`~cryptography.hazmat.primitives.ciphers.CipherAlgorithm`, and
1025 :class:`~cryptography.hazmat.primitives.ciphers.BlockCipherAlgorithm`
Paul Kehrer7bc36862017-05-29 10:13:35 -05001026 were moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001027 :mod:`~cryptography.hazmat.primitives.ciphers`.
1028* :class:`~cryptography.hazmat.primitives.ciphers.modes.Mode`,
1029 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithInitializationVector`,
1030 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithNonce`, and
1031 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithAuthenticationTag`
Paul Kehrer7bc36862017-05-29 10:13:35 -05001032 were moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001033 :mod:`~cryptography.hazmat.primitives.ciphers.modes`.
1034* :class:`~cryptography.hazmat.primitives.padding.PaddingContext` was moved
Paul Kehrer7bc36862017-05-29 10:13:35 -05001035 from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001036 :mod:`~cryptography.hazmat.primitives.padding`.
1037*
1038 :class:`~cryptography.hazmat.primitives.asymmetric.padding.AsymmetricPadding`
Paul Kehrer7bc36862017-05-29 10:13:35 -05001039 was moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001040 :mod:`~cryptography.hazmat.primitives.asymmetric.padding`.
Paul Kehrer1a5d70e2017-06-03 17:11:55 -10001041* ``AsymmetricSignatureContext`` and ``AsymmetricVerificationContext``
Paul Kehrer7bc36862017-05-29 10:13:35 -05001042 were moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer1a5d70e2017-06-03 17:11:55 -10001043 ``cryptography.hazmat.primitives.asymmetric``.
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001044* :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAParameters`,
1045 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAParametersWithNumbers`,
1046 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001047 ``DSAPrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001048 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey` and
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001049 ``DSAPublicKeyWithNumbers`` were moved from
Paul Kehrer7bc36862017-05-29 10:13:35 -05001050 ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001051 :mod:`~cryptography.hazmat.primitives.asymmetric.dsa`
1052* :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurve`,
1053 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurveSignatureAlgorithm`,
1054 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001055 ``EllipticCurvePrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001056 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001057 and ``EllipticCurvePublicKeyWithNumbers``
Paul Kehrer7bc36862017-05-29 10:13:35 -05001058 were moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001059 :mod:`~cryptography.hazmat.primitives.asymmetric.ec`.
1060* :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001061 ``RSAPrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001062 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey` and
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001063 ``RSAPublicKeyWithNumbers`` were moved from
Paul Kehrer7bc36862017-05-29 10:13:35 -05001064 ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001065 :mod:`~cryptography.hazmat.primitives.asymmetric.rsa`.
Alex Gaynor5d66ca52014-12-25 18:39:39 -08001066
Christian Heimes765e7712017-08-03 16:08:09 +02001067
1068.. _v0-7-2:
1069
Paul Kehrer72572f92015-01-16 08:10:12 -060010700.7.2 - 2015-01-16
1071~~~~~~~~~~~~~~~~~~
1072
1073* Updated Windows wheels to be compiled against OpenSSL 1.0.1l.
1074* ``enum34`` is no longer installed on Python 3.4, where it is included in
1075 the standard library.
1076* Added a new function to the OpenSSL bindings to support additional
1077 functionality in pyOpenSSL.
1078
Christian Heimes765e7712017-08-03 16:08:09 +02001079
1080.. _v0-7-1:
1081
Paul Kehrer842e58a2014-12-28 15:17:39 -070010820.7.1 - 2014-12-28
1083~~~~~~~~~~~~~~~~~~
1084
1085* Fixed an issue preventing compilation on platforms where ``OPENSSL_NO_SSL3``
1086 was defined.
1087
Christian Heimes765e7712017-08-03 16:08:09 +02001088
1089.. _v0-7:
1090
Paul Kehrere8135092014-12-17 14:20:40 -060010910.7 - 2014-12-17
1092~~~~~~~~~~~~~~~~
Paul Kehrer98681332014-09-29 21:43:57 -05001093
Alex Gaynordf6a5cd2014-11-07 09:36:47 -03001094* Cryptography has been relicensed from the Apache Software License, Version
1095 2.0, to being available under *either* the Apache Software License, Version
1096 2.0, or the BSD license.
Alex Gaynor4c825132014-10-20 21:27:08 -07001097* Added key-rotation support to :doc:`Fernet </fernet>` with
1098 :class:`~cryptography.fernet.MultiFernet`.
Paul Kehrer214d91d2014-12-18 07:20:04 -06001099* More bit-lengths are now supported for ``p`` and ``q`` when loading DSA keys
Alex Gaynora438e832014-10-19 19:47:05 -07001100 from numbers.
Paul Kehrer7bc36862017-05-29 10:13:35 -05001101* Added :class:`~cryptography.hazmat.primitives.mac.MACContext` as a
Paul Kehrerebee0062015-03-07 12:34:33 -06001102 common interface for CMAC and HMAC and deprecated ``CMACContext``.
Paul Kehrerb3a3e5c2014-11-27 11:27:32 -10001103* Added support for encoding and decoding :rfc:`6979` signatures in
1104 :doc:`/hazmat/primitives/asymmetric/utils`.
Mark Adams78a7d1c2014-12-12 23:13:12 -06001105* Added
Alex Gaynor993b85a2014-12-15 10:42:45 -08001106 :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key` to
Paul Kehrere8135092014-12-17 14:20:40 -06001107 support the loading of OpenSSH public keys (:rfc:`4253`). Only RSA and DSA
1108 keys are currently supported.
Paul Kehrere76cd272014-12-14 19:00:51 -06001109* Added initial support for X.509 certificate parsing. See the
Alex Gaynor5e0da3a2015-07-12 10:35:56 -05001110 :doc:`X.509 documentation</x509/index>` for more information.
Terry Chiac7c82f32014-10-20 12:15:22 +08001111
Christian Heimes765e7712017-08-03 16:08:09 +02001112
1113.. _v0-6-1:
1114
Paul Kehrer555b1502014-10-15 23:24:57 -050011150.6.1 - 2014-10-15
1116~~~~~~~~~~~~~~~~~~
1117
1118* Updated Windows wheels to be compiled against OpenSSL 1.0.1j.
1119* Fixed an issue where OpenSSL 1.0.1j changed the errors returned by some
1120 functions.
1121* Added our license file to the ``cryptography-vectors`` package.
1122* Implemented DSA hash truncation support (per FIPS 186-3) in the OpenSSL
1123 backend. This works around an issue in 1.0.0, 1.0.0a, and 1.0.0b where
1124 truncation was not implemented.
1125
Christian Heimes765e7712017-08-03 16:08:09 +02001126
1127.. _v0-6:
1128
Paul Kehrerc3f11d82014-09-29 20:31:15 -050011290.6 - 2014-09-29
1130~~~~~~~~~~~~~~~~
Paul Kehrer1757fe32014-07-07 22:29:23 -05001131
Alex Gaynoref823342014-09-27 12:04:22 -04001132* Added
1133 :func:`~cryptography.hazmat.primitives.serialization.load_pem_private_key` to
1134 ease loading private keys, and
1135 :func:`~cryptography.hazmat.primitives.serialization.load_pem_public_key` to
1136 support loading public keys.
Alex Gaynor1658f942014-07-08 00:02:37 -07001137* Removed the, deprecated in 0.4, support for the ``salt_length`` argument to
1138 the :class:`~cryptography.hazmat.primitives.asymmetric.padding.MGF1`
1139 constructor. The ``salt_length`` should be passed to
1140 :class:`~cryptography.hazmat.primitives.asymmetric.padding.PSS` instead.
Paul Kehrerf4fbf392014-08-21 08:36:49 -10001141* Fix compilation on OS X Yosemite.
Paul Kehrer77e95a02014-09-25 12:28:07 -05001142* Deprecated ``elliptic_curve_private_key_from_numbers`` and
1143 ``elliptic_curve_public_key_from_numbers`` in favor of
1144 ``load_elliptic_curve_private_numbers`` and
1145 ``load_elliptic_curve_public_numbers`` on
1146 :class:`~cryptography.hazmat.backends.interfaces.EllipticCurveBackend`.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001147* Added ``EllipticCurvePrivateKeyWithNumbers`` and
1148 ``EllipticCurvePublicKeyWithNumbers`` support.
Paul Kehrerf378e402014-09-27 11:28:42 -05001149* Work around three GCM related bugs in CommonCrypto and OpenSSL.
Paul Kehrer4c773652014-09-27 11:26:02 -05001150
1151 * On the CommonCrypto backend adding AAD but not subsequently calling update
1152 would return null tag bytes.
1153
1154 * One the CommonCrypto backend a call to update without an empty add AAD call
1155 would return null ciphertext bytes.
1156
1157 * On the OpenSSL backend with certain versions adding AAD only would give
1158 invalid tag bytes.
1159
1160* Support loading EC private keys from PEM.
Alex Gaynor1658f942014-07-08 00:02:37 -07001161
Christian Heimes765e7712017-08-03 16:08:09 +02001162
1163.. _v0-5-4:
1164
Paul Kehrer01f0c672014-08-20 20:15:18 -100011650.5.4 - 2014-08-20
1166~~~~~~~~~~~~~~~~~~
1167
1168* Added several functions to the OpenSSL bindings to support new
1169 functionality in pyOpenSSL.
1170* Fixed a redefined constant causing compilation failure with Solaris 11.2.
1171
Christian Heimes765e7712017-08-03 16:08:09 +02001172
1173.. _v0-5-3:
1174
Paul Kehrer86cf5b12014-08-07 05:38:17 -100011750.5.3 - 2014-08-06
1176~~~~~~~~~~~~~~~~~~
1177
1178* Updated Windows wheels to be compiled against OpenSSL 1.0.1i.
1179
Christian Heimes765e7712017-08-03 16:08:09 +02001180
1181.. _v0-5-2:
1182
Paul Kehrer2456e662014-07-09 19:51:32 -050011830.5.2 - 2014-07-09
1184~~~~~~~~~~~~~~~~~~
1185
Paul Kehrera4668c62017-05-20 13:25:47 -07001186* Add ``TraditionalOpenSSLSerializationBackend`` support to ``multibackend``.
Paul Kehrer2456e662014-07-09 19:51:32 -05001187* Fix compilation error on OS X 10.8 (Mountain Lion).
1188
Christian Heimes765e7712017-08-03 16:08:09 +02001189
1190.. _v0-5-1:
1191
Paul Kehrerf092d732014-07-07 19:42:15 -050011920.5.1 - 2014-07-07
1193~~~~~~~~~~~~~~~~~~
1194
Paul Kehrera4668c62017-05-20 13:25:47 -07001195* Add ``PKCS8SerializationBackend`` support to ``multibackend``.
Paul Kehrerf092d732014-07-07 19:42:15 -05001196
Christian Heimes765e7712017-08-03 16:08:09 +02001197
1198.. _v0-5:
1199
Paul Kehrer3c6a2392014-07-07 08:29:07 -050012000.5 - 2014-07-07
1201~~~~~~~~~~~~~~~~
Paul Kehrer50a04852014-05-03 08:57:13 -05001202
Alex Gaynor8f1b8e82014-06-29 20:43:29 -07001203* **BACKWARDS INCOMPATIBLE:**
1204 :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` no longer allows
1205 truncation of tags by default. Previous versions of ``cryptography`` allowed
1206 tags to be truncated by default, applications wishing to preserve this
Alex Gaynor4efe61a2014-06-29 20:44:53 -07001207 behavior (not recommended) can pass the ``min_tag_length`` argument.
Paul Kehrer8987bcb2014-07-06 09:28:29 -05001208* Windows builds now statically link OpenSSL by default. When installing a
Paul Kehrer3df9a312014-07-06 09:25:29 -05001209 wheel on Windows you no longer need to install OpenSSL separately. Windows
1210 users can switch between static and dynamic linking with an environment
1211 variable. See :doc:`/installation` for more details.
Paul Kehrer88bac252014-05-21 12:42:13 -05001212* Added :class:`~cryptography.hazmat.primitives.kdf.hkdf.HKDFExpand`.
Paul Kehrer2a947c42014-05-15 17:22:08 -04001213* Added :class:`~cryptography.hazmat.primitives.ciphers.modes.CFB8` support
1214 for :class:`~cryptography.hazmat.primitives.ciphers.algorithms.AES` and
1215 :class:`~cryptography.hazmat.primitives.ciphers.algorithms.TripleDES` on
Paul Kehrer51032352017-05-20 10:09:02 -07001216 ``commoncrypto`` and :doc:`/hazmat/backends/openssl`.
Paul Kehrer055f9602014-05-20 23:21:26 -05001217* Added ``AES`` :class:`~cryptography.hazmat.primitives.ciphers.modes.CTR`
1218 support to the OpenSSL backend when linked against 0.9.8.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001219* Added ``PKCS8SerializationBackend`` and
1220 ``TraditionalOpenSSLSerializationBackend`` support to the
1221 :doc:`/hazmat/backends/openssl`.
Paul Kehrer21fc5822014-07-04 09:28:55 -05001222* Added :doc:`/hazmat/primitives/asymmetric/ec` and
1223 :class:`~cryptography.hazmat.backends.interfaces.EllipticCurveBackend`.
Paul Kehrerd1bac5e2014-06-13 12:34:49 -05001224* Added :class:`~cryptography.hazmat.primitives.ciphers.modes.ECB` support
1225 for :class:`~cryptography.hazmat.primitives.ciphers.algorithms.TripleDES` on
Paul Kehrer51032352017-05-20 10:09:02 -07001226 ``commoncrypto`` and :doc:`/hazmat/backends/openssl`.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001227* Deprecated the concrete ``RSAPrivateKey`` class in favor of backend
Paul Kehrera10be692015-02-12 12:58:27 -06001228 specific providers of the
1229 :class:`cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
1230 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001231* Deprecated the concrete ``RSAPublicKey`` in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -06001232 providers of the
1233 :class:`cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`
1234 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001235* Deprecated the concrete ``DSAPrivateKey`` class in favor of backend
Paul Kehrera10be692015-02-12 12:58:27 -06001236 specific providers of the
1237 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`
1238 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001239* Deprecated the concrete ``DSAPublicKey`` class in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -06001240 providers of the
1241 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`
1242 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001243* Deprecated the concrete ``DSAParameters`` class in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -06001244 providers of the
1245 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAParameters`
1246 interface.
Paul Kehrerf2fb02a2014-06-19 10:16:42 -06001247* Deprecated ``encrypt_rsa``, ``decrypt_rsa``, ``create_rsa_signature_ctx`` and
1248 ``create_rsa_verification_ctx`` on
1249 :class:`~cryptography.hazmat.backends.interfaces.RSABackend`.
Paul Kehrer1262be22014-06-26 16:16:50 -06001250* Deprecated ``create_dsa_signature_ctx`` and ``create_dsa_verification_ctx``
1251 on :class:`~cryptography.hazmat.backends.interfaces.DSABackend`.
Paul Kehrerbb91c812014-05-12 15:03:04 -04001252
Christian Heimes765e7712017-08-03 16:08:09 +02001253
1254.. _v0-4:
1255
Paul Kehrer95862012014-05-01 16:48:05 -050012560.4 - 2014-05-03
1257~~~~~~~~~~~~~~~~
Paul Kehrer3d4eb6e2014-03-27 16:27:31 -05001258
Paul Kehrerba987452014-04-02 17:12:26 -05001259* Deprecated ``salt_length`` on
1260 :class:`~cryptography.hazmat.primitives.asymmetric.padding.MGF1` and added it
Alex Gaynor9963cb32014-07-12 09:35:33 -07001261 to :class:`~cryptography.hazmat.primitives.asymmetric.padding.PSS`. It will
Alex Gaynor2e49f212014-07-12 10:58:30 -07001262 be removed from ``MGF1`` in two releases per our :doc:`/api-stability`
Alex Gaynor9963cb32014-07-12 09:35:33 -07001263 policy.
1264* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.SEED`
1265 support.
Ayrx9bea9372014-04-22 21:00:34 +08001266* Added :class:`~cryptography.hazmat.primitives.cmac.CMAC`.
Alex Gaynorcd58b932014-05-01 23:11:06 -07001267* Added decryption support to
1268 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
1269 and encryption support to
1270 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`.
Paul Kehrer80950e52014-05-01 16:48:55 -05001271* Added signature support to
1272 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`
1273 and verification support to
1274 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`.
Ayrx9bea9372014-04-22 21:00:34 +08001275
Christian Heimes765e7712017-08-03 16:08:09 +02001276
1277.. _v0-3:
1278
Paul Kehrer9c2a11b2014-03-27 13:16:57 -050012790.3 - 2014-03-27
1280~~~~~~~~~~~~~~~~
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001281
1282* Added :class:`~cryptography.hazmat.primitives.twofactor.hotp.HOTP`.
David Reideea08d92014-02-25 11:06:09 -08001283* Added :class:`~cryptography.hazmat.primitives.twofactor.totp.TOTP`.
Alex Gaynor9963cb32014-07-12 09:35:33 -07001284* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.IDEA`
1285 support.
Alex Gaynorcd58b932014-05-01 23:11:06 -07001286* Added signature support to
1287 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
1288 and verification support to
1289 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`.
Paul Kehrer1592e5b2014-03-27 14:29:38 -05001290* Moved test vectors to the new ``cryptography_vectors`` package.
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001291
Christian Heimes765e7712017-08-03 16:08:09 +02001292
1293.. _v0-2-2:
1294
Paul Kehrer7f711ee2014-03-03 23:58:45 -040012950.2.2 - 2014-03-03
1296~~~~~~~~~~~~~~~~~~
1297
Alex Gaynor9963cb32014-07-12 09:35:33 -07001298* Removed a constant definition that was causing compilation problems with
1299 specific versions of OpenSSL.
Paul Kehrer7f711ee2014-03-03 23:58:45 -04001300
Christian Heimes765e7712017-08-03 16:08:09 +02001301
1302.. _v0-2-1:
1303
Matthew Iversen69a6fad2014-02-25 02:10:44 +110013040.2.1 - 2014-02-22
1305~~~~~~~~~~~~~~~~~~
Paul Kehrer7f711ee2014-03-03 23:58:45 -04001306
Alex Gaynorcd58b932014-05-01 23:11:06 -07001307* Fix a bug where importing cryptography from multiple paths could cause
1308 initialization to fail.
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001309
Christian Heimes765e7712017-08-03 16:08:09 +02001310
1311.. _v0-2:
1312
Matthew Iversen69a6fad2014-02-25 02:10:44 +110013130.2 - 2014-02-20
1314~~~~~~~~~~~~~~~~
1315
Paul Kehrer51032352017-05-20 10:09:02 -07001316* Added ``commoncrypto``.
1317* Added initial ``commoncrypto``.
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001318* Removed ``register_cipher_adapter`` method from
1319 :class:`~cryptography.hazmat.backends.interfaces.CipherBackend`.
1320* Added support for the OpenSSL backend under Windows.
1321* Improved thread-safety for the OpenSSL backend.
1322* Fixed compilation on systems where OpenSSL's ``ec.h`` header is not
1323 available, such as CentOS.
1324* Added :class:`~cryptography.hazmat.primitives.kdf.pbkdf2.PBKDF2HMAC`.
1325* Added :class:`~cryptography.hazmat.primitives.kdf.hkdf.HKDF`.
Paul Kehrera4668c62017-05-20 13:25:47 -07001326* Added ``multibackend``.
Alex Gaynorcd58b932014-05-01 23:11:06 -07001327* Set default random for the :doc:`/hazmat/backends/openssl` to the OS
1328 random engine.
1329* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.CAST5`
1330 (CAST-128) support.
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001331
Christian Heimes765e7712017-08-03 16:08:09 +02001332
1333.. _v0-1:
1334
Matthew Iversen69a6fad2014-02-25 02:10:44 +110013350.1 - 2014-01-08
1336~~~~~~~~~~~~~~~~
1337
1338* Initial release.
1339
Alex Stapletonb9df2782014-03-17 08:09:41 +00001340.. _`master`: https://github.com/pyca/cryptography/
Alex Gaynor988df9b2016-04-28 10:57:16 -04001341.. _`cffi`: https://cffi.readthedocs.io/