/// <summary> /// Genera y Firma un Doc XML /// </summary> /// <typeparam name="TSunat">Ubl entity</typeparam> /// <param name="pobjOperationResult">resultado</param> /// <param name="objXml">Obj de Entidad UBL</param> /// <param name="certificado">Certificado X509 v3</param> /// <exception cref="System.InvalidOperationException"></exception> /// <returns></returns> public static byte[] GenFile <TSunat>(ref OperationResult pobjOperationResult, TSunat objXml, X509Certificate2 certificado) where TSunat : Gs.Ubl.v2.UblBaseDocumentType { var serializer = new XmlSerializer(typeof(TSunat)); var doc = new XmlDocument(); using (var memXml = new MemoryStream()) { serializer.Serialize(memXml, objXml); memXml.Seek(0, SeekOrigin.Begin); doc.Load(memXml); } #region Se firma el Xml creado. try { XmlSignatureProvider.SignXmlFile(doc, certificado); using (var mem = new MemoryStream()) { doc.Save(mem); var res = mem.ToArray(); pobjOperationResult.Success = true; return(res); } } catch (Exception e) { pobjOperationResult.Success = false; pobjOperationResult.Error = e.Message; } #endregion return(null); }
public void VeifyXmlFile_NotValid_Test() { var path = Path.Combine(Environment.CurrentDirectory, "Resources", "20600995805-03-B001-1.xml"); var result = XmlSignatureProvider.VerifyXmlFile(path); Assert.IsFalse(result); }
public void VerifyXmlFileTest() { var path = Path.Combine(Environment.CurrentDirectory, "Resources", "20552256647-01-FF12-242.xml"); var result = XmlSignatureProvider.VerifyXmlFile(path); Assert.IsTrue(result); }