blob: 705c09cd4fbf90ffa0eb6b40aa5451e5d2b8ad04 [file] [log] [blame]
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001Changelog
2=========
3
Paul Kehrerbff54ef2015-08-12 08:47:34 -050041.1 - `master`_
5~~~~~~~~~~~~~~~
6
7.. note:: This version is not yet released and is under active development.
8
Alex Gaynorace036d2015-09-24 20:23:08 -04009* Added :class:`~cryptography.hazmat.primitives.kdf.x963kdf.X963KDF`.
10
Paul Kehrer2f6b1692015-09-05 20:58:52 -0500111.0.1 - 2015-09-05
12~~~~~~~~~~~~~~~~~~
13
14* We now ship OS X wheels that statically link OpenSSL by default. When
15 installing a wheel on OS X 10.10+ (and using a Python compiled against the
16 10.10 SDK) users will no longer need to compile. See :doc:`/installation` for
17 alternate installation methods if required.
18* Set the default string mask to UTF-8 in the OpenSSL backend to resolve
19 character encoding issues with older versions of OpenSSL.
20* Several new OpenSSL bindings have been added to support a future pyOpenSSL
21 release.
22* Raise an error during install on PyPy < 2.6. 1.0+ requires PyPy 2.6+.
Paul Kehrerbff54ef2015-08-12 08:47:34 -050023
Paul Kehrer55ab8052015-08-11 18:22:55 -0500241.0 - 2015-08-12
Paul Kehrerd5257ab2015-05-13 20:48:36 -050025~~~~~~~~~~~~~~~~
26
Paul Kehrer68b3b1e2015-05-19 13:05:21 -070027* Switched to the new `cffi`_ ``set_source`` out-of-line API mode for
28 compilation. This results in significantly faster imports and lowered
Paul Kehrer73f06c72015-06-07 23:17:39 -050029 memory consumption. Due to this change we no longer support PyPy releases
30 older than 2.6 nor do we support any released version of PyPy3 (until a
31 version supporting cffi 1.0 comes out).
Paul Kehrer60cc9ef2015-08-04 19:29:52 +010032* Fix parsing of OpenSSH public keys that have spaces in comments.
Andre Caronbeed2942015-05-18 13:47:36 -040033* Support serialization of certificate signing requests using the
34 ``public_bytes`` method of
35 :class:`~cryptography.x509.CertificateSigningRequest`.
Andre Carona8aded62015-05-19 20:11:57 -040036* Support serialization of certificates using the ``public_bytes`` method of
37 :class:`~cryptography.x509.Certificate`.
Jiangge Zhang764f6372015-06-05 18:01:22 +080038* Add ``get_provisioning_uri`` method to
39 :class:`~cryptography.hazmat.primitives.twofactor.hotp.HOTP` and
40 :class:`~cryptography.hazmat.primitives.twofactor.totp.TOTP` for generating
41 provisioning URIs.
Paul Kehrer66f380c2015-06-12 11:23:34 -050042* Add :class:`~cryptography.hazmat.primitives.kdf.concatkdf.ConcatKDFHash`
43 and :class:`~cryptography.hazmat.primitives.kdf.concatkdf.ConcatKDFHMAC`.
Ian Cordascoab94b902015-06-17 08:28:02 -050044* Raise a ``TypeError`` when passing objects that are not text as the value to
45 :class:`~cryptography.x509.NameAttribute`.
Paul Kehrer44171a22015-08-01 21:21:26 +010046* Add support for :class:`~cryptography.x509.OtherName` as a general name
47 type.
48* Added new X.509 extension support in :class:`~cryptography.x509.Certificate`
49 The following new extensions are now supported:
50
51 * :class:`~cryptography.x509.OCSPNoCheck`
52 * :class:`~cryptography.x509.InhibitAnyPolicy`
53 * :class:`~cryptography.x509.IssuerAlternativeName`
54 * :class:`~cryptography.x509.NameConstraints`
55
56* Extension support was added to
57 :class:`~cryptography.x509.CertificateSigningRequest`.
Ian Cordasco46479d02015-08-03 08:30:20 -050058* Add support for creating signed certificates with
59 :class:`~cryptography.x509.CertificateBuilder`. This includes support for
Paul Kehrere0ecfdc2015-08-06 10:53:15 +010060 the following extensions:
Ian Cordasco46479d02015-08-03 08:30:20 -050061
62 * :class:`~cryptography.x509.BasicConstraints`
63 * :class:`~cryptography.x509.SubjectAlternativeName`
Paul Kehrere0ecfdc2015-08-06 10:53:15 +010064 * :class:`~cryptography.x509.KeyUsage`
65 * :class:`~cryptography.x509.ExtendedKeyUsage`
66 * :class:`~cryptography.x509.SubjectKeyIdentifier`
67 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
68 * :class:`~cryptography.x509.AuthorityInformationAccess`
69 * :class:`~cryptography.x509.CRLDistributionPoints`
Paul Kehrer683d4d82015-08-06 23:13:45 +010070 * :class:`~cryptography.x509.InhibitAnyPolicy`
Paul Kehrer2dfd9da2015-08-10 21:30:23 -050071 * :class:`~cryptography.x509.IssuerAlternativeName`
72 * :class:`~cryptography.x509.OCSPNoCheck`
Ian Cordasco46479d02015-08-03 08:30:20 -050073
Paul Kehrer91e385d2015-08-08 22:50:28 -050074* Add support for creating certificate signing requests with
75 :class:`~cryptography.x509.CertificateSigningRequestBuilder`. This includes
76 support for the same extensions supported in the ``CertificateBuilder``.
Paul Kehrer31c5c332015-08-10 11:59:38 -050077* Deprecate ``encode_rfc6979_signature`` and ``decode_rfc6979_signature`` in
78 favor of
79 :func:`~cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature`
80 and
81 :func:`~cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature`.
82
Paul Kehrer91e385d2015-08-08 22:50:28 -050083
Paul Kehrer3bbda282015-07-09 09:48:23 -0500840.9.3 - 2015-07-09
85~~~~~~~~~~~~~~~~~~
86
87* Updated Windows wheels to be compiled against OpenSSL 1.0.2d.
88
Paul Kehrer7b411632015-07-03 18:07:41 -0500890.9.2 - 2015-07-04
90~~~~~~~~~~~~~~~~~~
91
92* Updated Windows wheels to be compiled against OpenSSL 1.0.2c.
93
Alex Gaynorc4bb7d52015-06-06 17:27:14 -0400940.9.1 - 2015-06-06
95~~~~~~~~~~~~~~~~~~
96
97* **SECURITY ISSUE**: Fixed a double free in the OpenSSL backend when using DSA
98 to verify signatures. Note that this only affects PyPy 2.6.0 and (presently
99 unreleased) CFFI versions greater than 1.1.0.
100
Paul Kehrerc486ed52015-05-13 17:59:31 -05001010.9 - 2015-05-13
102~~~~~~~~~~~~~~~~
Paul Kehrer8ce597b2015-03-09 00:01:17 -0500103
Paul Kehrer741fccb2015-04-14 10:22:25 -0400104* Removed support for Python 3.2. This version of Python is rarely used
105 and caused support headaches. Users affected by this should upgrade to 3.3+.
Alex Gaynor6e7f6222015-03-29 21:51:38 -0400106* Deprecated support for Python 2.6. At the time there is no time table for
107 actually dropping support, however we strongly encourage all users to upgrade
108 their Python, as Python 2.6 no longer receives support from the Python core
109 team.
Paul Kehrerebbeedf2015-05-08 18:13:14 -0500110* Add support for the
111 :class:`~cryptography.hazmat.primitives.asymmetric.ec.SECP256K1` elliptic
112 curve.
Alex Gaynor5d27d4d2015-04-04 14:56:02 -0500113* Fixed compilation when using an OpenSSL which was compiled with the
114 ``no-comp`` (``OPENSSL_NO_COMP``) option.
Paul Kehrera2c48652015-03-10 15:48:37 -0500115* Support :attr:`~cryptography.hazmat.primitives.serialization.Encoding.DER`
116 serialization of public keys using the ``public_bytes`` method of
Paul Kehrer1955ebf2015-03-10 08:38:57 -0500117 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`,
118 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`,
119 and
Paul Kehrera2c48652015-03-10 15:48:37 -0500120 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`.
Paul Kehrer919a5b22015-03-14 13:15:17 -0500121* Support :attr:`~cryptography.hazmat.primitives.serialization.Encoding.DER`
122 serialization of private keys using the ``private_bytes`` method of
123 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`,
124 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`,
125 and
126 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`.
Paul Kehrera1a1f232015-03-15 15:34:35 -0500127* Add support for parsing X.509 certificate signing requests (CSRs) with
Paul Kehrer1effb6e2015-03-30 15:05:59 -0500128 :func:`~cryptography.x509.load_pem_x509_csr` and
129 :func:`~cryptography.x509.load_der_x509_csr`.
Paul Kehrerd14dcc52015-04-14 14:21:21 -0400130* Moved ``cryptography.exceptions.InvalidToken`` to
131 :class:`cryptography.hazmat.primitives.twofactor.InvalidToken` and deprecated
132 the old location. This was moved to minimize confusion between this exception
133 and :class:`cryptography.fernet.InvalidToken`.
Paul Kehreraeb77202015-05-13 11:52:38 -0500134* Added support for X.509 extensions in :class:`~cryptography.x509.Certificate`
135 objects. The following extensions are supported as of this release:
136
137 * :class:`~cryptography.x509.BasicConstraints`
138 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
139 * :class:`~cryptography.x509.SubjectKeyIdentifier`
140 * :class:`~cryptography.x509.KeyUsage`
141 * :class:`~cryptography.x509.SubjectAlternativeName`
142 * :class:`~cryptography.x509.ExtendedKeyUsage`
143 * :class:`~cryptography.x509.CRLDistributionPoints`
144 * :class:`~cryptography.x509.AuthorityInformationAccess`
145 * :class:`~cryptography.x509.CertificatePolicies`
146
147 Note that unsupported extensions with the critical flag raise
148 :class:`~cryptography.x509.UnsupportedExtension` while unsupported extensions
149 set to non-critical are silently ignored. Read the
Alex Gaynor5e0da3a2015-07-12 10:35:56 -0500150 :doc:`X.509 documentation</x509/index>` for more information.
Paul Kehrer1955ebf2015-03-10 08:38:57 -0500151
Paul Kehrer33906b82015-04-10 21:00:08 -04001520.8.2 - 2015-04-10
153~~~~~~~~~~~~~~~~~~
154
155* Fixed a race condition when initializing the OpenSSL or CommonCrypto backends
156 in a multi-threaded scenario.
157
Paul Kehrer41a750c2015-03-19 22:46:23 -05001580.8.1 - 2015-03-20
159~~~~~~~~~~~~~~~~~~
160
161* Updated Windows wheels to be compiled against OpenSSL 1.0.2a.
162
Paul Kehrer5dc4b882015-03-08 18:19:50 -05001630.8 - 2015-03-08
164~~~~~~~~~~~~~~~~
Paul Kehrer08120d72014-12-17 21:37:58 -0600165
Alex Gaynor5d66ca52014-12-25 18:39:39 -0800166* :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key` can
167 now load elliptic curve public keys.
Paul Kehrer836b8302015-01-18 09:42:58 -0600168* Added
Paul Kehrer8802a5b2015-02-13 12:06:57 -0600169 :attr:`~cryptography.x509.Certificate.signature_hash_algorithm` support to
Paul Kehrerb0a80392015-02-11 23:39:49 -0600170 :class:`~cryptography.x509.Certificate`.
171* Added
Paul Kehrer836b8302015-01-18 09:42:58 -0600172 :func:`~cryptography.hazmat.primitives.asymmetric.rsa.rsa_recover_prime_factors`
Paul Kehrer48402ff2015-02-16 15:31:52 -0600173* :class:`~cryptography.hazmat.primitives.kdf.KeyDerivationFunction` was moved
174 from :mod:`~cryptography.hazmat.primitives.interfaces` to
175 :mod:`~cryptography.hazmat.primitives.kdf`.
Paul Kehrer719d5362015-01-01 20:03:52 -0600176* Added support for parsing X.509 names. See the
Alex Gaynor5e0da3a2015-07-12 10:35:56 -0500177 :doc:`X.509 documentation</x509/index>` for more information.
Paul Kehrer99a249d2015-01-04 15:55:22 -0600178* Added
179 :func:`~cryptography.hazmat.primitives.serialization.load_der_private_key` to
180 support loading of DER encoded private keys and
181 :func:`~cryptography.hazmat.primitives.serialization.load_der_public_key` to
182 support loading DER encoded public keys.
Steven McDonald27e6b9c2015-02-18 16:37:03 +1100183* Fixed building against LibreSSL, a compile-time substitute for OpenSSL.
Paul Kehrer77f540d2015-02-20 12:53:04 -0600184* FreeBSD 9.2 was removed from the continuous integration system.
Paul Kehrerf28dd452015-03-05 10:22:59 -0600185* Updated Windows wheels to be compiled against OpenSSL 1.0.2.
Paul Kehrer7bfa22e2015-03-04 13:48:30 -0600186* :func:`~cryptography.hazmat.primitives.serialization.load_pem_public_key`
187 and :func:`~cryptography.hazmat.primitives.serialization.load_der_public_key`
Paul Kehrer791afc02015-03-05 14:29:28 -0600188 now support PKCS1 RSA public keys (in addition to the previous support for
Paul Kehrer7bfa22e2015-03-04 13:48:30 -0600189 SubjectPublicKeyInfo format for RSA, EC, and DSA).
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600190* Added
Paul Kehrer59e5c862015-03-02 10:36:50 -0600191 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500192 and deprecated ``EllipticCurvePrivateKeyWithNumbers``.
Paul Kehrer59e5c862015-03-02 10:36:50 -0600193* Added
194 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization.private_bytes`
195 to
196 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`.
197* Added
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600198 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500199 and deprecated ``RSAPrivateKeyWithNumbers``.
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600200* Added
Paul Kehrer223a8f02015-02-28 18:54:10 -0600201 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization.private_bytes`
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600202 to
203 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`.
Paul Kehrerec342632015-03-01 16:53:58 -0600204* Added
205 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500206 and deprecated ``DSAPrivateKeyWithNumbers``.
Paul Kehrerec342632015-03-01 16:53:58 -0600207* Added
208 :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization.private_bytes`
209 to
210 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`.
Paul Kehrer3f157e02015-02-28 11:31:06 -0600211* Added
212 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500213 and deprecated ``RSAPublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -0500214* Added ``public_bytes`` to
Paul Kehrer3f157e02015-02-28 11:31:06 -0600215 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`.
Paul Kehrer419615b2015-03-05 21:01:16 -0600216* Added
217 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500218 and deprecated ``EllipticCurvePublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -0500219* Added ``public_bytes`` to
Paul Kehrer419615b2015-03-05 21:01:16 -0600220 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`.
Paul Kehrer26006c52015-03-08 18:27:11 -0500221* Added
222 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500223 and deprecated ``DSAPublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -0500224* Added ``public_bytes`` to
Paul Kehrer26006c52015-03-08 18:27:11 -0500225 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`.
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500226* :class:`~cryptography.hazmat.primitives.hashes.HashAlgorithm` and
227 :class:`~cryptography.hazmat.primitives.hashes.HashContext` were moved from
228 :mod:`~cryptography.hazmat.primitives.interfaces` to
229 :mod:`~cryptography.hazmat.primitives.hashes`.
230* :class:`~cryptography.hazmat.primitives.ciphers.CipherContext`,
231 :class:`~cryptography.hazmat.primitives.ciphers.AEADCipherContext`,
232 :class:`~cryptography.hazmat.primitives.ciphers.AEADEncryptionContext`,
233 :class:`~cryptography.hazmat.primitives.ciphers.CipherAlgorithm`, and
234 :class:`~cryptography.hazmat.primitives.ciphers.BlockCipherAlgorithm`
235 were moved from :mod:`~cryptography.hazmat.primitives.interfaces` to
236 :mod:`~cryptography.hazmat.primitives.ciphers`.
237* :class:`~cryptography.hazmat.primitives.ciphers.modes.Mode`,
238 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithInitializationVector`,
239 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithNonce`, and
240 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithAuthenticationTag`
241 were moved from :mod:`~cryptography.hazmat.primitives.interfaces` to
242 :mod:`~cryptography.hazmat.primitives.ciphers.modes`.
243* :class:`~cryptography.hazmat.primitives.padding.PaddingContext` was moved
244 from :mod:`~cryptography.hazmat.primitives.interfaces` to
245 :mod:`~cryptography.hazmat.primitives.padding`.
246*
247 :class:`~cryptography.hazmat.primitives.asymmetric.padding.AsymmetricPadding`
248 was moved from :mod:`~cryptography.hazmat.primitives.interfaces` to
249 :mod:`~cryptography.hazmat.primitives.asymmetric.padding`.
250*
251 :class:`~cryptography.hazmat.primitives.asymmetric.AsymmetricSignatureContext`
252 and
253 :class:`~cryptography.hazmat.primitives.asymmetric.AsymmetricVerificationContext`
254 were moved from :mod:`~cryptography.hazmat.primitives.interfaces` to
255 :mod:`~cryptography.hazmat.primitives.asymmetric`.
256* :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAParameters`,
257 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAParametersWithNumbers`,
258 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500259 ``DSAPrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500260 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey` and
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500261 ``DSAPublicKeyWithNumbers`` were moved from
262 :mod:`~cryptography.hazmat.primitives.interfaces` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500263 :mod:`~cryptography.hazmat.primitives.asymmetric.dsa`
264* :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurve`,
265 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurveSignatureAlgorithm`,
266 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500267 ``EllipticCurvePrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500268 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500269 and ``EllipticCurvePublicKeyWithNumbers``
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500270 were moved from :mod:`~cryptography.hazmat.primitives.interfaces` to
271 :mod:`~cryptography.hazmat.primitives.asymmetric.ec`.
272* :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500273 ``RSAPrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500274 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey` and
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500275 ``RSAPublicKeyWithNumbers`` were moved from
276 :mod:`~cryptography.hazmat.primitives.interfaces` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500277 :mod:`~cryptography.hazmat.primitives.asymmetric.rsa`.
Alex Gaynor5d66ca52014-12-25 18:39:39 -0800278
Paul Kehrer72572f92015-01-16 08:10:12 -06002790.7.2 - 2015-01-16
280~~~~~~~~~~~~~~~~~~
281
282* Updated Windows wheels to be compiled against OpenSSL 1.0.1l.
283* ``enum34`` is no longer installed on Python 3.4, where it is included in
284 the standard library.
285* Added a new function to the OpenSSL bindings to support additional
286 functionality in pyOpenSSL.
287
Paul Kehrer842e58a2014-12-28 15:17:39 -07002880.7.1 - 2014-12-28
289~~~~~~~~~~~~~~~~~~
290
291* Fixed an issue preventing compilation on platforms where ``OPENSSL_NO_SSL3``
292 was defined.
293
Paul Kehrere8135092014-12-17 14:20:40 -06002940.7 - 2014-12-17
295~~~~~~~~~~~~~~~~
Paul Kehrer98681332014-09-29 21:43:57 -0500296
Alex Gaynordf6a5cd2014-11-07 09:36:47 -0300297* Cryptography has been relicensed from the Apache Software License, Version
298 2.0, to being available under *either* the Apache Software License, Version
299 2.0, or the BSD license.
Alex Gaynor4c825132014-10-20 21:27:08 -0700300* Added key-rotation support to :doc:`Fernet </fernet>` with
301 :class:`~cryptography.fernet.MultiFernet`.
Paul Kehrer214d91d2014-12-18 07:20:04 -0600302* More bit-lengths are now supported for ``p`` and ``q`` when loading DSA keys
Alex Gaynora438e832014-10-19 19:47:05 -0700303 from numbers.
Terry Chiaff5ec862014-10-20 12:15:22 +0800304* Added :class:`~cryptography.hazmat.primitives.interfaces.MACContext` as a
Paul Kehrerebee0062015-03-07 12:34:33 -0600305 common interface for CMAC and HMAC and deprecated ``CMACContext``.
Paul Kehrerb3a3e5c2014-11-27 11:27:32 -1000306* Added support for encoding and decoding :rfc:`6979` signatures in
307 :doc:`/hazmat/primitives/asymmetric/utils`.
Mark Adams78a7d1c2014-12-12 23:13:12 -0600308* Added
Alex Gaynor993b85a2014-12-15 10:42:45 -0800309 :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key` to
Paul Kehrere8135092014-12-17 14:20:40 -0600310 support the loading of OpenSSH public keys (:rfc:`4253`). Only RSA and DSA
311 keys are currently supported.
Paul Kehrere76cd272014-12-14 19:00:51 -0600312* Added initial support for X.509 certificate parsing. See the
Alex Gaynor5e0da3a2015-07-12 10:35:56 -0500313 :doc:`X.509 documentation</x509/index>` for more information.
Terry Chiac7c82f32014-10-20 12:15:22 +0800314
Paul Kehrer555b1502014-10-15 23:24:57 -05003150.6.1 - 2014-10-15
316~~~~~~~~~~~~~~~~~~
317
318* Updated Windows wheels to be compiled against OpenSSL 1.0.1j.
319* Fixed an issue where OpenSSL 1.0.1j changed the errors returned by some
320 functions.
321* Added our license file to the ``cryptography-vectors`` package.
322* Implemented DSA hash truncation support (per FIPS 186-3) in the OpenSSL
323 backend. This works around an issue in 1.0.0, 1.0.0a, and 1.0.0b where
324 truncation was not implemented.
325
Paul Kehrerc3f11d82014-09-29 20:31:15 -05003260.6 - 2014-09-29
327~~~~~~~~~~~~~~~~
Paul Kehrer1757fe32014-07-07 22:29:23 -0500328
Alex Gaynoref823342014-09-27 12:04:22 -0400329* Added
330 :func:`~cryptography.hazmat.primitives.serialization.load_pem_private_key` to
331 ease loading private keys, and
332 :func:`~cryptography.hazmat.primitives.serialization.load_pem_public_key` to
333 support loading public keys.
Alex Gaynor1658f942014-07-08 00:02:37 -0700334* Removed the, deprecated in 0.4, support for the ``salt_length`` argument to
335 the :class:`~cryptography.hazmat.primitives.asymmetric.padding.MGF1`
336 constructor. The ``salt_length`` should be passed to
337 :class:`~cryptography.hazmat.primitives.asymmetric.padding.PSS` instead.
Paul Kehrerf4fbf392014-08-21 08:36:49 -1000338* Fix compilation on OS X Yosemite.
Paul Kehrer77e95a02014-09-25 12:28:07 -0500339* Deprecated ``elliptic_curve_private_key_from_numbers`` and
340 ``elliptic_curve_public_key_from_numbers`` in favor of
341 ``load_elliptic_curve_private_numbers`` and
342 ``load_elliptic_curve_public_numbers`` on
343 :class:`~cryptography.hazmat.backends.interfaces.EllipticCurveBackend`.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600344* Added ``EllipticCurvePrivateKeyWithNumbers`` and
345 ``EllipticCurvePublicKeyWithNumbers`` support.
Paul Kehrerf378e402014-09-27 11:28:42 -0500346* Work around three GCM related bugs in CommonCrypto and OpenSSL.
Paul Kehrer4c773652014-09-27 11:26:02 -0500347
348 * On the CommonCrypto backend adding AAD but not subsequently calling update
349 would return null tag bytes.
350
351 * One the CommonCrypto backend a call to update without an empty add AAD call
352 would return null ciphertext bytes.
353
354 * On the OpenSSL backend with certain versions adding AAD only would give
355 invalid tag bytes.
356
357* Support loading EC private keys from PEM.
Alex Gaynor1658f942014-07-08 00:02:37 -0700358
Paul Kehrer01f0c672014-08-20 20:15:18 -10003590.5.4 - 2014-08-20
360~~~~~~~~~~~~~~~~~~
361
362* Added several functions to the OpenSSL bindings to support new
363 functionality in pyOpenSSL.
364* Fixed a redefined constant causing compilation failure with Solaris 11.2.
365
Paul Kehrer86cf5b12014-08-07 05:38:17 -10003660.5.3 - 2014-08-06
367~~~~~~~~~~~~~~~~~~
368
369* Updated Windows wheels to be compiled against OpenSSL 1.0.1i.
370
Paul Kehrer2456e662014-07-09 19:51:32 -05003710.5.2 - 2014-07-09
372~~~~~~~~~~~~~~~~~~
373
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600374* Add ``TraditionalOpenSSLSerializationBackend`` support to
375 :doc:`/hazmat/backends/multibackend`.
Paul Kehrer2456e662014-07-09 19:51:32 -0500376* Fix compilation error on OS X 10.8 (Mountain Lion).
377
Paul Kehrerf092d732014-07-07 19:42:15 -05003780.5.1 - 2014-07-07
379~~~~~~~~~~~~~~~~~~
380
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600381* Add ``PKCS8SerializationBackend`` support to
382 :doc:`/hazmat/backends/multibackend`.
Paul Kehrerf092d732014-07-07 19:42:15 -0500383
Paul Kehrer3c6a2392014-07-07 08:29:07 -05003840.5 - 2014-07-07
385~~~~~~~~~~~~~~~~
Paul Kehrer50a04852014-05-03 08:57:13 -0500386
Alex Gaynor8f1b8e82014-06-29 20:43:29 -0700387* **BACKWARDS INCOMPATIBLE:**
388 :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` no longer allows
389 truncation of tags by default. Previous versions of ``cryptography`` allowed
390 tags to be truncated by default, applications wishing to preserve this
Alex Gaynor4efe61a2014-06-29 20:44:53 -0700391 behavior (not recommended) can pass the ``min_tag_length`` argument.
Paul Kehrer8987bcb2014-07-06 09:28:29 -0500392* Windows builds now statically link OpenSSL by default. When installing a
Paul Kehrer3df9a312014-07-06 09:25:29 -0500393 wheel on Windows you no longer need to install OpenSSL separately. Windows
394 users can switch between static and dynamic linking with an environment
395 variable. See :doc:`/installation` for more details.
Paul Kehrer88bac252014-05-21 12:42:13 -0500396* Added :class:`~cryptography.hazmat.primitives.kdf.hkdf.HKDFExpand`.
Paul Kehrer2a947c42014-05-15 17:22:08 -0400397* Added :class:`~cryptography.hazmat.primitives.ciphers.modes.CFB8` support
398 for :class:`~cryptography.hazmat.primitives.ciphers.algorithms.AES` and
399 :class:`~cryptography.hazmat.primitives.ciphers.algorithms.TripleDES` on
400 :doc:`/hazmat/backends/commoncrypto` and :doc:`/hazmat/backends/openssl`.
Paul Kehrer055f9602014-05-20 23:21:26 -0500401* Added ``AES`` :class:`~cryptography.hazmat.primitives.ciphers.modes.CTR`
402 support to the OpenSSL backend when linked against 0.9.8.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600403* Added ``PKCS8SerializationBackend`` and
404 ``TraditionalOpenSSLSerializationBackend`` support to the
405 :doc:`/hazmat/backends/openssl`.
Paul Kehrer21fc5822014-07-04 09:28:55 -0500406* Added :doc:`/hazmat/primitives/asymmetric/ec` and
407 :class:`~cryptography.hazmat.backends.interfaces.EllipticCurveBackend`.
Paul Kehrerd1bac5e2014-06-13 12:34:49 -0500408* Added :class:`~cryptography.hazmat.primitives.ciphers.modes.ECB` support
409 for :class:`~cryptography.hazmat.primitives.ciphers.algorithms.TripleDES` on
410 :doc:`/hazmat/backends/commoncrypto` and :doc:`/hazmat/backends/openssl`.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600411* Deprecated the concrete ``RSAPrivateKey`` class in favor of backend
Paul Kehrera10be692015-02-12 12:58:27 -0600412 specific providers of the
413 :class:`cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
414 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600415* Deprecated the concrete ``RSAPublicKey`` in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -0600416 providers of the
417 :class:`cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`
418 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600419* Deprecated the concrete ``DSAPrivateKey`` class in favor of backend
Paul Kehrera10be692015-02-12 12:58:27 -0600420 specific providers of the
421 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`
422 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600423* Deprecated the concrete ``DSAPublicKey`` class in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -0600424 providers of the
425 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`
426 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600427* Deprecated the concrete ``DSAParameters`` class in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -0600428 providers of the
429 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAParameters`
430 interface.
Paul Kehrerf2fb02a2014-06-19 10:16:42 -0600431* Deprecated ``encrypt_rsa``, ``decrypt_rsa``, ``create_rsa_signature_ctx`` and
432 ``create_rsa_verification_ctx`` on
433 :class:`~cryptography.hazmat.backends.interfaces.RSABackend`.
Paul Kehrer1262be22014-06-26 16:16:50 -0600434* Deprecated ``create_dsa_signature_ctx`` and ``create_dsa_verification_ctx``
435 on :class:`~cryptography.hazmat.backends.interfaces.DSABackend`.
Paul Kehrerbb91c812014-05-12 15:03:04 -0400436
Paul Kehrer95862012014-05-01 16:48:05 -05004370.4 - 2014-05-03
438~~~~~~~~~~~~~~~~
Paul Kehrer3d4eb6e2014-03-27 16:27:31 -0500439
Paul Kehrerba987452014-04-02 17:12:26 -0500440* Deprecated ``salt_length`` on
441 :class:`~cryptography.hazmat.primitives.asymmetric.padding.MGF1` and added it
Alex Gaynor9963cb32014-07-12 09:35:33 -0700442 to :class:`~cryptography.hazmat.primitives.asymmetric.padding.PSS`. It will
Alex Gaynor2e49f212014-07-12 10:58:30 -0700443 be removed from ``MGF1`` in two releases per our :doc:`/api-stability`
Alex Gaynor9963cb32014-07-12 09:35:33 -0700444 policy.
445* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.SEED`
446 support.
Ayrx9bea9372014-04-22 21:00:34 +0800447* Added :class:`~cryptography.hazmat.primitives.cmac.CMAC`.
Alex Gaynorcd58b932014-05-01 23:11:06 -0700448* Added decryption support to
449 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
450 and encryption support to
451 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`.
Paul Kehrer80950e52014-05-01 16:48:55 -0500452* Added signature support to
453 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`
454 and verification support to
455 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`.
Ayrx9bea9372014-04-22 21:00:34 +0800456
Paul Kehrer9c2a11b2014-03-27 13:16:57 -05004570.3 - 2014-03-27
458~~~~~~~~~~~~~~~~
Matthew Iversen69a6fad2014-02-25 02:10:44 +1100459
460* Added :class:`~cryptography.hazmat.primitives.twofactor.hotp.HOTP`.
David Reideea08d92014-02-25 11:06:09 -0800461* Added :class:`~cryptography.hazmat.primitives.twofactor.totp.TOTP`.
Alex Gaynor9963cb32014-07-12 09:35:33 -0700462* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.IDEA`
463 support.
Alex Gaynorcd58b932014-05-01 23:11:06 -0700464* Added signature support to
465 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
466 and verification support to
467 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`.
Paul Kehrer1592e5b2014-03-27 14:29:38 -0500468* Moved test vectors to the new ``cryptography_vectors`` package.
Matthew Iversen69a6fad2014-02-25 02:10:44 +1100469
Paul Kehrer7f711ee2014-03-03 23:58:45 -04004700.2.2 - 2014-03-03
471~~~~~~~~~~~~~~~~~~
472
Alex Gaynor9963cb32014-07-12 09:35:33 -0700473* Removed a constant definition that was causing compilation problems with
474 specific versions of OpenSSL.
Paul Kehrer7f711ee2014-03-03 23:58:45 -0400475
Matthew Iversen69a6fad2014-02-25 02:10:44 +11004760.2.1 - 2014-02-22
477~~~~~~~~~~~~~~~~~~
Paul Kehrer7f711ee2014-03-03 23:58:45 -0400478
Alex Gaynorcd58b932014-05-01 23:11:06 -0700479* Fix a bug where importing cryptography from multiple paths could cause
480 initialization to fail.
Matthew Iversen69a6fad2014-02-25 02:10:44 +1100481
4820.2 - 2014-02-20
483~~~~~~~~~~~~~~~~
484
485* Added :doc:`/hazmat/backends/commoncrypto`.
486* Added initial :doc:`/hazmat/bindings/commoncrypto`.
487* Removed ``register_cipher_adapter`` method from
488 :class:`~cryptography.hazmat.backends.interfaces.CipherBackend`.
489* Added support for the OpenSSL backend under Windows.
490* Improved thread-safety for the OpenSSL backend.
491* Fixed compilation on systems where OpenSSL's ``ec.h`` header is not
492 available, such as CentOS.
493* Added :class:`~cryptography.hazmat.primitives.kdf.pbkdf2.PBKDF2HMAC`.
494* Added :class:`~cryptography.hazmat.primitives.kdf.hkdf.HKDF`.
495* Added :doc:`/hazmat/backends/multibackend`.
Alex Gaynorcd58b932014-05-01 23:11:06 -0700496* Set default random for the :doc:`/hazmat/backends/openssl` to the OS
497 random engine.
498* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.CAST5`
499 (CAST-128) support.
Matthew Iversen69a6fad2014-02-25 02:10:44 +1100500
5010.1 - 2014-01-08
502~~~~~~~~~~~~~~~~
503
504* Initial release.
505
Alex Stapletonb9df2782014-03-17 08:09:41 +0000506.. _`master`: https://github.com/pyca/cryptography/
Paul Kehrer68b3b1e2015-05-19 13:05:21 -0700507.. _`cffi`: https://cffi.readthedocs.org/en/latest/