-2003-10-23 Carlos Guzmán Álvarez <carlosga@telefonica.net>
+2004-02-26 Carlos Guzman Alvarez <carlosga@telefonica.net>\r
+\r
+ * Mono.Security.Protocol.Tls/HandshakeState.cs:\r
+\r
+ - New file.\r
+\r
+ * Mono.Security.Protocol.Tls/SslClientStream.cs:\r
+ * Mono.Security.Protocol.Tls/SslServerStream.cs:\r
+ * Mono.Security.Protocol.Tls/Context.cs:\r
+ * Mono.Security.Protocol.Tls/ClientContext.cs:\r
+ * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:\r
+\r
+ - Added changes for better handling of ClientHelloRequest messages.
- * Added partial implementation of SSL3 protocol ( not finished yet ).
+2004-02-25 Sebastien Pouliot <sebastien@ximian.com>
- * TlsAbstractCipherSuite.cs: Renamed to CipherSuite.cs.
+ * HttpsClientStream.cs: New. Internal glue class between System.dll
+ WebConnection and SslClientStream to reduce reflection.
+ * SslClientStream.cs: RaiseServerCertificateValidation is now virtual
+ to allow HttpsClientStream to override it.\r
- * Removed AssemblyInfo.cs file.
+2004-02-24 Carlos Guzman Alvarez <carlosga@telefonica.net>
-2003-10-21 Carlos Guzmán Álvarez <carlosga@telefonica.net>
+ * Mono.Security.Protocol.Tls/RecordProtocol.cs:\r
+ * Mono.Security.Protocol.Tls/SslClientStream.cs:\r
+ * Mono.Security.Protocol.Tls/SslServerStream.cs:\r
+\r
+ - Reimplementation of TLS/SSL Alert Protocol.
- TlsCipherSuiteFactory.cs: Changed names of private methods.
+2004-02-20 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
- TlsSslCipherSuite.cs: Replaced implementations of key generation methods with a throw new NotSupportedException().
+ * Mono.Security.Protocol.Tls.Handshake.Client/SslClientCertificate.cs:
+ - Improved exception handling.
-2003-10-20 Carlos Guzmán Álvarez <carlosga@telefonica.net>
+2004-02-18 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
+\r
+ * Mono.Security.Protocol.Tls/CipherAlgorithmType.cs:\r
+ * Mono.Security.Protocol.Tls/HashAlgorithmType.cs:\r
+ * Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs:\r
+\r
+ - Added Serializable attribute.\r
+\r
+ * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
+ * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:\r
+ * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:\r
+ * Mono.Security.Protocol.Tls/TlsContext.cs:\r
+\r
+ - Added some optimizations proposed by Sebastien Pouliot.\r
+\r
+ * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:\r
+\r
+ - Changes on Common Name detection and certificate error handling ( Thanks to Sebastien Pouliot for his feedback ).\r
- TlsCupherSuite.cs: Fixed padding length calculation on record encryption.
-
- TlsSessionContext.cs: Added new CompressionMethod property.
- Added new MAX_FRAGMENT_SIZE constant.
+2004-02-18 Sebastien Pouliot <sebastien@ximian.com>
- TlsSession.cs: Removed MaxFragmentSize property.
+ * SslClientStream.cs: Fixed (inverted) condition for ServerCertificate.
+ * SecurityProtocolType.cs: Added [Serializable] to enum to match MS
+ implementation.
- TlsSocket.cs: Replaced use of TlsSesison.MaxFragmentSize by TlsSessionContext.MAX_FAGMENT_SIZE
-
- TlsSessionSettings.cs: Added new CompressionMethod property.
+2004-02-17 Carlos Guzmán Álvarez <carlosga@telefonica.net>
- * Abstracted CipherSuite classes for allow work with other protocol versions.
+ * Mono.Security.Protocol.Tls/SslClientStream.cs:
- * Added new files :
+ - Added changes to security properties for check that the handshake is finished.
- TlsAbstractCipherSuite.cs
-
- TlsSslCipherSuite.cs
+ * Mono.Security.Protocol.Tls/SslClientStream.cs:
- TlsCipherSuiteFactory.cs
+ - Added changes for bring async methods to work ( Thanks to Sebastien Pouliot )
- TlsCompressionMethod.cs
+ - Reworked the record fragmentation.
- * Added new cipher suites definitions based on RFC3268 - (http://www.ietf.org/rfc/rfc3268.txt)
+ - Fix for send the close notify alert in the Close method
+ only if the Handshake is fully negotiated.
- * Added two new supported ciphersuites for TLS protocol:
- TLS_RSA_WITH_AES_256_CBC_SHA
+2004-02-16 Carlos Guzmán Álvarez <carlosga@telefonica.net>
- TLS_RSA_WITH_AES_128_CBC_SHA
+ * Mono.Security.Protocol.Tls/TlsCipherSuiteFactory.cs:
- * Moved key generation stuff to specific cipher suite classes.
+ - Changed ciphersuites order of preference ( Thanks to Sebastien Pouliot for his feedback ).
-2003-10-20 Pedro Martínez Juliá <yoros@wanadoo.es>
+2004-02-15 Carlos Guzmán Álvarez <carlosga@telefonica.net>
+
+ * Mono.Security.Protocol.Tls/SslClientStream.cs:
+
+ - Added specific control od available data for Network Streams
+ on Read ( Thanks to Francisco Figueiredo Jr. for his feedback ).
+
+ - Removed test code.
- * AssemblyInfo.cs: commented out KeyFile reference.
+2004-02-14 Carlos Guzmán Álvarez <carlosga@telefonica.net>
- * TlsSession.cs: changed Math.Pow for System.Math.Pow because of MCS
- bug with namespace resolving.
+ * Mono.Security.Protocol.Tls/SslClientStream.cs:
+ - Removed test code.
+
+2003-11-17 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
+\r
+ * Mono.Security.Protocol.Tls/SslClientStream.cs:\r
+\r
+ Removed ReadByte method, use innerStream.ReadByte() method instead.\r
+\r
+2003-11-13 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
+\r
+ * Added implementation of an SslClientStream class similar to the MS .NET Framework 1.2 documentation.\r
+\r
+ The next files are no more needed:\r
+\r
+ - TlsSession.cs\r
+\r
+ - TlsNetworkStream.cs\r
+\r
+ - TlsSocket.cs\r
+\r
+ - TlsSessionState.cs\r
+\r
+ The next files are renamed:\r
+\r
+ - TlsSessionSettings.cs -> TlsClientSettings.cs\r
+\r
+ - TlsSessionContext.cs -> TlsContext.cs\r
+\r
+ The next files are new:\r
+\r
+ - SslClientStream.cs ( the name is non definitive yet )\r
+\r
+ The next files where changed to reflect the new canges:\r
+\r
+ - TlsHandshakeMessage.cs\r
+\r
+ - TlsClientCertificate.cs\r
+\r
+ - TlsClientCertificateVerify.cs\r
+\r
+ - TlsClientFinished.cs\r
+\r
+ - TlsClientHello.cs\r
+\r
+ - TlsClientKeyExchange.cs\r
+\r
+ - TlsServerCertificate.cs\r
+\r
+ - TlsServerCertificateRequest.cs\r
+\r
+ - TlsServerFinished.cs\r
+\r
+ - TlsServerHello.cs\r
+\r
+ - TlsServerHelloDone.cs\r
+\r
+ - TlsServerKeyExchange.cs\r
+\r
+ - TlsAlert.cs\r
+\r
+ - TlsCloseNotifyAlert.cs\r
+\r
+ \r
+2003-11-12 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
+\r
+ * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:\r
+ \r
+ - Changes for give full error message only in debug mode ( Thanks to Sebastién Pouliot. )\r
+ \r
+ * Mono.Security.Protocol.Tls/TlsProtocol.cs:\r
+ \r
+ - Renamed to SecurityProtocolType.cs ( for match .NET 1.2 )\r
+ \r
+ * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:\r
+ \r
+ - Renamed to MD5SHA1.cs ( Thanks to Sebastién Pouliot. )\r
+ \r
+ * Mono.Security.Cryptography/TlsCompressionMethod.cs:\r
+ \r
+ - Renamed to SecurityCompressionType.\r
+ \r
+ * Mono.Security.Protocol.Tls/CipherAlgorithmType.cs:\r
+ * Mono.Security.Protocol.Tls/HashAlgorithmType.cs:\r
+ * Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs:\r
+ \r
+ - New enumerations that matches .NET 1.2 definitions with some minor differences.\r
+ \r
+ * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
+ * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:\r
+ * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:\r
+ * Mono.Security.Protocol.Tls/TlsSessionContext.cs:\r
+ \r
+ - Added changes for make use of new enumerations.\r
+ \r
+ * Mono.Security.Protocol.Tls/TlsClientStream.cs:\r
+ \r
+ - Added new informative properties that matches .NET 1.2 SslClientStream\r
+ ( Not all the properties are implemented yet ).\r
+\r
+\r
+2003-11-10 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
+\r
+ * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:\r
+\r
+ - Fixed invalid alert message.\r
+\r
+ * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
+ * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:\r
+ * Mono.Security.Cryptography/HMAC.cs:\r
+ * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:\r
+ * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:\r
+\r
+ - Changed ( Thanks to Sebastién Pouliot for his feedback )\r
+\r
+ SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider();\r
+ MD5CryptoServiceProvider sha = new MD5CryptoServiceProvider();\r
+\r
+ to\r
+\r
+ HashAlgorithm sha = SHA1.Create();\r
+ HashAlgorithm md5 = MD5.Create(); \r
+
+2003-11-04 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
+\r
+ * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
+\r
+ - Added custom padding for record encryption.\r
+\r
+\r
+2003-11-03 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
+\r
+ * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessages.cs:\r
+ \r
+ - Removed file.\r
+\r
+ * Mono.Security.Protocol.Tls/TlsSslHandshakeHash.cs:\r
+ \r
+ - New class for handshake hashes calculation on SSL3 protocol.\r
+\r
+ * Mono.Security.Protocol.Tls/TlsSessionContext.cs:\r
+ \r
+ - Fixed mac keys clearing for SSL3 protocol.\r
+\r
+ * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:\r
+ * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:\r
+ \r
+ - Added changes for make use of new TlsSslHandshakeHash class.\r
+ \r
+ * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:\r
+ \r
+ - Added initial implementation for SSL3 protocol.\r
+ \r
+ * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:\r
+ \r
+ - New class for md5-sha hash calculation.\r
+ \r
+ * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:\r
+ * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:\r
+ * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:\r
+ * Mono.Security.Protocol.Tls.Handshake.Client/TlsHandshakeMessage.cs:\r
+ \r
+ - Make use of new MD5SHA1CryptoServiceProvider class.\r
+ \r
+ * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:\r
+ \r
+ - Added initial implementation (not finished).\r
+ \r
+ * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:\r
+ \r
+ - Minor change to message processing.\r
+\r
+ - Changed verify method name to verifySignature.\r
+ \r
+ * Mono.Security.Protocol.Tls/TlsSessionContext.cs:\r
+ \r
+ - Changed handshakeHashes member to be an TlsStream.\r
+\r
+2003-10-28 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
+\r
+ * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
+ * Mono.Security.Protocol.Tls/TlsSessionSettings.cs:\r
+ * Mono.Security.Protocol.Tls/TlsServerSettings.cs:\r
+ * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:\r
+ * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientKeyExchange.cs:\r
+ * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:\r
+ * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:\r
+\r
+ - Added changes for make use of X509 classes from mono.\r
+\r
+2003-10-23 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
+\r
+ * Added partial implementation of SSL3 protocol ( not finished yet ).\r
+\r
+ * TlsAbstractCipherSuite.cs: Renamed to CipherSuite.cs.\r
+\r
+ * Removed AssemblyInfo.cs file.\r
+\r
+2003-10-21 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
+\r
+ TlsCipherSuiteFactory.cs: Changed names of private methods.\r
+\r
+ TlsSslCipherSuite.cs: Replaced implementations of key generation methods with a throw new NotSupportedException().\r
+\r
+\r
+2003-10-20 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
+\r
+ TlsCupherSuite.cs: Fixed padding length calculation on record encryption.\r
+ \r
+ TlsSessionContext.cs: Added new CompressionMethod property.\r
+ Added new MAX_FRAGMENT_SIZE constant.\r
+\r
+ TlsSession.cs: Removed MaxFragmentSize property.\r
+\r
+ TlsSocket.cs: Replaced use of TlsSesison.MaxFragmentSize by TlsSessionContext.MAX_FAGMENT_SIZE\r
+ \r
+ TlsSessionSettings.cs: Added new CompressionMethod property.\r
+\r
+ * Abstracted CipherSuite classes for allow work with other protocol versions.\r
+\r
+ * Added new files :\r
+\r
+ TlsAbstractCipherSuite.cs \r
+ \r
+ TlsSslCipherSuite.cs\r
+\r
+ TlsCipherSuiteFactory.cs\r
+\r
+ TlsCompressionMethod.cs\r
+\r
+ * Added new cipher suites definitions based on RFC3268 - (http://www.ietf.org/rfc/rfc3268.txt)\r
+\r
+ * Added two new supported ciphersuites for TLS protocol:\r
+\r
+ TLS_RSA_WITH_AES_256_CBC_SHA\r
+\r
+ TLS_RSA_WITH_AES_128_CBC_SHA\r
+\r
+ * Moved key generation stuff to specific cipher suite classes.\r
+\r
+2003-10-20 Pedro Martínez Juliá <yoros@wanadoo.es>\r
+\r
+ * AssemblyInfo.cs: commented out KeyFile reference.\r
+\r
+ * TlsSession.cs: changed Math.Pow for System.Math.Pow because of MCS\r
+ bug with namespace resolving.\r
+\r