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