+2006-09-20 Kazuki Oikawa <kazuki@panicode.com>
+
+ * RijndaelManaged.cs: improves the performance.
+
+2006-09-08 Sebastien Pouliot <sebastien@ximian.com>
+
+ * RSAOAEPKeyExchangeDeformatter.cs: Throw a CryptographicException,
+ instead of returning null, when a padding error occurs on decryption.
+ * RSAPKCS1KeyExchangeDeformatter.cs: Throw a CryptographicException,
+ instead of returning null, when a padding error occurs on decryption.
+
+2006-07-01 Sebastien Pouliot <sebastien@ximian.com>
+
+ * AsymmetricSignatureDeformatter.cs: Set the hash algorithm name from
+ the hash instance. Fix for bug #78744 by Diego Mesa Tabares.
+
+2006-06-15 Sebastien Pouliot <sebastien@ximian.com>
+
+ * HashAlgorithm.cs: Changed the order of BlockCopy + HashCore to
+ HashCore + BlockCopy. Fx 2.0 now allows using a null output buffer
+ (without exception) while previous 1.x versions crashed the runtime
+ (mono won't crash the runtime, so we always do like 2.0).
+
+2006-05-30 Sebastien Pouliot <sebastien@ximian.com>
+
+ * AsymmetricKeyExchangeDeformatter.cs: Under 2.0 the ctor is
+ protected.
+ * AsymmetricKeyExchangeFormatter.cs: Under 2.0 the ctor is protected.
+ * AsymmetricSignatureDeformatter.cs: Under 2.0 the ctor is protected.
+ * AsymmetricSignatureFormatter.cs: Under 2.0 the ctor is protected.
+ * DES.cs: Under 2.0 the ctor is protected.
+ * HashAlgorithm.cs: Under 2.0 the HashValue field is protected
+ internal.
+ * RandomNumberGenerator.cs: Under 2.0 the ctor is protected.
+ * RC2.cs: Under 2.0 the ctor is protected.
+ * Rijndael.cs: Under 2.0 the ctor is protected.
+ * RSA.cs: Under 2.0 the ctor is protected.
+ * SHA256.cs: Under 2.0 the ctor is protected.
+ * SHA384.cs: Under 2.0 the ctor is protected.
+ * SHA512.cs: Under 2.0 the ctor is protected.
+ * SymmetricAlgorithm.cs: Under 2.0 the ctor is protected.
+ * TripleDES.cs: Under 2.0 the ctor is protected.
+
+2006-02-03 Zoltan Varga <vargaz@gmail.com>
+
+ * CryptoStream.cs: Add 'override' keyword to Dispose (bool) method in 2.0.
+
+2005-12-15 Sebastien Pouliot <sebastien@ximian.com>
+
+ * SymmetricAlgorithm.cs: Changing (not setting) BlockSize must
+ re-generate a new IV (so the properties are kept valid). Note that
+ changing or setting (same value) the KeySize always re-generate a key.
+
+2005-12-01 Sebastien Pouliot <sebastien@ximian.com>
+
+ * RIPEMD160Managed.cs: Endianess fix.
+
+2005-11-22 Sebastien Pouliot <sebastien@ximian.com>
+
+ * DSAManaged.cs: Don't output J in the XML if it's not exported (i.e.
+ if it wasn't imported too but instead calculated from the other
+ parameters ;-).
+
+2005-11-09 Sebastien Pouliot <sebastien@ximian.com>
+
+ * KeyNumber.cs: Added missing [Serializable] present in 2.0.
+
+2005-10-21 Sebastien Pouliot <sebastien@ximian.com>
+
+ * DESCryptoServiceProvider.cs: Don't change the instance key/iv when
+ creating an encryptor or decryptor specifying them. Generate a new key
+ if null is specified (not really useful but compatible with MS
+ behaviour). Check for weak/semi-weak key when creating transforms.
+ * RC2CryptoServiceProvider.cs: Don't change the instance key/iv when
+ creating an encryptor or decryptor specifying them. Check legal key
+ sizes when creating transforms.
+ * RijndaelManaged.cs: Don't change the instance key/iv when creating
+ an encryptor or decryptor specifying them. Check legal key sizes when
+ creating transforms.
+ * TripleDESCryptoServiceProvider.cs: Don't change the instance key/iv
+ when creating an encryptor or decryptor specifying them. Generate a
+ new key if null is specified (not really useful but compatible with MS
+ behaviour). Check for weak key when creating transforms.
+
+2005-09-29 Sebastien Pouliot <sebastien@ximian.com>
+
+ * HMACSHA1.cs: Added the new 2.0 ctor that let the programmer choose
+ between the managed and unmanaged SHA1 algorithm used in the HMAC
+ (that doesn't change much thing in the default config for Mono).
+ * PasswordDeriveBytes.cs: Added [Obsolete] on GetBytes (2.0) as new
+ applications should be using Rfc2898DeriveBytes to get PKCS#5 v2
+ support.
+
+2005-08-17 Sebastien Pouliot <sebastien@ximian.com>
+
+ * FromBase64Transform.cs: Check that the TransformFinal can be called
+ with only whitespace (with FromBase64TransformMode.IgnoreWhiteSpaces)
+ so that we must return new byte [0].
+
+2005-06-14 Sebastien Pouliot <sebastien@ximian.com>
+
+ * FromBase64Transform.cs: Removed memory allocations during the
+ transform. It's now just the accumulator (ctor) and the
+ TransformFinalBlock that allocates memory. The transform is now
+ between 3 to 4 times faster than before.
+
+2005-06-10 Sebastien Pouliot <sebastien@ximian.com>
+
+ * all: 2.0 beta2 fixes, i.e. mostly added [ComVisible(true)]
+
+2005-06-09 Sebastien Pouliot <sebastien@ximian.com>
+
+ * HMAC.cs: BlockSizeValue has changed from a protected member to
+ a protected property.
+
+2005-06-06 Sebastien Pouliot <sebastien@ximian.com>
+
+ * CspProviderFlags.cs: UseExistingKey was added in 1.1 SP1. Added
+ ComVisible attribute for 2.0.
+
+2005-05-19 Sebastien Pouliot <sebastien@ximian.com>
+
+ * CryptoConfig.cs: Don't use the global hashtables until the
+ initialization is complete.
+
+2005-05-18 Sebastien Pouliot <sebastien@ximian.com>
+
+ * CryptoConfig.cs: Changed lock pattern to second version of
+ http://www.skeet.org.uk/csharp/singleton.html
+
+2005-05-16 Sebastien Pouliot <sebastien@ximian.com>
+
+ * CryptoConfig.cs: Initialization wasn't threadsafe as the "checked"
+ value was assigned at the start of the initialization.
+
+2005-04-25 Sebastien Pouliot <sebastien@ximian.com>
+
+ * CryptoConfig.cs: Removed RSA OID and added null check in EncodeOID
+ in NET_2_0 to match beta2.
+ * DES.cs: Added null check for IsWeakKey and IsSemiWeakKey in NET_2_0
+ to match beta2.
+ * SymmetricAlgorithm.cs: Throw CryptographicException when feedback is
+ zero in NET_2_0 to match beta2
+ * TripleDES.cs: Added null check for IsWeakKey in NET_2_0 to match
+ beta2.
+
+2005-04-05 Sebastien Pouliot <sebastien@ximian.com>
+
+ * CryptoConfig.cs: Added Assert for FileIOPermission to LoadConfig so
+ the configuration can be read under partial trust.
+
+2005-03-24 Sebastien Pouliot <sebastien@ximian.com>
+
+ * CryptoConfig.cs: Added LinkDemand for unrestricted to CreateFromName
+ when used to create instance with object[] parameters.
+ * CryptoAPITransform.cs: Added Demand for UnmanagedCode to KeyHandle
+ property.
+
+2005-03-07 Sebastien Pouliot <sebastien@ximian.com>
+
+ * MD5CryptoServiceProvider.cs: Fixed #73404 to return right results
+ if the data length is bigger than 2^32 bits.
+ * SHA1CryptoServiceProvider.cs: Fixed #73404 to return right results
+ if the data length is bigger than 2^32 bits.
+ * SHA256Managed.cs: Fixed #73404 to return right results if the data
+ length is bigger than 2^32 bits.
+
+2005-03-03 Sebastien Pouliot <sebastien@ximian.com>
+
+ * RNGCryptoServiceProvider.cs: Added a new call in the static ctor
+ to check if we're using a global handle. In that case we lock before
+ calling the RNG.
+
+2005-02-10 Sebastien Pouliot <sebastien@ximian.com>
+
+ * DSA.cs: Weekly fix to case where DSAParameters.Counter is 0 :-(
+ A new unit test was added for this specific case so it's hopefully
+ the last fix for this. Fixed exception reporting to match NET_2_0.
+
+2005-01-30 Sebastien Pouliot <sebastien@ximian.com>
+
+ * DSA.cs: Really fixed case where DSAParameters.Counter is 0.
+
+2005-01-21 Sebastien Pouliot <sebastien@ximian.com>
+
+ * DSA.cs: Handle the case where DSAParameters.Counter is 0.
+
+2005-01-11 Sebastien Pouliot <sebastien@ximian.com>
+
+ * CryptoConfig.cs: Added support to create RIPEMD160 and the new HMAC
+ algorithms (HMACMD5, HMACRIPEMD160, HMACSHA256, HMACSHA384 and
+ HMACSHA512). This fix the unit tests failures in Mono.Security.dll in
+ the NET_2_0 profile.
+ * DSACryptoServiceProvider.cs: Import|ExportCspBlob throws
+ NotImplementedException (CryptoConvert class doesn't support DSA yet).
+ * RSACryptoServiceProvider.cs: SignHash/VerifyHash defaults to SHA-1
+ in 2.0. VerifyHash throw appropriate exception when no OID is
+ specified (1.0/1.1). Import|ExportCspBlob implemented using the
+ CryptoConvert class.
+ * RSAOAEPKeyExchangeDeformatter.cs: Throw exception if no key is
+ specified.
+ * RSAOAEPKeyExchangeFormatter.cs: Throw exception if no key is
+ specified.
+ * RSAPKCS1KeyExchangeFormatter.cs: Throw exception if no key is
+ specified.
+ * SymmetricAlgorithm.cs: More strict IV length checks on 2.0.
+
+2005-01-10 Sebastien Pouliot <sebastien@ximian.com>
+
+ * CryptoConfig.cs: Change the OID for SHA-2 algorithms to match 2.0
+ and added new OID for asymmetric and symmetric algorithms.
+ * CspKeyContainerInfo.cs: Added CryptoKeySecurity property. This will
+ always return null until we support access control for key containers.
+ * CspParameters.cs: Added new constructors and propertys for access
+ control and password (2.0).
+ * DSASignatureDeformatter.cs: Throw ArgumentNullException in NET_2_0
+ if a null key is specified.
+ * DSASignatureFormatter.cs: Throw ArgumentNullException in NET_2_0 if
+ a null key is specified.
+ * HashAlgorithm.cs: Fix the reported exceptions for output buffers.
+ * HMAC.cs: Change the .Clear (which calls Dispose) to a .Initialize.
+ * MACTripleDES.cs: Removed unrequired private field _padding.
+ * PasswordDeriveBytes.cs: Added 4 new constructors where the password
+ is a byte[] (as it seems MS won't be using SecureString for this).
+ * RIPEMD160Managed.cs: Removed overriden Dispose method to match 2.0.
+ Clear buffers when initializing (e.g. re-using the hash instance).
+ * Rfc2898DeriveBytes.cs: Added a new constructor where the password
+ is a byte[] (as it seems MS won't be using SecureString for this).
+ * RSAPKCS1SignatureDeformatter.cs: Throw ArgumentNullException in
+ NET_2_0 if a null key is specified.
+ * RSAPKCS1SignatureFormatter.cs: Throw ArgumentNullException in
+ NET_2_0 if a null key is specified.
+ * ToBase64Transform.cs: Fix the reported exceptions for output buffers.
+
+2005-01-06 Sebastien Pouliot <sebastien@ximian.com>
+
+ * DES.cs: Change wek and semi-weak key checking to avoid memory
+ allocations. Old version required 2 allocations (weak+semiweak) to
+ unpack the key. New versions are 16x-20x faster.
+ * RijndaelManaged.cs: Removed unrequired "& 0xff" when casting to
+ byte.
+
+2005-01-03 Sebastien Pouliot <sebastien@ximian.com>
+
+ * DESCryptoServiceProvider.cs: Refactored ECB/ProcessBlock to allow
+ TripleDES to be more efficient by using the permutations itself.
+ * TripleDESCryptoServiceProvider.cs: Removed memory allocation in
+ Transform's ECB method. Changed code to directly call DES's
+ permutations. MACTripleDES is now 20% faster (didn't have any other
+ 3DES benchmark on hand) and requires much less memory.
+
+2005-01-03 Sebastien Pouliot <sebastien@ximian.com>
+
+ * DESCryptoServiceProvider.cs: Now using pre-computed tables (instead
+ of using a static constructor to compute them). Not much change
+ performance-wise unless you used DES but only "a little" ;-). The old
+ code (who computed the results) is still present but commented,
+
+2005-01-02 Sebastien Pouliot <sebastien@ximian.com>
+
+ * SHA1CryptoServiceProvider.cs: Removed memory allocation in
+ ProcessBlock method (now global). This gives up to 8% performance
+ increase when multiple blocks are being used.
+ * SHA256Managed.cs: Removed memory allocation in ProcessBlock method
+ (now global). This gives up to 5% performance increase when multiple
+ blocks are being used.
+
+2004-12-23 Sebastien Pouliot <sebastien@ximian.com>
+
+ * DataProtectionScope.cs: Moved in System.Security.dll
+ * MemoryProtectionScope.cs: Moved in System.Security.dll
+ * ProtectedData.cs: Moved in System.Security.dll
+ * ProtectedMemory.cs: Moved in System.Security.dll
+
+2004-12-22 Sebastien Pouliot <sebastien@ximian.com>
+
+ * RSA.cs: Throw the proper CryptographicException exception when
+ exporting a private key without CRT parameters, while keeping the
+ ArgumentNullException when the private exponent (D) is missing.
+
+2004-12-06 Sebastien Pouliot <sebastien@ximian.com>
+
+ * RSACryptoServiceProvider.cs: Adjust DecryptValue to the fact that
+ Mono's RSAManaged support decryption without CRT while MS requires it.
+
+2004-11-26 Sebastien Pouliot <sebastien@ximian.com>
+
+ * CryptoAPITransform.cs:
+ * DSACryptoServiceProvider.cs:
+ * MACTripleDES.cs:
+ * RC2CryptoServiceProvider.cs:
+ * RSACryptoServiceProvider.cs:
+ Added ComVisible attributes to match 2.0 October Preview.
+
2004-11-03 Sebastien Pouliot <sebastien@ximian.com>
* PasswordDeriveBytes.cs: Fix default iretation count to 100. Fix
- exceptions to match MS more closely.
+ exceptions to match MS more closely. Fixed possible ArgumentException
+ when asking multiple GetBytes than results in more bits than the hash
+ function can provide.
2004-09-16 Sebastien Pouliot <sebastien@ximian.com>