|
1 =================================================================================================================== |
|
2 ==================================================Release Notes================================================ |
|
3 =================================================================================================================== |
|
4 Symbian OS SSLv3.0/TLSv1.0 Implementation |
|
5 |
|
6 |
|
7 Currently releases: All (Zephyr TLS Release) |
|
8 (Updated by Nicky Mpamugo - 29/11/03) |
|
9 |
|
10 Released components: |
|
11 SSL.DLL (Symbian OS SSLv3.0/TLSv1.0 implementation) |
|
12 SECURESOCKET.DLL (although this will soon be updated to an ECOM Plugin). |
|
13 |
|
14 Notes: |
|
15 1). The SSL.DLL uses 2 DLLs provided by the Security subsystem (TLSPROVIDER.DLL and |
|
16 SWTLSTOKENTYPEPLUGIN (ECOM plugin)). These DLLs provide an interface to the Security |
|
17 subsystem which provides cryptographic functionality for the protocol. |
|
18 2). The pre-Zephyr release of the SSL/TLS component currently resides in the |
|
19 \Networking\TLS\Version1 directory. |
|
20 3). Dialog functionality (and hence the dialog subcomponent) has been removed from TLS. |
|
21 This functionality is now provided by the Security subsytem. |
|
22 4). The Zephyr release of TLS provides Client Authentication (in addition to support for |
|
23 Handshake Re-negotiation). |
|
24 5). The Adaptor subcomponent has been removed from the Zephyr release of TLS. All protocol |
|
25 functionality is now implemented directly by the SSL DLL. |
|
26 |
|
27 |
|
28 |
|
29 =================================================================================================================== |
|
30 Released components: |
|
31 ssl.dll (EPOC SSLv3.0/TLSv1.0 implementation) |
|
32 secdlgsv.dll (ssl dialog server) |
|
33 Note: |
|
34 secdlgsv is a test version, only built until a proper one is released. |
|
35 |
|
36 21/03/2003 |
|
37 |
|
38 Deleted source for regsecprot utility which was used to manage ssl adaptor |
|
39 entries in commdb, as ced should be used to make these changes. |
|
40 |
|
41 |
|
42 07/03/2000 |
|
43 |
|
44 Fixed Lint warnings and errors |
|
45 |
|
46 06/03/2000 |
|
47 Known limitations: |
|
48 |
|
49 Bug in crypto stops us from testing: |
|
50 -RSA signature |
|
51 -RC4 encryption |
|
52 -RC2 encryption |
|
53 -DES encryption |
|
54 Only the following crypto suites have been tested. |
|
55 SSL_RSA_EXPORT_WITH_DES40_CBC_SHA |
|
56 SSL_RSA_WITH_3DES_EDE_CBC_SHA |
|
57 |
|
58 Diffie Hellman not tested yet. |
|
59 |
|
60 |
|
61 =================================================================================================================== |
|
62 ==================================================ER5 Release Notes================================================ |
|
63 =================================================================================================================== |
|
64 EPOC32 SSL Implementation |
|
65 Release notes |
|
66 |
|
67 Currently releases: WINS - DEB, REL, UDEB, UREL |
|
68 MARM - DEB, REL, UDEB, UREL |
|
69 (WARNING!: the unicode is untested) |
|
70 Released components: |
|
71 libeay32.dll (SSLeay crypto algorithms) |
|
72 crypto.dll (EPOC wrapper on libeay32.dll) |
|
73 certman.dll (EPOC certificate management module) |
|
74 secdlgsv.dll (EPOC Security Dialog Server) |
|
75 ssl.dll (EPOC SSLv3.0 implementation) |
|
76 tcpip.prt (Enhanced EPOC TCPIP for SSL) |
|
77 wtlhttps.dll (EPOC Web browser module to support HTTPS). |
|
78 |
|
79 RUNNING IN WINS: |
|
80 ================ |
|
81 1) Install WINS ROM on fresh subst'd drive by running |
|
82 r:\protea\release\install on that drive's root directory. |
|
83 2) Get the WINS message suite (msgsw029.zip) from the |
|
84 MSGSUITE Defects Notes database (in the software releases |
|
85 section). Unzip this into \epoc32\. |
|
86 3) Cannot build the HTTPS module - have to pull that down via |
|
87 an "mnt getrel". |
|
88 4) To build security releaseables, do "mnt getcomps" followed |
|
89 by a "mnt bldall". |
|
90 5) Now you should be able to use the WINS browser securely. |
|
91 To do so, remember that HTTPS URLS must have explicit port 443 |
|
92 put into them. eg. "https://tls.cryptsoft.com:443". The Lloyds |
|
93 online site thus requires the following URL: |
|
94 "https://online.lloydsbank.co.uk:443/Customer.ibc" |
|
95 |
|
96 RUNNING IN MARM: |
|
97 ================ |
|
98 1) On MARM, you need build and then copy the following files |
|
99 from \epoc32\release\marm\rel to \system\libs: |
|
100 estlib.dll, libeay32.dll, cryptalg.dll, certman.dll, ssl.dll, |
|
101 secdlgsv.dll, tcpip.prt, wtlhttps.dll |
|
102 2) The wtlhttps.dll for MARM is obtained by doing a "mnt getrel". |
|
103 |
|
104 The EPOC Security Team |
|
105 ====================== |
|
106 Overall responsibility for design/releases - Mal Minhas (MM) |
|
107 SSL enhancements/bug fixes and test code - Artem Simonian (AS) |
|
108 Certificate Storage and management work - Will Bamberg (WB) |
|
109 Crypto test code and certman work - Neil Hopcroft (NH) |
|
110 |
|
111 KNOWN PROBLEMS/OMISSIONS IN THIS RELEASE: |
|
112 ========================================= |
|
113 1) Certificate management and storage design and implementation. (WB) |
|
114 2) Need to check out UNICODE security and rombuilding. (MM) |
|
115 3) SSL socket closure via the SetOpt after opening. (AS) |
|
116 4) bug in dialog server when it is called twice panics |
|
117 on the line 203 of ..sv.cpp file |
|
118 5) problemms with unicode build (possibly in the dialog server) |
|
119 6) the actual ssl connection is not complete on the socket connect, |
|
120 but before the first read or write to the socket. |
|
121 (the relevent code is in tcpip) |
|
122 7) our stdlib replacement has a couple of issues with file accesses. |
|
123 |
|
124 Also dont forget: |
|
125 ################# |
|
126 5) Bogus libeay32 random number generation in libeay32 rand |
|
127 directory. Also constrained to 32-bit quantities at present. (Base) |
|
128 |
|
129 KNOWN PROBLEMS with server sites |
|
130 1) when connecting to www.conductor.com with 0x0A cipher suite the server |
|
131 sends improper MAC and finished message. The problem is server side |
|
132 (no problems with lloyds site with the same 0x0A suite) (25.09.98) |
|
133 |
|
134 Testing Software |
|
135 ================= |
|
136 In tsrc loopback test allows us to see what happens when exchanged |
|
137 messages are modified. The "test.txt" scrypt file allow to do these |
|
138 modifications. Massages are exchanged between two |
|
139 ssl providers. One emulates the server and another works as the client. |
|
140 |
|
141 Version 1.00(519) |
|
142 ================= |
|
143 (By Neil Hopcroft - 8-10-99) |
|
144 Candidate-2 release for ER5 SWeb supplimentary project. |
|
145 - updated test code and included test data for year 2000 testing |
|
146 |
|
147 Version 1.00(518) |
|
148 ================= |
|
149 (By Neil Hopcroft - 1-10-99) |
|
150 Candidate-1 release for ER5 SWeb supplimentary project. |
|
151 - updated libeay32 date handling code to y2k code reviewed version. |
|
152 - removed potential access violation in big number library. |
|
153 - improved sslweb and sslcer test code. |
|
154 - rationalised released headers. |
|
155 |
|
156 Version 1.00(517) |
|
157 ================= |
|
158 (By Neil Hopcroft - 23-9-99) |
|
159 Beta-7 release for ER5 SWeb supplimentary project. |
|
160 - Fixed kludge in signature verification function to deal with explicit |
|
161 error return values (0/-1) and not just negative pointers, the assumption |
|
162 that all pointers would be in the first half of the memory address space |
|
163 was an incorrect assumption when running within the socket server thread |
|
164 as that uses fixed system address space in the top half of memory when |
|
165 running on MARM. This caused the test results to appear correct but when |
|
166 the module was actually installed in the web browser no certificates |
|
167 verified. |
|
168 - Fixed bug in state transition table which was masking the extent of |
|
169 the above bug by ignoring the certificate validation result under certain |
|
170 circumstances. |
|
171 - Properly clean up new heap used in libeay. |
|
172 |
|
173 Version 1.00(516) |
|
174 ================= |
|
175 (By Neil Hopcroft - 17-9-99) |
|
176 Beta-6 release for ER5 SWeb supplimentary project. |
|
177 - CSSLFactory will now limit the number of open secure sockets to six |
|
178 to reduce the likelihood of hitting problematic out-of-memory situations |
|
179 where the socket server heap fills with secure socket information. We |
|
180 cannot replace the socket server in ROM due (I believe) to its constantly |
|
181 loaded state so we have to live within the heap limits the released |
|
182 version defines. |
|
183 - SSLweb tests improved |
|
184 |
|
185 Version 1.00(515) |
|
186 ================= |
|
187 (By Neil Hopcroft - 14-9-99) |
|
188 Beta-5 release for ER5 SWeb supplimentary project. |
|
189 - Together with updated TCPIP fixes problems with reference counting |
|
190 on the CSSLFactory object which were causing panics when there was |
|
191 still sockets open and active when one socket was closed. |
|
192 - A new local heap has been introduced in the libeay library, this |
|
193 has eased some of the socket server memory problems which were causing |
|
194 many things to not work. This has thrown out some of the out of memory |
|
195 test code, which I shall attempt to rejig for the next release. |
|
196 - SSLWeb test changed around to be multithreaded to test multiple open |
|
197 secure sockets. The socket server appears to run out of memory at |
|
198 around 16 secure sockets open, at which point all currently open |
|
199 sockets experience failures. |
|
200 - Fixed niggly bug where names weren't coming out right if the |
|
201 requested part wasn't present, previous simple minded fix wasn't a fix. |
|
202 |
|
203 Version 1.00(514) |
|
204 ================= |
|
205 (By Neil Hopcroft - 7-9-99) |
|
206 Beta-4 release for ER5 SWeb supplimentary project. |
|
207 - Fixes problem with orphaned file server connections in our baby |
|
208 stdlib. |
|
209 - A few other oddities and access violations fixed. |
|
210 - Test code nearly set to perform coverage testing. |
|
211 |
|
212 Version 1.00(513) |
|
213 ================= |
|
214 (By Neil Hopcroft - 2-9-99) |
|
215 Beta-3 release for ER5 supplimentary project. |
|
216 - This release fixes most of the worst out-of-memory problems of the |
|
217 previous release, there are still a couple of issues that need to be |
|
218 addressed (the most severe being the implementation of fopen() in our |
|
219 baby stdlib orphans connections to the file server). |
|
220 - Small fix on the returning of names from the Cert->GetInfo() and |
|
221 CertIndex->CertList() functions, now clears descriptor if returned |
|
222 length is zero. |
|
223 |
|
224 Version 1.00(512) |
|
225 ================= |
|
226 (By Neil Hopcroft - 24-8-99) |
|
227 Beta-2 release for ER5 supplimentary project. |
|
228 - Done most of the OOM testing on Cryptalg and Certman dlls. The fixes for |
|
229 some of the problems discovered has lead to some 'evil hackery' going on |
|
230 in the Libeay32 dll. I have added -1 as a valid return value from a number |
|
231 of 'constructor' functions to allow differentiation between an end of list |
|
232 and memory allocation failure, this has lead to a massive number of |
|
233 warnings being reported by both the MARM and WINS compilers but everything |
|
234 is actually fairly consistent and everything that might actually be used |
|
235 that can return a -1 will have it checked before it has the opportunity |
|
236 to do any damage. |
|
237 - SSL module has had no OOM testing yet, waiting for stability in Certman |
|
238 and Cryptalg before starting. |
|
239 - This release also fixes some oddities on the information returned by |
|
240 the Cert::GetInfo() call, mainly in the validity times. |
|
241 - Also it should now disconnect when the user says dont connect in response |
|
242 to an untrusted certificate. |
|
243 |
|
244 Version 1.00(511) |
|
245 ================= |
|
246 (By Neil Hopcroft - 3-8-99) |
|
247 Beta-1 release for ER5 supplimentary project |
|
248 - Put in some out of memory testing and handling, theres still some work to do. |
|
249 |
|
250 Version 1.00(510) |
|
251 ================= |
|
252 (By Neil Hopcroft - 27-7-99) |
|
253 Alpha 2 release for ER5 supplimentary project |
|
254 - fixed problems seen with many disconnects and timeouts, caused by defaulting to use TLSv1 not SSLv3. |
|
255 - fixed memory leak in cryptalg/certman factory destruction, cryptalg factory was freeing up libeay memory when it hadn't allocated it, but when certman came to free it up later it had already been done. |
|
256 - added secdlgcl.h and cryptalg.h to incc |
|
257 - MNT BLDTEST now builds T_SSLPRT and T_RANDOM |
|
258 - updated versions of dependancies. |
|
259 - fixed problem with non-anonymous ephemeral Diffie-Hellman protocol negotiation, navigation through the action table for construction of block was flawed, although I suspect this won't have caused much more than the test code to fail. |
|
260 - made dialog server .def files their own releasable, and added to putrel and delrel. |
|
261 |
|
262 Version 1.00(509) |
|
263 ================= |
|
264 (By Neil Hopcroft - 16-7-99) |
|
265 Alpha release for ER5 supplimentary project. |
|
266 - fixed empty certificate passed to dialog box |
|
267 - build against .DEF files |
|
268 - most compile time warnings (theres still a few - non-return function returning and a couple of longjmp will clobber... warnings and the browse info isn't building properly for T_SSLWEB.EXE) |
|
269 - moved directory for trusted certificates to c:\system\data |
|
270 - removed ssldata.h, everything that was in it is now in ssl.h |
|
271 - added CCertIndex::CertList() to return an array of certificate information |
|
272 - tidied up test code a bit |
|
273 |
|
274 Version 1.00(506) |
|
275 ================ |
|
276 random number generator related stuff is in libeay.dll |
|
277 search in files with #ifdef NEILRANDOM |
|
278 (tsl.h, md_rand.c) |
|
279 |
|
280 Version 1.00(505) |
|
281 ================ |
|
282 |
|
283 Version 1.00(504) |
|
284 ================ |
|
285 Marm build testcode fix |
|
286 |
|
287 Version 1.00(503) |
|
288 ================ |
|
289 Added certificate parsing code (based on ssleay and wrapped under certman.dll) |
|
290 t_sslweb test connects to few https sites now. |
|
291 Added md2 message digest to libeay. |
|
292 |
|
293 Version 1.00(502) |
|
294 ================ |
|
295 10 November 1998 |
|
296 Getopt certificat return now TCertInfo object. New testcode t_sslweb which |
|
297 connects to https enabled web site. Mnt.cmd file bug fixes. |
|
298 |
|
299 Version 1.00(501) |
|
300 ================ |
|
301 3 November 1998 |
|
302 Adding Unicode Uids.Upgrading components. |
|
303 |
|
304 Version 1.00(500) == first official release |
|
305 ================ |
|
306 adding buildtest verb in the mnt.cmd file |
|
307 |
|
308 Version 1.00(018) |
|
309 :-(:-(:-(:-(:-(:-( |
|
310 upgrading to vc5,remouving "ssl own tcpip" dependancies. |
|
311 |
|
312 Version 1.00(017) |
|
313 :-):-):-):-):-):-) |
|
314 14/10/98 |
|
315 Released by Artem |
|
316 still changing tcpip subproject : added a little state machine to handle |
|
317 better SetOpts and GetOpts, complience with the new tcpip 504 with commdb. |
|
318 Ssl now can renegociate crypto parameters when user does Setopt cipherSuite. |
|
319 Added new testcode. Changed mnt.cmd file to get new components. |
|
320 |
|
321 Version 1.00(016) |
|
322 ================= |
|
323 02/10/98 |
|
324 Released by MalM |
|
325 Removed unnecessary dependency on SSL from TCPIP which makes SSL.DLL |
|
326 a DLL with a single exported gate function that creates a factory. |
|
327 Changes to TCPIP to handle this. Removed dependency on EFSRV in SSL |
|
328 too. First attempt at building unicode security. Changes to mnt.cmd |
|
329 to handle unicode building. |
|
330 |
|
331 Version 1.00(015) |
|
332 -.-.-.-.-.-.-.-.- |
|
333 Released by Artem |
|
334 Added Rom directory (MM). Removed estlib.lib dependency for linking with |
|
335 libeay32. Various bug fixes. All components now compile for unicode (AS). |
|
336 |
|
337 Version 1.00(014) |
|
338 ++++++++++++++++ |
|
339 Released by Artem |
|
340 Also some fixes to mnt.cmd file (MM). Fixed bug in libeay when going twice on |
|
341 a secure web page and unloading SSL between these two actions. In tcpip added |
|
342 opening ssl provider when doing setopt with cahging cipher suites. Some SSL |
|
343 state machine enhancements.(AS) |
|
344 |
|
345 Version 1.00(013) |
|
346 ================= |
|
347 22/09/98 |
|
348 Released by MalM |
|
349 Various fixes to mnt.cmd file. Checked that "mnt getcomps" and |
|
350 "mnt bldall" work. Implemented an "mnt valid". Added design and |
|
351 API docs to the \security\docs directory. Added the t_crypt test |
|
352 code to the release. |
|
353 |
|
354 Version 1.00(012) |
|
355 ================= |
|
356 22/09/98 |
|
357 Released by Artem |
|
358 Migrated session variables from thread local storage to a separate |
|
359 CSSLSessionStore class which is created for each separate instance of |
|
360 the tuple <appId,IP address>. Also added changes to TCPIP code for |
|
361 test software to work in SSL server mode (listening). |
|
362 |
|
363 Version 1.00(011) |
|
364 ================= |
|
365 10/09/98 |
|
366 Released by Artem |
|
367 to make work the loopback test one needs to put all the .txt files |
|
368 found in tsrc directory in /epoc32/wins/c |
|
369 (these tests are avalable only for wins) |
|
370 |
|
371 Version 1.00(010) |
|
372 ================= |
|
373 25/08/98 |
|
374 Released by MalM |
|
375 SSL/CERTMAN/CRYPTALG and LIBEAY32 code checked for memory leaks. Tls |
|
376 in libeay32.dll now freeing properly and WINS web browser using https |
|
377 working within UHEAP_MARK/UHEAP_MARKEND on esock thread. Can now |
|
378 load/unload SSL-enabled browser in WINS :-). Full UID2 checking |
|
379 added to crypto,cert,ssl dlls. |
|
380 |
|
381 Version 1.00(009) |
|
382 ================= |
|
383 14/08/98 |
|
384 Released by MalM |
|
385 SSL state machine fully implemented by Artem. Active object added to |
|
386 handle requests to dialog server to prevent esock thread hanging. |
|
387 Added heap checking code to dialog server thread and ensured it is |
|
388 freeing all alloc'd cells. Enhanced certman module to handle |
|
389 certificate DN parsing etc. |
|
390 |
|
391 Version 1.00(008) |
|
392 ================= |
|
393 17/07/98 |
|
394 Released by MalM |
|
395 Handshake message parser process HS messages cut in several records |
|
396 by the record protocol layer. Alert code added. |
|
397 No longer mbuf to TPtr8 byte by byte copying. |
|
398 RSA signature verification for key exchange. |
|
399 Ephemeral DH key exchange. |
|
400 |
|
401 Version 1.00(007) |
|
402 ================= |
|
403 05/06/98 |
|
404 Released by MalM |
|
405 Added a rudimentary SSL dialog server (in \security\dialog). |
|
406 Enhanced certificate management API to support this |
|
407 From ArtemS: Added support for the following SSL cipher suites: |
|
408 RSA_RC2_MD5, RSA_RC4_128_MD5, RSA_RC4_128_SHA, RSA_DES_CBC_40_SHA, |
|
409 RSA_DES_CBC_SHA, RSA_DES_EDE3_CBC_SHA. Improved stream cipher |
|
410 MAC checking. |
|
411 |
|
412 Version 1.00(006) |
|
413 ================= |
|
414 08/05/98 |
|
415 Released by MalM |
|
416 Fixed ServerKeyExchange - can now connect to tls.cryptsoft.com :-) |
|
417 which is great because this site contains an experimental TLS server. |
|
418 Now implementing all the factory code within SSL.DLL and not through |
|
419 CNifFactory. Fixed problems with loading https without doing http |
|
420 first. Added TSRC test code directory specific to EPOC32 SSL - |
|
421 t_sock contains basic factory test code. |
|
422 |
|
423 Version 1.00(005) |
|
424 ================= |
|
425 29/04/98 |
|
426 Released by MalM |
|
427 WINS DEB and MARM builds now in place. Added a load of exports to |
|
428 libeay32 code to handle MARM build. Set 32 bit rand generator. |
|
429 Added code to SSL to handle ServerKeyExch. Sorted out TLS - no more |
|
430 static globals in libeay32. Checked stack usage after which a couple |
|
431 of stack structs (>2k!) were moved into heap. |
|
432 e32 126 stdlib 014 esock 070 |
|
433 |
|
434 Version 1.00(004) |
|
435 ================ |
|
436 22/4/96 |
|
437 Released by MalM |
|
438 FIRST INTERIM RELEASE of EPOC32 SSL implementation. |
|
439 WINS build only and with no UI components. Works with the web |
|
440 browser release 1.01(108). The release consists of these modules: |
|
441 * LIBEAY32.DLL - EPOC32 DLL containing SSLeay crypto/cert code |
|
442 * CRYPTALG.DLL - EPOC32 wrapper over libeay32 crypto functions |
|
443 * CERTMAN.DLL - EPOC32 wrapper over libeay32 certificate functions |
|
444 * SSL.DLL - EPOC32 implementation of SSLv3.0 protocol |
|
445 * TCPIP.DLL - Extended to handle the loading of SSL.DLL etc |
|
446 * WTLHTTPS.DLL - Allows web browser to parse "https://" Urls |
|
447 Release allows for all the above except Wtlhttps.dll to be built |
|
448 using the following components: |
|
449 e32 126 stdlib 014 tcpip 064 |
|
450 |