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