84b38943992fe01f008a266e4619ced083c59fec
[mono.git] / mcs / class / corlib / System.Security.Cryptography / ChangeLog
1 2005-01-06  Sebastien Pouliot  <sebastien@ximian.com> 
2
3         * DES.cs: Change wek and semi-weak key checking to avoid memory 
4         allocations. Old version required 2 allocations (weak+semiweak) to 
5         unpack the key. New versions are 16x-20x faster.
6         *  RijndaelManaged.cs: Removed unrequired "& 0xff" when casting to 
7         byte.
8
9 2005-01-03  Sebastien Pouliot  <sebastien@ximian.com> 
10
11         * DESCryptoServiceProvider.cs: Refactored ECB/ProcessBlock to allow
12         TripleDES to be more efficient by using the permutations itself. 
13         * TripleDESCryptoServiceProvider.cs: Removed memory allocation in 
14         Transform's ECB method. Changed code to directly call DES's 
15         permutations. MACTripleDES is now 20% faster (didn't have any other
16         3DES benchmark on hand) and requires much less memory.
17
18 2005-01-03  Sebastien Pouliot  <sebastien@ximian.com>
19
20         * DESCryptoServiceProvider.cs: Now using pre-computed tables (instead
21         of using a static constructor to compute them). Not much change 
22         performance-wise unless you used DES but only "a little" ;-). The old
23         code (who computed the results) is still present but commented,
24
25 2005-01-02  Sebastien Pouliot  <sebastien@ximian.com>
26
27         * SHA1CryptoServiceProvider.cs: Removed memory allocation in 
28         ProcessBlock method (now global). This gives up to 8% performance
29         increase when multiple blocks are being used.
30         * SHA256Managed.cs: Removed memory allocation in ProcessBlock method
31         (now global). This gives up to 5% performance increase when multiple 
32         blocks are being used.
33
34 2004-12-23  Sebastien Pouliot  <sebastien@ximian.com>
35
36         * DataProtectionScope.cs: Moved in System.Security.dll
37         * MemoryProtectionScope.cs: Moved in System.Security.dll
38         * ProtectedData.cs: Moved in System.Security.dll
39         * ProtectedMemory.cs: Moved in System.Security.dll
40
41 2004-12-22  Sebastien Pouliot  <sebastien@ximian.com>
42
43         * RSA.cs: Throw the proper CryptographicException exception when 
44         exporting a private key without CRT parameters, while keeping the
45         ArgumentNullException when the private exponent (D) is missing.
46
47 2004-12-06  Sebastien Pouliot  <sebastien@ximian.com>
48
49         * RSACryptoServiceProvider.cs: Adjust DecryptValue to the fact that 
50         Mono's RSAManaged support decryption without CRT while MS requires it.
51
52 2004-11-26  Sebastien Pouliot  <sebastien@ximian.com>
53
54         * CryptoAPITransform.cs: 
55         * DSACryptoServiceProvider.cs: 
56         * MACTripleDES.cs:
57         * RC2CryptoServiceProvider.cs: 
58         * RSACryptoServiceProvider.cs: 
59                 Added ComVisible attributes to match 2.0 October Preview.
60
61 2004-11-03  Sebastien Pouliot  <sebastien@ximian.com>
62
63         * PasswordDeriveBytes.cs: Fix default iretation count to 100. Fix
64         exceptions to match MS more closely. Fixed possible ArgumentException
65         when asking multiple GetBytes than results in more bits than the hash
66         function can provide.
67
68 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
69
70         * DESCryptoServiceProvider.cs: Fixed warning (l4) by adding empty {}.
71         * DSASignatureDeformatter.cs: Fixed warning (l4) for unused variable.
72         * DSASignatureFormatter.cs: Fixed warning (l4) for unused variable.
73         * HMACSHA1.cs: Fixed warning (l4) for unused variable.
74
75 2004-09-03  Tim Coleman (tim@timcoleman.com)
76
77         * CryptoConfig.cs: Add new Xml cryptography class info.
78
79 2004-08-08  Sebastien Pouliot  <sebastien@ximian.com>
80
81         * CspProviderFlags.cs: Fixed new enums values.
82         * DSA.cs: Fixed #if for constructor visibility.
83         * CryptoAPITransform.cs: Removed constructor for NET_2_0 profile.
84
85 2004-07-07  Sebastien Pouliot  <sebastien@ximian.com>
86
87         * DES.cs: Fixed FeedbackSizeValue to 8.
88         * RC2.cs: Fixed FeedbackSizeValue to 8.
89         * RC2CryptoServiceProvider.cs: When key size is different from 
90         effective key size we throw CryptographicUnexpectedOperationException.
91         * TripleDES.cs: Fixed FeedbackSizeValue to 8.
92
93 2004-07-07  Sebastien Pouliot  <sebastien@ximian.com>
94
95         * CryptoAPITransform.cs: Added the new Reset method for NET_2_0. This
96         is a NOP as this class isn't used by Mono (all crypto transforms are 
97         managed).
98         * CryptographicException.cs: Added _Exception interface for NET_2_0 
99         profile.
100         * CspProviderFlags.cs: Added new enum's members for NET_2_0.
101         * DSA.cs: Changed constructor to protected for NET_2_0. It is now 
102         possible to inherit from DSA in other assemblies.
103         * DSACryptoServiceProvider.cs: NET_2_0 cleanup. Added interface 
104         ICspAsymmetricAlgorithm (stub), removed (unrequired) LegalKeySizes 
105         override, fixed visibility of PublicOnly property.
106         * HMACSHA1.cs: Fixed #if for NET_2_0 profile.
107         * KeyNumber.cs: Fixed values for new enum in Fx 2.0.
108         * MACTripleDES.cs: Added new Padding property to NET_2_0 profile.
109         * ProtectedData.cs: Added missing private constructor.
110         * ProtectedMemory.cs: Added missing private constructor.
111         * RC2CryptoServiceProvider.cs: Added UseSalt property to NET_2_0 
112         profile. Salt usage must be added to the transforms.
113         * RIPEMD160Managed.cs: Removed unrequired [CLSCompliant] attributes.
114         * RSACryptoServiceProvider.cs: NET_2_0 cleanup. Added interface 
115         ICspAsymmetricAlgorithm (stub), fixed visibility of PublicOnly 
116         property.
117         * RijndaelManaged.cs: Use the new RijndaelManagedTransform for Fx 2.0.
118         * RijndaelManagedTransform.cs: New. Class is now public in Fx 2.0.
119
120 2004-06-23  Sebastien Pouliot  <sebastien@ximian.com>
121
122         * CryptoStream.cs: Removed the block reduction. This seems to be done
123         only for Decryptor so it was moved to SymmetricTransform.
124
125 2004-06-16  Sebastien Pouliot  <sebastien@ximian.com>
126
127         * SignatureDescription.cs: Implemented .ctor(SecurityElement) using
128         documentation from VS.NET 2005.
129
130 2004-06-10  Gert Driesen <drieseng@users.sourceforge.net>
131
132         * ToBase64Transform.cs: Uncomment finalizer to fix public API
133         signature
134
135 2004-05-29  Sebastien Pouliot  <sebastien@ximian.com>
136
137         * CspProviderFlags.cs: Reverted previous patch as UseExistingKey isn't
138         part of the 1.0/1.1 framework.
139
140 2004-05-29  Gert Driesen (drieseng@users.sourceforge.net)
141
142         * CspProviderFlags.cs: Added missing enum field UseExistingKey
143
144 2004-05-27  Sebastien Pouliot  <sebastien@ximian.com>
145
146         * HashAlgorithm.cs: Added missing exception handling to ComputeHash,
147         TransformBlock and TransformFinalBlock.
148
149 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
150
151         * CryptoStream.cs: Fixed possible integer overflow.
152         * FromBase64Transform.cs: Better exception handling and fixed possible
153         integer overflow.
154         * RNGCryptoServiceProvider.cs: Changed RNG interface with the runtime
155         so it could be used in a thread-safe way with CryptoAPI.
156         * ToBase64Transform.cs: Better exception handling and fixed possible
157         integer overflow.
158
159 2004-05-07  Sebastien Pouliot  <sebastien@ximian.com>
160
161         * CipherMode.cs: Moved XML comments to monodoc.
162         * CryptoConfig.cs: Changed Array.Copy to Buffer.BlockCopy.
163         * CryptoStream.cs: Changed Array.Copy to Buffer.BlockCopy.
164         * DSA.cs: Changed Array.Copy to Buffer.BlockCopy.
165         * DSACryptoServiceProvider.cs: Fixed SignData to hash data before 
166         signing it (thanks to Jens Thiel for spotting this).
167         * ICryptoTransform.cs: Moved XML comments to monodoc.
168         * PasswordDeriveBytes.cs: Changed Array.Copy to Buffer.BlockCopy.
169         * FromBase64Transform.cs: Moved XML comments to monodoc.
170         * RSACryptoServiceProvider.cs: Fixed OID related exception in SignData.
171         * ToBase64Transform.cs: Input block may be smaller than a full block
172         when calling TransformFinalBlock (fix 2 CryptoStream unit tests).
173
174 2004-05-06  Sebastien Pouliot  <sebastien@ximian.com>
175
176         * RSAOAEPKeyExchangeDeformatter.cs: Fixed wrt completed unit tests.
177         * RSAOAEPKeyExchangeFormatter.cs: Fixed wrt completed unit tests.
178         * RSAPKCS1KeyExchangeDeformatter.cs: Fixed wrt completed unit tests.
179         Added globalization to exceptions.
180         * RSAPKCS1KeyExchangeFormatter.cs: Fixed wrt completed unit tests.
181         * RSAPKCS1SignatureDeformatter.cs: Fixed wrt completed unit tests.
182         Added globalization to exceptions.
183         * RSAPKCS1SignatureFormatter.cs: Fixed wrt completed unit tests.
184         Added globalization to exceptions.
185         
186 2004-05-06  Sebastien Pouliot  <sebastien@ximian.com>
187
188         * RC2.cs: Fixed KeySize to change it's value and the EffectiveKeySize
189         when the key is changed.
190         * RC2CryptoServiceProvider.cs: Added globalization to exceptions. 
191         Fixed the KeySize must be equal with EffectiveKeySize to match MS 
192         implementation.
193         * Rijndael.cs: Source clean up.
194         * RijndaelManaged.cs: Moved XML comments to monodoc. Added 
195         globalization to exceptions. 
196         * RNGCryptoServiceProvider.cs: Removed TODO and documented them in
197         mono doc. Now call runtime when a seed is provided.
198         * RSA.cs: Added globalization to exceptions. Removed check for 
199         <RSAKeyValue> as it is not checked by MS implementation.
200         * SHA1.cs: Moved XML comments to monodoc.
201         * SHA1CryptoServiceProvider.cs: Moved XML comments to monodoc. Removed
202         CLSCompliance attributes from private fields. 
203         * SHA256.cs: Moved XML comments to monodoc.
204         * SHA256Managed.cs: Moved XML comments to monodoc. Removed 
205         CLSCompliance attributes from   private fields.
206         * SHA384.cs: Moved XML comments to monodoc.
207         * SHA512.cs: Moved XML comments to monodoc.
208         * SignatureDescription.cs: Moved XML comments to monodoc. Added 
209         globalization to exceptions. Removed TODO and added notes to monodoc.
210         * SymmetricAlgorithm.cs: Moved XML comments to monodoc. Added 
211         globalization to exceptions.
212         * ToBase64Tranform.cs: Added missing exception handling. Moved XML 
213         comments to monodoc.
214         * TripleDES.cs: Added globalization to exceptions.
215         * TripleDESCryptoServiceProvider.cs: Changed Array.Copy to 
216         Buffer.BlockCopy. Zeroize decrypted data.
217
218 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
219
220         * HashAlgorithm.cs: Moved XML comments to monodoc. Added globalization
221         to exceptions.
222         * KeyedHashAlgorithm.cs: Added globalization to exceptions.
223         * KeySizes.cs: Moved XML comments to monodoc.
224         * MaskGenerationMethod.cs: Source clean up.
225         * MD5.cs: Moved XML comments to monodoc.
226         * MD5CryptoServiceProvider.cs: Removed CLSCompliance attributes from
227         private fields. Changed constants from enum to array. Zeroize data on
228         Dispose.
229         * PaddingMode.cs: Moved XML comments to monodoc.
230         * PasswordDeriveBytes.cs: Added globalization to exceptions. Removed 
231         TODO and documented as "not supported" in MonoDoc.
232         * RandomNumberGenerator.cs: Source clean up.
233
234 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
235
236         * DSACryptoServiceProvider.cs: Added globalization to exceptions.
237         * HMACSHA1.cs: Cleanup.
238         * SHA1CryptoServiceProvider.cs: Removed unused private methods.
239         * SHA1Managed.cs: Removed unused private methods.
240         * SHA384Managed.cs: Don't zeroize buffer on first initialization.
241         * SHA512Managed.cs: Don't zeroize buffer on first initialization.
242         
243 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
244
245         * Base64Constants.cs: New. Convert code into tables for better base64
246         performance.
247         * FromBase64Transform.cs: Updated to use the new tables. Source code
248         cleanup.
249         * SHA256Managed.cs: Updated to use shared constants.
250         * SHA384Managed.cs: Updated to use shared constants.
251         * SHA512Managed.cs: Updated to use shared constants.
252         * SHAConstants.cs: New. Shared constants for SHA implementations.
253         * ToBase64Transform.cs: Updated to use the new tables. Added 
254         globalization. Commented finalizer as it isn't required in this case.
255
256 2004-05-03  Sebastien Pouliot  <sebastien@ximian.com>
257
258         * CryptoConfig.cs: Specify version and public key token when loading
259         System.Security.dll for XML Digital Signature classes.
260
261 2004-04-29 Ben Maurer  <bmaurer@users.sourceforge.net>
262
263         * DES.cs:
264         * DESCryptoServiceProvider.cs:
265         * RC2CryptoServiceProvider.cs:
266         * RijndaelManaged.cs:
267         * SHA384Managed.cs:
268         * SHA512Managed.cs:
269         * ToBase64Transform.cs:
270         Readonly/Constify.
271
272 2004-04-29  Sebastien Pouliot  <sebastien@ximian.com>
273
274         * DES.cs: Removed redundant weak/semi-weak key check in Key property.
275         * DESCryptoServiceProvider.cs: Implementation already had 100% 
276         coverage.
277
278 2004-04-28  Sebastien Pouliot  <sebastien@ximian.com>
279
280         * DSACryptoServiceProvider.cs: Changed delegate signature.
281         * RSACryptoServiceProvider.cs: Changed delegate signature.
282
283 2004-04-28  Sebastien Pouliot  <sebastien@ximian.com>
284
285         * DSA.cs: Moved XML comments to monodoc. Added globalization to 
286         exceptions. Already had 100% coverage.
287         * DSAParameters.cs: Moved XML comments to monodoc.
288         * DSASignatureDeformetter.cs: Added globalization to exceptions. 
289         Limited catch to expected exception. Already had 100% coverage.
290         * DSASignatureFormatter.cs: Added globalization to exceptions. Limited
291         catch to expected exception. Already had 100% coverage.
292
293 2004-04-26  Sebastien Pouliot  <sebastien@ximian.com>
294
295         * AsymmetricAlgorithm.cs: Moved XML comments to monodoc. Added 
296         globalization to exceptions. Already had 100% coverage.
297         * AsymmetricKeyExchangeDeformatter.cs: Moved XML comments to monodoc.
298         Already had 100% coverage.
299         * AsymmetricKeyExchangeFormatter.cs: Moved XML comments to monodoc.
300         Already had 100% coverage.
301         * AsymmetricSignatureDeformatter.cs: Moved XML comments to monodoc.
302         Already had 100% coverage.
303         * AsymmetricSignatureFormatter.cs: Moved XML comments to monodoc.
304         Already had 100% coverage.
305         * CryptoAPITransform.cs: Unused by Mono (added note to monodoc).
306         Class will stay at 0% coverage.
307         * CryptoConfig.cs: Added globalization to exceptions. 98% coverage.
308         * CryptographicException.cs: Added globalization to exceptions. 
309         Already had 100% coverage.
310         * CryptoStream.cs: Added globalization to exceptions. Removed (unused)
311         field _previousBlock to get 100% coverage.
312         * CspParameters.cs: Moved XML comments to monodoc. Already had 100% 
313         coverage.
314         * CspProviderFlags.cs: Moved XML comments to monodoc.
315         * DeriveBytes.cs: Moved XML comments to monodoc. Already had 100% 
316         coverage.
317         * DES.cs: Fixes to weak/semi-weak checking to pass new unit tests (it
318         requires to set odd parity on keys before comparing).
319
320 2004-04-25  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
321
322         * DSACryptoServiceProvider.cs: Call invariant compare
323
324 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
325
326         * DSA.cs: Use Mono.Security.BitConverterLE
327
328 2004-04-05  Bernie Solomon  <bernard@ugsolutions.com>
329
330         * DESCryptoServiceProvider.cs: Use BitConverter.IsLittleEndian
331         to fix for big endian machines.
332
333 2004-03-10  Sebastien Pouliot  <sebastien@ximian.com>
334
335         * FromBase64Transform.cs: Now throws ObjectDisposedException and
336         return true for CanReuseTransform (as MS implementation).
337
338 2004-03-09  Atsushi Enomoto  <atsushi@ximian.com>
339
340         * DSA.cs : fixed incorrectly modified catch for debugging.
341
342 2004-03-09  Atsushi Enomoto  <atsushi@ximian.com>
343
344         * DSA.cs : In ToXmlString(), sequence of Seed and PgenCounter is
345           optional.
346
347 2004-02-26  Sebastien Pouliot  <sebastien@ximian.com>
348
349         * DES.cs: Same fix as for SymmetricAlgorithm (get_Key is 
350         overridden to check for weak keys). Also ensured that no weak keys
351         would be generated.
352         * SymmetricAlgorithm.cs: Return a copy of the key (and IV) so it 
353         doesn't get destroyed when dispose is called (in this case the key
354         zeroization is the caller's responsability). Match MS implementation.
355         * TripleDES.cs: Same fix as for SymmetricAlgorithm (get_Key is 
356         overridden to check for weak keys). Fix bugzilla #54868.
357
358 2004-02-12  Sebastien Pouliot  <sebastien@ximian.com>
359
360         * CryptoStream.cs: Remove the _blockSize assumptions because some 
361         Transforms could be different on Input/Output. Added a special case
362         for cascading CryptoStreams in FlushFinalBlock.
363
364 2004-02-09  Sebastien Pouliot  <sebastien@ximian.com>
365
366         * DSACryptoServiceProvider.cs: Fixed support for key pair persistence.
367         It now requires (like MS) to call Clear to delete an existing 
368         container. PersistKeyInCsp default value also changes if a 
369         CspParameters is supplied (or not) to the constructor.
370         * RSACryptoServiceProvider.cs: Same fixes as DSA.
371         * SymmetricAlgorithm.cs: Reintroduced the patch from 2003-08-24 to fix
372         IV length exception for stream ciphers (e.g. RC4). I overwrote it by
373         accident some time ago :(
374
375 2004-02-08  Sebastien Pouliot  <sebastien@ximian.com>
376
377         * HashAlgorithm.cs: Changed the ComputeHash(Stream) method to (a) not
378         allocate the whole stream memory (big memory saver as suggested by
379         Peter Williams in bugzilla entry #54022) and (b) to never use Stream.
380         Length and Stream.Position because they aren't implemented for every
381         stream class (similar issue to the CryptoStream patch).
382         * MD5CryptoServiceProvider.cs: Moved a buffer allocation from 
383         ProcessBlock to constructor to reduce memory allocation. Optimization
384         suggested by Peter Williams in bugzilla entry #54024.
385
386 2004-02-06  Sebastien Pouliot  <sebastien@ximian.com>
387
388         * DSACryptoServiceProvider.cs: Added keypair persistence support.
389         Corrected dispose so object cannot be disposed multiple time. Added
390         PublicOnly property (as internal before 1.2, public after).
391         * RSACryptoServiceProvider.cs: Added keypair persistence support.
392         Corrected dispose so object cannot be disposed multiple time. Added
393         PublicOnly property (as internal before 1.2, public after).
394         * SymmetricAlgorithm.cs: Removed class SymmetricTransform from file
395         and moved it to Mono.Security.Cryptography namespace. The transform
396         class will also be included in Mono.Security assembly.
397
398 2004-02-06  David Sheldon <dave-mono@earth.li>
399
400   * FromBase64Transform.cs: Improved code layout to match coding style, 
401    and removed the Byte comparison with -1.
402
403 2004-02-04  Sebastien Pouliot  <sebastien@ximian.com>
404
405         * CryptoStream.cs: New implementation - should fix all known issues
406         with the class (Read/WriteByte, reading by non-multiple of the
407         block size, using Stream.Length and Stream.Position ...).
408         * SymmetricAlgorithm.cs: Return an empty array when there's nothing
409         to return (required for CryptoStream to work).
410
411 2004-01-31  David Sheldon      <dave-mono@earth.li>
412
413         * FromBase64Transform.cs: Removed needless catch and rethrow.
414
415 2004-01-31  David Sheldon      <dave-mono@earth.li>
416
417         * FromBase64Transform.cs: Fixes to what happens if a character in the
418         input stream is not in the lookup table. IndexOutOfRangeException was 
419         wrong.
420
421 2003-12-15  Sebastien Pouliot  <spouliot@videotron.ca>
422
423         * CryptoConfig.cs: Now use internal Environment.GetMachineConfigPath()
424         to find machine.config. Initialization removed from static constructor
425         to speed up 98% of software that do not requires it.
426         * SymmetricAlgorithm.cs: Fixed padding for None and Zeros modes. Unit
427         tests for padding modes are now in PaddingModeTest.cs.
428
429 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
430
431         * HMAC.cs: Fix compilation warnings.
432
433 2003-12-10  Mark Crichton  <crichton@gimp.org>
434
435         * RNGCryptoServiceProvider.cs: Removed icall to GetNonZeroBytes. Now
436         done with managed code.
437
438 2003-11-13  Sebastien Pouliot  <spouliot@videotron.ca>
439
440         * ProtectedData.cs: Added exceptions - core is still TODO.
441         * ProtectedMemory.cs: Added exceptions - core is still TODO.
442
443 2003-11-11  Sebastien Pouliot  <spouliot@videotron.ca>
444
445         * Rfc2898DeriveBytes.cs: Now handle resets and keys longer than 160 
446         bits (HMACSHA1 block size). Removed TODO.
447         * SymmetricAlgorithm.cs: Fixed decryption when inputOffset > 0.
448         [#50826].
449
450 2003-11-10  Sebastien Pouliot  <spouliot@videotron.ca>
451
452         * Rfc2898DeriveBytes.cs: Implementation for PKCS5 PBKDF2. It works
453         except for the Reset() part - which implies some kind of Resume.
454
455 2003-11-09  Sebastien Pouliot  <spouliot@videotron.ca>
456
457         * CryptoConfig.cs: Updated for RIPEMD160 and HMAC.
458         * CspKeyContainerInfo.cs: New (1.2). Information about CSP based key
459         containers.
460         * DataProtectionScope.cs: New (1.2). Enumeration for ProtectedData.
461         * HMAC.cs: New (1.2). Base class for all HMAC. Code is mostly copied 
462         from internal Mono.Security.Cryptography.HMACAlgorith.cs.
463         * HMACMD5.cs: New (1.2). HMAC implementation using MD5.
464         * HMACRIPEMD160.cs: New (1.2). HMAC implementation using RIPEMD160.
465         * HMACSHA1.cs: Modified to derive from HMAC for .NET 1.2.
466         * HMACSHA256.cs: New (1.2). HMAC implementation using SHA256.
467         * HMACSHA384.cs: New (1.2). HMAC implementation using SHA384.
468         * HMACSHA512.cs: New (1.2). HMAC implementation using SHA512.
469         * ICspAsymmetricAlgorithm.cs: New (1.2). Interface for CSP based 
470         asymmetric algorithm.
471         * KeyNumber.cs: New (1.2). Enumeration for CspKeyContainerInfo.
472         * MemoryProtectionScope.cs: New (1.2). Enumeration for ProtectedMemory.
473         * PaddingMode.cs: Added two new padding modes to enumeration (for 1.2).
474         * ProtectedData.cs: New (1.2). ProtectedData without protection (TODO).
475         * ProtectedMemory.cs: New (1.2). Stub for ProtectedMemory.
476         * Rfc2898DeriveBytes.cs: New (1.2). Stub for PKCS5 PBKDF2.
477
478 2003-11-08  Sebastien Pouliot  <spouliot@videotron.ca>
479
480         * RIPEMD160.cs: New (1.2). Abstract class for RIPEMD160 hash from 
481         Pieter Philippaerts (Pieter@mentalis.org)
482         * RIPEMD160Managed.cs: New (1.2). Implementation of the RIPEMD160 hash
483         algorithm from Pieter Philippaerts (Pieter@mentalis.org)
484
485 2003-10-07  Sebastien Pouliot  <spouliot@videotron.ca>
486
487         * CryptoStream.cs: Commented CanTransformMultipleBlocks
488         optimization - it simply doesn't work :(
489
490 2003-10-04  Sebastien Pouliot  <spouliot@videotron.ca>
491
492         * CryptoStream.cs: Fixed bug 49323. The CanTransformMultipleBlocks
493         optimization in Read has been fixed for partial blocks.
494
495 2003-09-11  Lluis Sanchez Gual  <lluis@ximian.com>
496
497         * CryptoStream.cs: Added [In,Out] attributes to Read method.
498
499 2003-08-24  Sebastien Pouliot  <spouliot@videotron.ca>
500
501         * SymmetricAlgorithm.cs: Fixed IV length exception for stream ciphers
502         (e.g. RC4) which don't uses IV. This needs more tests for small IV...
503
504 2003-08-09  Sebastien Pouliot  <spouliot@videotron.ca>
505
506         * SymmetricAlgorithm.cs: Re-introduced Lluis patch for PaddingMode.None 
507         and PaddingMode.Zeros (not PaddingMode.PKCS7).
508
509 2003-08-05  Sebastien Pouliot  <spouliot@videotron.ca>
510
511         * CryptoStream.cs: Closing bug #40689. The Write method was re-written.
512         * SymmetricAlgorithm.cs: Removed Lluis previous patch (it fails a unit
513         test) and corrected a bug in FinalDecrypt.
514         * RSACryptoServiceProvider.cs: Fixed different exceptions from .NET 1.0
515         and 1.1.
516
517 2003-07-31  Sebastien Pouliot  <spouliot@videotron.ca>
518
519         * CryptoStream.cs: Closing bug #46143. The Read method was re-written.
520
521 2003-07-30  Sebastien Pouliot  <spouliot@videotron.ca>
522
523         * CryptoStream.cs: Fixed bug #46143 (exception) - however we dont 
524         returns the same result as MS. Class needs to be re-written.
525
526 2003-07-09  Lluis Sanchez Gual  <lluis@ximian.com>
527
528         * SymmetricAlgorithm.cs: Fixed FinalEncrypt. Return empty array if inputCount is 0.
529
530 2003-07-05  Sebastien Pouliot  <spouliot@videotron.ca>
531
532         * AsymmetricAlgorithm.cs: Removed AsymmetricParameters (IReader) class. 
533         Now uses the new Mono.Xml.SecurityParser (xml -> SecurityElement)
534         * CryptoConfig.cs: Removed CorlibHandler and CorlibReader classes. Now 
535         uses the new Mono.Xml.SecurityParser (xml -> SecurityElement)
536         * DSA.cs: Removed DSAHandler (IHandler) class. Now uses the new 
537         Mono.Xml.SecurityParser (xml -> SecurityElement)
538         * DSACryptoServiceProvider.cs: Added ObjectDisposedException support
539         and fixed bugs found in new unit tests.
540         * RSA.cs: Removed DSAHandler (IHandler) class. Now uses the new 
541         Mono.Xml.SecurityParser (xml -> SecurityElement)
542         * RSACryptoServiceProvider.cs: Added ObjectDisposedException support
543         and fixed bugs found in new unit tests.
544
545 2003-06-22  Sebastien Pouliot <spouliot@motus.com>
546
547         * DSACryptoServiceProvider.cs: Added UseMachineKeyStore property (1.1).
548         * RSACryptoServiceProvider.cs: Added UseMachineKeyStore property (1.1).
549
550 2003-06-11  Sebastien Pouliot <spouliot@motus.com>
551
552         * DSACryptoServiceProvider.cs: Refactored from orginal by splitting 
553         much core functionalities into DSAManaged. 
554         * RSACryptoServiceProvider.cs: Refactored from orginal by splitting 
555         much core functionalities into RSAManaged. 
556         * RSAPKCS1SignatureDeformatter.cs: Updated to use the new PKCS#1 API.
557         Now works with any hash algorithm (which OID is defined in machine.config)
558         * RSAPKCS1SignatureFormatter.cs: Updated to use the new PKCS#1 API.
559         Now works with any hash algorithm (which OID is defined in machine.config)
560
561 2003-06-09  Sebastien Pouliot <spouliot@motus.com>
562
563         * CryptoConfig.cs: Now support OID in machine.config.
564         * DSACryptoServiceProvider.cs: Changed USE_VERSION_1_0 for NET_1_0.
565         * KeySizes.cs: Changed USE_VERSION_1_0 for NET_1_0.
566         * MD5CryptoServiceProvider.cs: Changed USE_VERSION_1_0 for NET_1_0.
567         * RNGCryptoServiceProvider.cs: Changed USE_VERSION_1_0 for NET_1_0.
568
569 2003-05-12  Sebastien Pouliot  <spouliot@videotron.ca>
570
571         * PKCS1MaskGenerationMethod.cs: Added comment to justify why
572         the class is no more compatible with MS implementation (the bug
573         was preventing OAEP to work properly).
574
575 2003-05-09  Sebastien Pouliot  <spouliot@videotron.ca>
576
577         * DSACryptoServiceProvider.cs: Class is now sealed in v.1.1.
578         * KeySizes.cs: Class is now sealed in v.1.1.
579         * MD5CryptoServiceProvider.cs: Class is now sealed in v.1.1.
580         * RNGCryptoServiceProvider.cs: Class is now sealed in v.1.1.
581
582 2003-04-22  Sebastien Pouliot  <spouliot@videotron.ca>
583
584         * DSACryptoServiceProvider.cs: Changed key generation to use the
585         new BigInteger class (commited for Ben Maurer).
586         * RSACryptoServiceProvider.cs: Changed key generation to use the
587         new BigInteger class (commited for Ben Maurer).
588
589 2003-04-06  Sebastien Pouliot  <spouliot@videotron.ca>
590
591         * AsymmetricAlgorithm.cs: Moved IsLegalKeySize to KeySizes.cs.
592         * DSACryptoServiceProvider.cs: Fix bug where key generation always
593         resulted in 1024 bits keypair.
594         * KeySizes.cs: Added internal IsLegalKeySize and IsLegal to avoid
595         duplication in both AsymmetricAlgorithm and SymmetricAlgorithm.
596         * RC2.cs: Modified to use IsLegalKeySize from KeySizes.cs.
597         * RSACryptoServiceProvider.cs: Fix bug where key generation always
598         resulted in 1024 bits keypair. Should fix unit test failure under
599         Linux.
600         * SymmetricAlgorithm.cs: Moved IsLegalKeySize to KeySizes.cs.
601
602 2003-04-06  Sebastien Pouliot  <spouliot@videotron.ca>
603
604         * CryptoStream.cs: Partial fix for bug #40689 (workaround). Does not 
605         throw a NotSupportedException on closing a CryptoStream in read mode
606         (like MS does but unlike MS documents).
607
608 2003-03-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
609
610         * CryptoStream.cs: fixed the previous fix. MS throws a NotSupportedExc
611         when FlushFinalBlock is called twice. I've moved a few lines from Close
612         to FlushFinalBlock and added the exception check.
613
614 2003-03-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
615
616         * CryptoStream.cs: don't Close the underlying stream in FlushFinalBlock.
617         Fixes bug #40394.
618
619 2003-03-03  Sebastien Pouliot  <spouliot@videotron.ca>
620
621         * RSACryptoServiceProvider.cs: Delay keypair generation event when 
622         keysize is a constructor parameter (major speed improvment when
623         importing keys). Removed NotSupportedException when CspParameter is
624         used in constructor (required for forthcoming security tools).
625
626 2003-02-08  Sebastien Pouliot  <spouliot@videotron.ca>
627
628         * Changes to refer Mono.Math and Mono.Security.Cryptography
629         * Changes to refer Mono.Xml
630
631 2003-02-04  Sebastien Pouliot  <spouliot@videotron.ca>
632
633         * CryptoConfig.cs: Added initital support for "machine.config" 
634         (limited to algorithms, not OIDs). Modified CreateFromName to use
635         the fully qualified class names (and removed xmldsig hack). Added
636         algorithm names documented in book ".NET Framework Security".
637
638 2003-02-03  Sebastien Pouliot  <spouliot@videotron.ca>
639
640         * PasswordDeriveBytes.cs: Finally got the derivation right. The
641         class can now derive keys up to 1000 * HashSize (same limit as MS).
642         * RSAPKCS1SignatureDeformatter.cs: No need to create the hash object
643         in this class - the OID is enough.
644
645 2003-02-01  Sebastien Pouliot  <spouliot@videotron.ca>
646
647         * AsymmetricSignatureFormatter.cs: Call abstract SetHashAlgorithm
648         when CreateSignature(hash) is called.
649         * CryptoStream.cs: Fixed some issues in constructor.
650         * DSACryptoServiceProvider.cs: Fixed a bug (1 chance in 256) that
651         a signature could be less than 40 bytes (which is invalid).
652
653 2003-01-25  Sebastien Pouliot  <spouliot@videotron.ca>
654
655         * CryptographicException.cs: Default HResult to CORSEC_E_CRYPTO
656         (0x80131430) as documented.
657         * CryptographicUnexpectedOperationException.cs: Default HResult
658         to CORSEC_E_CRYPTO_UNEX_OPER (0x80131431) as documented.
659
660 2003-01-20  Sebastien Pouliot  <spouliot@videotron.ca>
661
662         * CipherMode.cs: Added missing [Serializable] to enum.
663         * CspProviderFlags.cs: Added missing [Serializable] to enum.
664         * FromBase64Transform.cs: Added missing [Serializable] to enum.
665         * PaddingMode.cs: Added missing [Serializable] to enum.
666
667 2003-01-19  Sebastien Pouliot  <spouliot@videotron.ca>
668
669         * CryptoTools.cs: Added internal class BlockProcessor to help
670         implementation of block-based algorithms (like MAC and HMAC).
671         * HMACSHA1.cs: Refactored to remove dependencies on CryptoStream,
672         better constructors and Dispose support.
673         * MACTripleDES.cs: Refactored to reuse new HMACSHA1 stuff, better
674         constructors.
675
676 2003-01-18  Sebastien Pouliot  <spouliot@videotron.ca>
677
678         * HMACSHA1.cs: Now use KeyBuilder to build the default key.
679
680 2003-01-12  Sebastien Pouliot  <spouliot@videotron.ca>
681
682         * MACTripleDES.cs: Now working (the problem was with my stream usage
683         which was removed for performance reason).
684         * TripleDES.cs: Fixed key generation (wasn't called and returned
685         null).
686
687 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
688
689         * RNGCryptoServiceProvider.cs: Changed methods interacting with 
690         the runtime as Internal<MethodName>. This will allow to make the
691         class Windows-compatible by doing a switch at runtime.
692
693 2003-01-05  Sebastien Pouliot  <spouliot@videotron.ca>
694
695         * CryptoAPITransform.cs: Removed all TODO. This class will not be
696         used by Mono. MS uses it with <algo>CryptoServiceProvider classes 
697         to provide a common ICryptoTransform access to CryptoAPI. 
698
699 2003-01-03  Sebastien Pouliot  <spouliot@videotron.ca>
700
701         * RC2CryptoServiceProvider.cs: Now about 2 time faster by inlining 
702         methods and changing to UInt16 (instead of UInt32). 
703
704 2003-01-02  Sebastien Pouliot  <spouliot@videotron.ca>
705
706         * RijndaelManaged.cs: Now 7 (encrypt) to 10 (decrypt) times faster 
707         by removing allocation inside intensively called methods, using pre-
708         calculated tables instead of Mult_GF methods and inlining most methods.
709
710 2002-12-31  Sebastien Pouliot  <spouliot@videotron.ca>
711
712         * AsymmetricAlgorithm.cs: Removed ValidKeySize (method only present
713         in SymmetricAlgorithm).
714         * DSA.cs: Change ZeroizePrivateKey from protected to internal.
715         * DSACryptoServiceProvider.cs: Added some case where we need to check 
716         for keypairGenerated.
717         * RSA.cs: Change ZeroizePrivateKey from protected to internal.
718         * RSACryptoServiceProvider.cs: Key were never generated with the default
719         (no parameter) constructor. Now checks for keypairGenerated in methods.
720         * SignatureDescription.cs: Added CreateDeformatter in RSAPKCS1SHA1-
721         SignatureDescription to please corcompare (it just call it's ancestor).
722
723 2002-12-30  Sebastien Pouliot  <spouliot@videotron.ca>
724
725         * CryptoStream.cs: Implemented core. Not sure about many details - 
726         but it run the samples now (#30256).
727         * CryptoStreamMode.cs: Added [Serializable] to enum declaration.
728         * SymmetricAlgorithm.cs: Made some changes required for CryptoStream 
729         and to match more closely MS implementation. Also added little
730         optimizations in TransformBlock.
731
732 2002-12-27  Sebastien Pouliot  <spouliot@videotron.ca>
733
734         * CryptoTools.cs: New. Shared classes for cryptography. Now
735         includes a KeyBuilder to generate symmetric keys and IV.
736         * DES.cs: Modified Key validation.
737         * DESCryptoServiceProvider.cs: Implemented Key and IV using
738         KeyBuilder.
739         * RC2CryptoServiceProvider.cs: Implemented Key and IV using
740         KeyBuilder (and removed TODO).
741         * RijndaelManaged.cs: Implemented Key and IV using KeyBuilder 
742         (and removed TODO).
743         * SHA384Managed.cs: Changed code to remove compiler warning.
744         * SHA512Managed.cs: Changed code to remove compiler warning.
745         * SymmetricAlgorithm.cs: Removed TODO on IV.
746         * TripleDESCryptoServiceProvider.cs: Implemented Key and IV
747         using KeyBuilder (and removed TODO).
748
749 2002-11-20  Sebastien Pouliot  <spouliot@videotron.ca>
750
751         * AsymmetricSignatureDeformatter.cs: Added exception handling in
752         VerifySignature (moved from RSAPKCS1SignatureDeformatter).
753         * AsymmetricSignatureFormatter.cs: Added exception handling in
754         CreateSignature (moved from RSAPKCS1SignatureFormatter).
755         * CryptoAPITransform.cs: Removed "= false" assignation from a private
756         member (because this created an unwanted "ghost" constructor) and 
757         modified Dispose declaration.
758         * HashAlgorithm.cs: Removed destructor. Disposing unmanaged 
759         ressources is the responsability of each class (not an abstract class).
760         * RSAPKCS1SignatureDeformatter.cs: Removed a VerifySignature method
761         which was present in the base class AsymmetricSignatureDeformatter.
762         * RSAPKCS1SignatureFormatter.cs: Removed a CreateSignature method
763         which was present in the base class AsymmetricSignatureFormatter.
764         * SHA1Managed.cs: Removed sealed from class declaration. Removed 
765         destructor and Dispose method as class is fully managed.
766         * ToBase64Transform.cs: Added virtual to property CanReuseTransform.
767
768 2002-11-17  Sebastien Pouliot  <spouliot@videotron.ca>
769
770         * CryptoConfig.cs: Added full classes name for MapNameToOID.
771         * PKCS1.cs: New. Internal class for the various primitives defined
772         in PKCS#1 v.2.1.
773         * PKCS1MaskGenerationFunction.cs: Modified to use PKCS1.cs.
774         * RSA.cs: Added internal class RSAHandler (which implements IHandler
775         interface for MiniParser) to import RSA keypairs from XML strings.
776         * RSACryptoServiceProvider.cs: Crypto implemented using BigInteger. 
777         Key generation is VERY LONG.
778         * RSAOAEPKeyExchangeDeformatter.cs: Completed using PKCS1. Not sure 
779         of the results as this is not available in all versions of Windows.
780         * RSAOAEPKeyExchangeFormatter.cs: Completed using PKCS1. Not sure 
781         of the results as this is not available in all versions of Windows.
782         * RSAPKCS1KeyExchangeDeformatter.cs: Completed using PKCS1.
783         * RSAPKCS1KeyExchangeFormatter.cs: Completed using PKCS1.
784         * RSAPKCS1SignatureDeformatter.cs: Completed using PKCS1.
785         * RSAPKCS1SignatureFormatter.cs: Completed using PKCS1.
786
787 2002-11-17  Sebastien Pouliot  <spouliot@videotron.ca>
788
789         * MiniParser.cs: Added explicit cast in order to compile with mcs.
790
791 2002-11-16  Sebastien Pouliot  <spouliot@videotron.ca>
792
793         * AsymmetricAlgorithm.cs: Added internal class AsymmetricParameters
794         (which implements the IReader interface for MiniParser). Corrected
795         Dispose declaration.
796         * BigInteger.cs: New. Internal class for handling BIG integers for 
797         asymmetric crypto (both RSA and DSA). Thanks to Chew Keong TAN !
798         * CryptoConfig.cs: Added XMLDSIG URLs in CreateFromName.
799         Will dynamically load System.Security.dll, when required,
800         to return instance of those classes. Also CryptoConfig can now
801         create any object (e.g. System.IO.MemoryStream) !
802         * DSA.cs: Added internal class DSAHandler (which implements IHandler
803         interface for MiniParser) to import DSA keypairs from XML strings.
804         * DSACryptoServiceProvider.cs: Crypto fully implemented using 
805         BigInteger. Key generation (group) is VERY long.
806         * MiniParser.cs: New. Minimal XML parser by Sergey Chaban. Used to 
807         import keypairs in XML strings.
808         * SignatureDescription.cs: Removed local CreateFromName (to use
809         CryptoConfig - which actually can create anything). Added internal
810         classes DSASignatureDescription and RSAPKCS1SHA1SignatureDescription.
811
812 2002-11-15  Sebastien Pouliot  <spouliot@videotron.ca>
813
814         * CryptographicUnexpectedOperationException.cs: Forgot it last time!
815         * FromBase64Transform.cs: Added missing virtual to CanReuseTransform.
816         Changed Dispose().
817         * HashAlgorithm.cs: Changed Dispose().
818         * MD5CryptoServiceProvider.cs: Added destructor and Dipose(bool).
819         * PasswordDeriveBytes.cs: Changed some declaration from
820         protected to private.
821         * RC2.cs: Added valid keysize check in EffectiveKeySize.
822         * RC2CryptoServiceProvider.cs: Overriden EffectiveKeySize to match
823         corlib declarations.
824         * RSAOAEPKeyExchangeDeformatter.cs: Changed some declaration from
825         protected to private.
826         * RSAOAEPKeyExchangeFormatter.cs: Changed some declaration from
827         protected to private.
828         * RSAPKCS1KeyExchangeDeformatter.cs: Changed some declaration from
829         protected to private.
830         * RSAPKCS1KeyExchangeFormatter.cs: Changed some declaration from
831         protected to private.
832         * RSAPKCS1SignatureDeformatter.cs: Changed some declaration from
833         protected to private.
834         * RSAPKCS1SignatureFormatter.cs: Changed some declaration from
835         protected to private.
836         * SHA1CryptoServiceProvider.cs: Moved SHA1 code to SHA1Internal.
837         SHA1CryptoServiceProvider now use SHA1Internal. Added Dispose and
838         destructor.
839         * SHA1Managed.cs: New. Use SHA1Internal. Same as 
840         SHA1CryptoServiceProvider but is required for binary compatibility.
841         * SHA256Managed.cs: Changed some declaration from protected to private.
842         * SHA384Managed.cs: Changed some declaration from protected to private.
843         * SHA512Managed.cs: Changed some declaration from protected to private.
844         * SymmetricAlgorithm.cs: Added Clear(), changed Dispose() and added
845         virtual to Dispose(bool).
846         * ToBase64Transform.cs: Added missing virtual to CanReuseTransform.
847         Changed Dispose().
848         * TripleDESCryptoServiceProvider.cs: Added missing sealed to class
849         declaration.
850
851 2002-11-03  Sebastien Pouliot  <spouliot@videotron.ca>
852
853         * CryptoAPITransform.cs: Added missing CanReuseTransform property,
854         Clear method, destructor and IDisposable support.
855         * CryptographicException.cs: Added missing protected constructor.
856         * CryptographicUnexpectedOperationException.cs: Added missing 
857         protected constructor.
858         * ICryptoTransform.cs: Added missing CanReuseTransform property.
859         * FromBase64Transform.cs: Added missing CanReuseTransform property,
860         Clear method, destructor and IDisposable support.
861         * SymmetricAlgorithm.cs: Implement IDisposable.
862         * ToBase64Transform.cs: Added missing CanReuseTransform property,
863         Clear method, destructor and IDisposable support.
864
865 2002-11-02  Sebastien Pouliot  <spouliot@videotron.ca>
866
867         * SignatureDescription.cs: Updated class to match unit test results
868         * X509Certificate.cs: REMOVED! Wrong namespace. An almost complete
869         implementation is now in System.Security.Cryptography.X509Certificates
870
871 2002-11-01  Sebastien Pouliot  <spouliot@videotron.ca>
872
873         * bouncycastle.txt: Bouncy Castle JCE License.
874         * SHA384Managed.cs: Hash implementation based on BouncyCastle JCE.
875         * SHA512Managed.cs: Hash implementation based on BouncyCastle JCE.
876
877 2002-10-30  Sebastien Pouliot  <spouliot@videotron.ca>
878
879         * DSASignatureDeformatter.cs: Fully implemented - however it 
880         requires a functionnal DSA implementation to work.
881         * DSASignatureFormatter.cs: Fully implemented - however it 
882         requires a functionnal DSA implementation to work.
883
884 2002-10-25  Sebastien Pouliot  <spouliot@videotron.ca>
885
886         * PasswordDeriveBytes.cs: New. PKCS#5 key derivation (PBKDF1) works up to
887         HashSize length (but MS support longer keys)
888
889 2002-10-24  Sebastien Pouliot  <spouliot@videotron.ca>
890
891         * RSACryptoServiceProvider.cs: New. Implemented most logic expect crypto 
892         * RSAOAEPKeyExchangeDeformatter.cs: New. Stub.
893         * RSAOAEPKeyExchangeFormatter.cs: New. Stub.
894         * RSAPKCS1KeyExchangeDeformatter.cs: New. Stub.
895         * RSAPKCS1KeyExchangeFormatter.cs: New. 98% implemented but still
896         require RSA.DecryptValue (not supported in MS .NET Framework)
897         * RSAPKCS1SignatureDeformatter.cs: New. Stub.
898         * RSAPKCS1SignatureFormatter.cs: New. Stub.
899
900 2002-10-23  Sebastien Pouliot  <spouliot@videotron.ca>
901
902         * SymmetricAlgorithm.cs: Fixed CFB mode (do encryption while decrypting!)
903         * TripleDESCryptoServiceProvider.cs: Ajusted for CFB.
904
905 2002-10-22  Sebastien Pouliot  <spouliot@videotron.ca>
906
907         * RjindaelManaged.cs: Fixed decryption for 192 and 256 bit block size
908
909 2002-10-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
910
911         * RC2CryptoServiceProvider.cs: fixed end of lines (changed from \r
912         to \n).
913
914 2002-10-20  Sebastien Pouliot  <spouliot@videotron.ca>
915
916         * SymmetricAlgorithm.cs: Added better Dispose support
917         * DES.cs: Now only contains the abstract DES class.
918         * DESCryptoServiceProvider.cs: Added the DESTransform class (inherited
919         from SymmetricTransform) based the old DESCore and DESTransformBase code
920         * RC2.cs: Fixed EffectiveKeySize == 0
921         * RC2CryptoServiceProvider.cs: Added the RC2Transform class (inherited
922         from SymmetricTransform) based on the old RC2lImpl code. Unrolled some loops.
923         * RjindaelManaged.cs: Few more optimizations while looking for decrypting bug
924         * TripleDESCryptoServiceProvider.cs: New. Implement TripleDESTransform from 
925         DESTransform (non-optimal but working :-).
926
927 2002-10-19  Sebastien Pouliot  <spouliot@videotron.ca>
928
929         * SymmetricAlgorithm.cs: Added new class SymmetricTransform to avoid
930         duplicating CipherMode (currently ECB, CBC) and PaddingMode functionalities
931         in every crytographic algorithm implementation.
932         * RijndaelManaged.cs: Added the RjindaelTransform class (inherited
933         from SymmetricTransform) based the old RijndaelImpl / RijndaelController 
934         code. Fixed encryption for block size 192, 256, there is still a problem
935         decrypting block size 192, 256. Unrolled some loops + littl'optimizations
936         * PKCS1MaskGenerationMethod.cs: Removed Array.Reverse in I2OSP to be
937         compatible with MS implementation (however we are now failing the PKCS#1
938         test vector) + added some more checks (null, overflow, ...)
939         * AsymmetricAlgorithm.cs: Commented XMLDocument stuff to end the cyclic
940         dependency (corlib->System.Xml->corlib)
941         * RSA.cs: Commented FromXmlString stuff to end the cyclic dependency
942         * DSA.cs: Commented FromXmlString stuff to end the cyclic dependency
943         * RC2.cs: Create using CryptoConfig
944         * TripleDES.cs: Marked class public. Added LegalKeySizes and LegalBlockSizes
945
946 2002-10-14  Sebastien Pouliot  <spouliot@videotron.ca>
947
948         * MD5.cs: Create using CryptoConfig, set HashSizeValue, removed TODO.
949         * Rijndael.cs: Create using CryptoConfig. Removed TODO.
950         * RSAParameters.cs: Modulus must be serialized. Removed TODO.
951         * SHA256.cs: Create using CryptoConfig, set HashSizeValue, removed TODO.
952         * SHA384.cs: Create using CryptoConfig, set HashSizeValue, removed TODO.
953         * SHA512.cs: Create using CryptoConfig, set HashSizeValue, removed TODO.
954         * FromBase64Transform.cs: Removed ToString()
955         * ToBase64Transform.cs: Removed ToString()
956         * SymmetricAlgorithm.cs: Create using CryptoConfig, set default Mode and 
957         Padding, added Clear, Dispose
958         * TripleDES.cs: New. Abstract class.
959         * MaskGenerationMethod.cs: New. Abstract class.
960         * PKCS1MaskGenerationMethod.cs: New. Implement PKCS#1 MGF (currently not 
961         compatible with MS implementation - but not sure the bug is mine!).
962
963 2002-10-13  Sebastien Pouliot  <spouliot@videotron.ca>
964
965         * HashAlgorithm.cs: Added Dispose() to HashAlgorithm because it 
966         inherits ICryptoTransform
967         * KeyedHashAlgorithm.cs: New implementation
968         * HMACSHA1.cs: New (include a generic HMACAlgorithm as internal class)
969         * MACTripleDES.cs: New (missing core implementation on generic MACAlgorithm)
970         * CryptoStream.cs: Added limited functionalities to support HMACSHA1
971
972 2002-10-12  Sebastien Pouliot  <spouliot@videotron.ca>
973
974         * DSA.cs: changed constructor to public from internal (like MS)
975         * HashAlgorithm.cs: Completed ComputeHash methods
976         * SHA1.cs: Added HashSizeValue = 160
977
978 2002-10-12  Sebastien Pouliot  <spouliot@videotron.ca>
979
980         * ICryptoTransform.cs: Now inherits from IDisposable
981         * RC2CryptoServiceProvider.cs: Added Dispose() to RC2Impl because it inherits ICryptoTransform
982         * CryptoAPITransform.cs: Added Dispose() to CryptoAPITransform... ICryptoTransform
983         * RijndaelManaged.cs: Added Dispose() to RijndaelController...ICryptoTransform
984         * FromBase64Transform.cs: Added Dispose() to FromBase64Transform...ICryptoTransform
985         * ToBase64Transform.cs: Added Dispose() to ToBase64Transform...ICryptoTransform
986         * DESCryptoServiceProvider.cs: Added Dispose() to DESTransformBase...ICryptoTransform
987
988 2002-10-11  Duncan Mak  <duncan@ximian.com>
989
990         * DESCryptoServiceProvider.cs: Removed unnecessary Dispose ().
991
992 2002-10-11  Sebastien Pouliot  <spouliot@videotron.ca>
993
994         * DES.cs: Create() using CryptoConfig, fix #30256
995         * DESCryptoServiceProvider.cs: fix #30256
996         * RandomNumberGenerator.cs: uncomment in Create(rng) for CryptoConfig
997
998 2002-10-10  Sebastien Pouliot  <spouliot@videotron.ca>
999
1000         * AsymmetricAlgorithm.cs: Inherit from IDisposable, common support from XML import
1001         * DSA.cs: FromXmlString() keypair import, Create() using CryptoConfig
1002         * RSA.cs: FromXmlString() keypair import, Create() using CryptoConfig
1003         * DSACryptoServiceProvider.cs: Added Dispose()
1004
1005 2002-10-09  Sebastien Pouliot  <spouliot@videotron.ca>
1006
1007         * CryptoConfig.cs: New implementation
1008
1009 2002-10-05  Andrew Birkett  <andy@nobugs.org>
1010
1011         * RC2CryptoServiceProvider.cs: New implementation
1012         * RC2.cs: New implementation
1013
1014 2002-09-22  Andrew Birkett  <andy@nobugs.org>
1015
1016         * RijndaelManaged.cs: Added faster case for multiplication by 2 in GF(8)
1017         
1018 2002-09-22  Andrew Birkett  <andy@nobugs.org>
1019
1020         * RijndaelManaged.cs: BlockSize now reports size in bytes.
1021         * ICryptoTransform.cs: Updated comments - BlockSizes are in bytes, unlike elsewhere.
1022
1023 2002-09-19  Andrew Birkett  <andy@nobugs.org>
1024
1025         * Rijndael.cs: Create() now gives you a RijndaelManaged object
1026         * RijndaelManaged.cs: Added dummy GenerateKey until we have a proper RNG.
1027         * SymmetricAlgorithm.cs: Updated comments
1028
1029 2002-09-15  Andrew Birkett  <andy@nobugs.org>
1030
1031         * RijndaelManaged.cs: Added support for CBC-mode, PKCS7/Zero padding.
1032         * SymmetricAlgorithm.cs: IV size must match block size, not key size.  
1033           Key property now sets KeySizeValue correctly in bits.
1034
1035 2002-09-11  Andrew Birkett  <andy@nobugs.org>
1036
1037         * RijndaelManaged.cs: Implemented ECB-mode Rijndael cipher.
1038         * Rijndael.cs: Set valid key/block sizes.
1039         * SymmetricAlgorithm.cs: Remove throw from ctr so we can instantiate
1040           derived classes.  Fixes to key sizes so they are measured in bits.
1041         * KeySizes.cs: Updated comments to emphasize that sizes are in bits.
1042
1043 2002-06-29  Martin Baulig  <martin@gnome.org>
1044
1045         * AsymmetricAlgorithm.cs: Removed a duplicate semicolon to make it compile.
1046
1047 2002-05-19  Martin Baulig  <martin@gnome.org>
1048
1049         * FromBase64Transform.cs (TransformFinalBlock): The return value of
1050         `DoTransform' tells us the number of bytes actually written - if it's
1051         smaller than `res', copy it to a smaller array.
1052
1053 2002-02-21  Mark Crichton <crichton@gimp.org>
1054
1055         * RNGCryptoServiceProvider.cs: New file.
1056         * RandomNumberGenerator.cs: Constructor is now marked public.
1057
1058 2002-02-13  Dan Lewis <dihlewis@yahoo.co.uk>
1059
1060         * DSACryptoServiceProvider.cs, SHA384Managed.cs, SHA512Managed.cs,
1061         Rijndael.cs, RSA.cs, RSAParameters.cs : New files (stubs)
1062
1063 Mon Feb 11 13:26:17 CET 2002 Paolo Molaro <lupus@ximian.com>
1064
1065         * X509Certificates: dummy class.
1066
1067 2002-01-10  Duco Fijma <duco@lorentz.xs4all.nl>
1068         * Create (trivial) implementation of RandomNumberGenerator
1069
1070 2002-01-05  Ravi Pratap  <ravi@ximian.com>
1071
1072         * CryptoAPITransform.cs, DESCryptoProvider.cs : MonoTODO attribute
1073         decoration.
1074
1075         * HashAlgorithm.cs, MD5.cs, SHA1.cs, SHA256.cs, SHA384.cs : Ditto.
1076
1077         * SHA512.cs, SymmetricAlgorithm.cs, ToBase64Transform.cs, 
1078         AsymmetricAlgorithm.cs, CryptoStream.cs, DSA.cs, DSASignatureDeformatter.cs,
1079         DSASignatureFormatter.cs, SignatureDescription.cs : Ditto.
1080         
1081 Wed Nov 14 17:04:30 CET 2001 Paolo Molaro <lupus@ximian.com>
1082
1083         * MD5CryptoServiceProvider.cs, SHA1CryptoServiceProvider.cs,
1084         SHA256Managed.cs: CLSCompliant updates.
1085
1086 2001-10-11  Thomas Neidhart <tome@sbox.tugraz.at>
1087
1088         * CryptoAPITransform.cs: Initial version
1089         * CryptoStream.cs: Initial version
1090         * CspParameter.cs: Initial version
1091         * CspProviderFlags.cs: Initial version
1092         * DSA.cs: Initial version
1093         * DSAParameters.cs: Initial version
1094         * DSASignatureDeformatter.cs: Initial version
1095         * DSASignatureFormatter.cs: Initial version
1096         * DeriveBytes.cs: Initial version
1097
1098 2001-10-06  Thomas Neidhart <tome@sbox.tugraz.at>
1099
1100     * AsymmetricAlgorithm.cs: Inital version
1101         * AsymmetricKeyExchangeDeformatter.cs: Initial version
1102         * AsymmetricKeyExchangeFormatter.cs: Initial version
1103         * AsymmetricSignatureDeformatter.cs: Initial version
1104         * AsymmetricSignatureFormatter.cs: Initial version
1105         * PaddingMode.cs: Added PaddingMode.None
1106         * SignatureDescription.cs: Initial version
1107     * CryptographicException.cs: Initial version
1108         * CryptographicUnknownOperationException.cs: Initial version
1109         * SymmetricAlgorithm.cs: Implemented CreateDecryptor, CreateEncryptor
1110           and Create() methods.
1111         
1112 2001-08-20  Sergey Chaban <serge@wildwestsoftware.com>
1113
1114         * DES.cs encryption core is about 30% faster than previous version.
1115         * DESCryptoServiceProvider.cs added PKCS-5 padding.
1116
1117 2001-08-09  Sergey Chaban <serge@wildwestsoftware.com>
1118
1119         * ToBase64Transform.cs: Base64Table now supports both encoding
1120           and decoding tables. As a result Table was renamed to EncodeTable
1121           and DecodeTable was added.
1122         * FromBase64Transform.cs: Initial check-in.
1123         * DES.cs: Initial check-in.
1124         * DESCryptoServiceProvider.cs: Initial check-in.
1125
1126 2001-08-01  Matthew S. Ford  <Matthew.S.Ford@Rose-Hulman.Edu>
1127
1128         * CipherMode.cs: Initial version.
1129         * CryptoStreamMode.cs: Initial version.
1130         * HashAlgorithm.cs: Initial version.
1131         * ICryptoTransform.cs: Initial version.
1132         * KeySizes.cs: Initial version.
1133         * MD5.cs: Initial version.
1134         * MD5CryptoServiceProvider.cs: Initial version.
1135         * PaddingMode.cs: Initial version.
1136         * SHA1.cs: Initial version.
1137         * SHA1CryptoServiceProvider.cs: Initial version.
1138         * SHA256.cs: Initial version.
1139         * SHA256Managed.cs: Initial version.
1140         * SHA384.cs: Initial version.
1141         * SHA512.cs: Initial version.