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