2005-11-22 Sebastien Pouliot <sebastien@ximian.com>
[mono.git] / mcs / class / corlib / System.Security.Cryptography / ChangeLog
index 8316d5ad31e6cbba98868db05e42ea720271ec4f..2f321636c60c0bb5c8097d4811c6fbffb92bbcec 100644 (file)
@@ -1,3 +1,226 @@
+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