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