2006-09-11  Sebastien Pouliot  <sebastien@ximian.com>

	* HandshakeMessage.cs: EncodeMessage is called very often so we avoid
	many allocations by not creating a TlsStream and by not calling 
	WriteInt24 (IPAddress.HostToNetworkOrder and BitConverter.GetBytes).
	We also cache the encoded result to avoid computing/allocating the 
	encoded message twice (in most cases) for the handshake. Added a
	Compare static method to compare byte arrays (easier to step out when
	debugging).

2004-07-14  Carlos Guzman Alvarez  <carlosga@telefonica.net>

	* Updated license head in c# source files for use
	always the same format.

2003-11-17 Carlos Guzmán Álvarez  <carlosga@telefonica.net>

	* Mono.Security.Protocol.Tls/SslClientStream.cs:

		Removed ReadByte method, use innerStream.ReadByte() method instead.

2003-11-13 Carlos Guzmán Álvarez  <carlosga@telefonica.net>

	* Added implementation of an SslClientStream class similar to the MS .NET Framework 1.2 documentation.

		The next files are no more needed:

			- TlsSession.cs

			- TlsNetworkStream.cs

			- TlsSocket.cs

			- TlsSessionState.cs

		The next files are renamed:

			- TlsSessionSettings.cs -> TlsClientSettings.cs

			- TlsSessionContext.cs -> TlsContext.cs

		The next files are new:

			- SslClientStream.cs ( the name is non definitive yet )

		The next files where changed to reflect the new canges:

			- TlsHandshakeMessage.cs

			- TlsClientCertificate.cs

			- TlsClientCertificateVerify.cs

			- TlsClientFinished.cs

			- TlsClientHello.cs

			- TlsClientKeyExchange.cs

			- TlsServerCertificate.cs

			- TlsServerCertificateRequest.cs

			- TlsServerFinished.cs

			- TlsServerHello.cs

			- TlsServerHelloDone.cs

			- TlsServerKeyExchange.cs

			- TlsAlert.cs

			- TlsCloseNotifyAlert.cs

		
2003-11-12 Carlos Guzmán Álvarez  <carlosga@telefonica.net>

	* Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
	
		- Changes for give full error message only in debug mode ( Thanks to Sebastién Pouliot. )
		
	* Mono.Security.Protocol.Tls/TlsProtocol.cs:
	
		- Renamed to SecurityProtocolType.cs ( for match .NET 1.2 )
	
	* Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
	
		- Renamed to MD5SHA1.cs ( Thanks to Sebastién Pouliot. )
		
	* Mono.Security.Cryptography/TlsCompressionMethod.cs:
	
		- Renamed to SecurityCompressionType.
		
	* Mono.Security.Protocol.Tls/CipherAlgorithmType.cs:
	* Mono.Security.Protocol.Tls/HashAlgorithmType.cs:
	* Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs:
	
		- New enumerations that matches .NET 1.2 definitions with some minor differences.
	
	* Mono.Security.Protocol.Tls/CipherSuite.cs:
	* Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
	* Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
	* Mono.Security.Protocol.Tls/TlsSessionContext.cs:
	
		- Added changes for make use of new enumerations.
	
	* Mono.Security.Protocol.Tls/TlsClientStream.cs:
	
		- Added new informative properties that matches .NET 1.2 SslClientStream
		( Not all the properties are implemented yet ).


2003-11-10 Carlos Guzmán Álvarez  <carlosga@telefonica.net>

	* Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:

		- Fixed invalid alert message.

	* Mono.Security.Protocol.Tls/CipherSuite.cs:
	* Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
	* Mono.Security.Cryptography/HMAC.cs:
	* Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
	* Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:

		- Changed ( Thanks to Sebastién Pouliot for his feedback )

			SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider();
			MD5CryptoServiceProvider sha = new MD5CryptoServiceProvider();

			to

			HashAlgorithm sha = SHA1.Create();
			HashAlgorithm md5 = MD5.Create(); 

2003-11-04 Carlos Guzmán Álvarez <carlosga@telefonica.net>

	* Mono.Security.Protocol.Tls/CipherSuite.cs:

		- Added custom padding for record encryption.


2003-11-03 Carlos Guzmán Álvarez <carlosga@telefonica.net>

	* Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessages.cs:
	
		- Removed file.

	* Mono.Security.Protocol.Tls/TlsSslHandshakeHash.cs:
	
		- New class for handshake hashes calculation on SSL3 protocol.

	* Mono.Security.Protocol.Tls/TlsSessionContext.cs:
	
		- Fixed mac keys clearing for SSL3 protocol.

	* Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
	* Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:
	
		- Added changes for make use of new TlsSslHandshakeHash class.
	
	* Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:
	
		- Added initial implementation for SSL3 protocol.
	
	* Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
	
		- New class for md5-sha hash calculation.
							
	* Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:
	* Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:
	* Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
	* Mono.Security.Protocol.Tls.Handshake.Client/TlsHandshakeMessage.cs:
	
		- Make use of new MD5SHA1CryptoServiceProvider class.
		
	* Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
	
		- Added initial implementation (not finished).
			
	* Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
	
		- Minor change to message processing.

		- Changed verify method name to verifySignature.
			
	* Mono.Security.Protocol.Tls/TlsSessionContext.cs:
	
		- Changed handshakeHashes member to be an TlsStream.

2003-10-28 Carlos Guzmán Álvarez <carlosga@telefonica.net>

	* Mono.Security.Protocol.Tls/CipherSuite.cs:
	* Mono.Security.Protocol.Tls/TlsSessionSettings.cs:
	* Mono.Security.Protocol.Tls/TlsServerSettings.cs:
	* Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
	* Mono.Security.Protocol.Tls.Handshake.Client/TlsClientKeyExchange.cs:
	* Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
	* Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:

		- Added changes for make use of X509 classes from mono.

2003-10-23 Carlos Guzmán Álvarez <carlosga@telefonica.net>

	* Added partial implementation of SSL3 protocol ( not finished yet ).
