public void Load() { string xml = "<SignedInfo xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><CanonicalizationMethod Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\" /><SignatureMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\" /><Reference URI=\"#MyObjectId\"><DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\" /><DigestValue>/Vvq6sXEVbtZC8GwNtLQnGOy/VI=</DigestValue></Reference></SignedInfo>"; XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); info.LoadXml(doc.DocumentElement); Assert.Equal(xml, (info.GetXml().OuterXml)); Assert.Equal("http://www.w3.org/TR/2001/REC-xml-c14n-20010315", info.CanonicalizationMethod); Assert.Equal("http://www.w3.org/2000/09/xmldsig#rsa-sha1", info.SignatureMethod); Assert.Equal(1, info.References.Count); }
public void GetXmlWithSetProperty() { XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlForGetXml); SignedInfo sig = new SignedInfo(); sig.LoadXml((XmlElement)doc.SelectSingleNode("//*[local-name()='SignedInfo']")); sig.CanonicalizationMethod = "urn:foo"; XmlElement el = sig.GetXml(); Assert.True(doc != el.OwnerDocument, "#GetXmlWithSetProperty.document"); }
public void GetXmlWithoutSetProperty() { string result = @"<dsig:SignedInfo xmlns:dsig=""http://www.w3.org/2000/09/xmldsig#""><dsig:CanonicalizationMethod Algorithm=""http://www.w3.org/TR/2001/REC-xml-c14n-withcomments-20010315"" /><dsig:SignatureMethod Algorithm=""http://www.w3.org/2000/09/xmldsig#rsa-sha1"" /><dsig:Reference URI=""""><dsig:Transforms><dsig:Transform Algorithm=""http://www.w3.org/2000/09/xmldsig#enveloped-signature"" /></dsig:Transforms><dsig:DigestMethod Algorithm=""http://www.w3.org/2000/09/xmldsig#sha1"" /><dsig:DigestValue>nDF2V/bzRd0VE3EwShWtsBzTEDc=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo>"; XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlForGetXml); SignedInfo sig = new SignedInfo(); sig.LoadXml((XmlElement)doc.SelectSingleNode("//*[local-name()='SignedInfo']")); XmlElement el = sig.GetXml(); Assert.Equal(doc, el.OwnerDocument); Assert.Equal(result, el.OuterXml); }
[Test] // never fails public void EmptyReferenceWithoutSetProperty() { XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlForGetXml); XmlNode n = doc.SelectSingleNode("//*[local-name()='Reference']"); n.ParentNode.RemoveChild(n); SignedInfo sig = new SignedInfo(); sig.LoadXml((XmlElement)doc.SelectSingleNode("//*[local-name()='SignedInfo']")); XmlElement el = sig.GetXml(); }
public void EmptyReferenceWithSetProperty() { XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlForGetXml); XmlNode n = doc.SelectSingleNode("//*[local-name()='Reference']"); n.ParentNode.RemoveChild(n); SignedInfo sig = new SignedInfo(); sig.LoadXml((XmlElement)doc.SelectSingleNode("//*[local-name()='SignedInfo']")); sig.CanonicalizationMethod = "urn:foo"; Assert.Throws <CryptographicException>(() => sig.GetXml()); }