2006-04-21 Sebastien Pouliot <sebastien@ximian.com>
[mono.git] / mcs / class / Mono.Security / Mono.Security.Protocol.Tls / ChangeLog
1 2006-04-21  Sebastien Pouliot  <sebastien@ximian.com>
2
3         * SslCipherSuite.cs: Enable abbreviated handshakes for SSL3 too.
4
5 2006-04-12  Sebastien Pouliot  <sebastien@ximian.com>
6
7         * ClientSessionCache.cs: Deal with empty (null) master secret, that 
8         can find their ways into the cache, and treat them as invalid. Fix
9         bug #78085.
10
11 2006-04-10  Sebastien Pouliot  <sebastien@ximian.com>
12
13         * ClientSessionCache.cs: The session id can be zero-length (like our 
14         own server class).
15         * SslServerStream.cs: Adapt code to fixes made in cipher suite and
16         message processing changes in client code.
17
18 2006-03-16  Sebastien Pouliot  <sebastien@ximian.com>
19  
20         * CipherSuiteFactory.cs: Fix bad key exchange values for non-export
21         cihpers. Most certificates have "too much" usages by default so this
22         was hidden from view.
23         * SslStreamBase.cs: Safety net. Throw an exception if we're waiting 
24         for more than five (5) minutes for an async read or write to complete.
25
26 2006-03-16  Sebastien Pouliot  <sebastien@ximian.com>
27
28         * ClientSessionCache.cs: New. Handle a client-side session cache to 
29         enable the use of abbreviated handshake whenever possible. This will
30         reduce the number of negotiation (a very CPU intensive process) done
31         with the same host.
32         * Context.cs: Add a property for AbbreviatedHandshake.
33         * RecordProtocol.cs: Don't send Finished record from ChangeCipherSpec
34         as this won't work if the message flow change.
35         * SslClientStream.cs: Line endings.
36         * SslServerStream.cs: Throw an exception if ReceiveRecord return null
37         or an empty buffer (i.e. communication ended with client). Fix #76254.
38         * SslStreamBase.cs: Re-add synchronous implementations for Read and 
39         Write.
40         * TlsCipherSuite.cs: Update the client-side session cache with the 
41         mastersecret.
42         * TlsStream.cs: Avoid possible buffer underun reading bytes (found by
43         Gonzalo).
44
45 2006-03-08  Sebastien Pouliot  <sebastien@ximian.com>
46   
47        * SslStreamBase.cs: Re-implemented the synchronous versions of Read
48        and Write methods so they don't use the async code.
49
50 2006-03-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
51
52         * SslStreamBase.cs: avoid creating the ManualResetEvent whenever
53         possible. Don't lock on an instance of an object that the user can get.
54
55 2006-03-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
56
57         * RecordProtocol.cs: avoid creating the ManualResetEvent whenever
58         possible. Don't lock on an instance of an object that the user can get.
59
60 2006-03-02  Sebastien Pouliot  <sebastien@ximian.com>
61
62         * RecordProtocol.cs: Fix possible endless loop (#77663). Remove hack
63         for an old, fixed, MCS bug (#67711).
64
65 2005-10-06  Sebastien Pouliot  <sebastien@ximian.com>
66
67         * ClientRecordProtocol.cs: Update HandshakeMessages after each 
68         message. Fix bug #76258.
69         * RecordProtocol.cs: Remove writing into the HandshakeMessages stream
70         at this stage. We may need the data before that. Fix bug #76258.
71         * ServerRecordProtocol.cs: Update HandshakeMessages after each 
72         message. Fix bug #76258.
73         * SslServerStream.cs: Changed check for the presence of client 
74         certificates during handshake.
75
76 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
77
78         * SslStreamBase.cs, ServerRecordProtocol.cs, SslClientStream.cs,
79         ClientRecordProtocol.cs, RecordProtocol.cs, SslServerStream.cs:
80         Re-written async support for Ssl[Client|Server]Stream from JD Conley
81         <jd.conley@coversant.net> with minor changes. Fix bug #75687 (and a 
82         lot of other known problems).
83
84 2005-07-01  Sebastien Pouliot  <sebastien@ximian.com>
85
86         * ServerContext.cs: Build the list of trusted certificates from all
87         the trusted root for the current user and the local machine.
88         * SslServerStream.cs: Add support for client certificate (and the 
89         callback for optional mutual authentication with SSL3).
90
91 2005-06-22  Sebastien Pouliot  <sebastien@ximian.com>
92
93         * SslClientStream.cs: Removed failsafe timeout of 5 minutes as some
94         protocols can go idle for longer than this.
95
96 2005-06-14  Sebastien Pouliot  <sebastien@ximian.com>
97
98         * SslClientStream.cs: Add support for _optional_ mutual authentication.
99         SSL3 and TLS1 deals differently with this. SSL3 tested with OpenSSL,
100         TSL1 tested with OpenSSL and LDAPS/AD.
101
102 2005-06-06  Sebastien Pouliot  <sebastien@ximian.com>
103
104         * Alert.cs: Add NoCertificate (41) which _should_ be used in SSL3
105         if we don't want to send a certificate when requested by a server
106         (e.g. in the case the mutual authentication is optional).
107         * CipherSuite.cs: Fixed recursive property. Changed type to short so
108         it can hold 256 bits (valid value). Fixed ctor so it doesn't assign
109         the it's own value.
110
111 2005-05-13  Sebastien Pouliot  <sebastien@ximian.com>
112
113         * SslClientStream.cs: Forgot to set the event in the previous fix.
114
115 2005-05-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
116
117         * SslClientStream.cs: check for the dispose in NetworkReadCallback.
118         Patch by Sebastien "Cryptoman" Pouliot.
119
120 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
121
122         * SslClientStream.cs: gotta call EndInvoke, not EndRead.
123
124 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
125
126         * SslClientStream.cs: MemoryStream does not implement proper Begin*
127         methods, so we need this to prevent infinite recursion if we have a
128         callback that calls BeginRead.
129
130 2005-04-13  Sebastien Pouliot  <sebastien@ximian.com>
131
132         * RecordProtocol.cs: Some API changes so a record can be decoded from
133         any supplied stream (not just the inner network stream).
134         * SslClientStream.cs: BeginRead is now truly async if the Negotiate is
135         called from BeginWrite (where it should be in most case).
136         * SslServerStream.cs: Adapted to API changes in RecordProtocol.cs.
137
138 2005-04-12  Sebastien Pouliot  <sebastien@ximian.com>
139
140         * SslHandshakeHash.cs: Changed "SslHash" to "MD5SHA1". Fix #71696.
141
142 2005-04-10  Sebastien Pouliot  <sebastien@ximian.com>
143
144         * HttpsClientStream.cs: Added a TrustFailure property so a 
145         WebException can now report TrustFailure correctly. Fix bug 74286.
146
147 2005-04-07  Sebastien Pouliot  <sebastien@ximian.com>
148
149         * SslCipherSuite.cs: Fix calculation (sequence number) for the server
150         side stream. Patch by Brian Ritchie.
151
152 2005-02-04  Sebastien Pouliot  <sebastien@ximian.com>
153
154         * Reverting last changes in SslClientStream and RecordProtocol. This
155         break when sending large files back and forth (echo test).
156
157 2005-02-02  Sebastien Pouliot  <sebastien@ximian.com>
158
159         * SslClientStream.cs: Throw exception when we receive a null record.
160         * RecordProtocol.cs: Added code to avoid blocking and endless loops
161         if the data is incomplete or missing - even in the case the server
162         side doesn't close the connection (see new cutcli tool).
163
164 2004-12-15  Sebastien Pouliot  <sebastien@ximian.com>
165
166         * CipherSuite.cs: Removed unused MD5 and SHA1 instances created in 
167         PRF method (fix compilation warnings).
168
169 2004-12-13  Sebastien Pouliot  <sebastien@ximian.com>
170
171         * SslClientStream.cs: New internal property, ServerCertificates, to
172         "easily" retreive the server's certificate chain using reflection.
173
174 2004-11-23  Sebastien Pouliot  <sebastien@ximian.com>
175
176         * RecordProtocol.cs: Fixed ClientHelloV2 support.
177
178 2004-11-10  Sebastien Pouliot  <sebastien@ximian.com>
179
180         * CipherSuiteFactory.cs: Activated RSA_WITH_AES_256_CBC_SHA as it is
181         supported by some browsers.
182         * ContentType.cs: Removed ClientHelloV2 from the enum as it is not a
183         "true" content type (it just looks so where we're processing it).
184         * Context.cs: Added support to switch protocol (e.g. SSL2->SSL3 or 
185         SSL2->TLS1). Contributed by Carlos Guzman Alvarez.
186         * RecordProtocol.cs: Added support for ClientHelloV2 message 
187         (contributed by Carlos Guzman Alvarez). This is a Handshake message
188         so it must be MACed. Also fixed the challenge length because some
189         browsers implementation don't interpret "This value must be 32." as
190         having 32 bytes.
191
192 2004-10-05  Sebastien Pouliot  <sebastien@ximian.com>
193
194         * SslClientStream.cs: Changed InputBuffer to internal (was protected).
195
196 2004-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
197
198         * HttpsClientStream.cs: the .ctor receives a pre-read buffer now.
199         * SslClientStream.cs: added InputBuffer property.
200
201 2004-09-23  Sebastien Pouliot  <sebastien@ximian.com>
202
203         * RecordProtocol.cs: Fix alert data that could leak into appplication 
204         data (e.g. when closing the SSL session).
205
206 2004-07-14  Carlos Guzman Alvarez  <carlosga@telefonica.net>\r
207 \r
208         * Removed duplicate license header file from\r
209         all source files.\r
210 \r
211 2004-07-14  Sebastien Pouliot  <sebastien@ximian.com>\r
212 \r
213         * SslClientStream.cs: Changed lock to "new object()" and not \r
214         String.Empty (as the read/write locks points becomes the same).\r
215         * SslServerStream.cs: Changed lock to "new object()" and not \r
216         String.Empty (as the read/write locks points becomes the same).\r
217 \r
218 2004-07-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>\r
219 \r
220         * HttpsClientStream.cs: get an HttpWebRequest so that we can use the\r
221         ServicePoint it has. No need to get the host now.\r
222 \r
223 2004-05-09 Carlos Guzman Alvarez  <carlosga@telefonica.net>\r
224 \r
225         * Mono.Security.Protocol.Tls/Alert.cs:\r
226         * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
227         * Mono.Security.Protocol.Tls/CipherSuiteCollection.cs:\r
228         * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:\r
229         * Mono.Security.Protocol.Tls/Context.cs:\r
230         * Mono.Security.Protocol.Tls/RecordProtocol.cs:\r
231         * Mono.Security.Protocol.Tls/SecurityCompressionType.cs:\r
232         * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:\r
233         * Mono.Security.Protocol.Tls/SslServerStream.cs:\r
234         * Mono.Security.Protocol.Tls/TlsClientSettings.cs:\r
235 \r
236                 - Changes for fix FxCop Rules.\r
237 \r
238                 - Reworked CipherSuiteCollection class.\r
239 \r
240 \r
241 2004-04-21 Carlos Guzman Alvarez  <carlosga@telefonica.net>\r
242 \r
243         * Mono.Security.Protocol.Tls/DebugHelper.cs:\r
244 \r
245                 - New class.\r
246 \r
247         * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:\r
248         * Mono.Security.Protocol.Tls/RecordProtocol.cs:\r
249         * Mono.Security.Protocol.Tls/Context.cs:\r
250         * Mono.Security.Protocol.Tls/Context.cs:\r
251         * Mono.Security.Protocol.Tls/SslCipherSuite.cs:\r
252         * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:\r
253         * Mono.Security.Protocol.Tls/SslClientStream.cs:\r
254 \r
255                 - Added debug capabilities.\r
256 \r
257         * Mono.Security.Protocol.Tls/ServerContext.cs:\r
258 \r
259                 - Added initialization of requested CertificateTypes and CA's\r
260 \r
261 2004-04-16 Carlos Guzman Alvarez  <carlosga@telefonica.net>\r
262 \r
263         * Mono.Security.Protocol.Tls/TlsException.cs:\r
264 \r
265                 - Make it public until npgsql people can fix their sources.\r
266 \r
267 2004-03-19 Carlos Guzman Alvarez  <carlosga@telefonica.net>\r
268 \r
269         * Mono.Security.Protocol.Tls/TlsServerSettings.cs:\r
270 \r
271                 - Added new CertificateRSA property.\r
272 \r
273                 - Added new UpdateCertfificateRSA method.\r
274 \r
275         * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
276 \r
277                 - Removed CertificateRSA() method.      \r
278 \r
279 2004-03-19  Sebastien Pouliot  <sebastien@ximian.com>\r
280 \r
281         * CipherSuite.cs: Fixed PRF generation when secret is an odd number of \r
282         bytes (section 5 in RFC2246).\r
283         * CipherSuiteFactory.cs: Added algorithms RSA_EXPORT_WITH_RC4_40_MD5,\r
284         RSA_EXPORT_WITH_RC2_CBC_40_MD5, RSA_EXPORT_WITH_DES40_CBC_SHA,\r
285         RSA_EXPORT_WITH_RC4_56_MD5, RSA_EXPORT_WITH_RC2_CBC_56_MD5,\r
286         RSA_EXPORT_WITH_DES_CBC_56_SHA and RSA_EXPORT_WITH_RC4_56_SHA to both\r
287         SSL3 and TLS1 protocols.\r
288         * SslCipherSuite.cs: Fixed key generation for exportable ciphers.\r
289         * TlsCipherSuite.cs: Fixed key generation for exportable ciphers.\r
290 \r
291 2004-03-16 Carlos Guzman Alvarez  <carlosga@telefonica.net>\r
292 \r
293         * Mono.Security.Protocol.Tls/SslCipherSuite.cs:\r
294 \r
295                 - Added changes for allow it to work as server or client.\r
296 \r
297 2004-03-15 Carlos Guzman Alvarez  <carlosga@telefonica.net>\r
298 \r
299         * Mono.Security.Protocol.Tls/TlsStream.cs:\r
300         * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
301         * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:\r
302         * Mono.Security.Protocol.Tls/SslHandshakeHash.cs:\r
303         * Mono.Security.Protocol.Tls/RecordProtocol.cs:\r
304 \r
305                 - Use Buffer.BlockCopy instead of System.Array.Copy\r
306 \r
307 2004-03-10 Carlos Guzman Alvarez  <carlosga@telefonica.net>\r
308 \r
309         * Mono.Security.Protocol.Tls/Ciphersuite.cs:\r
310 \r
311                 - Added generation of the Server encryption algorithms.\r
312 \r
313                 - Modified encryption/decription methods for work\r
314                 as client or server as needed.\r
315 \r
316         * Mono.Security.Protocol.Tls/RecordProtocol.cs:\r
317         * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:\r
318         * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:\r
319 \r
320                 - Added new ProcessChangeCipherSpec method.\r
321 \r
322         * Mono.Security.Protocol.Tls/Context.cs:\r
323 \r
324                 - Added new PrintBuffer method ( for debug ).\r
325 \r
326         * Mono.Security.Protocol.Tls/SslClientStream.cs:\r
327         * Mono.Security.Protocol.Tls/SslServerStream.cs:\r
328 \r
329                 - Callback cleanup.\r
330 \r
331 2004-03-06 Carlos Guzman Alvarez  <carlosga@telefonica.net>\r
332 \r
333         * Mono.Security.Protocol.Tls/SslServerStream.cs:\r
334 \r
335                 - Initial implementation of the doHandshake method.\r
336 \r
337         - Added initial events implementation.\r
338 \r
339         * Mono.Security.Protocol.Tls/Ciphersuite.cs:\r
340         * Mono.Security.Protocol.Tls/TlsCiphersuite.cs:\r
341         * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:\r
342         * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:\r
343         * Mono.Security.Protocol.Tls/SslClientStream.cs:\r
344         * Mono.Security.Protocol.Tls/TlsServerSettings.cs:\r
345         * Mono.Security.Protocol.Tls/TlsClientSettings.cs:\r
346         * Mono.Security.Protocol.Tls/ClientContext.cs:\r
347 \r
348                 - Changes for make use of the renamed classes and enums.\r
349 \r
350         * Mono.Security.Protocol.Tls/TlsContentType.cs:\r
351 \r
352                 - Renamed to ContentType.cs ( Enum and file )\r
353  \r
354         * Mono.Security.Protocol.Tls/TlsCiphersuiteCollection.cs:\r
355 \r
356                 - Renamed to CiphersuiteCollection.cs ( Class and file )\r
357 \r
358         * Mono.Security.Protocol.Tls/TlsCiphersuiteFactory.cs:\r
359 \r
360                 - Renamed to CiphersuiteCollection.cs ( Class and file )\r
361 \r
362         * Mono.Security.Protocol.Tls/TlsSslHandshakeHash.cs:\r
363 \r
364                 - Renamed to SslHandshakeHash.cs ( Class and file )\r
365 \r
366         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:\r
367 \r
368                 - Renamed to SslCipherSuite.cs ( Class and file )\r
369 \r
370 2004-02-26 Carlos Guzman Alvarez  <carlosga@telefonica.net>\r
371 \r
372         * Mono.Security.Protocol.Tls/HandshakeState.cs:\r
373 \r
374                 - New file.\r
375 \r
376         * Mono.Security.Protocol.Tls/SslClientStream.cs:\r
377         * Mono.Security.Protocol.Tls/SslServerStream.cs:\r
378         * Mono.Security.Protocol.Tls/Context.cs:\r
379         * Mono.Security.Protocol.Tls/ClientContext.cs:\r
380         * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:\r
381 \r
382                 - Added changes for better handling of ClientHelloRequest messages.\r
383 \r
384 2004-02-25  Sebastien Pouliot  <sebastien@ximian.com>\r
385 \r
386         * HttpsClientStream.cs: New. Internal glue class between System.dll \r
387         WebConnection and SslClientStream to reduce reflection.\r
388         * SslClientStream.cs: RaiseServerCertificateValidation is now virtual\r
389         to allow HttpsClientStream to override it.\r
390 \r
391 2004-02-24 Carlos Guzman Alvarez  <carlosga@telefonica.net>\r
392 \r
393         * Mono.Security.Protocol.Tls/RecordProtocol.cs:\r
394         * Mono.Security.Protocol.Tls/SslClientStream.cs:\r
395         * Mono.Security.Protocol.Tls/SslServerStream.cs:\r
396 \r
397                 - Reimplementation of TLS/SSL Alert Protocol.\r
398 \r
399 2004-02-20 Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
400 \r
401         * Mono.Security.Protocol.Tls.Handshake.Client/SslClientCertificate.cs:\r
402 \r
403         - Improved exception handling.\r
404 \r
405 2004-02-18 Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
406 \r
407         * Mono.Security.Protocol.Tls/CipherAlgorithmType.cs:\r
408         * Mono.Security.Protocol.Tls/HashAlgorithmType.cs:\r
409         * Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs:\r
410 \r
411                 - Added Serializable attribute.\r
412 \r
413         * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
414         * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:\r
415         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:\r
416         * Mono.Security.Protocol.Tls/TlsContext.cs:\r
417 \r
418                 - Added some optimizations proposed by Sebastien Pouliot.\r
419 \r
420         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:\r
421 \r
422                 - Changes on Common Name detection and certificate error handling ( Thanks to Sebastien Pouliot for his feedback ).\r
423 \r
424 2004-02-18  Sebastien Pouliot  <sebastien@ximian.com>\r
425 \r
426         * SslClientStream.cs: Fixed (inverted) condition for ServerCertificate.\r
427         * SecurityProtocolType.cs: Added [Serializable] to enum to match MS \r
428         implementation.\r
429 \r
430 2004-02-17 Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
431 \r
432         * Mono.Security.Protocol.Tls/SslClientStream.cs:\r
433 \r
434                 - Added changes to security properties for check that the handshake is finished.\r
435 \r
436         * Mono.Security.Protocol.Tls/SslClientStream.cs:\r
437 \r
438         - Added changes for bring async methods to work ( Thanks to Sebastien Pouliot )\r
439 \r
440         - Reworked the record fragmentation.\r
441 \r
442         - Fix for send the close notify alert in the Close method\r
443         only if the Handshake is fully negotiated.\r
444 \r
445 \r
446 2004-02-16 Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
447 \r
448         * Mono.Security.Protocol.Tls/TlsCipherSuiteFactory.cs:\r
449 \r
450         - Changed ciphersuites order of preference ( Thanks to Sebastien Pouliot for his feedback ).\r
451 \r
452 2004-02-15 Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
453  \r
454         * Mono.Security.Protocol.Tls/SslClientStream.cs:\r
455  \r
456                 - Added specific control od available data for Network Streams\r
457                 on Read ( Thanks to Francisco Figueiredo Jr. for his feedback ).\r
458  \r
459                 - Removed test code.\r
460 \r
461 2004-02-14 Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
462 \r
463     * Mono.Security.Protocol.Tls/SslClientStream.cs:\r
464 \r
465         - Removed test code.\r
466 \r
467 2003-11-17 Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
468 \r
469         * Mono.Security.Protocol.Tls/SslClientStream.cs:\r
470 \r
471                 Removed ReadByte method, use innerStream.ReadByte() method instead.\r
472 \r
473 2003-11-13 Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
474 \r
475         * Added implementation of an SslClientStream class similar to the MS .NET Framework 1.2 documentation.\r
476 \r
477                 The next files are no more needed:\r
478 \r
479                         - TlsSession.cs\r
480 \r
481                         - TlsNetworkStream.cs\r
482 \r
483                         - TlsSocket.cs\r
484 \r
485                         - TlsSessionState.cs\r
486 \r
487                 The next files are renamed:\r
488 \r
489                         - TlsSessionSettings.cs -> TlsClientSettings.cs\r
490 \r
491                         - TlsSessionContext.cs -> TlsContext.cs\r
492 \r
493                 The next files are new:\r
494 \r
495                         - SslClientStream.cs ( the name is non definitive yet )\r
496 \r
497                 The next files where changed to reflect the new canges:\r
498 \r
499                         - TlsHandshakeMessage.cs\r
500 \r
501                         - TlsClientCertificate.cs\r
502 \r
503                         - TlsClientCertificateVerify.cs\r
504 \r
505                         - TlsClientFinished.cs\r
506 \r
507                         - TlsClientHello.cs\r
508 \r
509                         - TlsClientKeyExchange.cs\r
510 \r
511                         - TlsServerCertificate.cs\r
512 \r
513                         - TlsServerCertificateRequest.cs\r
514 \r
515                         - TlsServerFinished.cs\r
516 \r
517                         - TlsServerHello.cs\r
518 \r
519                         - TlsServerHelloDone.cs\r
520 \r
521                         - TlsServerKeyExchange.cs\r
522 \r
523                         - TlsAlert.cs\r
524 \r
525                         - TlsCloseNotifyAlert.cs\r
526 \r
527                 \r
528 2003-11-12 Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
529 \r
530         * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:\r
531         \r
532                 - Changes for give full error message only in debug mode ( Thanks to Sebastién Pouliot. )\r
533                 \r
534         * Mono.Security.Protocol.Tls/TlsProtocol.cs:\r
535         \r
536                 - Renamed to SecurityProtocolType.cs ( for match .NET 1.2 )\r
537         \r
538         * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:\r
539         \r
540                 - Renamed to MD5SHA1.cs ( Thanks to Sebastién Pouliot. )\r
541                 \r
542         * Mono.Security.Cryptography/TlsCompressionMethod.cs:\r
543         \r
544                 - Renamed to SecurityCompressionType.\r
545                 \r
546         * Mono.Security.Protocol.Tls/CipherAlgorithmType.cs:\r
547         * Mono.Security.Protocol.Tls/HashAlgorithmType.cs:\r
548         * Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs:\r
549         \r
550                 - New enumerations that matches .NET 1.2 definitions with some minor differences.\r
551         \r
552         * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
553         * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:\r
554         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:\r
555         * Mono.Security.Protocol.Tls/TlsSessionContext.cs:\r
556         \r
557                 - Added changes for make use of new enumerations.\r
558         \r
559         * Mono.Security.Protocol.Tls/TlsClientStream.cs:\r
560         \r
561                 - Added new informative properties that matches .NET 1.2 SslClientStream\r
562                 ( Not all the properties are implemented yet ).\r
563 \r
564 \r
565 2003-11-10 Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
566 \r
567         * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:\r
568 \r
569                 - Fixed invalid alert message.\r
570 \r
571         * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
572         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:\r
573         * Mono.Security.Cryptography/HMAC.cs:\r
574         * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:\r
575         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:\r
576 \r
577                 - Changed ( Thanks to Sebastién Pouliot for his feedback )\r
578 \r
579                         SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider();\r
580                         MD5CryptoServiceProvider sha = new MD5CryptoServiceProvider();\r
581 \r
582                         to\r
583 \r
584                         HashAlgorithm sha = SHA1.Create();\r
585                         HashAlgorithm md5 = MD5.Create(); \r
586 \r
587 2003-11-04 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
588 \r
589         * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
590 \r
591                 - Added custom padding for record encryption.\r
592 \r
593 \r
594 2003-11-03 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
595 \r
596         * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessages.cs:\r
597         \r
598                 - Removed file.\r
599 \r
600         * Mono.Security.Protocol.Tls/TlsSslHandshakeHash.cs:\r
601         \r
602                 - New class for handshake hashes calculation on SSL3 protocol.\r
603 \r
604         * Mono.Security.Protocol.Tls/TlsSessionContext.cs:\r
605         \r
606                 - Fixed mac keys clearing for SSL3 protocol.\r
607 \r
608         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:\r
609         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:\r
610         \r
611                 - Added changes for make use of new TlsSslHandshakeHash class.\r
612         \r
613         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:\r
614         \r
615                 - Added initial implementation for SSL3 protocol.\r
616         \r
617         * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:\r
618         \r
619                 - New class for md5-sha hash calculation.\r
620                                                         \r
621         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:\r
622         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:\r
623         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:\r
624         * Mono.Security.Protocol.Tls.Handshake.Client/TlsHandshakeMessage.cs:\r
625         \r
626                 - Make use of new MD5SHA1CryptoServiceProvider class.\r
627                 \r
628         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:\r
629         \r
630                 - Added initial implementation (not finished).\r
631                         \r
632         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:\r
633         \r
634                 - Minor change to message processing.\r
635 \r
636                 - Changed verify method name to verifySignature.\r
637                         \r
638         * Mono.Security.Protocol.Tls/TlsSessionContext.cs:\r
639         \r
640                 - Changed handshakeHashes member to be an TlsStream.\r
641 \r
642 2003-10-28 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
643 \r
644         * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
645         * Mono.Security.Protocol.Tls/TlsSessionSettings.cs:\r
646         * Mono.Security.Protocol.Tls/TlsServerSettings.cs:\r
647         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:\r
648         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientKeyExchange.cs:\r
649         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:\r
650         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:\r
651 \r
652                 - Added changes for make use of X509 classes from mono.\r
653 \r
654 2003-10-23 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
655 \r
656         * Added partial implementation of SSL3 protocol ( not finished yet ).\r
657 \r
658         * TlsAbstractCipherSuite.cs: Renamed to CipherSuite.cs.\r
659 \r
660         * Removed AssemblyInfo.cs file.\r
661 \r
662 2003-10-21 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
663 \r
664         TlsCipherSuiteFactory.cs: Changed names of private methods.\r
665 \r
666         TlsSslCipherSuite.cs: Replaced implementations of key generation methods with a throw new NotSupportedException().\r
667 \r
668 \r
669 2003-10-20  Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
670 \r
671         TlsCupherSuite.cs: Fixed padding length calculation on record encryption.\r
672         \r
673         TlsSessionContext.cs:   Added new CompressionMethod property.\r
674                                         Added new MAX_FRAGMENT_SIZE constant.\r
675 \r
676         TlsSession.cs: Removed MaxFragmentSize property.\r
677 \r
678         TlsSocket.cs: Replaced use of TlsSesison.MaxFragmentSize by TlsSessionContext.MAX_FAGMENT_SIZE\r
679         \r
680         TlsSessionSettings.cs: Added new CompressionMethod property.\r
681 \r
682         * Abstracted CipherSuite classes for allow work with other protocol versions.\r
683 \r
684         * Added new files :\r
685 \r
686                 TlsAbstractCipherSuite.cs \r
687                         \r
688                 TlsSslCipherSuite.cs\r
689 \r
690                 TlsCipherSuiteFactory.cs\r
691 \r
692                 TlsCompressionMethod.cs\r
693 \r
694         * Added new cipher suites definitions based on RFC3268 - (http://www.ietf.org/rfc/rfc3268.txt)\r
695 \r
696         * Added two new supported ciphersuites for TLS protocol:\r
697 \r
698                 TLS_RSA_WITH_AES_256_CBC_SHA\r
699 \r
700                 TLS_RSA_WITH_AES_128_CBC_SHA\r
701 \r
702         * Moved key generation stuff to specific cipher suite classes.\r
703 \r
704 2003-10-20  Pedro Martínez Juliá  <yoros@wanadoo.es>\r
705 \r
706         * AssemblyInfo.cs: commented out KeyFile reference.\r
707 \r
708         * TlsSession.cs: changed Math.Pow for System.Math.Pow because of MCS\r
709         bug with namespace resolving.\r
710 \r