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