da40b59bdc04ebb2afb02ef14f93afdc8bb85ea6
[mono.git] / mcs / class / System.Security / System.Security.Cryptography.Xml / ChangeLog
1 2009-07-14  Sebastien Pouliot  <sebastien@ximian.com>
2
3         * SignedXml.cs: Fix HMACOutputLength to match XMLDSIG erratum (ref: 
4         CVE-2009-0217) and add stricter checks.
5
6 2009-06-05  Marek Safar  <marek.safar@gmail.com>
7
8         * *.cs: Fixed NET_2_0 conditional to actually handle Mono.Security
9         dependency.
10
11 2008-11-01  Sebastien Pouliot  <sebastien@ximian.com>
12
13         * EncryptedXml.cs: Add proper null check inside methods.
14         * SignedXml.cs: GetIdElement returns null if either of its parameter
15         is null.
16         * Transform.cs: Comment compatibility-NRE in GetDigestedOutput.
17         * XmlDecryptionTransform.cs: IsTargetElement returns null if either
18         of its parameter is null.
19         * XmlDsigC14NTransform.cs: Comment compatibility-NRE in 
20         GetDigestedOutput.
21         * XmlDsigExcC14NTransform.cs: Comment compatibility-NRE in 
22         GetDigestedOutput.
23         [Found using Gendarme CheckParametersNullityInVisibleMethodsRule]
24
25 2008-10-14  Gert Driesen  <drieseng@users.sourceforge.net>
26
27         * XmlDsigBase64Transform.cs: Use constant for Algorithm namespace.
28         * XmlDsigExcC14NTransform.cs: Fixed ctors to use WithComments
29         algorithm if includeComments is true. Assign includeNamespacesPrefixList
30         to instance field.
31         * XmlDsigExcC14NWithCommentsTransform.cs: Remove unnecessary
32         assignment to Algorithm now that base ctor is fixed.
33         * XmlDsigC14NWithCommentsTransform.cs: Remove unnecessary assignment
34         to Algorithm now that base ctor is fixed.
35         * XmlDsigC14NTransform.cs: In default ctor, just invoke .ctor (bool).
36         In .ctor (bool), assign WithComments algorithm if includeComments is
37         true. Use constants for Algorithm namespace.
38         * XmlDsigEnvelopedSignatureTransform.cs: Use constant for Algorithm
39         namespace.
40         * XmlDsigXPathTransform.cs: Use constant for Algorithm namespace.
41         * XmlDsigXsltTransform.cs: Use constant for Algorithm namespace.
42         * XmlLicenseTransform.cs: Assign Algorithm in ctor.
43         * XmlSignature.cs: Added constant for XmlLicenseTransform algorithm.
44
45 2008-10-12  Sebastien Pouliot  <sebastien@ximian.com>
46
47         * EncryptedReference.cs, EncryptedType.cs: Remove unneeded field
48         initialization to their default values.
49         [Found using Gendarme AvoidUnneededFieldInitializationRule]
50
51 2008-09-17  Sebastien Pouliot  <sebastien@ximian.com>
52
53         * SignedXmlTest.cs: Add support for signing XML using HMACSHA256,
54         HMACSHA384, HMACSHA512 and HMACRIPEMD160.
55         [Fix bug #425724]
56
57 2008-08-07  Atsushi Enomoto  <atsushi@ximian.com>
58
59         * set Algorithm in .ctor(bool), fixed bug #398904.
60
61 2008-08-06  Sebastien Pouliot  <sebastien@ximian.com>
62
63         * XmlDsigC14NTransform.cs,
64         * XmlDsigExcC14NTransform.cs
65         * XmlDsigXsltTransform.cs: Don't use is + as.
66         [Found using Gendarme AvoidRepetitiveCastsRule]
67
68 2008-06-28  Sebastien Pouliot  <sebastien@ximian.com>
69
70         * XmlDecryptionTransform.cs,
71         * XmlDsigC14NTransform.cs,
72         * XmlDsigEnvelopedSignatureTransform.cs,
73         * XmlDsigExcC14NTransform.cs,
74         * XmlDsigXsltTransform.cs: Replace Type.GetType("x") into typeof(x)
75         [Found using Gendarme AvoidTypeGetTypeForConstantStringsRule]
76
77 2008-05-25  Sebastien Pouliot  <sebastien@ximian.com>
78
79         * XmlDecryptionTransform.cs,
80         * XmlDsigBase64Transform.cs,
81         * XmlDsigC14NTransform.cs,
82         * XmlDsigEnvelopedSignatureTransform.cs,
83         * XmlDsigExcC14NTransform.cs,
84         * XmlDsigXPathTransform.cs,
85         * XmlDsigXsltTransform.cs,
86         * XmlLicenseTransform.cs: Don't use lock(this). In fact remove locking
87         since the worse that can happen is two copies of the same data.
88         [Found using Gendarme]
89
90 2008-01-12  Sebastien Pouliot  <sebastien@ximian.com>
91
92         * ReferenceList.cs: Avoid infinite recursion when setting []. 
93         Found by Gendarme.
94         * XmlDsigXPathTransform.cs: Fix direct comparison with NaN. Found 
95         by Gendarme.
96
97 2007-11-13  Atsushi Enomoto  <atsushi@ximian.com>
98
99         * XmlDsigExcC14NTransform.cs : removed extra [ComVisible].
100
101 2007-03-22  Atsushi Enomoto  <atsushi@ximian.com>
102
103         * Transform.cs, XmlDsigC14NTransform.cs, XmlDsigExcC14NTransform.cs :
104           handle PropagatedNamespaces.
105
106 2007-02-01  Atsushi Enomoto  <atsushi@ximian.com>
107
108         * SignedXml.cs : for internal URI (#blah) resolution, use
109           GetIdElement() so that any derived class which overrides this
110           method could resolve the reference correctly.
111
112 2007-01-25  Atsushi Enomoto  <atsushi@ximian.com>
113
114         * SignedXml.cs : for DataObject, copy namespaces in Data into Object
115           element itself. I haven't solved the puzzle on why it is needed
116           though.
117
118 2007-01-23  Atsushi Enomoto  <atsushi@ximian.com>
119
120         * DataObject.cs : it should not append created DataObject element to
121           the owner document. It affects on XPath selection, though currently
122           SignedXml.GetReferenceHash() is bogus so I cannot add meaningful
123           tests for it.
124
125 2007-01-22  Atsushi Enomoto  <atsushi@ximian.com>
126
127         * SignedInfo.cs : removed incorrect CanonicalizationMethodObject
128           implementation.
129         * EncryptedReference.cs : added exc-c14n support in LoadXml().
130
131 2007-01-17  Atsushi Enomoto  <atsushi@ximian.com>
132
133         * XmlDsigExcC14NTransform.cs :
134           re-imported from XmlDsigC14NTransform.cs.
135
136 2007-01-12  Atsushi Enomoto  <atsushi@ximian.com>
137
138         * SignedXml.cs : when there is an envelope document and no referenced
139           DataObject was found, then look for the target element from the
140           envelope.
141
142 2007-01-12  Atsushi Enomoto  <atsushi@ximian.com>
143
144         * DataObject.cs : don't clear attributes or children unnecessarily.
145
146 2007-01-12  Atsushi Enomoto  <atsushi@ximian.com>
147
148         * SignedXml.cs : actually ComputeSignature() itself does not raise
149           silly exception. It always use CryptographicException.
150           Added another check; malformed reference object.
151
152 2007-01-12  Atsushi Enomoto  <atsushi@ximian.com>
153
154         * SignedXml.cs : ComputeSignature() should check empty key.
155
156 2006-10-11  Atsushi Enomoto  <atsushi@ximian.com>
157
158         * SignedXml.cs : when SigningMethod does not match the algorithm that
159           the key actually supports, it raises an error.
160
161 2006-09-22  Atsushi Enomoto  <atsushi@ximian.com>
162
163         * EncryptedXml.cs : use Padding member instead of const ISO10126 (though
164           I doubt it should be there). Use it in DecryptData().
165
166 2006-09-21  Atsushi Enomoto  <atsushi@ximian.com>
167
168         * EncryptedXml.cs : implement orthodox padding on encryption.
169
170 2006-09-21  Atsushi Enomoto  <atsushi@ximian.com>
171
172         * EncryptedXml.cs :
173           Handle orthodox padding (xmlenc spec section 5.2). However, like 
174           EncryptedXmlSample1, it might not exist, so make it optional.
175
176 2006-09-21  Atsushi Enomoto  <atsushi@ximian.com>
177
178         * EncryptedXml.cs : True fix for DecryptData(). It indeed uses block size
179           (or possibly IV size) in Transform(), but only for stripping the heading
180           n bytes garbage.
181
182 2006-09-20  Atsushi Enomoto  <atsushi@ximian.com>
183
184         * SignedXml.cs : overwrite my fix with Gert's patch on #79454 to make it
185           possible to handle multiple certificates.
186
187 2006-09-20  Atsushi Enomoto  <atsushi@ximian.com>
188
189         * SignedXml.cs : handle KeyInfoX509Data in GetPublicKey(). Fixed #1 of
190           bug #79454.
191
192 2006-09-07  Atsushi Enomoto  <atsushi@ximian.com>
193
194         * EncryptedXml.cs : DecryptData() should not pass block size to
195           Transform() as the index.
196
197 2006-09-06  Atsushi Enomoto  <atsushi@ximian.com>
198
199         * CipherReference.cs, EncryptedReference.cs : unify duplicate code.
200           Remove incorrect name check in the latter class so that it works
201           for DataReference and KeyReference as well.
202
203 2006-05-31  Sebastien Pouliot  <sebastien@ximian.com>
204
205         * KeyInfoClause.cs: Under 2.0 the ctor is protected.
206         * Transform.cs: Under 2.0 the ctor is protected. Enable the use of 
207         XmlSecureResolver when the security manager is active.
208
209 2006-01-30  Atsushi Enomoto  <atsushi@ximian.com>
210
211         * XmlDsigEnvelopedSignatureTransform.cs :
212           It should not remove nodes in another XmlNodeList while its
213           iterator is in active use. This is exposed by the recent
214           XmlNodeList change.
215
216 2005-09-27  Sebastien Pouliot  <sebastien@ximian.com>
217
218         * KeyInfoX509Data.cs: Remove old 2.0 specific check.
219         * XmlDsigXPathTransform.cs: Remove old 2.0 specific check. Return 
220         empty node list of the XmlDocument is null (fixed tests case for 2.0
221         RC).
222
223 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
224
225         * EncryptionProperties.cs: Added [IndexerName] attribute to rename 
226         "this" from Item to ItemOf. Added missing Item(int) method.
227         * ReferenceList.cs: Added [IndexerName] attribute to rename "this" 
228         from Item to ItemOf.
229
230 2005-05-04  Sebastien Pouliot  <sebastien@ximian.com>
231
232         * SignedXml.cs: Return an empty (not null) KeyInfo by default and
233         don't throw a CryptographicException in CheckSignature (both NET_2_0).
234         * KeyInfoRetrievalMethod.cs: Don't include an empty URI attribute
235         in the XML output for NET_2_0.
236         * XmlDsigXPathTransform.cs: Throw an XPathException in NET_2_0 if no
237         xpath expression has been supplied to the transform.
238
239 2005-05-03  Sebastien Pouliot  <sebastien@ximian.com>
240
241         * XmlDsigXsltTransform.cs: Fixed 2 test cases (that nows throws 
242         ArgumentNullException) in 2.0.
243
244 2005-05-02  Sebastien Pouliot  <sebastien@ximian.com>
245
246         * SignedXml.cs: Throw ArgumentNullException in AddObject and 
247         AddReference methods in 2.0.
248         * XmlDsigC14NTransform.cs: Throw ArgumentException when loading from
249         an unknown type in 2.0 (it was simply ignored in 1.x).
250
251 2005-04-26  Sebastien Pouliot  <sebastien@ximian.com>
252
253         * KeyInfoX509Data.cs: Fixed to work biwht unit tests on both NET_1_1 
254         and NET_2_0 (except for obvious beta2 bugs). ArraList are now only 
255         created when required.
256
257 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
258
259         * EncryptedData.cs: Avoid re-creating collection object on load.
260         * EncryptedKey.cs: Fix compiler warning (unused variables).
261         * EncryptedType.cs: Remove set on EncryptionProperties property.
262         * IRelDecryptor.cs: New. Interface for XrML support.
263         * SymmetricKeyWrap.cs: Comment unused static method Xor(byte[],int).
264         * XmlDecryptionTransform.cs: Fix compiler warning (unused variable).
265         * XmlDsigEnvelopedSignatureTransform.cs: Fix compiler warning.
266         * XmlLicenseTransform.cs: New. Class for XrML support.
267
268 2005-04-24  Sebastien Pouliot  <sebastien@ximian.com>
269
270         * SignedInfo.cs: Added [ComVisible (false)] to new property.
271         * SignedXml.cs: Added [ComVisible (false)] to new properties and 
272         methods.
273         * ReferenceList.cs: Fixed members signatures for beta2.
274         * Reference.cs: Added [ComVisible (false)] to new set_TransformChain.
275         * EncryptedType.cs: Fix compilation with EncryptionPropertyCollection
276         changes.
277         * DataObject.cs: Fix compilation warnings.
278         * EncryptedKey.cs: Fix compilation with ReferenceList and 
279         EncryptionPropertyCollection changes.
280         * EncryptionProperties.cs: Class has been renamed to 
281         EncryptionPropertyCollection.
282         * Transform.cs: Added [ComVisible (false)] to new properties and 
283         methods.
284         * EncryptedXml.cs: Changed XmlEncRSA1_5Url to XmlEncRSA15Url.
285         * KeyInfoRetrievalMethod.cs: Added [ComVisible (false)] to Type 
286         property.
287         * KeyInfoX509Data.cs: Added [ComVisible (false)] to AddSubjectKeyId
288         (string) method and implemented it.
289         * EncryptedData.cs: Changed EncryptionProperties to new 
290         EncryptionPropertyCollection.
291         * XmlDsigC14NTransform.cs: Added [ComVisible (false)] to 
292         GetDigestedOutput method and added a basic implementation.
293         * X509IssuerSerial.cs: IssuerName and SerialNumber are now properties.
294
295 2005-04-23  Sebastien Pouliot  <sebastien@ximian.com>
296
297         * EncryptedXml.cs, SignedXml.cs: Changed X509CertificateEx to 
298         X509Certificate2 to match beta2.
299
300 2005-04-04  Atsushi Enomoto <atsushi@ximian.com>
301
302         * XmlSignatureStreamReader.cs : new file. Handles Stream to rip CR off.
303         * XmlDsigXPathTransform.cs,
304           XmlDecryptionTransform.cs,
305           XmlDsigC14NTransform.cs,
306           XmlDsigEnvelopedSignatureTransform.cs,
307           XmlDsigXsltTransform.cs : use XmlSignatureStreamReader for Streams.
308
309 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
310
311         * Signature.cs: Fixed Xmldsig and broken unit tests.
312         * SignedXml.cs: Fixed warning (level 4) for unused variable.
313         * XmlDsigEnvelopedSignatureTransform.cs: Fixed warning (l4) for unused
314         variable.
315
316 2004-09-04  Tim Coleman <tim@timcoleman.com>
317         * XmlDecryptionTransform.cs:
318                 Implement rudimentary xpointer support for Except URIs.
319
320 2004-09-03  Tim Coleman <tim@timcoleman.com>
321         * EncryptedXml.cs: Add support for RSA for key formatting
322         * Reference.cs: Include XmlDecryptionTransform
323         * SignedXml.cs: 
324                 Set the EncryptedKey on the XmlDecryptionTransform when 
325                 loading XML
326         * XmlDecryptionTransform.cs:
327                 Clean up decryption transformation to work without ugly hack.
328         * XmlDsigExcC14NTransform.cs XmlDsigExcC14NWithCommentsTransform.cs:
329                 Implement this class based on XmlDsigC14N
330         * XmlSignature.cs: Add namespaces for various classes.
331         * KeyInfoEncryptedKey.cs SymmetricKeyWrap.cs: 
332                 Remove TODO attributes from implemented methods.
333         * KeyInfoName.cs: Put #if NET_2_0 markers in
334         * Transform.cs: Implement GetDigestedOutput
335
336 2004-09-02  Tim Coleman <tim@timcoleman.com>
337         * CipherReference.cs: Add XmlDecryptionTransform for 2.0
338         * EncryptedType.cs: Fix type initialization to conform to .NET
339         * EncryptedXml.cs:
340                 Add support for RSA key decryption and "cloning" for Transform
341         * KeyInfoX509Data Reference.cs SignedInfo.cs XmlDsigC14NTransform.cs: 
342                 Add 2.0 stubs
343         * Signature.cs:
344                 Create internal GetXml function if we already have a doc
345         * SignedXml.cs: Fix the transformation when we get an XmlDocument out
346         * XmlDecryptionTransform.cs: Implemented Xml Decryption
347         * XmlSignature.cs: Add namespace for Xml Decryption
348
349 2004-08-31  Tim Coleman <tim@timcoleman.com>
350         * XmlDsigExcC14NTransform.cs XmlDsigExcC14NWithCommentsTransform.cs:
351                 Add new stub classes
352         * SignedXml.cs Transform.cs:
353                 New methods for 2.0
354         * EncryptedXml.cs SymmetricKeyWrap.cs: 
355                 Get symmetric key wrap to work for AES keys.
356
357 2004-08-30  Tim Coleman <tim@timcoleman.com>
358         * EncryptedXml.cs: Implement lots of XML Encryption code.
359         * SymmetricKeyWrap.cs: Fix TripleDES keywrap algorithm.
360         * XmlSignature.cs: Add NET_2_0 check around EncryptedKey
361
362 2004-08-30  Atsushi Enomoto <atsushi@ximian.com>
363
364         * KeyInfo.cs : NET_1_1 build fix.
365
366 2004-08-29  Tim Coleman <tim@timcoleman.com>
367         * EncryptedKey.cs: Fix element name when generating XML.
368         * EncryptedXml.cs: Implement more of encryption/decryption routines for .NET 2.0
369         * KeyInfo.cs: Support for EncryptedKey KeyInfoClause.
370         * KeyInfoName.cs: Add missing constructor
371         * SymmetricKeyWrap.cs: Add untested TripleDES key wrap 
372         algorithms for encryption/decryption
373         * XmlSignature.cs: Add EncryptedKey constant.
374         * EncryptedData.cs: Add .NET 2.0 method stubs.
375
376 2004-07-20  Atsushi Enomoto <atsushi@ximian.com>
377
378         * Signature.cs : Fixed NextElementPos() that incorrectly examined
379           node matching.
380
381 2004-07-07  Sebastien Pouliot  <sebastien@ximian.com>
382
383         * EncryptedXml.cs: Fixed Urls for XmlEncElementUrl and 
384         XmlEncElementContentUrl.
385         * X509IssuerSerial.cs: Make constructor internal so it doesn't show up
386         in corcompare results for NET_2_0 profile.
387
388 2004-06-17  Sebastien Pouliot  <sebastien@ximian.com>
389
390         * KeyInfoX509Data.cs: Removed old internal IssuerSerial for the 
391         undocumented structure (now documented, and public, in Fx 2.0).
392         * X509IssuerSerial.cs: Use structure as public in NET_2_0 and as 
393         internal before that.
394
395 2004-06-10  Gert Driesen <drieseng@users.sourceforge.net>
396
397         * SignedXml.cs: API signature fixes
398
399 2004-06-04  Atsushi Enomoto <atsushi@ximian.com>
400
401         * SignedXml.cs : Complete fix for bug #59545. Support #xpointer(id()).
402           Namespace fixup is required when signing prefixed xml.
403
404 2004-06-04  Atsushi Enomoto <atsushi@ximian.com>
405
406         * SignedXml.cs : Fix for bug #59545. Handle #xpointer(/) as document.
407
408 2004-05-31  Atsushi Enomoto <atsushi@ximian.com>
409
410         * SignedXml.cs : partial fix for bug #59165 that does not output
411           namespace that conflicts with element's namespace.
412
413 2004-05-13  Sebastien Pouliot  <sebastien@ximian.com>
414
415         * SignedXml.cs: Update TODO informations.
416
417 2004-05-13  Atsushi Enomoto <atsushi@ximian.com>
418
419         * XmlDsigBase64Transform.cs :
420           LoadInput() should retrieve all the descendants.
421           GetOutput() should handle nodes without digging into child nodes.
422
423 2004-05-05  Atsushi Enomoto <atsushi@ximian.com>
424
425         * SignedXml.cs,
426           Transform.cs : code cleanup. #if !NET_1_0 -> #if NET_1_1.
427         * XmlDsigBase64Transform.cs : Should not output the content of the
428           selected element nodes. Put text content only those text nodes are
429           in the node list.
430         * XmlDsigEnvelopedSignatureTransform.cs : removed MonoTODO.
431         * XmlDsigXsltTransform.cs : Use XmlResolver to load document and
432           to transform. Throw null reference exception explicitly when
433           the input was not loaded.
434
435 2004-04-02  Lluis Sanchez Gual  <lluis@ximian.com>
436
437         * XmlDsigEnvelopedSignatureTransform.cs, XmlDsigXPathTransform.cs,
438         XmlDsigXsltTransform.cs: Fixed build for net_1_0 profile.
439
440 2004-03-30  Sebastien Pouliot  <sebastien@ximian.com>
441
442         * Reference.cs: Changed code to use CryptoConfig to create transforms.
443         This is "the" way to do it (e.g. to allow new transforms to be added)
444         but cause problems when using VS.NET for debugging. Old code is still
445         present, but commented, for that cause.
446
447 2004-03-27  Atsushi Enomoto <atsushi@ximian.com>
448
449         * SignedXml.cs : namespace nodes also should be supplied for enveloped
450           objects.
451         * KeyInfoRetrievalMethod.cs : Keep input element as well as others.
452
453 2004-03-27  Atsushi Enomoto <atsushi@ximian.com>
454
455         * SignedXml.cs : XPath transformation output is not type of Stream.
456           Fix to support them by canonicalizing it.
457
458 2004-03-27  Atsushi Enomoto <atsushi@ximian.com>
459
460         * XmlDsigXsltTransform.cs : GetOutput() now just returns
461           transformation output.
462
463 2004-03-27  Atsushi Enomoto <atsushi@ximian.com>
464
465         * SignedXml.cs : Added xmlns support for Manifest.
466
467 2004-03-26  Sebastien Pouliot  <sebastien@ximian.com>
468
469         * Manifest.cs: New. Support for <Manifest> in Xml Digital Signature.
470         This should help us to validate more tests from the Phaos suite.
471         Note: Microsoft doesn't support this and we only support it for
472         verification (not signature generation).
473         * SignedXml.cs: Added support for Manifest, including recursive 
474         manifests. Made some changes to reuse existing code as much as 
475         possible. Better support for local/remote files - but requires
476         catching an Uri exception for local files :-(.
477         * XmlSignature.cs: Added constants for Manifest element and URI.
478
479 2004-03-26  Atsushi Enomoto <atsushi@ximian.com>
480
481         * SignedXml.cs :
482           - Use specified (or default) XmlResolver to get external resource,
483             instead of using WebRequest directly. Also modified it easier.
484           - ApplyTransform() : Clone only when it is required. Handle 
485             transformation output other than Stream.
486           - Even if applicable key was not found in GetHash(), don't throw
487             crypto exception every time and just return false (MS does it).
488             Throw an exception only when no key was specified as KeyInfo.
489         * XmlDsigEnvelopedSignatureTransform.cs : Fixed get_OutputTypes which
490           incorrectly set InputTypes internally.
491         * XmlDsigXPathTransform.cs : Context namespace nodes in loaded 
492           transform parameter (i.e. <XPath>..</XPath>) should be registered
493           to XsltContext. Otherwise prefix binding error occurs.
494           Just filter attribute node, instead of filtering attribute children.
495
496 2004-03-25  Sebastien Pouliot  <sebastien@ximian.com>
497
498         * SignedXml.cs: Added try/catch in CheckSignatureWithKey to return 
499         false on exceptions. Fix signature-rsa-detached-xslt-transform-bad
500         -retrieval-method.xml in the Phaos test suite.
501
502 2004-03-24  Atsushi Enomoto <atsushi@ximian.com>
503
504         * Reference.cs, Signature.cs : They should keep input element and hence
505           keep namespace context nodes on LoadXml() as same as SignedInfo.
506         * SignedXml.cs : Fixed SignedInfoTransformed() to fill context 
507           namespace nodes into the input document (unlike other classes, there
508           seems no other way to keep ns-nodes here).
509           Now some of W3C phaos xmldsig test passes.
510
511 2004-03-23  Atsushi Enomoto <atsushi@ximian.com>
512
513         * SignedInfo.cs : It holds input element and directly returns it
514           unless the properties are not set.
515           Throw CryptographicException when Reference is empty *and* GetXml()
516           is *created*. (when just returning input element, no exception is
517           thrown).
518
519 2004-03-23  Atsushi Enomoto <atsushi@ximian.com>
520
521         * DataObject.cs : It now holds element instead of each parameters.
522           Avoid loading element content to different document unless its
523           properties were modified (to keep namespace node context).
524
525 2004-03-20 Sebastien Pouliot  <sebastien@ximian.com>
526
527         * SignedXml.cs: Removed unused (and commented) ComputeHash method.
528
529 2004-03-19  Atsushi Enomoto <atsushi@ximian.com>
530
531         * XmlDsigXPathTransform.cs : just found stupid bug.
532
533 2004-03-19  Sebastien Pouliot  <sebastien@ximian.com>
534
535         * SignedXml.cs: Lot of small changes to complete TODOs and to match 
536         the new unit tests.
537
538 2004-03-17  Sebastien Pouliot  <sebastien@ximian.com>
539
540         * SignedXml.cs: The old method was working for creating signature -
541         so it was reintroduced for (only) this case.
542
543 2004-03-17  Atsushi Enomoto <atsushi@ximian.com>
544
545         * SignedXml.cs : the result from enveloped signature transform should
546           be canonicalized before getting its hash.
547         * XmlDsigEnvelopedSignatureTransform.cs : in XPath selection,
548           if the node is Signature itself it is not allowed.
549           PreserveWhitespace is required.
550
551 2004-03-16  Sebastien Pouliot  <sebastien@ximian.com>
552
553         * SignedXml.cs: Changed (again). This time we use the Stream when 
554         loading the document. We now pass 14 out of 15 of the Merlin's
555         tests (including one that MS fails). The only failing test is the
556         one that use the EnvelopedTransform (unfinished).
557
558 2004-03-16  Sebastien Pouliot  <sebastien@ximian.com>
559
560         * SignedXml.cs: Commented my last changes to SignedXml as it made other
561         unis tests fail (in the c14n-izer).
562
563 2004-03-16  Atsushi Enomoto <atsushi@ximian.com>
564
565         * XmlDsigNodeList.cs : removed BOM from code file.
566
567 2004-03-16  Atsushi Enomoto <atsushi@ximian.com>
568
569         * XmlDsigNodeList.cs : added.
570         * XmlDsigXPathTransform.cs : removed XmlDsigNodeList class.
571         * XmlDsigEnvelopedSignatureTransform.cs :
572           Implemented GetOutput(). However, it is totally MS behavior
573           dependent and not based on the spec (we can reimplement it based on
574           improved XmlDsigXPathTransform).
575         * SignedXml.cs : in GetOutput(), accept XmlNodeList input too.
576
577 2004-03-15  Sebastien Pouliot  <sebastien@ximian.com>
578
579         * SignedXml.cs: Now use the original Signature element before applying
580         the C14N transformation. Added a check for null in LoadXml.
581
582 2004-03-14  Atsushi Enomoto <atsushi@ximian.com>
583
584         * XmlDsigXPathTransform.cs : implemented GetOutput() (with some 
585           internal XPath context classes).
586
587 2004-03-13  Atsushi Enomoto <atsushi@ximian.com>
588
589         * XmlDsigXsltTransform.cs : LoadInnerXml() should just load stylesheet
590           and LoadInput() should just load transformed document.
591           Transformation should be done in GetOutput() because either of the
592           stylesheet or input can be loaded in prior. Adjusted code format.
593
594 2004-03-12  Sebastien Pouliot  <sebastien@ximian.com>
595
596         * Signature.cs: KeyInfo isn't required in schema.
597         * SignedInfo.cs: Added support for missing HMACOutputLength.
598         * SignedXml.cs: Added support to download a reference (experimental).
599         Now throw exception for unknown hash algorithm or canonicalization 
600         methods. Changed GetPublicKey to iterate all available keys (not just
601         the first one).
602
603 2004-03-09  Atsushi Enomoto <atsushi@ximian.com>
604
605         * KeyInfo.cs : Attribute Id was not handlded.
606         * KeyInfoX509Data.cs : all array members return null when there are
607           no such contents. Just find child elements, not descendants.
608         * SignedXml.cs : key is not always required when CheckSignature() is
609           called.
610         * XmlDsigXsltTransform.cs : LoadInput should allow node list.
611         * XmlSignature.cs : added GetChildElements().
612
613 2004-03-09  Atsushi Enomoto <atsushi@ximian.com>
614
615         * KeyInfoX509Data.cs : trivial local var name fix.
616
617 2004-03-09  Atsushi Enomoto <atsushi@ximian.com>
618
619         * KeyInfoX509Data.cs,
620           Reference.cs,
621           SignedInfo.cs,
622           XmlSignature.cs : GetElementsByTagName() should be eliminated or
623           at least should use namespace URI.
624
625 2004-03-04  Atsushi Enomoto <atsushi@ximian.com>
626
627         * KeyInfo.cs :
628           Fixed LoadXml() to skip text nodes as MS.NET does.
629           Uncommented out RSAKeyValue.
630         * Signature.cs : Fixed LoadXml(). Don't use GetElementsByTagName()
631           that incorrectly acquires descendants. Throw CryptographicException
632           if required elements were not found.
633         * Transform.cs : added internal GetResolver().
634         * XmlDsigXPathTransform.cs,
635           XmlDsigXsltTransform.cs : use XmlResolver.
636
637 2004-02-19  Tim Coleman <tim@timcoleman.com>
638         * SymmetricKeyWrap.cs:
639                 Add AES Key Wrap
640         * EncryptedXml.cs:
641                 Add calls to SymmetricKeyWrap
642
643 2004-02-11  Sebastien Pouliot  <sebastien@ximian.com>
644
645         * Reference.cs: Added LoadInnerXml to transforms. Removed unused 
646         variable.
647         * Transform.cs: Import GetInnerXml in GetXml.
648         * XmlDsigBase64Transform.cs: Now use a StreamWriter to avoid multiple
649         allocations.
650         * XmlDsigC14NTransform.cs: Added Stream support to LoadInput
651         * XmlDsigXPathTransform.cs: Fixed GetInnerXml to include xpath 
652         expression and LoadInput. It nows match MS implementation but doesn't
653         work like I think it should (but neither is MS implementation).
654
655 2004-02-10  Tim Coleman <tim@timcoleman.com>
656         * DataReference.cs EncryptedKey.cs EncryptedXml.cs
657         * KeyInfoEncryptedKey.cs KeyReference.cs ReferenceList.cs
658         * X509IssuerSerial.cs XmlDecryptionTransform.cs:
659                 Add new classes for Xml Encryption in 1.2
660         * CipherData.cs CipherReference.cs EncryptedData.cs
661         * EncryptedReference.cs EncryptionMethod.cs EncryptionProperty.cs :
662                 Change NamespaceURI reference to EncryptedXml class.
663                 Make compliant with 1.2
664         * XmlEncryption.cs:
665                 Add new entity names.
666
667
668 2004-02-07  Tim Coleman <tim@timcoleman.com>
669         * CipherData.cs CipherReference.cs EncryptedData.cs
670         * EncryptedReference.cs EncryptedType.cs EncryptionMethod.cs
671         * EncryptionProperties.cs EncryptionProperty.cs XmlEncryption.cs:
672                 New classes added for Xml Encryption in 1.2
673         * KeyInfoRetrievalMethod.cs:
674                 Added Type attribute for 1.2
675         * XmlSignature.cs:
676                 Added string constants for algorithm namespaces
677
678 2004-01-11  Sebastien Pouliot  <spouliot@videotron.ca>
679
680         * SignedXml.cs: Fixed class signature (for 1.1+) by adding public to 
681         Resolver property.
682         * Transform.cs: Fixed class signature (for 1.1+) by adding public to 
683         Resolver property.
684
685 2003-12-14  Sebastien Pouliot  <spouliot@videotron.ca>
686
687         * SignedXml.cs: Now load the public key when verifying (bug #52084)
688         and can find an element by it's Id when Id isn't defined in DTD or XSD.
689
690 2003-07-27  Sebastien Pouliot  <spouliot@videotron.ca>
691
692         * XmlSignature.cs: Changed USE_VERSION_1_0 for NET_1_0.
693
694 2003-07-24  Sebastien Pouliot  <spouliot@videotron.ca>
695
696         * XmlDsigC14NTransform.cs: Patch to use Mono.Xml.XmlCanonicalizer
697         from Aleksey Sanin.
698
699 2003-06-19  Nick Drochak <ndrochak@gol.com>
700
701         * DSAKeyValue.cs:
702         * RSAKeyValue.cs: Work around for mcs? bug 45127.
703
704 2003-06-11  Sebastien Pouliot <spouliot@motus.com>
705
706         * SignedXml.cs: Changed USE_VERSION_1_0 for NET_1_0.
707         * Transform.cs: Changed USE_VERSION_1_0 for NET_1_0.
708
709 2003-05-25  Sebastien Pouliot  <spouliot@videotron.ca>
710
711         * XmlSignature.cs: Changed string "RetrievalElement" to "RetrievalMethod"
712         to match framework 1.1 (this was a bug in framework 1.0).
713
714 2003-05-10  Sebastien Pouliot  <spouliot@videotron.ca>
715
716         * SignedXml.cs: Added property XmlResolver Resolver as per framework 1.1
717         documentation (no public declaration).
718         * Transform.cs: Added property XmlResolver Resolver as per framework 1.1
719         documentation (no public declaration).
720
721 2003-03-03  Sebastien Pouliot  <spouliot@videotron.ca>
722
723         * DSAKeyValue.cs: Added patch from Atsushi Eno (to remove string
724         XML generation).
725         * RSAKeyValue.cs: Added patch from Atsushi Eno (to remove string
726         XML generation).
727         * XmlDsigBase64Transform.cs: Fixed problem when using XPath.
728
729 2003-03-02  Sebastien Pouliot  <spouliot@videotron.ca>
730
731         * DSAKeyValue.cs: New XML generation is commented. Old string technique
732         did a better job to match MS implementation.
733         * DataObject.cs: Replaced XML generation from StringBuilder to XmlElement.
734         * KeyInfo.cs: Replaced XML generation from StringBuilder to XmlElement.
735         * KeyInfoName.cs: Replaced XML generation from StringBuilder to XmlElement.
736         * KeyInfoNode.cs: Replaced XML generation from StringBuilder to XmlElement.
737         * KeyInfoRetrievalMethod.cs: Replaced XML generation from StringBuilder to XmlElement.
738         * KeyInfoX509Data.cs: Replaced XML generation from StringBuilder to XmlElement.
739         * RSAKeyValue.cs: New XML generation is commented. Old string technique
740         did a better job to match MS implementation.
741         * Reference.cs: Replaced XML generation from StringBuilder to XmlElement.
742         * Signature.cs: Replaced XML generation from StringBuilder to XmlElement.
743         * SignedInfo.cs: Replaced XML generation from StringBuilder to XmlElement.
744         * SignedXml.cs: Replaced XML generation from StringBuilder to XmlElement.
745         * Transform.cs: Replaced XML generation from StringBuilder to XmlElement.
746         * XmlDsigEnvelopedSignatureTransform.cs: Added missing Algorithm URL.
747         * XmlDsigXPathTransform.cs: Added missing Algorithm URL.
748         * XmlSignature.cs: New. Private contants (construct similar to WSE).
749
750 2003-02-19  Sebastien Pouliot  <spouliot@videotron.ca>
751
752         * All: Corrected class indentation, minor fixes, added many MonoTODO (so class status
753         will reflect reality).
754
755 2003-01-17  Sebastien Pouliot  <spouliot@videotron.ca>
756
757         * KeyInfo.cs: Changed some protected declaration to private.
758         * KeyInfoName.cs: Changed some protected declaration to private.
759         * KeyInfoNode.cs: Changed some protected declaration to private.
760         * KeyInfoRetrievalMethod.cs: Changed some protected declaration to private.
761         * KeyInfoX509Data.cs: Changed some protected declaration to private.
762         * Transform.cs: Changed some protected declaration to private.
763         * XmlDsigBase64Transform.cs: Changed some protected declaration to private.
764         * XmlDsigC14NTransform.cs: Changed some protected declaration to private.
765         * XmlDsigC14NWithCommentsTransform.cs: Changed some protected declaration to private.
766         * XmlDsigEnvelopedSignatureTransform.cs: Changed some protected declaration to private.
767         * XmlDsigXPathTransform.cs: Changed some protected declaration to private.
768         * XmlDsigXsltTransform.cs: Changed some protected declaration to private.
769
770 2002-11-28  Sebastien Pouliot  <spouliot@videotron.ca>
771
772         * TODOAttribute.cs: New. Still much to do ;-)
773         * XmlDsigXPathTransform.cs: Corrected to compile. Transform is non-
774         functionnal.
775         * XmlDsigXsltTransform.cs: Corrected to compile. Transform is non-
776         functionnal.
777
778 2002-11-20  Sebastien Pouliot  <spouliot@videotron.ca>
779
780         * DataObject.cs: New. Complete implementation.
781         * DSAKeyValue.cs: New. Complete implementation.
782         * KeyInfo.cs: New. Complete implementation.
783         * KeyInfoClause.cs: New. Abstract class (complete).
784         * KeyInfoName.cs: New. Complete implementation.
785         * KeyInfoNode.cs: New. Complete implementation.
786         * KeyInfoRetrievalMethod.cs: New. Complete implementation.
787         * KeyInfoX509Data.cs: New. Complete implementation.
788         * Reference.cs: New. Incomplete implementation.
789         * RSAKeyValue.cs: New. Complete implementation.
790         * Signature.cs: New. Almost complete implementation - returned
791         XML isn't exactly like the MS implementation.
792         * SignedInfo.cs: New. Complete except SignatureLength.
793         * SignedXml.cs: New. Minimal implementation (only enveloped signatures).
794         Still many TODO!
795         * Transform.cs: New. Abstract class (complete).
796         * TransformChain.cs: New. Complete implementation.
797         * XmlDsigBase64Transform.cs: New. Stub + basic logic.
798         * XmlDsigC14NTransform.cs: New. Stub + basic logic.
799         * XmlDsigC14NWithCommentsTransform.cs: New. Stub + basic logic.
800         * XmlDsigEnvelopedSignatureTransform.cs: New. Stub + basic logic.
801         * XmlDsigXPathTransform.cs: New. Stub + basic logic.
802         * XmlDsigXsltTransform.cs: New. Stub + basic logic.