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); }
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 }); }