Merge pull request #2237 from xmcclure/container-owner
[mono.git] / mcs / class / System.Security / System.Security.Cryptography.Xml / ChangeLog
index e9909024d548f2573fa8ab04772d652444f74fa0..8eb7ab31416f60b414ecabfdf25ce3ed33c406e8 100644 (file)
@@ -1,3 +1,475 @@
+2010-07-09  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SignedXml.cs : avoid using LoadXml() to load xml element as in
+         literal string. Use ImportNode() instead.
+         Copy namespaces for a referenced node found in envelope document too.
+
+2009-07-14  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * SignedXml.cs: Fix HMACOutputLength to match XMLDSIG erratum (ref: 
+       CVE-2009-0217) and add stricter checks.
+
+2009-06-05  Marek Safar  <marek.safar@gmail.com>
+
+       * *.cs: Fixed NET_2_0 conditional to actually handle Mono.Security
+       dependency.
+
+2008-11-01  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * EncryptedXml.cs: Add proper null check inside methods.
+       * SignedXml.cs: GetIdElement returns null if either of its parameter
+       is null.
+       * Transform.cs: Comment compatibility-NRE in GetDigestedOutput.
+       * XmlDecryptionTransform.cs: IsTargetElement returns null if either
+       of its parameter is null.
+       * XmlDsigC14NTransform.cs: Comment compatibility-NRE in 
+       GetDigestedOutput.
+       * XmlDsigExcC14NTransform.cs: Comment compatibility-NRE in 
+       GetDigestedOutput.
+       [Found using Gendarme CheckParametersNullityInVisibleMethodsRule]
+
+2008-10-14  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * XmlDsigBase64Transform.cs: Use constant for Algorithm namespace.
+       * XmlDsigExcC14NTransform.cs: Fixed ctors to use WithComments
+       algorithm if includeComments is true. Assign includeNamespacesPrefixList
+       to instance field.
+       * XmlDsigExcC14NWithCommentsTransform.cs: Remove unnecessary
+       assignment to Algorithm now that base ctor is fixed.
+       * XmlDsigC14NWithCommentsTransform.cs: Remove unnecessary assignment
+       to Algorithm now that base ctor is fixed.
+       * XmlDsigC14NTransform.cs: In default ctor, just invoke .ctor (bool).
+       In .ctor (bool), assign WithComments algorithm if includeComments is
+       true. Use constants for Algorithm namespace.
+       * XmlDsigEnvelopedSignatureTransform.cs: Use constant for Algorithm
+       namespace.
+       * XmlDsigXPathTransform.cs: Use constant for Algorithm namespace.
+       * XmlDsigXsltTransform.cs: Use constant for Algorithm namespace.
+       * XmlLicenseTransform.cs: Assign Algorithm in ctor.
+       * XmlSignature.cs: Added constant for XmlLicenseTransform algorithm.
+
+2008-10-12  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * EncryptedReference.cs, EncryptedType.cs: Remove unneeded field
+       initialization to their default values.
+       [Found using Gendarme AvoidUnneededFieldInitializationRule]
+
+2008-09-17  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * SignedXmlTest.cs: Add support for signing XML using HMACSHA256,
+       HMACSHA384, HMACSHA512 and HMACRIPEMD160.
+       [Fix bug #425724]
+
+2008-08-07  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * set Algorithm in .ctor(bool), fixed bug #398904.
+
+2008-08-06  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * XmlDsigC14NTransform.cs,
+       * XmlDsigExcC14NTransform.cs
+       * XmlDsigXsltTransform.cs: Don't use is + as.
+       [Found using Gendarme AvoidRepetitiveCastsRule]
+
+2008-06-28  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * XmlDecryptionTransform.cs,
+       * XmlDsigC14NTransform.cs,
+       * XmlDsigEnvelopedSignatureTransform.cs,
+       * XmlDsigExcC14NTransform.cs,
+       * XmlDsigXsltTransform.cs: Replace Type.GetType("x") into typeof(x)
+       [Found using Gendarme AvoidTypeGetTypeForConstantStringsRule]
+
+2008-05-25  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * XmlDecryptionTransform.cs,
+       * XmlDsigBase64Transform.cs,
+       * XmlDsigC14NTransform.cs,
+       * XmlDsigEnvelopedSignatureTransform.cs,
+       * XmlDsigExcC14NTransform.cs,
+       * XmlDsigXPathTransform.cs,
+       * XmlDsigXsltTransform.cs,
+       * XmlLicenseTransform.cs: Don't use lock(this). In fact remove locking
+       since the worse that can happen is two copies of the same data.
+       [Found using Gendarme]
+
+2008-01-12  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * ReferenceList.cs: Avoid infinite recursion when setting []. 
+       Found by Gendarme.
+       * XmlDsigXPathTransform.cs: Fix direct comparison with NaN. Found 
+       by Gendarme.
+
+2007-11-13  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlDsigExcC14NTransform.cs : removed extra [ComVisible].
+
+2007-03-22  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Transform.cs, XmlDsigC14NTransform.cs, XmlDsigExcC14NTransform.cs :
+         handle PropagatedNamespaces.
+
+2007-02-01  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SignedXml.cs : for internal URI (#blah) resolution, use
+         GetIdElement() so that any derived class which overrides this
+         method could resolve the reference correctly.
+
+2007-01-25  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SignedXml.cs : for DataObject, copy namespaces in Data into Object
+         element itself. I haven't solved the puzzle on why it is needed
+         though.
+
+2007-01-23  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataObject.cs : it should not append created DataObject element to
+         the owner document. It affects on XPath selection, though currently
+         SignedXml.GetReferenceHash() is bogus so I cannot add meaningful
+         tests for it.
+
+2007-01-22  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SignedInfo.cs : removed incorrect CanonicalizationMethodObject
+         implementation.
+       * EncryptedReference.cs : added exc-c14n support in LoadXml().
+
+2007-01-17  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlDsigExcC14NTransform.cs :
+         re-imported from XmlDsigC14NTransform.cs.
+
+2007-01-12  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SignedXml.cs : when there is an envelope document and no referenced
+         DataObject was found, then look for the target element from the
+         envelope.
+
+2007-01-12  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataObject.cs : don't clear attributes or children unnecessarily.
+
+2007-01-12  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SignedXml.cs : actually ComputeSignature() itself does not raise
+         silly exception. It always use CryptographicException.
+         Added another check; malformed reference object.
+
+2007-01-12  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SignedXml.cs : ComputeSignature() should check empty key.
+
+2006-10-11  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SignedXml.cs : when SigningMethod does not match the algorithm that
+         the key actually supports, it raises an error.
+
+2006-09-22  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * EncryptedXml.cs : use Padding member instead of const ISO10126 (though
+         I doubt it should be there). Use it in DecryptData().
+
+2006-09-21  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * EncryptedXml.cs : implement orthodox padding on encryption.
+
+2006-09-21  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * EncryptedXml.cs :
+         Handle orthodox padding (xmlenc spec section 5.2). However, like 
+         EncryptedXmlSample1, it might not exist, so make it optional.
+
+2006-09-21  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * EncryptedXml.cs : True fix for DecryptData(). It indeed uses block size
+         (or possibly IV size) in Transform(), but only for stripping the heading
+         n bytes garbage.
+
+2006-09-20  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SignedXml.cs : overwrite my fix with Gert's patch on #79454 to make it
+         possible to handle multiple certificates.
+
+2006-09-20  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SignedXml.cs : handle KeyInfoX509Data in GetPublicKey(). Fixed #1 of
+         bug #79454.
+
+2006-09-07  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * EncryptedXml.cs : DecryptData() should not pass block size to
+         Transform() as the index.
+
+2006-09-06  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * CipherReference.cs, EncryptedReference.cs : unify duplicate code.
+         Remove incorrect name check in the latter class so that it works
+         for DataReference and KeyReference as well.
+
+2006-05-31  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * KeyInfoClause.cs: Under 2.0 the ctor is protected.
+       * Transform.cs: Under 2.0 the ctor is protected. Enable the use of 
+       XmlSecureResolver when the security manager is active.
+
+2006-01-30  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlDsigEnvelopedSignatureTransform.cs :
+         It should not remove nodes in another XmlNodeList while its
+         iterator is in active use. This is exposed by the recent
+         XmlNodeList change.
+
+2005-09-27  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * KeyInfoX509Data.cs: Remove old 2.0 specific check.
+       * XmlDsigXPathTransform.cs: Remove old 2.0 specific check. Return 
+       empty node list of the XmlDocument is null (fixed tests case for 2.0
+       RC).
+
+2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * EncryptionProperties.cs: Added [IndexerName] attribute to rename 
+       "this" from Item to ItemOf. Added missing Item(int) method.
+       * ReferenceList.cs: Added [IndexerName] attribute to rename "this" 
+       from Item to ItemOf.
+
+2005-05-04  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * SignedXml.cs: Return an empty (not null) KeyInfo by default and
+       don't throw a CryptographicException in CheckSignature (both NET_2_0).
+       * KeyInfoRetrievalMethod.cs: Don't include an empty URI attribute
+       in the XML output for NET_2_0.
+       * XmlDsigXPathTransform.cs: Throw an XPathException in NET_2_0 if no
+       xpath expression has been supplied to the transform.
+
+2005-05-03  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * XmlDsigXsltTransform.cs: Fixed 2 test cases (that nows throws 
+       ArgumentNullException) in 2.0.
+
+2005-05-02  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * SignedXml.cs: Throw ArgumentNullException in AddObject and 
+       AddReference methods in 2.0.
+       * XmlDsigC14NTransform.cs: Throw ArgumentException when loading from
+       an unknown type in 2.0 (it was simply ignored in 1.x).
+
+2005-04-26  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * KeyInfoX509Data.cs: Fixed to work biwht unit tests on both NET_1_1 
+       and NET_2_0 (except for obvious beta2 bugs). ArraList are now only 
+       created when required.
+
+2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * EncryptedData.cs: Avoid re-creating collection object on load.
+       * EncryptedKey.cs: Fix compiler warning (unused variables).
+       * EncryptedType.cs: Remove set on EncryptionProperties property.
+       * IRelDecryptor.cs: New. Interface for XrML support.
+       * SymmetricKeyWrap.cs: Comment unused static method Xor(byte[],int).
+       * XmlDecryptionTransform.cs: Fix compiler warning (unused variable).
+       * XmlDsigEnvelopedSignatureTransform.cs: Fix compiler warning.
+       * XmlLicenseTransform.cs: New. Class for XrML support.
+
+2005-04-24  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * SignedInfo.cs: Added [ComVisible (false)] to new property.
+       * SignedXml.cs: Added [ComVisible (false)] to new properties and 
+       methods.
+       * ReferenceList.cs: Fixed members signatures for beta2.
+       * Reference.cs: Added [ComVisible (false)] to new set_TransformChain.
+       * EncryptedType.cs: Fix compilation with EncryptionPropertyCollection
+       changes.
+       * DataObject.cs: Fix compilation warnings.
+       * EncryptedKey.cs: Fix compilation with ReferenceList and 
+       EncryptionPropertyCollection changes.
+       * EncryptionProperties.cs: Class has been renamed to 
+       EncryptionPropertyCollection.
+       * Transform.cs: Added [ComVisible (false)] to new properties and 
+       methods.
+       * EncryptedXml.cs: Changed XmlEncRSA1_5Url to XmlEncRSA15Url.
+       * KeyInfoRetrievalMethod.cs: Added [ComVisible (false)] to Type 
+       property.
+       * KeyInfoX509Data.cs: Added [ComVisible (false)] to AddSubjectKeyId
+       (string) method and implemented it.
+       * EncryptedData.cs: Changed EncryptionProperties to new 
+       EncryptionPropertyCollection.
+       * XmlDsigC14NTransform.cs: Added [ComVisible (false)] to 
+       GetDigestedOutput method and added a basic implementation.
+       * X509IssuerSerial.cs: IssuerName and SerialNumber are now properties.
+
+2005-04-23  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * EncryptedXml.cs, SignedXml.cs: Changed X509CertificateEx to 
+       X509Certificate2 to match beta2.
+
+2005-04-04  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlSignatureStreamReader.cs : new file. Handles Stream to rip CR off.
+       * XmlDsigXPathTransform.cs,
+         XmlDecryptionTransform.cs,
+         XmlDsigC14NTransform.cs,
+         XmlDsigEnvelopedSignatureTransform.cs,
+         XmlDsigXsltTransform.cs : use XmlSignatureStreamReader for Streams.
+
+2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * Signature.cs: Fixed Xmldsig and broken unit tests.
+       * SignedXml.cs: Fixed warning (level 4) for unused variable.
+       * XmlDsigEnvelopedSignatureTransform.cs: Fixed warning (l4) for unused
+       variable.
+
+2004-09-04  Tim Coleman <tim@timcoleman.com>
+       * XmlDecryptionTransform.cs:
+               Implement rudimentary xpointer support for Except URIs.
+
+2004-09-03  Tim Coleman <tim@timcoleman.com>
+       * EncryptedXml.cs: Add support for RSA for key formatting
+       * Reference.cs: Include XmlDecryptionTransform
+       * SignedXml.cs: 
+               Set the EncryptedKey on the XmlDecryptionTransform when 
+               loading XML
+       * XmlDecryptionTransform.cs:
+               Clean up decryption transformation to work without ugly hack.
+       * XmlDsigExcC14NTransform.cs XmlDsigExcC14NWithCommentsTransform.cs:
+               Implement this class based on XmlDsigC14N
+       * XmlSignature.cs: Add namespaces for various classes.
+       * KeyInfoEncryptedKey.cs SymmetricKeyWrap.cs: 
+               Remove TODO attributes from implemented methods.
+       * KeyInfoName.cs: Put #if NET_2_0 markers in
+       * Transform.cs: Implement GetDigestedOutput
+
+2004-09-02  Tim Coleman <tim@timcoleman.com>
+       * CipherReference.cs: Add XmlDecryptionTransform for 2.0
+       * EncryptedType.cs: Fix type initialization to conform to .NET
+       * EncryptedXml.cs:
+               Add support for RSA key decryption and "cloning" for Transform
+       * KeyInfoX509Data Reference.cs SignedInfo.cs XmlDsigC14NTransform.cs: 
+               Add 2.0 stubs
+       * Signature.cs:
+               Create internal GetXml function if we already have a doc
+       * SignedXml.cs: Fix the transformation when we get an XmlDocument out
+       * XmlDecryptionTransform.cs: Implemented Xml Decryption
+       * XmlSignature.cs: Add namespace for Xml Decryption
+
+2004-08-31  Tim Coleman <tim@timcoleman.com>
+       * XmlDsigExcC14NTransform.cs XmlDsigExcC14NWithCommentsTransform.cs:
+               Add new stub classes
+       * SignedXml.cs Transform.cs:
+               New methods for 2.0
+       * EncryptedXml.cs SymmetricKeyWrap.cs: 
+               Get symmetric key wrap to work for AES keys.
+
+2004-08-30  Tim Coleman <tim@timcoleman.com>
+       * EncryptedXml.cs: Implement lots of XML Encryption code.
+       * SymmetricKeyWrap.cs: Fix TripleDES keywrap algorithm.
+       * XmlSignature.cs: Add NET_2_0 check around EncryptedKey
+
+2004-08-30  Atsushi Enomoto <atsushi@ximian.com>
+
+       * KeyInfo.cs : NET_1_1 build fix.
+
+2004-08-29  Tim Coleman <tim@timcoleman.com>
+       * EncryptedKey.cs: Fix element name when generating XML.
+       * EncryptedXml.cs: Implement more of encryption/decryption routines for .NET 2.0
+       * KeyInfo.cs: Support for EncryptedKey KeyInfoClause.
+       * KeyInfoName.cs: Add missing constructor
+       * SymmetricKeyWrap.cs: Add untested TripleDES key wrap 
+       algorithms for encryption/decryption
+       * XmlSignature.cs: Add EncryptedKey constant.
+       * EncryptedData.cs: Add .NET 2.0 method stubs.
+
+2004-07-20  Atsushi Enomoto <atsushi@ximian.com>
+
+       * Signature.cs : Fixed NextElementPos() that incorrectly examined
+         node matching.
+
+2004-07-07  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * EncryptedXml.cs: Fixed Urls for XmlEncElementUrl and 
+       XmlEncElementContentUrl.
+       * X509IssuerSerial.cs: Make constructor internal so it doesn't show up
+       in corcompare results for NET_2_0 profile.
+
+2004-06-17  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * KeyInfoX509Data.cs: Removed old internal IssuerSerial for the 
+       undocumented structure (now documented, and public, in Fx 2.0).
+       * X509IssuerSerial.cs: Use structure as public in NET_2_0 and as 
+       internal before that.
+
+2004-06-10  Gert Driesen <drieseng@users.sourceforge.net>
+
+       * SignedXml.cs: API signature fixes
+
+2004-06-04  Atsushi Enomoto <atsushi@ximian.com>
+
+       * SignedXml.cs : Complete fix for bug #59545. Support #xpointer(id()).
+         Namespace fixup is required when signing prefixed xml.
+
+2004-06-04  Atsushi Enomoto <atsushi@ximian.com>
+
+       * SignedXml.cs : Fix for bug #59545. Handle #xpointer(/) as document.
+
+2004-05-31  Atsushi Enomoto <atsushi@ximian.com>
+
+       * SignedXml.cs : partial fix for bug #59165 that does not output
+         namespace that conflicts with element's namespace.
+
+2004-05-13  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * SignedXml.cs: Update TODO informations.
+
+2004-05-13  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlDsigBase64Transform.cs :
+         LoadInput() should retrieve all the descendants.
+         GetOutput() should handle nodes without digging into child nodes.
+
+2004-05-05  Atsushi Enomoto <atsushi@ximian.com>
+
+       * SignedXml.cs,
+         Transform.cs : code cleanup. #if !NET_1_0 -> #if NET_1_1.
+       * XmlDsigBase64Transform.cs : Should not output the content of the
+         selected element nodes. Put text content only those text nodes are
+         in the node list.
+       * XmlDsigEnvelopedSignatureTransform.cs : removed MonoTODO.
+       * XmlDsigXsltTransform.cs : Use XmlResolver to load document and
+         to transform. Throw null reference exception explicitly when
+         the input was not loaded.
+
+2004-04-02  Lluis Sanchez Gual  <lluis@ximian.com>
+
+       * XmlDsigEnvelopedSignatureTransform.cs, XmlDsigXPathTransform.cs,
+       XmlDsigXsltTransform.cs: Fixed build for net_1_0 profile.
+
+2004-03-30  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * Reference.cs: Changed code to use CryptoConfig to create transforms.
+       This is "the" way to do it (e.g. to allow new transforms to be added)
+       but cause problems when using VS.NET for debugging. Old code is still
+       present, but commented, for that cause.
+
+2004-03-27  Atsushi Enomoto <atsushi@ximian.com>
+
+       * SignedXml.cs : namespace nodes also should be supplied for enveloped
+         objects.
+       * KeyInfoRetrievalMethod.cs : Keep input element as well as others.
+
+2004-03-27  Atsushi Enomoto <atsushi@ximian.com>
+
+       * SignedXml.cs : XPath transformation output is not type of Stream.
+         Fix to support them by canonicalizing it.
+
+2004-03-27  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlDsigXsltTransform.cs : GetOutput() now just returns
+         transformation output.
+
+2004-03-27  Atsushi Enomoto <atsushi@ximian.com>
+
+       * SignedXml.cs : Added xmlns support for Manifest.
+
 2004-03-26  Sebastien Pouliot  <sebastien@ximian.com>
 
        * Manifest.cs: New. Support for <Manifest> in Xml Digital Signature.
@@ -8,6 +480,7 @@
        manifests. Made some changes to reuse existing code as much as 
        possible. Better support for local/remote files - but requires
        catching an Uri exception for local files :-(.
+       * XmlSignature.cs: Added constants for Manifest element and URI.
 
 2004-03-26  Atsushi Enomoto <atsushi@ximian.com>