summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorHynek Schlawack <hs@ox.cx>2015-10-25 16:15:12 +0100
committerHynek Schlawack <hs@ox.cx>2015-10-25 16:23:04 +0100
commit682443fc1e1d572d52cea0485f96728cb119edbc (patch)
tree45501acb731576c5b2f37dd57a3273d15e85b495 /doc
parentd9fcd7a679a13862d954564ce2559bedaaee27f5 (diff)
downloadpyopenssl-682443fc1e1d572d52cea0485f96728cb119edbc.tar.gz
Switch to a nicer changelog format
Diffstat (limited to 'doc')
-rw-r--r--doc/ChangeLog_old.txt833
-rw-r--r--doc/backward-compatibility.rst11
-rw-r--r--doc/changelog.rst1
-rw-r--r--doc/index.rst11
4 files changed, 856 insertions, 0 deletions
diff --git a/doc/ChangeLog_old.txt b/doc/ChangeLog_old.txt
new file mode 100644
index 0000000..88174d5
--- /dev/null
+++ b/doc/ChangeLog_old.txt
@@ -0,0 +1,833 @@
+This file only contains the changes up to release 0.15.1. Newer changes can be
+found at <https://pyopenssl.readthedocs.org/en/latest/changelog.html>.
+
+***
+
+2015-04-14 Hynek Schlawack <hs@ox.cx>
+
+ * Release 0.15.1
+
+2015-04-14 Glyph Lefkowitz <glyph@twistedmatrix.com>
+
+ * OpenSSL/SSL.py, OpenSSL/test/test_ssl.py: Fix a regression
+ present in 0.15, where when an error occurs and no errno() is set,
+ a KeyError is raised. This happens, for example, if
+ Connection.shutdown() is called when the underlying transport has
+ gone away.
+
+2015-04-14 Hynek Schlawack <hs@ox.cx>
+
+ * Release 0.15
+
+2015-04-12 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/rand.py, OpenSSL/SSL.py: APIs which previously accepted
+ filenames only as bytes now accept them as either bytes or
+ unicode (and respect sys.getfilesystemencoding()).
+
+2015-03-23 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/SSL.py: Add Cory Benfield's next-protocol-negotiation
+ (NPN) bindings.
+
+2015-03-15 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/SSL.py: Add ``Connection.recv_into``, mirroring the
+ builtin ``socket.recv_into``. Based on work from Cory Benfield.
+ * OpenSSL/test/test_ssl.py: Add tests for ``recv_into``.
+
+2015-01-30 Stephen Holsapple <sholsapp@gmail.com>
+
+ * OpenSSL/crypto.py: Expose ``X509StoreContext`` for verifying certificates.
+ * OpenSSL/test/test_crypto.py: Add intermediate certificates for
+
+2015-01-08 Paul Aurich <paul@darkrain42.org>
+
+ * OpenSSL/SSL.py: ``Connection.shutdown`` now propagates errors from the
+ underlying socket.
+
+2014-12-11 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/SSL.py: Fixed a regression ``Context.check_privatekey``
+ causing it to always succeed - even if it should fail.
+
+2014-08-21 Alex Gaynor <alex.gaynor@gmail.com>
+
+ * OpenSSL/crypto.py: Fixed a regression where calling ``load_pkcs7_data``
+ with ``FILETYPE_ASN1`` would fail with a ``NameError``.
+
+2014-05-05 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/SSL.py: Fix a regression in which the first argument of
+ the "verify" callback was incorrectly passed a ``Context`` instance
+ instead of the ``Connection`` instance.
+ * OpenSSL/test/test_ssl.py: Add a test for the value passed as the
+ first argument of the "verify" callback.
+
+2014-04-19 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/crypto.py: Based on work from Alex Gaynor, Andrew
+ Lutomirski, Tobias Oberstein, Laurens Van Houtven, and Hynek
+ Schlawack, add ``get_elliptic_curve`` and ``get_elliptic_curves``
+ to support TLS ECDHE modes.
+ * OpenSSL/SSL.py: Add ``Context.set_tmp_ecdh`` to configure a TLS
+ context with a particular elliptic curve for ECDHE modes.
+
+2014-04-19 Markus Unterwaditzer <markus@unterwaditzer.net>
+
+ * OpenSSL/SSL.py: ``Connection.send`` and ``Connection.sendall``
+ now also accept the ``buffer`` type as data.
+
+2014-04-05 Stephen Holsapple <sholsapp@gmail.com>
+
+ * OpenSSL/crypto.py: Make ``load_pkcs12`` backwards compatible with
+ pyOpenSSL 0.13 by making passphrase optional.
+
+2014-03-30 Fedor Brunner <fedor.brunner@azet.sk>
+
+ * OpenSSL/SSL.py: Add ``get_finished``, ``get_peer_finished``
+ methods to ``Connection``. If you use these methods to
+ implement TLS channel binding (RFC 5929) disable session
+ resumption because triple handshake attacks against TLS.
+ <https://www.ietf.org/mail-archive/web/tls/current/msg11337.html>
+ <https://secure-resumption.com/tlsauth.pdf>
+
+2014-03-29 Fedor Brunner <fedor.brunner@azet.sk>
+
+ * OpenSSL/SSL.py: Add ``get_cipher_name``, ``get_cipher_bits``,
+ and ``get_cipher_version`` to ``Connection``.
+
+2014-03-28 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/tsafe.py: Replace the use of ``apply`` (which has been
+ removed in Python 3) with the equivalent syntax.
+
+2014-03-28 Jonathan Giannuzzi <jonathan@giannuzzi.be>
+
+ * OpenSSL/crypto.py: Fix memory leak in _X509_REVOKED_dup.
+ * leakcheck/crypto.py: Add checks for _X509_REVOKED_dup, CRL.add_revoked
+ and CRL.get_revoked.
+ * setup.py: Require cryptography 0.3 to have the ASN1_TIME_free binding.
+
+2014-03-02 Stephen Holsapple <sholsapp@gmail.com>
+
+ * OpenSSL/crypto.py: Add ``get_extensions`` method to ``X509Req``.
+
+2014-02-23 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * Release 0.14
+
+2014-01-09 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL: Port to the cffi-based OpenSSL bindings provided by
+ <https://github.com/pyca/cryptography>
+
+2013-10-06 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/ssl/context.c: Add support for negotiating TLS v1.1 or
+ v1.2.
+
+2013-10-03 Christian Heimes <christian@python.org>
+
+ * OpenSSL/crypto/x509.c: Fix an inconsistency in memory management
+ in X509.get_serial_number which leads to crashes on some runtimes
+ (certain Windows/Python 3.3 environments, at least).
+
+2013-08-11 Christian Heimes <christian@python.org>
+
+ * OpenSSL/crypto/x509ext.c: Fix handling of NULL bytes inside
+ subjectAltName general names when formatting an X509 extension
+ as a string.
+ * OpenSSL/crypto/x509.c: Fix memory leak in get_extension().
+
+2012-04-03 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/crypto/pkey.c: Release the GIL around RSA and DSA key
+ generation, based on code from INADA Naoki.
+
+2012-02-13 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/ssl/ssl.c: Add session cache related constants for use
+ with the new Context.set_session_cache_mode method.
+
+ * OpenSSL/ssl/context.c: Add new Context methods
+ set_session_cache_mode and get_session_cache_mode.
+
+2011-11-01 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/crypto/pkey.c: Raise TypeError when trying to check a
+ PKey instance which has no private component, instead of crashing.
+ Based on fix by <lp:~dataway>.
+
+2011-09-14 Žiga Seilnacht <lp:ziga-seilnacht>
+
+ * OpenSSL/crypto/crypto.c: Allow exceptions from passphrase
+ callbacks to propagate up out of load_privatekey
+ * OpenSSL/crypto/crypto.c: Raise an exception when a too-long
+ passphrase is returned from a passphrase callback, instead of
+ silently truncating it.
+ * OpenSSL/crypto/crypto.c: Fix a memory leak when a passphrase
+ callback returns the wrong type.
+
+2011-09-13 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/crypto/crl.c: Add error handling for the use of
+ X509_CRL_sign.
+
+2011-09-11 Jonathan Ballet <lp:multani>
+
+ * doc/: Convert the LaTeX documentation to Sphinx-using ReST.
+ * OpenSSL/: Convert the epytext API documentation to Sphinx-using ReST.
+
+2011-09-08 Guillermo Gonzalez <guillermo.gonzalez@canonical.com>
+
+ * OpenSSL/ssl/context.c: Add Context.set_mode method.
+ * OpenSSL/ssl/ssl.c: Add MODE_RELEASE_BUFFERS and OP_NO_COMPRESSION
+ constants.
+
+2011-09-02 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * Release 0.13
+
+2011-06-12 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/crypto/pkey.c: Add the PKey.check method, mostly
+ implemented by Rick Dean, to verify the internal consistency of a
+ PKey instance.
+
+2011-06-12 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/crypto/crypto.c: Fix the sign and verify functions so
+ they handle data with embedded NULs. Fix by David Brodsky
+ <lp:~lihalla>.
+
+2011-05-20 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/ssl/connection.c, OpenSSL/test/test_ssl.py: Add a new
+ method to the Connection type, get_peer_cert_chain, for retrieving
+ the peer's certificate chain.
+
+2011-05-19 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/crypto/x509.c, OpenSSL/test/test_crypto.py: Add a new
+ method to the X509 type, get_signature_algorithm, for inspecting
+ the signature algorithm field of the certificate. Based on a
+ patch from <lp:~okuda>.
+
+2011-05-10 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/crypto/crypto.h: Work around a Windows/OpenSSL 1.0 issue
+ explicitly including a Windows header before any OpenSSL headers.
+
+ * OpenSSL/crypto/pkcs12.c: Work around an OpenSSL 1.0 issue by
+ explicitly flushing errors known to be uninteresting after calling
+ PKCS12_parse.
+
+ * OpenSSL/ssl/context.c: Remove SSLv2 support if the underlying
+ OpenSSL library does not provide it.
+
+ * OpenSSL/test/test_crypto.py: Support an OpenSSL 1.0 change from
+ MD5 to SHA1 by allowing either hash algorithm's result as the
+ return value of X509.subject_name_hash.
+
+ * OpenSSL/test/test_ssl.py: Support an OpenSSL 1.0 change from MD5
+ to SHA1 by constructing certificate files named using both hash
+ algorithms' results when testing Context.load_verify_locations.
+
+ * Support OpenSSL 1.0.0a.
+
+2011-04-15 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/ssl/ssl.c: Add OPENSSL_VERSION_NUMBER, SSLeay_version
+ and related constants for retrieving version information about the
+ underlying OpenSSL library.
+
+2011-04-07 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * Release 0.12
+
+2011-04-06 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/crypto/x509.c: Add get_extension_count and get_extension
+ to the X509 type, allowing read access to certificate extensions.
+
+ * OpenSSL/crypto/x509ext.c: Add get_short_name and get_data to the
+ X509Extension type, allowing read access to the contents of an
+ extension.
+
+2011-03-21 Olivier Hervieu <lp:~ohe>
+
+ * OpenSSL/ssl/ssl.c: Expose a number of symbolic constants for
+ values passed to the connection "info" callback.
+
+2011-01-22 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/ssl/connection.py: Add support for new-style
+ buffers (primarily memoryviews) to Connection.send and
+ Connection.sendall.
+
+2010-11-01 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * Release 0.11
+
+2010-10-07 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * Initial support for Python 3.x throughout the codebase.
+
+2010-09-14 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * OpenSSL/crypto/netscape_spki.c: Fix an off-by-one mistake in the
+ error handling for NetscapeSPKI.verify. Add additional error
+ checking to NetscapeSPKI.sign to handle the case where there is no
+ private key.
+
+ * OpenSSL/crypto/x509.c: Fix an overflow bug in the subject_name_hash
+ method of the X509 type which would cause it to return negative
+ values on 32 bit systems.
+
+ * OpenSSL/crypto/x509req.c: Fix an off-by-one mistake in the error
+ handling for X509Req.verify.
+
+ * OpenSSL/ssl/context.c: Fix the error handling in the load_tmp_dh
+ method of the Context type which would cause it to always raise
+ MemoryError, regardless of the actual error (such as a bad file
+ name).
+
+ * OpenSSL/test/: Numerous unit tests added, both for above fixes
+ and for other previously untested code paths.
+
+2010-07-27 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * Re-arrange the repository so that the package can be built and
+ used in-place without requiring installation.
+
+2010-02-27 James Yonan <james@openvpn.net>
+
+ * src/crypto/crypto.c: Added crypto.sign and crypto.verify methods
+ that wrap EVP_Sign and EVP_Verify function families, using code
+ derived from Dave Cridland's PyOpenSSL branch.
+
+ * test/test_crypto.py: Added unit tests for crypto.sign and
+ crypto.verify.
+
+2010-01-27 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/ssl/connection.c, src/util.h: Apply patch from Sandro Tosi to
+ fix misspellings of "compatibility".
+
+2009-11-13 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * Release 0.10
+
+2009-11-07 Žiga Seilnacht, Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/ssl/connection.c, src/ssl/context.c: Add set_client_ca_list,
+ add_client_ca, and get_client_ca_list to Context for manipulating
+ the list of certificate authority names which are sent by servers
+ with the certificate request message.
+ * src/util.h: Add ssize-related defines if the version of Python
+ being used does not have them.
+ * setup.py: Significant changes to the way Windows builds are done,
+ particularly the way OpenSSL headers and libraries are found (with
+ the new --with-openssl argument to build_ext).
+
+2009-08-27 Rick Dean <rick@fdd.com>, Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/crypto/pkcs12.c: Add setters to the PKCS12 type for the
+ certificate, private key, ca certificate list, and friendly
+ name, and add a getter for the friendly name. Also add a method
+ for exporting a PKCS12 object as a string.
+ * test/test_crypto.py: Add lots of additional tests for the PKCS12
+ type.
+ * doc/pyOpenSSL.tex: Documentation for the new PKCS12 methods.
+
+2009-07-17 Rick Dean <rick@fdd.com>, Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/crypto/x509ext.c: Add subject and issuer parameters to
+ X509Extension, allowing creation of extensions which require that
+ information. Fixes LP#322813.
+
+2009-07-16 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * test/util.py: Changed the base TestCase's tearDown to assert that
+ no errors were left in the OpenSSL error queue by the test.
+ * src/crypto/crypto.c: Add a private helper in support of the
+ TestCase.tearDown change.
+ * src/crypto/x509name.c: Changed X509Name's getattr implementation
+ to clean up the error queue. Fixes LP#314814.
+ * test/util.c: Changed flush_error_queue to avoid a reference
+ counting bug caused by macro expansion.
+
+2009-07-16 Rick Dean <rick@fdd.com>
+
+ * src/rand.c: Added OpenSSL.rand.bytes to get random bytes directly.
+ * src/util.c: Added generic exceptions_from_error_queue to replace
+ the various other implementations of this function. Also updated
+ the rest of the codebase to use this version instead.
+
+2009-07-05 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * test/util.py, test/test_ssl.py, test/test_crypto.py: Fold the
+ Python 2.3 compatibility TestCase mixin into the TestCase defined
+ in util.py.
+
+2009-07-05 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * test/util.py, test/test_ssl.py, test/test_crypto.py: Stop trying
+ to use Twisted's TestCase even when it's available. Instead,
+ always use the stdlib TestCase with a few enhancements.
+
+2009-07-04 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * Changed most extension types so that they can be instantiated
+ using the type object rather than a factory function. The old
+ factory functions are now aliases for the type objects.
+ Fixes LP#312786.
+
+2009-05-27 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * Changed all docstrings in extension modules to be friendlier
+ towards Python programmers. Fixes LP#312787.
+
+2009-05-27 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/crypto/x509ext.c: Correctly deallocate the new Extension
+ instance when there is an error initializing it and it is not
+ going to be returned. Resolves LP#368043.
+
+2009-05-11 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * test/test_crypto.py: Use binary mode for the pipe to talk to the
+ external openssl binary. The data being transported over this
+ pipe is indeed binary, so previously it would often be truncated
+ or otherwise mangled.
+
+ * src/ssl/connection.h, src/ssl/connection.c, test/test_ssl.py:
+ Extend the Connection class with support for in-memory BIOs. This
+ allows SSL to be run without a real socket, useful for
+ implementing EAP-TLS or using SSL with Windows IO completion
+ ports, for example. Based heavily on contributions from Rick
+ Dean.
+
+2009-04-25 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * Release 0.9
+
+2009-04-01 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+ Samuele Pedroni <pedronis@openend.se>
+
+ * src/util.h: Delete the TLS key before trying to set a new value
+ for it in case the current thread identifier is a recycled one (if
+ it is recycled, the key won't be set because there is already a
+ value from the previous thread to have this identifier and to use
+ the pyOpenSSL API).
+
+2009-04-01 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/crypto/crypto.c: Add FILETYPE_TEXT for dumping keys and
+ certificates and certificate signature requests to a text format.
+
+2008-12-31 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/crypto/x509ext.c, test/test_crypto.py: Add the get_short_name
+ method to X509Extension based on patch from Alex Stapleton.
+
+2008-12-31 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/crypto/x509ext.c, test/test_crypto.py: Fix X509Extension so
+ that it is possible to instantiate extensions which use s2i or r2i
+ instead of v2i (an extremely obscure extension implementation
+ detail).
+
+2008-12-30 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * MANIFEST.in, src/crypto/crypto.c, src/crypto/x509.c,
+ src/crypto/x509name.c, src/rand/rand.c, src/ssl/context.c: Changes
+ which eliminate compiler warnings but should not change any
+ behavior.
+
+2008-12-28 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * test/test_ssl.py, src/ssl/ssl.c: Expose DTLS-related constants,
+ OP_NO_QUERY_MTU, OP_COOKIE_EXCHANGE, and OP_NO_TICKET.
+
+2008-12-28 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/ssl/context.c: Add a capath parameter to
+ Context.load_verify_locations to allow Python code to specify
+ either or both arguments to the underlying
+ SSL_CTX_load_verify_locations API.
+ * src/ssl/context.c: Add Context.set_default_verify_paths, a wrapper
+ around SSL_CTX_set_default_verify_paths.
+
+2008-12-28 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * test/test_crypto.py, src/crypto/x509req.c: Added get_version and
+ set_version_methods to X509ReqType based on patch from Wouter van
+ Bommel. Resolves LP#274418.
+
+2008-09-22 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * Release 0.8
+
+2008-10-19 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * tsafe.py: Revert the deprecation of the thread-safe Connection
+ wrapper. The Connection class should not segfault if used from
+ multiple threads now, but it generally cannot be relied on to
+ produce correct results if used without the thread-safe wrapper.
+ * doc/pyOpenSSL.tex: Correct the documentation for the set_passwd_cb
+ callback parameter so that it accurately describes the required
+ signature.
+
+2008-09-22 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * Release 0.8a1
+
+2008-09-21 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/ssl/ssl.h, src/ssl/ssl.c: Add a thread-local storage key
+ which will be used to store and retrieve PyThreadState pointers
+ whenever it is necessary to release or re-acquire the GIL.
+
+ * src/ssl/context.c: Change global_verify_callback so that it
+ unconditionally manipulates the Python threadstate, rather than
+ checking the tstate field which is now always NULL.
+
+2008-04-26 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/ssl/context.c: Change global_passphrase_callback and
+ global_info_callback so that they acquire the GIL before
+ invoking any CPython APIs and do not release it until after they
+ are finished invoking all of them (based heavily on on patch
+ from Dan Williams).
+ * src/ssl/crypto.c: Initialize OpenSSL thread support so that it
+ is valid to use OpenSSL APIs from more than one thread (based on
+ patch from Dan Williams).
+ * test/test_crypto.py: Add tests for load_privatekey and
+ dump_privatekey when a passphrase or a passphrase callback is
+ supplied.
+ * test/test_ssl.py: Add tests for Context.set_passwd_cb and
+ Context.set_info_callback.
+
+2008-04-11 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * Release 0.7
+
+2008-03-26 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/crypto/x509name.c: Add X509Name.get_components
+
+2008-03-25 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/crypto/x509name.c: Add hash and der methods to X509Name.
+ * src/crypto/x509.c: Fix a bug in X509.get_notBefore and
+ X509.get_notAfter preventing UTCTIME format timestamps from
+ working.
+
+2008-03-12 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * Fix coding problems in examples/. Remove keys and certificates
+ and add a note about how to generate new ones.
+
+2008-03-09 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/crypto/x509.c: Add getters and setters for the notBefore and
+ notAfter attributes of X509s.
+ * src/crypto/pkey.h, src/crypto/pkey.c, src/crypto/x509req.c,
+ src/crypto/x509.c: Track the initialized and public/private state
+ of EVP_PKEY structures underlying the crypto_PKeyObj type and
+ reject X509Req signature operations on keys not suitable for the
+ task.
+
+2008-03-06 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/crypto/x509name.c: Fix tp_compare so it only returns -1, 0, or
+ 1. This eliminates a RuntimeWarning emitted by Python.
+ * src/crypto/x509req.c: Fix reference counting for X509Name returned
+ by X509Req.get_subject. This removes a segfault when the subject
+ name outlives the request object.
+ * src/crypto/x509.c: Change get_serial_number and set_serial_number
+ to accept Python longs.
+ * doc/pyOpenSSL.tex: A number of minor corrections.
+
+2008-03-03 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/crypto/crypto.c: Expose X509_verify_cert_error_string. (patch
+ from Victor Stinner)
+
+2008-02-22 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/ssl/connection.c src/ssl/context.c src/ssl/ssl.c: Fix
+ compilation on Windows. (patch from Michael Schneider)
+
+2008-02-21 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/ssl/connection.c: Expose SSL_get_shutdown and
+ SSL_set_shutdown. (patch from James Knight)
+ * src/ssl/ssl.c: Expose SSL_SENT_SHUTDOWN and SSL_RECEIVED_SHUTDOWN.
+ (patch from James Knight)
+
+2008-02-19 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * src/ssl/context.c: Expose SSL_CTX_add_extra_chain_cert.
+ * src/crypto/x509name.c: Fix memory leaks in __getattr__ and
+ __setattr_ implementations.
+ * src/crypto/x509.c: Fix memory leak in X509.get_pubkey().
+ * leakcheck/: An attempt at a systematic approach to leak
+ elimination.
+
+2004-08-13 Martin Sjögren <msjogren@gmail.com>
+
+ * Released version 0.6.
+
+2004-08-11 Martin Sjögren <msjogren@gmail.com>
+
+ * doc/pyOpenSSL.tex: Updates to the docs.
+
+2004-08-10 Martin Sjögren <msjogren@gmail.com>
+
+ * src/crypto/x509.c: Add X509.add_extensions based on a patch
+ from Han S. Lee.
+ * src/ssl/ssl.c: Add more SSL_OP_ constants. Patch from Mihai
+ Ibanescu.
+
+2004-08-09 Martin Sjögren <msjogren@gmail.com>
+
+ * setup.py src/crypto/: Add support for Netscape SPKI extensions
+ based on a patch from Tollef Fog Heen.
+ * src/crypto/crypto.c: Add support for python passphrase callbacks
+ based on a patch from Robert Olson.
+
+2004-08-03 Martin Sjögren <msjogren@gmail.com>
+
+ * src/ssl/context.c: Applied patch from Frederic Peters to add
+ Context.use_certificate_chain_file.
+ * src/crypto/x509.c: Applid patch from Tollef Fog Heen to add
+ X509.subject_name_hash and X509.digest.
+
+2004-08-02 Martin Sjögren <msjogren@gmail.com>
+
+ * src/crypto/crypto.c src/ssl/ssl.c: Applied patch from Bastian
+ Kleineidam to fix full names of exceptions.
+
+2004-07-19 Martin Sjögren <msjogren@gmail.com>
+
+ * doc/pyOpenSSL.tex: Fix the errors regarding X509Name's field names.
+
+2004-07-18 Martin Sjögren <msjogren@gmail.com>
+
+ * examples/certgen.py: Fixed wrong attributes in doc string, thanks
+ Remy. (SFbug#913315)
+ * __init__.py, setup.py, version.py: Add __version__, as suggested by
+ Ronald Oussoren in SFbug#888729.
+ * examples/proxy.py: Fix typos, thanks Mihai Ibanescu. (SFpatch#895820)
+
+2003-01-09 Martin Sjögren <martin@strakt.com>
+
+ * Use cyclic GC protocol in SSL.Connection, SSL.Context, crypto.PKCS12
+ and crypto.X509Name.
+
+2002-12-02 Martin Sjögren <martin@strakt.com>
+
+ * tsafe.py: Add some missing methods.
+
+2002-10-06 Martin Sjögren <martin@strakt.com>
+
+ * __init__.py: Import tsafe too!
+
+2002-10-05 Martin Sjögren <martin@strakt.com>
+
+ * src/crypto/x509name.c: Use unicode strings instead of ordinary
+ strings in getattr/setattr. Note that plain ascii strings should
+ still work.
+
+2002-09-17 Martin Sjögren <martin@strakt.com>
+
+ * Released version 0.5.1.
+
+2002-09-09 Martin Sjögren <martin@strakt.com>
+
+ * setup.cfg: Fixed build requirements for rpms.
+
+2002-09-07 Martin Sjögren <martin@strakt.com>
+
+ * src/ssl/connection.c: Fix sendall() method. It segfaulted because
+ it was too generous about giving away the GIL.
+ * Added SecureXMLRPCServer example, contributed by Michal Wallace.
+
+2002-09-06 Martin Sjögren <martin@strakt.com>
+
+ * setup.cfg: Updated the build requirements.
+ * src/ssl/connection.c: Fix includes for AIX.
+
+2002-09-04 Anders Hammarquist <iko@strakt.com>
+
+ * Added type checks in all the other places where we expect
+ specific types of objects passed.
+
+2002-09-04 Martin Sjögren <martin@strakt.com>
+
+ * src/crypto/crypto.c: Added an explicit type check in the dump_*
+ functions, so that they won't die when e.g. None is passed in.
+
+2002-08-25 Martin Sjögren <martin@strakt.com>
+
+ * doc/pyOpenSSL.tex: Docs for PKCS12.
+
+2002-08-24 Martin Sjögren <martin@strakt.com>
+
+ * src/crypto: Added basic PKCS12 support, thanks to Mark Welch
+ <mark@collab.net>
+
+2002-08-16 Martin Sjögren <martin@strakt.com>
+
+ * D'oh! Fixes for python 1.5 and python 2.1.
+
+2002-08-15 Martin Sjögren <martin@strakt.com>
+
+ * Version 0.5. Yay!
+
+2002-07-25 Martin Sjögren <martin@strakt.com>
+
+ * src/ssl/context.c: Added set_options method.
+ * src/ssl/ssl.c: Added constants for Context.set_options method.
+
+2002-07-23 Martin Sjögren <martin@strakt.com>
+
+ * Updated docs
+ * src/ssl/connection.c: Changed the get_cipher_list method to actually
+ return a list! WARNING: This change makes the API incompatible with
+ earlier versions!
+
+2002-07-15 Martin Sjögren <martin@strakt.com>
+
+ * src/ssl/connection.[ch]: Removed the fileno method, it uses the
+ transport object's fileno instead.
+
+2002-07-09 Martin Sjögren <martin@strakt.com>
+
+ * src/crypto/x509.c src/crypto/x509name.c: Fixed segfault bug where
+ you used an X509Name after its X509 had been destroyed.
+ * src/crypto/crypto.[ch] src/crypto/x509req.c src/crypto/x509ext.[ch]:
+ Added X509 Extension support. Thanks to maas-Maarten Zeeman
+ <maas@awanim.com>
+ * src/crypto/pkey.c: Added bits() and type() methods.
+
+2002-07-08 Martin Sjögren <martin@strakt.com>
+
+ * src/ssl/connection.c: Moved the contents of setup_ssl into the
+ constructor, thereby fixing some segfault bugs :)
+ * src/ssl/connection.c: Added connect_ex and sendall methods.
+ * src/crypto/x509name.c: Cleaned up comparisons and NID lookup.
+ Thank you Maas-Maarten Zeeman <maas@awanim.com>
+ * src/rand/rand.c: Fix RAND_screen import.
+ * src/crypto/crypto.c src/crypto/pkcs7.[ch]: Added PKCS7 management,
+ courtesy of Maas-Maarten Zeeman <maas@awanim.com>
+ * src/crypto/x509req.c: Added verify method.
+
+2002-06-17 Martin Sjögren <martin@strakt.com>
+
+ * rpm/, setup.cfg: Added improved RPM-building stuff, thanks to
+ Mihai Ibanescu <misa@redhat.com>
+
+2002-06-14 Martin Sjögren <martin@strakt.com>
+
+ * examples/proxy.py: Example code for using OpenSSL through a proxy
+ contributed by Mihai Ibanescu <misa@redhat.com>
+ * Updated installation instruction and added them to the TeX manual.
+
+2002-06-13 Martin Sjögren <martin@strakt.com>
+
+ * src/ssl/context.c: Changed global_verify_callback so that it uses
+ PyObject_IsTrue instead of requring ints.
+ * Added pymemcompat.h to make the memory management uniform and
+ backwards-compatible.
+ * src/util.h: Added conditional definition of PyModule_AddObject and
+ PyModule_AddIntConstant
+ * src/ssl/connection.c: Socket methods are no longer explicitly
+ wrapped. fileno() is the only method the transport layer object HAS
+ to support, but if you want to use connect, accept or sock_shutdown,
+ then the transport layer object has to supply connect, accept
+ and shutdown respectively.
+
+2002-06-12 Martin Sjögren <martin@strakt.com>
+
+ * Changed comments to docstrings that are visible in Python.
+ * src/ssl/connection.c: Added set_connect_state and set_accept_state
+ methods. Thanks to Mark Welch <mark@collab.net> for this.
+
+2002-06-11 Martin Sjögren <martin@strakt.com>
+
+ * src/ssl/connection.c: accept and connect now use SSL_set_accept_state
+ and SSL_set_connect_state respectively, instead of SSL_accept and
+ SSL_connect.
+ * src/ssl/connection.c: Added want_read and want_write methods.
+
+2002-06-05 Martin Sjögren <martin@strakt.com>
+
+ * src/ssl/connection.c: Added error messages for windows. The code is
+ copied from Python's socketmodule.c. Ick.
+ * src/ssl/connection.c: Changed the parameters to the SysCallError. It
+ always has a tuple (number, string) now, even though the number
+ might not always be useful.
+
+2002-04-05 Martin Sjögren <md9ms@mdstud.chalmers.se>
+
+ * Worked more on the Debian packaging, hopefully the packages
+ are getting into the main Debian archive soon.
+
+2002-01-10 Martin Sjögren <martin@strakt.com>
+
+ * Worked some more on the Debian packaging, it's turning out real
+ nice.
+ * Changed format on this file, I'm going to try to be a bit more
+ verbose about my changes, and this format makes it easier.
+
+2002-01-08 Martin Sjögren <martin@strakt.com>
+
+ * Version 0.4.1
+ * Added some example code
+ * Added the thread safe Connection object in the 'tsafe' submodule
+ * New Debian packaging
+
+2001-08-09 Martin Sjögren <martin@strakt.com>
+
+ * Version 0.4
+ * Added a compare function for X509Name structures.
+ * Moved the submodules to separate .so files, with tiny C APIs so they
+ can communicate
+ * Skeletal OpenSSL/__init__.py
+ * Removed the err submodule, use crypto.Error and SSL.Error instead
+
+2001-08-06 Martin Sjögren <martin@strakt.com>
+
+ * Version 0.3
+ * Added more types for dealing with certificates (X509Store, X509Req,
+ PKey)
+ * Functionality to load private keys, certificates and certificate
+ requests from memory buffers, and store them too
+ * X509 and X509Name objects can now be modified as well, very neat when
+ creating certificates ;)
+ * Added SSL_MODE_AUTO_RETRY to smooth things for blocking sockets
+ * Added a sock_shutdown() method to the Connection type
+ * I don't understand why, but I can't use Py_InitModule() to create
+ submodules in Python 2.0, the interpreter segfaults on the cleanup
+ process when I do. I added a conditional compile on the version
+ number, falling back to my own routine. It would of course be nice to
+ investigate what is happening, but I don't have the time to do so
+ * Do INCREF on the type objects before inserting them in the
+ dictionary, so they will never reach refcount 0 (they are, after all,
+ statically allocated)
+
+2001-07-30 Martin Sjögren <martin@strakt.com>
+
+ * Version 0.2
+ * Lots of tweaking and comments in the code
+ * Now uses distutils instead of the stupid Setup file
+ * Hacked doc/tools/mkhowto, html generation should now work
+
+2001-07-16 Martin Sjögren <martin@strakt.com>
+
+ * Initial release (0.1, don't expect much from this one :-)
+
diff --git a/doc/backward-compatibility.rst b/doc/backward-compatibility.rst
new file mode 100644
index 0000000..446339b
--- /dev/null
+++ b/doc/backward-compatibility.rst
@@ -0,0 +1,11 @@
+Backward Compatibility
+======================
+
+pyOpenSSL has a very strong backward compatibility policy.
+Generally speaking, you shouldn't ever be afraid of updating.
+
+If breaking changes are needed do be done, they are:
+
+#. …announced in the :doc:`changelog`.
+#. …the old behavior raises a :exc:`DeprecationWarning` for a year.
+#. …are done with another announcement in the :doc:`changelog`.
diff --git a/doc/changelog.rst b/doc/changelog.rst
new file mode 100644
index 0000000..565b052
--- /dev/null
+++ b/doc/changelog.rst
@@ -0,0 +1 @@
+.. include:: ../CHANGELOG.rst
diff --git a/doc/index.rst b/doc/index.rst
index 4c15fc8..56d84ea 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -2,6 +2,7 @@
Welcome to pyOpenSSL's documentation!
=====================================
+Release v\ |release| (:doc:`What's new? <changelog>`).
pyOpenSSL is a rather thin wrapper around (a subset of) the OpenSSL library.
With thin wrapper we mean that a lot of the object methods do nothing more than
@@ -20,6 +21,16 @@ Contents:
internals
+Meta
+----
+
+.. toctree::
+ :maxdepth: 1
+
+ backward-compatibility
+ changelog
+
+
Indices and tables
==================