Example #1
0
        public void LoadNoTransform()
        {
            string      test = "<Reference URI=\"#MyObjectId\" xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\" /><DigestValue>/Vvq6sXEVbtZC8GwNtLQnGOy/VI=</DigestValue></Reference>";
            XmlDocument doc  = new XmlDocument();

            doc.LoadXml(test);
            reference.LoadXml(doc.DocumentElement);
            Assert.AreEqual(test, (reference.GetXml().OuterXml), "Load-Xml");
            Assert.AreEqual("#MyObjectId", reference.Uri, "Load-URI");
            byte[] hash = { 0xFD, 0x5B, 0xEA, 0xEA, 0xC5, 0xC4, 0x55, 0xBB, 0x59, 0x0B, 0xC1, 0xB0, 0x36, 0xD2, 0xD0, 0x9C, 0x63, 0xB2, 0xFD, 0x52 };
            AssertCrypto.AssertEquals("Load-Digest", hash, reference.DigestValue);
            Assert.AreEqual(0, reference.TransformChain.Count, "Load-#Transform");
        }
Example #2
0
        public void Complex()
        {
            KeyInfoX509Data data1 = new KeyInfoX509Data(cert);
            KeyInfoX509Data data2 = new KeyInfoX509Data();

            XmlElement xel = data1.GetXml();

            data2.LoadXml(xel);

            Assert.AreEqual((data1.GetXml().OuterXml), (data2.GetXml().OuterXml), "data1==data2");
            byte[] c = (data1.Certificates[0] as X509Certificate).GetRawCertData();
            AssertCrypto.AssertEquals("Certificate[0]", cert, c);

            // add a second X.509 certificate
            X509Certificate x509 = new X509Certificate(cert2);

            data1.AddCertificate(x509);
            xel = data1.GetXml();
            data2.LoadXml(xel);
            Assert.AreEqual((data1.GetXml().OuterXml), (data2.GetXml().OuterXml), "data1==data2");
            c = (data1.Certificates [1] as X509Certificate).GetRawCertData();
            Assert.AreEqual(cert2, c, "Certificate[1]");

            // add properties from a third X.509 certificate
            x509 = new X509Certificate(cert3);
            data1.AddIssuerSerial(x509.GetIssuerName(), x509.GetSerialNumberString());
            xel = data1.GetXml();
            data2.LoadXml(xel);
            Assert.AreEqual((data1.GetXml().OuterXml), (data2.GetXml().OuterXml), "data1==data2");
            // TODO: The type of IssuerSerial isn't documented

            // X509Certificate doesn't export SubjectKeyId so we must improvise
            byte[] skid = { 0xDE, 0xAD, 0xC0, 0xDE };
            data1.AddSubjectKeyId(skid);
            xel = data1.GetXml();
            data2.LoadXml(xel);
            Assert.AreEqual((data1.GetXml().OuterXml), (data2.GetXml().OuterXml), "data1==data2");
            Assert.AreEqual(skid, (byte[])data1.SubjectKeyIds[0], "SubjectKeyId");
            data1.AddSubjectName(x509.GetName());
            xel = data1.GetXml();
            data2.LoadXml(xel);
            Assert.AreEqual((data1.GetXml().OuterXml), (data2.GetXml().OuterXml), "data1==data2");
            string s = (string)data1.SubjectNames [0];

            Assert.AreEqual(x509.GetName(), s, "SubjectName");
        }