blob: 95c891f86a3112acd7756e918ef9d50936e60c08 [file] [log] [blame]
Jean-Paul Calderonea38700a2015-04-13 07:26:39 -040012015-04-12 Jean-Paul Calderone <exarkun@twistedmatrix.com>
2
3 * OpenSSL/rand.py, OpenSSL/SSL.py: APIs which previously accepted
4 filenames only as bytes now accept them as either bytes or
5 unicode (and respect sys.getfilesystemencoding()).
6
Jean-Paul Calderone452c65b2015-03-23 09:16:28 -040072015-03-23 Jean-Paul Calderone <exarkun@twistedmatrix.com>
8
9 * OpenSSL/SSL.py: Add Cory Benfield's next-protocol-negotiation
10 (NPN) bindings.
11
Jean-Paul Calderonedfe9e492015-03-15 18:30:46 -0400122015-03-15 Jean-Paul Calderone <exarkun@twistedmatrix.com>
13
14 * OpenSSL/SSL.py: Add ``Connection.recv_into``, mirroring the
15 builtin ``socket.recv_into``. Based on work from Cory Benfield.
16 * OpenSSL/test/test_ssl.py: Add tests for ``recv_into``.
17
Jean-Paul Calderonebf1f81c2014-12-11 14:05:24 -0500182015-01-30 Stephen Holsapple <sholsapp@gmail.com>
Jean-Paul Calderone5ab37af2014-12-11 14:05:24 -050019
Jean-Paul Calderonebf1f81c2014-12-11 14:05:24 -050020 * OpenSSL/crypto.py: Expose ``X509StoreContext`` for verifying certificates.
21 * OpenSSL/test/test_crypto.py: Add intermediate certificates for
Jean-Paul Calderone5ab37af2014-12-11 14:05:24 -050022
Paul Aurich306b75a2015-01-08 18:35:03 -0800232015-01-08 Paul Aurich <paul@darkrain42.org>
24
25 * OpenSSL/SSL.py: ``Connection.shutdown`` now propagates errors from the
26 underlying socket.
27
Jean-Paul Calderonebf1f81c2014-12-11 14:05:24 -0500282014-12-11 Jean-Paul Calderone <exarkun@twistedmatrix.com>
29
30 * OpenSSL/SSL.py: Fixed a regression ``Context.check_privatekey``
31 causing it to always succeed - even if it should fail.
32
Alex Gaynorcf823d02014-08-21 10:50:18 -0700332014-08-21 Alex Gaynor <alex.gaynor@gmail.com>
34
35 * OpenSSL/crypto.py: Fixed a regression where calling ``load_pkcs7_data``
Stephen Holsapple0d9815f2014-08-27 19:36:53 -070036 with ``FILETYPE_ASN1`` would fail with a ``NameError``.
Alex Gaynorcf823d02014-08-21 10:50:18 -070037
Jean-Paul Calderone780967e2014-05-05 13:01:16 -0400382014-05-05 Jean-Paul Calderone <exarkun@twistedmatrix.com>
Jean-Paul Calderone4ca24ee2014-04-02 21:10:57 -040039
40 * OpenSSL/SSL.py: Fix a regression in which the first argument of
Jean-Paul Calderone774230a2014-05-06 08:59:49 -040041 the "verify" callback was incorrectly passed a ``Context`` instance
Jean-Paul Calderone4ca24ee2014-04-02 21:10:57 -040042 instead of the ``Connection`` instance.
43 * OpenSSL/test/test_ssl.py: Add a test for the value passed as the
44 first argument of the "verify" callback.
45
Jean-Paul Calderone3611b4e2014-04-19 18:34:06 -0400462014-04-19 Jean-Paul Calderone <exarkun@twistedmatrix.com>
47
48 * OpenSSL/crypto.py: Based on work from Alex Gaynor, Andrew
49 Lutomirski, Tobias Oberstein, Laurens Van Houtven, and Hynek
50 Schlawack, add ``get_elliptic_curve`` and ``get_elliptic_curves``
51 to support TLS ECDHE modes.
52 * OpenSSL/SSL.py: Add ``Context.set_tmp_ecdh`` to configure a TLS
53 context with a particular elliptic curve for ECDHE modes.
54
Markus Unterwaditzer8e41d022014-04-19 12:27:11 +0200552014-04-19 Markus Unterwaditzer <markus@unterwaditzer.net>
56
57 * OpenSSL/SSL.py: ``Connection.send`` and ``Connection.sendall``
58 now also accept the ``buffer`` type as data.
59
Stephen Holsapple38482622014-04-05 20:29:34 -0700602014-04-05 Stephen Holsapple <sholsapp@gmail.com>
61
62 * OpenSSL/crypto.py: Make ``load_pkcs12`` backwards compatible with
63 pyOpenSSL 0.13 by making passphrase optional.
64
Jean-Paul Calderone7c556ef2014-03-30 10:45:00 -0400652014-03-30 Fedor Brunner <fedor.brunner@azet.sk>
Fedor Brunner416f4a12014-03-28 13:18:38 +010066
Jean-Paul Calderone76f84152014-03-30 11:27:25 -040067 * OpenSSL/SSL.py: Add ``get_finished``, ``get_peer_finished``
Fedor Brunner416f4a12014-03-28 13:18:38 +010068 methods to ``Connection``. If you use these methods to
69 implement TLS channel binding (RFC 5929) disable session
70 resumption because triple handshake attacks against TLS.
71 <https://www.ietf.org/mail-archive/web/tls/current/msg11337.html>
72 <https://secure-resumption.com/tlsauth.pdf>
73
Jean-Paul Calderone7c556ef2014-03-30 10:45:00 -0400742014-03-29 Fedor Brunner <fedor.brunner@azet.sk>
Jean-Paul Calderoneab04bdc2014-03-29 18:16:34 -040075
76 * OpenSSL/SSL.py: Add ``get_cipher_name``, ``get_cipher_bits``,
77 and ``get_cipher_version`` to ``Connection``.
78
Jean-Paul Calderoned735ae82014-03-25 21:03:42 -0400792014-03-28 Jean-Paul Calderone <exarkun@twistedmatrix.com>
80
81 * OpenSSL/tsafe.py: Replace the use of ``apply`` (which has been
82 removed in Python 3) with the equivalent syntax.
83
Jonathan Giannuzzi070c3562014-03-28 15:58:54 +0100842014-03-28 Jonathan Giannuzzi <jonathan@giannuzzi.be>
Jonathan Giannuzzi1ad14af2014-03-20 16:03:30 +010085
86 * OpenSSL/crypto.py: Fix memory leak in _X509_REVOKED_dup.
Jonathan Giannuzzi070c3562014-03-28 15:58:54 +010087 * leakcheck/crypto.py: Add checks for _X509_REVOKED_dup, CRL.add_revoked
88 and CRL.get_revoked.
89 * setup.py: Require cryptography 0.3 to have the ASN1_TIME_free binding.
Jean-Paul Calderonefd193a22014-01-09 15:15:45 -050090
Jean-Paul Calderonefd193a22014-01-09 15:15:45 -0500912014-03-02 Stephen Holsapple <sholsapp@gmail.com>
92
93 * OpenSSL/crypto.py: Add ``get_extensions`` method to ``X509Req``.
94
952014-01-09 Jean-Paul Calderone <exarkun@twistedmatrix.com>
Jean-Paul Calderone5c0fd552013-10-06 08:58:04 -040096
97 * OpenSSL: Port to the cffi-based OpenSSL bindings provided by
98 <https://github.com/pyca/cryptography>
99
1002013-10-06 Jean-Paul Calderone <exarkun@twistedmatrix.com>
Jean-Paul Calderonef7e37e62013-10-03 15:24:23 -0400101
102 * OpenSSL/ssl/context.c: Add support for negotiating TLS v1.1 or
103 v1.2.
104
1052013-10-03 Christian Heimes <christian@python.org>
106
Jean-Paul Calderoneff83cdd2013-08-12 18:05:51 -0400107 * OpenSSL/crypto/x509.c: Fix an inconsistency in memory management
108 in X509.get_serial_number which leads to crashes on some runtimes
109 (certain Windows/Python 3.3 environments, at least).
Jean-Paul Calderonede1a6822013-08-23 15:21:30 -0400110
1112013-08-11 Christian Heimes <christian@python.org>
Jean-Paul Calderoneff83cdd2013-08-12 18:05:51 -0400112
113 * OpenSSL/crypto/x509ext.c: Fix handling of NULL bytes inside
Jean-Paul Calderoneffe420a2012-04-03 15:25:07 -0400114 subjectAltName general names when formatting an X509 extension
115 as a string.
116 * OpenSSL/crypto/x509.c: Fix memory leak in get_extension().
117
1182012-04-03 Jean-Paul Calderone <exarkun@twistedmatrix.com>
Jean-Paul Calderone593a06d2012-02-13 08:15:07 -0500119
120 * OpenSSL/crypto/pkey.c: Release the GIL around RSA and DSA key
121 generation, based on code from INADA Naoki.
122
1232012-02-13 Jean-Paul Calderone <exarkun@twistedmatrix.com>
124
125 * OpenSSL/ssl/ssl.c: Add session cache related constants for use
126 with the new Context.set_session_cache_mode method.
127
Jean-Paul Calderone22d915f2011-11-01 10:17:25 -0400128 * OpenSSL/ssl/context.c: Add new Context methods
129 set_session_cache_mode and get_session_cache_mode.
130
1312011-11-01 Jean-Paul Calderone <exarkun@twistedmatrix.com>
132
Jean-Paul Calderone56b2fb82011-09-14 11:23:38 -0400133 * OpenSSL/crypto/pkey.c: Raise TypeError when trying to check a
134 PKey instance which has no private component, instead of crashing.
135 Based on fix by <lp:~dataway>.
136
1372011-09-14 Žiga Seilnacht <lp:ziga-seilnacht>
138
139 * OpenSSL/crypto/crypto.c: Allow exceptions from passphrase
140 callbacks to propagate up out of load_privatekey
141 * OpenSSL/crypto/crypto.c: Raise an exception when a too-long
142 passphrase is returned from a passphrase callback, instead of
Jean-Paul Calderonec7293bc2011-09-13 15:24:38 -0400143 silently truncating it.
144 * OpenSSL/crypto/crypto.c: Fix a memory leak when a passphrase
145 callback returns the wrong type.
146
1472011-09-13 Jean-Paul Calderone <exarkun@twistedmatrix.com>
Jean-Paul Calderone54d99bc2011-09-11 15:49:43 -0400148
149 * OpenSSL/crypto/crl.c: Add error handling for the use of
150 X509_CRL_sign.
151
1522011-09-11 Jonathan Ballet <lp:multani>
Jean-Paul Calderone8afc7fc2011-09-08 18:42:51 -0400153
Guillermo Gonzalez74a2c292011-08-29 16:16:58 -0300154 * doc/: Convert the LaTeX documentation to Sphinx-using ReST.
155 * OpenSSL/: Convert the epytext API documentation to Sphinx-using ReST.
156
1572011-09-08 Guillermo Gonzalez <guillermo.gonzalez@canonical.com>
158
Jean-Paul Calderonebb960a62011-09-02 11:43:50 -0400159 * OpenSSL/ssl/context.c: Add Context.set_mode method.
Jean-Paul Calderone9695e8a2011-08-14 18:10:06 -0400160 * OpenSSL/ssl/ssl.c: Add MODE_RELEASE_BUFFERS and OP_NO_COMPRESSION
161 constants.
162
Jean-Paul Calderoneeecb1982011-06-12 17:34:44 -04001632011-09-02 Jean-Paul Calderone <exarkun@twistedmatrix.com>
164
Jean-Paul Calderone042b66d2011-06-12 21:56:13 -0400165 * Release 0.13
166
1672011-06-12 Jean-Paul Calderone <exarkun@twistedmatrix.com>
168
169 * OpenSSL/crypto/pkey.c: Add the PKey.check method, mostly
170 implemented by Rick Dean, to verify the internal consistency of a
Jean-Paul Calderoneeecb1982011-06-12 17:34:44 -0400171 PKey instance.
172
1732011-06-12 Jean-Paul Calderone <exarkun@twistedmatrix.com>
174
Jean-Paul Calderoneee6532d2011-05-20 20:10:39 -0400175 * OpenSSL/crypto/crypto.c: Fix the sign and verify functions so
176 they handle data with embedded NULs. Fix by David Brodsky
177 <lp:~lihalla>.
178
1792011-05-20 Jean-Paul Calderone <exarkun@twistedmatrix.com>
180
Jean-Paul Calderone9c771672011-05-19 17:54:07 -0400181 * OpenSSL/ssl/connection.c, OpenSSL/test/test_ssl.py: Add a new
182 method to the Connection type, get_peer_cert_chain, for retrieving
183 the peer's certificate chain.
184
1852011-05-19 Jean-Paul Calderone <exarkun@twistedmatrix.com>
186
187 * OpenSSL/crypto/x509.c, OpenSSL/test/test_crypto.py: Add a new
Jean-Paul Calderone9eff5692011-05-10 20:24:34 -0400188 method to the X509 type, get_signature_algorithm, for inspecting
189 the signature algorithm field of the certificate. Based on a
190 patch from <lp:~okuda>.
191
1922011-05-10 Jean-Paul Calderone <exarkun@twistedmatrix.com>
193
194 * OpenSSL/crypto/crypto.h: Work around a Windows/OpenSSL 1.0 issue
195 explicitly including a Windows header before any OpenSSL headers.
196
197 * OpenSSL/crypto/pkcs12.c: Work around an OpenSSL 1.0 issue by
198 explicitly flushing errors known to be uninteresting after calling
199 PKCS12_parse.
200
201 * OpenSSL/ssl/context.c: Remove SSLv2 support if the underlying
202 OpenSSL library does not provide it.
203
204 * OpenSSL/test/test_crypto.py: Support an OpenSSL 1.0 change from
205 MD5 to SHA1 by allowing either hash algorithm's result as the
206 return value of X509.subject_name_hash.
207
208 * OpenSSL/test/test_ssl.py: Support an OpenSSL 1.0 change from MD5
209 to SHA1 by constructing certificate files named using both hash
210 algorithms' results when testing Context.load_verify_locations.
Jean-Paul Calderone2309cd62011-04-15 12:17:53 -0400211
212 * Support OpenSSL 1.0.0a.
213
2142011-04-15 Jean-Paul Calderone <exarkun@twistedmatrix.com>
215
Jean-Paul Calderonefc572cf2011-04-07 15:48:16 -0400216 * OpenSSL/ssl/ssl.c: Add OPENSSL_VERSION_NUMBER, SSLeay_version
217 and related constants for retrieving version information about the
218 underlying OpenSSL library.
219
Jean-Paul Calderonec2d2bdb2011-04-06 22:19:52 -04002202011-04-07 Jean-Paul Calderone <exarkun@twistedmatrix.com>
221
222 * Release 0.12
223
2242011-04-06 Jean-Paul Calderone <exarkun@twistedmatrix.com>
225
226 * OpenSSL/crypto/x509.c: Add get_extension_count and get_extension
227 to the X509 type, allowing read access to certificate extensions.
228
Jean-Paul Calderonef65fe482011-03-21 19:16:40 -0400229 * OpenSSL/crypto/x509ext.c: Add get_short_name and get_data to the
230 X509Extension type, allowing read access to the contents of an
231 extension.
232
2332011-03-21 Olivier Hervieu <lp:~ohe>
Jean-Paul Calderonef6a4a7c2011-01-22 10:04:48 -0500234
235 * OpenSSL/ssl/ssl.c: Expose a number of symbolic constants for
236 values passed to the connection "info" callback.
237
2382011-01-22 Jean-Paul Calderone <exarkun@twistedmatrix.com>
239
Jean-Paul Calderone8e1716f2010-11-01 17:43:15 -0400240 * OpenSSL/ssl/connection.py: Add support for new-style
Jean-Paul Calderone7cb3f6d2010-10-31 10:36:23 -0400241 buffers (primarily memoryviews) to Connection.send and
242 Connection.sendall.
243
Jean-Paul Calderoned16a3642010-10-07 22:19:58 -04002442010-11-01 Jean-Paul Calderone <exarkun@twistedmatrix.com>
245
246 * Release 0.11
247
Jean-Paul Calderone84fd3742010-09-14 18:05:45 -04002482010-10-07 Jean-Paul Calderone <exarkun@twistedmatrix.com>
249
250 * Initial support for Python 3.x throughout the codebase.
251
2522010-09-14 Jean-Paul Calderone <exarkun@twistedmatrix.com>
253
254 * OpenSSL/crypto/netscape_spki.c: Fix an off-by-one mistake in the
255 error handling for NetscapeSPKI.verify. Add additional error
256 checking to NetscapeSPKI.sign to handle the case where there is no
257 private key.
258
259 * OpenSSL/crypto/x509.c: Fix an overflow bug in the subject_name_hash
260 method of the X509 type which would cause it to return negative
261 values on 32 bit systems.
262
263 * OpenSSL/crypto/x509req.c: Fix an off-by-one mistake in the error
264 handling for X509Req.verify.
265
266 * OpenSSL/ssl/context.c: Fix the error handling in the load_tmp_dh
267 method of the Context type which would cause it to always raise
268 MemoryError, regardless of the actual error (such as a bad file
269 name).
Jean-Paul Calderone6d78fed2010-07-27 21:47:22 -0400270
271 * OpenSSL/test/: Numerous unit tests added, both for above fixes
272 and for other previously untested code paths.
273
2742010-07-27 Jean-Paul Calderone <exarkun@twistedmatrix.com>
James Yonan7c2e5d32010-02-27 05:45:50 -0700275
276 * Re-arrange the repository so that the package can be built and
277 used in-place without requiring installation.
278
2792010-02-27 James Yonan <james@openvpn.net>
280
281 * src/crypto/crypto.c: Added crypto.sign and crypto.verify methods
282 that wrap EVP_Sign and EVP_Verify function families, using code
283 derived from Dave Cridland's PyOpenSSL branch.
Jean-Paul Calderone40b32a22010-01-27 16:56:44 -0500284
285 * test/test_crypto.py: Added unit tests for crypto.sign and
286 crypto.verify.
287
2882010-01-27 Jean-Paul Calderone <exarkun@twistedmatrix.com>
Jean-Paul Calderone5cc61972009-11-13 09:16:32 -0500289
290 * src/ssl/connection.c, src/util.h: Apply patch from Sandro Tosi to
291 fix misspellings of "compatibility".
292
Jean-Paul Calderone76751912009-11-12 07:51:04 -05002932009-11-13 Jean-Paul Calderone <exarkun@twistedmatrix.com>
294
295 * Release 0.10
296
2972009-11-07 Žiga Seilnacht, Jean-Paul Calderone <exarkun@twistedmatrix.com>
298
299 * src/ssl/connection.c, src/ssl/context.c: Add set_client_ca_list,
300 add_client_ca, and get_client_ca_list to Context for manipulating
301 the list of certificate authority names which are sent by servers
302 with the certificate request message.
303 * src/util.h: Add ssize-related defines if the version of Python
304 being used does not have them.
Jean-Paul Calderone2953db82009-08-27 13:20:38 -0400305 * setup.py: Significant changes to the way Windows builds are done,
306 particularly the way OpenSSL headers and libraries are found (with
307 the new --with-openssl argument to build_ext).
308
3092009-08-27 Rick Dean <rick@fdd.com>, Jean-Paul Calderone <exarkun@twistedmatrix.com>
310
Jean-Paul Calderone2953db82009-08-27 13:20:38 -0400311 * src/crypto/pkcs12.c: Add setters to the PKCS12 type for the
312 certificate, private key, ca certificate list, and friendly
Jean-Paul Calderone2953db82009-08-27 13:20:38 -0400313 name, and add a getter for the friendly name. Also add a method
314 for exporting a PKCS12 object as a string.
315 * test/test_crypto.py: Add lots of additional tests for the PKCS12
Jean-Paul Calderone9ac425c2009-07-17 16:06:12 -0400316 type.
317 * doc/pyOpenSSL.tex: Documentation for the new PKCS12 methods.
318
3192009-07-17 Rick Dean <rick@fdd.com>, Jean-Paul Calderone <exarkun@twistedmatrix.com>
320
Jean-Paul Calderone8b327992009-07-16 18:52:14 -0400321 * src/crypto/x509ext.c: Add subject and issuer parameters to
322 X509Extension, allowing creation of extensions which require that
323 information. Fixes LP#322813.
324
3252009-07-16 Jean-Paul Calderone <exarkun@twistedmatrix.com>
326
327 * test/util.py: Changed the base TestCase's tearDown to assert that
328 no errors were left in the OpenSSL error queue by the test.
329 * src/crypto/crypto.c: Add a private helper in support of the
330 TestCase.tearDown change.
331 * src/crypto/x509name.c: Changed X509Name's getattr implementation
Jean-Paul Calderoneb3b94e02009-07-16 14:07:28 -0400332 to clean up the error queue. Fixes LP#314814.
333 * test/util.c: Changed flush_error_queue to avoid a reference
334 counting bug caused by macro expansion.
335
3362009-07-16 Rick Dean <rick@fdd.com>
337
338 * src/rand.c: Added OpenSSL.rand.bytes to get random bytes directly.
Jean-Paul Calderone0b88b6a2009-07-05 12:44:41 -0400339 * src/util.c: Added generic exceptions_from_error_queue to replace
340 the various other implementations of this function. Also updated
Jean-Paul Calderone18808652009-07-05 12:54:05 -0400341 the rest of the codebase to use this version instead.
342
3432009-07-05 Jean-Paul Calderone <exarkun@twistedmatrix.com>
344
345 * test/util.py, test/test_ssl.py, test/test_crypto.py: Fold the
346 Python 2.3 compatibility TestCase mixin into the TestCase defined
Jean-Paul Calderone0b88b6a2009-07-05 12:44:41 -0400347 in util.py.
348
3492009-07-05 Jean-Paul Calderone <exarkun@twistedmatrix.com>
350
Jean-Paul Calderonefdc5a0a2009-07-04 15:48:42 -0400351 * test/util.py, test/test_ssl.py, test/test_crypto.py: Stop trying
352 to use Twisted's TestCase even when it's available. Instead,
353 always use the stdlib TestCase with a few enhancements.
354
3552009-07-04 Jean-Paul Calderone <exarkun@twistedmatrix.com>
356
357 * Changed most extension types so that they can be instantiated
Jean-Paul Calderonea96bfed2009-05-27 08:47:34 -0400358 using the type object rather than a factory function. The old
359 factory functions are now aliases for the type objects.
Jean-Paul Calderone54bcc832009-05-27 14:06:48 -0400360 Fixes LP#312786.
361
3622009-05-27 Jean-Paul Calderone <exarkun@twistedmatrix.com>
363
364 * Changed all docstrings in extension modules to be friendlier
Jean-Paul Calderonea96bfed2009-05-27 08:47:34 -0400365 towards Python programmers. Fixes LP#312787.
366
3672009-05-27 Jean-Paul Calderone <exarkun@twistedmatrix.com>
368
Jean-Paul Calderoned683f2d2009-05-11 10:47:42 -0400369 * src/crypto/x509ext.c: Correctly deallocate the new Extension
370 instance when there is an error initializing it and it is not
371 going to be returned. Resolves LP#368043.
372
3732009-05-11 Jean-Paul Calderone <exarkun@twistedmatrix.com>
374
375 * test/test_crypto.py: Use binary mode for the pipe to talk to the
376 external openssl binary. The data being transported over this
377 pipe is indeed binary, so previously it would often be truncated
378 or otherwise mangled.
379
Jean-Paul Calderoneb0921592009-05-11 10:48:41 -0400380 * src/ssl/connection.h, src/ssl/connection.c, test/test_ssl.py:
381 Extend the Connection class with support for in-memory BIOs. This
Jean-Paul Calderoned683f2d2009-05-11 10:47:42 -0400382 allows SSL to be run without a real socket, useful for
Jean-Paul Calderone71ff3682009-04-25 08:30:11 -0400383 implementing EAP-TLS or using SSL with Windows IO completion
384 ports, for example. Based heavily on contributions from Rick
385 Dean.
386
Jean-Paul Calderoneb8a70732009-04-01 14:49:13 -04003872009-04-25 Jean-Paul Calderone <exarkun@twistedmatrix.com>
Jean-Paul Calderoneec48cd52009-04-01 19:01:41 -0400388
389 * Release 0.9
390
3912009-04-01 Jean-Paul Calderone <exarkun@twistedmatrix.com>
392 Samuele Pedroni <pedronis@openend.se>
393
394 * src/util.h: Delete the TLS key before trying to set a new value
395 for it in case the current thread identifier is a recycled one (if
396 it is recycled, the key won't be set because there is already a
Jean-Paul Calderoneb8a70732009-04-01 14:49:13 -0400397 value from the previous thread to have this identifier and to use
398 the pyOpenSSL API).
399
4002009-04-01 Jean-Paul Calderone <exarkun@twistedmatrix.com>
Jean-Paul Calderonee7db4b42008-12-31 13:39:24 -0500401
402 * src/crypto/crypto.c: Add FILETYPE_TEXT for dumping keys and
Jean-Paul Calderonef8c5fab2008-12-31 15:53:48 -0500403 certificates and certificate signature requests to a text format.
404
Jean-Paul Calderone2953db82009-08-27 13:20:38 -04004052008-12-31 Jean-Paul Calderone <exarkun@twistedmatrix.com>
Jean-Paul Calderonef8c5fab2008-12-31 15:53:48 -0500406
407 * src/crypto/x509ext.c, test/test_crypto.py: Add the get_short_name
Jean-Paul Calderonee7db4b42008-12-31 13:39:24 -0500408 method to X509Extension based on patch from Alex Stapleton.
409
4102008-12-31 Jean-Paul Calderone <exarkun@twistedmatrix.com>
411
412 * src/crypto/x509ext.c, test/test_crypto.py: Fix X509Extension so
Jean-Paul Calderone24e2b0b2008-12-30 15:12:11 -0500413 that it is possible to instantiate extensions which use s2i or r2i
414 instead of v2i (an extremely obscure extension implementation
415 detail).
416
4172008-12-30 Jean-Paul Calderone <exarkun@twistedmatrix.com>
418
419 * MANIFEST.in, src/crypto/crypto.c, src/crypto/x509.c,
Jean-Paul Calderone8dd19b82008-12-28 20:41:16 -0500420 src/crypto/x509name.c, src/rand/rand.c, src/ssl/context.c: Changes
421 which eliminate compiler warnings but should not change any
Jean-Paul Calderone327d8f92008-12-28 21:55:56 -0500422 behavior.
423
4242008-12-28 Jean-Paul Calderone <exarkun@twistedmatrix.com>
425
426 * test/test_ssl.py, src/ssl/ssl.c: Expose DTLS-related constants,
Jean-Paul Calderoneaa9c7972008-09-07 21:27:49 -0400427 OP_NO_QUERY_MTU, OP_COOKIE_EXCHANGE, and OP_NO_TICKET.
428
4292008-12-28 Jean-Paul Calderone <exarkun@twistedmatrix.com>
430
431 * src/ssl/context.c: Add a capath parameter to
432 Context.load_verify_locations to allow Python code to specify
433 either or both arguments to the underlying
Jean-Paul Calderone5b000d72008-12-28 21:09:53 -0500434 SSL_CTX_load_verify_locations API.
435 * src/ssl/context.c: Add Context.set_default_verify_paths, a wrapper
Jean-Paul Calderone8dd19b82008-12-28 20:41:16 -0500436 around SSL_CTX_set_default_verify_paths.
437
4382008-12-28 Jean-Paul Calderone <exarkun@twistedmatrix.com>
439
Jean-Paul Calderonef7f0fb42008-10-19 11:55:13 -0400440 * test/test_crypto.py, src/crypto/x509req.c: Added get_version and
441 set_version_methods to X509ReqType based on patch from Wouter van
442 Bommel. Resolves LP#274418.
443
Jean-Paul Calderone002bf462008-10-19 11:35:40 -04004442008-09-22 Jean-Paul Calderone <exarkun@twistedmatrix.com>
445
446 * Release 0.8
447
4482008-10-19 Jean-Paul Calderone <exarkun@twistedmatrix.com>
449
Jean-Paul Calderone1eeb29e2008-10-19 11:50:53 -0400450 * tsafe.py: Revert the deprecation of the thread-safe Connection
451 wrapper. The Connection class should not segfault if used from
452 multiple threads now, but it generally cannot be relied on to
Jean-Paul Calderone002bf462008-10-19 11:35:40 -0400453 produce correct results if used without the thread-safe wrapper.
Jean-Paul Calderonea319ca92008-09-22 08:45:40 -0400454 * doc/pyOpenSSL.tex: Correct the documentation for the set_passwd_cb
455 callback parameter so that it accurately describes the required
Jean-Paul Calderoneb5fdbbf2008-09-22 09:04:09 -0400456 signature.
457
Jean-Paul Calderoneb7d6db22008-09-21 18:57:56 -04004582008-09-22 Jean-Paul Calderone <exarkun@twistedmatrix.com>
459
460 * Release 0.8a1
Jean-Paul Calderone002bf462008-10-19 11:35:40 -0400461
4622008-09-21 Jean-Paul Calderone <exarkun@twistedmatrix.com>
Jean-Paul Calderoneb7d6db22008-09-21 18:57:56 -0400463
464 * src/ssl/ssl.h, src/ssl/ssl.c: Add a thread-local storage key
Jean-Paul Calderone002bf462008-10-19 11:35:40 -0400465 which will be used to store and retrieve PyThreadState pointers
466 whenever it is necessary to release or re-acquire the GIL.
Jean-Paul Calderoneb7d6db22008-09-21 18:57:56 -0400467
Jean-Paul Calderone828c9cb2008-04-26 18:06:54 -0400468 * src/ssl/context.c: Change global_verify_callback so that it
469 unconditionally manipulates the Python threadstate, rather than
Jean-Paul Calderone5ef86512008-04-26 19:06:28 -0400470 checking the tstate field which is now always NULL.
471
4722008-04-26 Jean-Paul Calderone <exarkun@twistedmatrix.com>
473
474 * src/ssl/context.c: Change global_passphrase_callback and
Jean-Paul Calderoneaea5d902008-04-26 19:53:39 -0400475 global_info_callback so that they acquire the GIL before
476 invoking any CPython APIs and do not release it until after they
477 are finished invoking all of them (based heavily on on patch
Jean-Paul Calderone828c9cb2008-04-26 18:06:54 -0400478 from Dan Williams).
479 * src/ssl/crypto.c: Initialize OpenSSL thread support so that it
480 is valid to use OpenSSL APIs from more than one thread (based on
Jean-Paul Calderone5ef86512008-04-26 19:06:28 -0400481 patch from Dan Williams).
482 * test/test_crypto.py: Add tests for load_privatekey and
Jean-Paul Calderone828c9cb2008-04-26 18:06:54 -0400483 dump_privatekey when a passphrase or a passphrase callback is
Jean-Paul Calderonee53ccf72008-04-11 11:40:39 -0400484 supplied.
485 * test/test_ssl.py: Add tests for Context.set_passwd_cb and
486 Context.set_info_callback.
487
Jean-Paul Calderonec54cc182008-03-26 21:11:07 -04004882008-04-11 Jean-Paul Calderone <exarkun@twistedmatrix.com>
489
490 * Release 0.7
491
Jean-Paul Calderone9ab16c02008-03-25 15:22:47 -04004922008-03-26 Jean-Paul Calderone <exarkun@twistedmatrix.com>
493
494 * src/crypto/x509name.c: Add X509Name.get_components
Jean-Paul Calderonec8215432008-03-25 15:34:21 -0400495
4962008-03-25 Jean-Paul Calderone <exarkun@twistedmatrix.com>
497
Jean-Paul Calderone9ab16c02008-03-25 15:22:47 -0400498 * src/crypto/x509name.c: Add hash and der methods to X509Name.
Jean-Paul Calderone3de9f622008-03-12 14:12:19 -0400499 * src/crypto/x509.c: Fix a bug in X509.get_notBefore and
500 X509.get_notAfter preventing UTCTIME format timestamps from
501 working.
502
5032008-03-12 Jean-Paul Calderone <exarkun@twistedmatrix.com>
Jean-Paul Calderone525ef802008-03-09 20:39:42 -0400504
505 * Fix coding problems in examples/. Remove keys and certificates
506 and add a note about how to generate new ones.
507
Jean-Paul Calderoneac0d95f2008-03-10 00:00:42 -04005082008-03-09 Jean-Paul Calderone <exarkun@twistedmatrix.com>
509
510 * src/crypto/x509.c: Add getters and setters for the notBefore and
511 notAfter attributes of X509s.
512 * src/crypto/pkey.h, src/crypto/pkey.c, src/crypto/x509req.c,
Jean-Paul Calderone525ef802008-03-09 20:39:42 -0400513 src/crypto/x509.c: Track the initialized and public/private state
Jean-Paul Calderoneda92ccc2008-03-06 23:48:12 -0500514 of EVP_PKEY structures underlying the crypto_PKeyObj type and
515 reject X509Req signature operations on keys not suitable for the
516 task.
517
5182008-03-06 Jean-Paul Calderone <exarkun@twistedmatrix.com>
519
520 * src/crypto/x509name.c: Fix tp_compare so it only returns -1, 0, or
521 1. This eliminates a RuntimeWarning emitted by Python.
522 * src/crypto/x509req.c: Fix reference counting for X509Name returned
523 by X509Req.get_subject. This removes a segfault when the subject
524 name outlives the request object.
Jean-Paul Calderone7df40db2008-03-03 15:12:42 -0500525 * src/crypto/x509.c: Change get_serial_number and set_serial_number
526 to accept Python longs.
527 * doc/pyOpenSSL.tex: A number of minor corrections.
528
5292008-03-03 Jean-Paul Calderone <exarkun@twistedmatrix.com>
Jean-Paul Calderone12ea9a02008-02-22 12:24:39 -0500530
531 * src/crypto/crypto.c: Expose X509_verify_cert_error_string. (patch
532 from Victor Stinner)
533
5342008-02-22 Jean-Paul Calderone <exarkun@twistedmatrix.com>
Jean-Paul Calderone72b8f0f2008-02-21 23:57:40 -0500535
536 * src/ssl/connection.c src/ssl/context.c src/ssl/ssl.c: Fix
537 compilation on Windows. (patch from Michael Schneider)
538
5392008-02-21 Jean-Paul Calderone <exarkun@twistedmatrix.com>
540
541 * src/ssl/connection.c: Expose SSL_get_shutdown and
Jean-Paul Calderone779db6b2008-02-19 21:00:37 -0500542 SSL_set_shutdown. (patch from James Knight)
543 * src/ssl/ssl.c: Expose SSL_SENT_SHUTDOWN and SSL_RECEIVED_SHUTDOWN.
544 (patch from James Knight)
545
5462008-02-19 Jean-Paul Calderone <exarkun@twistedmatrix.com>
Jean-Paul Calderone19555b92008-02-19 22:29:57 -0500547
548 * src/ssl/context.c: Expose SSL_CTX_add_extra_chain_cert.
549 * src/crypto/x509name.c: Fix memory leaks in __getattr__ and
Jean-Paul Calderone779db6b2008-02-19 21:00:37 -0500550 __setattr_ implementations.
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500551 * src/crypto/x509.c: Fix memory leak in X509.get_pubkey().
552 * leakcheck/: An attempt at a systematic approach to leak
553 elimination.
554
5552004-08-13 Martin Sjögren <msjogren@gmail.com>
556
557 * Released version 0.6.
558
5592004-08-11 Martin Sjögren <msjogren@gmail.com>
560
561 * doc/pyOpenSSL.tex: Updates to the docs.
562
5632004-08-10 Martin Sjögren <msjogren@gmail.com>
564
565 * src/crypto/x509.c: Add X509.add_extensions based on a patch
566 from Han S. Lee.
567 * src/ssl/ssl.c: Add more SSL_OP_ constants. Patch from Mihai
568 Ibanescu.
569
5702004-08-09 Martin Sjögren <msjogren@gmail.com>
571
572 * setup.py src/crypto/: Add support for Netscape SPKI extensions
573 based on a patch from Tollef Fog Heen.
574 * src/crypto/crypto.c: Add support for python passphrase callbacks
575 based on a patch from Robert Olson.
576
5772004-08-03 Martin Sjögren <msjogren@gmail.com>
578
579 * src/ssl/context.c: Applied patch from Frederic Peters to add
580 Context.use_certificate_chain_file.
581 * src/crypto/x509.c: Applid patch from Tollef Fog Heen to add
582 X509.subject_name_hash and X509.digest.
583
5842004-08-02 Martin Sjögren <msjogren@gmail.com>
585
586 * src/crypto/crypto.c src/ssl/ssl.c: Applied patch from Bastian
587 Kleineidam to fix full names of exceptions.
Jean-Paul Calderone828c9cb2008-04-26 18:06:54 -0400588
Jean-Paul Calderone897bc252008-02-18 20:50:23 -05005892004-07-19 Martin Sjögren <msjogren@gmail.com>
590
591 * doc/pyOpenSSL.tex: Fix the errors regarding X509Name's field names.
592
5932004-07-18 Martin Sjögren <msjogren@gmail.com>
594
595 * examples/certgen.py: Fixed wrong attributes in doc string, thanks
596 Remy. (SFbug#913315)
597 * __init__.py, setup.py, version.py: Add __version__, as suggested by
598 Ronald Oussoren in SFbug#888729.
599 * examples/proxy.py: Fix typos, thanks Mihai Ibanescu. (SFpatch#895820)
600
6012003-01-09 Martin Sjögren <martin@strakt.com>
602
603 * Use cyclic GC protocol in SSL.Connection, SSL.Context, crypto.PKCS12
604 and crypto.X509Name.
605
6062002-12-02 Martin Sjögren <martin@strakt.com>
607
608 * tsafe.py: Add some missing methods.
609
6102002-10-06 Martin Sjögren <martin@strakt.com>
611
612 * __init__.py: Import tsafe too!
613
6142002-10-05 Martin Sjögren <martin@strakt.com>
615
616 * src/crypto/x509name.c: Use unicode strings instead of ordinary
617 strings in getattr/setattr. Note that plain ascii strings should
618 still work.
619
6202002-09-17 Martin Sjögren <martin@strakt.com>
621
622 * Released version 0.5.1.
623
6242002-09-09 Martin Sjögren <martin@strakt.com>
625
626 * setup.cfg: Fixed build requirements for rpms.
627
6282002-09-07 Martin Sjögren <martin@strakt.com>
629
630 * src/ssl/connection.c: Fix sendall() method. It segfaulted because
631 it was too generous about giving away the GIL.
632 * Added SecureXMLRPCServer example, contributed by Michal Wallace.
633
6342002-09-06 Martin Sjögren <martin@strakt.com>
635
636 * setup.cfg: Updated the build requirements.
637 * src/ssl/connection.c: Fix includes for AIX.
638
6392002-09-04 Anders Hammarquist <iko@strakt.com>
640
641 * Added type checks in all the other places where we expect
642 specific types of objects passed.
643
6442002-09-04 Martin Sjögren <martin@strakt.com>
645
646 * src/crypto/crypto.c: Added an explicit type check in the dump_*
647 functions, so that they won't die when e.g. None is passed in.
648
6492002-08-25 Martin Sjögren <martin@strakt.com>
650
651 * doc/pyOpenSSL.tex: Docs for PKCS12.
652
6532002-08-24 Martin Sjögren <martin@strakt.com>
654
655 * src/crypto: Added basic PKCS12 support, thanks to Mark Welch
656 <mark@collab.net>
657
6582002-08-16 Martin Sjögren <martin@strakt.com>
659
660 * D'oh! Fixes for python 1.5 and python 2.1.
661
6622002-08-15 Martin Sjögren <martin@strakt.com>
663
664 * Version 0.5. Yay!
665
6662002-07-25 Martin Sjögren <martin@strakt.com>
667
668 * src/ssl/context.c: Added set_options method.
669 * src/ssl/ssl.c: Added constants for Context.set_options method.
670
6712002-07-23 Martin Sjögren <martin@strakt.com>
672
673 * Updated docs
674 * src/ssl/connection.c: Changed the get_cipher_list method to actually
675 return a list! WARNING: This change makes the API incompatible with
676 earlier versions!
677
6782002-07-15 Martin Sjögren <martin@strakt.com>
679
680 * src/ssl/connection.[ch]: Removed the fileno method, it uses the
681 transport object's fileno instead.
682
6832002-07-09 Martin Sjögren <martin@strakt.com>
684
685 * src/crypto/x509.c src/crypto/x509name.c: Fixed segfault bug where
686 you used an X509Name after its X509 had been destroyed.
687 * src/crypto/crypto.[ch] src/crypto/x509req.c src/crypto/x509ext.[ch]:
688 Added X509 Extension support. Thanks to maas-Maarten Zeeman
689 <maas@awanim.com>
690 * src/crypto/pkey.c: Added bits() and type() methods.
691
6922002-07-08 Martin Sjögren <martin@strakt.com>
693
694 * src/ssl/connection.c: Moved the contents of setup_ssl into the
695 constructor, thereby fixing some segfault bugs :)
696 * src/ssl/connection.c: Added connect_ex and sendall methods.
697 * src/crypto/x509name.c: Cleaned up comparisons and NID lookup.
698 Thank you Maas-Maarten Zeeman <maas@awanim.com>
699 * src/rand/rand.c: Fix RAND_screen import.
700 * src/crypto/crypto.c src/crypto/pkcs7.[ch]: Added PKCS7 management,
701 courtesy of Maas-Maarten Zeeman <maas@awanim.com>
702 * src/crypto/x509req.c: Added verify method.
703
7042002-06-17 Martin Sjögren <martin@strakt.com>
705
706 * rpm/, setup.cfg: Added improved RPM-building stuff, thanks to
707 Mihai Ibanescu <misa@redhat.com>
708
7092002-06-14 Martin Sjögren <martin@strakt.com>
710
711 * examples/proxy.py: Example code for using OpenSSL through a proxy
712 contributed by Mihai Ibanescu <misa@redhat.com>
713 * Updated installation instruction and added them to the TeX manual.
714
7152002-06-13 Martin Sjögren <martin@strakt.com>
716
717 * src/ssl/context.c: Changed global_verify_callback so that it uses
718 PyObject_IsTrue instead of requring ints.
719 * Added pymemcompat.h to make the memory management uniform and
720 backwards-compatible.
721 * src/util.h: Added conditional definition of PyModule_AddObject and
722 PyModule_AddIntConstant
723 * src/ssl/connection.c: Socket methods are no longer explicitly
724 wrapped. fileno() is the only method the transport layer object HAS
725 to support, but if you want to use connect, accept or sock_shutdown,
726 then the transport layer object has to supply connect, accept
727 and shutdown respectively.
728
7292002-06-12 Martin Sjögren <martin@strakt.com>
730
731 * Changed comments to docstrings that are visible in Python.
732 * src/ssl/connection.c: Added set_connect_state and set_accept_state
733 methods. Thanks to Mark Welch <mark@collab.net> for this.
734
7352002-06-11 Martin Sjögren <martin@strakt.com>
736
737 * src/ssl/connection.c: accept and connect now use SSL_set_accept_state
738 and SSL_set_connect_state respectively, instead of SSL_accept and
739 SSL_connect.
740 * src/ssl/connection.c: Added want_read and want_write methods.
741
7422002-06-05 Martin Sjögren <martin@strakt.com>
743
744 * src/ssl/connection.c: Added error messages for windows. The code is
745 copied from Python's socketmodule.c. Ick.
746 * src/ssl/connection.c: Changed the parameters to the SysCallError. It
747 always has a tuple (number, string) now, even though the number
748 might not always be useful.
749
7502002-04-05 Martin Sjögren <md9ms@mdstud.chalmers.se>
751
752 * Worked more on the Debian packaging, hopefully the packages
753 are getting into the main Debian archive soon.
754
7552002-01-10 Martin Sjögren <martin@strakt.com>
756
757 * Worked some more on the Debian packaging, it's turning out real
758 nice.
759 * Changed format on this file, I'm going to try to be a bit more
760 verbose about my changes, and this format makes it easier.
761
7622002-01-08 Martin Sjögren <martin@strakt.com>
763
764 * Version 0.4.1
765 * Added some example code
766 * Added the thread safe Connection object in the 'tsafe' submodule
767 * New Debian packaging
768
7692001-08-09 Martin Sjögren <martin@strakt.com>
770
771 * Version 0.4
772 * Added a compare function for X509Name structures.
773 * Moved the submodules to separate .so files, with tiny C APIs so they
774 can communicate
775 * Skeletal OpenSSL/__init__.py
776 * Removed the err submodule, use crypto.Error and SSL.Error instead
777
7782001-08-06 Martin Sjögren <martin@strakt.com>
779
780 * Version 0.3
781 * Added more types for dealing with certificates (X509Store, X509Req,
782 PKey)
783 * Functionality to load private keys, certificates and certificate
784 requests from memory buffers, and store them too
785 * X509 and X509Name objects can now be modified as well, very neat when
786 creating certificates ;)
787 * Added SSL_MODE_AUTO_RETRY to smooth things for blocking sockets
788 * Added a sock_shutdown() method to the Connection type
789 * I don't understand why, but I can't use Py_InitModule() to create
790 submodules in Python 2.0, the interpreter segfaults on the cleanup
791 process when I do. I added a conditional compile on the version
792 number, falling back to my own routine. It would of course be nice to
793 investigate what is happening, but I don't have the time to do so
794 * Do INCREF on the type objects before inserting them in the
795 dictionary, so they will never reach refcount 0 (they are, after all,
796 statically allocated)
797
7982001-07-30 Martin Sjögren <martin@strakt.com>
799
800 * Version 0.2
801 * Lots of tweaking and comments in the code
802 * Now uses distutils instead of the stupid Setup file
803 * Hacked doc/tools/mkhowto, html generation should now work
804
8052001-07-16 Martin Sjögren <martin@strakt.com>
806
807 * Initial release (0.1, don't expect much from this one :-)
808