New test, update
[mono.git] / mcs / class / corlib / System.Security.Cryptography / ChangeLog
1 2008-09-17  Sebastien Pouliot  <sebastien@ximian.com>
2
3         * CryptoConfig.cs: Add missing URI for HMAC algorithms.
4
5 2008-08-07  Sebastien Pouliot  <sebastien@ximian.com>
6
7         * SymmetricAlgorithm.cs: Hide some protected fields not present in
8         Silverlight 2.0 (NET_2_1)
9
10 2008-07-13  Nestor Salceda  <nestor.salceda@gmail.com>
11
12         * RSAPKCS1KeyExchangeFormatter.cs: Throw an ArgumentNullException if the
13         key is null in SetKey, and also in the constructor with the key as
14         parameter. Fixes the bug #408738.
15
16 2008-07-03  Andreas Nahr  <ClassDevelopment@A-SoftTech.com>
17
18         * SHA1CryptoServiceProvider.cs: Fix parameter names
19
20 2008-07-03  Andreas Nahr  <ClassDevelopment@A-SoftTech.com>
21
22         * SHA512Managed.cs:
23         * SHA384Managed.cs:
24         * SHA256Managed.cs:
25         * SHA1Managed.cs:
26         * SHA1CryptoServiceProvider.cs:
27         * RSAPKCS1KeyExchangeDeformatter.cs:
28         * RSACryptoServiceProvider.cs:
29         * RSA.cs:
30         * RIPEMD160Managed.cs:
31         * RC2.cs:
32         * PKCS1MaskGenerationMethod.cs:
33         * MD5CryptoServiceProvider.cs:
34         * MD5.cs:
35         * MACTripleDES.cs:
36         * HMACSHA512.cs:
37         * HMACSHA384.cs:
38         * HMACSHA256.cs:
39         * HMACSHA1.cs:
40         * HMACRIPEMD160.cs:
41         * HMACMD5.cs:
42         * HMAC.cs:
43         * HashAlgorithm.cs:
44         * FromBase64Transform.cs:
45         * DSACryptoServiceProvider.cs:
46         * DES.cs:
47         * CspParameters.cs: Fix parameter names
48
49 2008-05-30  Sebastien Pouliot  <sebastien@ximian.com> 
50
51         * RSACryptoServiceProvider.cs: Remove MonoTODO that were fixed a
52         while ago. Provide better MonoTODO messages for the next version 
53         of MoMA.
54         * RijndaelManagedTransform.cs: Provide better MonoTODO messages 
55         for the next version of MoMA.
56
57 2008-05-07  Sebastien Pouliot  <sebastien@ximian.com>
58
59         * SHA384Managed.cs: Fix compiler warning and use the new local
60         variable introduced previously.
61
62 2008-04-30  Alan McGovern  <alan.mcgovern@gmail.com>
63
64         * SHA384Managed.cs: Inlined helper methods and made
65         some fields local vars. Gives about 1.70x faster performance.
66
67 2008-04-30  Alan McGovern  <alan.mcgovern@gmail.com>
68
69         * SHA256Managed.cs: Inlined helper methods removed
70         unnecessary casts and made a field a local var.
71         Gives about 1.70x faster performance.
72
73 2008-04-27  Alan McGovern  <alan.mcgovern@gmail.com>
74
75         * SHA1CryptoServiceProvider.cs: Performed loop unrolling and
76         re-rolling to reduce IL size significantly and improve
77         perf by over 30%.
78
79 2008-04-27  Sebastien Pouliot  <sebastien@ximian.com>
80
81         * SHA1CryptoServiceProvider.cs: Quick optimization to get better
82         results with the JIT (a bit over 25% on a 4GB file).
83
84 2008-04-17  Sebastien Pouliot  <sebastien@ximian.com>
85
86         * AsymmetricAlgorithm.cs: Add shared GetNamedParam helper method.
87         * DSA.cs, RSA.cs: Rework FromXmlString to be more "careless" like
88         MS implementation. Fix #355464
89
90 2008-02-21  Sebastien Pouliot  <sebastien@ximian.com>
91
92         * Rfc2898DeriveBytes.cs: Fix GetByte not to throw an exception if
93         called several time to get more data.
94
95 2008-01-31  Sebastien Pouliot  <sebastien@ximian.com> 
96
97         * CryptoConfig.cs: Inverse name and oid when reading them from 
98         machine.config. Part of the fix for #346536
99
100 2007-08-17  Sebastien Pouliot  <sebastien@ximian.com> 
101
102         * CryptoStream.cs: Write cannot depend on buffer.Length (fix #82428)
103
104 2007-05-16  Sebastien Pouliot  <sebastien@ximian.com> 
105
106         * CryptoStream.cs: Fix another problem that can occurs with WriteByte.
107
108 2007-05-11  Sebastien Pouliot  <sebastien@ximian.com> 
109
110         * CryptoStream.cs: Ensure TransformFinalBlock isn't called multiple 
111         times. Fix bug #81597.
112
113 2007-05-10  Sebastien Pouliot  <sebastien@ximian.com> 
114
115         * SHA1CryptoServiceProvider.cs: Reduce by half the number of required
116         memory allocations to produce a hash (in >90% of the cases) by reusing
117         an existing memory buffer (instead of always allocating a new one).
118
119 2007-05-08  Randolph Chung  <tausq@debian.org>
120
121         * DSACryptoServiceProvider.cs: Implement the ImportCspBlob and
122         ExportCspBlob methods by calling into CryptoConvert.
123
124 2007-04-03  Alp Toker  <alp@atoker.com>
125
126         * CryptoConfig.cs: CreateFromName(string,object[]) is params in 2.0.
127
128 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com> 
129
130         * RIPEMD160Managed.cs: Fix endian issue (take good code path).
131
132 2007-03-22  Sebastien Pouliot  <sebastien@ximian.com> 
133
134         * CryptoConfig.cs: Names are case-insensitive only since fx 2.0.
135         * CryptoStream.cs: 2.0 introduce different exceptions/behaviors in 
136         corner cases.
137         * PasswordDeriveBytes.cs: Reset method was fixed in fx 2.0.
138         * Rfc2898DeriveBytes.cs: Fixed endian bug in F (thanks to Roei Erez)
139         and reduced the number of memory allocations.
140
141 2007-03-05  Sebastien Pouliot  <sebastien@ximian.com>
142
143         * CryptoStream.cs: Rework Write to buffer the last block correctly.
144         The new code also reduce memory allocations. Fix for #81008.
145
146 2007-02-14  Sebastien Pouliot  <sebastien@ximian.com>
147
148         * HMAC.cs: Handle BlockSizeValue correctly.
149         * HMACSHA384.cs: Add support for forthcoming ProduceLegacyHmacValues
150         property (in the next service pack).
151         * HMACSHA512.cs: Add support for forthcoming ProduceLegacyHmacValues
152         property (in the next service pack).
153
154 2007-01-22  Atsushi Enomoto  <atsushi@ximian.com>
155
156         * CryptoConfig.cs: Fixed incorrect exchange in urlExcC14N and
157           urlExcC14NWithComments.
158
159 2006-11-24  Sebastien Pouliot  <sebastien@ximian.com>
160
161         * CryptoConfig.cs: Add support for (2.0) custom X.509 chains.
162
163 2006-11-08  Sebastien Pouliot  <sebastien@ximian.com>
164
165         * CryptoConfig.cs: Add support for (2.0) X.509 extensions in 
166         CreateFromName method. This allows the framework to be extensible with
167         new certificate extensions (syntax is missing from machine.config).
168
169 2006-10-12  Sebastien Pouliot  <sebastien@ximian.com>
170
171         * CryptoConfig.cs: Use SmallXmlParser with a custom handler to reduce
172         memory requirements to process machine.config. Fix #79653 (beagle).
173
174 2006-10-11  Sebastien Pouliot  <sebastien@ximian.com>
175
176         * CryptoConfig.cs: Accept lower/mixed-case algorithm names in 
177         CreateFromName and MapNameToOID methods (fix bug #79641). Removed OID
178         mappings in 2.0 for DSA and 3DES (they were part of the betas but not
179         in the final 2.0 release of the framework).
180
181 2006-09-20  Kazuki Oikawa  <kazuki@panicode.com>
182
183         * RijndaelManaged.cs: improves the performance.
184
185 2006-09-08  Sebastien Pouliot  <sebastien@ximian.com>
186
187         * RSAOAEPKeyExchangeDeformatter.cs: Throw a CryptographicException, 
188         instead of returning null, when a padding error occurs on decryption.
189         * RSAPKCS1KeyExchangeDeformatter.cs: Throw a CryptographicException, 
190         instead of returning null, when a padding error occurs on decryption.
191
192 2006-07-01  Sebastien Pouliot  <sebastien@ximian.com>
193
194         * AsymmetricSignatureDeformatter.cs: Set the hash algorithm name from
195         the hash instance. Fix for bug #78744 by Diego Mesa Tabares.
196
197 2006-06-15  Sebastien Pouliot  <sebastien@ximian.com>
198
199         * HashAlgorithm.cs: Changed the order of BlockCopy + HashCore to
200         HashCore + BlockCopy. Fx 2.0 now allows using a null output buffer
201         (without exception) while previous 1.x versions crashed the runtime
202         (mono won't crash the runtime, so we always do like 2.0).
203
204 2006-05-30  Sebastien Pouliot  <sebastien@ximian.com>
205
206         * AsymmetricKeyExchangeDeformatter.cs: Under 2.0 the ctor is 
207         protected.
208         * AsymmetricKeyExchangeFormatter.cs: Under 2.0 the ctor is protected.
209         * AsymmetricSignatureDeformatter.cs: Under 2.0 the ctor is protected.
210         * AsymmetricSignatureFormatter.cs: Under 2.0 the ctor is protected.
211         * DES.cs: Under 2.0 the ctor is protected.
212         * HashAlgorithm.cs: Under 2.0 the HashValue field is protected 
213         internal.
214         * RandomNumberGenerator.cs: Under 2.0 the ctor is protected.
215         * RC2.cs: Under 2.0 the ctor is protected.
216         * Rijndael.cs: Under 2.0 the ctor is protected.
217         * RSA.cs: Under 2.0 the ctor is protected.
218         * SHA256.cs: Under 2.0 the ctor is protected.
219         * SHA384.cs: Under 2.0 the ctor is protected.
220         * SHA512.cs: Under 2.0 the ctor is protected.
221         * SymmetricAlgorithm.cs: Under 2.0 the ctor is protected.
222         * TripleDES.cs: Under 2.0 the ctor is protected.
223
224 2006-02-03  Zoltan Varga  <vargaz@gmail.com>
225
226         * CryptoStream.cs: Add 'override' keyword to Dispose (bool) method in 2.0.
227
228 2005-12-15  Sebastien Pouliot  <sebastien@ximian.com>
229
230         * SymmetricAlgorithm.cs: Changing (not setting) BlockSize must 
231         re-generate a new IV (so the properties are kept valid). Note that
232         changing or setting (same value) the KeySize always re-generate a key.
233
234 2005-12-01  Sebastien Pouliot  <sebastien@ximian.com>
235
236         * RIPEMD160Managed.cs: Endianess fix.
237
238 2005-11-22  Sebastien Pouliot  <sebastien@ximian.com>
239
240         * DSAManaged.cs: Don't output J in the XML if it's not exported (i.e.
241         if it wasn't imported too but instead calculated from the other 
242         parameters ;-).
243
244 2005-11-09  Sebastien Pouliot  <sebastien@ximian.com>
245
246         * KeyNumber.cs: Added missing [Serializable] present in 2.0.
247
248 2005-10-21  Sebastien Pouliot  <sebastien@ximian.com>
249
250         * DESCryptoServiceProvider.cs: Don't change the instance key/iv when
251         creating an encryptor or decryptor specifying them. Generate a new key
252         if null is specified (not really useful but compatible with MS 
253         behaviour). Check for weak/semi-weak key when creating transforms.
254         * RC2CryptoServiceProvider.cs: Don't change the instance key/iv when 
255         creating an encryptor or decryptor specifying them. Check legal key
256         sizes when creating transforms.
257         * RijndaelManaged.cs: Don't change the instance key/iv when creating 
258         an encryptor or decryptor specifying them. Check legal key sizes when
259         creating transforms.
260         * TripleDESCryptoServiceProvider.cs: Don't change the instance key/iv
261         when creating an encryptor or decryptor specifying them. Generate a 
262         new key if null is specified (not really useful but compatible with MS
263         behaviour). Check for weak key when creating transforms.
264
265 2005-09-29  Sebastien Pouliot  <sebastien@ximian.com>
266
267         * HMACSHA1.cs: Added the new 2.0 ctor that let the programmer choose
268         between the managed and unmanaged SHA1 algorithm used in the HMAC 
269         (that doesn't change much thing in the default config for Mono).
270         * PasswordDeriveBytes.cs: Added [Obsolete] on GetBytes (2.0) as new
271         applications should be using Rfc2898DeriveBytes to get PKCS#5 v2
272         support.
273
274 2005-08-17  Sebastien Pouliot  <sebastien@ximian.com>
275
276         * FromBase64Transform.cs: Check that the TransformFinal can be called
277         with only whitespace (with FromBase64TransformMode.IgnoreWhiteSpaces)
278         so that we must return new byte [0].
279
280 2005-06-14  Sebastien Pouliot  <sebastien@ximian.com>
281
282         * FromBase64Transform.cs: Removed memory allocations during the 
283         transform. It's now just the accumulator (ctor) and the 
284         TransformFinalBlock that allocates memory. The transform is now
285         between 3 to 4 times faster than before.
286
287 2005-06-10  Sebastien Pouliot  <sebastien@ximian.com>
288
289         * all: 2.0 beta2 fixes, i.e. mostly added [ComVisible(true)]
290
291 2005-06-09  Sebastien Pouliot  <sebastien@ximian.com>
292
293         * HMAC.cs: BlockSizeValue has changed from a protected member to
294         a protected property.
295
296 2005-06-06  Sebastien Pouliot  <sebastien@ximian.com>
297
298         * CspProviderFlags.cs: UseExistingKey was added in 1.1 SP1. Added
299         ComVisible attribute for 2.0.
300
301 2005-05-19  Sebastien Pouliot  <sebastien@ximian.com>
302
303         * CryptoConfig.cs: Don't use the global hashtables until the 
304         initialization is complete.
305
306 2005-05-18  Sebastien Pouliot  <sebastien@ximian.com>
307
308         * CryptoConfig.cs: Changed lock pattern to second version of
309         http://www.skeet.org.uk/csharp/singleton.html
310
311 2005-05-16  Sebastien Pouliot  <sebastien@ximian.com>
312
313         * CryptoConfig.cs: Initialization wasn't threadsafe as the "checked" 
314         value was assigned at the start of the initialization.
315
316 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
317
318         * CryptoConfig.cs: Removed RSA OID and added null check in EncodeOID
319         in NET_2_0 to match beta2.
320         * DES.cs: Added null check for IsWeakKey and IsSemiWeakKey in NET_2_0
321         to match beta2.
322         * SymmetricAlgorithm.cs: Throw CryptographicException when feedback is
323         zero in NET_2_0 to match beta2
324         * TripleDES.cs: Added null check for IsWeakKey in NET_2_0 to match 
325         beta2.
326
327 2005-04-05  Sebastien Pouliot  <sebastien@ximian.com>
328
329         * CryptoConfig.cs: Added Assert for FileIOPermission to LoadConfig so 
330         the configuration can be read under partial trust.
331
332 2005-03-24  Sebastien Pouliot  <sebastien@ximian.com>
333
334         * CryptoConfig.cs: Added LinkDemand for unrestricted to CreateFromName
335         when used to create instance with object[] parameters.
336         * CryptoAPITransform.cs: Added Demand for UnmanagedCode to KeyHandle 
337         property.
338
339 2005-03-07  Sebastien Pouliot  <sebastien@ximian.com>
340
341         * MD5CryptoServiceProvider.cs: Fixed #73404 to return right results
342         if the data length is bigger than 2^32 bits.
343         * SHA1CryptoServiceProvider.cs: Fixed #73404 to return right results
344         if the data length is bigger than 2^32 bits.
345         * SHA256Managed.cs: Fixed #73404 to return right results if the data
346         length is bigger than 2^32 bits.
347
348 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
349
350         * RNGCryptoServiceProvider.cs: Added a new call in the static ctor
351         to check if we're using a global handle. In that case we lock before
352         calling the RNG.
353
354 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com> 
355
356         * DSA.cs: Weekly fix to case where DSAParameters.Counter is 0 :-(
357         A new unit test was added for this specific case so it's hopefully
358         the last fix for this. Fixed exception reporting to match NET_2_0.
359
360 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com> 
361
362         * DSA.cs: Really fixed case where DSAParameters.Counter is 0.
363
364 2005-01-21  Sebastien Pouliot  <sebastien@ximian.com> 
365
366         * DSA.cs: Handle the case where DSAParameters.Counter is 0.
367
368 2005-01-11  Sebastien Pouliot  <sebastien@ximian.com> 
369
370         * CryptoConfig.cs: Added support to create RIPEMD160 and the new HMAC
371         algorithms (HMACMD5, HMACRIPEMD160, HMACSHA256, HMACSHA384 and 
372         HMACSHA512). This fix the unit tests failures in Mono.Security.dll in
373         the NET_2_0 profile.
374         * DSACryptoServiceProvider.cs: Import|ExportCspBlob throws 
375         NotImplementedException (CryptoConvert class doesn't support DSA yet).
376         * RSACryptoServiceProvider.cs: SignHash/VerifyHash defaults to SHA-1
377         in 2.0. VerifyHash throw appropriate exception when no OID is 
378         specified (1.0/1.1). Import|ExportCspBlob implemented using the
379         CryptoConvert class.
380         * RSAOAEPKeyExchangeDeformatter.cs: Throw exception if no key is 
381         specified.
382         * RSAOAEPKeyExchangeFormatter.cs: Throw exception if no key is 
383         specified.
384         * RSAPKCS1KeyExchangeFormatter.cs: Throw exception if no key is 
385         specified.
386         * SymmetricAlgorithm.cs: More strict IV length checks on 2.0.
387
388 2005-01-10  Sebastien Pouliot  <sebastien@ximian.com>
389
390         * CryptoConfig.cs: Change the OID for SHA-2 algorithms to match 2.0
391         and added new OID for asymmetric and symmetric algorithms.
392         * CspKeyContainerInfo.cs: Added CryptoKeySecurity property. This will
393         always return null until we support access control for key containers.
394         * CspParameters.cs: Added new constructors and propertys for access 
395         control and password (2.0).
396         * DSASignatureDeformatter.cs: Throw ArgumentNullException in NET_2_0 
397         if a null key is specified.
398         * DSASignatureFormatter.cs: Throw ArgumentNullException in NET_2_0 if
399         a null key is specified.
400         * HashAlgorithm.cs: Fix the reported exceptions for output buffers.
401         * HMAC.cs: Change the .Clear (which calls Dispose) to a .Initialize.
402         * MACTripleDES.cs: Removed unrequired private field _padding.
403         * PasswordDeriveBytes.cs: Added 4 new constructors where the password
404         is a byte[] (as it seems MS won't be using SecureString for this).
405         * RIPEMD160Managed.cs: Removed overriden Dispose method to match 2.0.
406         Clear buffers when initializing (e.g. re-using the hash instance).
407         * Rfc2898DeriveBytes.cs: Added a new constructor where the password
408         is a byte[] (as it seems MS won't be using SecureString for this).
409         * RSAPKCS1SignatureDeformatter.cs: Throw ArgumentNullException in
410         NET_2_0 if a null key is specified.
411         * RSAPKCS1SignatureFormatter.cs: Throw ArgumentNullException in
412         NET_2_0 if a null key is specified.
413         * ToBase64Transform.cs: Fix the reported exceptions for output buffers.
414
415 2005-01-06  Sebastien Pouliot  <sebastien@ximian.com> 
416
417         * DES.cs: Change wek and semi-weak key checking to avoid memory 
418         allocations. Old version required 2 allocations (weak+semiweak) to 
419         unpack the key. New versions are 16x-20x faster.
420         *  RijndaelManaged.cs: Removed unrequired "& 0xff" when casting to 
421         byte.
422
423 2005-01-03  Sebastien Pouliot  <sebastien@ximian.com> 
424
425         * DESCryptoServiceProvider.cs: Refactored ECB/ProcessBlock to allow
426         TripleDES to be more efficient by using the permutations itself. 
427         * TripleDESCryptoServiceProvider.cs: Removed memory allocation in 
428         Transform's ECB method. Changed code to directly call DES's 
429         permutations. MACTripleDES is now 20% faster (didn't have any other
430         3DES benchmark on hand) and requires much less memory.
431
432 2005-01-03  Sebastien Pouliot  <sebastien@ximian.com>
433
434         * DESCryptoServiceProvider.cs: Now using pre-computed tables (instead
435         of using a static constructor to compute them). Not much change 
436         performance-wise unless you used DES but only "a little" ;-). The old
437         code (who computed the results) is still present but commented,
438
439 2005-01-02  Sebastien Pouliot  <sebastien@ximian.com>
440
441         * SHA1CryptoServiceProvider.cs: Removed memory allocation in 
442         ProcessBlock method (now global). This gives up to 8% performance
443         increase when multiple blocks are being used.
444         * SHA256Managed.cs: Removed memory allocation in ProcessBlock method
445         (now global). This gives up to 5% performance increase when multiple 
446         blocks are being used.
447
448 2004-12-23  Sebastien Pouliot  <sebastien@ximian.com>
449
450         * DataProtectionScope.cs: Moved in System.Security.dll
451         * MemoryProtectionScope.cs: Moved in System.Security.dll
452         * ProtectedData.cs: Moved in System.Security.dll
453         * ProtectedMemory.cs: Moved in System.Security.dll
454
455 2004-12-22  Sebastien Pouliot  <sebastien@ximian.com>
456
457         * RSA.cs: Throw the proper CryptographicException exception when 
458         exporting a private key without CRT parameters, while keeping the
459         ArgumentNullException when the private exponent (D) is missing.
460
461 2004-12-06  Sebastien Pouliot  <sebastien@ximian.com>
462
463         * RSACryptoServiceProvider.cs: Adjust DecryptValue to the fact that 
464         Mono's RSAManaged support decryption without CRT while MS requires it.
465
466 2004-11-26  Sebastien Pouliot  <sebastien@ximian.com>
467
468         * CryptoAPITransform.cs: 
469         * DSACryptoServiceProvider.cs: 
470         * MACTripleDES.cs:
471         * RC2CryptoServiceProvider.cs: 
472         * RSACryptoServiceProvider.cs: 
473                 Added ComVisible attributes to match 2.0 October Preview.
474
475 2004-11-03  Sebastien Pouliot  <sebastien@ximian.com>
476
477         * PasswordDeriveBytes.cs: Fix default iretation count to 100. Fix
478         exceptions to match MS more closely. Fixed possible ArgumentException
479         when asking multiple GetBytes than results in more bits than the hash
480         function can provide.
481
482 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
483
484         * DESCryptoServiceProvider.cs: Fixed warning (l4) by adding empty {}.
485         * DSASignatureDeformatter.cs: Fixed warning (l4) for unused variable.
486         * DSASignatureFormatter.cs: Fixed warning (l4) for unused variable.
487         * HMACSHA1.cs: Fixed warning (l4) for unused variable.
488
489 2004-09-03  Tim Coleman (tim@timcoleman.com)
490
491         * CryptoConfig.cs: Add new Xml cryptography class info.
492
493 2004-08-08  Sebastien Pouliot  <sebastien@ximian.com>
494
495         * CspProviderFlags.cs: Fixed new enums values.
496         * DSA.cs: Fixed #if for constructor visibility.
497         * CryptoAPITransform.cs: Removed constructor for NET_2_0 profile.
498
499 2004-07-07  Sebastien Pouliot  <sebastien@ximian.com>
500
501         * DES.cs: Fixed FeedbackSizeValue to 8.
502         * RC2.cs: Fixed FeedbackSizeValue to 8.
503         * RC2CryptoServiceProvider.cs: When key size is different from 
504         effective key size we throw CryptographicUnexpectedOperationException.
505         * TripleDES.cs: Fixed FeedbackSizeValue to 8.
506
507 2004-07-07  Sebastien Pouliot  <sebastien@ximian.com>
508
509         * CryptoAPITransform.cs: Added the new Reset method for NET_2_0. This
510         is a NOP as this class isn't used by Mono (all crypto transforms are 
511         managed).
512         * CryptographicException.cs: Added _Exception interface for NET_2_0 
513         profile.
514         * CspProviderFlags.cs: Added new enum's members for NET_2_0.
515         * DSA.cs: Changed constructor to protected for NET_2_0. It is now 
516         possible to inherit from DSA in other assemblies.
517         * DSACryptoServiceProvider.cs: NET_2_0 cleanup. Added interface 
518         ICspAsymmetricAlgorithm (stub), removed (unrequired) LegalKeySizes 
519         override, fixed visibility of PublicOnly property.
520         * HMACSHA1.cs: Fixed #if for NET_2_0 profile.
521         * KeyNumber.cs: Fixed values for new enum in Fx 2.0.
522         * MACTripleDES.cs: Added new Padding property to NET_2_0 profile.
523         * ProtectedData.cs: Added missing private constructor.
524         * ProtectedMemory.cs: Added missing private constructor.
525         * RC2CryptoServiceProvider.cs: Added UseSalt property to NET_2_0 
526         profile. Salt usage must be added to the transforms.
527         * RIPEMD160Managed.cs: Removed unrequired [CLSCompliant] attributes.
528         * RSACryptoServiceProvider.cs: NET_2_0 cleanup. Added interface 
529         ICspAsymmetricAlgorithm (stub), fixed visibility of PublicOnly 
530         property.
531         * RijndaelManaged.cs: Use the new RijndaelManagedTransform for Fx 2.0.
532         * RijndaelManagedTransform.cs: New. Class is now public in Fx 2.0.
533
534 2004-06-23  Sebastien Pouliot  <sebastien@ximian.com>
535
536         * CryptoStream.cs: Removed the block reduction. This seems to be done
537         only for Decryptor so it was moved to SymmetricTransform.
538
539 2004-06-16  Sebastien Pouliot  <sebastien@ximian.com>
540
541         * SignatureDescription.cs: Implemented .ctor(SecurityElement) using
542         documentation from VS.NET 2005.
543
544 2004-06-10  Gert Driesen <drieseng@users.sourceforge.net>
545
546         * ToBase64Transform.cs: Uncomment finalizer to fix public API
547         signature
548
549 2004-05-29  Sebastien Pouliot  <sebastien@ximian.com>
550
551         * CspProviderFlags.cs: Reverted previous patch as UseExistingKey isn't
552         part of the 1.0/1.1 framework.
553
554 2004-05-29  Gert Driesen (drieseng@users.sourceforge.net)
555
556         * CspProviderFlags.cs: Added missing enum field UseExistingKey
557
558 2004-05-27  Sebastien Pouliot  <sebastien@ximian.com>
559
560         * HashAlgorithm.cs: Added missing exception handling to ComputeHash,
561         TransformBlock and TransformFinalBlock.
562
563 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
564
565         * CryptoStream.cs: Fixed possible integer overflow.
566         * FromBase64Transform.cs: Better exception handling and fixed possible
567         integer overflow.
568         * RNGCryptoServiceProvider.cs: Changed RNG interface with the runtime
569         so it could be used in a thread-safe way with CryptoAPI.
570         * ToBase64Transform.cs: Better exception handling and fixed possible
571         integer overflow.
572
573 2004-05-07  Sebastien Pouliot  <sebastien@ximian.com>
574
575         * CipherMode.cs: Moved XML comments to monodoc.
576         * CryptoConfig.cs: Changed Array.Copy to Buffer.BlockCopy.
577         * CryptoStream.cs: Changed Array.Copy to Buffer.BlockCopy.
578         * DSA.cs: Changed Array.Copy to Buffer.BlockCopy.
579         * DSACryptoServiceProvider.cs: Fixed SignData to hash data before 
580         signing it (thanks to Jens Thiel for spotting this).
581         * ICryptoTransform.cs: Moved XML comments to monodoc.
582         * PasswordDeriveBytes.cs: Changed Array.Copy to Buffer.BlockCopy.
583         * FromBase64Transform.cs: Moved XML comments to monodoc.
584         * RSACryptoServiceProvider.cs: Fixed OID related exception in SignData.
585         * ToBase64Transform.cs: Input block may be smaller than a full block
586         when calling TransformFinalBlock (fix 2 CryptoStream unit tests).
587
588 2004-05-06  Sebastien Pouliot  <sebastien@ximian.com>
589
590         * RSAOAEPKeyExchangeDeformatter.cs: Fixed wrt completed unit tests.
591         * RSAOAEPKeyExchangeFormatter.cs: Fixed wrt completed unit tests.
592         * RSAPKCS1KeyExchangeDeformatter.cs: Fixed wrt completed unit tests.
593         Added globalization to exceptions.
594         * RSAPKCS1KeyExchangeFormatter.cs: Fixed wrt completed unit tests.
595         * RSAPKCS1SignatureDeformatter.cs: Fixed wrt completed unit tests.
596         Added globalization to exceptions.
597         * RSAPKCS1SignatureFormatter.cs: Fixed wrt completed unit tests.
598         Added globalization to exceptions.
599         
600 2004-05-06  Sebastien Pouliot  <sebastien@ximian.com>
601
602         * RC2.cs: Fixed KeySize to change it's value and the EffectiveKeySize
603         when the key is changed.
604         * RC2CryptoServiceProvider.cs: Added globalization to exceptions. 
605         Fixed the KeySize must be equal with EffectiveKeySize to match MS 
606         implementation.
607         * Rijndael.cs: Source clean up.
608         * RijndaelManaged.cs: Moved XML comments to monodoc. Added 
609         globalization to exceptions. 
610         * RNGCryptoServiceProvider.cs: Removed TODO and documented them in
611         mono doc. Now call runtime when a seed is provided.
612         * RSA.cs: Added globalization to exceptions. Removed check for 
613         <RSAKeyValue> as it is not checked by MS implementation.
614         * SHA1.cs: Moved XML comments to monodoc.
615         * SHA1CryptoServiceProvider.cs: Moved XML comments to monodoc. Removed
616         CLSCompliance attributes from private fields. 
617         * SHA256.cs: Moved XML comments to monodoc.
618         * SHA256Managed.cs: Moved XML comments to monodoc. Removed 
619         CLSCompliance attributes from   private fields.
620         * SHA384.cs: Moved XML comments to monodoc.
621         * SHA512.cs: Moved XML comments to monodoc.
622         * SignatureDescription.cs: Moved XML comments to monodoc. Added 
623         globalization to exceptions. Removed TODO and added notes to monodoc.
624         * SymmetricAlgorithm.cs: Moved XML comments to monodoc. Added 
625         globalization to exceptions.
626         * ToBase64Tranform.cs: Added missing exception handling. Moved XML 
627         comments to monodoc.
628         * TripleDES.cs: Added globalization to exceptions.
629         * TripleDESCryptoServiceProvider.cs: Changed Array.Copy to 
630         Buffer.BlockCopy. Zeroize decrypted data.
631
632 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
633
634         * HashAlgorithm.cs: Moved XML comments to monodoc. Added globalization
635         to exceptions.
636         * KeyedHashAlgorithm.cs: Added globalization to exceptions.
637         * KeySizes.cs: Moved XML comments to monodoc.
638         * MaskGenerationMethod.cs: Source clean up.
639         * MD5.cs: Moved XML comments to monodoc.
640         * MD5CryptoServiceProvider.cs: Removed CLSCompliance attributes from
641         private fields. Changed constants from enum to array. Zeroize data on
642         Dispose.
643         * PaddingMode.cs: Moved XML comments to monodoc.
644         * PasswordDeriveBytes.cs: Added globalization to exceptions. Removed 
645         TODO and documented as "not supported" in MonoDoc.
646         * RandomNumberGenerator.cs: Source clean up.
647
648 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
649
650         * DSACryptoServiceProvider.cs: Added globalization to exceptions.
651         * HMACSHA1.cs: Cleanup.
652         * SHA1CryptoServiceProvider.cs: Removed unused private methods.
653         * SHA1Managed.cs: Removed unused private methods.
654         * SHA384Managed.cs: Don't zeroize buffer on first initialization.
655         * SHA512Managed.cs: Don't zeroize buffer on first initialization.
656         
657 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
658
659         * Base64Constants.cs: New. Convert code into tables for better base64
660         performance.
661         * FromBase64Transform.cs: Updated to use the new tables. Source code
662         cleanup.
663         * SHA256Managed.cs: Updated to use shared constants.
664         * SHA384Managed.cs: Updated to use shared constants.
665         * SHA512Managed.cs: Updated to use shared constants.
666         * SHAConstants.cs: New. Shared constants for SHA implementations.
667         * ToBase64Transform.cs: Updated to use the new tables. Added 
668         globalization. Commented finalizer as it isn't required in this case.
669
670 2004-05-03  Sebastien Pouliot  <sebastien@ximian.com>
671
672         * CryptoConfig.cs: Specify version and public key token when loading
673         System.Security.dll for XML Digital Signature classes.
674
675 2004-04-29 Ben Maurer  <bmaurer@users.sourceforge.net>
676
677         * DES.cs:
678         * DESCryptoServiceProvider.cs:
679         * RC2CryptoServiceProvider.cs:
680         * RijndaelManaged.cs:
681         * SHA384Managed.cs:
682         * SHA512Managed.cs:
683         * ToBase64Transform.cs:
684         Readonly/Constify.
685
686 2004-04-29  Sebastien Pouliot  <sebastien@ximian.com>
687
688         * DES.cs: Removed redundant weak/semi-weak key check in Key property.
689         * DESCryptoServiceProvider.cs: Implementation already had 100% 
690         coverage.
691
692 2004-04-28  Sebastien Pouliot  <sebastien@ximian.com>
693
694         * DSACryptoServiceProvider.cs: Changed delegate signature.
695         * RSACryptoServiceProvider.cs: Changed delegate signature.
696
697 2004-04-28  Sebastien Pouliot  <sebastien@ximian.com>
698
699         * DSA.cs: Moved XML comments to monodoc. Added globalization to 
700         exceptions. Already had 100% coverage.
701         * DSAParameters.cs: Moved XML comments to monodoc.
702         * DSASignatureDeformetter.cs: Added globalization to exceptions. 
703         Limited catch to expected exception. Already had 100% coverage.
704         * DSASignatureFormatter.cs: Added globalization to exceptions. Limited
705         catch to expected exception. Already had 100% coverage.
706
707 2004-04-26  Sebastien Pouliot  <sebastien@ximian.com>
708
709         * AsymmetricAlgorithm.cs: Moved XML comments to monodoc. Added 
710         globalization to exceptions. Already had 100% coverage.
711         * AsymmetricKeyExchangeDeformatter.cs: Moved XML comments to monodoc.
712         Already had 100% coverage.
713         * AsymmetricKeyExchangeFormatter.cs: Moved XML comments to monodoc.
714         Already had 100% coverage.
715         * AsymmetricSignatureDeformatter.cs: Moved XML comments to monodoc.
716         Already had 100% coverage.
717         * AsymmetricSignatureFormatter.cs: Moved XML comments to monodoc.
718         Already had 100% coverage.
719         * CryptoAPITransform.cs: Unused by Mono (added note to monodoc).
720         Class will stay at 0% coverage.
721         * CryptoConfig.cs: Added globalization to exceptions. 98% coverage.
722         * CryptographicException.cs: Added globalization to exceptions. 
723         Already had 100% coverage.
724         * CryptoStream.cs: Added globalization to exceptions. Removed (unused)
725         field _previousBlock to get 100% coverage.
726         * CspParameters.cs: Moved XML comments to monodoc. Already had 100% 
727         coverage.
728         * CspProviderFlags.cs: Moved XML comments to monodoc.
729         * DeriveBytes.cs: Moved XML comments to monodoc. Already had 100% 
730         coverage.
731         * DES.cs: Fixes to weak/semi-weak checking to pass new unit tests (it
732         requires to set odd parity on keys before comparing).
733
734 2004-04-25  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
735
736         * DSACryptoServiceProvider.cs: Call invariant compare
737
738 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
739
740         * DSA.cs: Use Mono.Security.BitConverterLE
741
742 2004-04-05  Bernie Solomon  <bernard@ugsolutions.com>
743
744         * DESCryptoServiceProvider.cs: Use BitConverter.IsLittleEndian
745         to fix for big endian machines.
746
747 2004-03-10  Sebastien Pouliot  <sebastien@ximian.com>
748
749         * FromBase64Transform.cs: Now throws ObjectDisposedException and
750         return true for CanReuseTransform (as MS implementation).
751
752 2004-03-09  Atsushi Enomoto  <atsushi@ximian.com>
753
754         * DSA.cs : fixed incorrectly modified catch for debugging.
755
756 2004-03-09  Atsushi Enomoto  <atsushi@ximian.com>
757
758         * DSA.cs : In ToXmlString(), sequence of Seed and PgenCounter is
759           optional.
760
761 2004-02-26  Sebastien Pouliot  <sebastien@ximian.com>
762
763         * DES.cs: Same fix as for SymmetricAlgorithm (get_Key is 
764         overridden to check for weak keys). Also ensured that no weak keys
765         would be generated.
766         * SymmetricAlgorithm.cs: Return a copy of the key (and IV) so it 
767         doesn't get destroyed when dispose is called (in this case the key
768         zeroization is the caller's responsability). Match MS implementation.
769         * TripleDES.cs: Same fix as for SymmetricAlgorithm (get_Key is 
770         overridden to check for weak keys). Fix bugzilla #54868.
771
772 2004-02-12  Sebastien Pouliot  <sebastien@ximian.com>
773
774         * CryptoStream.cs: Remove the _blockSize assumptions because some 
775         Transforms could be different on Input/Output. Added a special case
776         for cascading CryptoStreams in FlushFinalBlock.
777
778 2004-02-09  Sebastien Pouliot  <sebastien@ximian.com>
779
780         * DSACryptoServiceProvider.cs: Fixed support for key pair persistence.
781         It now requires (like MS) to call Clear to delete an existing 
782         container. PersistKeyInCsp default value also changes if a 
783         CspParameters is supplied (or not) to the constructor.
784         * RSACryptoServiceProvider.cs: Same fixes as DSA.
785         * SymmetricAlgorithm.cs: Reintroduced the patch from 2003-08-24 to fix
786         IV length exception for stream ciphers (e.g. RC4). I overwrote it by
787         accident some time ago :(
788
789 2004-02-08  Sebastien Pouliot  <sebastien@ximian.com>
790
791         * HashAlgorithm.cs: Changed the ComputeHash(Stream) method to (a) not
792         allocate the whole stream memory (big memory saver as suggested by
793         Peter Williams in bugzilla entry #54022) and (b) to never use Stream.
794         Length and Stream.Position because they aren't implemented for every
795         stream class (similar issue to the CryptoStream patch).
796         * MD5CryptoServiceProvider.cs: Moved a buffer allocation from 
797         ProcessBlock to constructor to reduce memory allocation. Optimization
798         suggested by Peter Williams in bugzilla entry #54024.
799
800 2004-02-06  Sebastien Pouliot  <sebastien@ximian.com>
801
802         * DSACryptoServiceProvider.cs: Added keypair persistence support.
803         Corrected dispose so object cannot be disposed multiple time. Added
804         PublicOnly property (as internal before 1.2, public after).
805         * RSACryptoServiceProvider.cs: Added keypair persistence support.
806         Corrected dispose so object cannot be disposed multiple time. Added
807         PublicOnly property (as internal before 1.2, public after).
808         * SymmetricAlgorithm.cs: Removed class SymmetricTransform from file
809         and moved it to Mono.Security.Cryptography namespace. The transform
810         class will also be included in Mono.Security assembly.
811
812 2004-02-06  David Sheldon <dave-mono@earth.li>
813
814   * FromBase64Transform.cs: Improved code layout to match coding style, 
815    and removed the Byte comparison with -1.
816
817 2004-02-04  Sebastien Pouliot  <sebastien@ximian.com>
818
819         * CryptoStream.cs: New implementation - should fix all known issues
820         with the class (Read/WriteByte, reading by non-multiple of the
821         block size, using Stream.Length and Stream.Position ...).
822         * SymmetricAlgorithm.cs: Return an empty array when there's nothing
823         to return (required for CryptoStream to work).
824
825 2004-01-31  David Sheldon      <dave-mono@earth.li>
826
827         * FromBase64Transform.cs: Removed needless catch and rethrow.
828
829 2004-01-31  David Sheldon      <dave-mono@earth.li>
830
831         * FromBase64Transform.cs: Fixes to what happens if a character in the
832         input stream is not in the lookup table. IndexOutOfRangeException was 
833         wrong.
834
835 2003-12-15  Sebastien Pouliot  <spouliot@videotron.ca>
836
837         * CryptoConfig.cs: Now use internal Environment.GetMachineConfigPath()
838         to find machine.config. Initialization removed from static constructor
839         to speed up 98% of software that do not requires it.
840         * SymmetricAlgorithm.cs: Fixed padding for None and Zeros modes. Unit
841         tests for padding modes are now in PaddingModeTest.cs.
842
843 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
844
845         * HMAC.cs: Fix compilation warnings.
846
847 2003-12-10  Mark Crichton  <crichton@gimp.org>
848
849         * RNGCryptoServiceProvider.cs: Removed icall to GetNonZeroBytes. Now
850         done with managed code.
851
852 2003-11-13  Sebastien Pouliot  <spouliot@videotron.ca>
853
854         * ProtectedData.cs: Added exceptions - core is still TODO.
855         * ProtectedMemory.cs: Added exceptions - core is still TODO.
856
857 2003-11-11  Sebastien Pouliot  <spouliot@videotron.ca>
858
859         * Rfc2898DeriveBytes.cs: Now handle resets and keys longer than 160 
860         bits (HMACSHA1 block size). Removed TODO.
861         * SymmetricAlgorithm.cs: Fixed decryption when inputOffset > 0.
862         [#50826].
863
864 2003-11-10  Sebastien Pouliot  <spouliot@videotron.ca>
865
866         * Rfc2898DeriveBytes.cs: Implementation for PKCS5 PBKDF2. It works
867         except for the Reset() part - which implies some kind of Resume.
868
869 2003-11-09  Sebastien Pouliot  <spouliot@videotron.ca>
870
871         * CryptoConfig.cs: Updated for RIPEMD160 and HMAC.
872         * CspKeyContainerInfo.cs: New (1.2). Information about CSP based key
873         containers.
874         * DataProtectionScope.cs: New (1.2). Enumeration for ProtectedData.
875         * HMAC.cs: New (1.2). Base class for all HMAC. Code is mostly copied 
876         from internal Mono.Security.Cryptography.HMACAlgorith.cs.
877         * HMACMD5.cs: New (1.2). HMAC implementation using MD5.
878         * HMACRIPEMD160.cs: New (1.2). HMAC implementation using RIPEMD160.
879         * HMACSHA1.cs: Modified to derive from HMAC for .NET 1.2.
880         * HMACSHA256.cs: New (1.2). HMAC implementation using SHA256.
881         * HMACSHA384.cs: New (1.2). HMAC implementation using SHA384.
882         * HMACSHA512.cs: New (1.2). HMAC implementation using SHA512.
883         * ICspAsymmetricAlgorithm.cs: New (1.2). Interface for CSP based 
884         asymmetric algorithm.
885         * KeyNumber.cs: New (1.2). Enumeration for CspKeyContainerInfo.
886         * MemoryProtectionScope.cs: New (1.2). Enumeration for ProtectedMemory.
887         * PaddingMode.cs: Added two new padding modes to enumeration (for 1.2).
888         * ProtectedData.cs: New (1.2). ProtectedData without protection (TODO).
889         * ProtectedMemory.cs: New (1.2). Stub for ProtectedMemory.
890         * Rfc2898DeriveBytes.cs: New (1.2). Stub for PKCS5 PBKDF2.
891
892 2003-11-08  Sebastien Pouliot  <spouliot@videotron.ca>
893
894         * RIPEMD160.cs: New (1.2). Abstract class for RIPEMD160 hash from 
895         Pieter Philippaerts (Pieter@mentalis.org)
896         * RIPEMD160Managed.cs: New (1.2). Implementation of the RIPEMD160 hash
897         algorithm from Pieter Philippaerts (Pieter@mentalis.org)
898
899 2003-10-07  Sebastien Pouliot  <spouliot@videotron.ca>
900
901         * CryptoStream.cs: Commented CanTransformMultipleBlocks
902         optimization - it simply doesn't work :(
903
904 2003-10-04  Sebastien Pouliot  <spouliot@videotron.ca>
905
906         * CryptoStream.cs: Fixed bug 49323. The CanTransformMultipleBlocks
907         optimization in Read has been fixed for partial blocks.
908
909 2003-09-11  Lluis Sanchez Gual  <lluis@ximian.com>
910
911         * CryptoStream.cs: Added [In,Out] attributes to Read method.
912
913 2003-08-24  Sebastien Pouliot  <spouliot@videotron.ca>
914
915         * SymmetricAlgorithm.cs: Fixed IV length exception for stream ciphers
916         (e.g. RC4) which don't uses IV. This needs more tests for small IV...
917
918 2003-08-09  Sebastien Pouliot  <spouliot@videotron.ca>
919
920         * SymmetricAlgorithm.cs: Re-introduced Lluis patch for PaddingMode.None 
921         and PaddingMode.Zeros (not PaddingMode.PKCS7).
922
923 2003-08-05  Sebastien Pouliot  <spouliot@videotron.ca>
924
925         * CryptoStream.cs: Closing bug #40689. The Write method was re-written.
926         * SymmetricAlgorithm.cs: Removed Lluis previous patch (it fails a unit
927         test) and corrected a bug in FinalDecrypt.
928         * RSACryptoServiceProvider.cs: Fixed different exceptions from .NET 1.0
929         and 1.1.
930
931 2003-07-31  Sebastien Pouliot  <spouliot@videotron.ca>
932
933         * CryptoStream.cs: Closing bug #46143. The Read method was re-written.
934
935 2003-07-30  Sebastien Pouliot  <spouliot@videotron.ca>
936
937         * CryptoStream.cs: Fixed bug #46143 (exception) - however we dont 
938         returns the same result as MS. Class needs to be re-written.
939
940 2003-07-09  Lluis Sanchez Gual  <lluis@ximian.com>
941
942         * SymmetricAlgorithm.cs: Fixed FinalEncrypt. Return empty array if inputCount is 0.
943
944 2003-07-05  Sebastien Pouliot  <spouliot@videotron.ca>
945
946         * AsymmetricAlgorithm.cs: Removed AsymmetricParameters (IReader) class. 
947         Now uses the new Mono.Xml.SecurityParser (xml -> SecurityElement)
948         * CryptoConfig.cs: Removed CorlibHandler and CorlibReader classes. Now 
949         uses the new Mono.Xml.SecurityParser (xml -> SecurityElement)
950         * DSA.cs: Removed DSAHandler (IHandler) class. Now uses the new 
951         Mono.Xml.SecurityParser (xml -> SecurityElement)
952         * DSACryptoServiceProvider.cs: Added ObjectDisposedException support
953         and fixed bugs found in new unit tests.
954         * RSA.cs: Removed DSAHandler (IHandler) class. Now uses the new 
955         Mono.Xml.SecurityParser (xml -> SecurityElement)
956         * RSACryptoServiceProvider.cs: Added ObjectDisposedException support
957         and fixed bugs found in new unit tests.
958
959 2003-06-22  Sebastien Pouliot <spouliot@motus.com>
960
961         * DSACryptoServiceProvider.cs: Added UseMachineKeyStore property (1.1).
962         * RSACryptoServiceProvider.cs: Added UseMachineKeyStore property (1.1).
963
964 2003-06-11  Sebastien Pouliot <spouliot@motus.com>
965
966         * DSACryptoServiceProvider.cs: Refactored from orginal by splitting 
967         much core functionalities into DSAManaged. 
968         * RSACryptoServiceProvider.cs: Refactored from orginal by splitting 
969         much core functionalities into RSAManaged. 
970         * RSAPKCS1SignatureDeformatter.cs: Updated to use the new PKCS#1 API.
971         Now works with any hash algorithm (which OID is defined in machine.config)
972         * RSAPKCS1SignatureFormatter.cs: Updated to use the new PKCS#1 API.
973         Now works with any hash algorithm (which OID is defined in machine.config)
974
975 2003-06-09  Sebastien Pouliot <spouliot@motus.com>
976
977         * CryptoConfig.cs: Now support OID in machine.config.
978         * DSACryptoServiceProvider.cs: Changed USE_VERSION_1_0 for NET_1_0.
979         * KeySizes.cs: Changed USE_VERSION_1_0 for NET_1_0.
980         * MD5CryptoServiceProvider.cs: Changed USE_VERSION_1_0 for NET_1_0.
981         * RNGCryptoServiceProvider.cs: Changed USE_VERSION_1_0 for NET_1_0.
982
983 2003-05-12  Sebastien Pouliot  <spouliot@videotron.ca>
984
985         * PKCS1MaskGenerationMethod.cs: Added comment to justify why
986         the class is no more compatible with MS implementation (the bug
987         was preventing OAEP to work properly).
988
989 2003-05-09  Sebastien Pouliot  <spouliot@videotron.ca>
990
991         * DSACryptoServiceProvider.cs: Class is now sealed in v.1.1.
992         * KeySizes.cs: Class is now sealed in v.1.1.
993         * MD5CryptoServiceProvider.cs: Class is now sealed in v.1.1.
994         * RNGCryptoServiceProvider.cs: Class is now sealed in v.1.1.
995
996 2003-04-22  Sebastien Pouliot  <spouliot@videotron.ca>
997
998         * DSACryptoServiceProvider.cs: Changed key generation to use the
999         new BigInteger class (commited for Ben Maurer).
1000         * RSACryptoServiceProvider.cs: Changed key generation to use the
1001         new BigInteger class (commited for Ben Maurer).
1002
1003 2003-04-06  Sebastien Pouliot  <spouliot@videotron.ca>
1004
1005         * AsymmetricAlgorithm.cs: Moved IsLegalKeySize to KeySizes.cs.
1006         * DSACryptoServiceProvider.cs: Fix bug where key generation always
1007         resulted in 1024 bits keypair.
1008         * KeySizes.cs: Added internal IsLegalKeySize and IsLegal to avoid
1009         duplication in both AsymmetricAlgorithm and SymmetricAlgorithm.
1010         * RC2.cs: Modified to use IsLegalKeySize from KeySizes.cs.
1011         * RSACryptoServiceProvider.cs: Fix bug where key generation always
1012         resulted in 1024 bits keypair. Should fix unit test failure under
1013         Linux.
1014         * SymmetricAlgorithm.cs: Moved IsLegalKeySize to KeySizes.cs.
1015
1016 2003-04-06  Sebastien Pouliot  <spouliot@videotron.ca>
1017
1018         * CryptoStream.cs: Partial fix for bug #40689 (workaround). Does not 
1019         throw a NotSupportedException on closing a CryptoStream in read mode
1020         (like MS does but unlike MS documents).
1021
1022 2003-03-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1023
1024         * CryptoStream.cs: fixed the previous fix. MS throws a NotSupportedExc
1025         when FlushFinalBlock is called twice. I've moved a few lines from Close
1026         to FlushFinalBlock and added the exception check.
1027
1028 2003-03-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1029
1030         * CryptoStream.cs: don't Close the underlying stream in FlushFinalBlock.
1031         Fixes bug #40394.
1032
1033 2003-03-03  Sebastien Pouliot  <spouliot@videotron.ca>
1034
1035         * RSACryptoServiceProvider.cs: Delay keypair generation event when 
1036         keysize is a constructor parameter (major speed improvment when
1037         importing keys). Removed NotSupportedException when CspParameter is
1038         used in constructor (required for forthcoming security tools).
1039
1040 2003-02-08  Sebastien Pouliot  <spouliot@videotron.ca>
1041
1042         * Changes to refer Mono.Math and Mono.Security.Cryptography
1043         * Changes to refer Mono.Xml
1044
1045 2003-02-04  Sebastien Pouliot  <spouliot@videotron.ca>
1046
1047         * CryptoConfig.cs: Added initital support for "machine.config" 
1048         (limited to algorithms, not OIDs). Modified CreateFromName to use
1049         the fully qualified class names (and removed xmldsig hack). Added
1050         algorithm names documented in book ".NET Framework Security".
1051
1052 2003-02-03  Sebastien Pouliot  <spouliot@videotron.ca>
1053
1054         * PasswordDeriveBytes.cs: Finally got the derivation right. The
1055         class can now derive keys up to 1000 * HashSize (same limit as MS).
1056         * RSAPKCS1SignatureDeformatter.cs: No need to create the hash object
1057         in this class - the OID is enough.
1058
1059 2003-02-01  Sebastien Pouliot  <spouliot@videotron.ca>
1060
1061         * AsymmetricSignatureFormatter.cs: Call abstract SetHashAlgorithm
1062         when CreateSignature(hash) is called.
1063         * CryptoStream.cs: Fixed some issues in constructor.
1064         * DSACryptoServiceProvider.cs: Fixed a bug (1 chance in 256) that
1065         a signature could be less than 40 bytes (which is invalid).
1066
1067 2003-01-25  Sebastien Pouliot  <spouliot@videotron.ca>
1068
1069         * CryptographicException.cs: Default HResult to CORSEC_E_CRYPTO
1070         (0x80131430) as documented.
1071         * CryptographicUnexpectedOperationException.cs: Default HResult
1072         to CORSEC_E_CRYPTO_UNEX_OPER (0x80131431) as documented.
1073
1074 2003-01-20  Sebastien Pouliot  <spouliot@videotron.ca>
1075
1076         * CipherMode.cs: Added missing [Serializable] to enum.
1077         * CspProviderFlags.cs: Added missing [Serializable] to enum.
1078         * FromBase64Transform.cs: Added missing [Serializable] to enum.
1079         * PaddingMode.cs: Added missing [Serializable] to enum.
1080
1081 2003-01-19  Sebastien Pouliot  <spouliot@videotron.ca>
1082
1083         * CryptoTools.cs: Added internal class BlockProcessor to help
1084         implementation of block-based algorithms (like MAC and HMAC).
1085         * HMACSHA1.cs: Refactored to remove dependencies on CryptoStream,
1086         better constructors and Dispose support.
1087         * MACTripleDES.cs: Refactored to reuse new HMACSHA1 stuff, better
1088         constructors.
1089
1090 2003-01-18  Sebastien Pouliot  <spouliot@videotron.ca>
1091
1092         * HMACSHA1.cs: Now use KeyBuilder to build the default key.
1093
1094 2003-01-12  Sebastien Pouliot  <spouliot@videotron.ca>
1095
1096         * MACTripleDES.cs: Now working (the problem was with my stream usage
1097         which was removed for performance reason).
1098         * TripleDES.cs: Fixed key generation (wasn't called and returned
1099         null).
1100
1101 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
1102
1103         * RNGCryptoServiceProvider.cs: Changed methods interacting with 
1104         the runtime as Internal<MethodName>. This will allow to make the
1105         class Windows-compatible by doing a switch at runtime.
1106
1107 2003-01-05  Sebastien Pouliot  <spouliot@videotron.ca>
1108
1109         * CryptoAPITransform.cs: Removed all TODO. This class will not be
1110         used by Mono. MS uses it with <algo>CryptoServiceProvider classes 
1111         to provide a common ICryptoTransform access to CryptoAPI. 
1112
1113 2003-01-03  Sebastien Pouliot  <spouliot@videotron.ca>
1114
1115         * RC2CryptoServiceProvider.cs: Now about 2 time faster by inlining 
1116         methods and changing to UInt16 (instead of UInt32). 
1117
1118 2003-01-02  Sebastien Pouliot  <spouliot@videotron.ca>
1119
1120         * RijndaelManaged.cs: Now 7 (encrypt) to 10 (decrypt) times faster 
1121         by removing allocation inside intensively called methods, using pre-
1122         calculated tables instead of Mult_GF methods and inlining most methods.
1123
1124 2002-12-31  Sebastien Pouliot  <spouliot@videotron.ca>
1125
1126         * AsymmetricAlgorithm.cs: Removed ValidKeySize (method only present
1127         in SymmetricAlgorithm).
1128         * DSA.cs: Change ZeroizePrivateKey from protected to internal.
1129         * DSACryptoServiceProvider.cs: Added some case where we need to check 
1130         for keypairGenerated.
1131         * RSA.cs: Change ZeroizePrivateKey from protected to internal.
1132         * RSACryptoServiceProvider.cs: Key were never generated with the default
1133         (no parameter) constructor. Now checks for keypairGenerated in methods.
1134         * SignatureDescription.cs: Added CreateDeformatter in RSAPKCS1SHA1-
1135         SignatureDescription to please corcompare (it just call it's ancestor).
1136
1137 2002-12-30  Sebastien Pouliot  <spouliot@videotron.ca>
1138
1139         * CryptoStream.cs: Implemented core. Not sure about many details - 
1140         but it run the samples now (#30256).
1141         * CryptoStreamMode.cs: Added [Serializable] to enum declaration.
1142         * SymmetricAlgorithm.cs: Made some changes required for CryptoStream 
1143         and to match more closely MS implementation. Also added little
1144         optimizations in TransformBlock.
1145
1146 2002-12-27  Sebastien Pouliot  <spouliot@videotron.ca>
1147
1148         * CryptoTools.cs: New. Shared classes for cryptography. Now
1149         includes a KeyBuilder to generate symmetric keys and IV.
1150         * DES.cs: Modified Key validation.
1151         * DESCryptoServiceProvider.cs: Implemented Key and IV using
1152         KeyBuilder.
1153         * RC2CryptoServiceProvider.cs: Implemented Key and IV using
1154         KeyBuilder (and removed TODO).
1155         * RijndaelManaged.cs: Implemented Key and IV using KeyBuilder 
1156         (and removed TODO).
1157         * SHA384Managed.cs: Changed code to remove compiler warning.
1158         * SHA512Managed.cs: Changed code to remove compiler warning.
1159         * SymmetricAlgorithm.cs: Removed TODO on IV.
1160         * TripleDESCryptoServiceProvider.cs: Implemented Key and IV
1161         using KeyBuilder (and removed TODO).
1162
1163 2002-11-20  Sebastien Pouliot  <spouliot@videotron.ca>
1164
1165         * AsymmetricSignatureDeformatter.cs: Added exception handling in
1166         VerifySignature (moved from RSAPKCS1SignatureDeformatter).
1167         * AsymmetricSignatureFormatter.cs: Added exception handling in
1168         CreateSignature (moved from RSAPKCS1SignatureFormatter).
1169         * CryptoAPITransform.cs: Removed "= false" assignation from a private
1170         member (because this created an unwanted "ghost" constructor) and 
1171         modified Dispose declaration.
1172         * HashAlgorithm.cs: Removed destructor. Disposing unmanaged 
1173         ressources is the responsability of each class (not an abstract class).
1174         * RSAPKCS1SignatureDeformatter.cs: Removed a VerifySignature method
1175         which was present in the base class AsymmetricSignatureDeformatter.
1176         * RSAPKCS1SignatureFormatter.cs: Removed a CreateSignature method
1177         which was present in the base class AsymmetricSignatureFormatter.
1178         * SHA1Managed.cs: Removed sealed from class declaration. Removed 
1179         destructor and Dispose method as class is fully managed.
1180         * ToBase64Transform.cs: Added virtual to property CanReuseTransform.
1181
1182 2002-11-17  Sebastien Pouliot  <spouliot@videotron.ca>
1183
1184         * CryptoConfig.cs: Added full classes name for MapNameToOID.
1185         * PKCS1.cs: New. Internal class for the various primitives defined
1186         in PKCS#1 v.2.1.
1187         * PKCS1MaskGenerationFunction.cs: Modified to use PKCS1.cs.
1188         * RSA.cs: Added internal class RSAHandler (which implements IHandler
1189         interface for MiniParser) to import RSA keypairs from XML strings.
1190         * RSACryptoServiceProvider.cs: Crypto implemented using BigInteger. 
1191         Key generation is VERY LONG.
1192         * RSAOAEPKeyExchangeDeformatter.cs: Completed using PKCS1. Not sure 
1193         of the results as this is not available in all versions of Windows.
1194         * RSAOAEPKeyExchangeFormatter.cs: Completed using PKCS1. Not sure 
1195         of the results as this is not available in all versions of Windows.
1196         * RSAPKCS1KeyExchangeDeformatter.cs: Completed using PKCS1.
1197         * RSAPKCS1KeyExchangeFormatter.cs: Completed using PKCS1.
1198         * RSAPKCS1SignatureDeformatter.cs: Completed using PKCS1.
1199         * RSAPKCS1SignatureFormatter.cs: Completed using PKCS1.
1200
1201 2002-11-17  Sebastien Pouliot  <spouliot@videotron.ca>
1202
1203         * MiniParser.cs: Added explicit cast in order to compile with mcs.
1204
1205 2002-11-16  Sebastien Pouliot  <spouliot@videotron.ca>
1206
1207         * AsymmetricAlgorithm.cs: Added internal class AsymmetricParameters
1208         (which implements the IReader interface for MiniParser). Corrected
1209         Dispose declaration.
1210         * BigInteger.cs: New. Internal class for handling BIG integers for 
1211         asymmetric crypto (both RSA and DSA). Thanks to Chew Keong TAN !
1212         * CryptoConfig.cs: Added XMLDSIG URLs in CreateFromName.
1213         Will dynamically load System.Security.dll, when required,
1214         to return instance of those classes. Also CryptoConfig can now
1215         create any object (e.g. System.IO.MemoryStream) !
1216         * DSA.cs: Added internal class DSAHandler (which implements IHandler
1217         interface for MiniParser) to import DSA keypairs from XML strings.
1218         * DSACryptoServiceProvider.cs: Crypto fully implemented using 
1219         BigInteger. Key generation (group) is VERY long.
1220         * MiniParser.cs: New. Minimal XML parser by Sergey Chaban. Used to 
1221         import keypairs in XML strings.
1222         * SignatureDescription.cs: Removed local CreateFromName (to use
1223         CryptoConfig - which actually can create anything). Added internal
1224         classes DSASignatureDescription and RSAPKCS1SHA1SignatureDescription.
1225
1226 2002-11-15  Sebastien Pouliot  <spouliot@videotron.ca>
1227
1228         * CryptographicUnexpectedOperationException.cs: Forgot it last time!
1229         * FromBase64Transform.cs: Added missing virtual to CanReuseTransform.
1230         Changed Dispose().
1231         * HashAlgorithm.cs: Changed Dispose().
1232         * MD5CryptoServiceProvider.cs: Added destructor and Dipose(bool).
1233         * PasswordDeriveBytes.cs: Changed some declaration from
1234         protected to private.
1235         * RC2.cs: Added valid keysize check in EffectiveKeySize.
1236         * RC2CryptoServiceProvider.cs: Overriden EffectiveKeySize to match
1237         corlib declarations.
1238         * RSAOAEPKeyExchangeDeformatter.cs: Changed some declaration from
1239         protected to private.
1240         * RSAOAEPKeyExchangeFormatter.cs: Changed some declaration from
1241         protected to private.
1242         * RSAPKCS1KeyExchangeDeformatter.cs: Changed some declaration from
1243         protected to private.
1244         * RSAPKCS1KeyExchangeFormatter.cs: Changed some declaration from
1245         protected to private.
1246         * RSAPKCS1SignatureDeformatter.cs: Changed some declaration from
1247         protected to private.
1248         * RSAPKCS1SignatureFormatter.cs: Changed some declaration from
1249         protected to private.
1250         * SHA1CryptoServiceProvider.cs: Moved SHA1 code to SHA1Internal.
1251         SHA1CryptoServiceProvider now use SHA1Internal. Added Dispose and
1252         destructor.
1253         * SHA1Managed.cs: New. Use SHA1Internal. Same as 
1254         SHA1CryptoServiceProvider but is required for binary compatibility.
1255         * SHA256Managed.cs: Changed some declaration from protected to private.
1256         * SHA384Managed.cs: Changed some declaration from protected to private.
1257         * SHA512Managed.cs: Changed some declaration from protected to private.
1258         * SymmetricAlgorithm.cs: Added Clear(), changed Dispose() and added
1259         virtual to Dispose(bool).
1260         * ToBase64Transform.cs: Added missing virtual to CanReuseTransform.
1261         Changed Dispose().
1262         * TripleDESCryptoServiceProvider.cs: Added missing sealed to class
1263         declaration.
1264
1265 2002-11-03  Sebastien Pouliot  <spouliot@videotron.ca>
1266
1267         * CryptoAPITransform.cs: Added missing CanReuseTransform property,
1268         Clear method, destructor and IDisposable support.
1269         * CryptographicException.cs: Added missing protected constructor.
1270         * CryptographicUnexpectedOperationException.cs: Added missing 
1271         protected constructor.
1272         * ICryptoTransform.cs: Added missing CanReuseTransform property.
1273         * FromBase64Transform.cs: Added missing CanReuseTransform property,
1274         Clear method, destructor and IDisposable support.
1275         * SymmetricAlgorithm.cs: Implement IDisposable.
1276         * ToBase64Transform.cs: Added missing CanReuseTransform property,
1277         Clear method, destructor and IDisposable support.
1278
1279 2002-11-02  Sebastien Pouliot  <spouliot@videotron.ca>
1280
1281         * SignatureDescription.cs: Updated class to match unit test results
1282         * X509Certificate.cs: REMOVED! Wrong namespace. An almost complete
1283         implementation is now in System.Security.Cryptography.X509Certificates
1284
1285 2002-11-01  Sebastien Pouliot  <spouliot@videotron.ca>
1286
1287         * bouncycastle.txt: Bouncy Castle JCE License.
1288         * SHA384Managed.cs: Hash implementation based on BouncyCastle JCE.
1289         * SHA512Managed.cs: Hash implementation based on BouncyCastle JCE.
1290
1291 2002-10-30  Sebastien Pouliot  <spouliot@videotron.ca>
1292
1293         * DSASignatureDeformatter.cs: Fully implemented - however it 
1294         requires a functionnal DSA implementation to work.
1295         * DSASignatureFormatter.cs: Fully implemented - however it 
1296         requires a functionnal DSA implementation to work.
1297
1298 2002-10-25  Sebastien Pouliot  <spouliot@videotron.ca>
1299
1300         * PasswordDeriveBytes.cs: New. PKCS#5 key derivation (PBKDF1) works up to
1301         HashSize length (but MS support longer keys)
1302
1303 2002-10-24  Sebastien Pouliot  <spouliot@videotron.ca>
1304
1305         * RSACryptoServiceProvider.cs: New. Implemented most logic expect crypto 
1306         * RSAOAEPKeyExchangeDeformatter.cs: New. Stub.
1307         * RSAOAEPKeyExchangeFormatter.cs: New. Stub.
1308         * RSAPKCS1KeyExchangeDeformatter.cs: New. Stub.
1309         * RSAPKCS1KeyExchangeFormatter.cs: New. 98% implemented but still
1310         require RSA.DecryptValue (not supported in MS .NET Framework)
1311         * RSAPKCS1SignatureDeformatter.cs: New. Stub.
1312         * RSAPKCS1SignatureFormatter.cs: New. Stub.
1313
1314 2002-10-23  Sebastien Pouliot  <spouliot@videotron.ca>
1315
1316         * SymmetricAlgorithm.cs: Fixed CFB mode (do encryption while decrypting!)
1317         * TripleDESCryptoServiceProvider.cs: Ajusted for CFB.
1318
1319 2002-10-22  Sebastien Pouliot  <spouliot@videotron.ca>
1320
1321         * RjindaelManaged.cs: Fixed decryption for 192 and 256 bit block size
1322
1323 2002-10-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1324
1325         * RC2CryptoServiceProvider.cs: fixed end of lines (changed from \r
1326         to \n).
1327
1328 2002-10-20  Sebastien Pouliot  <spouliot@videotron.ca>
1329
1330         * SymmetricAlgorithm.cs: Added better Dispose support
1331         * DES.cs: Now only contains the abstract DES class.
1332         * DESCryptoServiceProvider.cs: Added the DESTransform class (inherited
1333         from SymmetricTransform) based the old DESCore and DESTransformBase code
1334         * RC2.cs: Fixed EffectiveKeySize == 0
1335         * RC2CryptoServiceProvider.cs: Added the RC2Transform class (inherited
1336         from SymmetricTransform) based on the old RC2lImpl code. Unrolled some loops.
1337         * RjindaelManaged.cs: Few more optimizations while looking for decrypting bug
1338         * TripleDESCryptoServiceProvider.cs: New. Implement TripleDESTransform from 
1339         DESTransform (non-optimal but working :-).
1340
1341 2002-10-19  Sebastien Pouliot  <spouliot@videotron.ca>
1342
1343         * SymmetricAlgorithm.cs: Added new class SymmetricTransform to avoid
1344         duplicating CipherMode (currently ECB, CBC) and PaddingMode functionalities
1345         in every crytographic algorithm implementation.
1346         * RijndaelManaged.cs: Added the RjindaelTransform class (inherited
1347         from SymmetricTransform) based the old RijndaelImpl / RijndaelController 
1348         code. Fixed encryption for block size 192, 256, there is still a problem
1349         decrypting block size 192, 256. Unrolled some loops + littl'optimizations
1350         * PKCS1MaskGenerationMethod.cs: Removed Array.Reverse in I2OSP to be
1351         compatible with MS implementation (however we are now failing the PKCS#1
1352         test vector) + added some more checks (null, overflow, ...)
1353         * AsymmetricAlgorithm.cs: Commented XMLDocument stuff to end the cyclic
1354         dependency (corlib->System.Xml->corlib)
1355         * RSA.cs: Commented FromXmlString stuff to end the cyclic dependency
1356         * DSA.cs: Commented FromXmlString stuff to end the cyclic dependency
1357         * RC2.cs: Create using CryptoConfig
1358         * TripleDES.cs: Marked class public. Added LegalKeySizes and LegalBlockSizes
1359
1360 2002-10-14  Sebastien Pouliot  <spouliot@videotron.ca>
1361
1362         * MD5.cs: Create using CryptoConfig, set HashSizeValue, removed TODO.
1363         * Rijndael.cs: Create using CryptoConfig. Removed TODO.
1364         * RSAParameters.cs: Modulus must be serialized. Removed TODO.
1365         * SHA256.cs: Create using CryptoConfig, set HashSizeValue, removed TODO.
1366         * SHA384.cs: Create using CryptoConfig, set HashSizeValue, removed TODO.
1367         * SHA512.cs: Create using CryptoConfig, set HashSizeValue, removed TODO.
1368         * FromBase64Transform.cs: Removed ToString()
1369         * ToBase64Transform.cs: Removed ToString()
1370         * SymmetricAlgorithm.cs: Create using CryptoConfig, set default Mode and 
1371         Padding, added Clear, Dispose
1372         * TripleDES.cs: New. Abstract class.
1373         * MaskGenerationMethod.cs: New. Abstract class.
1374         * PKCS1MaskGenerationMethod.cs: New. Implement PKCS#1 MGF (currently not 
1375         compatible with MS implementation - but not sure the bug is mine!).
1376
1377 2002-10-13  Sebastien Pouliot  <spouliot@videotron.ca>
1378
1379         * HashAlgorithm.cs: Added Dispose() to HashAlgorithm because it 
1380         inherits ICryptoTransform
1381         * KeyedHashAlgorithm.cs: New implementation
1382         * HMACSHA1.cs: New (include a generic HMACAlgorithm as internal class)
1383         * MACTripleDES.cs: New (missing core implementation on generic MACAlgorithm)
1384         * CryptoStream.cs: Added limited functionalities to support HMACSHA1
1385
1386 2002-10-12  Sebastien Pouliot  <spouliot@videotron.ca>
1387
1388         * DSA.cs: changed constructor to public from internal (like MS)
1389         * HashAlgorithm.cs: Completed ComputeHash methods
1390         * SHA1.cs: Added HashSizeValue = 160
1391
1392 2002-10-12  Sebastien Pouliot  <spouliot@videotron.ca>
1393
1394         * ICryptoTransform.cs: Now inherits from IDisposable
1395         * RC2CryptoServiceProvider.cs: Added Dispose() to RC2Impl because it inherits ICryptoTransform
1396         * CryptoAPITransform.cs: Added Dispose() to CryptoAPITransform... ICryptoTransform
1397         * RijndaelManaged.cs: Added Dispose() to RijndaelController...ICryptoTransform
1398         * FromBase64Transform.cs: Added Dispose() to FromBase64Transform...ICryptoTransform
1399         * ToBase64Transform.cs: Added Dispose() to ToBase64Transform...ICryptoTransform
1400         * DESCryptoServiceProvider.cs: Added Dispose() to DESTransformBase...ICryptoTransform
1401
1402 2002-10-11  Duncan Mak  <duncan@ximian.com>
1403
1404         * DESCryptoServiceProvider.cs: Removed unnecessary Dispose ().
1405
1406 2002-10-11  Sebastien Pouliot  <spouliot@videotron.ca>
1407
1408         * DES.cs: Create() using CryptoConfig, fix #30256
1409         * DESCryptoServiceProvider.cs: fix #30256
1410         * RandomNumberGenerator.cs: uncomment in Create(rng) for CryptoConfig
1411
1412 2002-10-10  Sebastien Pouliot  <spouliot@videotron.ca>
1413
1414         * AsymmetricAlgorithm.cs: Inherit from IDisposable, common support from XML import
1415         * DSA.cs: FromXmlString() keypair import, Create() using CryptoConfig
1416         * RSA.cs: FromXmlString() keypair import, Create() using CryptoConfig
1417         * DSACryptoServiceProvider.cs: Added Dispose()
1418
1419 2002-10-09  Sebastien Pouliot  <spouliot@videotron.ca>
1420
1421         * CryptoConfig.cs: New implementation
1422
1423 2002-10-05  Andrew Birkett  <andy@nobugs.org>
1424
1425         * RC2CryptoServiceProvider.cs: New implementation
1426         * RC2.cs: New implementation
1427
1428 2002-09-22  Andrew Birkett  <andy@nobugs.org>
1429
1430         * RijndaelManaged.cs: Added faster case for multiplication by 2 in GF(8)
1431         
1432 2002-09-22  Andrew Birkett  <andy@nobugs.org>
1433
1434         * RijndaelManaged.cs: BlockSize now reports size in bytes.
1435         * ICryptoTransform.cs: Updated comments - BlockSizes are in bytes, unlike elsewhere.
1436
1437 2002-09-19  Andrew Birkett  <andy@nobugs.org>
1438
1439         * Rijndael.cs: Create() now gives you a RijndaelManaged object
1440         * RijndaelManaged.cs: Added dummy GenerateKey until we have a proper RNG.
1441         * SymmetricAlgorithm.cs: Updated comments
1442
1443 2002-09-15  Andrew Birkett  <andy@nobugs.org>
1444
1445         * RijndaelManaged.cs: Added support for CBC-mode, PKCS7/Zero padding.
1446         * SymmetricAlgorithm.cs: IV size must match block size, not key size.  
1447           Key property now sets KeySizeValue correctly in bits.
1448
1449 2002-09-11  Andrew Birkett  <andy@nobugs.org>
1450
1451         * RijndaelManaged.cs: Implemented ECB-mode Rijndael cipher.
1452         * Rijndael.cs: Set valid key/block sizes.
1453         * SymmetricAlgorithm.cs: Remove throw from ctr so we can instantiate
1454           derived classes.  Fixes to key sizes so they are measured in bits.
1455         * KeySizes.cs: Updated comments to emphasize that sizes are in bits.
1456
1457 2002-06-29  Martin Baulig  <martin@gnome.org>
1458
1459         * AsymmetricAlgorithm.cs: Removed a duplicate semicolon to make it compile.
1460
1461 2002-05-19  Martin Baulig  <martin@gnome.org>
1462
1463         * FromBase64Transform.cs (TransformFinalBlock): The return value of
1464         `DoTransform' tells us the number of bytes actually written - if it's
1465         smaller than `res', copy it to a smaller array.
1466
1467 2002-02-21  Mark Crichton <crichton@gimp.org>
1468
1469         * RNGCryptoServiceProvider.cs: New file.
1470         * RandomNumberGenerator.cs: Constructor is now marked public.
1471
1472 2002-02-13  Dan Lewis <dihlewis@yahoo.co.uk>
1473
1474         * DSACryptoServiceProvider.cs, SHA384Managed.cs, SHA512Managed.cs,
1475         Rijndael.cs, RSA.cs, RSAParameters.cs : New files (stubs)
1476
1477 Mon Feb 11 13:26:17 CET 2002 Paolo Molaro <lupus@ximian.com>
1478
1479         * X509Certificates: dummy class.
1480
1481 2002-01-10  Duco Fijma <duco@lorentz.xs4all.nl>
1482         * Create (trivial) implementation of RandomNumberGenerator
1483
1484 2002-01-05  Ravi Pratap  <ravi@ximian.com>
1485
1486         * CryptoAPITransform.cs, DESCryptoProvider.cs : MonoTODO attribute
1487         decoration.
1488
1489         * HashAlgorithm.cs, MD5.cs, SHA1.cs, SHA256.cs, SHA384.cs : Ditto.
1490
1491         * SHA512.cs, SymmetricAlgorithm.cs, ToBase64Transform.cs, 
1492         AsymmetricAlgorithm.cs, CryptoStream.cs, DSA.cs, DSASignatureDeformatter.cs,
1493         DSASignatureFormatter.cs, SignatureDescription.cs : Ditto.
1494         
1495 Wed Nov 14 17:04:30 CET 2001 Paolo Molaro <lupus@ximian.com>
1496
1497         * MD5CryptoServiceProvider.cs, SHA1CryptoServiceProvider.cs,
1498         SHA256Managed.cs: CLSCompliant updates.
1499
1500 2001-10-11  Thomas Neidhart <tome@sbox.tugraz.at>
1501
1502         * CryptoAPITransform.cs: Initial version
1503         * CryptoStream.cs: Initial version
1504         * CspParameter.cs: Initial version
1505         * CspProviderFlags.cs: Initial version
1506         * DSA.cs: Initial version
1507         * DSAParameters.cs: Initial version
1508         * DSASignatureDeformatter.cs: Initial version
1509         * DSASignatureFormatter.cs: Initial version
1510         * DeriveBytes.cs: Initial version
1511
1512 2001-10-06  Thomas Neidhart <tome@sbox.tugraz.at>
1513
1514     * AsymmetricAlgorithm.cs: Inital version
1515         * AsymmetricKeyExchangeDeformatter.cs: Initial version
1516         * AsymmetricKeyExchangeFormatter.cs: Initial version
1517         * AsymmetricSignatureDeformatter.cs: Initial version
1518         * AsymmetricSignatureFormatter.cs: Initial version
1519         * PaddingMode.cs: Added PaddingMode.None
1520         * SignatureDescription.cs: Initial version
1521     * CryptographicException.cs: Initial version
1522         * CryptographicUnknownOperationException.cs: Initial version
1523         * SymmetricAlgorithm.cs: Implemented CreateDecryptor, CreateEncryptor
1524           and Create() methods.
1525         
1526 2001-08-20  Sergey Chaban <serge@wildwestsoftware.com>
1527
1528         * DES.cs encryption core is about 30% faster than previous version.
1529         * DESCryptoServiceProvider.cs added PKCS-5 padding.
1530
1531 2001-08-09  Sergey Chaban <serge@wildwestsoftware.com>
1532
1533         * ToBase64Transform.cs: Base64Table now supports both encoding
1534           and decoding tables. As a result Table was renamed to EncodeTable
1535           and DecodeTable was added.
1536         * FromBase64Transform.cs: Initial check-in.
1537         * DES.cs: Initial check-in.
1538         * DESCryptoServiceProvider.cs: Initial check-in.
1539
1540 2001-08-01  Matthew S. Ford  <Matthew.S.Ford@Rose-Hulman.Edu>
1541
1542         * CipherMode.cs: Initial version.
1543         * CryptoStreamMode.cs: Initial version.
1544         * HashAlgorithm.cs: Initial version.
1545         * ICryptoTransform.cs: Initial version.
1546         * KeySizes.cs: Initial version.
1547         * MD5.cs: Initial version.
1548         * MD5CryptoServiceProvider.cs: Initial version.
1549         * PaddingMode.cs: Initial version.
1550         * SHA1.cs: Initial version.
1551         * SHA1CryptoServiceProvider.cs: Initial version.
1552         * SHA256.cs: Initial version.
1553         * SHA256Managed.cs: Initial version.
1554         * SHA384.cs: Initial version.
1555         * SHA512.cs: Initial version.