blob: ae89fc475a0bbfb4b89d6d1cf3dbe16746df6315 [file] [log] [blame]
Jean-Paul Calderonea319ca92008-09-22 08:45:40 -040012008-09-22 Jean-Paul Calderone <exarkun@twistedmatrix.com>
2
Jean-Paul Calderoneb5fdbbf2008-09-22 09:04:09 -04003 * Release 0.8a1
4
52008-09-22 Jean-Paul Calderone <exarkun@twistedmatrix.com>
6
Jean-Paul Calderonea319ca92008-09-22 08:45:40 -04007 * tsafe.py: Deprecated the thread-safe Connection wrapper, since the
8 basic connection class should be thread-safe now.
9
Jean-Paul Calderoneb7d6db22008-09-21 18:57:56 -0400102008-09-21 Jean-Paul Calderone <exarkun@twistedmatrix.com>
11
12 * src/ssl/ssl.h, src/ssl/ssl.c: Add a thread-local storage key
13 which will be used to store and retrieve PyThreadState pointers
14 whenever it is necessary to release or re-acquire the GIL.
15
16 * src/ssl/context.c: Change global_verify_callback so that it
17 unconditionally manipulates the Python threadstate, rather than
18 checking the tstate field which is now always NULL.
19
Jean-Paul Calderone828c9cb2008-04-26 18:06:54 -0400202008-04-26 Jean-Paul Calderone <exarkun@twistedmatrix.com>
21
Jean-Paul Calderone5ef86512008-04-26 19:06:28 -040022 * src/ssl/context.c: Change global_passphrase_callback and
23 global_info_callback so that they acquire the GIL before
24 invoking any CPython APIs and do not release it until after they
25 are finished invoking all of them (based heavily on on patch
26 from Dan Williams).
Jean-Paul Calderoneaea5d902008-04-26 19:53:39 -040027 * src/ssl/crypto.c: Initialize OpenSSL thread support so that it
28 is valid to use OpenSSL APIs from more than one thread (based on
29 patch from Dan Williams).
Jean-Paul Calderone828c9cb2008-04-26 18:06:54 -040030 * test/test_crypto.py: Add tests for load_privatekey and
31 dump_privatekey when a passphrase or a passphrase callback is
32 supplied.
Jean-Paul Calderone5ef86512008-04-26 19:06:28 -040033 * test/test_ssl.py: Add tests for Context.set_passwd_cb and
34 Context.set_info_callback.
Jean-Paul Calderone828c9cb2008-04-26 18:06:54 -040035
Jean-Paul Calderonee53ccf72008-04-11 11:40:39 -0400362008-04-11 Jean-Paul Calderone <exarkun@twistedmatrix.com>
37
38 * Release 0.7
39
Jean-Paul Calderonec54cc182008-03-26 21:11:07 -0400402008-03-26 Jean-Paul Calderone <exarkun@twistedmatrix.com>
41
42 * src/crypto/x509name.c: Add X509Name.get_components
43
Jean-Paul Calderone9ab16c02008-03-25 15:22:47 -0400442008-03-25 Jean-Paul Calderone <exarkun@twistedmatrix.com>
45
46 * src/crypto/x509name.c: Add hash and der methods to X509Name.
Jean-Paul Calderonec8215432008-03-25 15:34:21 -040047 * src/crypto/x509.c: Fix a bug in X509.get_notBefore and
48 X509.get_notAfter preventing UTCTIME format timestamps from
49 working.
Jean-Paul Calderone9ab16c02008-03-25 15:22:47 -040050
Jean-Paul Calderone3de9f622008-03-12 14:12:19 -0400512008-03-12 Jean-Paul Calderone <exarkun@twistedmatrix.com>
52
53 * Fix coding problems in examples/. Remove keys and certificates
54 and add a note about how to generate new ones.
55
Jean-Paul Calderone525ef802008-03-09 20:39:42 -0400562008-03-09 Jean-Paul Calderone <exarkun@twistedmatrix.com>
57
58 * src/crypto/x509.c: Add getters and setters for the notBefore and
59 notAfter attributes of X509s.
Jean-Paul Calderoneac0d95f2008-03-10 00:00:42 -040060 * src/crypto/pkey.h, src/crypto/pkey.c, src/crypto/x509req.c,
61 src/crypto/x509.c: Track the initialized and public/private state
62 of EVP_PKEY structures underlying the crypto_PKeyObj type and
63 reject X509Req signature operations on keys not suitable for the
64 task.
Jean-Paul Calderone525ef802008-03-09 20:39:42 -040065
Jean-Paul Calderoneda92ccc2008-03-06 23:48:12 -0500662008-03-06 Jean-Paul Calderone <exarkun@twistedmatrix.com>
67
68 * src/crypto/x509name.c: Fix tp_compare so it only returns -1, 0, or
69 1. This eliminates a RuntimeWarning emitted by Python.
70 * src/crypto/x509req.c: Fix reference counting for X509Name returned
71 by X509Req.get_subject. This removes a segfault when the subject
72 name outlives the request object.
73 * src/crypto/x509.c: Change get_serial_number and set_serial_number
74 to accept Python longs.
75 * doc/pyOpenSSL.tex: A number of minor corrections.
76
Jean-Paul Calderone7df40db2008-03-03 15:12:42 -0500772008-03-03 Jean-Paul Calderone <exarkun@twistedmatrix.com>
78
79 * src/crypto/crypto.c: Expose X509_verify_cert_error_string. (patch
80 from Victor Stinner)
81
Jean-Paul Calderone12ea9a02008-02-22 12:24:39 -0500822008-02-22 Jean-Paul Calderone <exarkun@twistedmatrix.com>
83
84 * src/ssl/connection.c src/ssl/context.c src/ssl/ssl.c: Fix
85 compilation on Windows. (patch from Michael Schneider)
86
Jean-Paul Calderone72b8f0f2008-02-21 23:57:40 -0500872008-02-21 Jean-Paul Calderone <exarkun@twistedmatrix.com>
88
89 * src/ssl/connection.c: Expose SSL_get_shutdown and
90 SSL_set_shutdown. (patch from James Knight)
91 * src/ssl/ssl.c: Expose SSL_SENT_SHUTDOWN and SSL_RECEIVED_SHUTDOWN.
92 (patch from James Knight)
93
Jean-Paul Calderone779db6b2008-02-19 21:00:37 -0500942008-02-19 Jean-Paul Calderone <exarkun@twistedmatrix.com>
95
96 * src/ssl/context.c: Expose SSL_CTX_add_extra_chain_cert.
97 * src/crypto/x509name.c: Fix memory leaks in __getattr__ and
98 __setattr_ implementations.
Jean-Paul Calderone19555b92008-02-19 22:29:57 -050099 * src/crypto/x509.c: Fix memory leak in X509.get_pubkey().
100 * leakcheck/: An attempt at a systematic approach to leak
101 elimination.
Jean-Paul Calderone779db6b2008-02-19 21:00:37 -0500102
Jean-Paul Calderone897bc252008-02-18 20:50:23 -05001032004-08-13 Martin Sjögren <msjogren@gmail.com>
104
105 * Released version 0.6.
106
1072004-08-11 Martin Sjögren <msjogren@gmail.com>
108
109 * doc/pyOpenSSL.tex: Updates to the docs.
110
1112004-08-10 Martin Sjögren <msjogren@gmail.com>
112
113 * src/crypto/x509.c: Add X509.add_extensions based on a patch
114 from Han S. Lee.
115 * src/ssl/ssl.c: Add more SSL_OP_ constants. Patch from Mihai
116 Ibanescu.
117
1182004-08-09 Martin Sjögren <msjogren@gmail.com>
119
120 * setup.py src/crypto/: Add support for Netscape SPKI extensions
121 based on a patch from Tollef Fog Heen.
122 * src/crypto/crypto.c: Add support for python passphrase callbacks
123 based on a patch from Robert Olson.
124
1252004-08-03 Martin Sjögren <msjogren@gmail.com>
126
127 * src/ssl/context.c: Applied patch from Frederic Peters to add
128 Context.use_certificate_chain_file.
129 * src/crypto/x509.c: Applid patch from Tollef Fog Heen to add
130 X509.subject_name_hash and X509.digest.
131
1322004-08-02 Martin Sjögren <msjogren@gmail.com>
133
134 * src/crypto/crypto.c src/ssl/ssl.c: Applied patch from Bastian
135 Kleineidam to fix full names of exceptions.
136
1372004-07-19 Martin Sjögren <msjogren@gmail.com>
138
139 * doc/pyOpenSSL.tex: Fix the errors regarding X509Name's field names.
Jean-Paul Calderone828c9cb2008-04-26 18:06:54 -0400140
Jean-Paul Calderone897bc252008-02-18 20:50:23 -05001412004-07-18 Martin Sjögren <msjogren@gmail.com>
142
143 * examples/certgen.py: Fixed wrong attributes in doc string, thanks
144 Remy. (SFbug#913315)
145 * __init__.py, setup.py, version.py: Add __version__, as suggested by
146 Ronald Oussoren in SFbug#888729.
147 * examples/proxy.py: Fix typos, thanks Mihai Ibanescu. (SFpatch#895820)
148
1492003-01-09 Martin Sjögren <martin@strakt.com>
150
151 * Use cyclic GC protocol in SSL.Connection, SSL.Context, crypto.PKCS12
152 and crypto.X509Name.
153
1542002-12-02 Martin Sjögren <martin@strakt.com>
155
156 * tsafe.py: Add some missing methods.
157
1582002-10-06 Martin Sjögren <martin@strakt.com>
159
160 * __init__.py: Import tsafe too!
161
1622002-10-05 Martin Sjögren <martin@strakt.com>
163
164 * src/crypto/x509name.c: Use unicode strings instead of ordinary
165 strings in getattr/setattr. Note that plain ascii strings should
166 still work.
167
1682002-09-17 Martin Sjögren <martin@strakt.com>
169
170 * Released version 0.5.1.
171
1722002-09-09 Martin Sjögren <martin@strakt.com>
173
174 * setup.cfg: Fixed build requirements for rpms.
175
1762002-09-07 Martin Sjögren <martin@strakt.com>
177
178 * src/ssl/connection.c: Fix sendall() method. It segfaulted because
179 it was too generous about giving away the GIL.
180 * Added SecureXMLRPCServer example, contributed by Michal Wallace.
181
1822002-09-06 Martin Sjögren <martin@strakt.com>
183
184 * setup.cfg: Updated the build requirements.
185 * src/ssl/connection.c: Fix includes for AIX.
186
1872002-09-04 Anders Hammarquist <iko@strakt.com>
188
189 * Added type checks in all the other places where we expect
190 specific types of objects passed.
191
1922002-09-04 Martin Sjögren <martin@strakt.com>
193
194 * src/crypto/crypto.c: Added an explicit type check in the dump_*
195 functions, so that they won't die when e.g. None is passed in.
196
1972002-08-25 Martin Sjögren <martin@strakt.com>
198
199 * doc/pyOpenSSL.tex: Docs for PKCS12.
200
2012002-08-24 Martin Sjögren <martin@strakt.com>
202
203 * src/crypto: Added basic PKCS12 support, thanks to Mark Welch
204 <mark@collab.net>
205
2062002-08-16 Martin Sjögren <martin@strakt.com>
207
208 * D'oh! Fixes for python 1.5 and python 2.1.
209
2102002-08-15 Martin Sjögren <martin@strakt.com>
211
212 * Version 0.5. Yay!
213
2142002-07-25 Martin Sjögren <martin@strakt.com>
215
216 * src/ssl/context.c: Added set_options method.
217 * src/ssl/ssl.c: Added constants for Context.set_options method.
218
2192002-07-23 Martin Sjögren <martin@strakt.com>
220
221 * Updated docs
222 * src/ssl/connection.c: Changed the get_cipher_list method to actually
223 return a list! WARNING: This change makes the API incompatible with
224 earlier versions!
225
2262002-07-15 Martin Sjögren <martin@strakt.com>
227
228 * src/ssl/connection.[ch]: Removed the fileno method, it uses the
229 transport object's fileno instead.
230
2312002-07-09 Martin Sjögren <martin@strakt.com>
232
233 * src/crypto/x509.c src/crypto/x509name.c: Fixed segfault bug where
234 you used an X509Name after its X509 had been destroyed.
235 * src/crypto/crypto.[ch] src/crypto/x509req.c src/crypto/x509ext.[ch]:
236 Added X509 Extension support. Thanks to maas-Maarten Zeeman
237 <maas@awanim.com>
238 * src/crypto/pkey.c: Added bits() and type() methods.
239
2402002-07-08 Martin Sjögren <martin@strakt.com>
241
242 * src/ssl/connection.c: Moved the contents of setup_ssl into the
243 constructor, thereby fixing some segfault bugs :)
244 * src/ssl/connection.c: Added connect_ex and sendall methods.
245 * src/crypto/x509name.c: Cleaned up comparisons and NID lookup.
246 Thank you Maas-Maarten Zeeman <maas@awanim.com>
247 * src/rand/rand.c: Fix RAND_screen import.
248 * src/crypto/crypto.c src/crypto/pkcs7.[ch]: Added PKCS7 management,
249 courtesy of Maas-Maarten Zeeman <maas@awanim.com>
250 * src/crypto/x509req.c: Added verify method.
251
2522002-06-17 Martin Sjögren <martin@strakt.com>
253
254 * rpm/, setup.cfg: Added improved RPM-building stuff, thanks to
255 Mihai Ibanescu <misa@redhat.com>
256
2572002-06-14 Martin Sjögren <martin@strakt.com>
258
259 * examples/proxy.py: Example code for using OpenSSL through a proxy
260 contributed by Mihai Ibanescu <misa@redhat.com>
261 * Updated installation instruction and added them to the TeX manual.
262
2632002-06-13 Martin Sjögren <martin@strakt.com>
264
265 * src/ssl/context.c: Changed global_verify_callback so that it uses
266 PyObject_IsTrue instead of requring ints.
267 * Added pymemcompat.h to make the memory management uniform and
268 backwards-compatible.
269 * src/util.h: Added conditional definition of PyModule_AddObject and
270 PyModule_AddIntConstant
271 * src/ssl/connection.c: Socket methods are no longer explicitly
272 wrapped. fileno() is the only method the transport layer object HAS
273 to support, but if you want to use connect, accept or sock_shutdown,
274 then the transport layer object has to supply connect, accept
275 and shutdown respectively.
276
2772002-06-12 Martin Sjögren <martin@strakt.com>
278
279 * Changed comments to docstrings that are visible in Python.
280 * src/ssl/connection.c: Added set_connect_state and set_accept_state
281 methods. Thanks to Mark Welch <mark@collab.net> for this.
282
2832002-06-11 Martin Sjögren <martin@strakt.com>
284
285 * src/ssl/connection.c: accept and connect now use SSL_set_accept_state
286 and SSL_set_connect_state respectively, instead of SSL_accept and
287 SSL_connect.
288 * src/ssl/connection.c: Added want_read and want_write methods.
289
2902002-06-05 Martin Sjögren <martin@strakt.com>
291
292 * src/ssl/connection.c: Added error messages for windows. The code is
293 copied from Python's socketmodule.c. Ick.
294 * src/ssl/connection.c: Changed the parameters to the SysCallError. It
295 always has a tuple (number, string) now, even though the number
296 might not always be useful.
297
2982002-04-05 Martin Sjögren <md9ms@mdstud.chalmers.se>
299
300 * Worked more on the Debian packaging, hopefully the packages
301 are getting into the main Debian archive soon.
302
3032002-01-10 Martin Sjögren <martin@strakt.com>
304
305 * Worked some more on the Debian packaging, it's turning out real
306 nice.
307 * Changed format on this file, I'm going to try to be a bit more
308 verbose about my changes, and this format makes it easier.
309
3102002-01-08 Martin Sjögren <martin@strakt.com>
311
312 * Version 0.4.1
313 * Added some example code
314 * Added the thread safe Connection object in the 'tsafe' submodule
315 * New Debian packaging
316
3172001-08-09 Martin Sjögren <martin@strakt.com>
318
319 * Version 0.4
320 * Added a compare function for X509Name structures.
321 * Moved the submodules to separate .so files, with tiny C APIs so they
322 can communicate
323 * Skeletal OpenSSL/__init__.py
324 * Removed the err submodule, use crypto.Error and SSL.Error instead
325
3262001-08-06 Martin Sjögren <martin@strakt.com>
327
328 * Version 0.3
329 * Added more types for dealing with certificates (X509Store, X509Req,
330 PKey)
331 * Functionality to load private keys, certificates and certificate
332 requests from memory buffers, and store them too
333 * X509 and X509Name objects can now be modified as well, very neat when
334 creating certificates ;)
335 * Added SSL_MODE_AUTO_RETRY to smooth things for blocking sockets
336 * Added a sock_shutdown() method to the Connection type
337 * I don't understand why, but I can't use Py_InitModule() to create
338 submodules in Python 2.0, the interpreter segfaults on the cleanup
339 process when I do. I added a conditional compile on the version
340 number, falling back to my own routine. It would of course be nice to
341 investigate what is happening, but I don't have the time to do so
342 * Do INCREF on the type objects before inserting them in the
343 dictionary, so they will never reach refcount 0 (they are, after all,
344 statically allocated)
345
3462001-07-30 Martin Sjögren <martin@strakt.com>
347
348 * Version 0.2
349 * Lots of tweaking and comments in the code
350 * Now uses distutils instead of the stupid Setup file
351 * Hacked doc/tools/mkhowto, html generation should now work
352
3532001-07-16 Martin Sjögren <martin@strakt.com>
354
355 * Initial release (0.1, don't expect much from this one :-)
356