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