2005-04-25 Sebastien Pouliot <sebastien@ximian.com>
authorSebastien Pouliot <sebastien@ximian.com>
Mon, 25 Apr 2005 11:52:50 +0000 (11:52 -0000)
committerSebastien Pouliot <sebastien@ximian.com>
Mon, 25 Apr 2005 11:52:50 +0000 (11:52 -0000)
* EncryptedData.cs: Avoid re-creating collection object on load.
* EncryptedKey.cs: Fix compiler warning (unused variables).
* EncryptedType.cs: Remove set on EncryptionProperties property.
* IRelDecryptor.cs: New. Interface for XrML support.
* SymmetricKeyWrap.cs: Comment unused static method Xor(byte[],int).
* XmlDecryptionTransform.cs: Fix compiler warning (unused variable).
* XmlDsigEnvelopedSignatureTransform.cs: Fix compiler warning.
* XmlLicenseTransform.cs: New. Class for XrML support.

svn path=/trunk/mcs/; revision=43539

mcs/class/System.Security/System.Security.Cryptography.Xml/ChangeLog
mcs/class/System.Security/System.Security.Cryptography.Xml/EncryptedData.cs
mcs/class/System.Security/System.Security.Cryptography.Xml/EncryptedKey.cs
mcs/class/System.Security/System.Security.Cryptography.Xml/EncryptedType.cs
mcs/class/System.Security/System.Security.Cryptography.Xml/IRelDecryptor.cs [new file with mode: 0644]
mcs/class/System.Security/System.Security.Cryptography.Xml/SymmetricKeyWrap.cs
mcs/class/System.Security/System.Security.Cryptography.Xml/XmlDecryptionTransform.cs
mcs/class/System.Security/System.Security.Cryptography.Xml/XmlDsigEnvelopedSignatureTransform.cs
mcs/class/System.Security/System.Security.Cryptography.Xml/XmlLicenseTransform.cs [new file with mode: 0644]

index 289a65c5f727a79e07cf44ab2aaaad1f057de968..c0279d8df2438a74bac241a8e78fd0e47f6ab0aa 100644 (file)
@@ -1,3 +1,14 @@
+2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * EncryptedData.cs: Avoid re-creating collection object on load.
+       * EncryptedKey.cs: Fix compiler warning (unused variables).
+       * EncryptedType.cs: Remove set on EncryptionProperties property.
+       * IRelDecryptor.cs: New. Interface for XrML support.
+       * SymmetricKeyWrap.cs: Comment unused static method Xor(byte[],int).
+       * XmlDecryptionTransform.cs: Fix compiler warning (unused variable).
+       * XmlDsigEnvelopedSignatureTransform.cs: Fix compiler warning.
+       * XmlLicenseTransform.cs: New. Class for XrML support.
+
 2005-04-24  Sebastien Pouliot  <sebastien@ximian.com>
 
        * SignedInfo.cs: Added [ComVisible (false)] to new property.
index b5d712a3cef710fe750e8233ed71500382b848b2..425e42fb5d01552b54b467c28c15dfb832c6aef5 100644 (file)
@@ -34,12 +34,12 @@ using System.Security.Cryptography.X509Certificates;
 using System.Xml;
 
 namespace System.Security.Cryptography.Xml {
+
        public sealed class EncryptedData : EncryptedType {
 
                #region Constructors
 
                public EncryptedData ()
-                       : base ()
                {
                }
 
@@ -93,10 +93,8 @@ namespace System.Security.Cryptography.Xml {
                                throw new CryptographicException ("Malformed EncryptedData element.");
                        else {
                                EncryptionMethod = null;
-                               KeyInfo keyInfo = null;
-                               CipherData cipherData = null;
                                EncryptionMethod = null;
-                               EncryptionProperties = new EncryptionPropertyCollection ();
+                               EncryptionProperties.Clear ();
                                Id = null;
                                Type = null;
                                MimeType = null;
index 8fb2d70546ac1bffa711436099def0f9d3b30c04..9067f802e0018e754683d0e37f261594e5764080 100644 (file)
@@ -143,8 +143,6 @@ namespace System.Security.Cryptography.Xml {
                                throw new CryptographicException ("Malformed EncryptedKey element.");
                        else {
                                EncryptionMethod = null;
-                               KeyInfo keyInfo = null;
-                               CipherData cipherData = null;
                                EncryptionMethod = null;
                                EncryptionProperties.Clear ();
                                ReferenceList.Clear ();
index dacaabd16f356accec61a4246ec00b766c7377ed..96162a9ba4d0bb46f388ecb1c8cc69b06ca6a09b 100644 (file)
@@ -83,7 +83,6 @@ namespace System.Security.Cryptography.Xml {
 
                public virtual EncryptionPropertyCollection EncryptionProperties {
                        get { return encryptionProperties; }
-                       set { encryptionProperties = value; }
                }
 
                public virtual string Id {
diff --git a/mcs/class/System.Security/System.Security.Cryptography.Xml/IRelDecryptor.cs b/mcs/class/System.Security/System.Security.Cryptography.Xml/IRelDecryptor.cs
new file mode 100644 (file)
index 0000000..b0228a1
--- /dev/null
@@ -0,0 +1,41 @@
+//
+// System.Security.Cryptography.Xml.IRelDecryptor interface
+//
+// Author:
+//     Sebastien Pouliot  <sebastien@ximian.com>
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.IO;
+
+namespace System.Security.Cryptography.Xml {
+
+       public interface IRelDecryptor {
+
+               Stream Decrypt (EncryptionMethod encryptionMethod, KeyInfo keyInfo, Stream toDecrypt);
+       }
+}
+
+#endif
index dc2c30ed5243cf77a2960f6cc31c41be0fab000b..bdcfc14ab823c061b126677b4f7918243cfe356f 100644 (file)
@@ -355,13 +355,13 @@ namespace System.Security.Cryptography.Xml {
                        return output;
                }
 
-               private static byte[] Xor (byte[] x, int n)
+/*             private static byte[] Xor (byte[] x, int n)
                {
                        byte[] output = new Byte [x.Length];
                        for (int i = 0; i < x.Length; i += 1)
                                output [i] = (byte) ((int) x [i] ^ n);
                        return output;
-               }
+               }*/
        }
 }
 
index b10b7ecf4e22cd15187054c0ad291b9babe0e3af..27ac0f527de2147272a4c7deb959ecd45aa2d3df 100644 (file)
@@ -34,6 +34,7 @@ using System.IO;
 using System.Xml;
 
 namespace System.Security.Cryptography.Xml {
+
        public class XmlDecryptionTransform : Transform {
 
                #region Fields
@@ -43,7 +44,6 @@ namespace System.Security.Cryptography.Xml {
                Type[] outputTypes;
                object inputObj;
                ArrayList exceptUris;
-               XmlNodeList innerXml;
                object lockObject;
 
                const string NamespaceUri = "http://www.w3.org/2002/07/decrypt#";
@@ -53,7 +53,6 @@ namespace System.Security.Cryptography.Xml {
                #region Constructors
        
                public XmlDecryptionTransform ()
-                       : base ()
                {
                        Algorithm = XmlSignature.AlgorithmNamespaces.XmlDecryptionTransform;
                        encryptedXml = new EncryptedXml ();
index 4458f28887ba7f8ab3932a9e2b069fd2468982ae..dc450c0c1b4f0b694f90d7a6d66e0484f8eb2e1f 100644 (file)
@@ -139,7 +139,7 @@ namespace System.Security.Cryptography.Xml {
 
                private XmlNamespaceManager GetNamespaceManager (XmlNode n)
                {
-                       XmlDocument doc = n is XmlDocument ? n as XmlDocument : n.OwnerDocument;
+                       XmlDocument doc = ((n is XmlDocument) ? (n as XmlDocument) : n.OwnerDocument);
                        XmlNamespaceManager nsmgr = new XmlNamespaceManager (doc.NameTable);
                        nsmgr.AddNamespace ("dsig", XmlSignature.NamespaceURI);
                        return nsmgr;
diff --git a/mcs/class/System.Security/System.Security.Cryptography.Xml/XmlLicenseTransform.cs b/mcs/class/System.Security/System.Security.Cryptography.Xml/XmlLicenseTransform.cs
new file mode 100644 (file)
index 0000000..ee5d4f5
--- /dev/null
@@ -0,0 +1,110 @@
+//
+// System.Security.Cryptography.Xml.XmlLicenseTransform class
+//
+// Author:
+//     Sebastien Pouliot  <sebastien@ximian.com>
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Xml;
+
+namespace System.Security.Cryptography.Xml {
+
+       public class XmlLicenseTransform : Transform {
+
+               private IRelDecryptor _decryptor;
+               private Type[] inputTypes;
+               private Type[] outputTypes;
+               private object lockObject = new object ();
+
+               public XmlLicenseTransform ()
+               {
+               }
+
+               public IRelDecryptor Decryptor {
+                       get { return _decryptor; }
+                       set { _decryptor = value; }
+               }
+
+               public override Type[] InputTypes {
+                       get { 
+                               if (inputTypes == null) {
+                                       lock (lockObject) {
+                                               inputTypes = new Type [1] { typeof (XmlDocument) };
+                                       }
+                               }
+                               return inputTypes;
+                       }
+               }
+
+               public override Type[] OutputTypes {
+                       get { 
+                               if (outputTypes == null) {
+                                       lock (lockObject) {
+                                               outputTypes = new Type [1] {typeof (XmlDocument)};
+                                       }
+                               }
+                               return outputTypes;
+                       }
+               }
+
+               [MonoTODO]
+               protected override XmlNodeList GetInnerXml ()
+               {
+                       return null;
+               }
+
+               [MonoTODO]
+               public override object GetOutput ()
+               {
+                       return null;
+               }
+
+               public override object GetOutput (Type type)
+               {
+                       if (type != typeof (XmlDocument))
+                               throw new ArgumentException ("type");
+                       return GetOutput ();
+               }
+
+               public override void LoadInnerXml (XmlNodeList nodeList)
+               {
+                       // documented as not supported
+               }
+
+               [MonoTODO]
+               public override void LoadInput (object obj)
+               {
+                       if (obj != typeof (XmlDocument))
+                               throw new ArgumentException ("obj");
+                       if (_decryptor == null)
+                               throw new CryptographicException (Locale.GetText ("missing decryptor"));
+                       // TODO: check for <issuer> element
+                       // TODO: check for <license> element
+               }
+       }
+}
+
+#endif