Switch to compiler-tester
[mono.git] / mcs / class / corlib / System.Security.Cryptography / ChangeLog
index e937ce4d6923cb49884ca0f8483c774d68781916..360a4b7d237810da40af9e0641690ab1c0f0b8e9 100644 (file)
@@ -1,3 +1,454 @@
+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. 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>
+
+       * DESCryptoServiceProvider.cs: Fixed warning (l4) by adding empty {}.
+       * DSASignatureDeformatter.cs: Fixed warning (l4) for unused variable.
+       * DSASignatureFormatter.cs: Fixed warning (l4) for unused variable.
+       * HMACSHA1.cs: Fixed warning (l4) for unused variable.
+
+2004-09-03  Tim Coleman (tim@timcoleman.com)
+
+       * CryptoConfig.cs: Add new Xml cryptography class info.
+
+2004-08-08  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * CspProviderFlags.cs: Fixed new enums values.
+       * DSA.cs: Fixed #if for constructor visibility.
+       * CryptoAPITransform.cs: Removed constructor for NET_2_0 profile.
+
+2004-07-07  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * DES.cs: Fixed FeedbackSizeValue to 8.
+       * RC2.cs: Fixed FeedbackSizeValue to 8.
+       * RC2CryptoServiceProvider.cs: When key size is different from 
+       effective key size we throw CryptographicUnexpectedOperationException.
+       * TripleDES.cs: Fixed FeedbackSizeValue to 8.
+
+2004-07-07  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * CryptoAPITransform.cs: Added the new Reset method for NET_2_0. This
+       is a NOP as this class isn't used by Mono (all crypto transforms are 
+       managed).
+       * CryptographicException.cs: Added _Exception interface for NET_2_0 
+       profile.
+       * CspProviderFlags.cs: Added new enum's members for NET_2_0.
+       * DSA.cs: Changed constructor to protected for NET_2_0. It is now 
+       possible to inherit from DSA in other assemblies.
+       * DSACryptoServiceProvider.cs: NET_2_0 cleanup. Added interface 
+       ICspAsymmetricAlgorithm (stub), removed (unrequired) LegalKeySizes 
+       override, fixed visibility of PublicOnly property.
+       * HMACSHA1.cs: Fixed #if for NET_2_0 profile.
+       * KeyNumber.cs: Fixed values for new enum in Fx 2.0.
+       * MACTripleDES.cs: Added new Padding property to NET_2_0 profile.
+       * ProtectedData.cs: Added missing private constructor.
+       * ProtectedMemory.cs: Added missing private constructor.
+       * RC2CryptoServiceProvider.cs: Added UseSalt property to NET_2_0 
+       profile. Salt usage must be added to the transforms.
+       * RIPEMD160Managed.cs: Removed unrequired [CLSCompliant] attributes.
+       * RSACryptoServiceProvider.cs: NET_2_0 cleanup. Added interface 
+       ICspAsymmetricAlgorithm (stub), fixed visibility of PublicOnly 
+       property.
+       * RijndaelManaged.cs: Use the new RijndaelManagedTransform for Fx 2.0.
+       * RijndaelManagedTransform.cs: New. Class is now public in Fx 2.0.
+
+2004-06-23  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * CryptoStream.cs: Removed the block reduction. This seems to be done
+       only for Decryptor so it was moved to SymmetricTransform.
+
+2004-06-16  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * SignatureDescription.cs: Implemented .ctor(SecurityElement) using
+       documentation from VS.NET 2005.
+
+2004-06-10  Gert Driesen <drieseng@users.sourceforge.net>
+
+       * ToBase64Transform.cs: Uncomment finalizer to fix public API
+       signature
+
+2004-05-29  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * CspProviderFlags.cs: Reverted previous patch as UseExistingKey isn't
+       part of the 1.0/1.1 framework.
+
+2004-05-29  Gert Driesen (drieseng@users.sourceforge.net)
+
+       * CspProviderFlags.cs: Added missing enum field UseExistingKey
+
+2004-05-27  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * HashAlgorithm.cs: Added missing exception handling to ComputeHash,
+       TransformBlock and TransformFinalBlock.
+
+2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * CryptoStream.cs: Fixed possible integer overflow.
+       * FromBase64Transform.cs: Better exception handling and fixed possible
+       integer overflow.
+       * RNGCryptoServiceProvider.cs: Changed RNG interface with the runtime
+       so it could be used in a thread-safe way with CryptoAPI.
+       * ToBase64Transform.cs: Better exception handling and fixed possible
+       integer overflow.
+
+2004-05-07  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * CipherMode.cs: Moved XML comments to monodoc.
+       * CryptoConfig.cs: Changed Array.Copy to Buffer.BlockCopy.
+       * CryptoStream.cs: Changed Array.Copy to Buffer.BlockCopy.
+       * DSA.cs: Changed Array.Copy to Buffer.BlockCopy.
+       * DSACryptoServiceProvider.cs: Fixed SignData to hash data before 
+       signing it (thanks to Jens Thiel for spotting this).
+       * ICryptoTransform.cs: Moved XML comments to monodoc.
+       * PasswordDeriveBytes.cs: Changed Array.Copy to Buffer.BlockCopy.
+       * FromBase64Transform.cs: Moved XML comments to monodoc.
+       * RSACryptoServiceProvider.cs: Fixed OID related exception in SignData.
+       * ToBase64Transform.cs: Input block may be smaller than a full block
+       when calling TransformFinalBlock (fix 2 CryptoStream unit tests).
+
+2004-05-06  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * RSAOAEPKeyExchangeDeformatter.cs: Fixed wrt completed unit tests.
+       * RSAOAEPKeyExchangeFormatter.cs: Fixed wrt completed unit tests.
+       * RSAPKCS1KeyExchangeDeformatter.cs: Fixed wrt completed unit tests.
+       Added globalization to exceptions.
+       * RSAPKCS1KeyExchangeFormatter.cs: Fixed wrt completed unit tests.
+       * RSAPKCS1SignatureDeformatter.cs: Fixed wrt completed unit tests.
+       Added globalization to exceptions.
+       * RSAPKCS1SignatureFormatter.cs: Fixed wrt completed unit tests.
+       Added globalization to exceptions.
+       
+2004-05-06  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * RC2.cs: Fixed KeySize to change it's value and the EffectiveKeySize
+       when the key is changed.
+       * RC2CryptoServiceProvider.cs: Added globalization to exceptions. 
+       Fixed the KeySize must be equal with EffectiveKeySize to match MS 
+       implementation.
+       * Rijndael.cs: Source clean up.
+       * RijndaelManaged.cs: Moved XML comments to monodoc. Added 
+       globalization to exceptions. 
+       * RNGCryptoServiceProvider.cs: Removed TODO and documented them in
+       mono doc. Now call runtime when a seed is provided.
+       * RSA.cs: Added globalization to exceptions. Removed check for 
+       <RSAKeyValue> as it is not checked by MS implementation.
+       * SHA1.cs: Moved XML comments to monodoc.
+       * SHA1CryptoServiceProvider.cs: Moved XML comments to monodoc. Removed
+       CLSCompliance attributes from private fields. 
+       * SHA256.cs: Moved XML comments to monodoc.
+       * SHA256Managed.cs: Moved XML comments to monodoc. Removed 
+       CLSCompliance attributes from   private fields.
+       * SHA384.cs: Moved XML comments to monodoc.
+       * SHA512.cs: Moved XML comments to monodoc.
+       * SignatureDescription.cs: Moved XML comments to monodoc. Added 
+       globalization to exceptions. Removed TODO and added notes to monodoc.
+       * SymmetricAlgorithm.cs: Moved XML comments to monodoc. Added 
+       globalization to exceptions.
+       * ToBase64Tranform.cs: Added missing exception handling. Moved XML 
+       comments to monodoc.
+       * TripleDES.cs: Added globalization to exceptions.
+       * TripleDESCryptoServiceProvider.cs: Changed Array.Copy to 
+       Buffer.BlockCopy. Zeroize decrypted data.
+
+2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * HashAlgorithm.cs: Moved XML comments to monodoc. Added globalization
+       to exceptions.
+       * KeyedHashAlgorithm.cs: Added globalization to exceptions.
+       * KeySizes.cs: Moved XML comments to monodoc.
+       * MaskGenerationMethod.cs: Source clean up.
+       * MD5.cs: Moved XML comments to monodoc.
+       * MD5CryptoServiceProvider.cs: Removed CLSCompliance attributes from
+       private fields. Changed constants from enum to array. Zeroize data on
+       Dispose.
+       * PaddingMode.cs: Moved XML comments to monodoc.
+       * PasswordDeriveBytes.cs: Added globalization to exceptions. Removed 
+       TODO and documented as "not supported" in MonoDoc.
+       * RandomNumberGenerator.cs: Source clean up.
+
+2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * DSACryptoServiceProvider.cs: Added globalization to exceptions.
+       * HMACSHA1.cs: Cleanup.
+       * SHA1CryptoServiceProvider.cs: Removed unused private methods.
+       * SHA1Managed.cs: Removed unused private methods.
+       * SHA384Managed.cs: Don't zeroize buffer on first initialization.
+       * SHA512Managed.cs: Don't zeroize buffer on first initialization.
+       
+2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * Base64Constants.cs: New. Convert code into tables for better base64
+       performance.
+       * FromBase64Transform.cs: Updated to use the new tables. Source code
+       cleanup.
+       * SHA256Managed.cs: Updated to use shared constants.
+       * SHA384Managed.cs: Updated to use shared constants.
+       * SHA512Managed.cs: Updated to use shared constants.
+       * SHAConstants.cs: New. Shared constants for SHA implementations.
+       * ToBase64Transform.cs: Updated to use the new tables. Added 
+       globalization. Commented finalizer as it isn't required in this case.
+
+2004-05-03  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * CryptoConfig.cs: Specify version and public key token when loading
+       System.Security.dll for XML Digital Signature classes.
+
+2004-04-29 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * DES.cs:
+       * DESCryptoServiceProvider.cs:
+       * RC2CryptoServiceProvider.cs:
+       * RijndaelManaged.cs:
+       * SHA384Managed.cs:
+       * SHA512Managed.cs:
+       * ToBase64Transform.cs:
+       Readonly/Constify.
+
+2004-04-29  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * DES.cs: Removed redundant weak/semi-weak key check in Key property.
+       * DESCryptoServiceProvider.cs: Implementation already had 100% 
+       coverage.
+
+2004-04-28  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * DSACryptoServiceProvider.cs: Changed delegate signature.
+       * RSACryptoServiceProvider.cs: Changed delegate signature.
+
+2004-04-28  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * DSA.cs: Moved XML comments to monodoc. Added globalization to 
+       exceptions. Already had 100% coverage.
+       * DSAParameters.cs: Moved XML comments to monodoc.
+       * DSASignatureDeformetter.cs: Added globalization to exceptions. 
+       Limited catch to expected exception. Already had 100% coverage.
+       * DSASignatureFormatter.cs: Added globalization to exceptions. Limited
+       catch to expected exception. Already had 100% coverage.
+
+2004-04-26  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * AsymmetricAlgorithm.cs: Moved XML comments to monodoc. Added 
+       globalization to exceptions. Already had 100% coverage.
+       * AsymmetricKeyExchangeDeformatter.cs: Moved XML comments to monodoc.
+       Already had 100% coverage.
+       * AsymmetricKeyExchangeFormatter.cs: Moved XML comments to monodoc.
+       Already had 100% coverage.
+       * AsymmetricSignatureDeformatter.cs: Moved XML comments to monodoc.
+       Already had 100% coverage.
+       * AsymmetricSignatureFormatter.cs: Moved XML comments to monodoc.
+       Already had 100% coverage.
+       * CryptoAPITransform.cs: Unused by Mono (added note to monodoc).
+       Class will stay at 0% coverage.
+       * CryptoConfig.cs: Added globalization to exceptions. 98% coverage.
+       * CryptographicException.cs: Added globalization to exceptions. 
+       Already had 100% coverage.
+       * CryptoStream.cs: Added globalization to exceptions. Removed (unused)
+       field _previousBlock to get 100% coverage.
+       * CspParameters.cs: Moved XML comments to monodoc. Already had 100% 
+       coverage.
+       * CspProviderFlags.cs: Moved XML comments to monodoc.
+       * DeriveBytes.cs: Moved XML comments to monodoc. Already had 100% 
+       coverage.
+       * DES.cs: Fixes to weak/semi-weak checking to pass new unit tests (it
+       requires to set odd parity on keys before comparing).
+
+2004-04-25  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
+
+       * DSACryptoServiceProvider.cs: Call invariant compare
+
 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
 
        * DSA.cs: Use Mono.Security.BitConverterLE