Beispiel #1
0
        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);
        }
Beispiel #2
0
        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");
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        [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();
        }
Beispiel #5
0
        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());
        }