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