blob: 5af45a465c6da6b2fcda89f6bb11a6b3085f52d4 [file] [log] [blame]
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001Changelog
2=========
3
Alex Gaynorb90e8d82017-05-29 23:10:39 -040042.0 - `master`_
5~~~~~~~~~~~~~~~
6
7.. note:: This version is not yet released and is under active development.
8
Paul Kehrer1a5d70e2017-06-03 17:11:55 -10009* Deprecated the use of ``signer`` on
10 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`,
11 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`,
12 and
13 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey`
14 in favor of ``sign``.
15* Deprecated the use of ``verifier`` on
16 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`,
17 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`,
18 and
19 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey`
20 in favor of ``verify``.
Alex Gaynor6a0718f2017-06-04 13:36:58 -040021* Added support for parsing
22 :class:`~cryptography.x509.certificate_transparency.SignedCertificateTimestamp`
23 objects from X.509 certificate extensions.
Paul Kehrer7e53d912017-06-07 18:08:57 -100024* Added support for
25 :class:`~cryptography.hazmat.primitives.ciphers.aead.ChaCha20Poly1305`.
Paul Kehrer3e357f72017-06-09 02:31:30 -100026* Added support for :doc:`/hazmat/primitives/asymmetric/x25519`.
Paul Kehrer361a9fc2017-06-24 10:12:04 -100027* Added support for serializing and deserializing Diffie-Hellman parameters
28 with
29 :func:`~cryptography.hazmat.primitives.serialization.load_pem_parameters`,
30 :func:`~cryptography.hazmat.primitives.serialization.load_der_parameters`,
31 and
32 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHParametersWithSerialization.parameter_bytes`
33 .
Paul Kehrer1a5d70e2017-06-03 17:11:55 -100034
Paul Kehrer23ead432017-05-29 21:10:46 -0500351.9 - 2017-05-29
36~~~~~~~~~~~~~~~~
Paul Kehrerd0aad452017-03-10 08:36:18 -040037
Paul Kehrera55cc3b2017-05-27 18:00:44 -050038* **BACKWARDS INCOMPATIBLE:** Elliptic Curve signature verification no longer
Alex Gaynor5ca99462017-05-10 23:11:30 -040039 returns ``True`` on success. This brings it in line with the interface's
40 documentation, and our intent. The correct way to use
41 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.verify`
42 has always been to check whether or not
43 :class:`~cryptography.exceptions.InvalidSignature` was raised.
Alex Gaynor2240ba22017-05-20 13:23:15 -070044* **BACKWARDS INCOMPATIBLE:** Dropped support for macOS 10.7 and 10.8.
Alex Gaynor6091e112017-05-23 20:31:03 -070045* **BACKWARDS INCOMPATIBLE:** The minimum supported PyPy version is now 5.3.
Paul Kehrer66e1eb22017-05-25 15:56:57 -050046* Python 3.3 support has been deprecated, and will be removed in the next
Alex Gaynordb511142017-05-22 20:53:47 -070047 ``cryptography`` release.
Alex Gaynor2240ba22017-05-20 13:23:15 -070048* Add support for providing ``tag`` during
49 :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` finalization via
50 :meth:`~cryptography.hazmat.primitives.ciphers.AEADDecryptionContext.finalize_with_tag`.
Paul Kehrer6fcbebd2017-05-20 12:04:06 -070051* Fixed an issue preventing ``cryptography`` from compiling against
52 LibreSSL 2.5.x.
Paul Kehrer416f5262017-05-23 23:38:59 -070053* Added
54 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.key_size`
55 and
56 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey.key_size`
57 as convenience methods for determining the bit size of a secret scalar for
58 the curve.
Alex Gaynord08ddd52017-05-20 09:01:54 -070059* Accessing an unrecognized extension marked critical on an X.509 object will
60 no longer raise an ``UnsupportedExtension`` exception, instead an
61 :class:`~cryptography.x509.UnrecognizedExtension` object will be returned.
62 This behavior was based on a poor reading of the RFC, unknown critical
63 extensions only need to be rejected on certificate verification.
Paul Kehrer51032352017-05-20 10:09:02 -070064* The CommonCrypto backend has been removed.
Paul Kehrera4668c62017-05-20 13:25:47 -070065* MultiBackend has been removed.
Paul Kehrer70e8f902017-05-23 16:55:19 -070066* ``Whirlpool`` and ``RIPEMD160`` have been deprecated.
Paul Kehrer5fb10212017-05-02 12:04:53 -050067
Paul Kehrer139b25f2017-05-26 06:32:15 -0500681.8.2 - 2017-05-26
69~~~~~~~~~~~~~~~~~~
70
71* Fixed a compilation bug affecting OpenSSL 1.1.0f.
72* Updated Windows and macOS wheels to be compiled against OpenSSL 1.1.0f.
Paul Kehrerd0aad452017-03-10 08:36:18 -040073
741.8.1 - 2017-03-10
75~~~~~~~~~~~~~~~~~~
76
77* Fixed macOS wheels to properly link against 1.1.0 rather than 1.0.2.
78
Paul Kehrer928e4ee2017-03-09 22:43:42 -0400791.8 - 2017-03-09
80~~~~~~~~~~~~~~~~
Paul Kehrerfad63fe2016-12-12 16:41:26 -060081
Alex Gaynor31b5d782016-12-23 12:20:36 -050082* Added support for Python 3.6.
Alex Gaynor5a059022017-02-11 10:05:34 -050083* Windows and macOS wheels now link against OpenSSL 1.1.0.
Paul Kehrere9dbbd82017-03-09 18:43:40 -040084* macOS wheels are no longer universal. This change significantly shrinks the
85 size of the wheels. Users on macOS 32-bit Python (if there are any) should
86 migrate to 64-bit or build their own packages.
Ofek Lev0e6a1292017-02-08 00:09:41 -050087* Changed ASN.1 dependency from ``pyasn1`` to ``asn1crypto`` resulting in a
88 general performance increase when encoding/decoding ASN.1 structures. Also,
89 the ``pyasn1_modules`` test dependency is no longer required.
Paul Kehrer9b34ca92017-02-16 22:20:38 -060090* Added support for
91 :meth:`~cryptography.hazmat.primitives.ciphers.CipherContext.update_into` on
92 :class:`~cryptography.hazmat.primitives.ciphers.CipherContext`.
Aviv Palivoda1c7bd662017-02-08 06:38:42 +020093* Added
94 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKeyWithSerialization.private_bytes`
95 to
96 :class:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKeyWithSerialization`.
Aviv Palivoda1c7bd662017-02-08 06:38:42 +020097* Added
98 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPublicKeyWithSerialization.public_bytes`
99 to
100 :class:`~cryptography.hazmat.primitives.asymmetric.dh.DHPublicKeyWithSerialization`.
Paul Kehrer7a130852017-02-09 05:55:34 +0800101* :func:`~cryptography.hazmat.primitives.serialization.load_pem_private_key`
102 and
103 :func:`~cryptography.hazmat.primitives.serialization.load_der_private_key`
104 now require that ``password`` must be bytes if provided. Previously this
105 was documented but not enforced.
Paul Kehrer20fe2be2017-03-09 13:06:51 -0400106* Added support for subgroup order in :doc:`/hazmat/primitives/asymmetric/dh`.
Aviv Palivoda1c7bd662017-02-08 06:38:42 +0200107
Paul Kehrerc7a2e722017-01-28 17:45:57 +09001081.7.2 - 2017-01-27
109~~~~~~~~~~~~~~~~~~
110
111* Updated Windows and macOS wheels to be compiled against OpenSSL 1.0.2k.
112
Paul Kehrerc8f47ad2016-12-14 19:26:06 -06001131.7.1 - 2016-12-13
114~~~~~~~~~~~~~~~~~~
115
116* Fixed a regression in ``int_from_bytes`` where it failed to accept
117 ``bytearray``.
Paul Kehrerfad63fe2016-12-12 16:41:26 -0600118
Paul Kehrer5df72e82016-12-12 12:06:09 -06001191.7 - 2016-12-12
120~~~~~~~~~~~~~~~~
Paul Kehrer08585912016-11-22 20:04:40 +0800121
Alex Gaynor29b2ebc2016-11-22 09:25:17 -0500122* Support for OpenSSL 1.0.0 has been removed. Users on older version of OpenSSL
123 will need to upgrade.
Aviv Palivoda495f21a2016-11-25 18:51:28 +0200124* Added support for Diffie-Hellman key exchange using
Alex Gaynora9b86902017-05-24 15:01:14 -0700125 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKey.exchange`.
Paul Kehrera22964a2016-12-10 09:15:41 -0600126* The OS random engine for OpenSSL has been rewritten to improve compatibility
127 with embedded Python and other edge cases. More information about this change
128 can be found in the
129 `pull request <https://github.com/pyca/cryptography/pull/3229>`_.
Paul Kehrer08585912016-11-22 20:04:40 +0800130
Paul Kehrer4a2f36b2016-11-22 10:50:28 +08001311.6 - 2016-11-22
132~~~~~~~~~~~~~~~~
Alex Gaynorf25e63d2016-08-26 20:55:44 -0400133
Alex Gaynor2e8725d2016-08-29 21:40:19 -0400134* Deprecated support for OpenSSL 1.0.0. Support will be removed in
135 ``cryptography`` 1.7.
Paul Kehrer500850b2016-11-20 00:40:16 +0800136* Replaced the Python-based OpenSSL locking callbacks with a C version to fix
137 a potential deadlock that could occur if a garbage collection cycle occurred
138 while inside the lock.
Paul Kehrer306ce512016-08-29 09:36:09 +0800139* Added support for :class:`~cryptography.hazmat.primitives.hashes.BLAKE2b` and
140 :class:`~cryptography.hazmat.primitives.hashes.BLAKE2s` when using OpenSSL
141 1.1.0.
Paul Kehrerc7b29b82016-09-01 09:17:21 +0800142* Added
143 :attr:`~cryptography.x509.Certificate.signature_algorithm_oid` support to
144 :class:`~cryptography.x509.Certificate`.
145* Added
146 :attr:`~cryptography.x509.CertificateSigningRequest.signature_algorithm_oid`
147 support to :class:`~cryptography.x509.CertificateSigningRequest`.
148* Added
149 :attr:`~cryptography.x509.CertificateRevocationList.signature_algorithm_oid`
150 support to :class:`~cryptography.x509.CertificateRevocationList`.
Terry Chiad8a27df2016-09-01 23:39:57 +0800151* Added support for :class:`~cryptography.hazmat.primitives.kdf.scrypt.Scrypt`
152 when using OpenSSL 1.1.0.
Paul Kehrer99777862016-11-15 07:34:55 +0800153* Added a workaround to improve compatibility with Python application bundling
154 tools like ``PyInstaller`` and ``cx_freeze``.
Paul Kehrer8b89bcc2016-09-03 11:31:43 -0500155* Added support for generating a
156 :meth:`~cryptography.x509.random_serial_number`.
Paul Kehrer3feeec82016-10-01 07:12:27 -0500157* Added support for encoding ``IPv4Network`` and ``IPv6Network`` in X.509
158 certificates for use with :class:`~cryptography.x509.NameConstraints`.
Paul Kehrer500850b2016-11-20 00:40:16 +0800159* Added :meth:`~cryptography.x509.Name.public_bytes` to
160 :class:`~cryptography.x509.Name`.
Fraser Tweedale02467dd2016-11-07 15:54:04 +1000161* Added :class:`~cryptography.x509.RelativeDistinguishedName`
162* :class:`~cryptography.x509.DistributionPoint` now accepts
163 :class:`~cryptography.x509.RelativeDistinguishedName` for
164 :attr:`~cryptography.x509.DistributionPoint.relative_name`.
165 Deprecated use of :class:`~cryptography.x509.Name` as
166 :attr:`~cryptography.x509.DistributionPoint.relative_name`.
Fraser Tweedale01ee6f52016-11-12 01:28:56 +1000167* :class:`~cryptography.x509.Name` now accepts an iterable of
168 :class:`~cryptography.x509.RelativeDistinguishedName`. RDNs can
169 be accessed via the :attr:`~cryptography.x509.Name.rdns`
170 attribute. When constructed with an iterable of
171 :class:`~cryptography.x509.NameAttribute`, each attribute becomes
172 a single-valued RDN.
Ofek Levc41b9d42016-11-11 20:07:11 -0500173* Added
174 :func:`~cryptography.hazmat.primitives.asymmetric.ec.derive_private_key`.
Paul Kehrerec7fc462016-11-21 07:55:18 +0800175* Added support for signing and verifying RSA, DSA, and ECDSA signatures with
Paul Kehrerf555c742016-11-20 22:48:10 +0800176 :class:`~cryptography.hazmat.primitives.asymmetric.utils.Prehashed`
177 digests.
Terry Chiad8a27df2016-09-01 23:39:57 +0800178
Alex Gaynorb94cacf2016-11-06 01:27:20 -04001791.5.3 - 2016-11-05
180~~~~~~~~~~~~~~~~~~
181
182* **SECURITY ISSUE**: Fixed a bug where ``HKDF`` would return an empty
183 byte-string if used with a ``length`` less than ``algorithm.digest_size``.
Alex Gaynorfb0e7192016-11-09 19:51:09 -0500184 Credit to **Markus Döring** for reporting the issue. *CVE-2016-9243*
Alex Gaynorb94cacf2016-11-06 01:27:20 -0400185
Alex Gaynorb4c087a2016-09-26 18:11:59 -04001861.5.2 - 2016-09-26
187~~~~~~~~~~~~~~~~~~
188
189* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2j.
Paul Kehrer306ce512016-08-29 09:36:09 +0800190
Paul Kehrer08652e92016-09-22 22:47:50 -05001911.5.1 - 2016-09-22
192~~~~~~~~~~~~~~~~~~
193
194* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2i.
195* Resolved a ``UserWarning`` when used with cffi 1.8.3.
196* Fixed a memory leak in name creation with X.509.
197* Added a workaround for old versions of setuptools.
198* Fixed an issue preventing ``cryptography`` from compiling against
199 OpenSSL 1.0.2i.
200
201
Paul Kehrerc0ee7382016-08-26 22:59:49 +08002021.5 - 2016-08-26
203~~~~~~~~~~~~~~~~
Paul Kehrer67ea4442016-06-04 12:00:54 -0700204
Alex Gaynor17097bf2016-06-27 22:29:38 -0400205* Added
206 :func:`~cryptography.hazmat.primitives.asymmetric.padding.calculate_max_pss_salt_length`.
Aviv Palivodaf67429b2016-06-30 21:42:46 +0300207* Added "one shot"
208 :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey.sign`
209 and
210 :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey.verify`
211 methods to DSA keys.
Aviv Palivoda2120a8e2016-07-02 19:43:06 +0300212* Added "one shot"
213 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey.sign`
214 and
215 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.verify`
216 methods to ECDSA keys.
Maximilian Hils679a9142016-07-31 16:43:19 -0700217* Switched back to the older callback model on Python 3.5 in order to mitigate
218 the locking callback problem with OpenSSL <1.1.0.
InvalidInterrupt8e66ca62016-08-16 19:39:31 -0700219* :class:`~cryptography.x509.CertificateBuilder`,
220 :class:`~cryptography.x509.CertificateRevocationListBuilder`, and
221 :class:`~cryptography.x509.RevokedCertificateBuilder` now accept timezone
222 aware ``datetime`` objects as method arguments
Paul Kehrer07ea3cd2016-08-26 21:48:24 +0800223* ``cryptography`` now supports OpenSSL 1.1.0 as a compilation target.
Alex Gaynor17097bf2016-06-27 22:29:38 -0400224
Paul Kehrer67ea4442016-06-04 12:00:54 -0700225
Paul Kehrer69365ce2016-06-04 09:57:11 -07002261.4 - 2016-06-04
227~~~~~~~~~~~~~~~~
Alex Gaynorf8c75fc2016-03-18 19:54:45 -0400228
Paul Kehrer69365ce2016-06-04 09:57:11 -0700229* Support for OpenSSL 0.9.8 has been removed. Users on older versions of
230 OpenSSL will need to upgrade.
Paul Kehrercb0fa2e2016-05-29 22:37:33 -0500231* Added :class:`~cryptography.hazmat.primitives.kdf.kbkdf.KBKDFHMAC`.
Alex Gaynor94989292016-06-03 13:04:26 -0700232* Added support for ``OpenSSH`` public key serialization.
Paul Kehrer69365ce2016-06-04 09:57:11 -0700233* Added support for SHA-2 in RSA
234 :class:`~cryptography.hazmat.primitives.asymmetric.padding.OAEP` when using
235 OpenSSL 1.0.2 or greater.
236* Added "one shot"
237 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey.sign`
238 and
239 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey.verify`
240 methods to RSA keys.
Alex Gaynor401ac6f2017-02-17 08:23:22 -0500241* Deprecated the ``serial`` attribute on
242 :class:`~cryptography.x509.Certificate`, in favor of
243 :attr:`~cryptography.x509.Certificate.serial_number`.
Paul Kehrer69365ce2016-06-04 09:57:11 -0700244
Alex Gaynorf8c75fc2016-03-18 19:54:45 -0400245
Alex Gaynor57515152016-06-02 20:53:52 -07002461.3.4 - 2016-06-03
247~~~~~~~~~~~~~~~~~~
248
249* Added another OpenSSL function to the bindings to support an upcoming
250 ``pyOpenSSL`` release.
251
252
2531.3.3 - 2016-06-02
254~~~~~~~~~~~~~~~~~~
255
256* Added two new OpenSSL functions to the bindings to support an upcoming
257 ``pyOpenSSL`` release.
258
Paul Kehrerbb8d69a2016-05-04 13:33:20 -05002591.3.2 - 2016-05-04
260~~~~~~~~~~~~~~~~~~
261
262* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2h.
263* Fixed an issue preventing ``cryptography`` from compiling against
264 LibreSSL 2.3.x.
265
Paul Kehrer81f48962016-03-21 17:46:53 -04002661.3.1 - 2016-03-21
267~~~~~~~~~~~~~~~~~~
268
269* Fixed a bug that caused an ``AttributeError`` when using ``mock`` to patch
270 some ``cryptography`` modules.
271
Paul Kehrerc9694612016-03-17 20:31:44 -04002721.3 - 2016-03-18
273~~~~~~~~~~~~~~~~
Paul Kehrerac904e32016-01-08 07:53:25 -0800274
Cédric Krierbf0f4642016-02-26 18:40:20 +0100275* Added support for padding ANSI X.923 with
276 :class:`~cryptography.hazmat.primitives.padding.ANSIX923`.
Alex Gaynorbe6dd9b2016-01-22 17:12:14 -0500277* Deprecated support for OpenSSL 0.9.8. Support will be removed in
278 ``cryptography`` 1.4.
Paul Kehrerdba49b92016-03-13 20:15:53 -0400279* Added support for the :class:`~cryptography.x509.PolicyConstraints`
280 X.509 extension including both parsing and generation using
281 :class:`~cryptography.x509.CertificateBuilder` and
282 :class:`~cryptography.x509.CertificateSigningRequestBuilder`.
Paul Kehrer15732122016-03-06 20:58:26 -0430283* Added :attr:`~cryptography.x509.CertificateSigningRequest.is_signature_valid`
284 to :class:`~cryptography.x509.CertificateSigningRequest`.
Alex Gaynoraf503662016-03-05 10:40:50 -0500285* Fixed an intermittent ``AssertionError`` when performing an RSA decryption on
286 an invalid ciphertext, ``ValueError`` is now correctly raised in all cases.
Paul Kehrer61ff3562016-03-11 22:51:27 -0400287* Added
288 :meth:`~cryptography.x509.AuthorityKeyIdentifier.from_issuer_subject_key_identifier`.
Alex Gaynorbe6dd9b2016-01-22 17:12:14 -0500289
Alex Gaynor287ab1b2016-03-01 22:15:55 -05002901.2.3 - 2016-03-01
291~~~~~~~~~~~~~~~~~~
292
293* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2g.
294
Paul Kehrer2c6b8d02016-01-29 13:36:40 -06002951.2.2 - 2016-01-29
296~~~~~~~~~~~~~~~~~~
297
298* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2f.
299
Paul Kehrer56ea7b82016-01-08 11:53:20 -08003001.2.1 - 2016-01-08
301~~~~~~~~~~~~~~~~~~
302
303* Reverts a change to an OpenSSL ``EVP_PKEY`` object that caused errors with
304 ``pyOpenSSL``.
305
Paul Kehrer577f95e2016-01-07 21:56:53 -08003061.2 - 2016-01-08
307~~~~~~~~~~~~~~~~
Paul Kehrerc5b430f2015-10-29 07:52:35 +0900308
Paul Kehrer49bb7562015-12-25 16:17:40 -0600309* **BACKWARDS INCOMPATIBLE:**
310 :class:`~cryptography.x509.RevokedCertificate`
311 :attr:`~cryptography.x509.RevokedCertificate.extensions` now uses extension
312 classes rather than returning raw values inside the
313 :class:`~cryptography.x509.Extension`
314 :attr:`~cryptography.x509.Extension.value`. The new classes
315 are:
316
317 * :class:`~cryptography.x509.CertificateIssuer`
Paul Kehrer7058ece2015-12-25 22:28:29 -0600318 * :class:`~cryptography.x509.CRLReason`
Paul Kehrer23c0bbc2015-12-25 22:35:19 -0600319 * :class:`~cryptography.x509.InvalidityDate`
Paul Kehrerf23722a2015-12-31 15:56:56 -0600320* Deprecated support for OpenSSL 0.9.8 and 1.0.0. At this time there is no time
321 table for actually dropping support, however we strongly encourage all users
Paul Kehrer0509ec22016-01-08 07:56:17 -0800322 to upgrade, as those versions no longer receive support from the OpenSSL
Paul Kehrerf23722a2015-12-31 15:56:56 -0600323 project.
Paul Kehrerd91e7c12015-10-01 16:50:42 -0500324* The :class:`~cryptography.x509.Certificate` class now has
325 :attr:`~cryptography.x509.Certificate.signature` and
Paul Kehrerd2898052015-11-03 22:00:41 +0900326 :attr:`~cryptography.x509.Certificate.tbs_certificate_bytes` attributes.
Paul Kehrer80dc7522015-12-03 22:19:30 -0600327* The :class:`~cryptography.x509.CertificateSigningRequest` class now has
328 :attr:`~cryptography.x509.CertificateSigningRequest.signature` and
329 :attr:`~cryptography.x509.CertificateSigningRequest.tbs_certrequest_bytes`
330 attributes.
Paul Kehrer18a96122015-12-21 11:14:34 -0600331* The :class:`~cryptography.x509.CertificateRevocationList` class now has
332 :attr:`~cryptography.x509.CertificateRevocationList.signature` and
333 :attr:`~cryptography.x509.CertificateRevocationList.tbs_certlist_bytes`
334 attributes.
Paul Kehrer8b399b72015-12-02 22:53:40 -0600335* :class:`~cryptography.x509.NameConstraints` are now supported in the
Paul Kehrer756d7d22015-12-02 23:45:42 -0600336 :class:`~cryptography.x509.CertificateBuilder` and
337 :class:`~cryptography.x509.CertificateSigningRequestBuilder`.
Paul Kehrer54a837d2015-12-20 23:42:32 -0600338* Support serialization of certificate revocation lists using the
Paul Kehrer2d1d24d2015-12-21 09:23:52 -0600339 :meth:`~cryptography.x509.CertificateRevocationList.public_bytes` method of
Paul Kehrer54a837d2015-12-20 23:42:32 -0600340 :class:`~cryptography.x509.CertificateRevocationList`.
Paul Kehrer51f39cb2015-12-21 21:17:39 -0600341* Add support for parsing :class:`~cryptography.x509.CertificateRevocationList`
342 :meth:`~cryptography.x509.CertificateRevocationList.extensions` in the
Paul Kehrer2587d302015-12-22 17:20:42 -0600343 OpenSSL backend. The following extensions are currently supported:
344
345 * :class:`~cryptography.x509.AuthorityInformationAccess`
346 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
Paul Kehrer3b95cd72015-12-22 21:40:20 -0600347 * :class:`~cryptography.x509.CRLNumber`
Paul Kehrer2587d302015-12-22 17:20:42 -0600348 * :class:`~cryptography.x509.IssuerAlternativeName`
Paul Kehrer09ad50c2015-12-26 13:59:27 -0600349* Added :class:`~cryptography.x509.CertificateRevocationListBuilder` and
350 :class:`~cryptography.x509.RevokedCertificateBuilder` to allow creation of
351 CRLs.
Paul Kehrer58ddc112015-12-30 20:19:00 -0600352* Unrecognized non-critical X.509 extensions are now parsed into an
353 :class:`~cryptography.x509.UnrecognizedExtension` object.
Paul Kehrerd91e7c12015-10-01 16:50:42 -0500354
Paul Kehrer869cfd92015-12-10 14:12:05 -06003551.1.2 - 2015-12-10
356~~~~~~~~~~~~~~~~~~
357
358* Fixed a SIGBUS crash with the OS X wheels caused by redefinition of a
359 method.
360* Fixed a runtime error ``undefined symbol EC_GFp_nistp224_method`` that
361 occurred with some OpenSSL installations.
362* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2e.
363
Paul Kehrerdcf40fc2015-11-18 22:11:36 -06003641.1.1 - 2015-11-19
365~~~~~~~~~~~~~~~~~~
366
367* Fixed several small bugs related to compiling the OpenSSL bindings with
368 unusual OpenSSL configurations.
369* Resolved an issue where, depending on the method of installation and
370 which Python interpreter they were using, users on El Capitan (OS X 10.11)
371 may have seen an ``InternalError`` on import.
372
Paul Kehrere9ac0272015-10-28 15:48:01 +09003731.1 - 2015-10-28
374~~~~~~~~~~~~~~~~
Paul Kehrerbff54ef2015-08-12 08:47:34 -0500375
Alex Gaynor39d38b92015-10-17 16:44:15 -0400376* Added support for Elliptic Curve Diffie-Hellman with
Alex Gaynord2949892015-10-17 16:45:55 -0400377 :class:`~cryptography.hazmat.primitives.asymmetric.ec.ECDH`.
Alex Gaynorace036d2015-09-24 20:23:08 -0400378* Added :class:`~cryptography.hazmat.primitives.kdf.x963kdf.X963KDF`.
Paul Kehrer87355482015-10-21 20:27:44 -0500379* Added support for parsing certificate revocation lists (CRLs) using
380 :func:`~cryptography.x509.load_pem_x509_crl` and
381 :func:`~cryptography.x509.load_der_x509_crl`.
Paul Kehrer0d76a2e2015-05-17 13:36:13 -0700382* Add support for AES key wrapping with
383 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_wrap` and
384 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap`.
Paul Kehrere9ac0272015-10-28 15:48:01 +0900385* Added a ``__hash__`` method to :class:`~cryptography.x509.Name`.
Paul Kehrer1a1b1152015-10-28 09:33:05 +0900386* Add support for encoding and decoding elliptic curve points to a byte string
387 form using
388 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.encode_point`
389 and
390 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.from_encoded_point`.
Paul Kehrere9ac0272015-10-28 15:48:01 +0900391* Added :meth:`~cryptography.x509.Extensions.get_extension_for_class`.
392* :class:`~cryptography.x509.CertificatePolicies` are now supported in the
393 :class:`~cryptography.x509.CertificateBuilder`.
394* ``countryName`` is now encoded as a ``PrintableString`` when creating subject
395 and issuer distinguished names with the Certificate and CSR builder classes.
Paul Kehrer1a1b1152015-10-28 09:33:05 +0900396
Paul Kehrer8addede2015-09-26 22:57:35 -05003971.0.2 - 2015-09-27
398~~~~~~~~~~~~~~~~~~
399* **SECURITY ISSUE**: The OpenSSL backend prior to 1.0.2 made extensive use
400 of assertions to check response codes where our tests could not trigger a
401 failure. However, when Python is run with ``-O`` these asserts are optimized
402 away. If a user ran Python with this flag and got an invalid response code
403 this could result in undefined behavior or worse. Accordingly, all response
404 checks from the OpenSSL backend have been converted from ``assert``
405 to a true function call. Credit **Emilia Käsper (Google Security Team)**
406 for the report.
407
Paul Kehrer2f6b1692015-09-05 20:58:52 -05004081.0.1 - 2015-09-05
409~~~~~~~~~~~~~~~~~~
410
411* We now ship OS X wheels that statically link OpenSSL by default. When
412 installing a wheel on OS X 10.10+ (and using a Python compiled against the
413 10.10 SDK) users will no longer need to compile. See :doc:`/installation` for
414 alternate installation methods if required.
415* Set the default string mask to UTF-8 in the OpenSSL backend to resolve
416 character encoding issues with older versions of OpenSSL.
417* Several new OpenSSL bindings have been added to support a future pyOpenSSL
418 release.
419* Raise an error during install on PyPy < 2.6. 1.0+ requires PyPy 2.6+.
Paul Kehrerbff54ef2015-08-12 08:47:34 -0500420
Paul Kehrer55ab8052015-08-11 18:22:55 -05004211.0 - 2015-08-12
Paul Kehrerd5257ab2015-05-13 20:48:36 -0500422~~~~~~~~~~~~~~~~
423
Paul Kehrer68b3b1e2015-05-19 13:05:21 -0700424* Switched to the new `cffi`_ ``set_source`` out-of-line API mode for
425 compilation. This results in significantly faster imports and lowered
Paul Kehrer73f06c72015-06-07 23:17:39 -0500426 memory consumption. Due to this change we no longer support PyPy releases
427 older than 2.6 nor do we support any released version of PyPy3 (until a
428 version supporting cffi 1.0 comes out).
Paul Kehrer60cc9ef2015-08-04 19:29:52 +0100429* Fix parsing of OpenSSH public keys that have spaces in comments.
Andre Caronbeed2942015-05-18 13:47:36 -0400430* Support serialization of certificate signing requests using the
431 ``public_bytes`` method of
432 :class:`~cryptography.x509.CertificateSigningRequest`.
Andre Carona8aded62015-05-19 20:11:57 -0400433* Support serialization of certificates using the ``public_bytes`` method of
434 :class:`~cryptography.x509.Certificate`.
Jiangge Zhang764f6372015-06-05 18:01:22 +0800435* Add ``get_provisioning_uri`` method to
436 :class:`~cryptography.hazmat.primitives.twofactor.hotp.HOTP` and
437 :class:`~cryptography.hazmat.primitives.twofactor.totp.TOTP` for generating
438 provisioning URIs.
Paul Kehrer66f380c2015-06-12 11:23:34 -0500439* Add :class:`~cryptography.hazmat.primitives.kdf.concatkdf.ConcatKDFHash`
440 and :class:`~cryptography.hazmat.primitives.kdf.concatkdf.ConcatKDFHMAC`.
Ian Cordascoab94b902015-06-17 08:28:02 -0500441* Raise a ``TypeError`` when passing objects that are not text as the value to
442 :class:`~cryptography.x509.NameAttribute`.
Paul Kehrer44171a22015-08-01 21:21:26 +0100443* Add support for :class:`~cryptography.x509.OtherName` as a general name
444 type.
445* Added new X.509 extension support in :class:`~cryptography.x509.Certificate`
446 The following new extensions are now supported:
447
448 * :class:`~cryptography.x509.OCSPNoCheck`
449 * :class:`~cryptography.x509.InhibitAnyPolicy`
450 * :class:`~cryptography.x509.IssuerAlternativeName`
451 * :class:`~cryptography.x509.NameConstraints`
452
453* Extension support was added to
454 :class:`~cryptography.x509.CertificateSigningRequest`.
Ian Cordasco46479d02015-08-03 08:30:20 -0500455* Add support for creating signed certificates with
456 :class:`~cryptography.x509.CertificateBuilder`. This includes support for
Paul Kehrere0ecfdc2015-08-06 10:53:15 +0100457 the following extensions:
Ian Cordasco46479d02015-08-03 08:30:20 -0500458
459 * :class:`~cryptography.x509.BasicConstraints`
460 * :class:`~cryptography.x509.SubjectAlternativeName`
Paul Kehrere0ecfdc2015-08-06 10:53:15 +0100461 * :class:`~cryptography.x509.KeyUsage`
462 * :class:`~cryptography.x509.ExtendedKeyUsage`
463 * :class:`~cryptography.x509.SubjectKeyIdentifier`
464 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
465 * :class:`~cryptography.x509.AuthorityInformationAccess`
466 * :class:`~cryptography.x509.CRLDistributionPoints`
Paul Kehrer683d4d82015-08-06 23:13:45 +0100467 * :class:`~cryptography.x509.InhibitAnyPolicy`
Paul Kehrer2dfd9da2015-08-10 21:30:23 -0500468 * :class:`~cryptography.x509.IssuerAlternativeName`
469 * :class:`~cryptography.x509.OCSPNoCheck`
Ian Cordasco46479d02015-08-03 08:30:20 -0500470
Paul Kehrer91e385d2015-08-08 22:50:28 -0500471* Add support for creating certificate signing requests with
472 :class:`~cryptography.x509.CertificateSigningRequestBuilder`. This includes
473 support for the same extensions supported in the ``CertificateBuilder``.
Paul Kehrer31c5c332015-08-10 11:59:38 -0500474* Deprecate ``encode_rfc6979_signature`` and ``decode_rfc6979_signature`` in
475 favor of
476 :func:`~cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature`
477 and
478 :func:`~cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature`.
479
Paul Kehrer91e385d2015-08-08 22:50:28 -0500480
Paul Kehrer3bbda282015-07-09 09:48:23 -05004810.9.3 - 2015-07-09
482~~~~~~~~~~~~~~~~~~
483
484* Updated Windows wheels to be compiled against OpenSSL 1.0.2d.
485
Paul Kehrer7b411632015-07-03 18:07:41 -05004860.9.2 - 2015-07-04
487~~~~~~~~~~~~~~~~~~
488
489* Updated Windows wheels to be compiled against OpenSSL 1.0.2c.
490
Alex Gaynorc4bb7d52015-06-06 17:27:14 -04004910.9.1 - 2015-06-06
492~~~~~~~~~~~~~~~~~~
493
494* **SECURITY ISSUE**: Fixed a double free in the OpenSSL backend when using DSA
495 to verify signatures. Note that this only affects PyPy 2.6.0 and (presently
496 unreleased) CFFI versions greater than 1.1.0.
497
Paul Kehrerc486ed52015-05-13 17:59:31 -05004980.9 - 2015-05-13
499~~~~~~~~~~~~~~~~
Paul Kehrer8ce597b2015-03-09 00:01:17 -0500500
Paul Kehrer741fccb2015-04-14 10:22:25 -0400501* Removed support for Python 3.2. This version of Python is rarely used
502 and caused support headaches. Users affected by this should upgrade to 3.3+.
Alex Gaynor6e7f6222015-03-29 21:51:38 -0400503* Deprecated support for Python 2.6. At the time there is no time table for
504 actually dropping support, however we strongly encourage all users to upgrade
505 their Python, as Python 2.6 no longer receives support from the Python core
506 team.
Paul Kehrerebbeedf2015-05-08 18:13:14 -0500507* Add support for the
508 :class:`~cryptography.hazmat.primitives.asymmetric.ec.SECP256K1` elliptic
509 curve.
Alex Gaynor5d27d4d2015-04-04 14:56:02 -0500510* Fixed compilation when using an OpenSSL which was compiled with the
511 ``no-comp`` (``OPENSSL_NO_COMP``) option.
Paul Kehrera2c48652015-03-10 15:48:37 -0500512* Support :attr:`~cryptography.hazmat.primitives.serialization.Encoding.DER`
513 serialization of public keys using the ``public_bytes`` method of
Paul Kehrer1955ebf2015-03-10 08:38:57 -0500514 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`,
515 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`,
516 and
Paul Kehrera2c48652015-03-10 15:48:37 -0500517 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`.
Paul Kehrer919a5b22015-03-14 13:15:17 -0500518* Support :attr:`~cryptography.hazmat.primitives.serialization.Encoding.DER`
519 serialization of private keys using the ``private_bytes`` method of
520 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`,
521 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`,
522 and
523 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`.
Paul Kehrera1a1f232015-03-15 15:34:35 -0500524* Add support for parsing X.509 certificate signing requests (CSRs) with
Paul Kehrer1effb6e2015-03-30 15:05:59 -0500525 :func:`~cryptography.x509.load_pem_x509_csr` and
526 :func:`~cryptography.x509.load_der_x509_csr`.
Paul Kehrerd14dcc52015-04-14 14:21:21 -0400527* Moved ``cryptography.exceptions.InvalidToken`` to
528 :class:`cryptography.hazmat.primitives.twofactor.InvalidToken` and deprecated
529 the old location. This was moved to minimize confusion between this exception
530 and :class:`cryptography.fernet.InvalidToken`.
Paul Kehreraeb77202015-05-13 11:52:38 -0500531* Added support for X.509 extensions in :class:`~cryptography.x509.Certificate`
532 objects. The following extensions are supported as of this release:
533
534 * :class:`~cryptography.x509.BasicConstraints`
535 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
536 * :class:`~cryptography.x509.SubjectKeyIdentifier`
537 * :class:`~cryptography.x509.KeyUsage`
538 * :class:`~cryptography.x509.SubjectAlternativeName`
539 * :class:`~cryptography.x509.ExtendedKeyUsage`
540 * :class:`~cryptography.x509.CRLDistributionPoints`
541 * :class:`~cryptography.x509.AuthorityInformationAccess`
542 * :class:`~cryptography.x509.CertificatePolicies`
543
544 Note that unsupported extensions with the critical flag raise
Alex Gaynord08ddd52017-05-20 09:01:54 -0700545 ``UnsupportedExtension`` while unsupported extensions set to non-critical are
546 silently ignored. Read the :doc:`X.509 documentation</x509/index>` for more
547 information.
Paul Kehrer1955ebf2015-03-10 08:38:57 -0500548
Paul Kehrer33906b82015-04-10 21:00:08 -04005490.8.2 - 2015-04-10
550~~~~~~~~~~~~~~~~~~
551
552* Fixed a race condition when initializing the OpenSSL or CommonCrypto backends
553 in a multi-threaded scenario.
554
Paul Kehrer41a750c2015-03-19 22:46:23 -05005550.8.1 - 2015-03-20
556~~~~~~~~~~~~~~~~~~
557
558* Updated Windows wheels to be compiled against OpenSSL 1.0.2a.
559
Paul Kehrer5dc4b882015-03-08 18:19:50 -05005600.8 - 2015-03-08
561~~~~~~~~~~~~~~~~
Paul Kehrer08120d72014-12-17 21:37:58 -0600562
Alex Gaynor5d66ca52014-12-25 18:39:39 -0800563* :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key` can
564 now load elliptic curve public keys.
Paul Kehrer836b8302015-01-18 09:42:58 -0600565* Added
Paul Kehrer8802a5b2015-02-13 12:06:57 -0600566 :attr:`~cryptography.x509.Certificate.signature_hash_algorithm` support to
Paul Kehrerb0a80392015-02-11 23:39:49 -0600567 :class:`~cryptography.x509.Certificate`.
568* Added
Paul Kehrer836b8302015-01-18 09:42:58 -0600569 :func:`~cryptography.hazmat.primitives.asymmetric.rsa.rsa_recover_prime_factors`
Paul Kehrer48402ff2015-02-16 15:31:52 -0600570* :class:`~cryptography.hazmat.primitives.kdf.KeyDerivationFunction` was moved
Paul Kehrer7bc36862017-05-29 10:13:35 -0500571 from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer48402ff2015-02-16 15:31:52 -0600572 :mod:`~cryptography.hazmat.primitives.kdf`.
Paul Kehrer719d5362015-01-01 20:03:52 -0600573* Added support for parsing X.509 names. See the
Alex Gaynor5e0da3a2015-07-12 10:35:56 -0500574 :doc:`X.509 documentation</x509/index>` for more information.
Paul Kehrer99a249d2015-01-04 15:55:22 -0600575* Added
576 :func:`~cryptography.hazmat.primitives.serialization.load_der_private_key` to
577 support loading of DER encoded private keys and
578 :func:`~cryptography.hazmat.primitives.serialization.load_der_public_key` to
579 support loading DER encoded public keys.
Steven McDonald27e6b9c2015-02-18 16:37:03 +1100580* Fixed building against LibreSSL, a compile-time substitute for OpenSSL.
Paul Kehrer77f540d2015-02-20 12:53:04 -0600581* FreeBSD 9.2 was removed from the continuous integration system.
Paul Kehrerf28dd452015-03-05 10:22:59 -0600582* Updated Windows wheels to be compiled against OpenSSL 1.0.2.
Paul Kehrer7bfa22e2015-03-04 13:48:30 -0600583* :func:`~cryptography.hazmat.primitives.serialization.load_pem_public_key`
584 and :func:`~cryptography.hazmat.primitives.serialization.load_der_public_key`
Paul Kehrer791afc02015-03-05 14:29:28 -0600585 now support PKCS1 RSA public keys (in addition to the previous support for
Paul Kehrer7bfa22e2015-03-04 13:48:30 -0600586 SubjectPublicKeyInfo format for RSA, EC, and DSA).
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600587* Added
Paul Kehrer59e5c862015-03-02 10:36:50 -0600588 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500589 and deprecated ``EllipticCurvePrivateKeyWithNumbers``.
Paul Kehrer59e5c862015-03-02 10:36:50 -0600590* Added
591 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization.private_bytes`
592 to
593 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`.
594* Added
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600595 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500596 and deprecated ``RSAPrivateKeyWithNumbers``.
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600597* Added
Paul Kehrer223a8f02015-02-28 18:54:10 -0600598 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization.private_bytes`
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600599 to
600 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`.
Paul Kehrerec342632015-03-01 16:53:58 -0600601* Added
602 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500603 and deprecated ``DSAPrivateKeyWithNumbers``.
Paul Kehrerec342632015-03-01 16:53:58 -0600604* Added
605 :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization.private_bytes`
606 to
607 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`.
Paul Kehrer3f157e02015-02-28 11:31:06 -0600608* Added
609 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500610 and deprecated ``RSAPublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -0500611* Added ``public_bytes`` to
Paul Kehrer3f157e02015-02-28 11:31:06 -0600612 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`.
Paul Kehrer419615b2015-03-05 21:01:16 -0600613* Added
614 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500615 and deprecated ``EllipticCurvePublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -0500616* Added ``public_bytes`` to
Paul Kehrer419615b2015-03-05 21:01:16 -0600617 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`.
Paul Kehrer26006c52015-03-08 18:27:11 -0500618* Added
619 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500620 and deprecated ``DSAPublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -0500621* Added ``public_bytes`` to
Paul Kehrer26006c52015-03-08 18:27:11 -0500622 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`.
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500623* :class:`~cryptography.hazmat.primitives.hashes.HashAlgorithm` and
624 :class:`~cryptography.hazmat.primitives.hashes.HashContext` were moved from
Paul Kehrer7bc36862017-05-29 10:13:35 -0500625 ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500626 :mod:`~cryptography.hazmat.primitives.hashes`.
627* :class:`~cryptography.hazmat.primitives.ciphers.CipherContext`,
628 :class:`~cryptography.hazmat.primitives.ciphers.AEADCipherContext`,
629 :class:`~cryptography.hazmat.primitives.ciphers.AEADEncryptionContext`,
630 :class:`~cryptography.hazmat.primitives.ciphers.CipherAlgorithm`, and
631 :class:`~cryptography.hazmat.primitives.ciphers.BlockCipherAlgorithm`
Paul Kehrer7bc36862017-05-29 10:13:35 -0500632 were moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500633 :mod:`~cryptography.hazmat.primitives.ciphers`.
634* :class:`~cryptography.hazmat.primitives.ciphers.modes.Mode`,
635 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithInitializationVector`,
636 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithNonce`, and
637 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithAuthenticationTag`
Paul Kehrer7bc36862017-05-29 10:13:35 -0500638 were moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500639 :mod:`~cryptography.hazmat.primitives.ciphers.modes`.
640* :class:`~cryptography.hazmat.primitives.padding.PaddingContext` was moved
Paul Kehrer7bc36862017-05-29 10:13:35 -0500641 from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500642 :mod:`~cryptography.hazmat.primitives.padding`.
643*
644 :class:`~cryptography.hazmat.primitives.asymmetric.padding.AsymmetricPadding`
Paul Kehrer7bc36862017-05-29 10:13:35 -0500645 was moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500646 :mod:`~cryptography.hazmat.primitives.asymmetric.padding`.
Paul Kehrer1a5d70e2017-06-03 17:11:55 -1000647* ``AsymmetricSignatureContext`` and ``AsymmetricVerificationContext``
Paul Kehrer7bc36862017-05-29 10:13:35 -0500648 were moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer1a5d70e2017-06-03 17:11:55 -1000649 ``cryptography.hazmat.primitives.asymmetric``.
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500650* :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAParameters`,
651 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAParametersWithNumbers`,
652 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500653 ``DSAPrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500654 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey` and
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500655 ``DSAPublicKeyWithNumbers`` were moved from
Paul Kehrer7bc36862017-05-29 10:13:35 -0500656 ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500657 :mod:`~cryptography.hazmat.primitives.asymmetric.dsa`
658* :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurve`,
659 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurveSignatureAlgorithm`,
660 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500661 ``EllipticCurvePrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500662 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500663 and ``EllipticCurvePublicKeyWithNumbers``
Paul Kehrer7bc36862017-05-29 10:13:35 -0500664 were moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500665 :mod:`~cryptography.hazmat.primitives.asymmetric.ec`.
666* :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500667 ``RSAPrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500668 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey` and
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500669 ``RSAPublicKeyWithNumbers`` were moved from
Paul Kehrer7bc36862017-05-29 10:13:35 -0500670 ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500671 :mod:`~cryptography.hazmat.primitives.asymmetric.rsa`.
Alex Gaynor5d66ca52014-12-25 18:39:39 -0800672
Paul Kehrer72572f92015-01-16 08:10:12 -06006730.7.2 - 2015-01-16
674~~~~~~~~~~~~~~~~~~
675
676* Updated Windows wheels to be compiled against OpenSSL 1.0.1l.
677* ``enum34`` is no longer installed on Python 3.4, where it is included in
678 the standard library.
679* Added a new function to the OpenSSL bindings to support additional
680 functionality in pyOpenSSL.
681
Paul Kehrer842e58a2014-12-28 15:17:39 -07006820.7.1 - 2014-12-28
683~~~~~~~~~~~~~~~~~~
684
685* Fixed an issue preventing compilation on platforms where ``OPENSSL_NO_SSL3``
686 was defined.
687
Paul Kehrere8135092014-12-17 14:20:40 -06006880.7 - 2014-12-17
689~~~~~~~~~~~~~~~~
Paul Kehrer98681332014-09-29 21:43:57 -0500690
Alex Gaynordf6a5cd2014-11-07 09:36:47 -0300691* Cryptography has been relicensed from the Apache Software License, Version
692 2.0, to being available under *either* the Apache Software License, Version
693 2.0, or the BSD license.
Alex Gaynor4c825132014-10-20 21:27:08 -0700694* Added key-rotation support to :doc:`Fernet </fernet>` with
695 :class:`~cryptography.fernet.MultiFernet`.
Paul Kehrer214d91d2014-12-18 07:20:04 -0600696* More bit-lengths are now supported for ``p`` and ``q`` when loading DSA keys
Alex Gaynora438e832014-10-19 19:47:05 -0700697 from numbers.
Paul Kehrer7bc36862017-05-29 10:13:35 -0500698* Added :class:`~cryptography.hazmat.primitives.mac.MACContext` as a
Paul Kehrerebee0062015-03-07 12:34:33 -0600699 common interface for CMAC and HMAC and deprecated ``CMACContext``.
Paul Kehrerb3a3e5c2014-11-27 11:27:32 -1000700* Added support for encoding and decoding :rfc:`6979` signatures in
701 :doc:`/hazmat/primitives/asymmetric/utils`.
Mark Adams78a7d1c2014-12-12 23:13:12 -0600702* Added
Alex Gaynor993b85a2014-12-15 10:42:45 -0800703 :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key` to
Paul Kehrere8135092014-12-17 14:20:40 -0600704 support the loading of OpenSSH public keys (:rfc:`4253`). Only RSA and DSA
705 keys are currently supported.
Paul Kehrere76cd272014-12-14 19:00:51 -0600706* Added initial support for X.509 certificate parsing. See the
Alex Gaynor5e0da3a2015-07-12 10:35:56 -0500707 :doc:`X.509 documentation</x509/index>` for more information.
Terry Chiac7c82f32014-10-20 12:15:22 +0800708
Paul Kehrer555b1502014-10-15 23:24:57 -05007090.6.1 - 2014-10-15
710~~~~~~~~~~~~~~~~~~
711
712* Updated Windows wheels to be compiled against OpenSSL 1.0.1j.
713* Fixed an issue where OpenSSL 1.0.1j changed the errors returned by some
714 functions.
715* Added our license file to the ``cryptography-vectors`` package.
716* Implemented DSA hash truncation support (per FIPS 186-3) in the OpenSSL
717 backend. This works around an issue in 1.0.0, 1.0.0a, and 1.0.0b where
718 truncation was not implemented.
719
Paul Kehrerc3f11d82014-09-29 20:31:15 -05007200.6 - 2014-09-29
721~~~~~~~~~~~~~~~~
Paul Kehrer1757fe32014-07-07 22:29:23 -0500722
Alex Gaynoref823342014-09-27 12:04:22 -0400723* Added
724 :func:`~cryptography.hazmat.primitives.serialization.load_pem_private_key` to
725 ease loading private keys, and
726 :func:`~cryptography.hazmat.primitives.serialization.load_pem_public_key` to
727 support loading public keys.
Alex Gaynor1658f942014-07-08 00:02:37 -0700728* Removed the, deprecated in 0.4, support for the ``salt_length`` argument to
729 the :class:`~cryptography.hazmat.primitives.asymmetric.padding.MGF1`
730 constructor. The ``salt_length`` should be passed to
731 :class:`~cryptography.hazmat.primitives.asymmetric.padding.PSS` instead.
Paul Kehrerf4fbf392014-08-21 08:36:49 -1000732* Fix compilation on OS X Yosemite.
Paul Kehrer77e95a02014-09-25 12:28:07 -0500733* Deprecated ``elliptic_curve_private_key_from_numbers`` and
734 ``elliptic_curve_public_key_from_numbers`` in favor of
735 ``load_elliptic_curve_private_numbers`` and
736 ``load_elliptic_curve_public_numbers`` on
737 :class:`~cryptography.hazmat.backends.interfaces.EllipticCurveBackend`.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600738* Added ``EllipticCurvePrivateKeyWithNumbers`` and
739 ``EllipticCurvePublicKeyWithNumbers`` support.
Paul Kehrerf378e402014-09-27 11:28:42 -0500740* Work around three GCM related bugs in CommonCrypto and OpenSSL.
Paul Kehrer4c773652014-09-27 11:26:02 -0500741
742 * On the CommonCrypto backend adding AAD but not subsequently calling update
743 would return null tag bytes.
744
745 * One the CommonCrypto backend a call to update without an empty add AAD call
746 would return null ciphertext bytes.
747
748 * On the OpenSSL backend with certain versions adding AAD only would give
749 invalid tag bytes.
750
751* Support loading EC private keys from PEM.
Alex Gaynor1658f942014-07-08 00:02:37 -0700752
Paul Kehrer01f0c672014-08-20 20:15:18 -10007530.5.4 - 2014-08-20
754~~~~~~~~~~~~~~~~~~
755
756* Added several functions to the OpenSSL bindings to support new
757 functionality in pyOpenSSL.
758* Fixed a redefined constant causing compilation failure with Solaris 11.2.
759
Paul Kehrer86cf5b12014-08-07 05:38:17 -10007600.5.3 - 2014-08-06
761~~~~~~~~~~~~~~~~~~
762
763* Updated Windows wheels to be compiled against OpenSSL 1.0.1i.
764
Paul Kehrer2456e662014-07-09 19:51:32 -05007650.5.2 - 2014-07-09
766~~~~~~~~~~~~~~~~~~
767
Paul Kehrera4668c62017-05-20 13:25:47 -0700768* Add ``TraditionalOpenSSLSerializationBackend`` support to ``multibackend``.
Paul Kehrer2456e662014-07-09 19:51:32 -0500769* Fix compilation error on OS X 10.8 (Mountain Lion).
770
Paul Kehrerf092d732014-07-07 19:42:15 -05007710.5.1 - 2014-07-07
772~~~~~~~~~~~~~~~~~~
773
Paul Kehrera4668c62017-05-20 13:25:47 -0700774* Add ``PKCS8SerializationBackend`` support to ``multibackend``.
Paul Kehrerf092d732014-07-07 19:42:15 -0500775
Paul Kehrer3c6a2392014-07-07 08:29:07 -05007760.5 - 2014-07-07
777~~~~~~~~~~~~~~~~
Paul Kehrer50a04852014-05-03 08:57:13 -0500778
Alex Gaynor8f1b8e82014-06-29 20:43:29 -0700779* **BACKWARDS INCOMPATIBLE:**
780 :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` no longer allows
781 truncation of tags by default. Previous versions of ``cryptography`` allowed
782 tags to be truncated by default, applications wishing to preserve this
Alex Gaynor4efe61a2014-06-29 20:44:53 -0700783 behavior (not recommended) can pass the ``min_tag_length`` argument.
Paul Kehrer8987bcb2014-07-06 09:28:29 -0500784* Windows builds now statically link OpenSSL by default. When installing a
Paul Kehrer3df9a312014-07-06 09:25:29 -0500785 wheel on Windows you no longer need to install OpenSSL separately. Windows
786 users can switch between static and dynamic linking with an environment
787 variable. See :doc:`/installation` for more details.
Paul Kehrer88bac252014-05-21 12:42:13 -0500788* Added :class:`~cryptography.hazmat.primitives.kdf.hkdf.HKDFExpand`.
Paul Kehrer2a947c42014-05-15 17:22:08 -0400789* Added :class:`~cryptography.hazmat.primitives.ciphers.modes.CFB8` support
790 for :class:`~cryptography.hazmat.primitives.ciphers.algorithms.AES` and
791 :class:`~cryptography.hazmat.primitives.ciphers.algorithms.TripleDES` on
Paul Kehrer51032352017-05-20 10:09:02 -0700792 ``commoncrypto`` and :doc:`/hazmat/backends/openssl`.
Paul Kehrer055f9602014-05-20 23:21:26 -0500793* Added ``AES`` :class:`~cryptography.hazmat.primitives.ciphers.modes.CTR`
794 support to the OpenSSL backend when linked against 0.9.8.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600795* Added ``PKCS8SerializationBackend`` and
796 ``TraditionalOpenSSLSerializationBackend`` support to the
797 :doc:`/hazmat/backends/openssl`.
Paul Kehrer21fc5822014-07-04 09:28:55 -0500798* Added :doc:`/hazmat/primitives/asymmetric/ec` and
799 :class:`~cryptography.hazmat.backends.interfaces.EllipticCurveBackend`.
Paul Kehrerd1bac5e2014-06-13 12:34:49 -0500800* Added :class:`~cryptography.hazmat.primitives.ciphers.modes.ECB` support
801 for :class:`~cryptography.hazmat.primitives.ciphers.algorithms.TripleDES` on
Paul Kehrer51032352017-05-20 10:09:02 -0700802 ``commoncrypto`` and :doc:`/hazmat/backends/openssl`.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600803* Deprecated the concrete ``RSAPrivateKey`` class in favor of backend
Paul Kehrera10be692015-02-12 12:58:27 -0600804 specific providers of the
805 :class:`cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
806 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600807* Deprecated the concrete ``RSAPublicKey`` in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -0600808 providers of the
809 :class:`cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`
810 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600811* Deprecated the concrete ``DSAPrivateKey`` class in favor of backend
Paul Kehrera10be692015-02-12 12:58:27 -0600812 specific providers of the
813 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`
814 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600815* Deprecated the concrete ``DSAPublicKey`` class in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -0600816 providers of the
817 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`
818 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600819* Deprecated the concrete ``DSAParameters`` class in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -0600820 providers of the
821 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAParameters`
822 interface.
Paul Kehrerf2fb02a2014-06-19 10:16:42 -0600823* Deprecated ``encrypt_rsa``, ``decrypt_rsa``, ``create_rsa_signature_ctx`` and
824 ``create_rsa_verification_ctx`` on
825 :class:`~cryptography.hazmat.backends.interfaces.RSABackend`.
Paul Kehrer1262be22014-06-26 16:16:50 -0600826* Deprecated ``create_dsa_signature_ctx`` and ``create_dsa_verification_ctx``
827 on :class:`~cryptography.hazmat.backends.interfaces.DSABackend`.
Paul Kehrerbb91c812014-05-12 15:03:04 -0400828
Paul Kehrer95862012014-05-01 16:48:05 -05008290.4 - 2014-05-03
830~~~~~~~~~~~~~~~~
Paul Kehrer3d4eb6e2014-03-27 16:27:31 -0500831
Paul Kehrerba987452014-04-02 17:12:26 -0500832* Deprecated ``salt_length`` on
833 :class:`~cryptography.hazmat.primitives.asymmetric.padding.MGF1` and added it
Alex Gaynor9963cb32014-07-12 09:35:33 -0700834 to :class:`~cryptography.hazmat.primitives.asymmetric.padding.PSS`. It will
Alex Gaynor2e49f212014-07-12 10:58:30 -0700835 be removed from ``MGF1`` in two releases per our :doc:`/api-stability`
Alex Gaynor9963cb32014-07-12 09:35:33 -0700836 policy.
837* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.SEED`
838 support.
Ayrx9bea9372014-04-22 21:00:34 +0800839* Added :class:`~cryptography.hazmat.primitives.cmac.CMAC`.
Alex Gaynorcd58b932014-05-01 23:11:06 -0700840* Added decryption support to
841 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
842 and encryption support to
843 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`.
Paul Kehrer80950e52014-05-01 16:48:55 -0500844* Added signature support to
845 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`
846 and verification support to
847 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`.
Ayrx9bea9372014-04-22 21:00:34 +0800848
Paul Kehrer9c2a11b2014-03-27 13:16:57 -05008490.3 - 2014-03-27
850~~~~~~~~~~~~~~~~
Matthew Iversen69a6fad2014-02-25 02:10:44 +1100851
852* Added :class:`~cryptography.hazmat.primitives.twofactor.hotp.HOTP`.
David Reideea08d92014-02-25 11:06:09 -0800853* Added :class:`~cryptography.hazmat.primitives.twofactor.totp.TOTP`.
Alex Gaynor9963cb32014-07-12 09:35:33 -0700854* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.IDEA`
855 support.
Alex Gaynorcd58b932014-05-01 23:11:06 -0700856* Added signature support to
857 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
858 and verification support to
859 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`.
Paul Kehrer1592e5b2014-03-27 14:29:38 -0500860* Moved test vectors to the new ``cryptography_vectors`` package.
Matthew Iversen69a6fad2014-02-25 02:10:44 +1100861
Paul Kehrer7f711ee2014-03-03 23:58:45 -04008620.2.2 - 2014-03-03
863~~~~~~~~~~~~~~~~~~
864
Alex Gaynor9963cb32014-07-12 09:35:33 -0700865* Removed a constant definition that was causing compilation problems with
866 specific versions of OpenSSL.
Paul Kehrer7f711ee2014-03-03 23:58:45 -0400867
Matthew Iversen69a6fad2014-02-25 02:10:44 +11008680.2.1 - 2014-02-22
869~~~~~~~~~~~~~~~~~~
Paul Kehrer7f711ee2014-03-03 23:58:45 -0400870
Alex Gaynorcd58b932014-05-01 23:11:06 -0700871* Fix a bug where importing cryptography from multiple paths could cause
872 initialization to fail.
Matthew Iversen69a6fad2014-02-25 02:10:44 +1100873
8740.2 - 2014-02-20
875~~~~~~~~~~~~~~~~
876
Paul Kehrer51032352017-05-20 10:09:02 -0700877* Added ``commoncrypto``.
878* Added initial ``commoncrypto``.
Matthew Iversen69a6fad2014-02-25 02:10:44 +1100879* Removed ``register_cipher_adapter`` method from
880 :class:`~cryptography.hazmat.backends.interfaces.CipherBackend`.
881* Added support for the OpenSSL backend under Windows.
882* Improved thread-safety for the OpenSSL backend.
883* Fixed compilation on systems where OpenSSL's ``ec.h`` header is not
884 available, such as CentOS.
885* Added :class:`~cryptography.hazmat.primitives.kdf.pbkdf2.PBKDF2HMAC`.
886* Added :class:`~cryptography.hazmat.primitives.kdf.hkdf.HKDF`.
Paul Kehrera4668c62017-05-20 13:25:47 -0700887* Added ``multibackend``.
Alex Gaynorcd58b932014-05-01 23:11:06 -0700888* Set default random for the :doc:`/hazmat/backends/openssl` to the OS
889 random engine.
890* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.CAST5`
891 (CAST-128) support.
Matthew Iversen69a6fad2014-02-25 02:10:44 +1100892
8930.1 - 2014-01-08
894~~~~~~~~~~~~~~~~
895
896* Initial release.
897
Alex Stapletonb9df2782014-03-17 08:09:41 +0000898.. _`master`: https://github.com/pyca/cryptography/
Alex Gaynor988df9b2016-04-28 10:57:16 -0400899.. _`cffi`: https://cffi.readthedocs.io/