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