2010-03-02 Jb Evain <jbevain@novell.com>
[mcs.git] / class / Mono.Security / Mono.Security.Protocol.Tls.Handshake.Client / ChangeLog
blobb3a60e26dcad9545ce2c19ef6f858332bb780ba7
1 2010-03-01 Gonzalo Paniagua Javier <gonzalo@novell.com>
3         * TlsServerCertificate.cs:
4         added a new callback for certificate validation that gets all the
5         certificates received from the server/client. The callee should
6         build the chain and validate it.
8 2009-08-20  Sebastien Pouliot  <sebastien@ximian.com>
10         * TlsServerCertificate.cs: If no usage information is available then
11         assume it's ok for SSL since we'll (later) check that the CN contains
12         a host name (that match the server) and such a certificate wouldn't
13         be much useful for anything but SSL/TLS. Fix the new stmp.gmail.com
14         certificate usage failure.
16 2007-12-15  Sebastien Pouliot  <sebastien@ximian.com>
18         * TlsServerCertificate.cs: Add support for wilcard (*) when matching
19         the target host with the certificate. Fix bug #346812
21 2007-05-22  Sebastien Pouliot  <sebastien@ximian.com>
23         * TlsClientCertificate.cs: If possible avoid to export the private key
24         (it could be non-exportable in a different RSA class implementation).
25         Patch from Roy Versteeg to fix #81592.
26         * TlsClientCertificateVerify.cs: Add chain support for x.509 client 
27         certificates. Based on Roy Versteeg patch to fix #80557.
29 2006-12-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
31         * TlsServerCertificate.cs: typo.
33 2006-09-11  Sebastien Pouliot  <sebastien@ximian.com>
35         * TlsClientFinished.cs: Use Write.Cipher instead of Cipher. Remove 
36         usage of TlsStream in ProcessAsSsl3.
37         * TlsClientKeyExchange.cs: Use Negotiating.Cipher instead of Cipher.
38         Refactor to avoid code duplication between SSL3 and TLS.
39         * TlsServerCertificate.cs: Use Negotiating.Cipher instead of Cipher.
40         * TlsServerFinished.cs: Use Current.Cipher instead of Cipher. Use 
41         Compare to test client and server digests equality. Remove usage of 
42         TlsStream in ProcessAsSsl3.
43         * TlsServerHello.cs: Use Negotiating.Cipher instead of Cipher. Remove
44         usage of TlsStream to reduce memory allocations. Remove method 
45         CompareSessionId and use the new base class Compare method instead.
47 2006-03-16  Sebastien Pouliot  <sebastien@ximian.com>
49         * TlsClientHello.cs: Check to see if we already have a known session
50         (past or concurrent) with the same target host. If so the use this
51         session id to try to resume (i.e. abbreviated handshake).
52         * TlsServerFinished.cs: Don't reset the hasndshake stream here. The 
53         stream must be resetted once BOTH the client and the server are done.
54         The order of message can be different if we use an abbreviated 
55         handshake sequence which leads to an invalid handshake.
56         * TlsServerHello.cs: Add this session info to the client cache. If the
57         server sends the same session id (as we supplied) then we MUST do an 
58         abbreviated handshake.
60 2005-11-23  Sebastien Pouliot  <sebastien@ximian.com>
62         * TlsServerCertificate.cs: Add support for Netscape Server Gated 
63         Crypto (2.16.840.1.113730.4) as a valid server-side EKU OID. Fix bug
64         #76804.
66 2005-06-14  Sebastien Pouliot  <sebastien@ximian.com>
68         * TlsClientCertificate.cs: Add support for _optional_ mutual 
69         authentication. SSL3 and TLS1 deals differently with this. SSL3 tested
70         with OpenSSL, TSL1 tested with OpenSSL and LDAPS/AD.
72 2005-04-12  Sebastien Pouliot  <sebastien@ximian.com>
74         * TlsClientCertificateVerify.cs: Add missing data length (16 bits - 
75         not to be confused with the record 24 bits length) before the RSA
76         signature of the MD5SHA1 hash. Fix #71696.
78 2004-05-11 Carlos Guzman Alvarez  <carlosga@telefonica.net>
80         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
82                 - Added fix for better handling of exceptions when
83                 building the X509 Certificate chain.
85 2004-04-22  Sebastien Pouliot  <sebastien@ximian.com>
87         * TlsClientCertificateVerify.cs: Use Buffer.BlockCopy instead of 
88         Array.Copy.
89         * TlsServerCertificate.cs: Changed KeyUsage to KeyUsages and CertType 
90         to CertTypes.
92 2004-03-19  Sebastien Pouliot  <sebastien@ximian.com>
94         * TlsClientKeyExchange.cs: Fixed key pair used to encrypt pre-master
95         secret for exportable ciphers - must use the public key received in 
96         ServerKeyExchange.
98 2004-03-10 Carlos Guzman Alvarez  <carlosga@telefonica.net>
100         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
101         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificateRequest.cs:
102         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:
103         * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificateVerify.cs:
104         * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerCertificateRequest.cs:
105         * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerFinished.cs:
107                 - Fixed meesage type definition.
109 2004-03-04 Carlos Guzman Alvarez  <carlosga@telefonica.net>
111         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerHelloDone.cs:
112         * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerHelloDone.cs:
114         - Fixed message type.
116 2004-02-26  Sebastien Pouliot  <sebastien@ximian.com>
118         * TlsServerCertificate.cs: Certificate validation has been activated.
120 2004-02-26 Carlos Guzman Alvarez  <carlosga@telefonica.net>
122         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:
124                 - Added changes for better handling of ClientHelloRequest messages.
126 2004-02-21  Carlos Guzman Alvarez  <carlosga@telefonica.net>
128     * TlsServerHello: Fix for handle SecurityProtocolType.Default.
130 2004-02-20  Sebastien Pouliot  <sebastien@ximian.com>
132         * TlsServerCertificate.cs: Added code to validate the server X.509
133         certificate (identity, usage) and it's chain to a trusted root.
134         Note that the verification is commented for the time being.
136 2004-02-14 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
138     * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
140         - Removed test code.
142 2003-11-17 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
144         * Mono.Security.Protocol.Tls/SslClientStream.cs:
146                 Removed ReadByte method, use innerStream.ReadByte() method instead.
148 2003-11-13 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
150         * Added implementation of an SslClientStream class similar to the MS .NET Framework 1.2 documentation.
152                 The next files are no more needed:
154                         - TlsSession.cs
156                         - TlsNetworkStream.cs
158                         - TlsSocket.cs
160                         - TlsSessionState.cs
162                 The next files are renamed:
164                         - TlsSessionSettings.cs -> TlsClientSettings.cs
166                         - TlsSessionContext.cs -> TlsContext.cs
168                 The next files are new:
170                         - SslClientStream.cs ( the name is non definitive yet )
172                 The next files where changed to reflect the new canges:
174                         - TlsHandshakeMessage.cs
176                         - TlsClientCertificate.cs
178                         - TlsClientCertificateVerify.cs
180                         - TlsClientFinished.cs
182                         - TlsClientHello.cs
184                         - TlsClientKeyExchange.cs
186                         - TlsServerCertificate.cs
188                         - TlsServerCertificateRequest.cs
190                         - TlsServerFinished.cs
192                         - TlsServerHello.cs
194                         - TlsServerHelloDone.cs
196                         - TlsServerKeyExchange.cs
198                         - TlsAlert.cs
200                         - TlsCloseNotifyAlert.cs
202                 
203 2003-11-12 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
205         * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
206         
207                 - Changes for give full error message only in debug mode ( Thanks to Sebastién Pouliot. )
208                 
209         * Mono.Security.Protocol.Tls/TlsProtocol.cs:
210         
211                 - Renamed to SecurityProtocolType.cs ( for match .NET 1.2 )
212         
213         * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
214         
215                 - Renamed to MD5SHA1.cs ( Thanks to Sebastién Pouliot. )
216                 
217         * Mono.Security.Cryptography/TlsCompressionMethod.cs:
218         
219                 - Renamed to SecurityCompressionType.
220                 
221         * Mono.Security.Protocol.Tls/CipherAlgorithmType.cs:
222         * Mono.Security.Protocol.Tls/HashAlgorithmType.cs:
223         * Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs:
224         
225                 - New enumerations that matches .NET 1.2 definitions with some minor differences.
226         
227         * Mono.Security.Protocol.Tls/CipherSuite.cs:
228         * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
229         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
230         * Mono.Security.Protocol.Tls/TlsSessionContext.cs:
231         
232                 - Added changes for make use of new enumerations.
233         
234         * Mono.Security.Protocol.Tls/TlsClientStream.cs:
235         
236                 - Added new informative properties that matches .NET 1.2 SslClientStream
237                 ( Not all the properties are implemented yet ).
240 2003-11-10 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
242         * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
244                 - Fixed invalid alert message.
246         * Mono.Security.Protocol.Tls/CipherSuite.cs:
247         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
248         * Mono.Security.Cryptography/HMAC.cs:
249         * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
250         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
252                 - Changed ( Thanks to Sebastién Pouliot for his feedback )
254                         SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider();
255                         MD5CryptoServiceProvider sha = new MD5CryptoServiceProvider();
257                         to
259                         HashAlgorithm sha = SHA1.Create();
260                         HashAlgorithm md5 = MD5.Create(); 
262 2003-11-04 Carlos Guzmán Álvarez <carlosga@telefonica.net>
264         * Mono.Security.Protocol.Tls/CipherSuite.cs:
266                 - Added custom padding for record encryption.
269 2003-11-03 Carlos Guzmán Álvarez <carlosga@telefonica.net>
271         * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessages.cs:
272         
273                 - Removed file.
275         * Mono.Security.Protocol.Tls/TlsSslHandshakeHash.cs:
276         
277                 - New class for handshake hashes calculation on SSL3 protocol.
279         * Mono.Security.Protocol.Tls/TlsSessionContext.cs:
280         
281                 - Fixed mac keys clearing for SSL3 protocol.
283         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
284         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:
285         
286                 - Added changes for make use of new TlsSslHandshakeHash class.
287         
288         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:
289         
290                 - Added initial implementation for SSL3 protocol.
291         
292         * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
293         
294                 - New class for md5-sha hash calculation.
295                                                         
296         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:
297         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:
298         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
299         * Mono.Security.Protocol.Tls.Handshake.Client/TlsHandshakeMessage.cs:
300         
301                 - Make use of new MD5SHA1CryptoServiceProvider class.
302                 
303         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
304         
305                 - Added initial implementation (not finished).
306                         
307         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
308         
309                 - Minor change to message processing.
311                 - Changed verify method name to verifySignature.
312                         
313         * Mono.Security.Protocol.Tls/TlsSessionContext.cs:
314         
315                 - Changed handshakeHashes member to be an TlsStream.
317 2003-10-28 Carlos Guzmán Álvarez <carlosga@telefonica.net>
319         * Mono.Security.Protocol.Tls/CipherSuite.cs:
320         * Mono.Security.Protocol.Tls/TlsSessionSettings.cs:
321         * Mono.Security.Protocol.Tls/TlsServerSettings.cs:
322         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
323         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientKeyExchange.cs:
324         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
325         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
327                 - Added changes for make use of X509 classes from mono.
329 2003-10-23 Carlos Guzmán Álvarez <carlosga@telefonica.net>
331         * Added partial implementation of SSL3 protocol ( not finished yet ).