1 2004-10-05 Sebastien Pouliot <sebastien@ximian.com>
3 * SslClientStream.cs: Changed InputBuffer to internal (was protected).
5 2004-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7 * HttpsClientStream.cs: the .ctor receives a pre-read buffer now.
8 * SslClientStream.cs: added InputBuffer property.
10 2004-09-23 Sebastien Pouliot <sebastien@ximian.com>
12 * RecordProtocol.cs: Fix alert data that could leak into appplication
13 data (e.g. when closing the SSL session).
15 2004-07-14 Carlos Guzman Alvarez <carlosga@telefonica.net>
\r
17 * Removed duplicate license header file from
\r
20 2004-07-14 Sebastien Pouliot <sebastien@ximian.com>
\r
22 * SslClientStream.cs: Changed lock to "new object()" and not
\r
23 String.Empty (as the read/write locks points becomes the same).
\r
24 * SslServerStream.cs: Changed lock to "new object()" and not
\r
25 String.Empty (as the read/write locks points becomes the same).
\r
27 2004-07-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
\r
29 * HttpsClientStream.cs: get an HttpWebRequest so that we can use the
\r
30 ServicePoint it has. No need to get the host now.
\r
32 2004-05-09 Carlos Guzman Alvarez <carlosga@telefonica.net>
\r
34 * Mono.Security.Protocol.Tls/Alert.cs:
\r
35 * Mono.Security.Protocol.Tls/CipherSuite.cs:
\r
36 * Mono.Security.Protocol.Tls/CipherSuiteCollection.cs:
\r
37 * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
\r
38 * Mono.Security.Protocol.Tls/Context.cs:
\r
39 * Mono.Security.Protocol.Tls/RecordProtocol.cs:
\r
40 * Mono.Security.Protocol.Tls/SecurityCompressionType.cs:
\r
41 * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:
\r
42 * Mono.Security.Protocol.Tls/SslServerStream.cs:
\r
43 * Mono.Security.Protocol.Tls/TlsClientSettings.cs:
\r
45 - Changes for fix FxCop Rules.
\r
47 - Reworked CipherSuiteCollection class.
\r
50 2004-04-21 Carlos Guzman Alvarez <carlosga@telefonica.net>
\r
52 * Mono.Security.Protocol.Tls/DebugHelper.cs:
\r
56 * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
\r
57 * Mono.Security.Protocol.Tls/RecordProtocol.cs:
\r
58 * Mono.Security.Protocol.Tls/Context.cs:
\r
59 * Mono.Security.Protocol.Tls/Context.cs:
\r
60 * Mono.Security.Protocol.Tls/SslCipherSuite.cs:
\r
61 * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
\r
62 * Mono.Security.Protocol.Tls/SslClientStream.cs:
\r
64 - Added debug capabilities.
\r
66 * Mono.Security.Protocol.Tls/ServerContext.cs:
\r
68 - Added initialization of requested CertificateTypes and CA's
\r
70 2004-04-16 Carlos Guzman Alvarez <carlosga@telefonica.net>
\r
72 * Mono.Security.Protocol.Tls/TlsException.cs:
\r
74 - Make it public until npgsql people can fix their sources.
\r
76 2004-03-19 Carlos Guzman Alvarez <carlosga@telefonica.net>
\r
78 * Mono.Security.Protocol.Tls/TlsServerSettings.cs:
\r
80 - Added new CertificateRSA property.
\r
82 - Added new UpdateCertfificateRSA method.
\r
84 * Mono.Security.Protocol.Tls/CipherSuite.cs:
\r
86 - Removed CertificateRSA() method.
\r
88 2004-03-19 Sebastien Pouliot <sebastien@ximian.com>
\r
90 * CipherSuite.cs: Fixed PRF generation when secret is an odd number of
\r
91 bytes (section 5 in RFC2246).
\r
92 * CipherSuiteFactory.cs: Added algorithms RSA_EXPORT_WITH_RC4_40_MD5,
\r
93 RSA_EXPORT_WITH_RC2_CBC_40_MD5, RSA_EXPORT_WITH_DES40_CBC_SHA,
\r
94 RSA_EXPORT_WITH_RC4_56_MD5, RSA_EXPORT_WITH_RC2_CBC_56_MD5,
\r
95 RSA_EXPORT_WITH_DES_CBC_56_SHA and RSA_EXPORT_WITH_RC4_56_SHA to both
\r
96 SSL3 and TLS1 protocols.
\r
97 * SslCipherSuite.cs: Fixed key generation for exportable ciphers.
\r
98 * TlsCipherSuite.cs: Fixed key generation for exportable ciphers.
\r
100 2004-03-16 Carlos Guzman Alvarez <carlosga@telefonica.net>
\r
102 * Mono.Security.Protocol.Tls/SslCipherSuite.cs:
\r
104 - Added changes for allow it to work as server or client.
\r
106 2004-03-15 Carlos Guzman Alvarez <carlosga@telefonica.net>
\r
108 * Mono.Security.Protocol.Tls/TlsStream.cs:
\r
109 * Mono.Security.Protocol.Tls/CipherSuite.cs:
\r
110 * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
\r
111 * Mono.Security.Protocol.Tls/SslHandshakeHash.cs:
\r
112 * Mono.Security.Protocol.Tls/RecordProtocol.cs:
\r
114 - Use Buffer.BlockCopy instead of System.Array.Copy
\r
116 2004-03-10 Carlos Guzman Alvarez <carlosga@telefonica.net>
\r
118 * Mono.Security.Protocol.Tls/Ciphersuite.cs:
\r
120 - Added generation of the Server encryption algorithms.
\r
122 - Modified encryption/decription methods for work
\r
123 as client or server as needed.
\r
125 * Mono.Security.Protocol.Tls/RecordProtocol.cs:
\r
126 * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
\r
127 * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:
\r
129 - Added new ProcessChangeCipherSpec method.
\r
131 * Mono.Security.Protocol.Tls/Context.cs:
\r
133 - Added new PrintBuffer method ( for debug ).
\r
135 * Mono.Security.Protocol.Tls/SslClientStream.cs:
\r
136 * Mono.Security.Protocol.Tls/SslServerStream.cs:
\r
138 - Callback cleanup.
\r
140 2004-03-06 Carlos Guzman Alvarez <carlosga@telefonica.net>
\r
142 * Mono.Security.Protocol.Tls/SslServerStream.cs:
\r
144 - Initial implementation of the doHandshake method.
\r
146 - Added initial events implementation.
\r
148 * Mono.Security.Protocol.Tls/Ciphersuite.cs:
\r
149 * Mono.Security.Protocol.Tls/TlsCiphersuite.cs:
\r
150 * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
\r
151 * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:
\r
152 * Mono.Security.Protocol.Tls/SslClientStream.cs:
\r
153 * Mono.Security.Protocol.Tls/TlsServerSettings.cs:
\r
154 * Mono.Security.Protocol.Tls/TlsClientSettings.cs:
\r
155 * Mono.Security.Protocol.Tls/ClientContext.cs:
\r
157 - Changes for make use of the renamed classes and enums.
\r
159 * Mono.Security.Protocol.Tls/TlsContentType.cs:
\r
161 - Renamed to ContentType.cs ( Enum and file )
\r
163 * Mono.Security.Protocol.Tls/TlsCiphersuiteCollection.cs:
\r
165 - Renamed to CiphersuiteCollection.cs ( Class and file )
\r
167 * Mono.Security.Protocol.Tls/TlsCiphersuiteFactory.cs:
\r
169 - Renamed to CiphersuiteCollection.cs ( Class and file )
\r
171 * Mono.Security.Protocol.Tls/TlsSslHandshakeHash.cs:
\r
173 - Renamed to SslHandshakeHash.cs ( Class and file )
\r
175 * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
\r
177 - Renamed to SslCipherSuite.cs ( Class and file )
\r
179 2004-02-26 Carlos Guzman Alvarez <carlosga@telefonica.net>
\r
181 * Mono.Security.Protocol.Tls/HandshakeState.cs:
\r
185 * Mono.Security.Protocol.Tls/SslClientStream.cs:
\r
186 * Mono.Security.Protocol.Tls/SslServerStream.cs:
\r
187 * Mono.Security.Protocol.Tls/Context.cs:
\r
188 * Mono.Security.Protocol.Tls/ClientContext.cs:
\r
189 * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
\r
191 - Added changes for better handling of ClientHelloRequest messages.
\r
193 2004-02-25 Sebastien Pouliot <sebastien@ximian.com>
\r
195 * HttpsClientStream.cs: New. Internal glue class between System.dll
\r
196 WebConnection and SslClientStream to reduce reflection.
\r
197 * SslClientStream.cs: RaiseServerCertificateValidation is now virtual
\r
198 to allow HttpsClientStream to override it.
\r
200 2004-02-24 Carlos Guzman Alvarez <carlosga@telefonica.net>
\r
202 * Mono.Security.Protocol.Tls/RecordProtocol.cs:
\r
203 * Mono.Security.Protocol.Tls/SslClientStream.cs:
\r
204 * Mono.Security.Protocol.Tls/SslServerStream.cs:
\r
206 - Reimplementation of TLS/SSL Alert Protocol.
\r
208 2004-02-20 Carlos Guzmán Álvarez <carlosga@telefonica.net>
\r
210 * Mono.Security.Protocol.Tls.Handshake.Client/SslClientCertificate.cs:
\r
212 - Improved exception handling.
\r
214 2004-02-18 Carlos Guzmán Álvarez <carlosga@telefonica.net>
\r
216 * Mono.Security.Protocol.Tls/CipherAlgorithmType.cs:
\r
217 * Mono.Security.Protocol.Tls/HashAlgorithmType.cs:
\r
218 * Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs:
\r
220 - Added Serializable attribute.
\r
222 * Mono.Security.Protocol.Tls/CipherSuite.cs:
\r
223 * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
\r
224 * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
\r
225 * Mono.Security.Protocol.Tls/TlsContext.cs:
\r
227 - Added some optimizations proposed by Sebastien Pouliot.
\r
229 * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
\r
231 - Changes on Common Name detection and certificate error handling ( Thanks to Sebastien Pouliot for his feedback ).
\r
233 2004-02-18 Sebastien Pouliot <sebastien@ximian.com>
\r
235 * SslClientStream.cs: Fixed (inverted) condition for ServerCertificate.
\r
236 * SecurityProtocolType.cs: Added [Serializable] to enum to match MS
\r
239 2004-02-17 Carlos Guzmán Álvarez <carlosga@telefonica.net>
\r
241 * Mono.Security.Protocol.Tls/SslClientStream.cs:
\r
243 - Added changes to security properties for check that the handshake is finished.
\r
245 * Mono.Security.Protocol.Tls/SslClientStream.cs:
\r
247 - Added changes for bring async methods to work ( Thanks to Sebastien Pouliot )
\r
249 - Reworked the record fragmentation.
\r
251 - Fix for send the close notify alert in the Close method
\r
252 only if the Handshake is fully negotiated.
\r
255 2004-02-16 Carlos Guzmán Álvarez <carlosga@telefonica.net>
\r
257 * Mono.Security.Protocol.Tls/TlsCipherSuiteFactory.cs:
\r
259 - Changed ciphersuites order of preference ( Thanks to Sebastien Pouliot for his feedback ).
\r
261 2004-02-15 Carlos Guzmán Álvarez <carlosga@telefonica.net>
\r
263 * Mono.Security.Protocol.Tls/SslClientStream.cs:
\r
265 - Added specific control od available data for Network Streams
\r
266 on Read ( Thanks to Francisco Figueiredo Jr. for his feedback ).
\r
268 - Removed test code.
\r
270 2004-02-14 Carlos Guzmán Álvarez <carlosga@telefonica.net>
\r
272 * Mono.Security.Protocol.Tls/SslClientStream.cs:
\r
274 - Removed test code.
\r
276 2003-11-17 Carlos Guzmán Álvarez <carlosga@telefonica.net>
\r
278 * Mono.Security.Protocol.Tls/SslClientStream.cs:
\r
280 Removed ReadByte method, use innerStream.ReadByte() method instead.
\r
282 2003-11-13 Carlos Guzmán Álvarez <carlosga@telefonica.net>
\r
284 * Added implementation of an SslClientStream class similar to the MS .NET Framework 1.2 documentation.
\r
286 The next files are no more needed:
\r
290 - TlsNetworkStream.cs
\r
294 - TlsSessionState.cs
\r
296 The next files are renamed:
\r
298 - TlsSessionSettings.cs -> TlsClientSettings.cs
\r
300 - TlsSessionContext.cs -> TlsContext.cs
\r
302 The next files are new:
\r
304 - SslClientStream.cs ( the name is non definitive yet )
\r
306 The next files where changed to reflect the new canges:
\r
308 - TlsHandshakeMessage.cs
\r
310 - TlsClientCertificate.cs
\r
312 - TlsClientCertificateVerify.cs
\r
314 - TlsClientFinished.cs
\r
316 - TlsClientHello.cs
\r
318 - TlsClientKeyExchange.cs
\r
320 - TlsServerCertificate.cs
\r
322 - TlsServerCertificateRequest.cs
\r
324 - TlsServerFinished.cs
\r
326 - TlsServerHello.cs
\r
328 - TlsServerHelloDone.cs
\r
330 - TlsServerKeyExchange.cs
\r
334 - TlsCloseNotifyAlert.cs
\r
337 2003-11-12 Carlos Guzmán Álvarez <carlosga@telefonica.net>
\r
339 * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
\r
341 - Changes for give full error message only in debug mode ( Thanks to Sebastién Pouliot. )
\r
343 * Mono.Security.Protocol.Tls/TlsProtocol.cs:
\r
345 - Renamed to SecurityProtocolType.cs ( for match .NET 1.2 )
\r
347 * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
\r
349 - Renamed to MD5SHA1.cs ( Thanks to Sebastién Pouliot. )
\r
351 * Mono.Security.Cryptography/TlsCompressionMethod.cs:
\r
353 - Renamed to SecurityCompressionType.
\r
355 * Mono.Security.Protocol.Tls/CipherAlgorithmType.cs:
\r
356 * Mono.Security.Protocol.Tls/HashAlgorithmType.cs:
\r
357 * Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs:
\r
359 - New enumerations that matches .NET 1.2 definitions with some minor differences.
\r
361 * Mono.Security.Protocol.Tls/CipherSuite.cs:
\r
362 * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
\r
363 * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
\r
364 * Mono.Security.Protocol.Tls/TlsSessionContext.cs:
\r
366 - Added changes for make use of new enumerations.
\r
368 * Mono.Security.Protocol.Tls/TlsClientStream.cs:
\r
370 - Added new informative properties that matches .NET 1.2 SslClientStream
\r
371 ( Not all the properties are implemented yet ).
\r
374 2003-11-10 Carlos Guzmán Álvarez <carlosga@telefonica.net>
\r
376 * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
\r
378 - Fixed invalid alert message.
\r
380 * Mono.Security.Protocol.Tls/CipherSuite.cs:
\r
381 * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
\r
382 * Mono.Security.Cryptography/HMAC.cs:
\r
383 * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
\r
384 * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
\r
386 - Changed ( Thanks to Sebastién Pouliot for his feedback )
\r
388 SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider();
\r
389 MD5CryptoServiceProvider sha = new MD5CryptoServiceProvider();
\r
393 HashAlgorithm sha = SHA1.Create();
\r
394 HashAlgorithm md5 = MD5.Create();
\r
396 2003-11-04 Carlos Guzmán Álvarez <carlosga@telefonica.net>
\r
398 * Mono.Security.Protocol.Tls/CipherSuite.cs:
\r
400 - Added custom padding for record encryption.
\r
403 2003-11-03 Carlos Guzmán Álvarez <carlosga@telefonica.net>
\r
405 * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessages.cs:
\r
409 * Mono.Security.Protocol.Tls/TlsSslHandshakeHash.cs:
\r
411 - New class for handshake hashes calculation on SSL3 protocol.
\r
413 * Mono.Security.Protocol.Tls/TlsSessionContext.cs:
\r
415 - Fixed mac keys clearing for SSL3 protocol.
\r
417 * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
\r
418 * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:
\r
420 - Added changes for make use of new TlsSslHandshakeHash class.
\r
422 * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:
\r
424 - Added initial implementation for SSL3 protocol.
\r
426 * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
\r
428 - New class for md5-sha hash calculation.
\r
430 * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:
\r
431 * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:
\r
432 * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
\r
433 * Mono.Security.Protocol.Tls.Handshake.Client/TlsHandshakeMessage.cs:
\r
435 - Make use of new MD5SHA1CryptoServiceProvider class.
\r
437 * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
\r
439 - Added initial implementation (not finished).
\r
441 * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
\r
443 - Minor change to message processing.
\r
445 - Changed verify method name to verifySignature.
\r
447 * Mono.Security.Protocol.Tls/TlsSessionContext.cs:
\r
449 - Changed handshakeHashes member to be an TlsStream.
\r
451 2003-10-28 Carlos Guzmán Álvarez <carlosga@telefonica.net>
\r
453 * Mono.Security.Protocol.Tls/CipherSuite.cs:
\r
454 * Mono.Security.Protocol.Tls/TlsSessionSettings.cs:
\r
455 * Mono.Security.Protocol.Tls/TlsServerSettings.cs:
\r
456 * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
\r
457 * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientKeyExchange.cs:
\r
458 * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
\r
459 * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
\r
461 - Added changes for make use of X509 classes from mono.
\r
463 2003-10-23 Carlos Guzmán Álvarez <carlosga@telefonica.net>
\r
465 * Added partial implementation of SSL3 protocol ( not finished yet ).
\r
467 * TlsAbstractCipherSuite.cs: Renamed to CipherSuite.cs.
\r
469 * Removed AssemblyInfo.cs file.
\r
471 2003-10-21 Carlos Guzmán Álvarez <carlosga@telefonica.net>
\r
473 TlsCipherSuiteFactory.cs: Changed names of private methods.
\r
475 TlsSslCipherSuite.cs: Replaced implementations of key generation methods with a throw new NotSupportedException().
\r
478 2003-10-20 Carlos Guzmán Álvarez <carlosga@telefonica.net>
\r
480 TlsCupherSuite.cs: Fixed padding length calculation on record encryption.
\r
482 TlsSessionContext.cs: Added new CompressionMethod property.
\r
483 Added new MAX_FRAGMENT_SIZE constant.
\r
485 TlsSession.cs: Removed MaxFragmentSize property.
\r
487 TlsSocket.cs: Replaced use of TlsSesison.MaxFragmentSize by TlsSessionContext.MAX_FAGMENT_SIZE
\r
489 TlsSessionSettings.cs: Added new CompressionMethod property.
\r
491 * Abstracted CipherSuite classes for allow work with other protocol versions.
\r
493 * Added new files :
\r
495 TlsAbstractCipherSuite.cs
\r
497 TlsSslCipherSuite.cs
\r
499 TlsCipherSuiteFactory.cs
\r
501 TlsCompressionMethod.cs
\r
503 * Added new cipher suites definitions based on RFC3268 - (http://www.ietf.org/rfc/rfc3268.txt)
\r
505 * Added two new supported ciphersuites for TLS protocol:
\r
507 TLS_RSA_WITH_AES_256_CBC_SHA
\r
509 TLS_RSA_WITH_AES_128_CBC_SHA
\r
511 * Moved key generation stuff to specific cipher suite classes.
\r
513 2003-10-20 Pedro Martínez Juliá <yoros@wanadoo.es>
\r
515 * AssemblyInfo.cs: commented out KeyFile reference.
\r
517 * TlsSession.cs: changed Math.Pow for System.Math.Pow because of MCS
\r
518 bug with namespace resolving.
\r