blob: 7ae3f6b9ab11b2fd251efea279af93f48a712acf [file] [log] [blame]
Matthew Iversen69a6fad2014-02-25 02:10:44 +11001Changelog
2=========
3
Paul Kehrerac904e32016-01-08 07:53:25 -080041.3 - `master`_
5~~~~~~~~~~~~~~~
6
7.. note:: This version is not yet released and is under active development.
8
Paul Kehrer577f95e2016-01-07 21:56:53 -080091.2 - 2016-01-08
10~~~~~~~~~~~~~~~~
Paul Kehrerc5b430f2015-10-29 07:52:35 +090011
Paul Kehrer49bb7562015-12-25 16:17:40 -060012* **BACKWARDS INCOMPATIBLE:**
13 :class:`~cryptography.x509.RevokedCertificate`
14 :attr:`~cryptography.x509.RevokedCertificate.extensions` now uses extension
15 classes rather than returning raw values inside the
16 :class:`~cryptography.x509.Extension`
17 :attr:`~cryptography.x509.Extension.value`. The new classes
18 are:
19
20 * :class:`~cryptography.x509.CertificateIssuer`
Paul Kehrer7058ece2015-12-25 22:28:29 -060021 * :class:`~cryptography.x509.CRLReason`
Paul Kehrer23c0bbc2015-12-25 22:35:19 -060022 * :class:`~cryptography.x509.InvalidityDate`
Paul Kehrerf23722a2015-12-31 15:56:56 -060023* Deprecated support for OpenSSL 0.9.8 and 1.0.0. At this time there is no time
24 table for actually dropping support, however we strongly encourage all users
25 to upgrade, as those versions no longer receives support from the OpenSSL
26 project.
Paul Kehrerd91e7c12015-10-01 16:50:42 -050027* The :class:`~cryptography.x509.Certificate` class now has
28 :attr:`~cryptography.x509.Certificate.signature` and
Paul Kehrerd2898052015-11-03 22:00:41 +090029 :attr:`~cryptography.x509.Certificate.tbs_certificate_bytes` attributes.
Paul Kehrer80dc7522015-12-03 22:19:30 -060030* The :class:`~cryptography.x509.CertificateSigningRequest` class now has
31 :attr:`~cryptography.x509.CertificateSigningRequest.signature` and
32 :attr:`~cryptography.x509.CertificateSigningRequest.tbs_certrequest_bytes`
33 attributes.
Paul Kehrer18a96122015-12-21 11:14:34 -060034* The :class:`~cryptography.x509.CertificateRevocationList` class now has
35 :attr:`~cryptography.x509.CertificateRevocationList.signature` and
36 :attr:`~cryptography.x509.CertificateRevocationList.tbs_certlist_bytes`
37 attributes.
Paul Kehrer8b399b72015-12-02 22:53:40 -060038* :class:`~cryptography.x509.NameConstraints` are now supported in the
Paul Kehrer756d7d22015-12-02 23:45:42 -060039 :class:`~cryptography.x509.CertificateBuilder` and
40 :class:`~cryptography.x509.CertificateSigningRequestBuilder`.
Paul Kehrer54a837d2015-12-20 23:42:32 -060041* Support serialization of certificate revocation lists using the
Paul Kehrer2d1d24d2015-12-21 09:23:52 -060042 :meth:`~cryptography.x509.CertificateRevocationList.public_bytes` method of
Paul Kehrer54a837d2015-12-20 23:42:32 -060043 :class:`~cryptography.x509.CertificateRevocationList`.
Paul Kehrer51f39cb2015-12-21 21:17:39 -060044* Add support for parsing :class:`~cryptography.x509.CertificateRevocationList`
45 :meth:`~cryptography.x509.CertificateRevocationList.extensions` in the
Paul Kehrer2587d302015-12-22 17:20:42 -060046 OpenSSL backend. The following extensions are currently supported:
47
48 * :class:`~cryptography.x509.AuthorityInformationAccess`
49 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
Paul Kehrer3b95cd72015-12-22 21:40:20 -060050 * :class:`~cryptography.x509.CRLNumber`
Paul Kehrer2587d302015-12-22 17:20:42 -060051 * :class:`~cryptography.x509.IssuerAlternativeName`
Paul Kehrer09ad50c2015-12-26 13:59:27 -060052* Added :class:`~cryptography.x509.CertificateRevocationListBuilder` and
53 :class:`~cryptography.x509.RevokedCertificateBuilder` to allow creation of
54 CRLs.
Paul Kehrer58ddc112015-12-30 20:19:00 -060055* Unrecognized non-critical X.509 extensions are now parsed into an
56 :class:`~cryptography.x509.UnrecognizedExtension` object.
Paul Kehrerd91e7c12015-10-01 16:50:42 -050057
Paul Kehrer869cfd92015-12-10 14:12:05 -0600581.1.2 - 2015-12-10
59~~~~~~~~~~~~~~~~~~
60
61* Fixed a SIGBUS crash with the OS X wheels caused by redefinition of a
62 method.
63* Fixed a runtime error ``undefined symbol EC_GFp_nistp224_method`` that
64 occurred with some OpenSSL installations.
65* Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2e.
66
Paul Kehrerdcf40fc2015-11-18 22:11:36 -0600671.1.1 - 2015-11-19
68~~~~~~~~~~~~~~~~~~
69
70* Fixed several small bugs related to compiling the OpenSSL bindings with
71 unusual OpenSSL configurations.
72* Resolved an issue where, depending on the method of installation and
73 which Python interpreter they were using, users on El Capitan (OS X 10.11)
74 may have seen an ``InternalError`` on import.
75
Paul Kehrere9ac0272015-10-28 15:48:01 +0900761.1 - 2015-10-28
77~~~~~~~~~~~~~~~~
Paul Kehrerbff54ef2015-08-12 08:47:34 -050078
Alex Gaynor39d38b92015-10-17 16:44:15 -040079* Added support for Elliptic Curve Diffie-Hellman with
Alex Gaynord2949892015-10-17 16:45:55 -040080 :class:`~cryptography.hazmat.primitives.asymmetric.ec.ECDH`.
Alex Gaynorace036d2015-09-24 20:23:08 -040081* Added :class:`~cryptography.hazmat.primitives.kdf.x963kdf.X963KDF`.
Paul Kehrer87355482015-10-21 20:27:44 -050082* Added support for parsing certificate revocation lists (CRLs) using
83 :func:`~cryptography.x509.load_pem_x509_crl` and
84 :func:`~cryptography.x509.load_der_x509_crl`.
Paul Kehrer0d76a2e2015-05-17 13:36:13 -070085* Add support for AES key wrapping with
86 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_wrap` and
87 :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap`.
Paul Kehrere9ac0272015-10-28 15:48:01 +090088* Added a ``__hash__`` method to :class:`~cryptography.x509.Name`.
Paul Kehrer1a1b1152015-10-28 09:33:05 +090089* Add support for encoding and decoding elliptic curve points to a byte string
90 form using
91 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.encode_point`
92 and
93 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.from_encoded_point`.
Paul Kehrere9ac0272015-10-28 15:48:01 +090094* Added :meth:`~cryptography.x509.Extensions.get_extension_for_class`.
95* :class:`~cryptography.x509.CertificatePolicies` are now supported in the
96 :class:`~cryptography.x509.CertificateBuilder`.
97* ``countryName`` is now encoded as a ``PrintableString`` when creating subject
98 and issuer distinguished names with the Certificate and CSR builder classes.
Paul Kehrer1a1b1152015-10-28 09:33:05 +090099
Paul Kehrer8addede2015-09-26 22:57:35 -05001001.0.2 - 2015-09-27
101~~~~~~~~~~~~~~~~~~
102* **SECURITY ISSUE**: The OpenSSL backend prior to 1.0.2 made extensive use
103 of assertions to check response codes where our tests could not trigger a
104 failure. However, when Python is run with ``-O`` these asserts are optimized
105 away. If a user ran Python with this flag and got an invalid response code
106 this could result in undefined behavior or worse. Accordingly, all response
107 checks from the OpenSSL backend have been converted from ``assert``
108 to a true function call. Credit **Emilia Käsper (Google Security Team)**
109 for the report.
110
Paul Kehrer2f6b1692015-09-05 20:58:52 -05001111.0.1 - 2015-09-05
112~~~~~~~~~~~~~~~~~~
113
114* We now ship OS X wheels that statically link OpenSSL by default. When
115 installing a wheel on OS X 10.10+ (and using a Python compiled against the
116 10.10 SDK) users will no longer need to compile. See :doc:`/installation` for
117 alternate installation methods if required.
118* Set the default string mask to UTF-8 in the OpenSSL backend to resolve
119 character encoding issues with older versions of OpenSSL.
120* Several new OpenSSL bindings have been added to support a future pyOpenSSL
121 release.
122* Raise an error during install on PyPy < 2.6. 1.0+ requires PyPy 2.6+.
Paul Kehrerbff54ef2015-08-12 08:47:34 -0500123
Paul Kehrer55ab8052015-08-11 18:22:55 -05001241.0 - 2015-08-12
Paul Kehrerd5257ab2015-05-13 20:48:36 -0500125~~~~~~~~~~~~~~~~
126
Paul Kehrer68b3b1e2015-05-19 13:05:21 -0700127* Switched to the new `cffi`_ ``set_source`` out-of-line API mode for
128 compilation. This results in significantly faster imports and lowered
Paul Kehrer73f06c72015-06-07 23:17:39 -0500129 memory consumption. Due to this change we no longer support PyPy releases
130 older than 2.6 nor do we support any released version of PyPy3 (until a
131 version supporting cffi 1.0 comes out).
Paul Kehrer60cc9ef2015-08-04 19:29:52 +0100132* Fix parsing of OpenSSH public keys that have spaces in comments.
Andre Caronbeed2942015-05-18 13:47:36 -0400133* Support serialization of certificate signing requests using the
134 ``public_bytes`` method of
135 :class:`~cryptography.x509.CertificateSigningRequest`.
Andre Carona8aded62015-05-19 20:11:57 -0400136* Support serialization of certificates using the ``public_bytes`` method of
137 :class:`~cryptography.x509.Certificate`.
Jiangge Zhang764f6372015-06-05 18:01:22 +0800138* Add ``get_provisioning_uri`` method to
139 :class:`~cryptography.hazmat.primitives.twofactor.hotp.HOTP` and
140 :class:`~cryptography.hazmat.primitives.twofactor.totp.TOTP` for generating
141 provisioning URIs.
Paul Kehrer66f380c2015-06-12 11:23:34 -0500142* Add :class:`~cryptography.hazmat.primitives.kdf.concatkdf.ConcatKDFHash`
143 and :class:`~cryptography.hazmat.primitives.kdf.concatkdf.ConcatKDFHMAC`.
Ian Cordascoab94b902015-06-17 08:28:02 -0500144* Raise a ``TypeError`` when passing objects that are not text as the value to
145 :class:`~cryptography.x509.NameAttribute`.
Paul Kehrer44171a22015-08-01 21:21:26 +0100146* Add support for :class:`~cryptography.x509.OtherName` as a general name
147 type.
148* Added new X.509 extension support in :class:`~cryptography.x509.Certificate`
149 The following new extensions are now supported:
150
151 * :class:`~cryptography.x509.OCSPNoCheck`
152 * :class:`~cryptography.x509.InhibitAnyPolicy`
153 * :class:`~cryptography.x509.IssuerAlternativeName`
154 * :class:`~cryptography.x509.NameConstraints`
155
156* Extension support was added to
157 :class:`~cryptography.x509.CertificateSigningRequest`.
Ian Cordasco46479d02015-08-03 08:30:20 -0500158* Add support for creating signed certificates with
159 :class:`~cryptography.x509.CertificateBuilder`. This includes support for
Paul Kehrere0ecfdc2015-08-06 10:53:15 +0100160 the following extensions:
Ian Cordasco46479d02015-08-03 08:30:20 -0500161
162 * :class:`~cryptography.x509.BasicConstraints`
163 * :class:`~cryptography.x509.SubjectAlternativeName`
Paul Kehrere0ecfdc2015-08-06 10:53:15 +0100164 * :class:`~cryptography.x509.KeyUsage`
165 * :class:`~cryptography.x509.ExtendedKeyUsage`
166 * :class:`~cryptography.x509.SubjectKeyIdentifier`
167 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
168 * :class:`~cryptography.x509.AuthorityInformationAccess`
169 * :class:`~cryptography.x509.CRLDistributionPoints`
Paul Kehrer683d4d82015-08-06 23:13:45 +0100170 * :class:`~cryptography.x509.InhibitAnyPolicy`
Paul Kehrer2dfd9da2015-08-10 21:30:23 -0500171 * :class:`~cryptography.x509.IssuerAlternativeName`
172 * :class:`~cryptography.x509.OCSPNoCheck`
Ian Cordasco46479d02015-08-03 08:30:20 -0500173
Paul Kehrer91e385d2015-08-08 22:50:28 -0500174* Add support for creating certificate signing requests with
175 :class:`~cryptography.x509.CertificateSigningRequestBuilder`. This includes
176 support for the same extensions supported in the ``CertificateBuilder``.
Paul Kehrer31c5c332015-08-10 11:59:38 -0500177* Deprecate ``encode_rfc6979_signature`` and ``decode_rfc6979_signature`` in
178 favor of
179 :func:`~cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature`
180 and
181 :func:`~cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature`.
182
Paul Kehrer91e385d2015-08-08 22:50:28 -0500183
Paul Kehrer3bbda282015-07-09 09:48:23 -05001840.9.3 - 2015-07-09
185~~~~~~~~~~~~~~~~~~
186
187* Updated Windows wheels to be compiled against OpenSSL 1.0.2d.
188
Paul Kehrer7b411632015-07-03 18:07:41 -05001890.9.2 - 2015-07-04
190~~~~~~~~~~~~~~~~~~
191
192* Updated Windows wheels to be compiled against OpenSSL 1.0.2c.
193
Alex Gaynorc4bb7d52015-06-06 17:27:14 -04001940.9.1 - 2015-06-06
195~~~~~~~~~~~~~~~~~~
196
197* **SECURITY ISSUE**: Fixed a double free in the OpenSSL backend when using DSA
198 to verify signatures. Note that this only affects PyPy 2.6.0 and (presently
199 unreleased) CFFI versions greater than 1.1.0.
200
Paul Kehrerc486ed52015-05-13 17:59:31 -05002010.9 - 2015-05-13
202~~~~~~~~~~~~~~~~
Paul Kehrer8ce597b2015-03-09 00:01:17 -0500203
Paul Kehrer741fccb2015-04-14 10:22:25 -0400204* Removed support for Python 3.2. This version of Python is rarely used
205 and caused support headaches. Users affected by this should upgrade to 3.3+.
Alex Gaynor6e7f6222015-03-29 21:51:38 -0400206* Deprecated support for Python 2.6. At the time there is no time table for
207 actually dropping support, however we strongly encourage all users to upgrade
208 their Python, as Python 2.6 no longer receives support from the Python core
209 team.
Paul Kehrerebbeedf2015-05-08 18:13:14 -0500210* Add support for the
211 :class:`~cryptography.hazmat.primitives.asymmetric.ec.SECP256K1` elliptic
212 curve.
Alex Gaynor5d27d4d2015-04-04 14:56:02 -0500213* Fixed compilation when using an OpenSSL which was compiled with the
214 ``no-comp`` (``OPENSSL_NO_COMP``) option.
Paul Kehrera2c48652015-03-10 15:48:37 -0500215* Support :attr:`~cryptography.hazmat.primitives.serialization.Encoding.DER`
216 serialization of public keys using the ``public_bytes`` method of
Paul Kehrer1955ebf2015-03-10 08:38:57 -0500217 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`,
218 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`,
219 and
Paul Kehrera2c48652015-03-10 15:48:37 -0500220 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`.
Paul Kehrer919a5b22015-03-14 13:15:17 -0500221* Support :attr:`~cryptography.hazmat.primitives.serialization.Encoding.DER`
222 serialization of private keys using the ``private_bytes`` method of
223 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`,
224 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`,
225 and
226 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`.
Paul Kehrera1a1f232015-03-15 15:34:35 -0500227* Add support for parsing X.509 certificate signing requests (CSRs) with
Paul Kehrer1effb6e2015-03-30 15:05:59 -0500228 :func:`~cryptography.x509.load_pem_x509_csr` and
229 :func:`~cryptography.x509.load_der_x509_csr`.
Paul Kehrerd14dcc52015-04-14 14:21:21 -0400230* Moved ``cryptography.exceptions.InvalidToken`` to
231 :class:`cryptography.hazmat.primitives.twofactor.InvalidToken` and deprecated
232 the old location. This was moved to minimize confusion between this exception
233 and :class:`cryptography.fernet.InvalidToken`.
Paul Kehreraeb77202015-05-13 11:52:38 -0500234* Added support for X.509 extensions in :class:`~cryptography.x509.Certificate`
235 objects. The following extensions are supported as of this release:
236
237 * :class:`~cryptography.x509.BasicConstraints`
238 * :class:`~cryptography.x509.AuthorityKeyIdentifier`
239 * :class:`~cryptography.x509.SubjectKeyIdentifier`
240 * :class:`~cryptography.x509.KeyUsage`
241 * :class:`~cryptography.x509.SubjectAlternativeName`
242 * :class:`~cryptography.x509.ExtendedKeyUsage`
243 * :class:`~cryptography.x509.CRLDistributionPoints`
244 * :class:`~cryptography.x509.AuthorityInformationAccess`
245 * :class:`~cryptography.x509.CertificatePolicies`
246
247 Note that unsupported extensions with the critical flag raise
248 :class:`~cryptography.x509.UnsupportedExtension` while unsupported extensions
249 set to non-critical are silently ignored. Read the
Alex Gaynor5e0da3a2015-07-12 10:35:56 -0500250 :doc:`X.509 documentation</x509/index>` for more information.
Paul Kehrer1955ebf2015-03-10 08:38:57 -0500251
Paul Kehrer33906b82015-04-10 21:00:08 -04002520.8.2 - 2015-04-10
253~~~~~~~~~~~~~~~~~~
254
255* Fixed a race condition when initializing the OpenSSL or CommonCrypto backends
256 in a multi-threaded scenario.
257
Paul Kehrer41a750c2015-03-19 22:46:23 -05002580.8.1 - 2015-03-20
259~~~~~~~~~~~~~~~~~~
260
261* Updated Windows wheels to be compiled against OpenSSL 1.0.2a.
262
Paul Kehrer5dc4b882015-03-08 18:19:50 -05002630.8 - 2015-03-08
264~~~~~~~~~~~~~~~~
Paul Kehrer08120d72014-12-17 21:37:58 -0600265
Alex Gaynor5d66ca52014-12-25 18:39:39 -0800266* :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key` can
267 now load elliptic curve public keys.
Paul Kehrer836b8302015-01-18 09:42:58 -0600268* Added
Paul Kehrer8802a5b2015-02-13 12:06:57 -0600269 :attr:`~cryptography.x509.Certificate.signature_hash_algorithm` support to
Paul Kehrerb0a80392015-02-11 23:39:49 -0600270 :class:`~cryptography.x509.Certificate`.
271* Added
Paul Kehrer836b8302015-01-18 09:42:58 -0600272 :func:`~cryptography.hazmat.primitives.asymmetric.rsa.rsa_recover_prime_factors`
Paul Kehrer48402ff2015-02-16 15:31:52 -0600273* :class:`~cryptography.hazmat.primitives.kdf.KeyDerivationFunction` was moved
274 from :mod:`~cryptography.hazmat.primitives.interfaces` to
275 :mod:`~cryptography.hazmat.primitives.kdf`.
Paul Kehrer719d5362015-01-01 20:03:52 -0600276* Added support for parsing X.509 names. See the
Alex Gaynor5e0da3a2015-07-12 10:35:56 -0500277 :doc:`X.509 documentation</x509/index>` for more information.
Paul Kehrer99a249d2015-01-04 15:55:22 -0600278* Added
279 :func:`~cryptography.hazmat.primitives.serialization.load_der_private_key` to
280 support loading of DER encoded private keys and
281 :func:`~cryptography.hazmat.primitives.serialization.load_der_public_key` to
282 support loading DER encoded public keys.
Steven McDonald27e6b9c2015-02-18 16:37:03 +1100283* Fixed building against LibreSSL, a compile-time substitute for OpenSSL.
Paul Kehrer77f540d2015-02-20 12:53:04 -0600284* FreeBSD 9.2 was removed from the continuous integration system.
Paul Kehrerf28dd452015-03-05 10:22:59 -0600285* Updated Windows wheels to be compiled against OpenSSL 1.0.2.
Paul Kehrer7bfa22e2015-03-04 13:48:30 -0600286* :func:`~cryptography.hazmat.primitives.serialization.load_pem_public_key`
287 and :func:`~cryptography.hazmat.primitives.serialization.load_der_public_key`
Paul Kehrer791afc02015-03-05 14:29:28 -0600288 now support PKCS1 RSA public keys (in addition to the previous support for
Paul Kehrer7bfa22e2015-03-04 13:48:30 -0600289 SubjectPublicKeyInfo format for RSA, EC, and DSA).
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600290* Added
Paul Kehrer59e5c862015-03-02 10:36:50 -0600291 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500292 and deprecated ``EllipticCurvePrivateKeyWithNumbers``.
Paul Kehrer59e5c862015-03-02 10:36:50 -0600293* Added
294 :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization.private_bytes`
295 to
296 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKeyWithSerialization`.
297* Added
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600298 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500299 and deprecated ``RSAPrivateKeyWithNumbers``.
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600300* Added
Paul Kehrer223a8f02015-02-28 18:54:10 -0600301 :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization.private_bytes`
Paul Kehrerf83e25c2015-02-21 18:34:00 -0600302 to
303 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKeyWithSerialization`.
Paul Kehrerec342632015-03-01 16:53:58 -0600304* Added
305 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500306 and deprecated ``DSAPrivateKeyWithNumbers``.
Paul Kehrerec342632015-03-01 16:53:58 -0600307* Added
308 :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization.private_bytes`
309 to
310 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKeyWithSerialization`.
Paul Kehrer3f157e02015-02-28 11:31:06 -0600311* Added
312 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500313 and deprecated ``RSAPublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -0500314* Added ``public_bytes`` to
Paul Kehrer3f157e02015-02-28 11:31:06 -0600315 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKeyWithSerialization`.
Paul Kehrer419615b2015-03-05 21:01:16 -0600316* Added
317 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500318 and deprecated ``EllipticCurvePublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -0500319* Added ``public_bytes`` to
Paul Kehrer419615b2015-03-05 21:01:16 -0600320 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKeyWithSerialization`.
Paul Kehrer26006c52015-03-08 18:27:11 -0500321* Added
322 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500323 and deprecated ``DSAPublicKeyWithNumbers``.
Paul Kehrer8ea90ef2015-07-04 16:26:58 -0500324* Added ``public_bytes`` to
Paul Kehrer26006c52015-03-08 18:27:11 -0500325 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKeyWithSerialization`.
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500326* :class:`~cryptography.hazmat.primitives.hashes.HashAlgorithm` and
327 :class:`~cryptography.hazmat.primitives.hashes.HashContext` were moved from
328 :mod:`~cryptography.hazmat.primitives.interfaces` to
329 :mod:`~cryptography.hazmat.primitives.hashes`.
330* :class:`~cryptography.hazmat.primitives.ciphers.CipherContext`,
331 :class:`~cryptography.hazmat.primitives.ciphers.AEADCipherContext`,
332 :class:`~cryptography.hazmat.primitives.ciphers.AEADEncryptionContext`,
333 :class:`~cryptography.hazmat.primitives.ciphers.CipherAlgorithm`, and
334 :class:`~cryptography.hazmat.primitives.ciphers.BlockCipherAlgorithm`
335 were moved from :mod:`~cryptography.hazmat.primitives.interfaces` to
336 :mod:`~cryptography.hazmat.primitives.ciphers`.
337* :class:`~cryptography.hazmat.primitives.ciphers.modes.Mode`,
338 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithInitializationVector`,
339 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithNonce`, and
340 :class:`~cryptography.hazmat.primitives.ciphers.modes.ModeWithAuthenticationTag`
341 were moved from :mod:`~cryptography.hazmat.primitives.interfaces` to
342 :mod:`~cryptography.hazmat.primitives.ciphers.modes`.
343* :class:`~cryptography.hazmat.primitives.padding.PaddingContext` was moved
344 from :mod:`~cryptography.hazmat.primitives.interfaces` to
345 :mod:`~cryptography.hazmat.primitives.padding`.
346*
347 :class:`~cryptography.hazmat.primitives.asymmetric.padding.AsymmetricPadding`
348 was moved from :mod:`~cryptography.hazmat.primitives.interfaces` to
349 :mod:`~cryptography.hazmat.primitives.asymmetric.padding`.
350*
351 :class:`~cryptography.hazmat.primitives.asymmetric.AsymmetricSignatureContext`
352 and
353 :class:`~cryptography.hazmat.primitives.asymmetric.AsymmetricVerificationContext`
354 were moved from :mod:`~cryptography.hazmat.primitives.interfaces` to
355 :mod:`~cryptography.hazmat.primitives.asymmetric`.
356* :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAParameters`,
357 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAParametersWithNumbers`,
358 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500359 ``DSAPrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500360 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey` and
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500361 ``DSAPublicKeyWithNumbers`` were moved from
362 :mod:`~cryptography.hazmat.primitives.interfaces` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500363 :mod:`~cryptography.hazmat.primitives.asymmetric.dsa`
364* :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurve`,
365 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurveSignatureAlgorithm`,
366 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500367 ``EllipticCurvePrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500368 :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500369 and ``EllipticCurvePublicKeyWithNumbers``
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500370 were moved from :mod:`~cryptography.hazmat.primitives.interfaces` to
371 :mod:`~cryptography.hazmat.primitives.asymmetric.ec`.
372* :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`,
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500373 ``RSAPrivateKeyWithNumbers``,
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500374 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey` and
Paul Kehrerc0dd53e2015-07-04 11:27:27 -0500375 ``RSAPublicKeyWithNumbers`` were moved from
376 :mod:`~cryptography.hazmat.primitives.interfaces` to
Paul Kehrer5dc4b882015-03-08 18:19:50 -0500377 :mod:`~cryptography.hazmat.primitives.asymmetric.rsa`.
Alex Gaynor5d66ca52014-12-25 18:39:39 -0800378
Paul Kehrer72572f92015-01-16 08:10:12 -06003790.7.2 - 2015-01-16
380~~~~~~~~~~~~~~~~~~
381
382* Updated Windows wheels to be compiled against OpenSSL 1.0.1l.
383* ``enum34`` is no longer installed on Python 3.4, where it is included in
384 the standard library.
385* Added a new function to the OpenSSL bindings to support additional
386 functionality in pyOpenSSL.
387
Paul Kehrer842e58a2014-12-28 15:17:39 -07003880.7.1 - 2014-12-28
389~~~~~~~~~~~~~~~~~~
390
391* Fixed an issue preventing compilation on platforms where ``OPENSSL_NO_SSL3``
392 was defined.
393
Paul Kehrere8135092014-12-17 14:20:40 -06003940.7 - 2014-12-17
395~~~~~~~~~~~~~~~~
Paul Kehrer98681332014-09-29 21:43:57 -0500396
Alex Gaynordf6a5cd2014-11-07 09:36:47 -0300397* Cryptography has been relicensed from the Apache Software License, Version
398 2.0, to being available under *either* the Apache Software License, Version
399 2.0, or the BSD license.
Alex Gaynor4c825132014-10-20 21:27:08 -0700400* Added key-rotation support to :doc:`Fernet </fernet>` with
401 :class:`~cryptography.fernet.MultiFernet`.
Paul Kehrer214d91d2014-12-18 07:20:04 -0600402* More bit-lengths are now supported for ``p`` and ``q`` when loading DSA keys
Alex Gaynora438e832014-10-19 19:47:05 -0700403 from numbers.
Terry Chiaff5ec862014-10-20 12:15:22 +0800404* Added :class:`~cryptography.hazmat.primitives.interfaces.MACContext` as a
Paul Kehrerebee0062015-03-07 12:34:33 -0600405 common interface for CMAC and HMAC and deprecated ``CMACContext``.
Paul Kehrerb3a3e5c2014-11-27 11:27:32 -1000406* Added support for encoding and decoding :rfc:`6979` signatures in
407 :doc:`/hazmat/primitives/asymmetric/utils`.
Mark Adams78a7d1c2014-12-12 23:13:12 -0600408* Added
Alex Gaynor993b85a2014-12-15 10:42:45 -0800409 :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key` to
Paul Kehrere8135092014-12-17 14:20:40 -0600410 support the loading of OpenSSH public keys (:rfc:`4253`). Only RSA and DSA
411 keys are currently supported.
Paul Kehrere76cd272014-12-14 19:00:51 -0600412* Added initial support for X.509 certificate parsing. See the
Alex Gaynor5e0da3a2015-07-12 10:35:56 -0500413 :doc:`X.509 documentation</x509/index>` for more information.
Terry Chiac7c82f32014-10-20 12:15:22 +0800414
Paul Kehrer555b1502014-10-15 23:24:57 -05004150.6.1 - 2014-10-15
416~~~~~~~~~~~~~~~~~~
417
418* Updated Windows wheels to be compiled against OpenSSL 1.0.1j.
419* Fixed an issue where OpenSSL 1.0.1j changed the errors returned by some
420 functions.
421* Added our license file to the ``cryptography-vectors`` package.
422* Implemented DSA hash truncation support (per FIPS 186-3) in the OpenSSL
423 backend. This works around an issue in 1.0.0, 1.0.0a, and 1.0.0b where
424 truncation was not implemented.
425
Paul Kehrerc3f11d82014-09-29 20:31:15 -05004260.6 - 2014-09-29
427~~~~~~~~~~~~~~~~
Paul Kehrer1757fe32014-07-07 22:29:23 -0500428
Alex Gaynoref823342014-09-27 12:04:22 -0400429* Added
430 :func:`~cryptography.hazmat.primitives.serialization.load_pem_private_key` to
431 ease loading private keys, and
432 :func:`~cryptography.hazmat.primitives.serialization.load_pem_public_key` to
433 support loading public keys.
Alex Gaynor1658f942014-07-08 00:02:37 -0700434* Removed the, deprecated in 0.4, support for the ``salt_length`` argument to
435 the :class:`~cryptography.hazmat.primitives.asymmetric.padding.MGF1`
436 constructor. The ``salt_length`` should be passed to
437 :class:`~cryptography.hazmat.primitives.asymmetric.padding.PSS` instead.
Paul Kehrerf4fbf392014-08-21 08:36:49 -1000438* Fix compilation on OS X Yosemite.
Paul Kehrer77e95a02014-09-25 12:28:07 -0500439* Deprecated ``elliptic_curve_private_key_from_numbers`` and
440 ``elliptic_curve_public_key_from_numbers`` in favor of
441 ``load_elliptic_curve_private_numbers`` and
442 ``load_elliptic_curve_public_numbers`` on
443 :class:`~cryptography.hazmat.backends.interfaces.EllipticCurveBackend`.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600444* Added ``EllipticCurvePrivateKeyWithNumbers`` and
445 ``EllipticCurvePublicKeyWithNumbers`` support.
Paul Kehrerf378e402014-09-27 11:28:42 -0500446* Work around three GCM related bugs in CommonCrypto and OpenSSL.
Paul Kehrer4c773652014-09-27 11:26:02 -0500447
448 * On the CommonCrypto backend adding AAD but not subsequently calling update
449 would return null tag bytes.
450
451 * One the CommonCrypto backend a call to update without an empty add AAD call
452 would return null ciphertext bytes.
453
454 * On the OpenSSL backend with certain versions adding AAD only would give
455 invalid tag bytes.
456
457* Support loading EC private keys from PEM.
Alex Gaynor1658f942014-07-08 00:02:37 -0700458
Paul Kehrer01f0c672014-08-20 20:15:18 -10004590.5.4 - 2014-08-20
460~~~~~~~~~~~~~~~~~~
461
462* Added several functions to the OpenSSL bindings to support new
463 functionality in pyOpenSSL.
464* Fixed a redefined constant causing compilation failure with Solaris 11.2.
465
Paul Kehrer86cf5b12014-08-07 05:38:17 -10004660.5.3 - 2014-08-06
467~~~~~~~~~~~~~~~~~~
468
469* Updated Windows wheels to be compiled against OpenSSL 1.0.1i.
470
Paul Kehrer2456e662014-07-09 19:51:32 -05004710.5.2 - 2014-07-09
472~~~~~~~~~~~~~~~~~~
473
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600474* Add ``TraditionalOpenSSLSerializationBackend`` support to
475 :doc:`/hazmat/backends/multibackend`.
Paul Kehrer2456e662014-07-09 19:51:32 -0500476* Fix compilation error on OS X 10.8 (Mountain Lion).
477
Paul Kehrerf092d732014-07-07 19:42:15 -05004780.5.1 - 2014-07-07
479~~~~~~~~~~~~~~~~~~
480
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600481* Add ``PKCS8SerializationBackend`` support to
482 :doc:`/hazmat/backends/multibackend`.
Paul Kehrerf092d732014-07-07 19:42:15 -0500483
Paul Kehrer3c6a2392014-07-07 08:29:07 -05004840.5 - 2014-07-07
485~~~~~~~~~~~~~~~~
Paul Kehrer50a04852014-05-03 08:57:13 -0500486
Alex Gaynor8f1b8e82014-06-29 20:43:29 -0700487* **BACKWARDS INCOMPATIBLE:**
488 :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` no longer allows
489 truncation of tags by default. Previous versions of ``cryptography`` allowed
490 tags to be truncated by default, applications wishing to preserve this
Alex Gaynor4efe61a2014-06-29 20:44:53 -0700491 behavior (not recommended) can pass the ``min_tag_length`` argument.
Paul Kehrer8987bcb2014-07-06 09:28:29 -0500492* Windows builds now statically link OpenSSL by default. When installing a
Paul Kehrer3df9a312014-07-06 09:25:29 -0500493 wheel on Windows you no longer need to install OpenSSL separately. Windows
494 users can switch between static and dynamic linking with an environment
495 variable. See :doc:`/installation` for more details.
Paul Kehrer88bac252014-05-21 12:42:13 -0500496* Added :class:`~cryptography.hazmat.primitives.kdf.hkdf.HKDFExpand`.
Paul Kehrer2a947c42014-05-15 17:22:08 -0400497* Added :class:`~cryptography.hazmat.primitives.ciphers.modes.CFB8` support
498 for :class:`~cryptography.hazmat.primitives.ciphers.algorithms.AES` and
499 :class:`~cryptography.hazmat.primitives.ciphers.algorithms.TripleDES` on
500 :doc:`/hazmat/backends/commoncrypto` and :doc:`/hazmat/backends/openssl`.
Paul Kehrer055f9602014-05-20 23:21:26 -0500501* Added ``AES`` :class:`~cryptography.hazmat.primitives.ciphers.modes.CTR`
502 support to the OpenSSL backend when linked against 0.9.8.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600503* Added ``PKCS8SerializationBackend`` and
504 ``TraditionalOpenSSLSerializationBackend`` support to the
505 :doc:`/hazmat/backends/openssl`.
Paul Kehrer21fc5822014-07-04 09:28:55 -0500506* Added :doc:`/hazmat/primitives/asymmetric/ec` and
507 :class:`~cryptography.hazmat.backends.interfaces.EllipticCurveBackend`.
Paul Kehrerd1bac5e2014-06-13 12:34:49 -0500508* Added :class:`~cryptography.hazmat.primitives.ciphers.modes.ECB` support
509 for :class:`~cryptography.hazmat.primitives.ciphers.algorithms.TripleDES` on
510 :doc:`/hazmat/backends/commoncrypto` and :doc:`/hazmat/backends/openssl`.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600511* Deprecated the concrete ``RSAPrivateKey`` class in favor of backend
Paul Kehrera10be692015-02-12 12:58:27 -0600512 specific providers of the
513 :class:`cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
514 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600515* Deprecated the concrete ``RSAPublicKey`` in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -0600516 providers of the
517 :class:`cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`
518 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600519* Deprecated the concrete ``DSAPrivateKey`` class in favor of backend
Paul Kehrera10be692015-02-12 12:58:27 -0600520 specific providers of the
521 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`
522 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600523* Deprecated the concrete ``DSAPublicKey`` class in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -0600524 providers of the
525 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`
526 interface.
Paul Kehrer45efdbc2015-02-12 10:58:22 -0600527* Deprecated the concrete ``DSAParameters`` class in favor of backend specific
Paul Kehrera10be692015-02-12 12:58:27 -0600528 providers of the
529 :class:`cryptography.hazmat.primitives.asymmetric.dsa.DSAParameters`
530 interface.
Paul Kehrerf2fb02a2014-06-19 10:16:42 -0600531* Deprecated ``encrypt_rsa``, ``decrypt_rsa``, ``create_rsa_signature_ctx`` and
532 ``create_rsa_verification_ctx`` on
533 :class:`~cryptography.hazmat.backends.interfaces.RSABackend`.
Paul Kehrer1262be22014-06-26 16:16:50 -0600534* Deprecated ``create_dsa_signature_ctx`` and ``create_dsa_verification_ctx``
535 on :class:`~cryptography.hazmat.backends.interfaces.DSABackend`.
Paul Kehrerbb91c812014-05-12 15:03:04 -0400536
Paul Kehrer95862012014-05-01 16:48:05 -05005370.4 - 2014-05-03
538~~~~~~~~~~~~~~~~
Paul Kehrer3d4eb6e2014-03-27 16:27:31 -0500539
Paul Kehrerba987452014-04-02 17:12:26 -0500540* Deprecated ``salt_length`` on
541 :class:`~cryptography.hazmat.primitives.asymmetric.padding.MGF1` and added it
Alex Gaynor9963cb32014-07-12 09:35:33 -0700542 to :class:`~cryptography.hazmat.primitives.asymmetric.padding.PSS`. It will
Alex Gaynor2e49f212014-07-12 10:58:30 -0700543 be removed from ``MGF1`` in two releases per our :doc:`/api-stability`
Alex Gaynor9963cb32014-07-12 09:35:33 -0700544 policy.
545* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.SEED`
546 support.
Ayrx9bea9372014-04-22 21:00:34 +0800547* Added :class:`~cryptography.hazmat.primitives.cmac.CMAC`.
Alex Gaynorcd58b932014-05-01 23:11:06 -0700548* Added decryption support to
549 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
550 and encryption support to
551 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`.
Paul Kehrer80950e52014-05-01 16:48:55 -0500552* Added signature support to
553 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`
554 and verification support to
555 :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`.
Ayrx9bea9372014-04-22 21:00:34 +0800556
Paul Kehrer9c2a11b2014-03-27 13:16:57 -05005570.3 - 2014-03-27
558~~~~~~~~~~~~~~~~
Matthew Iversen69a6fad2014-02-25 02:10:44 +1100559
560* Added :class:`~cryptography.hazmat.primitives.twofactor.hotp.HOTP`.
David Reideea08d92014-02-25 11:06:09 -0800561* Added :class:`~cryptography.hazmat.primitives.twofactor.totp.TOTP`.
Alex Gaynor9963cb32014-07-12 09:35:33 -0700562* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.IDEA`
563 support.
Alex Gaynorcd58b932014-05-01 23:11:06 -0700564* Added signature support to
565 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
566 and verification support to
567 :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`.
Paul Kehrer1592e5b2014-03-27 14:29:38 -0500568* Moved test vectors to the new ``cryptography_vectors`` package.
Matthew Iversen69a6fad2014-02-25 02:10:44 +1100569
Paul Kehrer7f711ee2014-03-03 23:58:45 -04005700.2.2 - 2014-03-03
571~~~~~~~~~~~~~~~~~~
572
Alex Gaynor9963cb32014-07-12 09:35:33 -0700573* Removed a constant definition that was causing compilation problems with
574 specific versions of OpenSSL.
Paul Kehrer7f711ee2014-03-03 23:58:45 -0400575
Matthew Iversen69a6fad2014-02-25 02:10:44 +11005760.2.1 - 2014-02-22
577~~~~~~~~~~~~~~~~~~
Paul Kehrer7f711ee2014-03-03 23:58:45 -0400578
Alex Gaynorcd58b932014-05-01 23:11:06 -0700579* Fix a bug where importing cryptography from multiple paths could cause
580 initialization to fail.
Matthew Iversen69a6fad2014-02-25 02:10:44 +1100581
5820.2 - 2014-02-20
583~~~~~~~~~~~~~~~~
584
585* Added :doc:`/hazmat/backends/commoncrypto`.
586* Added initial :doc:`/hazmat/bindings/commoncrypto`.
587* Removed ``register_cipher_adapter`` method from
588 :class:`~cryptography.hazmat.backends.interfaces.CipherBackend`.
589* Added support for the OpenSSL backend under Windows.
590* Improved thread-safety for the OpenSSL backend.
591* Fixed compilation on systems where OpenSSL's ``ec.h`` header is not
592 available, such as CentOS.
593* Added :class:`~cryptography.hazmat.primitives.kdf.pbkdf2.PBKDF2HMAC`.
594* Added :class:`~cryptography.hazmat.primitives.kdf.hkdf.HKDF`.
595* Added :doc:`/hazmat/backends/multibackend`.
Alex Gaynorcd58b932014-05-01 23:11:06 -0700596* Set default random for the :doc:`/hazmat/backends/openssl` to the OS
597 random engine.
598* Added :class:`~cryptography.hazmat.primitives.ciphers.algorithms.CAST5`
599 (CAST-128) support.
Matthew Iversen69a6fad2014-02-25 02:10:44 +1100600
6010.1 - 2014-01-08
602~~~~~~~~~~~~~~~~
603
604* Initial release.
605
Alex Stapletonb9df2782014-03-17 08:09:41 +0000606.. _`master`: https://github.com/pyca/cryptography/
Paul Kehrer68b3b1e2015-05-19 13:05:21 -0700607.. _`cffi`: https://cffi.readthedocs.org/en/latest/