| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- //
- // Transform.cs - Transform implementation for XML Signature
- //
- // Author:
- // Sebastien Pouliot <[email protected]>
- // Atsushi Enomoto <[email protected]>
- //
- // (C) 2002, 2003 Motus Technologies Inc. (http://www.motus.com)
- // (C) 2004 Novell (http://www.novell.com)
- //
- using System.Runtime.InteropServices;
- using System.Security.Policy;
- using System.Xml;
- namespace System.Security.Cryptography.Xml {
- public abstract class Transform {
- private string algo;
- private XmlResolver xmlResolver;
- public Transform ()
- {
- // FIXME: enable it after CAS implementation
- #if false // NET_1_1
- xmlResolver = new XmlSecureResolver (new XmlUrlResolver (), (Evidence) new Evidence ());
- #else
- xmlResolver = new XmlUrlResolver ();
- #endif
- }
- public string Algorithm {
- get { return algo; }
- set { algo = value; }
- }
- public abstract Type[] InputTypes {
- get;
- }
- public abstract Type[] OutputTypes {
- get;
- }
- protected abstract XmlNodeList GetInnerXml ();
- public abstract object GetOutput ();
- public abstract object GetOutput (Type type);
- public XmlElement GetXml ()
- {
- XmlDocument document = new XmlDocument ();
- document.XmlResolver = GetResolver ();
- XmlElement xel = document.CreateElement (XmlSignature.ElementNames.Transform, XmlSignature.NamespaceURI);
- xel.SetAttribute (XmlSignature.AttributeNames.Algorithm, algo);
- XmlNodeList xnl = this.GetInnerXml ();
- if (xnl != null) {
- foreach (XmlNode xn in xnl) {
- XmlNode importedNode = document.ImportNode (xn, true);
- xel.AppendChild (importedNode);
- }
- }
- return xel;
- }
- public abstract void LoadInnerXml (XmlNodeList nodeList);
- public abstract void LoadInput (object obj);
- internal XmlResolver GetResolver ()
- {
- return xmlResolver;
- }
- #if NET_1_1
- [ComVisible(false)]
- public XmlResolver Resolver {
- set { xmlResolver = value; }
- }
- #endif
- }
- }
|