TLS/SSL library - PgSqlClient - ADO.NET Data Provider for PostgreSQL 7.4+
---------------   -----------   -----------------------------------------

2004-03-08 Carlos Guzman Alvarez  <carlosga@telefonica.net>

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

		- Callback cleanup.


2004-03-06 Carlos Guzman Alvarez  <carlosga@telefonica.net>

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

		- Added PrivateKeySelection event and callback.

		- Added methods for event raising.

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

	* Mono.Security.Protocol.Tls.Handshake.Server/TlsClientHello.cs:

		- Initial implementation ( not finished ) 

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

		- Implemented flow for the server handshake.

	* Mono.Security.Protocol.Tls/Ciphersuite.cs:
	* Mono.Security.Protocol.Tls/TlsCiphersuite.cs:
	* Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
	* Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:
	* Mono.Security.Protocol.Tls/SslClientStream.cs:
	* Mono.Security.Protocol.Tls/TlsServerSettings.cs:
	* Mono.Security.Protocol.Tls/TlsClientSettings.cs:
	* Mono.Security.Protocol.Tls/ClientContext.cs:
	* Mono.Security.Protocol.Tls.Handshake.Client/*.cs:
	* Mono.Security.Protocol.Tls.Handshake.Server/*.cs:

		- Changes for make use of the renamed classes and enums.

	* Mono.Security.Protocol.Tls.Handshake/TlsHandshakeType.cs:

		- Renamed to HandshakeType.cs (Enum and file)

	* Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessage.cs:

		- Renamed to HandshakeMessage.cs (Class and file)

	* Mono.Security.Protocol.Tls.Handshake/TlsClientCertificateType.cs:

		- Renamed to ClientCertificateType.cs (Enum and file)

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

		- Renamed to Alert (Class, enums and file)

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

		- Renamed to ContentType.cs ( Enum and file )
 
	* Mono.Security.Protocol.Tls/TlsCiphersuiteCollection.cs:

		- Renamed to CiphersuiteCollection.cs ( Class and file )

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

		- Renamed to CiphersuiteCollection.cs ( Class and file )

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

		- Renamed to SslHandshakeHash.cs ( Class and file )

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

		- Renamed to SslCipherSuite.cs ( Class and file )


2004-02-25 Carlos Guzman Alvarez  <carlosga@telefonica.net>

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

		- New file.

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

		- Modified the level of some alerts according to the RFC.

	* Mono.Security.Protocol.Tls/SslClientStream.cs:
	* Mono.Security.Protocol.Tls/SslServerStream.cs:
	* Mono.Security.Protocol.Tls/Context.cs:
	* Mono.Security.Protocol.Tls/ClientContext.cs:
	* Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
	* Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:

		- Added changes for better handling of ClientHelloRequest messages.

2004-02-24 Carlos Guzman Alvarez  <carlosga@telefonica.net>

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

		- Removed File.

	* Mono.Security.Protocol.Tls.Alerts/TlsAlerts.cs:
	* Mono.Security.Protocol.Tls/RecordProtocol.cs:
	* Mono.Security.Protocol.Tls/SslClientStream.cs:
	* Mono.Security.Protocol.Tls/SslServerStream.cs:

		- Reimplementation of TLS/SSL Alert Protocol.

2004-02-23 Carlos Guzman Alvarez  <carlosga@telefonica.net>

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

		- Removed file, implementation is now present in:

			Context.cs
			ClientContext.cs
			ServerContext.cs

	* Mono.Security.Protocol.Tls/Context.cs:
	* Mono.Security.Protocol.Tls/ClientContext.cs:
	* Mono.Security.Protocol.Tls/ServerContext.cs:
	* Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:

		 - New classes.

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

		- Added implementation for properties, and read/write methods
		as in SslClientStream.

		- doHandshake method is not implemented yet.

	* Mono.Security.Protocol.Tls/SslClientStream.cs:
	* Mono.Security.Protocol.Tls/RecordProtocol.cs:
	* Mono.Security.Protocol.Tls/Ciphersuite.cs:
	* Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
	* Mono.Security.Protocol.Tls.Alerts/TlsCloseNotifyAlert.cs:
	* Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessage.cs:
	* Mono.Security.Protocol.Tls.Handshake.Client/*.cs:
	* Mono.Security.Protocol.Tls.Handshake.Server/*.cs:

		- Added changes for make use of the new Context implementation.

2004-02-20 Carlos Guzmn lvarez  <carlosga@telefonica.net>

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

		- Added changes for handle te SecurityProtocolType enum
		as a Flags enum.

	* Mono.Security.Protocol.Tls.Handshake.Client/TlsClientHello.cs:

		- Let the Ssl3 message to be process in the same way as the Tls1.

	* Mono.Security.Protocol.Tls.Handshake.Client/TlsClientHello.cs:
		
		- Added changes for use the Protocol version send by the server

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

		- Compute the premaster secret using the protocol version sent in 
		the ClientHello message instead of the actual protocol version.


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

		- Removed no more needed file.

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

		- Added 4 new properties:

			* Message

			* IsWarning

			* IsFatal

			* IsCloseNotify

		- Return always the same message when working in release mode
		(The authentication or decryption has failed.)

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

		- Added control over the CloseNotify Alert
		to BeginRead method.

		- Return true in the server certificate validation method
		if there are no errors.

2004-02-19 Carlos Guzmn lvarez  <carlosga@telefonica.net>

	* Mono.Security.Protocol.Tls/RecordProtocol.cs:
	* Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:

		- New classes for handle the SSL/TLS record protocol.

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

		- Changes to the sync code.

		- Record protocol stuff moved to the new classes.

		- Removed Warning event.

2004-02-18 Carlos Guzmn lvarez  <carlosga@telefonica.net>

	* Mono.Security.Protocol.Tls/CipherAlgorithmType.cs:
	* Mono.Security.Protocol.Tls/HashAlgorithmType.cs:
	* Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs:

		- Added Serializable attribute.

	* Mono.Security.Protocol.Tls/CipherSuite.cs:
	* Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
	* Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
	* Mono.Security.Protocol.Tls/TlsContext.cs:

		- Added some optimizations proposed by Sebastien Pouliot.

	* Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:

		- Changes on Common Name detection and certificate error handling ( Thanks to Sebastien Pouliot for his feedback ).

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

		- Added Serializable attribute ( Thanks to Sebastien Pouliot for his feedback ).

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

		- Fix for ServerCertificate property

2004-02-17 Carlos Guzmn lvarez  <carlosga@telefonica.net>

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

		- Added changes for check that the handshake is finished 
		to the security properties.

	* Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificate.cs:

		- Raise the Client Certificate event.

	* Mono.Security.Protocol.Tls/CipherSuite.cs:
	* Mono.Security.Protocol.Tls/SslClientStream.cs:
	* Mono.Security.Protocol.Tls/SecurityProtocolType.cs:
	* Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
	* Mono.Security.Protocol.Tls/TlsCipherSuiteCollection.cs:
	* Mono.Security.Protocol.Tls/TlsCipherSuiteFactory.cs:
	* Mono.Security.Protocol.Tls/TlsContext.cs:
	* Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessage.cs:
	* Mono.Security.Protocol.Tls.Handshake.Client/TlsClientHello.cs:

		- Change the SecurityProtocolType enum to mtch .NET 1.2 documentation definition.

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

		- Impement SelectedClientCertificate and ServerCertificate properties.

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

		- Added changes for implement Async methods ( Tanks to Sebastien Pouliot )


2004-02-16 Carlos Guzmn lvarez  <carlosga@telefonica.net>

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

		- Changed the cipher suites preference order ( Thanks to Sebastien Pouliot for his feedback )


2004-02-15 Carlos Guzmn 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.

2004-02-10 Carlos Guzmn lvarez  <carlosga@telefonica.net>

	* Mono.Security.Cryptography/PKCS1.cs

		- Fixed typo.

2004-02-09 Carlos Guzmn lvarez  <carlosga@telefonica.net>

	* Changed license headers to remove accents.

2003-12-23 Carlos Guzmn lvarez  <carlosga@telefonica.net>

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

		- Try to improve record reading.

2003-12-21 Carlos Guzmn lvarez  <carlosga@telefonica.net>

	* Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificate.cs:

		- Send always the first certificate.

	* Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:

		- Added changes for correct verification of the signed data sent 
		by the server.

	* Mono.Security.Cryptography/PKCS1.cs:

		- Added change to Encode_v15 method for allow correct
		encoding of hash algorithms that doesn't have an OID
		like the MD5SHA1 hash used in SSL/TLS protocols.

	* Added files from mono:: project that are going to be needed
	for client authentication:

		Mono.Math/*

		Mono.Math.Prime/*

		Mono.Math.Prime.Generator/*

		Mono.Security.Cryptography/RSAManaged.cs

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

		- Create RSA as an RSAManaged instance.
		
	* Mono.Security.Protocol.Tls/RSASslSignatureFormatter.cs:
	* Mono.Security.Protocol.Tls/RSASslSignatureDeformatter.cs:
		
		- Changed key field to be of RSA type.

2003-12-14 Carlos Guzmn lvarez  <carlosga@telefonica.net>

	* Mono.Security.Protocol.Tls/RSASslSignatureFormatter.cs:
	* Mono.Security.Protocol.Tls/RSASslSignatureDeformatter.cs:

		- Added new classes for implement in the future RSA-SSL signatures.

	* Changed #region names in all source files.

2003-12-09 Carlos Guzmn lvarez  <carlosga@telefonica.net>

	* Mono.Security.Protocol.Handshake.Client/TlsServerCertificate.cs:
		
		- Fixed message (but not working yet - we need RSA signing 
		capabilitites with MD5SHA1 hash).	

	* Mono.Security.Protocol.Handshake.Client/TlsServerCertificate.cs:
	
		- Retrict certificate validation to the first validation.
		( real validation needs to be made using a chain )
		
		- Improved domain validation by making a IP checking between
		the target host IP and the certificate domain IP.

		- Fixed error list handling on certificate validation.	

2003-11-28 Carlos Guzmn lvarez  <carlosga@telefonica.net>

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

		- Added new exceptions.

2003-11-23 Carlos Guzmn lvarez  <carlosga@telefonica.net>

	* Mono.Security.Protocol.Tls/SslServerStream.cs:
	
		- Added new SslServerStream class with empty methods.
		
	* Mono.Security.Protocol.Tls.Handshake.Server:
	
		- New directory with class definitions of handshake message classes
		for the server implementation.
		
		- Class names for server handshake messages are the same as for
		client implementation.
		
	* Mono.Security.Protocol.Tls/SslClientStream.cs:
	
		- Throw exception in constrctors when the targetHost or the streams are invalid.
		
		- Added correct exception throwing in read/write methods.
		
		- Added initial implementation of BeginRead and EndRead methods.
		
	* Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessage.cs:
	
		- Added new constructor.
		
		- Changed UpdateSession() method to Update() and replaced method
		name in derived classes.
		
------------------------- Updated Mono Sources ----------------------

2003-11-22 Carlos Guzmn lvarez  <carlosga@telefonica.net>

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

		- Better handling of padding bytes on message encryption.

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

		- Uncommented AES ciphersuites.


2003-11-21 Carlos Guzmn lvarez  <carlosga@telefonica.net>

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

		- Add correct implementation of RaiseClientCertificateSelection

2003-11-17 Carlos Guzmn lvarez  <carlosga@telefonica.net>

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

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

2003-11-13 Carlos Guzmn 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 Guzmn lvarez  <carlosga@telefonica.net>

	* Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
	
		- Changes for give full error message only in debug mode ( Thanks to Sebastin 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 Sebastin 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 Guzmn 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 Sebastin 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 Guzmn lvarez <carlosga@telefonica.net>

	* Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:

		- Commented server certificate signature verification.

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

		- Renamed ServerCertificates property to Certificates.


----------------- Updated Mono Sources -----------------------



2003-11-04 Carlos Guzmn lvarez <carlosga@telefonica.net>

	* CipherSuite.cs:

		- Added custom padding for record encryption.


2003-11-03 Carlos Guzmn 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 Guzmn 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.

	* Mono.Security/ASN1Convert.cs:
	* Mono.Security.X509/*.*:
		
		- New files from mono for allow basic certificate validation.


2003-10-21 Carlos Guzmn lvarez <carlosga@telefonica.net>

	* Added specific changelog file for the TLS/SSL implementation.

	* Added partial implementation of SSL3 protocol.




