2004-02-26 Carlos Guzman Alvarez <carlosga@telefonica.net>
[mono.git] / mcs / class / Mono.Security / Mono.Security.Protocol.Tls / ChangeLog
1 2004-02-26 Carlos Guzman Alvarez  <carlosga@telefonica.net>\r
2 \r
3         * Mono.Security.Protocol.Tls/HandshakeState.cs:\r
4 \r
5                 - New file.\r
6 \r
7         * Mono.Security.Protocol.Tls/SslClientStream.cs:\r
8         * Mono.Security.Protocol.Tls/SslServerStream.cs:\r
9         * Mono.Security.Protocol.Tls/Context.cs:\r
10         * Mono.Security.Protocol.Tls/ClientContext.cs:\r
11         * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:\r
12 \r
13                 - Added changes for better handling of ClientHelloRequest messages.
14
15 2004-02-25  Sebastien Pouliot  <sebastien@ximian.com>
16
17         * HttpsClientStream.cs: New. Internal glue class between System.dll 
18         WebConnection and SslClientStream to reduce reflection.
19         * SslClientStream.cs: RaiseServerCertificateValidation is now virtual
20         to allow HttpsClientStream to override it.\r
21
22 2004-02-24 Carlos Guzman Alvarez  <carlosga@telefonica.net>
23
24         * Mono.Security.Protocol.Tls/RecordProtocol.cs:\r
25         * Mono.Security.Protocol.Tls/SslClientStream.cs:\r
26         * Mono.Security.Protocol.Tls/SslServerStream.cs:\r
27 \r
28                 - Reimplementation of TLS/SSL Alert Protocol.
29
30 2004-02-20 Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
31
32         * Mono.Security.Protocol.Tls.Handshake.Client/SslClientCertificate.cs:
33
34         - Improved exception handling.
35
36 2004-02-18 Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
37 \r
38         * Mono.Security.Protocol.Tls/CipherAlgorithmType.cs:\r
39         * Mono.Security.Protocol.Tls/HashAlgorithmType.cs:\r
40         * Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs:\r
41 \r
42                 - Added Serializable attribute.\r
43 \r
44         * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
45         * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:\r
46         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:\r
47         * Mono.Security.Protocol.Tls/TlsContext.cs:\r
48 \r
49                 - Added some optimizations proposed by Sebastien Pouliot.\r
50 \r
51         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:\r
52 \r
53                 - Changes on Common Name detection and certificate error handling ( Thanks to Sebastien Pouliot for his feedback ).\r
54
55 2004-02-18  Sebastien Pouliot  <sebastien@ximian.com>
56
57         * SslClientStream.cs: Fixed (inverted) condition for ServerCertificate.
58         * SecurityProtocolType.cs: Added [Serializable] to enum to match MS 
59         implementation.
60
61 2004-02-17 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
62
63         * Mono.Security.Protocol.Tls/SslClientStream.cs:
64
65                 - Added changes to security properties for check that the handshake is finished.
66
67         * Mono.Security.Protocol.Tls/SslClientStream.cs:
68
69         - Added changes for bring async methods to work ( Thanks to Sebastien Pouliot )
70
71         - Reworked the record fragmentation.
72
73         - Fix for send the close notify alert in the Close method
74         only if the Handshake is fully negotiated.
75
76
77 2004-02-16 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
78
79         * Mono.Security.Protocol.Tls/TlsCipherSuiteFactory.cs:
80
81         - Changed ciphersuites order of preference ( Thanks to Sebastien Pouliot for his feedback ).
82
83 2004-02-15 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
84  
85         * Mono.Security.Protocol.Tls/SslClientStream.cs:
86  
87                 - Added specific control od available data for Network Streams
88                 on Read ( Thanks to Francisco Figueiredo Jr. for his feedback ).
89  
90                 - Removed test code.
91
92 2004-02-14 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
93
94     * Mono.Security.Protocol.Tls/SslClientStream.cs:
95
96         - Removed test code.
97
98 2003-11-17 Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
99 \r
100         * Mono.Security.Protocol.Tls/SslClientStream.cs:\r
101 \r
102                 Removed ReadByte method, use innerStream.ReadByte() method instead.\r
103 \r
104 2003-11-13 Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
105 \r
106         * Added implementation of an SslClientStream class similar to the MS .NET Framework 1.2 documentation.\r
107 \r
108                 The next files are no more needed:\r
109 \r
110                         - TlsSession.cs\r
111 \r
112                         - TlsNetworkStream.cs\r
113 \r
114                         - TlsSocket.cs\r
115 \r
116                         - TlsSessionState.cs\r
117 \r
118                 The next files are renamed:\r
119 \r
120                         - TlsSessionSettings.cs -> TlsClientSettings.cs\r
121 \r
122                         - TlsSessionContext.cs -> TlsContext.cs\r
123 \r
124                 The next files are new:\r
125 \r
126                         - SslClientStream.cs ( the name is non definitive yet )\r
127 \r
128                 The next files where changed to reflect the new canges:\r
129 \r
130                         - TlsHandshakeMessage.cs\r
131 \r
132                         - TlsClientCertificate.cs\r
133 \r
134                         - TlsClientCertificateVerify.cs\r
135 \r
136                         - TlsClientFinished.cs\r
137 \r
138                         - TlsClientHello.cs\r
139 \r
140                         - TlsClientKeyExchange.cs\r
141 \r
142                         - TlsServerCertificate.cs\r
143 \r
144                         - TlsServerCertificateRequest.cs\r
145 \r
146                         - TlsServerFinished.cs\r
147 \r
148                         - TlsServerHello.cs\r
149 \r
150                         - TlsServerHelloDone.cs\r
151 \r
152                         - TlsServerKeyExchange.cs\r
153 \r
154                         - TlsAlert.cs\r
155 \r
156                         - TlsCloseNotifyAlert.cs\r
157 \r
158                 \r
159 2003-11-12 Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
160 \r
161         * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:\r
162         \r
163                 - Changes for give full error message only in debug mode ( Thanks to Sebastién Pouliot. )\r
164                 \r
165         * Mono.Security.Protocol.Tls/TlsProtocol.cs:\r
166         \r
167                 - Renamed to SecurityProtocolType.cs ( for match .NET 1.2 )\r
168         \r
169         * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:\r
170         \r
171                 - Renamed to MD5SHA1.cs ( Thanks to Sebastién Pouliot. )\r
172                 \r
173         * Mono.Security.Cryptography/TlsCompressionMethod.cs:\r
174         \r
175                 - Renamed to SecurityCompressionType.\r
176                 \r
177         * Mono.Security.Protocol.Tls/CipherAlgorithmType.cs:\r
178         * Mono.Security.Protocol.Tls/HashAlgorithmType.cs:\r
179         * Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs:\r
180         \r
181                 - New enumerations that matches .NET 1.2 definitions with some minor differences.\r
182         \r
183         * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
184         * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:\r
185         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:\r
186         * Mono.Security.Protocol.Tls/TlsSessionContext.cs:\r
187         \r
188                 - Added changes for make use of new enumerations.\r
189         \r
190         * Mono.Security.Protocol.Tls/TlsClientStream.cs:\r
191         \r
192                 - Added new informative properties that matches .NET 1.2 SslClientStream\r
193                 ( Not all the properties are implemented yet ).\r
194 \r
195 \r
196 2003-11-10 Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
197 \r
198         * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:\r
199 \r
200                 - Fixed invalid alert message.\r
201 \r
202         * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
203         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:\r
204         * Mono.Security.Cryptography/HMAC.cs:\r
205         * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:\r
206         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:\r
207 \r
208                 - Changed ( Thanks to Sebastién Pouliot for his feedback )\r
209 \r
210                         SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider();\r
211                         MD5CryptoServiceProvider sha = new MD5CryptoServiceProvider();\r
212 \r
213                         to\r
214 \r
215                         HashAlgorithm sha = SHA1.Create();\r
216                         HashAlgorithm md5 = MD5.Create(); \r
217
218 2003-11-04 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
219 \r
220         * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
221 \r
222                 - Added custom padding for record encryption.\r
223 \r
224 \r
225 2003-11-03 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
226 \r
227         * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessages.cs:\r
228         \r
229                 - Removed file.\r
230 \r
231         * Mono.Security.Protocol.Tls/TlsSslHandshakeHash.cs:\r
232         \r
233                 - New class for handshake hashes calculation on SSL3 protocol.\r
234 \r
235         * Mono.Security.Protocol.Tls/TlsSessionContext.cs:\r
236         \r
237                 - Fixed mac keys clearing for SSL3 protocol.\r
238 \r
239         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:\r
240         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:\r
241         \r
242                 - Added changes for make use of new TlsSslHandshakeHash class.\r
243         \r
244         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:\r
245         \r
246                 - Added initial implementation for SSL3 protocol.\r
247         \r
248         * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:\r
249         \r
250                 - New class for md5-sha hash calculation.\r
251                                                         \r
252         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:\r
253         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:\r
254         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:\r
255         * Mono.Security.Protocol.Tls.Handshake.Client/TlsHandshakeMessage.cs:\r
256         \r
257                 - Make use of new MD5SHA1CryptoServiceProvider class.\r
258                 \r
259         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:\r
260         \r
261                 - Added initial implementation (not finished).\r
262                         \r
263         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:\r
264         \r
265                 - Minor change to message processing.\r
266 \r
267                 - Changed verify method name to verifySignature.\r
268                         \r
269         * Mono.Security.Protocol.Tls/TlsSessionContext.cs:\r
270         \r
271                 - Changed handshakeHashes member to be an TlsStream.\r
272 \r
273 2003-10-28 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
274 \r
275         * Mono.Security.Protocol.Tls/CipherSuite.cs:\r
276         * Mono.Security.Protocol.Tls/TlsSessionSettings.cs:\r
277         * Mono.Security.Protocol.Tls/TlsServerSettings.cs:\r
278         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:\r
279         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientKeyExchange.cs:\r
280         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:\r
281         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:\r
282 \r
283                 - Added changes for make use of X509 classes from mono.\r
284 \r
285 2003-10-23 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
286 \r
287         * Added partial implementation of SSL3 protocol ( not finished yet ).\r
288 \r
289         * TlsAbstractCipherSuite.cs: Renamed to CipherSuite.cs.\r
290 \r
291         * Removed AssemblyInfo.cs file.\r
292 \r
293 2003-10-21 Carlos Guzmán Álvarez <carlosga@telefonica.net>\r
294 \r
295         TlsCipherSuiteFactory.cs: Changed names of private methods.\r
296 \r
297         TlsSslCipherSuite.cs: Replaced implementations of key generation methods with a throw new NotSupportedException().\r
298 \r
299 \r
300 2003-10-20  Carlos Guzmán Álvarez  <carlosga@telefonica.net>\r
301 \r
302         TlsCupherSuite.cs: Fixed padding length calculation on record encryption.\r
303         \r
304         TlsSessionContext.cs:   Added new CompressionMethod property.\r
305                                         Added new MAX_FRAGMENT_SIZE constant.\r
306 \r
307         TlsSession.cs: Removed MaxFragmentSize property.\r
308 \r
309         TlsSocket.cs: Replaced use of TlsSesison.MaxFragmentSize by TlsSessionContext.MAX_FAGMENT_SIZE\r
310         \r
311         TlsSessionSettings.cs: Added new CompressionMethod property.\r
312 \r
313         * Abstracted CipherSuite classes for allow work with other protocol versions.\r
314 \r
315         * Added new files :\r
316 \r
317                 TlsAbstractCipherSuite.cs \r
318                         \r
319                 TlsSslCipherSuite.cs\r
320 \r
321                 TlsCipherSuiteFactory.cs\r
322 \r
323                 TlsCompressionMethod.cs\r
324 \r
325         * Added new cipher suites definitions based on RFC3268 - (http://www.ietf.org/rfc/rfc3268.txt)\r
326 \r
327         * Added two new supported ciphersuites for TLS protocol:\r
328 \r
329                 TLS_RSA_WITH_AES_256_CBC_SHA\r
330 \r
331                 TLS_RSA_WITH_AES_128_CBC_SHA\r
332 \r
333         * Moved key generation stuff to specific cipher suite classes.\r
334 \r
335 2003-10-20  Pedro Martínez Juliá  <yoros@wanadoo.es>\r
336 \r
337         * AssemblyInfo.cs: commented out KeyFile reference.\r
338 \r
339         * TlsSession.cs: changed Math.Pow for System.Math.Pow because of MCS\r
340         bug with namespace resolving.\r
341 \r