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