blob: 7ee6d4d93d59d52189b20d8d90d12c278e16163d [file] [log] [blame]
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001Changelog
2=========
3
Paul Kehrer5edac0c2018-11-11 21:21:16 -05004.. _v2-5:
5
Paul Kehrer83aa36d2019-01-22 09:35:05 -060062.5 - 2019-01-22
7~~~~~~~~~~~~~~~~
Paul Kehrer5edac0c2018-11-11 21:21:16 -05008
Paul Kehrer7e422822018-12-07 11:43:38 +08009* **BACKWARDS INCOMPATIBLE:** :term:`U-label` strings were deprecated in
10 version 2.1, but this version removes the default ``idna`` dependency as
11 well. If you still need this deprecated path please install cryptography
12 with the ``idna`` extra: ``pip install cryptography[idna]``.
Paul Kehrer3c682502018-12-10 12:13:31 +080013* **BACKWARDS INCOMPATIBLE:** The minimum supported PyPy version is now 5.4.
Paul Kehrer610ad372019-01-17 18:24:14 -060014* Numerous classes and functions have been updated to allow :term:`bytes-like`
15 types for keying material and passwords, including symmetric algorithms, AEAD
16 ciphers, KDFs, loading asymmetric keys, and one time password classes.
Paul Kehrer83aa36d2019-01-22 09:35:05 -060017* Updated Windows, macOS, and ``manylinux1`` wheels to be compiled with
18 OpenSSL 1.1.1a.
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
Paul Kehrer2de450a2019-01-20 17:24:41 -060053 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.public_bytes`. Deprecated the previous method
54 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.encode_point`.
Paul Kehrer89e1e342018-12-12 10:35:27 +080055
Paul Kehrerd67fa822018-11-12 21:41:26 -050056
Paul Kehrercd4de3c2018-11-21 11:42:41 +080057.. _v2-4-2:
58
592.4.2 - 2018-11-21
60~~~~~~~~~~~~~~~~~~
61
62* Updated Windows, macOS, and ``manylinux1`` wheels to be compiled with
63 OpenSSL 1.1.0j.
64
Alex Gaynordb084662018-11-11 19:50:10 -050065.. _v2-4-1:
66
672.4.1 - 2018-11-11
68~~~~~~~~~~~~~~~~~~
69
70* Fixed a build breakage in our ``manylinux1`` wheels.
71
Paul Kehrer39a3efb2018-07-19 06:35:38 +080072.. _v2-4:
73
Paul Kehrer5e52fdc2018-11-11 17:48:23 -0500742.4 - 2018-11-11
75~~~~~~~~~~~~~~~~
Paul Kehrer39a3efb2018-07-19 06:35:38 +080076
Paul Kehrer55552412018-10-20 09:02:19 +080077* **BACKWARDS INCOMPATIBLE:** Dropped support for LibreSSL 2.4.x.
Alex Gaynor5a54f1a2018-08-31 10:46:20 -040078* Deprecated OpenSSL 1.0.1 support. OpenSSL 1.0.1 is no longer supported by
79 the OpenSSL project. At this time there is no time table for dropping
80 support, however we strongly encourage all users to upgrade or install
81 ``cryptography`` from a wheel.
Alex Gaynor3d271fa2018-08-16 20:08:05 -040082* Added initial :doc:`OCSP </x509/ocsp>` support.
Alex Gaynordd6b78b2018-08-31 18:25:52 -050083* Added support for :class:`~cryptography.x509.PrecertPoison`.
Alex Gaynor3d271fa2018-08-16 20:08:05 -040084
Paul Kehrerc11f4242018-08-14 13:25:23 -050085.. _v2-3-1:
86
872.3.1 - 2018-08-14
88~~~~~~~~~~~~~~~~~~
89
90* Updated Windows, macOS, and ``manylinux1`` wheels to be compiled with
91 OpenSSL 1.1.0i.
92
Paul Kehrerb6400af2018-03-18 23:30:18 -040093.. _v2-3:
94
Paul Kehrer0a846e22018-07-18 19:12:46 +0800952.3 - 2018-07-18
96~~~~~~~~~~~~~~~~
Paul Kehrerb6400af2018-03-18 23:30:18 -040097
Paul Kehrerd4378e42018-07-17 21:49:03 +080098* **SECURITY ISSUE:**
99 :meth:`~cryptography.hazmat.primitives.ciphers.AEADDecryptionContext.finalize_with_tag`
100 allowed tag truncation by default which can allow tag forgery in some cases.
101 The method now enforces the ``min_tag_length`` provided to the
102 :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` constructor.
Paul Kehrer61114a22018-07-19 06:35:55 +0800103 *CVE-2018-10903*
Paul Kehrer4ee1cb92018-06-27 20:07:14 -0700104* Added support for Python 3.7.
Paul Kehrer36ad98f2018-05-12 11:57:32 -0400105* Added :meth:`~cryptography.fernet.Fernet.extract_timestamp` to get the
106 authenticated timestamp of a :doc:`Fernet </fernet>` token.
Paul Kehrerafdbfb12018-05-25 05:45:25 +0800107* Support for Python 2.7.x without ``hmac.compare_digest`` has been deprecated.
108 We will require Python 2.7.7 or higher (or 2.7.6 on Ubuntu) in the next
109 ``cryptography`` release.
Paul Kehrer611fa5a2018-05-31 11:39:12 +0800110* Fixed multiple issues preventing ``cryptography`` from compiling against
111 LibreSSL 2.7.x.
Paul Kehrer5d187402018-07-16 20:49:51 +0530112* Added
113 :class:`~cryptography.x509.CertificateRevocationList.get_revoked_certificate_by_serial_number`
114 for quick serial number searches in CRLs.
Marti Raudsepp9e1873a2018-07-09 16:11:18 +0300115* The :class:`~cryptography.x509.RelativeDistinguishedName` class now
116 preserves the order of attributes. Duplicate attributes now raise an error
117 instead of silently discarding duplicates.
Alex Gaynorb09b9ec2018-07-15 20:48:57 -0400118* :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap` and
119 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap_with_padding`
120 now raise :class:`~cryptography.hazmat.primitives.keywrap.InvalidUnwrap` if
121 the wrapped key is an invalid length, instead of ``ValueError``.
Paul Kehrer36ad98f2018-05-12 11:57:32 -0400122
Paul Kehrer67ddb8f2018-03-27 13:34:39 -0400123.. _v2-2-2:
124
1252.2.2 - 2018-03-27
126~~~~~~~~~~~~~~~~~~
127
128* Updated Windows, macOS, and ``manylinux1`` wheels to be compiled with
129 OpenSSL 1.1.0h.
130
Alex Gaynora1e9ddc2018-03-20 22:05:01 -0400131.. _v2-2-1:
132
1332.2.1 - 2018-03-20
134~~~~~~~~~~~~~~~~~~
135
136* Reverted a change to ``GeneralNames`` which prohibited having zero elements,
137 due to breakages.
138* Fixed a bug in
139 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap_with_padding`
140 that caused it to raise ``InvalidUnwrap`` when key length modulo 8 was
141 zero.
142
143
Paul Kehrer0d6831d2017-10-11 21:46:47 +0800144.. _v2-2:
145
Paul Kehrer4601fba2018-03-18 22:45:30 -04001462.2 - 2018-03-19
147~~~~~~~~~~~~~~~~
Paul Kehrer0d6831d2017-10-11 21:46:47 +0800148
Paul Kehrer4cf6e782017-10-12 06:06:01 +0800149* **BACKWARDS INCOMPATIBLE:** Support for Python 2.6 has been dropped.
Paul Kehrer858a4292018-01-06 17:55:27 -0600150* Resolved a bug in ``HKDF`` that incorrectly constrained output size.
Paul Kehrer17c8f122018-03-15 13:35:10 -0400151* Added :class:`~cryptography.hazmat.primitives.asymmetric.ec.BrainpoolP256R1`,
152 :class:`~cryptography.hazmat.primitives.asymmetric.ec.BrainpoolP384R1`, and
153 :class:`~cryptography.hazmat.primitives.asymmetric.ec.BrainpoolP512R1` to
154 support inter-operating with systems like German smart meters.
Chris Wolfeaf6f9902017-10-18 14:23:53 -0500155* Added token rotation support to :doc:`Fernet </fernet>` with
156 :meth:`~cryptography.fernet.MultiFernet.rotate`.
Paul Kehrerd6ad9fd2018-02-05 16:47:21 +0800157* Fixed a memory leak in
158 :func:`~cryptography.hazmat.primitives.asymmetric.ec.derive_private_key`.
Paul Kehrercd6cf4a2018-03-18 22:06:13 -0400159* Added support for AES key wrapping with padding via
160 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_wrap_with_padding`
161 and
162 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap_with_padding`
163 .
Paul Kehrer4601fba2018-03-18 22:45:30 -0400164* Allow loading DSA keys with 224 bit ``q``.
Christian Heimes765e7712017-08-03 16:08:09 +0200165
Paul Kehrer66460d82017-11-30 10:21:33 +0800166.. _v2-1-4:
167
1682.1.4 - 2017-11-29
169~~~~~~~~~~~~~~~~~~
170
171* Added ``X509_up_ref`` for an upcoming ``pyOpenSSL`` release.
172
Alex Gaynorb1f9a512017-11-02 16:09:07 -0400173.. _v2-1-3:
174
1752.1.3 - 2017-11-02
176~~~~~~~~~~~~~~~~~~
177
178* Updated Windows, macOS, and ``manylinux1`` wheels to be compiled with
179 OpenSSL 1.1.0g.
180
Alex Gaynord3b9af62017-10-24 12:23:16 -0400181.. _v2-1-2:
182
1832.1.2 - 2017-10-24
184~~~~~~~~~~~~~~~~~~
185
186* Corrected a bug with the ``manylinux1`` wheels where OpenSSL's stack was
187 marked executable.
188
Paul Kehrer0a42f4e2017-10-12 19:35:39 +0800189.. _v2-1-1:
190
1912.1.1 - 2017-10-12
192~~~~~~~~~~~~~~~~~~
193
194* Fixed support for install with the system ``pip`` on Ubuntu 16.04.
195
Christian Heimes765e7712017-08-03 16:08:09 +0200196.. _v2-1:
197
Paul Kehrer0ed0e7e2017-10-11 20:31:09 +08001982.1 - 2017-10-11
199~~~~~~~~~~~~~~~~
Alex Gaynor9c521ee2017-07-17 14:59:03 -0400200
Alex Gaynordd567cb2017-09-30 21:22:07 -0400201* **FINAL DEPRECATION** Python 2.6 support is deprecated, and will be removed
202 in the next release of ``cryptography``.
Paul Kehrer0d6aaf42017-07-20 13:04:25 +0200203* **BACKWARDS INCOMPATIBLE:** ``Whirlpool``, ``RIPEMD160``, and
204 ``UnsupportedExtension`` have been removed in accordance with our
205 :doc:`/api-stability` policy.
Christian Heimesa0022ea2017-10-17 04:56:01 +0200206* **BACKWARDS INCOMPATIBLE:**
207 :attr:`DNSName.value <cryptography.x509.DNSName.value>`,
208 :attr:`RFC822Name.value <cryptography.x509.RFC822Name.value>`, and
209 :attr:`UniformResourceIdentifier.value
210 <cryptography.x509.UniformResourceIdentifier.value>`
211 will now return an :term:`A-label` string when parsing a certificate
212 containing an internationalized domain name (IDN) or if the caller passed
213 a :term:`U-label` to the constructor. See below for additional deprecations
214 related to this change.
Alex Gaynor4c41ab02017-08-23 20:33:01 -0400215* Installing ``cryptography`` now requires ``pip`` 6 or newer.
Paul Kehrere885bd62017-10-11 20:29:23 +0800216* Deprecated passing :term:`U-label` strings to the
217 :class:`~cryptography.x509.DNSName`,
218 :class:`~cryptography.x509.UniformResourceIdentifier`, and
219 :class:`~cryptography.x509.RFC822Name` constructors. Instead, users should
220 pass values as :term:`A-label` strings with ``idna`` encoding if necessary.
221 This change will not affect anyone who is not processing internationalized
222 domains.
Paul Kehrer62ebb422017-09-28 23:46:49 +0800223* Added support for
224 :class:`~cryptography.hazmat.primitives.ciphers.algorithms.ChaCha20`. In
225 most cases users should choose
226 :class:`~cryptography.hazmat.primitives.ciphers.aead.ChaCha20Poly1305`
227 rather than using this unauthenticated form.
Paul Kehrerf944c402017-08-12 08:52:55 -0500228* Added :meth:`~cryptography.x509.CertificateRevocationList.is_signature_valid`
229 to :class:`~cryptography.x509.CertificateRevocationList`.
Paul Kehrere2c1c0f2017-08-22 09:37:32 -0700230* Support :class:`~cryptography.hazmat.primitives.hashes.BLAKE2b` and
231 :class:`~cryptography.hazmat.primitives.hashes.BLAKE2s` with
232 :class:`~cryptography.hazmat.primitives.hmac.HMAC`.
Paul Kehrera397d752017-10-02 10:03:20 +0800233* Added support for
234 :class:`~cryptography.hazmat.primitives.ciphers.modes.XTS` mode for
235 AES.
Paul Kehrerd4bde9c2017-09-09 07:03:50 +0800236* Added support for using labels with
237 :class:`~cryptography.hazmat.primitives.asymmetric.padding.OAEP` when using
238 OpenSSL 1.0.2 or greater.
Paul Kehrer72c92f52017-09-26 10:23:24 +0800239* Improved compatibility with NSS when issuing certificates from an issuer
240 that has a subject with non-``UTF8String`` string types.
Paul Kehrer5e3cc982017-09-22 21:29:36 +0800241* Add support for the :class:`~cryptography.x509.DeltaCRLIndicator` extension.
Paul Kehrer5d669662017-09-11 09:16:34 +0800242* Add support for the :class:`~cryptography.x509.TLSFeature`
243 extension. This is commonly used for enabling ``OCSP Must-Staple`` in
244 certificates.
Paul Kehrerb76bcf82017-09-24 08:44:12 +0800245* Add support for the :class:`~cryptography.x509.FreshestCRL` extension.
Paul Kehrer0d6aaf42017-07-20 13:04:25 +0200246
Paul Kehrerad294c62017-08-03 20:16:32 -0500247.. _v2-0-3:
248
2492.0.3 - 2017-08-03
250~~~~~~~~~~~~~~~~~~
251
252* Fixed an issue with weak linking symbols when compiling on macOS
253 versions older than 10.12.
254
255
Christian Heimes765e7712017-08-03 16:08:09 +0200256.. _v2-0-2:
257
Paul Kehrer2bab0ac2017-07-27 06:03:27 -05002582.0.2 - 2017-07-27
259~~~~~~~~~~~~~~~~~~
260
261* Marked all symbols as hidden in the ``manylinux1`` wheel to avoid a
262 bug with symbol resolution in certain scenarios.
263
Christian Heimes765e7712017-08-03 16:08:09 +0200264
265.. _v2-0-1:
266
Paul Kehrerdce57f62017-07-26 19:18:55 -05002672.0.1 - 2017-07-26
268~~~~~~~~~~~~~~~~~~
269
270* Fixed a compilation bug affecting OpenBSD.
271* Altered the ``manylinux1`` wheels to statically link OpenSSL instead of
272 dynamically linking and bundling the shared object. This should resolve
273 crashes seen when using ``uwsgi`` or other binaries that link against
274 OpenSSL independently.
275* Fixed the stack level for the ``signer`` and ``verifier`` warnings.
276
Christian Heimes765e7712017-08-03 16:08:09 +0200277
278.. _v2-0:
279
Paul Kehrer9799e582017-07-17 16:38:15 +02002802.0 - 2017-07-17
281~~~~~~~~~~~~~~~~
Alex Gaynorb90e8d82017-05-29 23:10:39 -0400282
Paul Kehrere3a2fb22017-06-26 15:08:33 -1000283* **BACKWARDS INCOMPATIBLE:** Support for Python 3.3 has been dropped.
Paul Kehrer85675fc2017-07-01 13:02:37 -0500284* We now ship ``manylinux1`` wheels linked against OpenSSL 1.1.0f. These wheels
285 will be automatically used with most Linux distributions if you are running
286 the latest pip.
Paul Kehrer1a5d70e2017-06-03 17:11:55 -1000287* Deprecated the use of ``signer`` on
288 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`,
289 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`,
290 and
291 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey`
292 in favor of ``sign``.
293* Deprecated the use of ``verifier`` on
294 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`,
295 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`,
296 and
297 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey`
298 in favor of ``verify``.
Alex Gaynor6a0718f2017-06-04 13:36:58 -0400299* Added support for parsing
300 :class:`~cryptography.x509.certificate_transparency.SignedCertificateTimestamp`
301 objects from X.509 certificate extensions.
Paul Kehrer7e53d912017-06-07 18:08:57 -1000302* Added support for
303 :class:`~cryptography.hazmat.primitives.ciphers.aead.ChaCha20Poly1305`.
Paul Kehrer1a2e8172017-07-16 16:46:13 +0200304* Added support for
305 :class:`~cryptography.hazmat.primitives.ciphers.aead.AESCCM`.
Paul Kehrera2173582017-07-17 13:10:14 +0200306* Added
307 :class:`~cryptography.hazmat.primitives.ciphers.aead.AESGCM`, a "one shot"
308 API for AES GCM encryption.
Paul Kehrer3e357f72017-06-09 02:31:30 -1000309* Added support for :doc:`/hazmat/primitives/asymmetric/x25519`.
Paul Kehrer361a9fc2017-06-24 10:12:04 -1000310* Added support for serializing and deserializing Diffie-Hellman parameters
311 with
312 :func:`~cryptography.hazmat.primitives.serialization.load_pem_parameters`,
313 :func:`~cryptography.hazmat.primitives.serialization.load_der_parameters`,
314 and
Paul Kehrer2748e2e2017-06-24 13:20:15 -1000315 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHParameters.parameter_bytes`
Paul Kehrer361a9fc2017-06-24 10:12:04 -1000316 .
Alex Gaynor0c9aed92017-07-08 21:50:01 -0400317* The ``extensions`` attribute on :class:`~cryptography.x509.Certificate`,
318 :class:`~cryptography.x509.CertificateSigningRequest`,
319 :class:`~cryptography.x509.CertificateRevocationList`, and
320 :class:`~cryptography.x509.RevokedCertificate` now caches the computed
321 ``Extensions`` object. There should be no performance change, just a
322 performance improvement for programs accessing the ``extensions`` attribute
323 multiple times.
Paul Kehrer1a5d70e2017-06-03 17:11:55 -1000324
Christian Heimes765e7712017-08-03 16:08:09 +0200325
326.. _v1-9:
327
Paul Kehrer23ead432017-05-29 21:10:46 -05003281.9 - 2017-05-29
329~~~~~~~~~~~~~~~~
Paul Kehrerd0aad452017-03-10 08:36:18 -0400330
Paul Kehrera55cc3b2017-05-27 18:00:44 -0500331* **BACKWARDS INCOMPATIBLE:** Elliptic Curve signature verification no longer
Alex Gaynor5ca99462017-05-10 23:11:30 -0400332 returns ``True`` on success. This brings it in line with the interface's
333 documentation, and our intent. The correct way to use
334 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.verify`
335 has always been to check whether or not
336 :class:`~cryptography.exceptions.InvalidSignature` was raised.
Alex Gaynor2240ba22017-05-20 13:23:15 -0700337* **BACKWARDS INCOMPATIBLE:** Dropped support for macOS 10.7 and 10.8.
Alex Gaynor6091e112017-05-23 20:31:03 -0700338* **BACKWARDS INCOMPATIBLE:** The minimum supported PyPy version is now 5.3.
Paul Kehrer66e1eb22017-05-25 15:56:57 -0500339* Python 3.3 support has been deprecated, and will be removed in the next
Alex Gaynordb511142017-05-22 20:53:47 -0700340 ``cryptography`` release.
Alex Gaynor2240ba22017-05-20 13:23:15 -0700341* Add support for providing ``tag`` during
342 :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` finalization via
343 :meth:`~cryptography.hazmat.primitives.ciphers.AEADDecryptionContext.finalize_with_tag`.
Paul Kehrer6fcbebd2017-05-20 12:04:06 -0700344* Fixed an issue preventing ``cryptography`` from compiling against
345 LibreSSL 2.5.x.
Paul Kehrer416f5262017-05-23 23:38:59 -0700346* Added
347 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.key_size`
348 and
349 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey.key_size`
350 as convenience methods for determining the bit size of a secret scalar for
351 the curve.
Alex Gaynord08ddd52017-05-20 09:01:54 -0700352* Accessing an unrecognized extension marked critical on an X.509 object will
353 no longer raise an ``UnsupportedExtension`` exception, instead an
354 :class:`~cryptography.x509.UnrecognizedExtension` object will be returned.
355 This behavior was based on a poor reading of the RFC, unknown critical
356 extensions only need to be rejected on certificate verification.
Paul Kehrer51032352017-05-20 10:09:02 -0700357* The CommonCrypto backend has been removed.
Paul Kehrera4668c62017-05-20 13:25:47 -0700358* MultiBackend has been removed.
Paul Kehrer70e8f902017-05-23 16:55:19 -0700359* ``Whirlpool`` and ``RIPEMD160`` have been deprecated.
Paul Kehrer5fb10212017-05-02 12:04:53 -0500360
Christian Heimes765e7712017-08-03 16:08:09 +0200361
362.. _v1-8-2:
363
Paul Kehrer139b25f2017-05-26 06:32:15 -05003641.8.2 - 2017-05-26
365~~~~~~~~~~~~~~~~~~
366
367* Fixed a compilation bug affecting OpenSSL 1.1.0f.
368* Updated Windows and macOS wheels to be compiled against OpenSSL 1.1.0f.
Paul Kehrerd0aad452017-03-10 08:36:18 -0400369
Christian Heimes765e7712017-08-03 16:08:09 +0200370
371.. _v1-8-1:
372
Paul Kehrerd0aad452017-03-10 08:36:18 -04003731.8.1 - 2017-03-10
374~~~~~~~~~~~~~~~~~~
375
376* Fixed macOS wheels to properly link against 1.1.0 rather than 1.0.2.
377
Christian Heimes765e7712017-08-03 16:08:09 +0200378
379.. _v1-8:
380
Paul Kehrer928e4ee2017-03-09 22:43:42 -04003811.8 - 2017-03-09
382~~~~~~~~~~~~~~~~
Paul Kehrerfad63fe2016-12-12 16:41:26 -0600383
Alex Gaynor31b5d782016-12-23 12:20:36 -0500384* Added support for Python 3.6.
Alex Gaynor5a059022017-02-11 10:05:34 -0500385* Windows and macOS wheels now link against OpenSSL 1.1.0.
Paul Kehrere9dbbd82017-03-09 18:43:40 -0400386* macOS wheels are no longer universal. This change significantly shrinks the
387 size of the wheels. Users on macOS 32-bit Python (if there are any) should
388 migrate to 64-bit or build their own packages.
Ofek Lev0e6a1292017-02-08 00:09:41 -0500389* Changed ASN.1 dependency from ``pyasn1`` to ``asn1crypto`` resulting in a
390 general performance increase when encoding/decoding ASN.1 structures. Also,
391 the ``pyasn1_modules`` test dependency is no longer required.
Paul Kehrer9b34ca92017-02-16 22:20:38 -0600392* Added support for
393 :meth:`~cryptography.hazmat.primitives.ciphers.CipherContext.update_into` on
394 :class:`~cryptography.hazmat.primitives.ciphers.CipherContext`.
Aviv Palivoda1c7bd662017-02-08 06:38:42 +0200395* Added
396 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKeyWithSerialization.private_bytes`
397 to
398 :class:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKeyWithSerialization`.
Aviv Palivoda1c7bd662017-02-08 06:38:42 +0200399* Added
Paul Kehrer2748e2e2017-06-24 13:20:15 -1000400 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPublicKey.public_bytes`
Aviv Palivoda1c7bd662017-02-08 06:38:42 +0200401 to
Paul Kehrer2748e2e2017-06-24 13:20:15 -1000402 :class:`~cryptography.hazmat.primitives.asymmetric.dh.DHPublicKey`.
Paul Kehrer7a130852017-02-09 05:55:34 +0800403* :func:`~cryptography.hazmat.primitives.serialization.load_pem_private_key`
404 and
405 :func:`~cryptography.hazmat.primitives.serialization.load_der_private_key`
406 now require that ``password`` must be bytes if provided. Previously this
407 was documented but not enforced.
Paul Kehrer20fe2be2017-03-09 13:06:51 -0400408* Added support for subgroup order in :doc:`/hazmat/primitives/asymmetric/dh`.
Aviv Palivoda1c7bd662017-02-08 06:38:42 +0200409
Christian Heimes765e7712017-08-03 16:08:09 +0200410
411.. _v1-7-2:
412
Paul Kehrerc7a2e722017-01-28 17:45:57 +09004131.7.2 - 2017-01-27
414~~~~~~~~~~~~~~~~~~
415
416* Updated Windows and macOS wheels to be compiled against OpenSSL 1.0.2k.
417
Christian Heimes765e7712017-08-03 16:08:09 +0200418
419.. _v1-7-1:
420
Paul Kehrerc8f47ad2016-12-14 19:26:06 -06004211.7.1 - 2016-12-13
422~~~~~~~~~~~~~~~~~~
423
424* Fixed a regression in ``int_from_bytes`` where it failed to accept
425 ``bytearray``.
Paul Kehrerfad63fe2016-12-12 16:41:26 -0600426
Christian Heimes765e7712017-08-03 16:08:09 +0200427
428.. _v1-7:
429
Paul Kehrer5df72e82016-12-12 12:06:09 -06004301.7 - 2016-12-12
431~~~~~~~~~~~~~~~~
Paul Kehrer08585912016-11-22 20:04:40 +0800432
Alex Gaynor29b2ebc2016-11-22 09:25:17 -0500433* Support for OpenSSL 1.0.0 has been removed. Users on older version of OpenSSL
434 will need to upgrade.
Aviv Palivoda495f21a2016-11-25 18:51:28 +0200435* Added support for Diffie-Hellman key exchange using
Alex Gaynora9b86902017-05-24 15:01:14 -0700436 :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKey.exchange`.
Paul Kehrera22964a2016-12-10 09:15:41 -0600437* The OS random engine for OpenSSL has been rewritten to improve compatibility
438 with embedded Python and other edge cases. More information about this change
439 can be found in the
440 `pull request <https://github.com/pyca/cryptography/pull/3229>`_.
Paul Kehrer08585912016-11-22 20:04:40 +0800441
Christian Heimes765e7712017-08-03 16:08:09 +0200442
443.. _v1-6:
444
Paul Kehrer4a2f36b2016-11-22 10:50:28 +08004451.6 - 2016-11-22
446~~~~~~~~~~~~~~~~
Alex Gaynorf25e63d2016-08-26 20:55:44 -0400447
Alex Gaynor2e8725d2016-08-29 21:40:19 -0400448* Deprecated support for OpenSSL 1.0.0. Support will be removed in
449 ``cryptography`` 1.7.
Paul Kehrer500850b2016-11-20 00:40:16 +0800450* Replaced the Python-based OpenSSL locking callbacks with a C version to fix
451 a potential deadlock that could occur if a garbage collection cycle occurred
452 while inside the lock.
Paul Kehrer306ce512016-08-29 09:36:09 +0800453* Added support for :class:`~cryptography.hazmat.primitives.hashes.BLAKE2b` and
454 :class:`~cryptography.hazmat.primitives.hashes.BLAKE2s` when using OpenSSL
455 1.1.0.
Paul Kehrerc7b29b82016-09-01 09:17:21 +0800456* Added
457 :attr:`~cryptography.x509.Certificate.signature_algorithm_oid` support to
458 :class:`~cryptography.x509.Certificate`.
459* Added
460 :attr:`~cryptography.x509.CertificateSigningRequest.signature_algorithm_oid`
461 support to :class:`~cryptography.x509.CertificateSigningRequest`.
462* Added
463 :attr:`~cryptography.x509.CertificateRevocationList.signature_algorithm_oid`
464 support to :class:`~cryptography.x509.CertificateRevocationList`.
Terry Chiad8a27df2016-09-01 23:39:57 +0800465* Added support for :class:`~cryptography.hazmat.primitives.kdf.scrypt.Scrypt`
466 when using OpenSSL 1.1.0.
Paul Kehrer99777862016-11-15 07:34:55 +0800467* Added a workaround to improve compatibility with Python application bundling
468 tools like ``PyInstaller`` and ``cx_freeze``.
Paul Kehrer8b89bcc2016-09-03 11:31:43 -0500469* Added support for generating a
470 :meth:`~cryptography.x509.random_serial_number`.
Paul Kehrer3feeec82016-10-01 07:12:27 -0500471* Added support for encoding ``IPv4Network`` and ``IPv6Network`` in X.509
472 certificates for use with :class:`~cryptography.x509.NameConstraints`.
Paul Kehrer500850b2016-11-20 00:40:16 +0800473* Added :meth:`~cryptography.x509.Name.public_bytes` to
474 :class:`~cryptography.x509.Name`.
Fraser Tweedale02467dd2016-11-07 15:54:04 +1000475* Added :class:`~cryptography.x509.RelativeDistinguishedName`
476* :class:`~cryptography.x509.DistributionPoint` now accepts
477 :class:`~cryptography.x509.RelativeDistinguishedName` for
478 :attr:`~cryptography.x509.DistributionPoint.relative_name`.
479 Deprecated use of :class:`~cryptography.x509.Name` as
480 :attr:`~cryptography.x509.DistributionPoint.relative_name`.
Fraser Tweedale01ee6f52016-11-12 01:28:56 +1000481* :class:`~cryptography.x509.Name` now accepts an iterable of
482 :class:`~cryptography.x509.RelativeDistinguishedName`. RDNs can
483 be accessed via the :attr:`~cryptography.x509.Name.rdns`
484 attribute. When constructed with an iterable of
485 :class:`~cryptography.x509.NameAttribute`, each attribute becomes
486 a single-valued RDN.
Ofek Levc41b9d42016-11-11 20:07:11 -0500487* Added
488 :func:`~cryptography.hazmat.primitives.asymmetric.ec.derive_private_key`.
Paul Kehrerec7fc462016-11-21 07:55:18 +0800489* Added support for signing and verifying RSA, DSA, and ECDSA signatures with
Paul Kehrerf555c742016-11-20 22:48:10 +0800490 :class:`~cryptography.hazmat.primitives.asymmetric.utils.Prehashed`
491 digests.
Terry Chiad8a27df2016-09-01 23:39:57 +0800492
Christian Heimes765e7712017-08-03 16:08:09 +0200493
494.. _v1-5-3:
495
Alex Gaynorb94cacf2016-11-06 01:27:20 -04004961.5.3 - 2016-11-05
497~~~~~~~~~~~~~~~~~~
498
499* **SECURITY ISSUE**: Fixed a bug where ``HKDF`` would return an empty
500 byte-string if used with a ``length`` less than ``algorithm.digest_size``.
Alex Gaynorfb0e7192016-11-09 19:51:09 -0500501 Credit to **Markus Döring** for reporting the issue. *CVE-2016-9243*
Alex Gaynorb94cacf2016-11-06 01:27:20 -0400502
Christian Heimes765e7712017-08-03 16:08:09 +0200503
504.. _v1-5-2:
505
Alex Gaynorb4c087a2016-09-26 18:11:59 -04005061.5.2 - 2016-09-26
507~~~~~~~~~~~~~~~~~~
508
509* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2j.
Paul Kehrer306ce512016-08-29 09:36:09 +0800510
Christian Heimes765e7712017-08-03 16:08:09 +0200511
512.. _v1-5-1:
513
Paul Kehrer08652e92016-09-22 22:47:50 -05005141.5.1 - 2016-09-22
515~~~~~~~~~~~~~~~~~~
516
517* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2i.
518* Resolved a ``UserWarning`` when used with cffi 1.8.3.
519* Fixed a memory leak in name creation with X.509.
520* Added a workaround for old versions of setuptools.
521* Fixed an issue preventing ``cryptography`` from compiling against
522 OpenSSL 1.0.2i.
523
524
Christian Heimes765e7712017-08-03 16:08:09 +0200525
526.. _v1-5:
527
Paul Kehrerc0ee7382016-08-26 22:59:49 +08005281.5 - 2016-08-26
529~~~~~~~~~~~~~~~~
Paul Kehrer67ea4442016-06-04 12:00:54 -0700530
Alex Gaynor17097bf2016-06-27 22:29:38 -0400531* Added
532 :func:`~cryptography.hazmat.primitives.asymmetric.padding.calculate_max_pss_salt_length`.
Aviv Palivodaf67429b2016-06-30 21:42:46 +0300533* Added "one shot"
534 :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey.sign`
535 and
536 :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey.verify`
537 methods to DSA keys.
Aviv Palivoda2120a8e2016-07-02 19:43:06 +0300538* Added "one shot"
539 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey.sign`
540 and
541 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.verify`
542 methods to ECDSA keys.
Maximilian Hils679a9142016-07-31 16:43:19 -0700543* Switched back to the older callback model on Python 3.5 in order to mitigate
544 the locking callback problem with OpenSSL <1.1.0.
InvalidInterrupt8e66ca62016-08-16 19:39:31 -0700545* :class:`~cryptography.x509.CertificateBuilder`,
546 :class:`~cryptography.x509.CertificateRevocationListBuilder`, and
547 :class:`~cryptography.x509.RevokedCertificateBuilder` now accept timezone
548 aware ``datetime`` objects as method arguments
Paul Kehrer07ea3cd2016-08-26 21:48:24 +0800549* ``cryptography`` now supports OpenSSL 1.1.0 as a compilation target.
Alex Gaynor17097bf2016-06-27 22:29:38 -0400550
Paul Kehrer67ea4442016-06-04 12:00:54 -0700551
Christian Heimes765e7712017-08-03 16:08:09 +0200552
553.. _v1-4:
554
Paul Kehrer69365ce2016-06-04 09:57:11 -07005551.4 - 2016-06-04
556~~~~~~~~~~~~~~~~
Alex Gaynorf8c75fc2016-03-18 19:54:45 -0400557
Paul Kehrer69365ce2016-06-04 09:57:11 -0700558* Support for OpenSSL 0.9.8 has been removed. Users on older versions of
559 OpenSSL will need to upgrade.
Paul Kehrercb0fa2e2016-05-29 22:37:33 -0500560* Added :class:`~cryptography.hazmat.primitives.kdf.kbkdf.KBKDFHMAC`.
Alex Gaynor94989292016-06-03 13:04:26 -0700561* Added support for ``OpenSSH`` public key serialization.
Paul Kehrer69365ce2016-06-04 09:57:11 -0700562* Added support for SHA-2 in RSA
563 :class:`~cryptography.hazmat.primitives.asymmetric.padding.OAEP` when using
564 OpenSSL 1.0.2 or greater.
565* Added "one shot"
566 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey.sign`
567 and
568 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey.verify`
569 methods to RSA keys.
Alex Gaynor401ac6f2017-02-17 08:23:22 -0500570* Deprecated the ``serial`` attribute on
571 :class:`~cryptography.x509.Certificate`, in favor of
572 :attr:`~cryptography.x509.Certificate.serial_number`.
Paul Kehrer69365ce2016-06-04 09:57:11 -0700573
Alex Gaynorf8c75fc2016-03-18 19:54:45 -0400574
Christian Heimes765e7712017-08-03 16:08:09 +0200575
576.. _v1-3-4:
577
Alex Gaynor57515152016-06-02 20:53:52 -07005781.3.4 - 2016-06-03
579~~~~~~~~~~~~~~~~~~
580
581* Added another OpenSSL function to the bindings to support an upcoming
582 ``pyOpenSSL`` release.
583
584
Christian Heimes765e7712017-08-03 16:08:09 +0200585
586.. _v1-3-3:
587
Alex Gaynor57515152016-06-02 20:53:52 -07005881.3.3 - 2016-06-02
589~~~~~~~~~~~~~~~~~~
590
591* Added two new OpenSSL functions to the bindings to support an upcoming
592 ``pyOpenSSL`` release.
593
Christian Heimes765e7712017-08-03 16:08:09 +0200594
595.. _v1-3-2:
596
Paul Kehrerbb8d69a2016-05-04 13:33:20 -05005971.3.2 - 2016-05-04
598~~~~~~~~~~~~~~~~~~
599
600* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2h.
601* Fixed an issue preventing ``cryptography`` from compiling against
602 LibreSSL 2.3.x.
603
Christian Heimes765e7712017-08-03 16:08:09 +0200604
605.. _v1-3-1:
606
Paul Kehrer81f48962016-03-21 17:46:53 -04006071.3.1 - 2016-03-21
608~~~~~~~~~~~~~~~~~~
609
610* Fixed a bug that caused an ``AttributeError`` when using ``mock`` to patch
611 some ``cryptography`` modules.
612
Christian Heimes765e7712017-08-03 16:08:09 +0200613
614.. _v1-3:
615
Paul Kehrerc9694612016-03-17 20:31:44 -04006161.3 - 2016-03-18
617~~~~~~~~~~~~~~~~
Paul Kehrerac904e32016-01-08 07:53:25 -0800618
Cédric Krierbf0f4642016-02-26 18:40:20 +0100619* Added support for padding ANSI X.923 with
620 :class:`~cryptography.hazmat.primitives.padding.ANSIX923`.
Alex Gaynorbe6dd9b2016-01-22 17:12:14 -0500621* Deprecated support for OpenSSL 0.9.8. Support will be removed in
622 ``cryptography`` 1.4.
Paul Kehrerdba49b92016-03-13 20:15:53 -0400623* Added support for the :class:`~cryptography.x509.PolicyConstraints`
624 X.509 extension including both parsing and generation using
625 :class:`~cryptography.x509.CertificateBuilder` and
626 :class:`~cryptography.x509.CertificateSigningRequestBuilder`.
Paul Kehrer15732122016-03-06 20:58:26 -0430627* Added :attr:`~cryptography.x509.CertificateSigningRequest.is_signature_valid`
628 to :class:`~cryptography.x509.CertificateSigningRequest`.
Alex Gaynoraf503662016-03-05 10:40:50 -0500629* Fixed an intermittent ``AssertionError`` when performing an RSA decryption on
630 an invalid ciphertext, ``ValueError`` is now correctly raised in all cases.
Paul Kehrer61ff3562016-03-11 22:51:27 -0400631* Added
632 :meth:`~cryptography.x509.AuthorityKeyIdentifier.from_issuer_subject_key_identifier`.
Alex Gaynorbe6dd9b2016-01-22 17:12:14 -0500633
Christian Heimes765e7712017-08-03 16:08:09 +0200634
635.. _v1-2-3:
636
Alex Gaynor287ab1b2016-03-01 22:15:55 -05006371.2.3 - 2016-03-01
638~~~~~~~~~~~~~~~~~~
639
640* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2g.
641
Christian Heimes765e7712017-08-03 16:08:09 +0200642
643.. _v1-2-2:
644
Paul Kehrer2c6b8d02016-01-29 13:36:40 -06006451.2.2 - 2016-01-29
646~~~~~~~~~~~~~~~~~~
647
648* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2f.
649
Christian Heimes765e7712017-08-03 16:08:09 +0200650
651.. _v1-2-1:
652
Paul Kehrer56ea7b82016-01-08 11:53:20 -08006531.2.1 - 2016-01-08
654~~~~~~~~~~~~~~~~~~
655
656* Reverts a change to an OpenSSL ``EVP_PKEY`` object that caused errors with
657 ``pyOpenSSL``.
658
Christian Heimes765e7712017-08-03 16:08:09 +0200659
660.. _v1-2:
661
Paul Kehrer577f95e2016-01-07 21:56:53 -08006621.2 - 2016-01-08
663~~~~~~~~~~~~~~~~
Paul Kehrerc5b430f2015-10-29 07:52:35 +0900664
Paul Kehrer49bb7562015-12-25 16:17:40 -0600665* **BACKWARDS INCOMPATIBLE:**
666 :class:`~cryptography.x509.RevokedCertificate`
667 :attr:`~cryptography.x509.RevokedCertificate.extensions` now uses extension
668 classes rather than returning raw values inside the
669 :class:`~cryptography.x509.Extension`
670 :attr:`~cryptography.x509.Extension.value`. The new classes
671 are:
672
673 * :class:`~cryptography.x509.CertificateIssuer`
Paul Kehrer7058ece2015-12-25 22:28:29 -0600674 * :class:`~cryptography.x509.CRLReason`
Paul Kehrer23c0bbc2015-12-25 22:35:19 -0600675 * :class:`~cryptography.x509.InvalidityDate`
Paul Kehrerf23722a2015-12-31 15:56:56 -0600676* Deprecated support for OpenSSL 0.9.8 and 1.0.0. At this time there is no time
677 table for actually dropping support, however we strongly encourage all users
Paul Kehrer0509ec22016-01-08 07:56:17 -0800678 to upgrade, as those versions no longer receive support from the OpenSSL
Paul Kehrerf23722a2015-12-31 15:56:56 -0600679 project.
Paul Kehrerd91e7c12015-10-01 16:50:42 -0500680* The :class:`~cryptography.x509.Certificate` class now has
681 :attr:`~cryptography.x509.Certificate.signature` and
Paul Kehrerd2898052015-11-03 22:00:41 +0900682 :attr:`~cryptography.x509.Certificate.tbs_certificate_bytes` attributes.
Paul Kehrer80dc7522015-12-03 22:19:30 -0600683* The :class:`~cryptography.x509.CertificateSigningRequest` class now has
684 :attr:`~cryptography.x509.CertificateSigningRequest.signature` and
685 :attr:`~cryptography.x509.CertificateSigningRequest.tbs_certrequest_bytes`
686 attributes.
Paul Kehrer18a96122015-12-21 11:14:34 -0600687* The :class:`~cryptography.x509.CertificateRevocationList` class now has
688 :attr:`~cryptography.x509.CertificateRevocationList.signature` and
689 :attr:`~cryptography.x509.CertificateRevocationList.tbs_certlist_bytes`
690 attributes.
Paul Kehrer8b399b72015-12-02 22:53:40 -0600691* :class:`~cryptography.x509.NameConstraints` are now supported in the
Paul Kehrer756d7d22015-12-02 23:45:42 -0600692 :class:`~cryptography.x509.CertificateBuilder` and
693 :class:`~cryptography.x509.CertificateSigningRequestBuilder`.
Paul Kehrer54a837d2015-12-20 23:42:32 -0600694* Support serialization of certificate revocation lists using the
Paul Kehrer2d1d24d2015-12-21 09:23:52 -0600695 :meth:`~cryptography.x509.CertificateRevocationList.public_bytes` method of
Paul Kehrer54a837d2015-12-20 23:42:32 -0600696 :class:`~cryptography.x509.CertificateRevocationList`.
Paul Kehrer51f39cb2015-12-21 21:17:39 -0600697* Add support for parsing :class:`~cryptography.x509.CertificateRevocationList`
698 :meth:`~cryptography.x509.CertificateRevocationList.extensions` in the
Paul Kehrer2587d302015-12-22 17:20:42 -0600699 OpenSSL backend. The following extensions are currently supported:
700
701 * :class:`~cryptography.x509.AuthorityInformationAccess`
702 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
Paul Kehrer3b95cd72015-12-22 21:40:20 -0600703 * :class:`~cryptography.x509.CRLNumber`
Paul Kehrer2587d302015-12-22 17:20:42 -0600704 * :class:`~cryptography.x509.IssuerAlternativeName`
Paul Kehrer09ad50c2015-12-26 13:59:27 -0600705* Added :class:`~cryptography.x509.CertificateRevocationListBuilder` and
706 :class:`~cryptography.x509.RevokedCertificateBuilder` to allow creation of
707 CRLs.
Paul Kehrer58ddc112015-12-30 20:19:00 -0600708* Unrecognized non-critical X.509 extensions are now parsed into an
709 :class:`~cryptography.x509.UnrecognizedExtension` object.
Paul Kehrerd91e7c12015-10-01 16:50:42 -0500710
Christian Heimes765e7712017-08-03 16:08:09 +0200711
712.. _v1-1-2:
713
Paul Kehrer869cfd92015-12-10 14:12:05 -06007141.1.2 - 2015-12-10
715~~~~~~~~~~~~~~~~~~
716
717* Fixed a SIGBUS crash with the OS X wheels caused by redefinition of a
718 method.
719* Fixed a runtime error ``undefined symbol EC_GFp_nistp224_method`` that
720 occurred with some OpenSSL installations.
721* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2e.
722
Christian Heimes765e7712017-08-03 16:08:09 +0200723
724.. _v1-1-1:
725
Paul Kehrerdcf40fc2015-11-18 22:11:36 -06007261.1.1 - 2015-11-19
727~~~~~~~~~~~~~~~~~~
728
729* Fixed several small bugs related to compiling the OpenSSL bindings with
730 unusual OpenSSL configurations.
731* Resolved an issue where, depending on the method of installation and
732 which Python interpreter they were using, users on El Capitan (OS X 10.11)
733 may have seen an ``InternalError`` on import.
734
Christian Heimes765e7712017-08-03 16:08:09 +0200735
736.. _v1-1:
737
Paul Kehrere9ac0272015-10-28 15:48:01 +09007381.1 - 2015-10-28
739~~~~~~~~~~~~~~~~
Paul Kehrerbff54ef2015-08-12 08:47:34 -0500740
Alex Gaynor39d38b92015-10-17 16:44:15 -0400741* Added support for Elliptic Curve Diffie-Hellman with
Alex Gaynord2949892015-10-17 16:45:55 -0400742 :class:`~cryptography.hazmat.primitives.asymmetric.ec.ECDH`.
Alex Gaynorace036d2015-09-24 20:23:08 -0400743* Added :class:`~cryptography.hazmat.primitives.kdf.x963kdf.X963KDF`.
Paul Kehrer87355482015-10-21 20:27:44 -0500744* Added support for parsing certificate revocation lists (CRLs) using
745 :func:`~cryptography.x509.load_pem_x509_crl` and
746 :func:`~cryptography.x509.load_der_x509_crl`.
Paul Kehrer0d76a2e2015-05-17 13:36:13 -0700747* Add support for AES key wrapping with
748 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_wrap` and
749 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap`.
Paul Kehrere9ac0272015-10-28 15:48:01 +0900750* Added a ``__hash__`` method to :class:`~cryptography.x509.Name`.
Paul Kehrer1a1b1152015-10-28 09:33:05 +0900751* Add support for encoding and decoding elliptic curve points to a byte string
752 form using
753 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.encode_point`
754 and
755 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.from_encoded_point`.
Paul Kehrere9ac0272015-10-28 15:48:01 +0900756* Added :meth:`~cryptography.x509.Extensions.get_extension_for_class`.
757* :class:`~cryptography.x509.CertificatePolicies` are now supported in the
758 :class:`~cryptography.x509.CertificateBuilder`.
759* ``countryName`` is now encoded as a ``PrintableString`` when creating subject
760 and issuer distinguished names with the Certificate and CSR builder classes.
Paul Kehrer1a1b1152015-10-28 09:33:05 +0900761
Christian Heimes765e7712017-08-03 16:08:09 +0200762
763.. _v1-0-2:
764
Paul Kehrer8addede2015-09-26 22:57:35 -05007651.0.2 - 2015-09-27
766~~~~~~~~~~~~~~~~~~
767* **SECURITY ISSUE**: The OpenSSL backend prior to 1.0.2 made extensive use
768 of assertions to check response codes where our tests could not trigger a
769 failure. However, when Python is run with ``-O`` these asserts are optimized
770 away. If a user ran Python with this flag and got an invalid response code
771 this could result in undefined behavior or worse. Accordingly, all response
772 checks from the OpenSSL backend have been converted from ``assert``
773 to a true function call. Credit **Emilia Käsper (Google Security Team)**
774 for the report.
775
Christian Heimes765e7712017-08-03 16:08:09 +0200776
777.. _v1-0-1:
778
Paul Kehrer2f6b1692015-09-05 20:58:52 -05007791.0.1 - 2015-09-05
780~~~~~~~~~~~~~~~~~~
781
782* We now ship OS X wheels that statically link OpenSSL by default. When
783 installing a wheel on OS X 10.10+ (and using a Python compiled against the
784 10.10 SDK) users will no longer need to compile. See :doc:`/installation` for
785 alternate installation methods if required.
786* Set the default string mask to UTF-8 in the OpenSSL backend to resolve
787 character encoding issues with older versions of OpenSSL.
788* Several new OpenSSL bindings have been added to support a future pyOpenSSL
789 release.
790* Raise an error during install on PyPy < 2.6. 1.0+ requires PyPy 2.6+.
Paul Kehrerbff54ef2015-08-12 08:47:34 -0500791
Christian Heimes765e7712017-08-03 16:08:09 +0200792
793.. _v1-0:
794
Paul Kehrer55ab8052015-08-11 18:22:55 -05007951.0 - 2015-08-12
Paul Kehrerd5257ab2015-05-13 20:48:36 -0500796~~~~~~~~~~~~~~~~
797
Paul Kehrer68b3b1e2015-05-19 13:05:21 -0700798* Switched to the new `cffi`_ ``set_source`` out-of-line API mode for
799 compilation. This results in significantly faster imports and lowered
Paul Kehrer73f06c72015-06-07 23:17:39 -0500800 memory consumption. Due to this change we no longer support PyPy releases
801 older than 2.6 nor do we support any released version of PyPy3 (until a
802 version supporting cffi 1.0 comes out).
Paul Kehrer60cc9ef2015-08-04 19:29:52 +0100803* Fix parsing of OpenSSH public keys that have spaces in comments.
Andre Caronbeed2942015-05-18 13:47:36 -0400804* Support serialization of certificate signing requests using the
805 ``public_bytes`` method of
806 :class:`~cryptography.x509.CertificateSigningRequest`.
Andre Carona8aded62015-05-19 20:11:57 -0400807* Support serialization of certificates using the ``public_bytes`` method of
808 :class:`~cryptography.x509.Certificate`.
Jiangge Zhang764f6372015-06-05 18:01:22 +0800809* Add ``get_provisioning_uri`` method to
810 :class:`~cryptography.hazmat.primitives.twofactor.hotp.HOTP` and
811 :class:`~cryptography.hazmat.primitives.twofactor.totp.TOTP` for generating
812 provisioning URIs.
Paul Kehrer66f380c2015-06-12 11:23:34 -0500813* Add :class:`~cryptography.hazmat.primitives.kdf.concatkdf.ConcatKDFHash`
814 and :class:`~cryptography.hazmat.primitives.kdf.concatkdf.ConcatKDFHMAC`.
Ian Cordascoab94b902015-06-17 08:28:02 -0500815* Raise a ``TypeError`` when passing objects that are not text as the value to
816 :class:`~cryptography.x509.NameAttribute`.
Paul Kehrer44171a22015-08-01 21:21:26 +0100817* Add support for :class:`~cryptography.x509.OtherName` as a general name
818 type.
819* Added new X.509 extension support in :class:`~cryptography.x509.Certificate`
820 The following new extensions are now supported:
821
822 * :class:`~cryptography.x509.OCSPNoCheck`
823 * :class:`~cryptography.x509.InhibitAnyPolicy`
824 * :class:`~cryptography.x509.IssuerAlternativeName`
825 * :class:`~cryptography.x509.NameConstraints`
826
827* Extension support was added to
828 :class:`~cryptography.x509.CertificateSigningRequest`.
Ian Cordasco46479d02015-08-03 08:30:20 -0500829* Add support for creating signed certificates with
830 :class:`~cryptography.x509.CertificateBuilder`. This includes support for
Paul Kehrere0ecfdc2015-08-06 10:53:15 +0100831 the following extensions:
Ian Cordasco46479d02015-08-03 08:30:20 -0500832
833 * :class:`~cryptography.x509.BasicConstraints`
834 * :class:`~cryptography.x509.SubjectAlternativeName`
Paul Kehrere0ecfdc2015-08-06 10:53:15 +0100835 * :class:`~cryptography.x509.KeyUsage`
836 * :class:`~cryptography.x509.ExtendedKeyUsage`
837 * :class:`~cryptography.x509.SubjectKeyIdentifier`
838 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
839 * :class:`~cryptography.x509.AuthorityInformationAccess`
840 * :class:`~cryptography.x509.CRLDistributionPoints`
Paul Kehrer683d4d82015-08-06 23:13:45 +0100841 * :class:`~cryptography.x509.InhibitAnyPolicy`
Paul Kehrer2dfd9da2015-08-10 21:30:23 -0500842 * :class:`~cryptography.x509.IssuerAlternativeName`
843 * :class:`~cryptography.x509.OCSPNoCheck`
Ian Cordasco46479d02015-08-03 08:30:20 -0500844
Paul Kehrer91e385d2015-08-08 22:50:28 -0500845* Add support for creating certificate signing requests with
846 :class:`~cryptography.x509.CertificateSigningRequestBuilder`. This includes
847 support for the same extensions supported in the ``CertificateBuilder``.
Paul Kehrer31c5c332015-08-10 11:59:38 -0500848* Deprecate ``encode_rfc6979_signature`` and ``decode_rfc6979_signature`` in
849 favor of
850 :func:`~cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature`
851 and
852 :func:`~cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature`.
853
Paul Kehrer91e385d2015-08-08 22:50:28 -0500854
Christian Heimes765e7712017-08-03 16:08:09 +0200855
856.. _v0-9-3:
857
Paul Kehrer3bbda282015-07-09 09:48:23 -05008580.9.3 - 2015-07-09
859~~~~~~~~~~~~~~~~~~
860
861* Updated Windows wheels to be compiled against OpenSSL 1.0.2d.
862
Christian Heimes765e7712017-08-03 16:08:09 +0200863
864.. _v0-9-2:
865
Paul Kehrer7b411632015-07-03 18:07:41 -05008660.9.2 - 2015-07-04
867~~~~~~~~~~~~~~~~~~
868
869* Updated Windows wheels to be compiled against OpenSSL 1.0.2c.
870
Christian Heimes765e7712017-08-03 16:08:09 +0200871
872.. _v0-9-1:
873
Alex Gaynorc4bb7d52015-06-06 17:27:14 -04008740.9.1 - 2015-06-06
875~~~~~~~~~~~~~~~~~~
876
877* **SECURITY ISSUE**: Fixed a double free in the OpenSSL backend when using DSA
878 to verify signatures. Note that this only affects PyPy 2.6.0 and (presently
879 unreleased) CFFI versions greater than 1.1.0.
880
Christian Heimes765e7712017-08-03 16:08:09 +0200881
882.. _v0-9:
883
Paul Kehrerc486ed52015-05-13 17:59:31 -05008840.9 - 2015-05-13
885~~~~~~~~~~~~~~~~
Paul Kehrer8ce597b2015-03-09 00:01:17 -0500886
Paul Kehrer741fccb2015-04-14 10:22:25 -0400887* Removed support for Python 3.2. This version of Python is rarely used
888 and caused support headaches. Users affected by this should upgrade to 3.3+.
Alex Gaynor6e7f6222015-03-29 21:51:38 -0400889* Deprecated support for Python 2.6. At the time there is no time table for
890 actually dropping support, however we strongly encourage all users to upgrade
891 their Python, as Python 2.6 no longer receives support from the Python core
892 team.
Paul Kehrerebbeedf2015-05-08 18:13:14 -0500893* Add support for the
894 :class:`~cryptography.hazmat.primitives.asymmetric.ec.SECP256K1` elliptic
895 curve.
Alex Gaynor5d27d4d2015-04-04 14:56:02 -0500896* Fixed compilation when using an OpenSSL which was compiled with the
897 ``no-comp`` (``OPENSSL_NO_COMP``) option.
Paul Kehrera2c48652015-03-10 15:48:37 -0500898* Support :attr:`~cryptography.hazmat.primitives.serialization.Encoding.DER`
899 serialization of public keys using the ``public_bytes`` method of
Paul Kehrer1955ebf2015-03-10 08:38:57 -0500900 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`,
901 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`,
902 and
Paul Kehrera2c48652015-03-10 15:48:37 -0500903 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`.
Paul Kehrer919a5b22015-03-14 13:15:17 -0500904* Support :attr:`~cryptography.hazmat.primitives.serialization.Encoding.DER`
905 serialization of private keys using the ``private_bytes`` method of
906 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`,
907 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`,
908 and
909 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`.
Paul Kehrera1a1f232015-03-15 15:34:35 -0500910* Add support for parsing X.509 certificate signing requests (CSRs) with
Paul Kehrer1effb6e2015-03-30 15:05:59 -0500911 :func:`~cryptography.x509.load_pem_x509_csr` and
912 :func:`~cryptography.x509.load_der_x509_csr`.
Paul Kehrerd14dcc52015-04-14 14:21:21 -0400913* Moved ``cryptography.exceptions.InvalidToken`` to
914 :class:`cryptography.hazmat.primitives.twofactor.InvalidToken` and deprecated
915 the old location. This was moved to minimize confusion between this exception
916 and :class:`cryptography.fernet.InvalidToken`.
Paul Kehreraeb77202015-05-13 11:52:38 -0500917* Added support for X.509 extensions in :class:`~cryptography.x509.Certificate`
918 objects. The following extensions are supported as of this release:
919
920 * :class:`~cryptography.x509.BasicConstraints`
921 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
922 * :class:`~cryptography.x509.SubjectKeyIdentifier`
923 * :class:`~cryptography.x509.KeyUsage`
924 * :class:`~cryptography.x509.SubjectAlternativeName`
925 * :class:`~cryptography.x509.ExtendedKeyUsage`
926 * :class:`~cryptography.x509.CRLDistributionPoints`
927 * :class:`~cryptography.x509.AuthorityInformationAccess`
928 * :class:`~cryptography.x509.CertificatePolicies`
929
930 Note that unsupported extensions with the critical flag raise
Alex Gaynord08ddd52017-05-20 09:01:54 -0700931 ``UnsupportedExtension`` while unsupported extensions set to non-critical are
932 silently ignored. Read the :doc:`X.509 documentation</x509/index>` for more
933 information.
Paul Kehrer1955ebf2015-03-10 08:38:57 -0500934
Christian Heimes765e7712017-08-03 16:08:09 +0200935
936.. _v0-8-2:
937
Paul Kehrer33906b82015-04-10 21:00:08 -04009380.8.2 - 2015-04-10
939~~~~~~~~~~~~~~~~~~
940
941* Fixed a race condition when initializing the OpenSSL or CommonCrypto backends
942 in a multi-threaded scenario.
943
Christian Heimes765e7712017-08-03 16:08:09 +0200944
945.. _v0-8-1:
946
Paul Kehrer41a750c2015-03-19 22:46:23 -05009470.8.1 - 2015-03-20
948~~~~~~~~~~~~~~~~~~
949
950* Updated Windows wheels to be compiled against OpenSSL 1.0.2a.
951
Christian Heimes765e7712017-08-03 16:08:09 +0200952
953.. _v0-8:
954
Paul Kehrer5dc4b882015-03-08 18:19:50 -05009550.8 - 2015-03-08
956~~~~~~~~~~~~~~~~
Paul Kehrer08120d72014-12-17 21:37:58 -0600957
Alex Gaynor5d66ca52014-12-25 18:39:39 -0800958* :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key` can
959 now load elliptic curve public keys.
Paul Kehrer836b8302015-01-18 09:42:58 -0600960* Added
Paul Kehrer8802a5b2015-02-13 12:06:57 -0600961 :attr:`~cryptography.x509.Certificate.signature_hash_algorithm` support to
Paul Kehrerb0a80392015-02-11 23:39:49 -0600962 :class:`~cryptography.x509.Certificate`.
963* Added
Paul Kehrer836b8302015-01-18 09:42:58 -0600964 :func:`~cryptography.hazmat.primitives.asymmetric.rsa.rsa_recover_prime_factors`
Paul Kehrer48402ff2015-02-16 15:31:52 -0600965* :class:`~cryptography.hazmat.primitives.kdf.KeyDerivationFunction` was moved
Paul Kehrer7bc36862017-05-29 10:13:35 -0500966 from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer48402ff2015-02-16 15:31:52 -0600967 :mod:`~cryptography.hazmat.primitives.kdf`.
Paul Kehrer719d5362015-01-01 20:03:52 -0600968* Added support for parsing X.509 names. See the
Alex Gaynor5e0da3a2015-07-12 10:35:56 -0500969 :doc:`X.509 documentation</x509/index>` for more information.
Paul Kehrer99a249d2015-01-04 15:55:22 -0600970* Added
971 :func:`~cryptography.hazmat.primitives.serialization.load_der_private_key` to
972 support loading of DER encoded private keys and
973 :func:`~cryptography.hazmat.primitives.serialization.load_der_public_key` to
974 support loading DER encoded public keys.
Steven McDonald27e6b9c2015-02-18 16:37:03 +1100975* Fixed building against LibreSSL, a compile-time substitute for OpenSSL.
Paul Kehrer77f540d2015-02-20 12:53:04 -0600976* FreeBSD 9.2 was removed from the continuous integration system.
Paul Kehrerf28dd452015-03-05 10:22:59 -0600977* Updated Windows wheels to be compiled against OpenSSL 1.0.2.
Paul Kehrer7bfa22e2015-03-04 13:48:30 -0600978* :func:`~cryptography.hazmat.primitives.serialization.load_pem_public_key`
979 and :func:`~cryptography.hazmat.primitives.serialization.load_der_public_key`
Paul Kehrer791afc02015-03-05 14:29:28 -0600980 now support PKCS1 RSA public keys (in addition to the previous support for
Paul Kehrer7bfa22e2015-03-04 13:48:30 -0600981 SubjectPublicKeyInfo format for RSA, EC, and DSA).
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600982* Added
Paul Kehrer59e5c862015-03-02 10:36:50 -0600983 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500984 and deprecated ``EllipticCurvePrivateKeyWithNumbers``.
Paul Kehrer59e5c862015-03-02 10:36:50 -0600985* Added
986 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization.private_bytes`
987 to
988 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`.
989* Added
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600990 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500991 and deprecated ``RSAPrivateKeyWithNumbers``.
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600992* Added
Paul Kehrer223a8f02015-02-28 18:54:10 -0600993 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization.private_bytes`
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600994 to
995 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`.
Paul Kehrerec342632015-03-01 16:53:58 -0600996* Added
997 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500998 and deprecated ``DSAPrivateKeyWithNumbers``.
Paul Kehrerec342632015-03-01 16:53:58 -0600999* Added
1000 :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization.private_bytes`
1001 to
1002 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`.
Paul Kehrer3f157e02015-02-28 11:31:06 -06001003* Added
1004 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001005 and deprecated ``RSAPublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -05001006* Added ``public_bytes`` to
Paul Kehrer3f157e02015-02-28 11:31:06 -06001007 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`.
Paul Kehrer419615b2015-03-05 21:01:16 -06001008* Added
1009 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001010 and deprecated ``EllipticCurvePublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -05001011* Added ``public_bytes`` to
Paul Kehrer419615b2015-03-05 21:01:16 -06001012 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`.
Paul Kehrer26006c52015-03-08 18:27:11 -05001013* Added
1014 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001015 and deprecated ``DSAPublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -05001016* Added ``public_bytes`` to
Paul Kehrer26006c52015-03-08 18:27:11 -05001017 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`.
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001018* :class:`~cryptography.hazmat.primitives.hashes.HashAlgorithm` and
1019 :class:`~cryptography.hazmat.primitives.hashes.HashContext` were moved from
Paul Kehrer7bc36862017-05-29 10:13:35 -05001020 ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001021 :mod:`~cryptography.hazmat.primitives.hashes`.
1022* :class:`~cryptography.hazmat.primitives.ciphers.CipherContext`,
1023 :class:`~cryptography.hazmat.primitives.ciphers.AEADCipherContext`,
1024 :class:`~cryptography.hazmat.primitives.ciphers.AEADEncryptionContext`,
1025 :class:`~cryptography.hazmat.primitives.ciphers.CipherAlgorithm`, and
1026 :class:`~cryptography.hazmat.primitives.ciphers.BlockCipherAlgorithm`
Paul Kehrer7bc36862017-05-29 10:13:35 -05001027 were moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001028 :mod:`~cryptography.hazmat.primitives.ciphers`.
1029* :class:`~cryptography.hazmat.primitives.ciphers.modes.Mode`,
1030 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithInitializationVector`,
1031 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithNonce`, and
1032 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithAuthenticationTag`
Paul Kehrer7bc36862017-05-29 10:13:35 -05001033 were moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001034 :mod:`~cryptography.hazmat.primitives.ciphers.modes`.
1035* :class:`~cryptography.hazmat.primitives.padding.PaddingContext` was moved
Paul Kehrer7bc36862017-05-29 10:13:35 -05001036 from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001037 :mod:`~cryptography.hazmat.primitives.padding`.
1038*
1039 :class:`~cryptography.hazmat.primitives.asymmetric.padding.AsymmetricPadding`
Paul Kehrer7bc36862017-05-29 10:13:35 -05001040 was moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001041 :mod:`~cryptography.hazmat.primitives.asymmetric.padding`.
Paul Kehrer1a5d70e2017-06-03 17:11:55 -10001042* ``AsymmetricSignatureContext`` and ``AsymmetricVerificationContext``
Paul Kehrer7bc36862017-05-29 10:13:35 -05001043 were moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer1a5d70e2017-06-03 17:11:55 -10001044 ``cryptography.hazmat.primitives.asymmetric``.
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001045* :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAParameters`,
1046 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAParametersWithNumbers`,
1047 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001048 ``DSAPrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001049 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey` and
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001050 ``DSAPublicKeyWithNumbers`` were moved from
Paul Kehrer7bc36862017-05-29 10:13:35 -05001051 ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001052 :mod:`~cryptography.hazmat.primitives.asymmetric.dsa`
1053* :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurve`,
1054 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurveSignatureAlgorithm`,
1055 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001056 ``EllipticCurvePrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001057 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001058 and ``EllipticCurvePublicKeyWithNumbers``
Paul Kehrer7bc36862017-05-29 10:13:35 -05001059 were moved from ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001060 :mod:`~cryptography.hazmat.primitives.asymmetric.ec`.
1061* :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001062 ``RSAPrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001063 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey` and
Paul Kehrerc0dd53e2015-07-04 11:27:27 -05001064 ``RSAPublicKeyWithNumbers`` were moved from
Paul Kehrer7bc36862017-05-29 10:13:35 -05001065 ``cryptography.hazmat.primitives.interfaces`` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001066 :mod:`~cryptography.hazmat.primitives.asymmetric.rsa`.
Alex Gaynor5d66ca52014-12-25 18:39:39 -08001067
Christian Heimes765e7712017-08-03 16:08:09 +02001068
1069.. _v0-7-2:
1070
Paul Kehrer72572f92015-01-16 08:10:12 -060010710.7.2 - 2015-01-16
1072~~~~~~~~~~~~~~~~~~
1073
1074* Updated Windows wheels to be compiled against OpenSSL 1.0.1l.
1075* ``enum34`` is no longer installed on Python 3.4, where it is included in
1076 the standard library.
1077* Added a new function to the OpenSSL bindings to support additional
1078 functionality in pyOpenSSL.
1079
Christian Heimes765e7712017-08-03 16:08:09 +02001080
1081.. _v0-7-1:
1082
Paul Kehrer842e58a2014-12-28 15:17:39 -070010830.7.1 - 2014-12-28
1084~~~~~~~~~~~~~~~~~~
1085
1086* Fixed an issue preventing compilation on platforms where ``OPENSSL_NO_SSL3``
1087 was defined.
1088
Christian Heimes765e7712017-08-03 16:08:09 +02001089
1090.. _v0-7:
1091
Paul Kehrere8135092014-12-17 14:20:40 -060010920.7 - 2014-12-17
1093~~~~~~~~~~~~~~~~
Paul Kehrer98681332014-09-29 21:43:57 -05001094
Alex Gaynordf6a5cd2014-11-07 09:36:47 -03001095* Cryptography has been relicensed from the Apache Software License, Version
1096 2.0, to being available under *either* the Apache Software License, Version
1097 2.0, or the BSD license.
Alex Gaynor4c825132014-10-20 21:27:08 -07001098* Added key-rotation support to :doc:`Fernet </fernet>` with
1099 :class:`~cryptography.fernet.MultiFernet`.
Paul Kehrer214d91d2014-12-18 07:20:04 -06001100* More bit-lengths are now supported for ``p`` and ``q`` when loading DSA keys
Alex Gaynora438e832014-10-19 19:47:05 -07001101 from numbers.
Paul Kehrer7bc36862017-05-29 10:13:35 -05001102* Added :class:`~cryptography.hazmat.primitives.mac.MACContext` as a
Paul Kehrerebee0062015-03-07 12:34:33 -06001103 common interface for CMAC and HMAC and deprecated ``CMACContext``.
Paul Kehrerb3a3e5c2014-11-27 11:27:32 -10001104* Added support for encoding and decoding :rfc:`6979` signatures in
1105 :doc:`/hazmat/primitives/asymmetric/utils`.
Mark Adams78a7d1c2014-12-12 23:13:12 -06001106* Added
Alex Gaynor993b85a2014-12-15 10:42:45 -08001107 :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key` to
Paul Kehrere8135092014-12-17 14:20:40 -06001108 support the loading of OpenSSH public keys (:rfc:`4253`). Only RSA and DSA
1109 keys are currently supported.
Paul Kehrere76cd272014-12-14 19:00:51 -06001110* Added initial support for X.509 certificate parsing. See the
Alex Gaynor5e0da3a2015-07-12 10:35:56 -05001111 :doc:`X.509 documentation</x509/index>` for more information.
Terry Chiac7c82f32014-10-20 12:15:22 +08001112
Christian Heimes765e7712017-08-03 16:08:09 +02001113
1114.. _v0-6-1:
1115
Paul Kehrer555b1502014-10-15 23:24:57 -050011160.6.1 - 2014-10-15
1117~~~~~~~~~~~~~~~~~~
1118
1119* Updated Windows wheels to be compiled against OpenSSL 1.0.1j.
1120* Fixed an issue where OpenSSL 1.0.1j changed the errors returned by some
1121 functions.
1122* Added our license file to the ``cryptography-vectors`` package.
1123* Implemented DSA hash truncation support (per FIPS 186-3) in the OpenSSL
1124 backend. This works around an issue in 1.0.0, 1.0.0a, and 1.0.0b where
1125 truncation was not implemented.
1126
Christian Heimes765e7712017-08-03 16:08:09 +02001127
1128.. _v0-6:
1129
Paul Kehrerc3f11d82014-09-29 20:31:15 -050011300.6 - 2014-09-29
1131~~~~~~~~~~~~~~~~
Paul Kehrer1757fe32014-07-07 22:29:23 -05001132
Alex Gaynoref823342014-09-27 12:04:22 -04001133* Added
1134 :func:`~cryptography.hazmat.primitives.serialization.load_pem_private_key` to
1135 ease loading private keys, and
1136 :func:`~cryptography.hazmat.primitives.serialization.load_pem_public_key` to
1137 support loading public keys.
Alex Gaynor1658f942014-07-08 00:02:37 -07001138* Removed the, deprecated in 0.4, support for the ``salt_length`` argument to
1139 the :class:`~cryptography.hazmat.primitives.asymmetric.padding.MGF1`
1140 constructor. The ``salt_length`` should be passed to
1141 :class:`~cryptography.hazmat.primitives.asymmetric.padding.PSS` instead.
Paul Kehrerf4fbf392014-08-21 08:36:49 -10001142* Fix compilation on OS X Yosemite.
Paul Kehrer77e95a02014-09-25 12:28:07 -05001143* Deprecated ``elliptic_curve_private_key_from_numbers`` and
1144 ``elliptic_curve_public_key_from_numbers`` in favor of
1145 ``load_elliptic_curve_private_numbers`` and
1146 ``load_elliptic_curve_public_numbers`` on
1147 :class:`~cryptography.hazmat.backends.interfaces.EllipticCurveBackend`.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001148* Added ``EllipticCurvePrivateKeyWithNumbers`` and
1149 ``EllipticCurvePublicKeyWithNumbers`` support.
Paul Kehrerf378e402014-09-27 11:28:42 -05001150* Work around three GCM related bugs in CommonCrypto and OpenSSL.
Paul Kehrer4c773652014-09-27 11:26:02 -05001151
1152 * On the CommonCrypto backend adding AAD but not subsequently calling update
1153 would return null tag bytes.
1154
1155 * One the CommonCrypto backend a call to update without an empty add AAD call
1156 would return null ciphertext bytes.
1157
1158 * On the OpenSSL backend with certain versions adding AAD only would give
1159 invalid tag bytes.
1160
1161* Support loading EC private keys from PEM.
Alex Gaynor1658f942014-07-08 00:02:37 -07001162
Christian Heimes765e7712017-08-03 16:08:09 +02001163
1164.. _v0-5-4:
1165
Paul Kehrer01f0c672014-08-20 20:15:18 -100011660.5.4 - 2014-08-20
1167~~~~~~~~~~~~~~~~~~
1168
1169* Added several functions to the OpenSSL bindings to support new
1170 functionality in pyOpenSSL.
1171* Fixed a redefined constant causing compilation failure with Solaris 11.2.
1172
Christian Heimes765e7712017-08-03 16:08:09 +02001173
1174.. _v0-5-3:
1175
Paul Kehrer86cf5b12014-08-07 05:38:17 -100011760.5.3 - 2014-08-06
1177~~~~~~~~~~~~~~~~~~
1178
1179* Updated Windows wheels to be compiled against OpenSSL 1.0.1i.
1180
Christian Heimes765e7712017-08-03 16:08:09 +02001181
1182.. _v0-5-2:
1183
Paul Kehrer2456e662014-07-09 19:51:32 -050011840.5.2 - 2014-07-09
1185~~~~~~~~~~~~~~~~~~
1186
Paul Kehrera4668c62017-05-20 13:25:47 -07001187* Add ``TraditionalOpenSSLSerializationBackend`` support to ``multibackend``.
Paul Kehrer2456e662014-07-09 19:51:32 -05001188* Fix compilation error on OS X 10.8 (Mountain Lion).
1189
Christian Heimes765e7712017-08-03 16:08:09 +02001190
1191.. _v0-5-1:
1192
Paul Kehrerf092d732014-07-07 19:42:15 -050011930.5.1 - 2014-07-07
1194~~~~~~~~~~~~~~~~~~
1195
Paul Kehrera4668c62017-05-20 13:25:47 -07001196* Add ``PKCS8SerializationBackend`` support to ``multibackend``.
Paul Kehrerf092d732014-07-07 19:42:15 -05001197
Christian Heimes765e7712017-08-03 16:08:09 +02001198
1199.. _v0-5:
1200
Paul Kehrer3c6a2392014-07-07 08:29:07 -050012010.5 - 2014-07-07
1202~~~~~~~~~~~~~~~~
Paul Kehrer50a04852014-05-03 08:57:13 -05001203
Alex Gaynor8f1b8e82014-06-29 20:43:29 -07001204* **BACKWARDS INCOMPATIBLE:**
1205 :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` no longer allows
1206 truncation of tags by default. Previous versions of ``cryptography`` allowed
1207 tags to be truncated by default, applications wishing to preserve this
Alex Gaynor4efe61a2014-06-29 20:44:53 -07001208 behavior (not recommended) can pass the ``min_tag_length`` argument.
Paul Kehrer8987bcb2014-07-06 09:28:29 -05001209* Windows builds now statically link OpenSSL by default. When installing a
Paul Kehrer3df9a312014-07-06 09:25:29 -05001210 wheel on Windows you no longer need to install OpenSSL separately. Windows
1211 users can switch between static and dynamic linking with an environment
1212 variable. See :doc:`/installation` for more details.
Paul Kehrer88bac252014-05-21 12:42:13 -05001213* Added :class:`~cryptography.hazmat.primitives.kdf.hkdf.HKDFExpand`.
Paul Kehrer2a947c42014-05-15 17:22:08 -04001214* Added :class:`~cryptography.hazmat.primitives.ciphers.modes.CFB8` support
1215 for :class:`~cryptography.hazmat.primitives.ciphers.algorithms.AES` and
1216 :class:`~cryptography.hazmat.primitives.ciphers.algorithms.TripleDES` on
Paul Kehrer51032352017-05-20 10:09:02 -07001217 ``commoncrypto`` and :doc:`/hazmat/backends/openssl`.
Paul Kehrer055f9602014-05-20 23:21:26 -05001218* Added ``AES`` :class:`~cryptography.hazmat.primitives.ciphers.modes.CTR`
1219 support to the OpenSSL backend when linked against 0.9.8.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001220* Added ``PKCS8SerializationBackend`` and
1221 ``TraditionalOpenSSLSerializationBackend`` support to the
1222 :doc:`/hazmat/backends/openssl`.
Paul Kehrer21fc5822014-07-04 09:28:55 -05001223* Added :doc:`/hazmat/primitives/asymmetric/ec` and
1224 :class:`~cryptography.hazmat.backends.interfaces.EllipticCurveBackend`.
Paul Kehrerd1bac5e2014-06-13 12:34:49 -05001225* Added :class:`~cryptography.hazmat.primitives.ciphers.modes.ECB` support
1226 for :class:`~cryptography.hazmat.primitives.ciphers.algorithms.TripleDES` on
Paul Kehrer51032352017-05-20 10:09:02 -07001227 ``commoncrypto`` and :doc:`/hazmat/backends/openssl`.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001228* Deprecated the concrete ``RSAPrivateKey`` class in favor of backend
Paul Kehrera10be692015-02-12 12:58:27 -06001229 specific providers of the
1230 :class:`cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
1231 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001232* Deprecated the concrete ``RSAPublicKey`` in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -06001233 providers of the
1234 :class:`cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`
1235 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001236* Deprecated the concrete ``DSAPrivateKey`` class in favor of backend
Paul Kehrera10be692015-02-12 12:58:27 -06001237 specific providers of the
1238 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`
1239 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001240* Deprecated the concrete ``DSAPublicKey`` class in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -06001241 providers of the
1242 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`
1243 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -06001244* Deprecated the concrete ``DSAParameters`` class in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -06001245 providers of the
1246 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAParameters`
1247 interface.
Paul Kehrerf2fb02a2014-06-19 10:16:42 -06001248* Deprecated ``encrypt_rsa``, ``decrypt_rsa``, ``create_rsa_signature_ctx`` and
1249 ``create_rsa_verification_ctx`` on
1250 :class:`~cryptography.hazmat.backends.interfaces.RSABackend`.
Paul Kehrer1262be22014-06-26 16:16:50 -06001251* Deprecated ``create_dsa_signature_ctx`` and ``create_dsa_verification_ctx``
1252 on :class:`~cryptography.hazmat.backends.interfaces.DSABackend`.
Paul Kehrerbb91c812014-05-12 15:03:04 -04001253
Christian Heimes765e7712017-08-03 16:08:09 +02001254
1255.. _v0-4:
1256
Paul Kehrer95862012014-05-01 16:48:05 -050012570.4 - 2014-05-03
1258~~~~~~~~~~~~~~~~
Paul Kehrer3d4eb6e2014-03-27 16:27:31 -05001259
Paul Kehrerba987452014-04-02 17:12:26 -05001260* Deprecated ``salt_length`` on
1261 :class:`~cryptography.hazmat.primitives.asymmetric.padding.MGF1` and added it
Alex Gaynor9963cb32014-07-12 09:35:33 -07001262 to :class:`~cryptography.hazmat.primitives.asymmetric.padding.PSS`. It will
Alex Gaynor2e49f212014-07-12 10:58:30 -07001263 be removed from ``MGF1`` in two releases per our :doc:`/api-stability`
Alex Gaynor9963cb32014-07-12 09:35:33 -07001264 policy.
1265* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.SEED`
1266 support.
Ayrx9bea9372014-04-22 21:00:34 +08001267* Added :class:`~cryptography.hazmat.primitives.cmac.CMAC`.
Alex Gaynorcd58b932014-05-01 23:11:06 -07001268* Added decryption support to
1269 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
1270 and encryption support to
1271 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`.
Paul Kehrer80950e52014-05-01 16:48:55 -05001272* Added signature support to
1273 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`
1274 and verification support to
1275 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`.
Ayrx9bea9372014-04-22 21:00:34 +08001276
Christian Heimes765e7712017-08-03 16:08:09 +02001277
1278.. _v0-3:
1279
Paul Kehrer9c2a11b2014-03-27 13:16:57 -050012800.3 - 2014-03-27
1281~~~~~~~~~~~~~~~~
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001282
1283* Added :class:`~cryptography.hazmat.primitives.twofactor.hotp.HOTP`.
David Reideea08d92014-02-25 11:06:09 -08001284* Added :class:`~cryptography.hazmat.primitives.twofactor.totp.TOTP`.
Alex Gaynor9963cb32014-07-12 09:35:33 -07001285* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.IDEA`
1286 support.
Alex Gaynorcd58b932014-05-01 23:11:06 -07001287* Added signature support to
1288 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
1289 and verification support to
1290 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`.
Paul Kehrer1592e5b2014-03-27 14:29:38 -05001291* Moved test vectors to the new ``cryptography_vectors`` package.
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001292
Christian Heimes765e7712017-08-03 16:08:09 +02001293
1294.. _v0-2-2:
1295
Paul Kehrer7f711ee2014-03-03 23:58:45 -040012960.2.2 - 2014-03-03
1297~~~~~~~~~~~~~~~~~~
1298
Alex Gaynor9963cb32014-07-12 09:35:33 -07001299* Removed a constant definition that was causing compilation problems with
1300 specific versions of OpenSSL.
Paul Kehrer7f711ee2014-03-03 23:58:45 -04001301
Christian Heimes765e7712017-08-03 16:08:09 +02001302
1303.. _v0-2-1:
1304
Matthew Iversen69a6fad2014-02-25 02:10:44 +110013050.2.1 - 2014-02-22
1306~~~~~~~~~~~~~~~~~~
Paul Kehrer7f711ee2014-03-03 23:58:45 -04001307
Alex Gaynorcd58b932014-05-01 23:11:06 -07001308* Fix a bug where importing cryptography from multiple paths could cause
1309 initialization to fail.
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001310
Christian Heimes765e7712017-08-03 16:08:09 +02001311
1312.. _v0-2:
1313
Matthew Iversen69a6fad2014-02-25 02:10:44 +110013140.2 - 2014-02-20
1315~~~~~~~~~~~~~~~~
1316
Paul Kehrer51032352017-05-20 10:09:02 -07001317* Added ``commoncrypto``.
1318* Added initial ``commoncrypto``.
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001319* Removed ``register_cipher_adapter`` method from
1320 :class:`~cryptography.hazmat.backends.interfaces.CipherBackend`.
1321* Added support for the OpenSSL backend under Windows.
1322* Improved thread-safety for the OpenSSL backend.
1323* Fixed compilation on systems where OpenSSL's ``ec.h`` header is not
1324 available, such as CentOS.
1325* Added :class:`~cryptography.hazmat.primitives.kdf.pbkdf2.PBKDF2HMAC`.
1326* Added :class:`~cryptography.hazmat.primitives.kdf.hkdf.HKDF`.
Paul Kehrera4668c62017-05-20 13:25:47 -07001327* Added ``multibackend``.
Alex Gaynorcd58b932014-05-01 23:11:06 -07001328* Set default random for the :doc:`/hazmat/backends/openssl` to the OS
1329 random engine.
1330* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.CAST5`
1331 (CAST-128) support.
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001332
Christian Heimes765e7712017-08-03 16:08:09 +02001333
1334.. _v0-1:
1335
Matthew Iversen69a6fad2014-02-25 02:10:44 +110013360.1 - 2014-01-08
1337~~~~~~~~~~~~~~~~
1338
1339* Initial release.
1340
Alex Stapletonb9df2782014-03-17 08:09:41 +00001341.. _`master`: https://github.com/pyca/cryptography/
Alex Gaynor988df9b2016-04-28 10:57:16 -04001342.. _`cffi`: https://cffi.readthedocs.io/