* 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
+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.
using System.Xml;
namespace System.Security.Cryptography.Xml {
+
public sealed class EncryptedData : EncryptedType {
#region Constructors
public EncryptedData ()
- : base ()
{
}
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;
throw new CryptographicException ("Malformed EncryptedKey element.");
else {
EncryptionMethod = null;
- KeyInfo keyInfo = null;
- CipherData cipherData = null;
EncryptionMethod = null;
EncryptionProperties.Clear ();
ReferenceList.Clear ();
public virtual EncryptionPropertyCollection EncryptionProperties {
get { return encryptionProperties; }
- set { encryptionProperties = value; }
}
public virtual string Id {
--- /dev/null
+//
+// 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
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;
- }
+ }*/
}
}
using System.Xml;
namespace System.Security.Cryptography.Xml {
+
public class XmlDecryptionTransform : Transform {
#region Fields
Type[] outputTypes;
object inputObj;
ArrayList exceptUris;
- XmlNodeList innerXml;
object lockObject;
const string NamespaceUri = "http://www.w3.org/2002/07/decrypt#";
#region Constructors
public XmlDecryptionTransform ()
- : base ()
{
Algorithm = XmlSignature.AlgorithmNamespaces.XmlDecryptionTransform;
encryptedXml = new EncryptedXml ();
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;
--- /dev/null
+//
+// 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