networksecurity/tls/group/RELEASE.TXT
changeset 0 af10295192d8
equal deleted inserted replaced
-1:000000000000 0:af10295192d8
       
     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