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