示例#1
0
        public void SignAndVerify()
        {
            var xml = new XmlDocument();

            xml.LoadXml(
                @"<sbdh:StandardBusinessDocument xmlns:sbdh=""http://eessi.dgempl.ec.europa.eu/namespaces/sbdh"">
                    <sbdh:StandardBusinessDocumentHeader>
                    </sbdh:StandardBusinessDocumentHeader>
                    <sed:StructuredElectronicDocument xmlns:sed=""http://ec.europa.eu/eessi/ns/sed"">
                    </sed:StructuredElectronicDocument>
                </sbdh:StandardBusinessDocument>");

            var xadesSigner = new XadesSigner
            {
                Certificate = Certificates.CreateSelfSigned(),
                Xml         = xml
            };

            xadesSigner.Sign();

            var xadesVerifier = new XadesVerifier
            {
                Xml = xml
            };
            var isSignatureCorrect = xadesVerifier.Verify();

            Assert.IsTrue(isSignatureCorrect);
        }
示例#2
0
        public Attachment Build()
        {
            var sedXml = GetSed(Xml);

            var reader = new XmlNodeReader(sedXml);
            var doc    = new XmlDocument {
                PreserveWhitespace = true
            };

            doc.Load(reader);

            var xadesSigner = new XadesSigner
            {
                Xml         = doc,
                Certificate = Sender.Business
            };

            xadesSigner.Sign();

            Xml.DocumentElement.RemoveChild(sedXml);
            var newNode = Xml.ImportNode(doc.DocumentElement, true);

            Xml.DocumentElement.AppendChild(newNode);

            var sedStream = new MemoryStream();

            Xml.Save(sedStream);
            sedStream.Position = 0;

            return(new Attachment
            {
                ContentId = "DefaultSED",
                ContentType = "application/xml",
                Stream = sedStream,
                IsCompressionRequired = true
            });
        }