14ad4fab622559ba58182237ac38dd12dd0173ab
[mono.git] / mcs / class / Mono.Security / ChangeLog
1 2005-02-25  Sebastien Pouliot  <sebastien@ximian.com>
2
3         * Mono.Security.dll.sources: Added GeneralNames to Mono.Security.X509.
4         Extensions to share code between existing extensions.
5
6 2004-12-06  Sebastien Pouliot  <sebastien@ximian.com>
7
8         * Mono.Security_test.dll.sources: Added Mono.Security.Cryptography.
9         RSAManagedTest to the build.
10
11 2004-11-23  Sebastien Pouliot  <sebastien@ximian.com>
12
13         * Mono.Security_test.dll.sources: Added Mono.Security.Cryptography.
14         PKCS1Test to the build.
15
16 2004-10-19  Sebastien Pouliot  <sebastien@ximian.com>
17
18         * Mono.Security_test.dll.sources: Added more unit tests BigInteger.
19
20 2004-09-17  Sebastien Pouliot  <sebastien@ximian.com>
21
22         * Mono.Security.dll.sources: Added support for SHA224 hash algorithm
23         in Mono.Security.Cryptography.
24         * Mono.Security_test.dll.sources: Added unit tests for SHA224 hash
25         algorithm.
26
27 2004-09-07  Sebastien Pouliot  <sebastien@ximian.com>
28
29         * Mono.Security_test.dll.sources: Added unit tests for Authenticode
30         Deformatter.
31
32 2004-07-27 Carlos Guzman Alvarez  <carlosga@telefonica.net>
33
34         * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientKeyExchange.cs:
35
36                 - Fixed usage of the private key selection
37                 delegate (Thanks to Matthijs ter Woord for his feedback)
38
39 2004-05-11 Carlos Guzman Alvarez  <carlosga@telefonica.net>
40
41         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
42
43                 - Added fix for better handling of exceptions when
44                 building the X509 Certificate chain.
45
46 2004-05-11  Sebastien Pouliot  <sebastien@ximian.com>
47
48         * Mono.Security_test.dll.sources: Added unit tests for Mono.Security.
49         Protocol.Ntlm.MessabeBase and Mono.Security.ASN1Convert.
50
51 2004-05-09 Carlos Guzman Alvarez  <carlosga@telefonica.net>
52
53         * Mono.Security.Protocol.Tls/Alert.cs:
54         * Mono.Security.Protocol.Tls/CipherSuite.cs:
55         * Mono.Security.Protocol.Tls/CipherSuiteCollection.cs:
56         * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
57         * Mono.Security.Protocol.Tls/Context.cs:
58         * Mono.Security.Protocol.Tls/RecordProtocol.cs:
59         * Mono.Security.Protocol.Tls/SecurityCompressionType.cs:
60         * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:
61         * Mono.Security.Protocol.Tls/SslServerStream.cs:
62         * Mono.Security.Protocol.Tls/TlsClientSettings.cs:
63
64                 - Changes for fix FxCop Rules.
65
66                 - Reworked CipherSuiteCollection class.
67
68         * Mono.Security.Protocol.Tls.Handshake/HandshakeMessage.cs:
69
70                 - Changes for fix FxCop Rules.
71
72 2004-04-21 Carlos Guzman Alvarez  <carlosga@telefonica.net>
73
74         * Mono.Security.Protocol.Tls/DebugHelper.cs:
75
76                 - New class.
77
78         * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
79         * Mono.Security.Protocol.Tls/RecordProtocol.cs:
80         * Mono.Security.Protocol.Tls/Context.cs:
81         * Mono.Security.Protocol.Tls/Context.cs:
82         * Mono.Security.Protocol.Tls/SslCipherSuite.cs:
83         * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
84         * Mono.Security.Protocol.Tls/SslClientStream.cs:
85
86                 - Added debug capabilities.
87
88         * Mono.Security.Protocol.Tls/ServerContext.cs:
89
90                 - Added initialization of requested CertificateTypes and CA's
91
92         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificate.cs:
93         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
94         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
95         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerHello.cs:
96         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:
97
98                 - Modfied exception handling
99
100                 - Added debug capabilities.
101
102
103         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificateRequest.cs:
104
105                 - Modify SSL implementation.
106
107         * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerCertificateRequest.cs:
108
109                 - Initial implementation.
110
111         * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificateVerify.cs:
112         * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientFinished.cs:
113         * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientHello.cs:
114
115                 - Modfied exception handling
116
117 2004-04-20  Sebastien Pouliot  <sebastien@ximian.com>
118
119         * Mono.Security.dll.sources: Added AssemblyInfo.cs, Locale.cs and
120         BitConverterLE.cs to build.
121
122 2004-04-16 Carlos Guzman Alvarez  <carlosga@telefonica.net>
123
124         * Mono.Security.Protocol.Tls/TlsException.cs:
125
126                 - Make it public until npgsql people can fix their sources.
127
128 2004-04-15 Carlos Guzman Alvarez  <carlosga@telefonica.net>
129
130         * Mono.Security.Protocol.Tls/SslClientStream.cs:
131         * Mono.Security.Protocol.Tls/SslServerStream.cs:
132         * Mono.Security.Protocol.Tls/Alert.cs:
133         * Mono.Security.Protocol.Tls/RecordProtocol.cs:
134         * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
135         * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:
136         * Mono.Security.Protocol.Tls/Context.cs:
137         * Mono.Security.Protocol.Tls/TlsException.cs:
138         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificate.cs:
139         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
140         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
141         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerHello.cs:
142         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
143         * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificateVerify.cs:
144         * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientFinished.cs:
145         * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientHello.cs:
146
147                 - Reworked Alert and Exception (TlsException) handling.
148
149         * Mono.Security.Protocol.Tls/TlsClientSettings.cs:
150
151                 - Added new CertificateRSA property.
152
153         * Mono.Security.Protocol.Tls/SslHandshakeHash.cs:
154                 
155                 - Added two new methods: CreateSignature and VerifySignature.
156
157         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
158
159                 - Added Ssl3 implementation.
160
161         * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificateVerify.cs:    
162
163                 - Added initial implementation.
164
165 2004-03-23  Sebastien Pouliot  <sebastien@ximian.com>
166
167         * Mono.Security_test.dll.sources: Added unit tests for CryptoConvert.
168
169 2004-03-19 Carlos Guzman Alvarez  <carlosga@telefonica.net>
170
171         * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientHello.cs:
172
173                 - Fixed cipher suite selection.
174
175         * Mono.Security.Protocol.Tls/TlsServerSettings.cs:
176         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientKeyExchange.cs:
177         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
178         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
179
180                 - Added new CertificateRSA property.
181
182                 - Added new UpdateCertfificateRSA method.
183
184         * Mono.Security.Protocol.Tls/CipherSuite.cs:
185
186                 - Removed CertificateRSA() method.      
187
188 2004-03-17 Carlos Guzman Alvarez  <carlosga@telefonica.net>
189
190         * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificate.cs:
191         * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerKeyExchange.cs:
192
193                 - Initial implementation.
194
195
196 2004-03-16 Carlos Guzman Alvarez  <carlosga@telefonica.net>
197
198         * Mono.Security.Protocol.Tls/SslCipherSuite.cs:
199
200                 - Added changes for allow it to work as server or client.
201
202
203 2004-03-15 Carlos Guzman Alvarez  <carlosga@telefonica.net>
204
205         * Mono.Security.Protocol.Tls/TlsStream.cs:
206         * Mono.Security.Protocol.Tls/CipherSuite.cs:
207         * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
208         * Mono.Security.Protocol.Tls/SslHandshakeHash.cs:
209         * Mono.Security.Protocol.Tls/RecordProtocol.cs:
210         * Mono.Security.Cryptography/MD5SHA1.cs:
211
212                 - Use Buffer.BlockCopy instead of System.Array.Copy
213
214 2004-03-10 Carlos Guzman Alvarez  <carlosga@telefonica.net>
215
216         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
217         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificateRequest.cs:
218         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:
219         * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientCertificateVerify.cs:
220         * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerCertificateRequest.cs:
221         * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerFinished.cs:
222
223                 - Fixed meesage type definition.
224
225         * Mono.Security.Protocol.Tls/Ciphersuite.cs:
226
227                 - Added generation of the Server encryption algorithms.
228
229                 - Modified encryption/decription methods for work
230                 as client or server as needed.
231
232         * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientKeyExchange.cs:
233
234                 - Finished processing of the message contents.
235
236         * Mono.Security.Protocol.Tls/RecordProtocol.cs:
237         * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
238         * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:
239
240                 - Added new ProcessChangeCipherSpec method.
241
242         * Mono.Security.Protocol.Tls/Context.cs:
243
244                 - Added new PrintBuffer method ( for debug ).
245
246         * Mono.Security.Protocol.Tls/SslClientStream.cs:
247         * Mono.Security.Protocol.Tls/SslServerStream.cs:
248
249                 - Callback cleanup.
250
251 2004-03-06 Carlos Guzman Alvarez  <carlosga@telefonica.net>
252
253         * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientHello.cs:
254         * Mono.Security.Protocol.Tls.Handshake.Server/TlsClientKeyExchange.cs:
255         * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerHello.cs:
256         * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerHelloDone.cs:
257         * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerCertificate.cs:
258
259                 - Initial implementation ( not finished ) 
260
261         * Mono.Security.Protocol.Tls/SslServerStream.cs:
262
263                 - Initial implementation of the doHandshake method.
264
265         - Added initial events implementation.
266
267         * Mono.Security.Protocol.Tls/Ciphersuite.cs:
268         * Mono.Security.Protocol.Tls/TlsCiphersuite.cs:
269         * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
270         * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:
271         * Mono.Security.Protocol.Tls/SslClientStream.cs:
272         * Mono.Security.Protocol.Tls/TlsServerSettings.cs:
273         * Mono.Security.Protocol.Tls/TlsClientSettings.cs:
274         * Mono.Security.Protocol.Tls/ClientContext.cs:
275         * Mono.Security.Protocol.Tls.Handshake.Client/*.cs:
276         * Mono.Security.Protocol.Tls.Handshake.Server/*.cs:
277
278                 - Changes for make use of the renamed classes and enums.
279
280         * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeType.cs:
281
282                 - Renamed to HandshakeType.cs (Enum and file)
283
284         * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessage.cs:
285
286                 - Renamed to HandshakeMessage.cs (Class and file)
287
288         * Mono.Security.Protocol.Tls.Handshake/TlsClientCertificateType.cs:
289
290                 - Renamed to ClientCertificateType.cs (Enum and file)
291
292         * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
293
294                 - Renamed to Alert (Class, enums and file)
295
296         * Mono.Security.Protocol.Tls/TlsContentType.cs:
297
298                 - Renamed to ContentType.cs ( Enum and file )
299  
300         * Mono.Security.Protocol.Tls/TlsCiphersuiteCollection.cs:
301
302                 - Renamed to CiphersuiteCollection.cs ( Class and file )
303
304         * Mono.Security.Protocol.Tls/TlsCiphersuiteFactory.cs:
305
306                 - Renamed to CiphersuiteCollection.cs ( Class and file )
307
308         * Mono.Security.Protocol.Tls/TlsSslHandshakeHash.cs:
309
310                 - Renamed to SslHandshakeHash.cs ( Class and file )
311
312         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
313
314                 - Renamed to SslCipherSuite.cs ( Class and file )
315
316 2004-03-04 Carlos Guzman Alvarez  <carlosga@telefonica.net>
317
318         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerHelloDone.cs:
319         * Mono.Security.Protocol.Tls.Handshake.Server/TlsServerHelloDone.cs:
320
321         - Fixed message type.
322
323 2004-02-26 Carlos Guzman Alvarez  <carlosga@telefonica.net>
324
325         * Mono.Security.Protocol.Tls/HandshakeState.cs:
326
327                 - New file.
328
329         * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
330
331                 - Modified the level of some alerts according to the RFC.
332
333         * Mono.Security.Protocol.Tls/SslClientStream.cs:
334         * Mono.Security.Protocol.Tls/SslServerStream.cs:
335         * Mono.Security.Protocol.Tls/Context.cs:
336         * Mono.Security.Protocol.Tls/ClientContext.cs:
337         * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
338         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:
339
340                 - Added changes for better handling of ClientHelloRequest messages.
341
342 2004-02-25  Sebastien Pouliot  <sebastien@ximian.com>
343
344         * Mono.Security.dll.sources: Added new internal class HttpsClientStream
345         in Mono.Security.Protocol.Tls to the build.
346
347 2004-02-24 Carlos Guzman Alvarez  <carlosga@telefonica.net>
348
349         * Mono.Security.Protocol.Tls.Alerts/TlsCloseNotifyAlert.cs:
350
351                 - Removed File.
352
353         * Mono.Security.Protocol.Tls.Alerts/TlsAlerts.cs:
354         * Mono.Security.Protocol.Tls/RecordProtocol.cs:
355         * Mono.Security.Protocol.Tls/SslClientStream.cs:
356         * Mono.Security.Protocol.Tls/SslServerStream.cs:
357
358                 - Reimplementation of TLS/SSL Alert Protocol.
359
360 2004-02-23 Carlos Guzman Alvarez  <carlosga@telefonica.net>
361
362         * Mono.Security.Protocol.Tls/TlsContext.cs:
363
364                 - Removed file, implementation is now present in:
365
366                         Context.cs
367                         ClientContext.cs
368                         ServerContext.cs
369
370         * Mono.Security.Protocol.Tls/Context.cs:
371         * Mono.Security.Protocol.Tls/ClientContext.cs:
372         * Mono.Security.Protocol.Tls/ServerContext.cs:
373         * Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:
374
375                  - New classes.
376
377         * Mono.Security.Protocol.Tls/SslServerStream.cs:
378
379                 - Added implementation for properties, and read/write methods
380                 as in SslClientStream.
381
382                 - doHandshake method is not implemented yet.
383
384         * Mono.Security.Protocol.Tls/SslClientStream.cs:
385         * Mono.Security.Protocol.Tls/RecordProtocol.cs:
386         * Mono.Security.Protocol.Tls/Ciphersuite.cs:
387         * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
388         * Mono.Security.Protocol.Tls.Alerts/TlsCloseNotifyAlert.cs:
389         * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessage.cs:
390         * Mono.Security.Protocol.Tls.Handshake.Client/*.cs:
391
392                 - Added changes for make use of the new Context implementation.
393
394         * Mono.Security.Protocol.Tls.Handshake.Server/*.cs:
395
396         - New classes with method signatures only for the server handshake
397         implementation.
398
399 2004-02-21  Carlos Guzman Alvarez  <carlosga@telefonica.net>
400
401     * TlsServerHello: Fix for handle SecurityProtocolType.Default.
402
403 2004-02-20  Sebastien Pouliot  <sebastien@ximian.com>
404
405         * Mono.Security.dll.sources: Added new file X509ChainStatusFlags in
406         Mono.Security.X509 namespace.
407
408 2004-02-20 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
409
410         * Mono.Security.Protocol.Tls/SslClientStream.cs:
411         * Mono.Security.Protocol.Tls/RecordProtocol.cs:
412         * Mono.Security.Protocol.Tls/TlsContext.cs:
413
414                 - Added changes for handle te SecurityProtocolType enum
415                 as a Flags enum.
416
417         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientHello.cs:
418
419                 - Let the Ssl3 message to be process in the same way as the Tls1.
420
421         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientHello.cs:
422                 
423                 - Added changes for use the Protocol version send by the server
424
425         * Mono.Security.Protocol.Tls/CipherSuite.cs:
426
427                 - Compute the premaster secret using the protocol version sent in 
428                 the ClientHello message instead of the actual protocol version.
429
430         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
431
432         - Commented the server cert validation.
433
434         * Mono.Security.Protocol.Tls.Alerts/TlsWarningEventAgrs.cs:
435
436                 - Removed no more needed file.
437
438         * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
439
440                 - Added 4 new properties:
441
442                         * Message
443
444                         * IsWarning
445
446                         * IsFatal
447
448                         * IsCloseNotify
449
450                 - Return always the same message when working in release mode
451                 (The authentication or decryption has failed.)
452
453         * Mono.Security.Protocol.Tls/SslClientStream.cs:
454
455                 - Changes to the sync code.
456
457                 - Record protocol stuff moved to the new classes.
458
459                 - Removed Warning event.
460
461                 - Added control over the CloseNotify Alert
462                 to BeginRead method.
463
464                 - Return true in the server certificate validation method
465                 if there are no errors.
466
467         * Mono.Security.Protocol.Tls/RecordProtocol.cs:
468         * Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:
469
470                 - New classes for handle the SSL/TLS record protocol.
471
472 2004-02-18 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
473
474         * Mono.Security.Protocol.Tls/SslClientStream.cs:
475
476         - Implement CheckCertRevocationStatus ( not used yet )
477
478         * Mono.Security.Protocol.Tls/CipherAlgorithmType.cs:
479         * Mono.Security.Protocol.Tls/HashAlgorithmType.cs:
480         * Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs:
481
482                 - Added Serializable attribute.
483
484         * Mono.Security.Protocol.Tls/CipherSuite.cs:
485         * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
486         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
487         * Mono.Security.Protocol.Tls/TlsContext.cs:
488
489                 - Added some optimizations proposed by Sebastien Pouliot.
490
491         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
492
493                 - Changes on Common Name detection and certificate error handling ( Thanks to Sebastien Pouliot for his feedback ).
494
495 2004-02-17 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
496
497         * Mono.Security.Protocol.Tls/SslClientStream.cs:
498
499                 - Added changes to security properties for check that the handshake is finished.
500
501         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificate.cs:
502
503                 - Raise the Client Certificate event.
504
505         * Mono.Security.Protocol.Tls/CipherSuite.cs:
506         * Mono.Security.Protocol.Tls/SslClientStream.cs:
507         * Mono.Security.Protocol.Tls/SecurityProtocolType.cs:
508         * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
509         * Mono.Security.Protocol.Tls/TlsCipherSuiteCollection.cs:
510         * Mono.Security.Protocol.Tls/TlsCipherSuiteFactory.cs:
511         * Mono.Security.Protocol.Tls/TlsContext.cs:
512         * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessage.cs:
513         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientHello.cs:
514
515                 - Change the SecurityProtocolType enum to mtch .NET 1.2 documentation definition.
516
517         * Mono.Security.Protocol.Tls/SslClientStream.cs:
518
519                 - Impement SelectedClientCertificate and ServerCertificate properties.
520
521         * Mono.Security.Protocol.Tls/SslClientStream.cs:
522
523         - Added changes for bring async methods to work ( Thanks to Sebastien Pouliot )
524
525         - Reworked the record fragmentation.
526
527         - Fix for send the close notify alert in the Close method
528         only if the Handshake is fully negotiated.
529
530 2004-02-16 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
531
532         * Mono.Security.Protocol.Tls/TlsCipherSuiteFactory.cs:
533
534         - Changed ciphersuites order of preference ( Thanks to Sebastien Pouliot for his feedback ).
535
536 2004-02-15 Carlos Guzmán Álvarez  <carlosga@te...>
537  
538         * Mono.Security.Protocol.Tls/SslClientStream.cs:
539  
540                 - Added specific control od available data for Network Streams
541                 on Read ( Thanks to Francisco Figueiredo Jr. for his feedback ).
542  
543                 - Removed test code.
544
545 2004-02-14 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
546
547     * Mono.Security.Protocol.Tls/SslClientStream.cs:
548
549         - Removed test code.
550
551     * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
552
553         - Removed test code.
554
555 2004-02-13  Sebastien Pouliot  <sebastien@ximian.com>
556
557         * Mono.Security.dll.sources: Added Diffie-Hellman contribution from
558         Pieter Philippaerts (mentalis.org) to Mono.Security.Cryptography.
559         * Mono.Security_test.dll.sources: Added Diffie-Hellman unit tests.
560
561 2004-02-10 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
562
563     * Mono.Security.Cryptography/PKCS1.cs:
564
565         - Added little change for allow the class to be used with
566         hash implementations that doesn't have an oid like the MD5SHA1 hash.
567
568     * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
569
570         - Throw exception if the Private Key is null.
571
572     * Mono.Security.Protocol.Tls/SslServerStream.cs:
573
574         - Ssl Server class without implementation ( methods signatures only )
575         That matches the described in the .NET 1.2 documentation.
576
577 2004-02-09  Sebastien Pouliot  <sebastien@ximian.com>
578
579         * Mono.Security_test.dll.sources Added Mono.Math BigInteger unit test
580         to the build (as they cannot be executed with corlib).
581
582 2004-02-09 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
583
584     * Changed the license header to all the sources files
585     to remove accents.
586
587     * Mono.Security.Protocol.Tls/TlsSessionState.cs:
588
589         - Removed old file.
590
591         * Mono.Security.Protocol.Tls/SslClientStream.cs:
592
593                 - Try to improve record reading.
594
595         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificate.cs:
596
597                 - Send always the first certificate.
598
599         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
600
601                 - Added changes for correct verification of the signed data sent 
602                 by the server.
603
604         * Mono.Security.Cryptography/PKCS1.cs:
605
606                 - Added change to Encode_v15 method for allow correct
607                 encoding of hash algorithms that doesn't have an OID
608                 like the MD5SHA1 hash used in SSL/TLS protocols.
609
610         * Added files from mono:: project that are going to be needed
611         for client authentication:
612
613                 Mono.Math/*
614
615                 Mono.Math.Prime/*
616
617                 Mono.Math.Prime.Generator/*
618
619                 Mono.Security.Cryptography/RSAManaged.cs
620
621         * Mono.Security.Protocol.Tls/RSASslSignatureFormatter.cs:
622
623                 - Create RSA as an RSAManaged instance.
624                 
625         * Mono.Security.Protocol.Tls/RSASslSignatureFormatter.cs:
626         * Mono.Security.Protocol.Tls/RSASslSignatureDeformatter.cs:
627                 
628                 - Changed key field to be of RSA type.
629
630         * Mono.Security.Protocol.Tls/RSASslSignatureFormatter.cs:
631         * Mono.Security.Protocol.Tls/RSASslSignatureDeformatter.cs:
632
633                 - Added new classes for implement in the future RSA-SSL signatures.
634
635         * Changed #region names in all source files.
636
637         * Mono.Security.Protocol.Handshake.Client/TlsServerCertificate.cs:
638                 
639                 - Fixed message (but not working yet - we need RSA signing 
640                 capabilitites with MD5SHA1 hash).       
641
642         * Mono.Security.Protocol.Handshake.Client/TlsServerCertificate.cs:
643         
644                 - Retrict certificate validation to the first validation.
645                 ( real validation needs to be made using a chain )
646                 
647                 - Improved domain validation by making a IP checking between
648                 the target host IP and the certificate domain IP.
649
650                 - Fixed error list handling on certificate validation.  
651
652         * Mono.Security.Protocol.Tls/SslClientStream.cs:
653
654                 - Added new exceptions.
655
656
657 2004-02-06  Sebastien Pouliot  <sebastien@ximian.com>
658
659         * Mono.Security.dll.sources: Added KeyPairPersistence and it's 
660         dependencies in Mono.Xml (MiniParser and SecurityParser). Also 
661         added CryptoTools and SymmetricTransforms in Mono.Sec.Crypt.
662         * Mono.Security_test.dll.sources: Added unit tests for 
663         KeyPairPersistence.
664
665 2003-12-07  Sebastien Pouliot  <spouliot@videotron.ca>
666
667         * Mono.Security.dll.sources: Added PKCS#12 support for X.509 certificates.
668         * Mono.Security_test.dll.sources: Added unit tests for PKCS#12.
669
670 2003-12-01  Sebastien Pouliot  <spouliot@videotron.ca>
671
672         * Mono.Security.dll.sources: Added Mono.Security.Protocol.Ntlm namespace
673         * Mono.Security_test.dll.sources: Added Mono.Security.Protocol.Ntlm unit
674         tests.
675
676 2003-11-27  Sebastien Pouliot  <spouliot@videotron.ca>
677
678         * Mono.Security.dll.sources: Added MD4, MD4Managed and PKCS8 to build.
679         * Mono.Security_test.dll.sources: Added unit tests for MD4, MD4Managed
680         and PKCS8.
681         
682 2003-11-22 Carlos Guzman Alvarez <carlosga@telefonica.net>
683
684         * Changed line endings to unix format in SSL/TLS sources.
685         
686         * Mono.Security.CryptographyoHMD5SHA1CryptoServiceProvider.cs:
687         
688             - Removed file (now it's called MD5SHA1.cs)
689         
690         * Mono.Security.Protocol.Tls/TlsCipherSuiteFactory.cs:
691         
692             - Removed comments from AES ciphersuites.
693
694
695 2003-11-17 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
696
697         * Mono.Security.Protocol.Tls/SslClientStream.cs:
698
699                 Removed ReadByte method, use innerStream.ReadByte() method instead.
700
701 2003-11-13 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
702
703         * Added implementation of an SslClientStream class similar to the MS .NET Framework 1.2 documentation.
704
705                 The next files are no more needed:
706
707                         - TlsSession.cs
708
709                         - TlsNetworkStream.cs
710
711                         - TlsSocket.cs
712
713                         - TlsSessionState.cs
714
715                 The next files are renamed:
716
717                         - TlsSessionSettings.cs -> TlsClientSettings.cs
718
719                         - TlsSessionContext.cs -> TlsContext.cs
720
721                 The next files are new:
722
723                         - SslClientStream.cs ( the name is non definitive yet )
724
725                 The next files where changed to reflect the new canges:
726
727                         - TlsHandshakeMessage.cs
728
729                         - TlsClientCertificate.cs
730
731                         - TlsClientCertificateVerify.cs
732
733                         - TlsClientFinished.cs
734
735                         - TlsClientHello.cs
736
737                         - TlsClientKeyExchange.cs
738
739                         - TlsServerCertificate.cs
740
741                         - TlsServerCertificateRequest.cs
742
743                         - TlsServerFinished.cs
744
745                         - TlsServerHello.cs
746
747                         - TlsServerHelloDone.cs
748
749                         - TlsServerKeyExchange.cs
750
751                         - TlsAlert.cs
752
753                         - TlsCloseNotifyAlert.cs
754
755                 
756 2003-11-12 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
757
758         * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
759         
760                 - Changes for give full error message only in debug mode ( Thanks to Sebastién Pouliot. )
761                 
762         * Mono.Security.Protocol.Tls/TlsProtocol.cs:
763         
764                 - Renamed to SecurityProtocolType.cs ( for match .NET 1.2 )
765         
766         * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
767         
768                 - Renamed to MD5SHA1.cs ( Thanks to Sebastién Pouliot. )
769                 
770         * Mono.Security.Cryptography/TlsCompressionMethod.cs:
771         
772                 - Renamed to SecurityCompressionType.
773                 
774         * Mono.Security.Protocol.Tls/CipherAlgorithmType.cs:
775         * Mono.Security.Protocol.Tls/HashAlgorithmType.cs:
776         * Mono.Security.Protocol.Tls/ExchangeAlgorithmType.cs:
777         
778                 - New enumerations that matches .NET 1.2 definitions with some minor differences.
779         
780         * Mono.Security.Protocol.Tls/CipherSuite.cs:
781         * Mono.Security.Protocol.Tls/TlsCipherSuite.cs:
782         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
783         * Mono.Security.Protocol.Tls/TlsSessionContext.cs:
784         
785                 - Added changes for make use of new enumerations.
786         
787         * Mono.Security.Protocol.Tls/TlsClientStream.cs:
788         
789                 - Added new informative properties that matches .NET 1.2 SslClientStream
790                 ( Not all the properties are implemented yet ).
791
792
793 2003-11-10 Carlos Guzmán Álvarez  <carlosga@telefonica.net>
794
795         * Mono.Security.Protocol.Tls.Alerts/TlsAlert.cs:
796
797                 - Fixed invalid alert message.
798
799         * Mono.Security.Protocol.Tls/CipherSuite.cs:
800         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
801         * Mono.Security.Cryptography/HMAC.cs:
802         * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
803         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
804
805                 - Changed ( Thanks to Sebastién Pouliot for his feedback )
806
807                         SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider();
808                         MD5CryptoServiceProvider sha = new MD5CryptoServiceProvider();
809
810                         to
811
812                         HashAlgorithm sha = SHA1.Create();
813                         HashAlgorithm md5 = MD5.Create(); 
814
815
816 2003-11-04 Carlos Guzmán Álvarez <carlosga@telefonica.net>
817
818         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
819
820                 - Commented server certificate signature verification.
821
822         * Mono.Security.Protocol.Tls/TlsServerSettings.cs:
823
824                 - Renamed ServerCertificates property to Certificates.
825
826
827 2003-11-04 Carlos Guzmán Álvarez (carlosga@telefonica.net)
828
829         * Updated SSL/TLS implementation files with unix like line endings.
830
831 2003-11-04 Carlos Guzmán Álvarez <carlosga@telefonica.net>
832
833         * Mono.Security.Protocol.Tls/CipherSuite.cs:
834
835                 - Added custom padding for record encryption.
836
837
838 2003-11-03 Carlos Guzmán Álvarez <carlosga@telefonica.net>
839
840         * Mono.Security.Protocol.Tls.Handshake/TlsHandshakeMessages.cs:
841         
842                 - Removed file.
843
844         * Mono.Security.Protocol.Tls/TlsSslHandshakeHash.cs:
845         
846                 - New class for handshake hashes calculation on SSL3 protocol.
847
848         * Mono.Security.Protocol.Tls/TlsSessionContext.cs:
849         
850                 - Fixed mac keys clearing for SSL3 protocol.
851
852         * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs:
853         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:
854         
855                 - Added changes for make use of new TlsSslHandshakeHash class.
856         
857         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:
858         
859                 - Added initial implementation for SSL3 protocol.
860         
861         * Mono.Security.Cryptography/MD5SHA1CryptoServiceProvider.cs:
862         
863                 - New class for md5-sha hash calculation.
864                                                         
865         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientFinished.cs:
866         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerFinished.cs:
867         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
868         * Mono.Security.Protocol.Tls.Handshake.Client/TlsHandshakeMessage.cs:
869         
870                 - Make use of new MD5SHA1CryptoServiceProvider class.
871                 
872         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
873         
874                 - Added initial implementation (not finished).
875                         
876         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
877         
878                 - Minor change to message processing.
879
880                 - Changed verify method name to verifySignature.
881                         
882         * Mono.Security.Protocol.Tls/TlsSessionContext.cs:
883         
884                 - Changed handshakeHashes member to be an TlsStream.
885
886 2003-10-28 Carlos Guzmán Álvarez <carlosga@telefonica.net>
887
888         * Mono.Security.Protocol.Tls/CipherSuite.cs:
889         * Mono.Security.Protocol.Tls/TlsSessionSettings.cs:
890         * Mono.Security.Protocol.Tls/TlsServerSettings.cs:
891         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientCertificateVerify.cs:
892         * Mono.Security.Protocol.Tls.Handshake.Client/TlsClientKeyExchange.cs:
893         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
894         * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerKeyExchange.cs:
895
896                 - Added changes for make use of X509 classes from mono.
897
898 2003-10-23 Carlos Guzmán Álvarez <carlosga@telefonica.net>
899
900         * Added partial implementation of SSL3 protocol ( not finished yet ) to the TLS sources.
901
902 2003-10-20  Sebastien Pouliot  <spouliot@videotron.ca>
903
904         * Mono.Security.dll.sources: Removed AssemblyInfo.cs from build.
905         This file is for TLS not for the complete Mono.Security assembly.
906
907 2003-10-20  Duncan Mak  <duncan@ximian.com>
908
909         * Mono.Security.dll.sources: Added TlsAbstractCipherSuite.cs,
910         TlsCipherSuiteFactory.cs and TlsCompressMethod.cs. This fixes the
911         build.
912
913 2003-10-20  Carlos Guzmán Álvarez  <carlosga@telefonica.net>
914
915         * Mono.Security.dll.sources: Added references for new Tls files.
916
917 2003-10-20  Pedro Martínez Juliá  <yoros@wanadoo.es>
918
919         * Mono.Security.dll.sources: Added references for Tls files.
920
921 2003-09-05  Sebastien Pouliot  <spouliot@videotron.ca>
922
923         * KeyAttributesExtension.cs: New. Added for WSE.
924
925 2003-09-01  Sebastien Pouliot  <spouliot@videotron.ca>
926
927         * Mono.Security.dll.sources: Added support for Authenticode(tm)
928         signatures.
929
930 2003-07-30  Sebastien Pouliot  <spouliot@videotron.ca>
931
932         * Mono.Security.dll.sources: Added ExtendedKeyUsageExtension.cs 
933         certificate extension (so MakeCert can now create SSL certificates).
934
935 2003-07-28  Sebastien Pouliot  <spouliot@videotron.ca>
936
937         * Mono.Security.dll.sources: Added missing SubjectAltNameExtension.cs
938
939 2003-06-14  Sebastien Pouliot  <spouliot@videotron.ca>
940
941         * list.unix. Added SubjectAltNameExtension.cs
942
943 2003-03-06  Sebastien Pouliot  <spouliot@videotron.ca>
944
945         * list.unix: New. All C# files required to build the assembly.
946         * makefile.gnu: New. Makefile to build the assembly under Linux.
947         * Mono.Security.build: New. NAnt build file. 
948