1 2010-07-23 Sebastien Pouliot <sebastien@ximian.com>
3 * ClientSessionCache.cs: Do not let the ValidityInterval be
4 controlled by an environment variable for Moonlight
5 * HttpsClientStream.cs: Simplify code for Moonlight profile
7 2010-05-10 Sebastien Pouliot <sebastien@ximian.com>
13 Let them compile for Moonlight (where the files are
14 compiled inside System.dll)
16 2010-04-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
20 * RecordProtocol.cs: differentiate a received 'CloseNotify' alert from
21 one that we sent. Disposing the stream will try to send the
22 'CloseNotify' alert, if it hasn't already, and ignore any errors. This
23 is needed for FTPS to work.
25 2010-03-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
29 * SslServerStream.cs: modify the 2.0 callback to return more info.
31 2010-03-01 Gonzalo Paniagua Javier <gonzalo@novell.com>
33 * HttpsClientStream.cs: use Address instead
34 of RequestUri to get the right host name when the request is
40 added a new callback for certificate validation that gets all the
41 certificates received from the server/client. The callee should
42 build the chain and validate it.
44 2009-10-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
47 * SslServerStream.cs: add new parameter that forces sending the
48 CertificateRequest record. Make sure we raise the client certificate
49 validation event when it is requested or required.
51 2009-07-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
53 * HttpsClientStream.cs: if there's only an ICertificatePolicy and no
54 ServerCertificateValicationCallback, don't fail.
56 2009-07-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
58 * HttpsClientStream.cs: invoke the ServerCertificateValidationCallback
59 in the 2.0 profile. If there's a CertificatePolicy, it is run before
62 2007-09-12 Sebastien Pouliot <sebastien@ximian.com>
64 * Context.cs: Clear key info memory (not just nullify). Fix bug #82819
66 2007-08-16 Sebastien Pouliot <sebastien@ximian.com>
68 * RecordProtocol.cs, SslStreamBase.cs: Ensure nothing (even the same
69 thread) can confuse the record decoding code. Fix bug #82145 (LDAP)
70 which uses several thread over a single SslClientStream instance.
72 2007-05-23 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
74 * Context.cs: fix the calculation of the unix time.
76 2007-05-09 Sebastien Pouliot <sebastien@ximian.com>
78 * HttpsClientStream.cs: Add support for client certificates from
79 HttpWebRequest if it uses X509Certificate2 instance (which requires
80 using 2.0 profile) and if the private key is available.
81 * SslStreamBase.cs: Fix warning in 2.0 because Stream now implements
82 Dispose. Rework Close (in 2.0) to avoid infinite recursion.
84 2006-12-08 Sebastien Pouliot <sebastien@ximian.com>
86 * ClientSessionCache.cs: Fix cache to be really used. Original patch
87 by Roy Versteeg. Fix bug #80175.
89 2006-12-08 Sebastien Pouliot <sebastien@ximian.com>
91 * ClientSessionCache.cs: Check for a new environment variable to
92 control the cache validity period (MONO_TLS_SESSION_CACHE_TIMEOUT).
95 2006-09-11 Sebastien Pouliot <sebastien@ximian.com>
97 * CipherSuite.cs: Avoid creating a CryptoStream and a MemoryStream in
98 EncryptRecord (removing the need to do a keysetup each time). Add
99 helper methods to write inside byte buffers. Decrypt the data in
100 place (without allocating new memory) as the result will always be
101 smaller than the original. Avoid TlsStream in CreatePremasterSecret
102 method. All HMAC access are done with the Negotiating parameters.
103 * ClientRecordProtocol.cs: Set HandshakeState to None if we receive
104 a HelloRequest during an existing session. Remove overidden method
105 ProcessChangeCipherSpec. Skip memory allocation if possible.
106 * Context.cs: Add new SecurityParameters for current, negotiating,
107 read and write (actually only two different instance exists). Change
108 readSequenceNumber and writeSequenceNumber to ulong to match specs.
109 Remove all properties that are moved/replaced with SecurityParameters.
110 Added methods to Start and End a switch of the security parameters.
111 * RecordProtocol.cs: Add code to ProcessChangeCipherSpec (not abstract
112 anymore). Remove ReadShort and it's use. Deal with null alerts in
113 SendAlert method (internal error). Change code to deal with
114 SendChangeCipherSpec inside an existing (encrypted) session. Update
115 Cipher to use the correct one (mostly Read.Cipher or Negotiating.Cipher
116 for ProcessCipherSpecV2Buffer method).
117 * SecurityParameters.cs: New. Deal with all parameters that changes
118 between negotiations.
119 * ServerRecordProtocol.cs: Remove method ProcessChangeCipherSpec.
120 * SslCipherSuite.cs: Don't use TlsStream when computing MAC. Set the
121 MAC keys to the Negotiating security parameters.
122 * SslClientStream.cs: Change calls from Cipher to Negotiating.Cipher.
123 * SslServerStream.cs: Change calls from Cipher to Negotiating.Cipher.
124 Remove debugging dead code (DateTime).
125 * SslStreamBase.cs: Change calls from Cipher to Current.Cipher. Reuse
126 existing memory buffer.
127 * TlsCipherSuite.cs: Don't use TlsStream when computing MAC. Set the
128 MAC keys to the Negotiating security parameters.
129 * TlsClientSettings.cs: Comment code cause compiler warnings.
130 * TlsStream.cs: Avoid/reduce memory allocations when reading or
131 writing small integer values to the stream.
133 2006-09-07 Sebastien Pouliot <sebastien@ximian.com>
135 * HttpsClientStream.cs: Honor ServicePointManager.SecurityProtocol to
136 select between SSL3, TLS1 or, by default, auto. Great for testing :)
138 2006-06-08 Sebastien Pouliot <sebastien@ximian.com>
140 * ClientRecordProtocol.cs: Avoid a NRE when the server request a
141 re-negotiation of the security parameters. Possible fix for #78597.
143 2006-04-21 Sebastien Pouliot <sebastien@ximian.com>
145 * SslCipherSuite.cs: Enable abbreviated handshakes for SSL3 too.
147 2006-04-12 Sebastien Pouliot <sebastien@ximian.com>
149 * ClientSessionCache.cs: Deal with empty (null) master secret, that
150 can find their ways into the cache, and treat them as invalid. Fix
153 2006-04-10 Sebastien Pouliot <sebastien@ximian.com>
155 * ClientSessionCache.cs: The session id can be zero-length (like our
157 * SslServerStream.cs: Adapt code to fixes made in cipher suite and
158 message processing changes in client code.
160 2006-03-16 Sebastien Pouliot <sebastien@ximian.com>
162 * CipherSuiteFactory.cs: Fix bad key exchange values for non-export
163 cihpers. Most certificates have "too much" usages by default so this
164 was hidden from view.
165 * SslStreamBase.cs: Safety net. Throw an exception if we're waiting
166 for more than five (5) minutes for an async read or write to complete.
168 2006-03-16 Sebastien Pouliot <sebastien@ximian.com>
170 * ClientSessionCache.cs: New. Handle a client-side session cache to
171 enable the use of abbreviated handshake whenever possible. This will
172 reduce the number of negotiation (a very CPU intensive process) done
174 * Context.cs: Add a property for AbbreviatedHandshake.
175 * RecordProtocol.cs: Don't send Finished record from ChangeCipherSpec
176 as this won't work if the message flow change.
177 * SslClientStream.cs: Line endings.
178 * SslServerStream.cs: Throw an exception if ReceiveRecord return null
179 or an empty buffer (i.e. communication ended with client). Fix #76254.
180 * SslStreamBase.cs: Re-add synchronous implementations for Read and
182 * TlsCipherSuite.cs: Update the client-side session cache with the
184 * TlsStream.cs: Avoid possible buffer underun reading bytes (found by
187 2006-03-08 Sebastien Pouliot <sebastien@ximian.com>
189 * SslStreamBase.cs: Re-implemented the synchronous versions of Read
190 and Write methods so they don't use the async code.
192 2006-03-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
194 * SslStreamBase.cs: avoid creating the ManualResetEvent whenever
195 possible. Don't lock on an instance of an object that the user can get.
197 2006-03-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
199 * RecordProtocol.cs: avoid creating the ManualResetEvent whenever
200 possible. Don't lock on an instance of an object that the user can get.
202 2006-03-02 Sebastien Pouliot <sebastien@ximian.com>
204 * RecordProtocol.cs: Fix possible endless loop (#77663). Remove hack
205 for an old, fixed, MCS bug (#67711).
207 2005-10-06 Sebastien Pouliot <sebastien@ximian.com>
209 * ClientRecordProtocol.cs: Update HandshakeMessages after each
210 message. Fix bug #76258.
211 * RecordProtocol.cs: Remove writing into the HandshakeMessages stream
212 at this stage. We may need the data before that. Fix bug #76258.
213 * ServerRecordProtocol.cs: Update HandshakeMessages after each
214 message. Fix bug #76258.
215 * SslServerStream.cs: Changed check for the presence of client
216 certificates during handshake.
218 2005-09-02 Sebastien Pouliot <sebastien@ximian.com>
220 * SslStreamBase.cs, ServerRecordProtocol.cs, SslClientStream.cs,
221 ClientRecordProtocol.cs, RecordProtocol.cs, SslServerStream.cs:
222 Re-written async support for Ssl[Client|Server]Stream from JD Conley
223 <jd.conley@coversant.net> with minor changes. Fix bug #75687 (and a
224 lot of other known problems).
226 2005-07-01 Sebastien Pouliot <sebastien@ximian.com>
228 * ServerContext.cs: Build the list of trusted certificates from all
229 the trusted root for the current user and the local machine.
230 * SslServerStream.cs: Add support for client certificate (and the
231 callback for optional mutual authentication with SSL3).
233 2005-06-22 Sebastien Pouliot <sebastien@ximian.com>
235 * SslClientStream.cs: Removed failsafe timeout of 5 minutes as some
236 protocols can go idle for longer than this.
238 2005-06-14 Sebastien Pouliot <sebastien@ximian.com>
240 * SslClientStream.cs: Add support for _optional_ mutual authentication.
241 SSL3 and TLS1 deals differently with this. SSL3 tested with OpenSSL,
242 TSL1 tested with OpenSSL and LDAPS/AD.
244 2005-06-06 Sebastien Pouliot <sebastien@ximian.com>
246 * Alert.cs: Add NoCertificate (41) which _should_ be used in SSL3
247 if we don't want to send a certificate when requested by a server
248 (e.g. in the case the mutual authentication is optional).
249 * CipherSuite.cs: Fixed recursive property. Changed type to short so
250 it can hold 256 bits (valid value). Fixed ctor so it doesn't assign
253 2005-05-13 Sebastien Pouliot <sebastien@ximian.com>
255 * SslClientStream.cs: Forgot to set the event in the previous fix.
257 2005-05-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
259 * SslClientStream.cs: check for the dispose in NetworkReadCallback.
260 Patch by Sebastien "Cryptoman" Pouliot.
262 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
264 * SslClientStream.cs: gotta call EndInvoke, not EndRead.
266 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
268 * SslClientStream.cs: MemoryStream does not implement proper Begin*
269 methods, so we need this to prevent infinite recursion if we have a
270 callback that calls BeginRead.
272 2005-04-13 Sebastien Pouliot <sebastien@ximian.com>
274 * RecordProtocol.cs: Some API changes so a record can be decoded from
275 any supplied stream (not just the inner network stream).
276 * SslClientStream.cs: BeginRead is now truly async if the Negotiate is
277 called from BeginWrite (where it should be in most case).
278 * SslServerStream.cs: Adapted to API changes in RecordProtocol.cs.
280 2005-04-12 Sebastien Pouliot <sebastien@ximian.com>
282 * SslHandshakeHash.cs: Changed "SslHash" to "MD5SHA1". Fix #71696.
284 2005-04-10 Sebastien Pouliot <sebastien@ximian.com>
286 * HttpsClientStream.cs: Added a TrustFailure property so a
287 WebException can now report TrustFailure correctly. Fix bug 74286.
289 2005-04-07 Sebastien Pouliot <sebastien@ximian.com>
291 * SslCipherSuite.cs: Fix calculation (sequence number) for the server
292 side stream. Patch by Brian Ritchie.
294 2005-02-04 Sebastien Pouliot <sebastien@ximian.com>
296 * Reverting last changes in SslClientStream and RecordProtocol. This
297 break when sending large files back and forth (echo test).
299 2005-02-02 Sebastien Pouliot <sebastien@ximian.com>
301 * SslClientStream.cs: Throw exception when we receive a null record.
302 * RecordProtocol.cs: Added code to avoid blocking and endless loops
303 if the data is incomplete or missing - even in the case the server
304 side doesn't close the connection (see new cutcli tool).
306 2004-12-15 Sebastien Pouliot <sebastien@ximian.com>
308 * CipherSuite.cs: Removed unused MD5 and SHA1 instances created in
309 PRF method (fix compilation warnings).
311 2004-12-13 Sebastien Pouliot <sebastien@ximian.com>
313 * SslClientStream.cs: New internal property, ServerCertificates, to
314 "easily" retreive the server's certificate chain using reflection.
316 2004-11-23 Sebastien Pouliot <sebastien@ximian.com>
318 * RecordProtocol.cs: Fixed ClientHelloV2 support.
320 2004-11-10 Sebastien Pouliot <sebastien@ximian.com>
322 * CipherSuiteFactory.cs: Activated RSA_WITH_AES_256_CBC_SHA as it is
323 supported by some browsers.
324 * ContentType.cs: Removed ClientHelloV2 from the enum as it is not a
325 "true" content type (it just looks so where we're processing it).
326 * Context.cs: Added support to switch protocol (e.g. SSL2->SSL3 or
327 SSL2->TLS1). Contributed by Carlos Guzman Alvarez.
328 * RecordProtocol.cs: Added support for ClientHelloV2 message
329 (contributed by Carlos Guzman Alvarez). This is a Handshake message
330 so it must be MACed. Also fixed the challenge length because some
331 browsers implementation don't interpret "This value must be 32." as
334 2004-10-05 Sebastien Pouliot <sebastien@ximian.com>
336 * SslClientStream.cs: Changed InputBuffer to internal (was protected).
338 2004-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
340 * HttpsClientStream.cs: the .ctor receives a pre-read buffer now.
341 * SslClientStream.cs: added InputBuffer property.
343 2004-09-23 Sebastien Pouliot <sebastien@ximian.com>
345 * RecordProtocol.cs: Fix alert data that could leak into appplication
346 data (e.g. when closing the SSL session).
348 2004-07-14 Carlos Guzman Alvarez <carlosga@telefonica.net>
350 * Removed duplicate license header file from
353 2004-07-14 Sebastien Pouliot <sebastien@ximian.com>
355 * SslClientStream.cs: Changed lock to "new object()" and not
356 String.Empty (as the read/write locks points becomes the same).
357 * SslServerStream.cs: Changed lock to "new object()" and not
358 String.Empty (as the read/write locks points becomes the same).
360 2004-07-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
362 * HttpsClientStream.cs: get an HttpWebRequest so that we can use the
363 ServicePoint it has. No need to get the host now.
365 2004-05-09 Carlos Guzman Alvarez <carlosga@telefonica.net>
367 * Mono.Security.Protocol.Tls/Alert.cs:
368 * Mono.Security.Protocol.Tls/CipherSuite.cs:
369 * Mono.Security.Protocol.Tls/CipherSuiteCollection.cs:
370 * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
371 * Mono.Security.Protocol.Tls/Context.cs:
372 * Mono.Security.Protocol.Tls/RecordProtocol.cs:
373 * Mono.Security.Protocol.Tls/SecurityCompressionType.cs:
374 * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:
375 * Mono.Security.Protocol.Tls/SslServerStream.cs:
376 * Mono.Security.Protocol.Tls/TlsClientSettings.cs:
378 - Changes for fix FxCop Rules.
380 - Reworked CipherSuiteCollection class.
383 2004-04-21 Carlos Guzman Alvarez <carlosga@telefonica.net>
385 * Mono.Security.Protocol.Tls/DebugHelper.cs:
389 * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
390 * Mono.Security.Protocol.Tls/RecordProtocol.cs:
391 * Mono.Security.Protocol.Tls/Context.cs:
392 * Mono.Security.Protocol.Tls/Context.cs:
393 * Mono.Security.Protocol.Tls/SslCipherSuite.cs:
394 * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
395 * Mono.Security.Protocol.Tls/SslClientStream.cs:
397 - Added debug capabilities.
399 * Mono.Security.Protocol.Tls/ServerContext.cs:
401 - Added initialization of requested CertificateTypes and CA's
403 2004-04-16 Carlos Guzman Alvarez <carlosga@telefonica.net>
405 * Mono.Security.Protocol.Tls/TlsException.cs:
407 - Make it public until npgsql people can fix their sources.
409 2004-03-19 Carlos Guzman Alvarez <carlosga@telefonica.net>
411 * Mono.Security.Protocol.Tls/TlsServerSettings.cs:
413 - Added new CertificateRSA property.
415 - Added new UpdateCertfificateRSA method.
417 * Mono.Security.Protocol.Tls/CipherSuite.cs:
419 - Removed CertificateRSA() method.
421 2004-03-19 Sebastien Pouliot <sebastien@ximian.com>
423 * CipherSuite.cs: Fixed PRF generation when secret is an odd number of
424 bytes (section 5 in RFC2246).
425 * CipherSuiteFactory.cs: Added algorithms RSA_EXPORT_WITH_RC4_40_MD5,
426 RSA_EXPORT_WITH_RC2_CBC_40_MD5, RSA_EXPORT_WITH_DES40_CBC_SHA,
427 RSA_EXPORT_WITH_RC4_56_MD5, RSA_EXPORT_WITH_RC2_CBC_56_MD5,
428 RSA_EXPORT_WITH_DES_CBC_56_SHA and RSA_EXPORT_WITH_RC4_56_SHA to both
429 SSL3 and TLS1 protocols.
430 * SslCipherSuite.cs: Fixed key generation for exportable ciphers.
431 * TlsCipherSuite.cs: Fixed key generation for exportable ciphers.
433 2004-03-16 Carlos Guzman Alvarez <carlosga@telefonica.net>
435 * Mono.Security.Protocol.Tls/SslCipherSuite.cs:
437 - Added changes for allow it to work as server or client.
439 2004-03-15 Carlos Guzman Alvarez <carlosga@telefonica.net>
441 * Mono.Security.Protocol.Tls/TlsStream.cs:
442 * Mono.Security.Protocol.Tls/CipherSuite.cs:
443 * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
444 * Mono.Security.Protocol.Tls/SslHandshakeHash.cs:
445 * Mono.Security.Protocol.Tls/RecordProtocol.cs:
447 - Use Buffer.BlockCopy instead of System.Array.Copy
449 2004-03-10 Carlos Guzman Alvarez <carlosga@telefonica.net>
451 * Mono.Security.Protocol.Tls/Ciphersuite.cs:
453 - Added generation of the Server encryption algorithms.
455 - Modified encryption/decription methods for work
456 as client or server as needed.
458 * Mono.Security.Protocol.Tls/RecordProtocol.cs:
459 * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
460 * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:
462 - Added new ProcessChangeCipherSpec method.
464 * Mono.Security.Protocol.Tls/Context.cs:
466 - Added new PrintBuffer method ( for debug ).
468 * Mono.Security.Protocol.Tls/SslClientStream.cs:
469 * Mono.Security.Protocol.Tls/SslServerStream.cs:
473 2004-03-06 Carlos Guzman Alvarez <carlosga@telefonica.net>
475 * Mono.Security.Protocol.Tls/SslServerStream.cs:
477 - Initial implementation of the doHandshake method.
479 - Added initial events implementation.
481 * Mono.Security.Protocol.Tls/Ciphersuite.cs:
482 * Mono.Security.Protocol.Tls/TlsCiphersuite.cs:
483 * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
484 * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:
485 * Mono.Security.Protocol.Tls/SslClientStream.cs:
486 * Mono.Security.Protocol.Tls/TlsServerSettings.cs:
487 * Mono.Security.Protocol.Tls/TlsClientSettings.cs:
488 * Mono.Security.Protocol.Tls/ClientContext.cs:
490 - Changes for make use of the renamed classes and enums.
492 * Mono.Security.Protocol.Tls/TlsContentType.cs:
494 - Renamed to ContentType.cs ( Enum and file )
496 * Mono.Security.Protocol.Tls/TlsCiphersuiteCollection.cs:
498 - Renamed to CiphersuiteCollection.cs ( Class and file )
500 * Mono.Security.Protocol.Tls/TlsCiphersuiteFactory.cs:
502 - Renamed to CiphersuiteCollection.cs ( Class and file )
504 * Mono.Security.Protocol.Tls/TlsSslHandshakeHash.cs:
506 - Renamed to SslHandshakeHash.cs ( Class and file )
508 * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
510 - Renamed to SslCipherSuite.cs ( Class and file )
512 2004-02-26 Carlos Guzman Alvarez <carlosga@telefonica.net>
514 * Mono.Security.Protocol.Tls/HandshakeState.cs:
518 * Mono.Security.Protocol.Tls/SslClientStream.cs:
519 * Mono.Security.Protocol.Tls/SslServerStream.cs:
520 * Mono.Security.Protocol.Tls/Context.cs:
521 * Mono.Security.Protocol.Tls/ClientContext.cs:
522 * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
524 - Added changes for better handling of ClientHelloRequest messages.
526 2004-02-25 Sebastien Pouliot <sebastien@ximian.com>
528 * HttpsClientStream.cs: New. Internal glue class between System.dll
529 WebConnection and SslClientStream to reduce reflection.
530 * SslClientStream.cs: RaiseServerCertificateValidation is now virtual
531 to allow HttpsClientStream to override it.
533 2004-02-24 Carlos Guzman Alvarez <carlosga@telefonica.net>
535 * Mono.Security.Protocol.Tls/RecordProtocol.cs:
536 * Mono.Security.Protocol.Tls/SslClientStream.cs:
537 * Mono.Security.Protocol.Tls/SslServerStream.cs:
539 - Reimplementation of TLS/SSL Alert Protocol.
541 2004-02-20 Carlos Guzmán Álvarez <carlosga@telefonica.net>
543 * Mono.Security.Protocol.Tls.Handshake.Client/SslClientCertificate.cs:
545 - Improved exception handling.
547 2004-02-18 Carlos Guzmán Álvarez <carlosga@telefonica.net>
549 * Mono.Security.Protocol.Tls/CipherAlgorithmType.cs:
550 * Mono.Security.Protocol.Tls/HashAlgorithmType.cs:
551 * Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs:
553 - Added Serializable attribute.
555 * Mono.Security.Protocol.Tls/CipherSuite.cs:
556 * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
557 * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
558 * Mono.Security.Protocol.Tls/TlsContext.cs:
560 - Added some optimizations proposed by Sebastien Pouliot.
562 * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
564 - Changes on Common Name detection and certificate error handling ( Thanks to Sebastien Pouliot for his feedback ).
566 2004-02-18 Sebastien Pouliot <sebastien@ximian.com>
568 * SslClientStream.cs: Fixed (inverted) condition for ServerCertificate.
569 * SecurityProtocolType.cs: Added [Serializable] to enum to match MS
572 2004-02-17 Carlos Guzmán Álvarez <carlosga@telefonica.net>
574 * Mono.Security.Protocol.Tls/SslClientStream.cs:
576 - Added changes to security properties for check that the handshake is finished.
578 * Mono.Security.Protocol.Tls/SslClientStream.cs:
580 - Added changes for bring async methods to work ( Thanks to Sebastien Pouliot )
582 - Reworked the record fragmentation.
584 - Fix for send the close notify alert in the Close method
585 only if the Handshake is fully negotiated.
588 2004-02-16 Carlos Guzmán Álvarez <carlosga@telefonica.net>
590 * Mono.Security.Protocol.Tls/TlsCipherSuiteFactory.cs:
592 - Changed ciphersuites order of preference ( Thanks to Sebastien Pouliot for his feedback ).
594 2004-02-15 Carlos Guzmán Álvarez <carlosga@telefonica.net>
596 * Mono.Security.Protocol.Tls/SslClientStream.cs:
598 - Added specific control od available data for Network Streams
599 on Read ( Thanks to Francisco Figueiredo Jr. for his feedback ).
603 2004-02-14 Carlos Guzmán Álvarez <carlosga@telefonica.net>
605 * Mono.Security.Protocol.Tls/SslClientStream.cs:
609 2003-11-17 Carlos Guzmán Álvarez <carlosga@telefonica.net>
611 * Mono.Security.Protocol.Tls/SslClientStream.cs:
613 Removed ReadByte method, use innerStream.ReadByte() method instead.
615 2003-11-13 Carlos Guzmán Álvarez <carlosga@telefonica.net>
617 * Added implementation of an SslClientStream class similar to the MS .NET Framework 1.2 documentation.
619 The next files are no more needed:
623 - TlsNetworkStream.cs
629 The next files are renamed:
631 - TlsSessionSettings.cs -> TlsClientSettings.cs
633 - TlsSessionContext.cs -> TlsContext.cs
635 The next files are new:
637 - SslClientStream.cs ( the name is non definitive yet )
639 The next files where changed to reflect the new canges:
641 - TlsHandshakeMessage.cs
643 - TlsClientCertificate.cs
645 - TlsClientCertificateVerify.cs
647 - TlsClientFinished.cs
651 - TlsClientKeyExchange.cs
653 - TlsServerCertificate.cs
655 - TlsServerCertificateRequest.cs
657 - TlsServerFinished.cs
661 - TlsServerHelloDone.cs
663 - TlsServerKeyExchange.cs
667 - TlsCloseNotifyAlert.cs
670 2003-11-12 Carlos Guzmán Álvarez <carlosga@telefonica.net>
672 * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
674 - Changes for give full error message only in debug mode ( Thanks to Sebastién Pouliot. )
676 * Mono.Security.Protocol.Tls/TlsProtocol.cs:
678 - Renamed to SecurityProtocolType.cs ( for match .NET 1.2 )
680 * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
682 - Renamed to MD5SHA1.cs ( Thanks to Sebastién Pouliot. )
684 * Mono.Security.Cryptography/TlsCompressionMethod.cs:
686 - Renamed to SecurityCompressionType.
688 * Mono.Security.Protocol.Tls/CipherAlgorithmType.cs:
689 * Mono.Security.Protocol.Tls/HashAlgorithmType.cs:
690 * Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs:
692 - New enumerations that matches .NET 1.2 definitions with some minor differences.
694 * Mono.Security.Protocol.Tls/CipherSuite.cs:
695 * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
696 * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
697 * Mono.Security.Protocol.Tls/TlsSessionContext.cs:
699 - Added changes for make use of new enumerations.
701 * Mono.Security.Protocol.Tls/TlsClientStream.cs:
703 - Added new informative properties that matches .NET 1.2 SslClientStream
704 ( Not all the properties are implemented yet ).
707 2003-11-10 Carlos Guzmán Álvarez <carlosga@telefonica.net>
709 * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
711 - Fixed invalid alert message.
713 * Mono.Security.Protocol.Tls/CipherSuite.cs:
714 * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
715 * Mono.Security.Cryptography/HMAC.cs:
716 * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
717 * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
719 - Changed ( Thanks to Sebastién Pouliot for his feedback )
721 SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider();
722 MD5CryptoServiceProvider sha = new MD5CryptoServiceProvider();
726 HashAlgorithm sha = SHA1.Create();
727 HashAlgorithm md5 = MD5.Create();
729 2003-11-04 Carlos Guzmán Álvarez <carlosga@telefonica.net>
731 * Mono.Security.Protocol.Tls/CipherSuite.cs:
733 - Added custom padding for record encryption.
736 2003-11-03 Carlos Guzmán Álvarez <carlosga@telefonica.net>
738 * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessages.cs:
742 * Mono.Security.Protocol.Tls/TlsSslHandshakeHash.cs:
744 - New class for handshake hashes calculation on SSL3 protocol.
746 * Mono.Security.Protocol.Tls/TlsSessionContext.cs:
748 - Fixed mac keys clearing for SSL3 protocol.
750 * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
751 * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:
753 - Added changes for make use of new TlsSslHandshakeHash class.
755 * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:
757 - Added initial implementation for SSL3 protocol.
759 * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
761 - New class for md5-sha hash calculation.
763 * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:
764 * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:
765 * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
766 * Mono.Security.Protocol.Tls.Handshake.Client/TlsHandshakeMessage.cs:
768 - Make use of new MD5SHA1CryptoServiceProvider class.
770 * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
772 - Added initial implementation (not finished).
774 * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
776 - Minor change to message processing.
778 - Changed verify method name to verifySignature.
780 * Mono.Security.Protocol.Tls/TlsSessionContext.cs:
782 - Changed handshakeHashes member to be an TlsStream.
784 2003-10-28 Carlos Guzmán Álvarez <carlosga@telefonica.net>
786 * Mono.Security.Protocol.Tls/CipherSuite.cs:
787 * Mono.Security.Protocol.Tls/TlsSessionSettings.cs:
788 * Mono.Security.Protocol.Tls/TlsServerSettings.cs:
789 * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
790 * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientKeyExchange.cs:
791 * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
792 * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
794 - Added changes for make use of X509 classes from mono.
796 2003-10-23 Carlos Guzmán Álvarez <carlosga@telefonica.net>
798 * Added partial implementation of SSL3 protocol ( not finished yet ).
800 * TlsAbstractCipherSuite.cs: Renamed to CipherSuite.cs.
802 * Removed AssemblyInfo.cs file.
804 2003-10-21 Carlos Guzmán Álvarez <carlosga@telefonica.net>
806 TlsCipherSuiteFactory.cs: Changed names of private methods.
808 TlsSslCipherSuite.cs: Replaced implementations of key generation methods with a throw new NotSupportedException().
811 2003-10-20 Carlos Guzmán Álvarez <carlosga@telefonica.net>
813 TlsCupherSuite.cs: Fixed padding length calculation on record encryption.
815 TlsSessionContext.cs: Added new CompressionMethod property.
816 Added new MAX_FRAGMENT_SIZE constant.
818 TlsSession.cs: Removed MaxFragmentSize property.
820 TlsSocket.cs: Replaced use of TlsSesison.MaxFragmentSize by TlsSessionContext.MAX_FAGMENT_SIZE
822 TlsSessionSettings.cs: Added new CompressionMethod property.
824 * Abstracted CipherSuite classes for allow work with other protocol versions.
828 TlsAbstractCipherSuite.cs
832 TlsCipherSuiteFactory.cs
834 TlsCompressionMethod.cs
836 * Added new cipher suites definitions based on RFC3268 - (http://www.ietf.org/rfc/rfc3268.txt)
838 * Added two new supported ciphersuites for TLS protocol:
840 TLS_RSA_WITH_AES_256_CBC_SHA
842 TLS_RSA_WITH_AES_128_CBC_SHA
844 * Moved key generation stuff to specific cipher suite classes.
846 2003-10-20 Pedro Martínez Juliá <yoros@wanadoo.es>
848 * AssemblyInfo.cs: commented out KeyFile reference.
850 * TlsSession.cs: changed Math.Pow for System.Math.Pow because of MCS
851 bug with namespace resolving.