+2003-02-08 Sebastien Pouliot <spouliot@videotron.ca>
+ * Changes to refer Mono.Math and Mono.Security.Cryptography
+
+2003-02-04 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * CryptoConfig.cs: Added initital support for "machine.config"
+ (limited to algorithms, not OIDs). Modified CreateFromName to use
+ the fully qualified class names (and removed xmldsig hack). Added
+ algorithm names documented in book ".NET Framework Security".
+
+2003-02-03 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * PasswordDeriveBytes.cs: Finally got the derivation right. The
+ class can now derive keys up to 1000 * HashSize (same limit as MS).
+ * RSAPKCS1SignatureDeformatter.cs: No need to create the hash object
+ in this class - the OID is enough.
+
+2003-02-01 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * AsymmetricSignatureFormatter.cs: Call abstract SetHashAlgorithm
+ when CreateSignature(hash) is called.
+ * CryptoStream.cs: Fixed some issues in constructor.
+ * DSACryptoServiceProvider.cs: Fixed a bug (1 chance in 256) that
+ a signature could be less than 40 bytes (which is invalid).
+
+2003-01-25 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * CryptographicException.cs: Default HResult to CORSEC_E_CRYPTO
+ (0x80131430) as documented.
+ * CryptographicUnexpectedOperationException.cs: Default HResult
+ to CORSEC_E_CRYPTO_UNEX_OPER (0x80131431) as documented.
+
+2003-01-20 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * CipherMode.cs: Added missing [Serializable] to enum.
+ * CspProviderFlags.cs: Added missing [Serializable] to enum.
+ * FromBase64Transform.cs: Added missing [Serializable] to enum.
+ * PaddingMode.cs: Added missing [Serializable] to enum.
+
+2003-01-19 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * CryptoTools.cs: Added internal class BlockProcessor to help
+ implementation of block-based algorithms (like MAC and HMAC).
+ * HMACSHA1.cs: Refactored to remove dependencies on CryptoStream,
+ better constructors and Dispose support.
+ * MACTripleDES.cs: Refactored to reuse new HMACSHA1 stuff, better
+ constructors.
+
+2003-01-18 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * HMACSHA1.cs: Now use KeyBuilder to build the default key.
+
+2003-01-12 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * MACTripleDES.cs: Now working (the problem was with my stream usage
+ which was removed for performance reason).
+ * TripleDES.cs: Fixed key generation (wasn't called and returned
+ null).
+
+2003-01-09 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * RNGCryptoServiceProvider.cs: Changed methods interacting with
+ the runtime as Internal<MethodName>. This will allow to make the
+ class Windows-compatible by doing a switch at runtime.
+
+2003-01-05 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * CryptoAPITransform.cs: Removed all TODO. This class will not be
+ used by Mono. MS uses it with <algo>CryptoServiceProvider classes
+ to provide a common ICryptoTransform access to CryptoAPI.
+
+2003-01-03 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * RC2CryptoServiceProvider.cs: Now about 2 time faster by inlining
+ methods and changing to UInt16 (instead of UInt32).
+
+2003-01-02 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * RijndaelManaged.cs: Now 7 (encrypt) to 10 (decrypt) times faster
+ by removing allocation inside intensively called methods, using pre-
+ calculated tables instead of Mult_GF methods and inlining most methods.
+
+2002-12-31 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * AsymmetricAlgorithm.cs: Removed ValidKeySize (method only present
+ in SymmetricAlgorithm).
+ * DSA.cs: Change ZeroizePrivateKey from protected to internal.
+ * DSACryptoServiceProvider.cs: Added some case where we need to check
+ for keypairGenerated.
+ * RSA.cs: Change ZeroizePrivateKey from protected to internal.
+ * RSACryptoServiceProvider.cs: Key were never generated with the default
+ (no parameter) constructor. Now checks for keypairGenerated in methods.
+ * SignatureDescription.cs: Added CreateDeformatter in RSAPKCS1SHA1-
+ SignatureDescription to please corcompare (it just call it's ancestor).
+
+2002-12-30 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * CryptoStream.cs: Implemented core. Not sure about many details -
+ but it run the samples now (#30256).
+ * CryptoStreamMode.cs: Added [Serializable] to enum declaration.
+ * SymmetricAlgorithm.cs: Made some changes required for CryptoStream
+ and to match more closely MS implementation. Also added little
+ optimizations in TransformBlock.
+
+2002-12-27 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * CryptoTools.cs: New. Shared classes for cryptography. Now
+ includes a KeyBuilder to generate symmetric keys and IV.
+ * DES.cs: Modified Key validation.
+ * DESCryptoServiceProvider.cs: Implemented Key and IV using
+ KeyBuilder.
+ * RC2CryptoServiceProvider.cs: Implemented Key and IV using
+ KeyBuilder (and removed TODO).
+ * RijndaelManaged.cs: Implemented Key and IV using KeyBuilder
+ (and removed TODO).
+ * SHA384Managed.cs: Changed code to remove compiler warning.
+ * SHA512Managed.cs: Changed code to remove compiler warning.
+ * SymmetricAlgorithm.cs: Removed TODO on IV.
+ * TripleDESCryptoServiceProvider.cs: Implemented Key and IV
+ using KeyBuilder (and removed TODO).
+
+2002-11-20 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * AsymmetricSignatureDeformatter.cs: Added exception handling in
+ VerifySignature (moved from RSAPKCS1SignatureDeformatter).
+ * AsymmetricSignatureFormatter.cs: Added exception handling in
+ CreateSignature (moved from RSAPKCS1SignatureFormatter).
+ * CryptoAPITransform.cs: Removed "= false" assignation from a private
+ member (because this created an unwanted "ghost" constructor) and
+ modified Dispose declaration.
+ * HashAlgorithm.cs: Removed destructor. Disposing unmanaged
+ ressources is the responsability of each class (not an abstract class).
+ * RSAPKCS1SignatureDeformatter.cs: Removed a VerifySignature method
+ which was present in the base class AsymmetricSignatureDeformatter.
+ * RSAPKCS1SignatureFormatter.cs: Removed a CreateSignature method
+ which was present in the base class AsymmetricSignatureFormatter.
+ * SHA1Managed.cs: Removed sealed from class declaration. Removed
+ destructor and Dispose method as class is fully managed.
+ * ToBase64Transform.cs: Added virtual to property CanReuseTransform.
+
+2002-11-17 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * CryptoConfig.cs: Added full classes name for MapNameToOID.
+ * PKCS1.cs: New. Internal class for the various primitives defined
+ in PKCS#1 v.2.1.
+ * PKCS1MaskGenerationFunction.cs: Modified to use PKCS1.cs.
+ * RSA.cs: Added internal class RSAHandler (which implements IHandler
+ interface for MiniParser) to import RSA keypairs from XML strings.
+ * RSACryptoServiceProvider.cs: Crypto implemented using BigInteger.
+ Key generation is VERY LONG.
+ * RSAOAEPKeyExchangeDeformatter.cs: Completed using PKCS1. Not sure
+ of the results as this is not available in all versions of Windows.
+ * RSAOAEPKeyExchangeFormatter.cs: Completed using PKCS1. Not sure
+ of the results as this is not available in all versions of Windows.
+ * RSAPKCS1KeyExchangeDeformatter.cs: Completed using PKCS1.
+ * RSAPKCS1KeyExchangeFormatter.cs: Completed using PKCS1.
+ * RSAPKCS1SignatureDeformatter.cs: Completed using PKCS1.
+ * RSAPKCS1SignatureFormatter.cs: Completed using PKCS1.
+
+2002-11-17 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * MiniParser.cs: Added explicit cast in order to compile with mcs.
+
+2002-11-16 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * AsymmetricAlgorithm.cs: Added internal class AsymmetricParameters
+ (which implements the IReader interface for MiniParser). Corrected
+ Dispose declaration.
+ * BigInteger.cs: New. Internal class for handling BIG integers for
+ asymmetric crypto (both RSA and DSA). Thanks to Chew Keong TAN !
+ * CryptoConfig.cs: Added XMLDSIG URLs in CreateFromName.
+ Will dynamically load System.Security.dll, when required,
+ to return instance of those classes. Also CryptoConfig can now
+ create any object (e.g. System.IO.MemoryStream) !
+ * DSA.cs: Added internal class DSAHandler (which implements IHandler
+ interface for MiniParser) to import DSA keypairs from XML strings.
+ * DSACryptoServiceProvider.cs: Crypto fully implemented using
+ BigInteger. Key generation (group) is VERY long.
+ * MiniParser.cs: New. Minimal XML parser by Sergey Chaban. Used to
+ import keypairs in XML strings.
+ * SignatureDescription.cs: Removed local CreateFromName (to use
+ CryptoConfig - which actually can create anything). Added internal
+ classes DSASignatureDescription and RSAPKCS1SHA1SignatureDescription.
+
+2002-11-15 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * CryptographicUnexpectedOperationException.cs: Forgot it last time!
+ * FromBase64Transform.cs: Added missing virtual to CanReuseTransform.
+ Changed Dispose().
+ * HashAlgorithm.cs: Changed Dispose().
+ * MD5CryptoServiceProvider.cs: Added destructor and Dipose(bool).
+ * PasswordDeriveBytes.cs: Changed some declaration from
+ protected to private.
+ * RC2.cs: Added valid keysize check in EffectiveKeySize.
+ * RC2CryptoServiceProvider.cs: Overriden EffectiveKeySize to match
+ corlib declarations.
+ * RSAOAEPKeyExchangeDeformatter.cs: Changed some declaration from
+ protected to private.
+ * RSAOAEPKeyExchangeFormatter.cs: Changed some declaration from
+ protected to private.
+ * RSAPKCS1KeyExchangeDeformatter.cs: Changed some declaration from
+ protected to private.
+ * RSAPKCS1KeyExchangeFormatter.cs: Changed some declaration from
+ protected to private.
+ * RSAPKCS1SignatureDeformatter.cs: Changed some declaration from
+ protected to private.
+ * RSAPKCS1SignatureFormatter.cs: Changed some declaration from
+ protected to private.
+ * SHA1CryptoServiceProvider.cs: Moved SHA1 code to SHA1Internal.
+ SHA1CryptoServiceProvider now use SHA1Internal. Added Dispose and
+ destructor.
+ * SHA1Managed.cs: New. Use SHA1Internal. Same as
+ SHA1CryptoServiceProvider but is required for binary compatibility.
+ * SHA256Managed.cs: Changed some declaration from protected to private.
+ * SHA384Managed.cs: Changed some declaration from protected to private.
+ * SHA512Managed.cs: Changed some declaration from protected to private.
+ * SymmetricAlgorithm.cs: Added Clear(), changed Dispose() and added
+ virtual to Dispose(bool).
+ * ToBase64Transform.cs: Added missing virtual to CanReuseTransform.
+ Changed Dispose().
+ * TripleDESCryptoServiceProvider.cs: Added missing sealed to class
+ declaration.
+
+2002-11-03 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * CryptoAPITransform.cs: Added missing CanReuseTransform property,
+ Clear method, destructor and IDisposable support.
+ * CryptographicException.cs: Added missing protected constructor.
+ * CryptographicUnexpectedOperationException.cs: Added missing
+ protected constructor.
+ * ICryptoTransform.cs: Added missing CanReuseTransform property.
+ * FromBase64Transform.cs: Added missing CanReuseTransform property,
+ Clear method, destructor and IDisposable support.
+ * SymmetricAlgorithm.cs: Implement IDisposable.
+ * ToBase64Transform.cs: Added missing CanReuseTransform property,
+ Clear method, destructor and IDisposable support.
+
+2002-11-02 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * SignatureDescription.cs: Updated class to match unit test results
+ * X509Certificate.cs: REMOVED! Wrong namespace. An almost complete
+ implementation is now in System.Security.Cryptography.X509Certificates
+
+2002-11-01 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * bouncycastle.txt: Bouncy Castle JCE License.
+ * SHA384Managed.cs: Hash implementation based on BouncyCastle JCE.
+ * SHA512Managed.cs: Hash implementation based on BouncyCastle JCE.
+
+2002-10-30 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * DSASignatureDeformatter.cs: Fully implemented - however it
+ requires a functionnal DSA implementation to work.
+ * DSASignatureFormatter.cs: Fully implemented - however it
+ requires a functionnal DSA implementation to work.
+
+2002-10-25 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * PasswordDeriveBytes.cs: New. PKCS#5 key derivation (PBKDF1) works up to
+ HashSize length (but MS support longer keys)
+
+2002-10-24 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * RSACryptoServiceProvider.cs: New. Implemented most logic expect crypto
+ * RSAOAEPKeyExchangeDeformatter.cs: New. Stub.
+ * RSAOAEPKeyExchangeFormatter.cs: New. Stub.
+ * RSAPKCS1KeyExchangeDeformatter.cs: New. Stub.
+ * RSAPKCS1KeyExchangeFormatter.cs: New. 98% implemented but still
+ require RSA.DecryptValue (not supported in MS .NET Framework)
+ * RSAPKCS1SignatureDeformatter.cs: New. Stub.
+ * RSAPKCS1SignatureFormatter.cs: New. Stub.
+
+2002-10-23 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * SymmetricAlgorithm.cs: Fixed CFB mode (do encryption while decrypting!)
+ * TripleDESCryptoServiceProvider.cs: Ajusted for CFB.
+
+2002-10-22 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * RjindaelManaged.cs: Fixed decryption for 192 and 256 bit block size
+
+2002-10-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * RC2CryptoServiceProvider.cs: fixed end of lines (changed from \r
+ to \n).
+
+2002-10-20 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * SymmetricAlgorithm.cs: Added better Dispose support
+ * DES.cs: Now only contains the abstract DES class.
+ * DESCryptoServiceProvider.cs: Added the DESTransform class (inherited
+ from SymmetricTransform) based the old DESCore and DESTransformBase code
+ * RC2.cs: Fixed EffectiveKeySize == 0
+ * RC2CryptoServiceProvider.cs: Added the RC2Transform class (inherited
+ from SymmetricTransform) based on the old RC2lImpl code. Unrolled some loops.
+ * RjindaelManaged.cs: Few more optimizations while looking for decrypting bug
+ * TripleDESCryptoServiceProvider.cs: New. Implement TripleDESTransform from
+ DESTransform (non-optimal but working :-).
+
+2002-10-19 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * SymmetricAlgorithm.cs: Added new class SymmetricTransform to avoid
+ duplicating CipherMode (currently ECB, CBC) and PaddingMode functionalities
+ in every crytographic algorithm implementation.
+ * RijndaelManaged.cs: Added the RjindaelTransform class (inherited
+ from SymmetricTransform) based the old RijndaelImpl / RijndaelController
+ code. Fixed encryption for block size 192, 256, there is still a problem
+ decrypting block size 192, 256. Unrolled some loops + littl'optimizations
+ * PKCS1MaskGenerationMethod.cs: Removed Array.Reverse in I2OSP to be
+ compatible with MS implementation (however we are now failing the PKCS#1
+ test vector) + added some more checks (null, overflow, ...)
+ * AsymmetricAlgorithm.cs: Commented XMLDocument stuff to end the cyclic
+ dependency (corlib->System.Xml->corlib)
+ * RSA.cs: Commented FromXmlString stuff to end the cyclic dependency
+ * DSA.cs: Commented FromXmlString stuff to end the cyclic dependency
+ * RC2.cs: Create using CryptoConfig
+ * TripleDES.cs: Marked class public. Added LegalKeySizes and LegalBlockSizes
+
+2002-10-14 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * MD5.cs: Create using CryptoConfig, set HashSizeValue, removed TODO.
+ * Rijndael.cs: Create using CryptoConfig. Removed TODO.
+ * RSAParameters.cs: Modulus must be serialized. Removed TODO.
+ * SHA256.cs: Create using CryptoConfig, set HashSizeValue, removed TODO.
+ * SHA384.cs: Create using CryptoConfig, set HashSizeValue, removed TODO.
+ * SHA512.cs: Create using CryptoConfig, set HashSizeValue, removed TODO.
+ * FromBase64Transform.cs: Removed ToString()
+ * ToBase64Transform.cs: Removed ToString()
+ * SymmetricAlgorithm.cs: Create using CryptoConfig, set default Mode and
+ Padding, added Clear, Dispose
+ * TripleDES.cs: New. Abstract class.
+ * MaskGenerationMethod.cs: New. Abstract class.
+ * PKCS1MaskGenerationMethod.cs: New. Implement PKCS#1 MGF (currently not
+ compatible with MS implementation - but not sure the bug is mine!).
+
+2002-10-13 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * HashAlgorithm.cs: Added Dispose() to HashAlgorithm because it
+ inherits ICryptoTransform
+ * KeyedHashAlgorithm.cs: New implementation
+ * HMACSHA1.cs: New (include a generic HMACAlgorithm as internal class)
+ * MACTripleDES.cs: New (missing core implementation on generic MACAlgorithm)
+ * CryptoStream.cs: Added limited functionalities to support HMACSHA1
+
+2002-10-12 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * DSA.cs: changed constructor to public from internal (like MS)
+ * HashAlgorithm.cs: Completed ComputeHash methods
+ * SHA1.cs: Added HashSizeValue = 160
+
+2002-10-12 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * ICryptoTransform.cs: Now inherits from IDisposable
+ * RC2CryptoServiceProvider.cs: Added Dispose() to RC2Impl because it inherits ICryptoTransform
+ * CryptoAPITransform.cs: Added Dispose() to CryptoAPITransform... ICryptoTransform
+ * RijndaelManaged.cs: Added Dispose() to RijndaelController...ICryptoTransform
+ * FromBase64Transform.cs: Added Dispose() to FromBase64Transform...ICryptoTransform
+ * ToBase64Transform.cs: Added Dispose() to ToBase64Transform...ICryptoTransform
+ * DESCryptoServiceProvider.cs: Added Dispose() to DESTransformBase...ICryptoTransform
+
+2002-10-11 Duncan Mak <duncan@ximian.com>
+
+ * DESCryptoServiceProvider.cs: Removed unnecessary Dispose ().
+
+2002-10-11 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * DES.cs: Create() using CryptoConfig, fix #30256
+ * DESCryptoServiceProvider.cs: fix #30256
+ * RandomNumberGenerator.cs: uncomment in Create(rng) for CryptoConfig
+
+2002-10-10 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * AsymmetricAlgorithm.cs: Inherit from IDisposable, common support from XML import
+ * DSA.cs: FromXmlString() keypair import, Create() using CryptoConfig
+ * RSA.cs: FromXmlString() keypair import, Create() using CryptoConfig
+ * DSACryptoServiceProvider.cs: Added Dispose()
+
+2002-10-09 Sebastien Pouliot <spouliot@videotron.ca>
+
+ * CryptoConfig.cs: New implementation
+
+2002-10-05 Andrew Birkett <andy@nobugs.org>
+
+ * RC2CryptoServiceProvider.cs: New implementation
+ * RC2.cs: New implementation
+
+2002-09-22 Andrew Birkett <andy@nobugs.org>
+
+ * RijndaelManaged.cs: Added faster case for multiplication by 2 in GF(8)
+
+2002-09-22 Andrew Birkett <andy@nobugs.org>
+
+ * RijndaelManaged.cs: BlockSize now reports size in bytes.
+ * ICryptoTransform.cs: Updated comments - BlockSizes are in bytes, unlike elsewhere.
+
+2002-09-19 Andrew Birkett <andy@nobugs.org>
+
+ * Rijndael.cs: Create() now gives you a RijndaelManaged object
+ * RijndaelManaged.cs: Added dummy GenerateKey until we have a proper RNG.
+ * SymmetricAlgorithm.cs: Updated comments
+
+2002-09-15 Andrew Birkett <andy@nobugs.org>
+
+ * RijndaelManaged.cs: Added support for CBC-mode, PKCS7/Zero padding.
+ * SymmetricAlgorithm.cs: IV size must match block size, not key size.
+ Key property now sets KeySizeValue correctly in bits.
+
+2002-09-11 Andrew Birkett <andy@nobugs.org>
+
+ * RijndaelManaged.cs: Implemented ECB-mode Rijndael cipher.
+ * Rijndael.cs: Set valid key/block sizes.
+ * SymmetricAlgorithm.cs: Remove throw from ctr so we can instantiate
+ derived classes. Fixes to key sizes so they are measured in bits.
+ * KeySizes.cs: Updated comments to emphasize that sizes are in bits.
+
+2002-06-29 Martin Baulig <martin@gnome.org>
+
+ * AsymmetricAlgorithm.cs: Removed a duplicate semicolon to make it compile.
+
+2002-05-19 Martin Baulig <martin@gnome.org>
+
+ * FromBase64Transform.cs (TransformFinalBlock): The return value of
+ `DoTransform' tells us the number of bytes actually written - if it's
+ smaller than `res', copy it to a smaller array.
+
+2002-02-21 Mark Crichton <crichton@gimp.org>
+
+ * RNGCryptoServiceProvider.cs: New file.
+ * RandomNumberGenerator.cs: Constructor is now marked public.
+
+2002-02-13 Dan Lewis <dihlewis@yahoo.co.uk>
+
+ * DSACryptoServiceProvider.cs, SHA384Managed.cs, SHA512Managed.cs,
+ Rijndael.cs, RSA.cs, RSAParameters.cs : New files (stubs)
+
+Mon Feb 11 13:26:17 CET 2002 Paolo Molaro <lupus@ximian.com>
+
+ * X509Certificates: dummy class.
+
+2002-01-10 Duco Fijma <duco@lorentz.xs4all.nl>
+ * Create (trivial) implementation of RandomNumberGenerator
+
+2002-01-05 Ravi Pratap <ravi@ximian.com>
+
+ * CryptoAPITransform.cs, DESCryptoProvider.cs : MonoTODO attribute
+ decoration.
+
+ * HashAlgorithm.cs, MD5.cs, SHA1.cs, SHA256.cs, SHA384.cs : Ditto.
+
+ * SHA512.cs, SymmetricAlgorithm.cs, ToBase64Transform.cs,
+ AsymmetricAlgorithm.cs, CryptoStream.cs, DSA.cs, DSASignatureDeformatter.cs,
+ DSASignatureFormatter.cs, SignatureDescription.cs : Ditto.
+
Wed Nov 14 17:04:30 CET 2001 Paolo Molaro <lupus@ximian.com>
* MD5CryptoServiceProvider.cs, SHA1CryptoServiceProvider.cs,