2004-02-26 Carlos Guzman Alvarez <carlosga@telefonica.net>
[mono.git] / mcs / class / Mono.Security / Mono.Security.Protocol.Tls / ChangeLog
index 6c39fdae559fe2015a466c2c24e96df42046f90e..6b750e78524c062e790d519587acbc33c28e74fc 100644 (file)
-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