2003-07-31 Sebastien Pouliot <spouliot@videotron.ca>
[mono.git] / mcs / class / corlib / System.Security.Cryptography / ChangeLog
1 2003-07-31  Sebastien Pouliot  <spouliot@videotron.ca>
2
3         * CryptoStream.cs: Closing bug #46143. The Read method was re-written.
4
5 2003-07-30  Sebastien Pouliot  <spouliot@videotron.ca>
6
7         * CryptoStream.cs: Fixed bug #46143 (exception) - however we dont 
8         returns the same result as MS. Class needs to be re-written.
9
10 2003-07-09  Lluis Sanchez Gual  <lluis@ximian.com>
11
12         * SymmetricAlgorithm.cs: Fixed FinalEncrypt. Return empty array if inputCount is 0.
13
14 2003-07-05  Sebastien Pouliot  <spouliot@videotron.ca>
15
16         * AsymmetricAlgorithm.cs: Removed AsymmetricParameters (IReader) class. 
17         Now uses the new Mono.Xml.SecurityParser (xml -> SecurityElement)
18         * CryptoConfig.cs: Removed CorlibHandler and CorlibReader classes. Now 
19         uses the new Mono.Xml.SecurityParser (xml -> SecurityElement)
20         * DSA.cs: Removed DSAHandler (IHandler) class. Now uses the new 
21         Mono.Xml.SecurityParser (xml -> SecurityElement)
22         * DSACryptoServiceProvider.cs: Added ObjectDisposedException support
23         and fixed bugs found in new unit tests.
24         * RSA.cs: Removed DSAHandler (IHandler) class. Now uses the new 
25         Mono.Xml.SecurityParser (xml -> SecurityElement)
26         * RSACryptoServiceProvider.cs: Added ObjectDisposedException support
27         and fixed bugs found in new unit tests.
28
29 2003-06-22  Sebastien Pouliot <spouliot@motus.com>
30
31         * DSACryptoServiceProvider.cs: Added UseMachineKeyStore property (1.1).
32         * RSACryptoServiceProvider.cs: Added UseMachineKeyStore property (1.1).
33
34 2003-06-11  Sebastien Pouliot <spouliot@motus.com>
35
36         * DSACryptoServiceProvider.cs: Refactored from orginal by splitting 
37         much core functionalities into DSAManaged. 
38         * RSACryptoServiceProvider.cs: Refactored from orginal by splitting 
39         much core functionalities into RSAManaged. 
40         * RSAPKCS1SignatureDeformatter.cs: Updated to use the new PKCS#1 API.
41         Now works with any hash algorithm (which OID is defined in machine.config)
42         * RSAPKCS1SignatureFormatter.cs: Updated to use the new PKCS#1 API.
43         Now works with any hash algorithm (which OID is defined in machine.config)
44
45 2003-06-09  Sebastien Pouliot <spouliot@motus.com>
46
47         * CryptoConfig.cs: Now support OID in machine.config.
48         * DSACryptoServiceProvider.cs: Changed USE_VERSION_1_0 for NET_1_0.
49         * KeySizes.cs: Changed USE_VERSION_1_0 for NET_1_0.
50         * MD5CryptoServiceProvider.cs: Changed USE_VERSION_1_0 for NET_1_0.
51         * RNGCryptoServiceProvider.cs: Changed USE_VERSION_1_0 for NET_1_0.
52
53 2003-05-12  Sebastien Pouliot  <spouliot@videotron.ca>
54
55         * PKCS1MaskGenerationMethod.cs: Added comment to justify why
56         the class is no more compatible with MS implementation (the bug
57         was preventing OAEP to work properly).
58
59 2003-05-09  Sebastien Pouliot  <spouliot@videotron.ca>
60
61         * DSACryptoServiceProvider.cs: Class is now sealed in v.1.1.
62         * KeySizes.cs: Class is now sealed in v.1.1.
63         * MD5CryptoServiceProvider.cs: Class is now sealed in v.1.1.
64         * RNGCryptoServiceProvider.cs: Class is now sealed in v.1.1.
65
66 2003-04-22  Sebastien Pouliot  <spouliot@videotron.ca>
67
68         * DSACryptoServiceProvider.cs: Changed key generation to use the
69         new BigInteger class (commited for Ben Maurer).
70         * RSACryptoServiceProvider.cs: Changed key generation to use the
71         new BigInteger class (commited for Ben Maurer).
72
73 2003-04-06  Sebastien Pouliot  <spouliot@videotron.ca>
74
75         * AsymmetricAlgorithm.cs: Moved IsLegalKeySize to KeySizes.cs.
76         * DSACryptoServiceProvider.cs: Fix bug where key generation always
77         resulted in 1024 bits keypair.
78         * KeySizes.cs: Added internal IsLegalKeySize and IsLegal to avoid
79         duplication in both AsymmetricAlgorithm and SymmetricAlgorithm.
80         * RC2.cs: Modified to use IsLegalKeySize from KeySizes.cs.
81         * RSACryptoServiceProvider.cs: Fix bug where key generation always
82         resulted in 1024 bits keypair. Should fix unit test failure under
83         Linux.
84         * SymmetricAlgorithm.cs: Moved IsLegalKeySize to KeySizes.cs.
85
86 2003-04-06  Sebastien Pouliot  <spouliot@videotron.ca>
87
88         * CryptoStream.cs: Partial fix for bug #40689 (workaround). Does not 
89         throw a NotSupportedException on closing a CryptoStream in read mode
90         (like MS does but unlike MS documents).
91
92 2003-03-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
93
94         * CryptoStream.cs: fixed the previous fix. MS throws a NotSupportedExc
95         when FlushFinalBlock is called twice. I've moved a few lines from Close
96         to FlushFinalBlock and added the exception check.
97
98 2003-03-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
99
100         * CryptoStream.cs: don't Close the underlying stream in FlushFinalBlock.
101         Fixes bug #40394.
102
103 2003-03-03  Sebastien Pouliot  <spouliot@videotron.ca>
104
105         * RSACryptoServiceProvider.cs: Delay keypair generation event when 
106         keysize is a constructor parameter (major speed improvment when
107         importing keys). Removed NotSupportedException when CspParameter is
108         used in constructor (required for forthcoming security tools).
109
110 2003-02-08  Sebastien Pouliot  <spouliot@videotron.ca>
111
112         * Changes to refer Mono.Math and Mono.Security.Cryptography
113         * Changes to refer Mono.Xml
114
115 2003-02-04  Sebastien Pouliot  <spouliot@videotron.ca>
116
117         * CryptoConfig.cs: Added initital support for "machine.config" 
118         (limited to algorithms, not OIDs). Modified CreateFromName to use
119         the fully qualified class names (and removed xmldsig hack). Added
120         algorithm names documented in book ".NET Framework Security".
121
122 2003-02-03  Sebastien Pouliot  <spouliot@videotron.ca>
123
124         * PasswordDeriveBytes.cs: Finally got the derivation right. The
125         class can now derive keys up to 1000 * HashSize (same limit as MS).
126         * RSAPKCS1SignatureDeformatter.cs: No need to create the hash object
127         in this class - the OID is enough.
128
129 2003-02-01  Sebastien Pouliot  <spouliot@videotron.ca>
130
131         * AsymmetricSignatureFormatter.cs: Call abstract SetHashAlgorithm
132         when CreateSignature(hash) is called.
133         * CryptoStream.cs: Fixed some issues in constructor.
134         * DSACryptoServiceProvider.cs: Fixed a bug (1 chance in 256) that
135         a signature could be less than 40 bytes (which is invalid).
136
137 2003-01-25  Sebastien Pouliot  <spouliot@videotron.ca>
138
139         * CryptographicException.cs: Default HResult to CORSEC_E_CRYPTO
140         (0x80131430) as documented.
141         * CryptographicUnexpectedOperationException.cs: Default HResult
142         to CORSEC_E_CRYPTO_UNEX_OPER (0x80131431) as documented.
143
144 2003-01-20  Sebastien Pouliot  <spouliot@videotron.ca>
145
146         * CipherMode.cs: Added missing [Serializable] to enum.
147         * CspProviderFlags.cs: Added missing [Serializable] to enum.
148         * FromBase64Transform.cs: Added missing [Serializable] to enum.
149         * PaddingMode.cs: Added missing [Serializable] to enum.
150
151 2003-01-19  Sebastien Pouliot  <spouliot@videotron.ca>
152
153         * CryptoTools.cs: Added internal class BlockProcessor to help
154         implementation of block-based algorithms (like MAC and HMAC).
155         * HMACSHA1.cs: Refactored to remove dependencies on CryptoStream,
156         better constructors and Dispose support.
157         * MACTripleDES.cs: Refactored to reuse new HMACSHA1 stuff, better
158         constructors.
159
160 2003-01-18  Sebastien Pouliot  <spouliot@videotron.ca>
161
162         * HMACSHA1.cs: Now use KeyBuilder to build the default key.
163
164 2003-01-12  Sebastien Pouliot  <spouliot@videotron.ca>
165
166         * MACTripleDES.cs: Now working (the problem was with my stream usage
167         which was removed for performance reason).
168         * TripleDES.cs: Fixed key generation (wasn't called and returned
169         null).
170
171 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
172
173         * RNGCryptoServiceProvider.cs: Changed methods interacting with 
174         the runtime as Internal<MethodName>. This will allow to make the
175         class Windows-compatible by doing a switch at runtime.
176
177 2003-01-05  Sebastien Pouliot  <spouliot@videotron.ca>
178
179         * CryptoAPITransform.cs: Removed all TODO. This class will not be
180         used by Mono. MS uses it with <algo>CryptoServiceProvider classes 
181         to provide a common ICryptoTransform access to CryptoAPI. 
182
183 2003-01-03  Sebastien Pouliot  <spouliot@videotron.ca>
184
185         * RC2CryptoServiceProvider.cs: Now about 2 time faster by inlining 
186         methods and changing to UInt16 (instead of UInt32). 
187
188 2003-01-02  Sebastien Pouliot  <spouliot@videotron.ca>
189
190         * RijndaelManaged.cs: Now 7 (encrypt) to 10 (decrypt) times faster 
191         by removing allocation inside intensively called methods, using pre-
192         calculated tables instead of Mult_GF methods and inlining most methods.
193
194 2002-12-31  Sebastien Pouliot  <spouliot@videotron.ca>
195
196         * AsymmetricAlgorithm.cs: Removed ValidKeySize (method only present
197         in SymmetricAlgorithm).
198         * DSA.cs: Change ZeroizePrivateKey from protected to internal.
199         * DSACryptoServiceProvider.cs: Added some case where we need to check 
200         for keypairGenerated.
201         * RSA.cs: Change ZeroizePrivateKey from protected to internal.
202         * RSACryptoServiceProvider.cs: Key were never generated with the default
203         (no parameter) constructor. Now checks for keypairGenerated in methods.
204         * SignatureDescription.cs: Added CreateDeformatter in RSAPKCS1SHA1-
205         SignatureDescription to please corcompare (it just call it's ancestor).
206
207 2002-12-30  Sebastien Pouliot  <spouliot@videotron.ca>
208
209         * CryptoStream.cs: Implemented core. Not sure about many details - 
210         but it run the samples now (#30256).
211         * CryptoStreamMode.cs: Added [Serializable] to enum declaration.
212         * SymmetricAlgorithm.cs: Made some changes required for CryptoStream 
213         and to match more closely MS implementation. Also added little
214         optimizations in TransformBlock.
215
216 2002-12-27  Sebastien Pouliot  <spouliot@videotron.ca>
217
218         * CryptoTools.cs: New. Shared classes for cryptography. Now
219         includes a KeyBuilder to generate symmetric keys and IV.
220         * DES.cs: Modified Key validation.
221         * DESCryptoServiceProvider.cs: Implemented Key and IV using
222         KeyBuilder.
223         * RC2CryptoServiceProvider.cs: Implemented Key and IV using
224         KeyBuilder (and removed TODO).
225         * RijndaelManaged.cs: Implemented Key and IV using KeyBuilder 
226         (and removed TODO).
227         * SHA384Managed.cs: Changed code to remove compiler warning.
228         * SHA512Managed.cs: Changed code to remove compiler warning.
229         * SymmetricAlgorithm.cs: Removed TODO on IV.
230         * TripleDESCryptoServiceProvider.cs: Implemented Key and IV
231         using KeyBuilder (and removed TODO).
232
233 2002-11-20  Sebastien Pouliot  <spouliot@videotron.ca>
234
235         * AsymmetricSignatureDeformatter.cs: Added exception handling in
236         VerifySignature (moved from RSAPKCS1SignatureDeformatter).
237         * AsymmetricSignatureFormatter.cs: Added exception handling in
238         CreateSignature (moved from RSAPKCS1SignatureFormatter).
239         * CryptoAPITransform.cs: Removed "= false" assignation from a private
240         member (because this created an unwanted "ghost" constructor) and 
241         modified Dispose declaration.
242         * HashAlgorithm.cs: Removed destructor. Disposing unmanaged 
243         ressources is the responsability of each class (not an abstract class).
244         * RSAPKCS1SignatureDeformatter.cs: Removed a VerifySignature method
245         which was present in the base class AsymmetricSignatureDeformatter.
246         * RSAPKCS1SignatureFormatter.cs: Removed a CreateSignature method
247         which was present in the base class AsymmetricSignatureFormatter.
248         * SHA1Managed.cs: Removed sealed from class declaration. Removed 
249         destructor and Dispose method as class is fully managed.
250         * ToBase64Transform.cs: Added virtual to property CanReuseTransform.
251
252 2002-11-17  Sebastien Pouliot  <spouliot@videotron.ca>
253
254         * CryptoConfig.cs: Added full classes name for MapNameToOID.
255         * PKCS1.cs: New. Internal class for the various primitives defined
256         in PKCS#1 v.2.1.
257         * PKCS1MaskGenerationFunction.cs: Modified to use PKCS1.cs.
258         * RSA.cs: Added internal class RSAHandler (which implements IHandler
259         interface for MiniParser) to import RSA keypairs from XML strings.
260         * RSACryptoServiceProvider.cs: Crypto implemented using BigInteger. 
261         Key generation is VERY LONG.
262         * RSAOAEPKeyExchangeDeformatter.cs: Completed using PKCS1. Not sure 
263         of the results as this is not available in all versions of Windows.
264         * RSAOAEPKeyExchangeFormatter.cs: Completed using PKCS1. Not sure 
265         of the results as this is not available in all versions of Windows.
266         * RSAPKCS1KeyExchangeDeformatter.cs: Completed using PKCS1.
267         * RSAPKCS1KeyExchangeFormatter.cs: Completed using PKCS1.
268         * RSAPKCS1SignatureDeformatter.cs: Completed using PKCS1.
269         * RSAPKCS1SignatureFormatter.cs: Completed using PKCS1.
270
271 2002-11-17  Sebastien Pouliot  <spouliot@videotron.ca>
272
273         * MiniParser.cs: Added explicit cast in order to compile with mcs.
274
275 2002-11-16  Sebastien Pouliot  <spouliot@videotron.ca>
276
277         * AsymmetricAlgorithm.cs: Added internal class AsymmetricParameters
278         (which implements the IReader interface for MiniParser). Corrected
279         Dispose declaration.
280         * BigInteger.cs: New. Internal class for handling BIG integers for 
281         asymmetric crypto (both RSA and DSA). Thanks to Chew Keong TAN !
282         * CryptoConfig.cs: Added XMLDSIG URLs in CreateFromName.
283         Will dynamically load System.Security.dll, when required,
284         to return instance of those classes. Also CryptoConfig can now
285         create any object (e.g. System.IO.MemoryStream) !
286         * DSA.cs: Added internal class DSAHandler (which implements IHandler
287         interface for MiniParser) to import DSA keypairs from XML strings.
288         * DSACryptoServiceProvider.cs: Crypto fully implemented using 
289         BigInteger. Key generation (group) is VERY long.
290         * MiniParser.cs: New. Minimal XML parser by Sergey Chaban. Used to 
291         import keypairs in XML strings.
292         * SignatureDescription.cs: Removed local CreateFromName (to use
293         CryptoConfig - which actually can create anything). Added internal
294         classes DSASignatureDescription and RSAPKCS1SHA1SignatureDescription.
295
296 2002-11-15  Sebastien Pouliot  <spouliot@videotron.ca>
297
298         * CryptographicUnexpectedOperationException.cs: Forgot it last time!
299         * FromBase64Transform.cs: Added missing virtual to CanReuseTransform.
300         Changed Dispose().
301         * HashAlgorithm.cs: Changed Dispose().
302         * MD5CryptoServiceProvider.cs: Added destructor and Dipose(bool).
303         * PasswordDeriveBytes.cs: Changed some declaration from
304         protected to private.
305         * RC2.cs: Added valid keysize check in EffectiveKeySize.
306         * RC2CryptoServiceProvider.cs: Overriden EffectiveKeySize to match
307         corlib declarations.
308         * RSAOAEPKeyExchangeDeformatter.cs: Changed some declaration from
309         protected to private.
310         * RSAOAEPKeyExchangeFormatter.cs: Changed some declaration from
311         protected to private.
312         * RSAPKCS1KeyExchangeDeformatter.cs: Changed some declaration from
313         protected to private.
314         * RSAPKCS1KeyExchangeFormatter.cs: Changed some declaration from
315         protected to private.
316         * RSAPKCS1SignatureDeformatter.cs: Changed some declaration from
317         protected to private.
318         * RSAPKCS1SignatureFormatter.cs: Changed some declaration from
319         protected to private.
320         * SHA1CryptoServiceProvider.cs: Moved SHA1 code to SHA1Internal.
321         SHA1CryptoServiceProvider now use SHA1Internal. Added Dispose and
322         destructor.
323         * SHA1Managed.cs: New. Use SHA1Internal. Same as 
324         SHA1CryptoServiceProvider but is required for binary compatibility.
325         * SHA256Managed.cs: Changed some declaration from protected to private.
326         * SHA384Managed.cs: Changed some declaration from protected to private.
327         * SHA512Managed.cs: Changed some declaration from protected to private.
328         * SymmetricAlgorithm.cs: Added Clear(), changed Dispose() and added
329         virtual to Dispose(bool).
330         * ToBase64Transform.cs: Added missing virtual to CanReuseTransform.
331         Changed Dispose().
332         * TripleDESCryptoServiceProvider.cs: Added missing sealed to class
333         declaration.
334
335 2002-11-03  Sebastien Pouliot  <spouliot@videotron.ca>
336
337         * CryptoAPITransform.cs: Added missing CanReuseTransform property,
338         Clear method, destructor and IDisposable support.
339         * CryptographicException.cs: Added missing protected constructor.
340         * CryptographicUnexpectedOperationException.cs: Added missing 
341         protected constructor.
342         * ICryptoTransform.cs: Added missing CanReuseTransform property.
343         * FromBase64Transform.cs: Added missing CanReuseTransform property,
344         Clear method, destructor and IDisposable support.
345         * SymmetricAlgorithm.cs: Implement IDisposable.
346         * ToBase64Transform.cs: Added missing CanReuseTransform property,
347         Clear method, destructor and IDisposable support.
348
349 2002-11-02  Sebastien Pouliot  <spouliot@videotron.ca>
350
351         * SignatureDescription.cs: Updated class to match unit test results
352         * X509Certificate.cs: REMOVED! Wrong namespace. An almost complete
353         implementation is now in System.Security.Cryptography.X509Certificates
354
355 2002-11-01  Sebastien Pouliot  <spouliot@videotron.ca>
356
357         * bouncycastle.txt: Bouncy Castle JCE License.
358         * SHA384Managed.cs: Hash implementation based on BouncyCastle JCE.
359         * SHA512Managed.cs: Hash implementation based on BouncyCastle JCE.
360
361 2002-10-30  Sebastien Pouliot  <spouliot@videotron.ca>
362
363         * DSASignatureDeformatter.cs: Fully implemented - however it 
364         requires a functionnal DSA implementation to work.
365         * DSASignatureFormatter.cs: Fully implemented - however it 
366         requires a functionnal DSA implementation to work.
367
368 2002-10-25  Sebastien Pouliot  <spouliot@videotron.ca>
369
370         * PasswordDeriveBytes.cs: New. PKCS#5 key derivation (PBKDF1) works up to
371         HashSize length (but MS support longer keys)
372
373 2002-10-24  Sebastien Pouliot  <spouliot@videotron.ca>
374
375         * RSACryptoServiceProvider.cs: New. Implemented most logic expect crypto 
376         * RSAOAEPKeyExchangeDeformatter.cs: New. Stub.
377         * RSAOAEPKeyExchangeFormatter.cs: New. Stub.
378         * RSAPKCS1KeyExchangeDeformatter.cs: New. Stub.
379         * RSAPKCS1KeyExchangeFormatter.cs: New. 98% implemented but still
380         require RSA.DecryptValue (not supported in MS .NET Framework)
381         * RSAPKCS1SignatureDeformatter.cs: New. Stub.
382         * RSAPKCS1SignatureFormatter.cs: New. Stub.
383
384 2002-10-23  Sebastien Pouliot  <spouliot@videotron.ca>
385
386         * SymmetricAlgorithm.cs: Fixed CFB mode (do encryption while decrypting!)
387         * TripleDESCryptoServiceProvider.cs: Ajusted for CFB.
388
389 2002-10-22  Sebastien Pouliot  <spouliot@videotron.ca>
390
391         * RjindaelManaged.cs: Fixed decryption for 192 and 256 bit block size
392
393 2002-10-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
394
395         * RC2CryptoServiceProvider.cs: fixed end of lines (changed from \r
396         to \n).
397
398 2002-10-20  Sebastien Pouliot  <spouliot@videotron.ca>
399
400         * SymmetricAlgorithm.cs: Added better Dispose support
401         * DES.cs: Now only contains the abstract DES class.
402         * DESCryptoServiceProvider.cs: Added the DESTransform class (inherited
403         from SymmetricTransform) based the old DESCore and DESTransformBase code
404         * RC2.cs: Fixed EffectiveKeySize == 0
405         * RC2CryptoServiceProvider.cs: Added the RC2Transform class (inherited
406         from SymmetricTransform) based on the old RC2lImpl code. Unrolled some loops.
407         * RjindaelManaged.cs: Few more optimizations while looking for decrypting bug
408         * TripleDESCryptoServiceProvider.cs: New. Implement TripleDESTransform from 
409         DESTransform (non-optimal but working :-).
410
411 2002-10-19  Sebastien Pouliot  <spouliot@videotron.ca>
412
413         * SymmetricAlgorithm.cs: Added new class SymmetricTransform to avoid
414         duplicating CipherMode (currently ECB, CBC) and PaddingMode functionalities
415         in every crytographic algorithm implementation.
416         * RijndaelManaged.cs: Added the RjindaelTransform class (inherited
417         from SymmetricTransform) based the old RijndaelImpl / RijndaelController 
418         code. Fixed encryption for block size 192, 256, there is still a problem
419         decrypting block size 192, 256. Unrolled some loops + littl'optimizations
420         * PKCS1MaskGenerationMethod.cs: Removed Array.Reverse in I2OSP to be
421         compatible with MS implementation (however we are now failing the PKCS#1
422         test vector) + added some more checks (null, overflow, ...)
423         * AsymmetricAlgorithm.cs: Commented XMLDocument stuff to end the cyclic
424         dependency (corlib->System.Xml->corlib)
425         * RSA.cs: Commented FromXmlString stuff to end the cyclic dependency
426         * DSA.cs: Commented FromXmlString stuff to end the cyclic dependency
427         * RC2.cs: Create using CryptoConfig
428         * TripleDES.cs: Marked class public. Added LegalKeySizes and LegalBlockSizes
429
430 2002-10-14  Sebastien Pouliot  <spouliot@videotron.ca>
431
432         * MD5.cs: Create using CryptoConfig, set HashSizeValue, removed TODO.
433         * Rijndael.cs: Create using CryptoConfig. Removed TODO.
434         * RSAParameters.cs: Modulus must be serialized. Removed TODO.
435         * SHA256.cs: Create using CryptoConfig, set HashSizeValue, removed TODO.
436         * SHA384.cs: Create using CryptoConfig, set HashSizeValue, removed TODO.
437         * SHA512.cs: Create using CryptoConfig, set HashSizeValue, removed TODO.
438         * FromBase64Transform.cs: Removed ToString()
439         * ToBase64Transform.cs: Removed ToString()
440         * SymmetricAlgorithm.cs: Create using CryptoConfig, set default Mode and 
441         Padding, added Clear, Dispose
442         * TripleDES.cs: New. Abstract class.
443         * MaskGenerationMethod.cs: New. Abstract class.
444         * PKCS1MaskGenerationMethod.cs: New. Implement PKCS#1 MGF (currently not 
445         compatible with MS implementation - but not sure the bug is mine!).
446
447 2002-10-13  Sebastien Pouliot  <spouliot@videotron.ca>
448
449         * HashAlgorithm.cs: Added Dispose() to HashAlgorithm because it 
450         inherits ICryptoTransform
451         * KeyedHashAlgorithm.cs: New implementation
452         * HMACSHA1.cs: New (include a generic HMACAlgorithm as internal class)
453         * MACTripleDES.cs: New (missing core implementation on generic MACAlgorithm)
454         * CryptoStream.cs: Added limited functionalities to support HMACSHA1
455
456 2002-10-12  Sebastien Pouliot  <spouliot@videotron.ca>
457
458         * DSA.cs: changed constructor to public from internal (like MS)
459         * HashAlgorithm.cs: Completed ComputeHash methods
460         * SHA1.cs: Added HashSizeValue = 160
461
462 2002-10-12  Sebastien Pouliot  <spouliot@videotron.ca>
463
464         * ICryptoTransform.cs: Now inherits from IDisposable
465         * RC2CryptoServiceProvider.cs: Added Dispose() to RC2Impl because it inherits ICryptoTransform
466         * CryptoAPITransform.cs: Added Dispose() to CryptoAPITransform... ICryptoTransform
467         * RijndaelManaged.cs: Added Dispose() to RijndaelController...ICryptoTransform
468         * FromBase64Transform.cs: Added Dispose() to FromBase64Transform...ICryptoTransform
469         * ToBase64Transform.cs: Added Dispose() to ToBase64Transform...ICryptoTransform
470         * DESCryptoServiceProvider.cs: Added Dispose() to DESTransformBase...ICryptoTransform
471
472 2002-10-11  Duncan Mak  <duncan@ximian.com>
473
474         * DESCryptoServiceProvider.cs: Removed unnecessary Dispose ().
475
476 2002-10-11  Sebastien Pouliot  <spouliot@videotron.ca>
477
478         * DES.cs: Create() using CryptoConfig, fix #30256
479         * DESCryptoServiceProvider.cs: fix #30256
480         * RandomNumberGenerator.cs: uncomment in Create(rng) for CryptoConfig
481
482 2002-10-10  Sebastien Pouliot  <spouliot@videotron.ca>
483
484         * AsymmetricAlgorithm.cs: Inherit from IDisposable, common support from XML import
485         * DSA.cs: FromXmlString() keypair import, Create() using CryptoConfig
486         * RSA.cs: FromXmlString() keypair import, Create() using CryptoConfig
487         * DSACryptoServiceProvider.cs: Added Dispose()
488
489 2002-10-09  Sebastien Pouliot  <spouliot@videotron.ca>
490
491         * CryptoConfig.cs: New implementation
492
493 2002-10-05  Andrew Birkett  <andy@nobugs.org>
494
495         * RC2CryptoServiceProvider.cs: New implementation
496         * RC2.cs: New implementation
497
498 2002-09-22  Andrew Birkett  <andy@nobugs.org>
499
500         * RijndaelManaged.cs: Added faster case for multiplication by 2 in GF(8)
501         
502 2002-09-22  Andrew Birkett  <andy@nobugs.org>
503
504         * RijndaelManaged.cs: BlockSize now reports size in bytes.
505         * ICryptoTransform.cs: Updated comments - BlockSizes are in bytes, unlike elsewhere.
506
507 2002-09-19  Andrew Birkett  <andy@nobugs.org>
508
509         * Rijndael.cs: Create() now gives you a RijndaelManaged object
510         * RijndaelManaged.cs: Added dummy GenerateKey until we have a proper RNG.
511         * SymmetricAlgorithm.cs: Updated comments
512
513 2002-09-15  Andrew Birkett  <andy@nobugs.org>
514
515         * RijndaelManaged.cs: Added support for CBC-mode, PKCS7/Zero padding.
516         * SymmetricAlgorithm.cs: IV size must match block size, not key size.  
517           Key property now sets KeySizeValue correctly in bits.
518
519 2002-09-11  Andrew Birkett  <andy@nobugs.org>
520
521         * RijndaelManaged.cs: Implemented ECB-mode Rijndael cipher.
522         * Rijndael.cs: Set valid key/block sizes.
523         * SymmetricAlgorithm.cs: Remove throw from ctr so we can instantiate
524           derived classes.  Fixes to key sizes so they are measured in bits.
525         * KeySizes.cs: Updated comments to emphasize that sizes are in bits.
526
527 2002-06-29  Martin Baulig  <martin@gnome.org>
528
529         * AsymmetricAlgorithm.cs: Removed a duplicate semicolon to make it compile.
530
531 2002-05-19  Martin Baulig  <martin@gnome.org>
532
533         * FromBase64Transform.cs (TransformFinalBlock): The return value of
534         `DoTransform' tells us the number of bytes actually written - if it's
535         smaller than `res', copy it to a smaller array.
536
537 2002-02-21  Mark Crichton <crichton@gimp.org>
538
539         * RNGCryptoServiceProvider.cs: New file.
540         * RandomNumberGenerator.cs: Constructor is now marked public.
541
542 2002-02-13  Dan Lewis <dihlewis@yahoo.co.uk>
543
544         * DSACryptoServiceProvider.cs, SHA384Managed.cs, SHA512Managed.cs,
545         Rijndael.cs, RSA.cs, RSAParameters.cs : New files (stubs)
546
547 Mon Feb 11 13:26:17 CET 2002 Paolo Molaro <lupus@ximian.com>
548
549         * X509Certificates: dummy class.
550
551 2002-01-10  Duco Fijma <duco@lorentz.xs4all.nl>
552         * Create (trivial) implementation of RandomNumberGenerator
553
554 2002-01-05  Ravi Pratap  <ravi@ximian.com>
555
556         * CryptoAPITransform.cs, DESCryptoProvider.cs : MonoTODO attribute
557         decoration.
558
559         * HashAlgorithm.cs, MD5.cs, SHA1.cs, SHA256.cs, SHA384.cs : Ditto.
560
561         * SHA512.cs, SymmetricAlgorithm.cs, ToBase64Transform.cs, 
562         AsymmetricAlgorithm.cs, CryptoStream.cs, DSA.cs, DSASignatureDeformatter.cs,
563         DSASignatureFormatter.cs, SignatureDescription.cs : Ditto.
564         
565 Wed Nov 14 17:04:30 CET 2001 Paolo Molaro <lupus@ximian.com>
566
567         * MD5CryptoServiceProvider.cs, SHA1CryptoServiceProvider.cs,
568         SHA256Managed.cs: CLSCompliant updates.
569
570 2001-10-11  Thomas Neidhart <tome@sbox.tugraz.at>
571
572         * CryptoAPITransform.cs: Initial version
573         * CryptoStream.cs: Initial version
574         * CspParameter.cs: Initial version
575         * CspProviderFlags.cs: Initial version
576         * DSA.cs: Initial version
577         * DSAParameters.cs: Initial version
578         * DSASignatureDeformatter.cs: Initial version
579         * DSASignatureFormatter.cs: Initial version
580         * DeriveBytes.cs: Initial version
581
582 2001-10-06  Thomas Neidhart <tome@sbox.tugraz.at>
583
584     * AsymmetricAlgorithm.cs: Inital version
585         * AsymmetricKeyExchangeDeformatter.cs: Initial version
586         * AsymmetricKeyExchangeFormatter.cs: Initial version
587         * AsymmetricSignatureDeformatter.cs: Initial version
588         * AsymmetricSignatureFormatter.cs: Initial version
589         * PaddingMode.cs: Added PaddingMode.None
590         * SignatureDescription.cs: Initial version
591     * CryptographicException.cs: Initial version
592         * CryptographicUnknownOperationException.cs: Initial version
593         * SymmetricAlgorithm.cs: Implemented CreateDecryptor, CreateEncryptor
594           and Create() methods.
595         
596 2001-08-20  Sergey Chaban <serge@wildwestsoftware.com>
597
598         * DES.cs encryption core is about 30% faster than previous version.
599         * DESCryptoServiceProvider.cs added PKCS-5 padding.
600
601 2001-08-09  Sergey Chaban <serge@wildwestsoftware.com>
602
603         * ToBase64Transform.cs: Base64Table now supports both encoding
604           and decoding tables. As a result Table was renamed to EncodeTable
605           and DecodeTable was added.
606         * FromBase64Transform.cs: Initial check-in.
607         * DES.cs: Initial check-in.
608         * DESCryptoServiceProvider.cs: Initial check-in.
609
610 2001-08-01  Matthew S. Ford  <Matthew.S.Ford@Rose-Hulman.Edu>
611
612         * CipherMode.cs: Initial version.
613         * CryptoStreamMode.cs: Initial version.
614         * HashAlgorithm.cs: Initial version.
615         * ICryptoTransform.cs: Initial version.
616         * KeySizes.cs: Initial version.
617         * MD5.cs: Initial version.
618         * MD5CryptoServiceProvider.cs: Initial version.
619         * PaddingMode.cs: Initial version.
620         * SHA1.cs: Initial version.
621         * SHA1CryptoServiceProvider.cs: Initial version.
622         * SHA256.cs: Initial version.
623         * SHA256Managed.cs: Initial version.
624         * SHA384.cs: Initial version.
625         * SHA512.cs: Initial version.
626