コード例 #1
0
        public static string GetObject2(XmlDocument doc, string id)
        {
            var signedXml = new SignedXmlObject(doc)
            {
                KeyInfo = new KeyInfo(), SigningKey = (RSA) new RSACryptoServiceProvider()
            };

            var transform1 = new XmlDsigEnvelopedSignatureTransform();
            var transform2 = new XmlDsigC14NWithCommentsTransform();


            var reference = new Reference {
                Uri = id
            };

            reference.AddTransform(transform1);
            reference.AddTransform(transform2);
            signedXml.AddReference(reference);

            signedXml.ComputeSignature();
            //signedXml.

            AsymmetricAlgorithm algorithm = new ECDsaCng();

            signedXml.CheckSignature(algorithm);

            var result = new StreamReader((MemoryStream)transform2.GetOutput()).ReadToEnd();

            if (!Verify(result, reference.DigestValue))
            {
                throw new Exception("Wrong canonicalization object");
            }

            //using (var file = File.CreateText(id.Replace("#", "canonical2-") + ".txt"))
            //{
            //  file.WriteLine(result);
            //}

            return(result);
        }
コード例 #2
0
        public static string GetObject(XmlDocument doc, string id)
        {
            var signedXml = new SignedXmlObject(doc)
            {
                KeyInfo = new KeyInfo(), SigningKey = (RSA) new RSACryptoServiceProvider()
            };

            var transform = new XmlDsigExcC14NTransform();


            var reference = new Reference {
                Uri = id
            };

            reference.AddTransform(transform);
            signedXml.AddReference(reference);

            try
            {
                signedXml.ComputeSignature();
            }
            catch (Exception)
            {
            }


            var result = new StreamReader((MemoryStream)transform.GetOutput()).ReadToEnd();

            if (!Verify(result, reference.DigestValue))
            {
                throw new Exception("Wrong canonicalization object");
            }

            //using (var file = File.CreateText(id.Replace("#", "canonical-")+".txt"))
            //{
            //  file.WriteLine(result);
            //}

            return(result);
        }