1e5e9fc5c813a2039d25c79a2df2cf3f40b90f95
[mono.git] / mcs / class / Mono.Security / ChangeLog
1 2004-02-20  Sebastien Pouliot  <sebastien@ximian.com>
2
3         * Mono.Security.dll.sources: Added new file X509ChainStatusFlags in
4         Mono.Security.X509 namespace.
5
6 2004-02-20 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
7
8         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
9
10         - Commented the server cert validation.
11
12         * Mono.Security.Protocol.Tls.Alerts/TlsWarningEventAgrs.cs:
13
14                 - Removed no more needed file.
15
16         * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
17
18                 - Added 4 new properties:
19
20                         * Message
21
22                         * IsWarning
23
24                         * IsFatal
25
26                         * IsCloseNotify
27
28                 - Return always the same message when working in release mode
29                 (The authentication or decryption has failed.)
30
31         * Mono.Security.Protocol.Tls/SslClientStream.cs:
32
33                 - Changes to the sync code.
34
35                 - Record protocol stuff moved to the new classes.
36
37                 - Removed Warning event.
38
39                 - Added control over the CloseNotify Alert
40                 to BeginRead method.
41
42                 - Return true in the server certificate validation method
43                 if there are no errors.
44
45         * Mono.Security.Protocol.Tls/RecordProtocol.cs:
46         * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
47
48                 - New classes for handle the SSL/TLS record protocol.
49
50 2004-02-18 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
51
52         * Mono.Security.Protocol.Tls/SslClientStream.cs:
53
54         - Implement CheckCertRevocationStatus ( not used yet )
55
56         * Mono.Security.Protocol.Tls/CipherAlgorithmType.cs:
57         * Mono.Security.Protocol.Tls/HashAlgorithmType.cs:
58         * Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs:
59
60                 - Added Serializable attribute.
61
62         * Mono.Security.Protocol.Tls/CipherSuite.cs:
63         * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
64         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
65         * Mono.Security.Protocol.Tls/TlsContext.cs:
66
67                 - Added some optimizations proposed by Sebastien Pouliot.
68
69         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
70
71                 - Changes on Common Name detection and certificate error handling ( Thanks to Sebastien Pouliot for his feedback ).
72
73 2004-02-17 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
74
75         * Mono.Security.Protocol.Tls/SslClientStream.cs:
76
77                 - Added changes to security properties for check that the handshake is finished.
78
79         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificate.cs:
80
81                 - Raise the Client Certificate event.
82
83         * Mono.Security.Protocol.Tls/CipherSuite.cs:
84         * Mono.Security.Protocol.Tls/SslClientStream.cs:
85         * Mono.Security.Protocol.Tls/SecurityProtocolType.cs:
86         * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
87         * Mono.Security.Protocol.Tls/TlsCipherSuiteCollection.cs:
88         * Mono.Security.Protocol.Tls/TlsCipherSuiteFactory.cs:
89         * Mono.Security.Protocol.Tls/TlsContext.cs:
90         * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessage.cs:
91         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientHello.cs:
92
93                 - Change the SecurityProtocolType enum to mtch .NET 1.2 documentation definition.
94
95         * Mono.Security.Protocol.Tls/SslClientStream.cs:
96
97                 - Impement SelectedClientCertificate and ServerCertificate properties.
98
99         * Mono.Security.Protocol.Tls/SslClientStream.cs:
100
101         - Added changes for bring async methods to work ( Thanks to Sebastien Pouliot )
102
103         - Reworked the record fragmentation.
104
105         - Fix for send the close notify alert in the Close method
106         only if the Handshake is fully negotiated.
107
108 2004-02-16 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
109
110         * Mono.Security.Protocol.Tls/TlsCipherSuiteFactory.cs:
111
112         - Changed ciphersuites order of preference ( Thanks to Sebastien Pouliot for his feedback ).
113
114 2004-02-15 Carlos Guzmán Álvarez  <carlosga@te...>
115  
116         * Mono.Security.Protocol.Tls/SslClientStream.cs:
117  
118                 - Added specific control od available data for Network Streams
119                 on Read ( Thanks to Francisco Figueiredo Jr. for his feedback ).
120  
121                 - Removed test code.
122
123 2004-02-14 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
124
125     * Mono.Security.Protocol.Tls/SslClientStream.cs:
126
127         - Removed test code.
128
129     * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
130
131         - Removed test code.
132
133 2004-02-13  Sebastien Pouliot  <sebastien@ximian.com>
134
135         * Mono.Security.dll.sources: Added Diffie-Hellman contribution from
136         Pieter Philippaerts (mentalis.org) to Mono.Security.Cryptography.
137         * Mono.Security_test.dll.sources: Added Diffie-Hellman unit tests.
138
139 2004-02-10 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
140
141     * Mono.Security.Cryptography/PKCS1.cs:
142
143         - Added little change for allow the class to be used with
144         hash implementations that doesn't have an oid like the MD5SHA1 hash.
145
146     * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
147
148         - Throw exception if the Private Key is null.
149
150     * Mono.Security.Protocol.Tls/SslServerStream.cs:
151
152         - Ssl Server class without implementation ( methods signatures only )
153         That matches the described in the .NET 1.2 documentation.
154
155 2004-02-09  Sebastien Pouliot  <sebastien@ximian.com>
156
157         * Mono.Security_test.dll.sources Added Mono.Math BigInteger unit test
158         to the build (as they cannot be executed with corlib).
159
160 2004-02-09 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
161
162     * Changed the license header to all the sources files
163     to remove accents.
164
165     * Mono.Security.Protocol.Tls/TlsSessionState.cs:
166
167         - Removed old file.
168
169         * Mono.Security.Protocol.Tls/SslClientStream.cs:
170
171                 - Try to improve record reading.
172
173         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificate.cs:
174
175                 - Send always the first certificate.
176
177         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
178
179                 - Added changes for correct verification of the signed data sent 
180                 by the server.
181
182         * Mono.Security.Cryptography/PKCS1.cs:
183
184                 - Added change to Encode_v15 method for allow correct
185                 encoding of hash algorithms that doesn't have an OID
186                 like the MD5SHA1 hash used in SSL/TLS protocols.
187
188         * Added files from mono:: project that are going to be needed
189         for client authentication:
190
191                 Mono.Math/*
192
193                 Mono.Math.Prime/*
194
195                 Mono.Math.Prime.Generator/*
196
197                 Mono.Security.Cryptography/RSAManaged.cs
198
199         * Mono.Security.Protocol.Tls/RSASslSignatureFormatter.cs:
200
201                 - Create RSA as an RSAManaged instance.
202                 
203         * Mono.Security.Protocol.Tls/RSASslSignatureFormatter.cs:
204         * Mono.Security.Protocol.Tls/RSASslSignatureDeformatter.cs:
205                 
206                 - Changed key field to be of RSA type.
207
208         * Mono.Security.Protocol.Tls/RSASslSignatureFormatter.cs:
209         * Mono.Security.Protocol.Tls/RSASslSignatureDeformatter.cs:
210
211                 - Added new classes for implement in the future RSA-SSL signatures.
212
213         * Changed #region names in all source files.
214
215         * Mono.Security.Protocol.Handshake.Client/TlsServerCertificate.cs:
216                 
217                 - Fixed message (but not working yet - we need RSA signing 
218                 capabilitites with MD5SHA1 hash).       
219
220         * Mono.Security.Protocol.Handshake.Client/TlsServerCertificate.cs:
221         
222                 - Retrict certificate validation to the first validation.
223                 ( real validation needs to be made using a chain )
224                 
225                 - Improved domain validation by making a IP checking between
226                 the target host IP and the certificate domain IP.
227
228                 - Fixed error list handling on certificate validation.  
229
230         * Mono.Security.Protocol.Tls/SslClientStream.cs:
231
232                 - Added new exceptions.
233
234
235 2004-02-06  Sebastien Pouliot  <sebastien@ximian.com>
236
237         * Mono.Security.dll.sources: Added KeyPairPersistence and it's 
238         dependencies in Mono.Xml (MiniParser and SecurityParser). Also 
239         added CryptoTools and SymmetricTransforms in Mono.Sec.Crypt.
240         * Mono.Security_test.dll.sources: Added unit tests for 
241         KeyPairPersistence.
242
243 2003-12-07  Sebastien Pouliot  <spouliot@videotron.ca>
244
245         * Mono.Security.dll.sources: Added PKCS#12 support for X.509 certificates.
246         * Mono.Security_test.dll.sources: Added unit tests for PKCS#12.
247
248 2003-12-01  Sebastien Pouliot  <spouliot@videotron.ca>
249
250         * Mono.Security.dll.sources: Added Mono.Security.Protocol.Ntlm namespace
251         * Mono.Security_test.dll.sources: Added Mono.Security.Protocol.Ntlm unit
252         tests.
253
254 2003-11-27  Sebastien Pouliot  <spouliot@videotron.ca>
255
256         * Mono.Security.dll.sources: Added MD4, MD4Managed and PKCS8 to build.
257         * Mono.Security_test.dll.sources: Added unit tests for MD4, MD4Managed
258         and PKCS8.
259         
260 2003-11-22 Carlos Guzman Alvarez <carlosga@telefonica.net>
261
262         * Changed line endings to unix format in SSL/TLS sources.
263         
264         * Mono.Security.CryptographyoHMD5SHA1CryptoServiceProvider.cs:
265         
266             - Removed file (now it's called MD5SHA1.cs)
267         
268         * Mono.Security.Protocol.Tls/TlsCipherSuiteFactory.cs:
269         
270             - Removed comments from AES ciphersuites.
271
272
273 2003-11-17 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
274
275         * Mono.Security.Protocol.Tls/SslClientStream.cs:
276
277                 Removed ReadByte method, use innerStream.ReadByte() method instead.
278
279 2003-11-13 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
280
281         * Added implementation of an SslClientStream class similar to the MS .NET Framework 1.2 documentation.
282
283                 The next files are no more needed:
284
285                         - TlsSession.cs
286
287                         - TlsNetworkStream.cs
288
289                         - TlsSocket.cs
290
291                         - TlsSessionState.cs
292
293                 The next files are renamed:
294
295                         - TlsSessionSettings.cs -> TlsClientSettings.cs
296
297                         - TlsSessionContext.cs -> TlsContext.cs
298
299                 The next files are new:
300
301                         - SslClientStream.cs ( the name is non definitive yet )
302
303                 The next files where changed to reflect the new canges:
304
305                         - TlsHandshakeMessage.cs
306
307                         - TlsClientCertificate.cs
308
309                         - TlsClientCertificateVerify.cs
310
311                         - TlsClientFinished.cs
312
313                         - TlsClientHello.cs
314
315                         - TlsClientKeyExchange.cs
316
317                         - TlsServerCertificate.cs
318
319                         - TlsServerCertificateRequest.cs
320
321                         - TlsServerFinished.cs
322
323                         - TlsServerHello.cs
324
325                         - TlsServerHelloDone.cs
326
327                         - TlsServerKeyExchange.cs
328
329                         - TlsAlert.cs
330
331                         - TlsCloseNotifyAlert.cs
332
333                 
334 2003-11-12 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
335
336         * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
337         
338                 - Changes for give full error message only in debug mode ( Thanks to Sebastién Pouliot. )
339                 
340         * Mono.Security.Protocol.Tls/TlsProtocol.cs:
341         
342                 - Renamed to SecurityProtocolType.cs ( for match .NET 1.2 )
343         
344         * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
345         
346                 - Renamed to MD5SHA1.cs ( Thanks to Sebastién Pouliot. )
347                 
348         * Mono.Security.Cryptography/TlsCompressionMethod.cs:
349         
350                 - Renamed to SecurityCompressionType.
351                 
352         * Mono.Security.Protocol.Tls/CipherAlgorithmType.cs:
353         * Mono.Security.Protocol.Tls/HashAlgorithmType.cs:
354         * Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs:
355         
356                 - New enumerations that matches .NET 1.2 definitions with some minor differences.
357         
358         * Mono.Security.Protocol.Tls/CipherSuite.cs:
359         * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
360         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
361         * Mono.Security.Protocol.Tls/TlsSessionContext.cs:
362         
363                 - Added changes for make use of new enumerations.
364         
365         * Mono.Security.Protocol.Tls/TlsClientStream.cs:
366         
367                 - Added new informative properties that matches .NET 1.2 SslClientStream
368                 ( Not all the properties are implemented yet ).
369
370
371 2003-11-10 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
372
373         * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
374
375                 - Fixed invalid alert message.
376
377         * Mono.Security.Protocol.Tls/CipherSuite.cs:
378         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
379         * Mono.Security.Cryptography/HMAC.cs:
380         * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
381         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
382
383                 - Changed ( Thanks to Sebastién Pouliot for his feedback )
384
385                         SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider();
386                         MD5CryptoServiceProvider sha = new MD5CryptoServiceProvider();
387
388                         to
389
390                         HashAlgorithm sha = SHA1.Create();
391                         HashAlgorithm md5 = MD5.Create(); 
392
393
394 2003-11-04 Carlos Guzmán Álvarez <carlosga@telefonica.net>
395
396         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
397
398                 - Commented server certificate signature verification.
399
400         * Mono.Security.Protocol.Tls/TlsServerSettings.cs:
401
402                 - Renamed ServerCertificates property to Certificates.
403
404
405 2003-11-04 Carlos Guzmán Álvarez (carlosga@telefonica.net)
406
407         * Updated SSL/TLS implementation files with unix like line endings.
408
409 2003-11-04 Carlos Guzmán Álvarez <carlosga@telefonica.net>
410
411         * Mono.Security.Protocol.Tls/CipherSuite.cs:
412
413                 - Added custom padding for record encryption.
414
415
416 2003-11-03 Carlos Guzmán Álvarez <carlosga@telefonica.net>
417
418         * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessages.cs:
419         
420                 - Removed file.
421
422         * Mono.Security.Protocol.Tls/TlsSslHandshakeHash.cs:
423         
424                 - New class for handshake hashes calculation on SSL3 protocol.
425
426         * Mono.Security.Protocol.Tls/TlsSessionContext.cs:
427         
428                 - Fixed mac keys clearing for SSL3 protocol.
429
430         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
431         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:
432         
433                 - Added changes for make use of new TlsSslHandshakeHash class.
434         
435         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:
436         
437                 - Added initial implementation for SSL3 protocol.
438         
439         * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
440         
441                 - New class for md5-sha hash calculation.
442                                                         
443         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:
444         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:
445         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
446         * Mono.Security.Protocol.Tls.Handshake.Client/TlsHandshakeMessage.cs:
447         
448                 - Make use of new MD5SHA1CryptoServiceProvider class.
449                 
450         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
451         
452                 - Added initial implementation (not finished).
453                         
454         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
455         
456                 - Minor change to message processing.
457
458                 - Changed verify method name to verifySignature.
459                         
460         * Mono.Security.Protocol.Tls/TlsSessionContext.cs:
461         
462                 - Changed handshakeHashes member to be an TlsStream.
463
464 2003-10-28 Carlos Guzmán Álvarez <carlosga@telefonica.net>
465
466         * Mono.Security.Protocol.Tls/CipherSuite.cs:
467         * Mono.Security.Protocol.Tls/TlsSessionSettings.cs:
468         * Mono.Security.Protocol.Tls/TlsServerSettings.cs:
469         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
470         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientKeyExchange.cs:
471         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
472         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
473
474                 - Added changes for make use of X509 classes from mono.
475
476 2003-10-23 Carlos Guzmán Álvarez <carlosga@telefonica.net>
477
478         * Added partial implementation of SSL3 protocol ( not finished yet ) to the TLS sources.
479
480 2003-10-20  Sebastien Pouliot  <spouliot@videotron.ca>
481
482         * Mono.Security.dll.sources: Removed AssemblyInfo.cs from build.
483         This file is for TLS not for the complete Mono.Security assembly.
484
485 2003-10-20  Duncan Mak  <duncan@ximian.com>
486
487         * Mono.Security.dll.sources: Added TlsAbstractCipherSuite.cs,
488         TlsCipherSuiteFactory.cs and TlsCompressMethod.cs. This fixes the
489         build.
490
491 2003-10-20  Carlos Guzmán Álvarez  <carlosga@telefonica.net>
492
493         * Mono.Security.dll.sources: Added references for new Tls files.
494
495 2003-10-20  Pedro Martínez Juliá  <yoros@wanadoo.es>
496
497         * Mono.Security.dll.sources: Added references for Tls files.
498
499 2003-09-05  Sebastien Pouliot  <spouliot@videotron.ca>
500
501         * KeyAttributesExtension.cs: New. Added for WSE.
502
503 2003-09-01  Sebastien Pouliot  <spouliot@videotron.ca>
504
505         * Mono.Security.dll.sources: Added support for Authenticode(tm)
506         signatures.
507
508 2003-07-30  Sebastien Pouliot  <spouliot@videotron.ca>
509
510         * Mono.Security.dll.sources: Added ExtendedKeyUsageExtension.cs 
511         certificate extension (so MakeCert can now create SSL certificates).
512
513 2003-07-28  Sebastien Pouliot  <spouliot@videotron.ca>
514
515         * Mono.Security.dll.sources: Added missing SubjectAltNameExtension.cs
516
517 2003-06-14  Sebastien Pouliot  <spouliot@videotron.ca>
518
519         * list.unix. Added SubjectAltNameExtension.cs
520
521 2003-03-06  Sebastien Pouliot  <spouliot@videotron.ca>
522
523         * list.unix: New. All C# files required to build the assembly.
524         * makefile.gnu: New. Makefile to build the assembly under Linux.
525         * Mono.Security.build: New. NAnt build file. 
526