blob: 12721d00beb0af58f09f25bcf78572ddd765467e [file] [log] [blame]
Hynek Schlawack682443f2015-10-25 16:15:12 +01001Changelog
2=========
3
Hynek Schlawack65e4def2016-03-13 15:07:52 +01004Versions are year-based with a strict backward-compatibility policy.
Hynek Schlawack682443f2015-10-25 16:15:12 +01005The third digit is only for regressions.
6
7
Hynek Schlawack0cc61542016-01-19 14:09:32 +0100816.0.0 (UNRELEASED)
Hynek Schlawack682443f2015-10-25 16:15:12 +01009-------------------
10
11This is the first release under full stewardship of PyCA.
12We have made *many* changes to make local development more pleasing.
13The test suite now passes both on Linux and OS X with OpenSSL 0.9.8, 1.0.1, and 1.0.2.
Hynek Schlawackaa861212016-03-13 13:53:48 +010014It has been moved to `py.test <https://pytest.org/>`_, all CI test runs are part of `tox <https://testrun.org/tox/>`_ and the source code has been made fully `flake8 <https://flake8.readthedocs.org/>`_ compliant.
Hynek Schlawack682443f2015-10-25 16:15:12 +010015
Cory Benfield0820ac22015-10-28 17:39:28 +090016We hope to have lowered the barrier for contributions significantly but are open to hear about any remaining frustrations.
Hynek Schlawack682443f2015-10-25 16:15:12 +010017
18
19Backward-incompatible changes:
20^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
21
22- Python 3.2 support has been dropped.
23 It never had significant real world usage and has been dropped by our main dependency ``cryptography``.
24 Affected users should upgrade to Python 3.3 or later.
25
26
27Deprecations:
28^^^^^^^^^^^^^
29
30- The support for EGD has been removed.
Hynek Schlawack65e4def2016-03-13 15:07:52 +010031 The only affected function ``OpenSSL.rand.egd()`` now uses ``os.urandom()`` to seed the internal PRNG instead.
Hynek Schlawack682443f2015-10-25 16:15:12 +010032 Please see `pyca/cryptography#1636 <https://github.com/pyca/cryptography/pull/1636>`_ for more background information on this decision.
Hynek Schlawack65e4def2016-03-13 15:07:52 +010033 In accordance with our backward compatibility policy ``OpenSSL.rand.egd()`` will be *removed* no sooner than a year from the release of 16.0.0.
Hynek Schlawack682443f2015-10-25 16:15:12 +010034
35 Please note that you should `use urandom <http://sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers/>`_ for all your secure random number needs.
Hynek Schlawack046d3f42016-03-13 08:33:04 +010036- Python 2.6 support has been deprecated.
37 Our main dependency ``cryptography`` deprecated 2.6 in version 0.9 (2015-05-14) with no time table for actually dropping it.
38 pyOpenSSL will drop Python 2.6 support once ``cryptography`` does.
Hynek Schlawack682443f2015-10-25 16:15:12 +010039
40
41Changes:
42^^^^^^^^
43
Paul Kehrer8fc6ec02016-03-02 13:20:58 -060044- Fixed segmentation fault when using keys larger than 4096-bit to sign data.
Hynek Schlawack65e4def2016-03-13 15:07:52 +010045 `#428 <https://github.com/pyca/pyopenssl/pull/428>`_
46- Fixed ``AttributeError`` when ``OpenSSL.SSL.Connection.get_app_data()`` was called before setting any app data.
47 `#304 <https://github.com/pyca/pyopenssl/pull/304>`_
48- Added ``OpenSSL.crypto.dump_publickey()`` to dump ``OpenSSL.crypto.PKey`` objects that represent public keys, and ``OpenSSL.crypto.load_publickey()`` to load such objects from serialized representations.
49 `#382 <https://github.com/pyca/pyopenssl/pull/382>`_
50- Added ``OpenSSL.crypto.dump_crl()`` to dump a certificate revocation list out to a string buffer.
51 `#368 <https://github.com/pyca/pyopenssl/pull/368>`_
52- Added ``OpenSSL.SSL.Connection.state_string()`` using the OpenSSL binding ``state_string_long``.
53 `#358 <https://github.com/pyca/pyopenssl/pull/358>`_
54- Added support for the ``socket.MSG_PEEK`` flag to ``OpenSSL.SSL.Connection.recv()`` and ``OpenSSL.SSL.Connection.recv_into()``.
55 `#294 <https://github.com/pyca/pyopenssl/pull/294>`_
56- Added ``OpenSSL.SSL.Connection.get_protocol_version()`` and ``OpenSSL.SSL.Connection.get_protocol_version_name()``.
57 `#244 <https://github.com/pyca/pyopenssl/pull/244>`_
58- Switched to ``utf8string`` mask by default.
59 OpenSSL formerly defaulted to a ``T61String`` if there were UTF-8 characters present.
60 This was changed to default to ``UTF8String`` in the config around 2005, but the actual code didn't change it until late last year.
Hynek Schlawack682443f2015-10-25 16:15:12 +010061 This will default us to the setting that actually works.
62 To revert this you can call ``OpenSSL.crypto._lib.ASN1_STRING_set_default_mask_asc(b"default")``.
Hynek Schlawack65e4def2016-03-13 15:07:52 +010063 `#234 <https://github.com/pyca/pyopenssl/pull/234>`_
Hynek Schlawack682443f2015-10-25 16:15:12 +010064
65
Hynek Schlawack65e4def2016-03-13 15:07:52 +010066----
67
Hynek Schlawack682443f2015-10-25 16:15:12 +010068
69Older Changelog Entries
70-----------------------
71
Hynek Schlawack0cc61542016-01-19 14:09:32 +010072The changes from before release 16.0.0 are preserved in the `repository <https://github.com/pyca/pyopenssl/blob/master/doc/ChangeLog_old.txt>`_.