From 3136228e76478d1ac8d41c0f5ed007a3bcdbba60 Mon Sep 17 00:00:00 2001 From: Tim Young Date: Wed, 9 Aug 2017 15:32:04 -0500 Subject: [PATCH] Changes to allow encryption --- .../TrippleDESDocumentEncryption.cs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/EduNetworkBuilder/TrippleDESDocumentEncryption.cs b/EduNetworkBuilder/TrippleDESDocumentEncryption.cs index cc2618e..790a851 100644 --- a/EduNetworkBuilder/TrippleDESDocumentEncryption.cs +++ b/EduNetworkBuilder/TrippleDESDocumentEncryption.cs @@ -81,7 +81,7 @@ namespace EduNetworkBuilder EncryptedData ed = new EncryptedData(); // Specify the namespace URI for XML encryption elements. - ed.Type = EncryptedXml.XmlEncElementUrl; + ed.Type = Element + " " + EncryptedXml.XmlEncElementUrl; // Specify the namespace URI for the TrippleDES algorithm. ed.EncryptionMethod = new EncryptionMethod(EncryptedXml.XmlEncTripleDESUrl); @@ -96,11 +96,23 @@ namespace EduNetworkBuilder EncryptedXml.ReplaceElement(inputElement, ed, false); } - public void Decrypt() + XmlElement ChooseBestElement(string preferType) + { + XmlNodeList xnl = docValue.GetElementsByTagName("EncryptedData"); + foreach (XmlElement one in xnl.OfType()) + { + string TypeAttr = one.GetAttribute("Type"); + if (TypeAttr != null && TypeAttr.StartsWith(preferType)) + return one; + } + return xnl[0] as XmlElement; + } + + public void Decrypt(string preferType) { // XmlElement object. - XmlElement encryptedElement = docValue.GetElementsByTagName("EncryptedData")[0] as XmlElement; + XmlElement encryptedElement = ChooseBestElement(preferType); // If the EncryptedData element was not found, throw an exception. if (encryptedElement == null)