2004-08-29 Tim Coleman <tim@timcoleman.com>
[mono.git] / mcs / class / System.Security / System.Security.Cryptography.Xml / ChangeLog
1 2004-08-29  Tim Coleman <tim@timcoleman.com>
2         * EncryptedKey.cs: Fix element name when generating XML.
3         * EncryptedXml.cs: Implement more of encryption/decryption routines for .NET 2.0
4         * KeyInfo.cs: Support for EncryptedKey KeyInfoClause.
5         * KeyInfoName.cs: Add missing constructor
6         * SymmetricKeyWrap.cs: Add untested TripleDES key wrap 
7         algorithms for encryption/decryption
8         * XmlSignature.cs: Add EncryptedKey constant.
9         * EncryptedData.cs: Add .NET 2.0 method stubs.
10
11 2004-07-20  Atsushi Enomoto <atsushi@ximian.com>
12
13         * Signature.cs : Fixed NextElementPos() that incorrectly examined
14           node matching.
15
16 2004-07-07  Sebastien Pouliot  <sebastien@ximian.com>
17
18         * EncryptedXml.cs: Fixed Urls for XmlEncElementUrl and 
19         XmlEncElementContentUrl.
20         * X509IssuerSerial.cs: Make constructor internal so it doesn't show up
21         in corcompare results for NET_2_0 profile.
22
23 2004-06-17  Sebastien Pouliot  <sebastien@ximian.com>
24
25         * KeyInfoX509Data.cs: Removed old internal IssuerSerial for the 
26         undocumented structure (now documented, and public, in Fx 2.0).
27         * X509IssuerSerial.cs: Use structure as public in NET_2_0 and as 
28         internal before that.
29
30 2004-06-10  Gert Driesen <drieseng@users.sourceforge.net>
31
32         * SignedXml.cs: API signature fixes
33
34 2004-06-04  Atsushi Enomoto <atsushi@ximian.com>
35
36         * SignedXml.cs : Complete fix for bug #59545. Support #xpointer(id()).
37           Namespace fixup is required when signing prefixed xml.
38
39 2004-06-04  Atsushi Enomoto <atsushi@ximian.com>
40
41         * SignedXml.cs : Fix for bug #59545. Handle #xpointer(/) as document.
42
43 2004-05-31  Atsushi Enomoto <atsushi@ximian.com>
44
45         * SignedXml.cs : partial fix for bug #59165 that does not output
46           namespace that conflicts with element's namespace.
47
48 2004-05-13  Sebastien Pouliot  <sebastien@ximian.com>
49
50         * SignedXml.cs: Update TODO informations.
51
52 2004-05-13  Atsushi Enomoto <atsushi@ximian.com>
53
54         * XmlDsigBase64Transform.cs :
55           LoadInput() should retrieve all the descendants.
56           GetOutput() should handle nodes without digging into child nodes.
57
58 2004-05-05  Atsushi Enomoto <atsushi@ximian.com>
59
60         * SignedXml.cs,
61           Transform.cs : code cleanup. #if !NET_1_0 -> #if NET_1_1.
62         * XmlDsigBase64Transform.cs : Should not output the content of the
63           selected element nodes. Put text content only those text nodes are
64           in the node list.
65         * XmlDsigEnvelopedSignatureTransform.cs : removed MonoTODO.
66         * XmlDsigXsltTransform.cs : Use XmlResolver to load document and
67           to transform. Throw null reference exception explicitly when
68           the input was not loaded.
69
70 2004-04-02  Lluis Sanchez Gual  <lluis@ximian.com>
71
72         * XmlDsigEnvelopedSignatureTransform.cs, XmlDsigXPathTransform.cs,
73         XmlDsigXsltTransform.cs: Fixed build for net_1_0 profile.
74
75 2004-03-30  Sebastien Pouliot  <sebastien@ximian.com>
76
77         * Reference.cs: Changed code to use CryptoConfig to create transforms.
78         This is "the" way to do it (e.g. to allow new transforms to be added)
79         but cause problems when using VS.NET for debugging. Old code is still
80         present, but commented, for that cause.
81
82 2004-03-27  Atsushi Enomoto <atsushi@ximian.com>
83
84         * SignedXml.cs : namespace nodes also should be supplied for enveloped
85           objects.
86         * KeyInfoRetrievalMethod.cs : Keep input element as well as others.
87
88 2004-03-27  Atsushi Enomoto <atsushi@ximian.com>
89
90         * SignedXml.cs : XPath transformation output is not type of Stream.
91           Fix to support them by canonicalizing it.
92
93 2004-03-27  Atsushi Enomoto <atsushi@ximian.com>
94
95         * XmlDsigXsltTransform.cs : GetOutput() now just returns
96           transformation output.
97
98 2004-03-27  Atsushi Enomoto <atsushi@ximian.com>
99
100         * SignedXml.cs : Added xmlns support for Manifest.
101
102 2004-03-26  Sebastien Pouliot  <sebastien@ximian.com>
103
104         * Manifest.cs: New. Support for <Manifest> in Xml Digital Signature.
105         This should help us to validate more tests from the Phaos suite.
106         Note: Microsoft doesn't support this and we only support it for
107         verification (not signature generation).
108         * SignedXml.cs: Added support for Manifest, including recursive 
109         manifests. Made some changes to reuse existing code as much as 
110         possible. Better support for local/remote files - but requires
111         catching an Uri exception for local files :-(.
112         * XmlSignature.cs: Added constants for Manifest element and URI.
113
114 2004-03-26  Atsushi Enomoto <atsushi@ximian.com>
115
116         * SignedXml.cs :
117           - Use specified (or default) XmlResolver to get external resource,
118             instead of using WebRequest directly. Also modified it easier.
119           - ApplyTransform() : Clone only when it is required. Handle 
120             transformation output other than Stream.
121           - Even if applicable key was not found in GetHash(), don't throw
122             crypto exception every time and just return false (MS does it).
123             Throw an exception only when no key was specified as KeyInfo.
124         * XmlDsigEnvelopedSignatureTransform.cs : Fixed get_OutputTypes which
125           incorrectly set InputTypes internally.
126         * XmlDsigXPathTransform.cs : Context namespace nodes in loaded 
127           transform parameter (i.e. <XPath>..</XPath>) should be registered
128           to XsltContext. Otherwise prefix binding error occurs.
129           Just filter attribute node, instead of filtering attribute children.
130
131 2004-03-25  Sebastien Pouliot  <sebastien@ximian.com>
132
133         * SignedXml.cs: Added try/catch in CheckSignatureWithKey to return 
134         false on exceptions. Fix signature-rsa-detached-xslt-transform-bad
135         -retrieval-method.xml in the Phaos test suite.
136
137 2004-03-24  Atsushi Enomoto <atsushi@ximian.com>
138
139         * Reference.cs, Signature.cs : They should keep input element and hence
140           keep namespace context nodes on LoadXml() as same as SignedInfo.
141         * SignedXml.cs : Fixed SignedInfoTransformed() to fill context 
142           namespace nodes into the input document (unlike other classes, there
143           seems no other way to keep ns-nodes here).
144           Now some of W3C phaos xmldsig test passes.
145
146 2004-03-23  Atsushi Enomoto <atsushi@ximian.com>
147
148         * SignedInfo.cs : It holds input element and directly returns it
149           unless the properties are not set.
150           Throw CryptographicException when Reference is empty *and* GetXml()
151           is *created*. (when just returning input element, no exception is
152           thrown).
153
154 2004-03-23  Atsushi Enomoto <atsushi@ximian.com>
155
156         * DataObject.cs : It now holds element instead of each parameters.
157           Avoid loading element content to different document unless its
158           properties were modified (to keep namespace node context).
159
160 2004-03-20 Sebastien Pouliot  <sebastien@ximian.com>
161
162         * SignedXml.cs: Removed unused (and commented) ComputeHash method.
163
164 2004-03-19  Atsushi Enomoto <atsushi@ximian.com>
165
166         * XmlDsigXPathTransform.cs : just found stupid bug.
167
168 2004-03-19  Sebastien Pouliot  <sebastien@ximian.com>
169
170         * SignedXml.cs: Lot of small changes to complete TODOs and to match 
171         the new unit tests.
172
173 2004-03-17  Sebastien Pouliot  <sebastien@ximian.com>
174
175         * SignedXml.cs: The old method was working for creating signature -
176         so it was reintroduced for (only) this case.
177
178 2004-03-17  Atsushi Enomoto <atsushi@ximian.com>
179
180         * SignedXml.cs : the result from enveloped signature transform should
181           be canonicalized before getting its hash.
182         * XmlDsigEnvelopedSignatureTransform.cs : in XPath selection,
183           if the node is Signature itself it is not allowed.
184           PreserveWhitespace is required.
185
186 2004-03-16  Sebastien Pouliot  <sebastien@ximian.com>
187
188         * SignedXml.cs: Changed (again). This time we use the Stream when 
189         loading the document. We now pass 14 out of 15 of the Merlin's
190         tests (including one that MS fails). The only failing test is the
191         one that use the EnvelopedTransform (unfinished).
192
193 2004-03-16  Sebastien Pouliot  <sebastien@ximian.com>
194
195         * SignedXml.cs: Commented my last changes to SignedXml as it made other
196         unis tests fail (in the c14n-izer).
197
198 2004-03-16  Atsushi Enomoto <atsushi@ximian.com>
199
200         * XmlDsigNodeList.cs : removed BOM from code file.
201
202 2004-03-16  Atsushi Enomoto <atsushi@ximian.com>
203
204         * XmlDsigNodeList.cs : added.
205         * XmlDsigXPathTransform.cs : removed XmlDsigNodeList class.
206         * XmlDsigEnvelopedSignatureTransform.cs :
207           Implemented GetOutput(). However, it is totally MS behavior
208           dependent and not based on the spec (we can reimplement it based on
209           improved XmlDsigXPathTransform).
210         * SignedXml.cs : in GetOutput(), accept XmlNodeList input too.
211
212 2004-03-15  Sebastien Pouliot  <sebastien@ximian.com>
213
214         * SignedXml.cs: Now use the original Signature element before applying
215         the C14N transformation. Added a check for null in LoadXml.
216
217 2004-03-14  Atsushi Enomoto <atsushi@ximian.com>
218
219         * XmlDsigXPathTransform.cs : implemented GetOutput() (with some 
220           internal XPath context classes).
221
222 2004-03-13  Atsushi Enomoto <atsushi@ximian.com>
223
224         * XmlDsigXsltTransform.cs : LoadInnerXml() should just load stylesheet
225           and LoadInput() should just load transformed document.
226           Transformation should be done in GetOutput() because either of the
227           stylesheet or input can be loaded in prior. Adjusted code format.
228
229 2004-03-12  Sebastien Pouliot  <sebastien@ximian.com>
230
231         * Signature.cs: KeyInfo isn't required in schema.
232         * SignedInfo.cs: Added support for missing HMACOutputLength.
233         * SignedXml.cs: Added support to download a reference (experimental).
234         Now throw exception for unknown hash algorithm or canonicalization 
235         methods. Changed GetPublicKey to iterate all available keys (not just
236         the first one).
237
238 2004-03-09  Atsushi Enomoto <atsushi@ximian.com>
239
240         * KeyInfo.cs : Attribute Id was not handlded.
241         * KeyInfoX509Data.cs : all array members return null when there are
242           no such contents. Just find child elements, not descendants.
243         * SignedXml.cs : key is not always required when CheckSignature() is
244           called.
245         * XmlDsigXsltTransform.cs : LoadInput should allow node list.
246         * XmlSignature.cs : added GetChildElements().
247
248 2004-03-09  Atsushi Enomoto <atsushi@ximian.com>
249
250         * KeyInfoX509Data.cs : trivial local var name fix.
251
252 2004-03-09  Atsushi Enomoto <atsushi@ximian.com>
253
254         * KeyInfoX509Data.cs,
255           Reference.cs,
256           SignedInfo.cs,
257           XmlSignature.cs : GetElementsByTagName() should be eliminated or
258           at least should use namespace URI.
259
260 2004-03-04  Atsushi Enomoto <atsushi@ximian.com>
261
262         * KeyInfo.cs :
263           Fixed LoadXml() to skip text nodes as MS.NET does.
264           Uncommented out RSAKeyValue.
265         * Signature.cs : Fixed LoadXml(). Don't use GetElementsByTagName()
266           that incorrectly acquires descendants. Throw CryptographicException
267           if required elements were not found.
268         * Transform.cs : added internal GetResolver().
269         * XmlDsigXPathTransform.cs,
270           XmlDsigXsltTransform.cs : use XmlResolver.
271
272 2004-02-19  Tim Coleman <tim@timcoleman.com>
273         * SymmetricKeyWrap.cs:
274                 Add AES Key Wrap
275         * EncryptedXml.cs:
276                 Add calls to SymmetricKeyWrap
277
278 2004-02-11  Sebastien Pouliot  <sebastien@ximian.com>
279
280         * Reference.cs: Added LoadInnerXml to transforms. Removed unused 
281         variable.
282         * Transform.cs: Import GetInnerXml in GetXml.
283         * XmlDsigBase64Transform.cs: Now use a StreamWriter to avoid multiple
284         allocations.
285         * XmlDsigC14NTransform.cs: Added Stream support to LoadInput
286         * XmlDsigXPathTransform.cs: Fixed GetInnerXml to include xpath 
287         expression and LoadInput. It nows match MS implementation but doesn't
288         work like I think it should (but neither is MS implementation).
289
290 2004-02-10  Tim Coleman <tim@timcoleman.com>
291         * DataReference.cs EncryptedKey.cs EncryptedXml.cs
292         * KeyInfoEncryptedKey.cs KeyReference.cs ReferenceList.cs
293         * X509IssuerSerial.cs XmlDecryptionTransform.cs:
294                 Add new classes for Xml Encryption in 1.2
295         * CipherData.cs CipherReference.cs EncryptedData.cs
296         * EncryptedReference.cs EncryptionMethod.cs EncryptionProperty.cs :
297                 Change NamespaceURI reference to EncryptedXml class.
298                 Make compliant with 1.2
299         * XmlEncryption.cs:
300                 Add new entity names.
301
302
303 2004-02-07  Tim Coleman <tim@timcoleman.com>
304         * CipherData.cs CipherReference.cs EncryptedData.cs
305         * EncryptedReference.cs EncryptedType.cs EncryptionMethod.cs
306         * EncryptionProperties.cs EncryptionProperty.cs XmlEncryption.cs:
307                 New classes added for Xml Encryption in 1.2
308         * KeyInfoRetrievalMethod.cs:
309                 Added Type attribute for 1.2
310         * XmlSignature.cs:
311                 Added string constants for algorithm namespaces
312
313 2004-01-11  Sebastien Pouliot  <spouliot@videotron.ca>
314
315         * SignedXml.cs: Fixed class signature (for 1.1+) by adding public to 
316         Resolver property.
317         * Transform.cs: Fixed class signature (for 1.1+) by adding public to 
318         Resolver property.
319
320 2003-12-14  Sebastien Pouliot  <spouliot@videotron.ca>
321
322         * SignedXml.cs: Now load the public key when verifying (bug #52084)
323         and can find an element by it's Id when Id isn't defined in DTD or XSD.
324
325 2003-07-27  Sebastien Pouliot  <spouliot@videotron.ca>
326
327         * XmlSignature.cs: Changed USE_VERSION_1_0 for NET_1_0.
328
329 2003-07-24  Sebastien Pouliot  <spouliot@videotron.ca>
330
331         * XmlDsigC14NTransform.cs: Patch to use Mono.Xml.XmlCanonicalizer
332         from Aleksey Sanin.
333
334 2003-06-19  Nick Drochak <ndrochak@gol.com>
335
336         * DSAKeyValue.cs:
337         * RSAKeyValue.cs: Work around for mcs? bug 45127.
338
339 2003-06-11  Sebastien Pouliot <spouliot@motus.com>
340
341         * SignedXml.cs: Changed USE_VERSION_1_0 for NET_1_0.
342         * Transform.cs: Changed USE_VERSION_1_0 for NET_1_0.
343
344 2003-05-25  Sebastien Pouliot  <spouliot@videotron.ca>
345
346         * XmlSignature.cs: Changed string "RetrievalElement" to "RetrievalMethod"
347         to match framework 1.1 (this was a bug in framework 1.0).
348
349 2003-05-10  Sebastien Pouliot  <spouliot@videotron.ca>
350
351         * SignedXml.cs: Added property XmlResolver Resolver as per framework 1.1
352         documentation (no public declaration).
353         * Transform.cs: Added property XmlResolver Resolver as per framework 1.1
354         documentation (no public declaration).
355
356 2003-03-03  Sebastien Pouliot  <spouliot@videotron.ca>
357
358         * DSAKeyValue.cs: Added patch from Atsushi Eno (to remove string
359         XML generation).
360         * RSAKeyValue.cs: Added patch from Atsushi Eno (to remove string
361         XML generation).
362         * XmlDsigBase64Transform.cs: Fixed problem when using XPath.
363
364 2003-03-02  Sebastien Pouliot  <spouliot@videotron.ca>
365
366         * DSAKeyValue.cs: New XML generation is commented. Old string technique
367         did a better job to match MS implementation.
368         * DataObject.cs: Replaced XML generation from StringBuilder to XmlElement.
369         * KeyInfo.cs: Replaced XML generation from StringBuilder to XmlElement.
370         * KeyInfoName.cs: Replaced XML generation from StringBuilder to XmlElement.
371         * KeyInfoNode.cs: Replaced XML generation from StringBuilder to XmlElement.
372         * KeyInfoRetrievalMethod.cs: Replaced XML generation from StringBuilder to XmlElement.
373         * KeyInfoX509Data.cs: Replaced XML generation from StringBuilder to XmlElement.
374         * RSAKeyValue.cs: New XML generation is commented. Old string technique
375         did a better job to match MS implementation.
376         * Reference.cs: Replaced XML generation from StringBuilder to XmlElement.
377         * Signature.cs: Replaced XML generation from StringBuilder to XmlElement.
378         * SignedInfo.cs: Replaced XML generation from StringBuilder to XmlElement.
379         * SignedXml.cs: Replaced XML generation from StringBuilder to XmlElement.
380         * Transform.cs: Replaced XML generation from StringBuilder to XmlElement.
381         * XmlDsigEnvelopedSignatureTransform.cs: Added missing Algorithm URL.
382         * XmlDsigXPathTransform.cs: Added missing Algorithm URL.
383         * XmlSignature.cs: New. Private contants (construct similar to WSE).
384
385 2003-02-19  Sebastien Pouliot  <spouliot@videotron.ca>
386
387         * All: Corrected class indentation, minor fixes, added many MonoTODO (so class status
388         will reflect reality).
389
390 2003-01-17  Sebastien Pouliot  <spouliot@videotron.ca>
391
392         * KeyInfo.cs: Changed some protected declaration to private.
393         * KeyInfoName.cs: Changed some protected declaration to private.
394         * KeyInfoNode.cs: Changed some protected declaration to private.
395         * KeyInfoRetrievalMethod.cs: Changed some protected declaration to private.
396         * KeyInfoX509Data.cs: Changed some protected declaration to private.
397         * Transform.cs: Changed some protected declaration to private.
398         * XmlDsigBase64Transform.cs: Changed some protected declaration to private.
399         * XmlDsigC14NTransform.cs: Changed some protected declaration to private.
400         * XmlDsigC14NWithCommentsTransform.cs: Changed some protected declaration to private.
401         * XmlDsigEnvelopedSignatureTransform.cs: Changed some protected declaration to private.
402         * XmlDsigXPathTransform.cs: Changed some protected declaration to private.
403         * XmlDsigXsltTransform.cs: Changed some protected declaration to private.
404
405 2002-11-28  Sebastien Pouliot  <spouliot@videotron.ca>
406
407         * TODOAttribute.cs: New. Still much to do ;-)
408         * XmlDsigXPathTransform.cs: Corrected to compile. Transform is non-
409         functionnal.
410         * XmlDsigXsltTransform.cs: Corrected to compile. Transform is non-
411         functionnal.
412
413 2002-11-20  Sebastien Pouliot  <spouliot@videotron.ca>
414
415         * DataObject.cs: New. Complete implementation.
416         * DSAKeyValue.cs: New. Complete implementation.
417         * KeyInfo.cs: New. Complete implementation.
418         * KeyInfoClause.cs: New. Abstract class (complete).
419         * KeyInfoName.cs: New. Complete implementation.
420         * KeyInfoNode.cs: New. Complete implementation.
421         * KeyInfoRetrievalMethod.cs: New. Complete implementation.
422         * KeyInfoX509Data.cs: New. Complete implementation.
423         * Reference.cs: New. Incomplete implementation.
424         * RSAKeyValue.cs: New. Complete implementation.
425         * Signature.cs: New. Almost complete implementation - returned
426         XML isn't exactly like the MS implementation.
427         * SignedInfo.cs: New. Complete except SignatureLength.
428         * SignedXml.cs: New. Minimal implementation (only enveloped signatures).
429         Still many TODO!
430         * Transform.cs: New. Abstract class (complete).
431         * TransformChain.cs: New. Complete implementation.
432         * XmlDsigBase64Transform.cs: New. Stub + basic logic.
433         * XmlDsigC14NTransform.cs: New. Stub + basic logic.
434         * XmlDsigC14NWithCommentsTransform.cs: New. Stub + basic logic.
435         * XmlDsigEnvelopedSignatureTransform.cs: New. Stub + basic logic.
436         * XmlDsigXPathTransform.cs: New. Stub + basic logic.
437         * XmlDsigXsltTransform.cs: New. Stub + basic logic.