Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void AddIdentificacionPolitica(string path)
- {
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.PreserveWhitespace = true;
- xmlDoc.Load(path);
- try
- {
- result = "";
- string uri = "http://www.w3.org/2000/09/xmldsig#";
- string URI = "http://uri.etsi.org/01903/v1.3.2#";
- XmlElement DigestMethod = xmlDoc.CreateElement("ds", "DigestMethod");
- XmlElement DigestValue = xmlDoc.CreateElement("ds", "DigestValue");
- XmlElement SignaturePolicyIdentifier = xmlDoc.CreateElement("xades", "SignaturePolicyIdentifier", URI);
- XmlElement SignaturePolicyId = xmlDoc.CreateElement("xades", "SignaturePolicyId", URI);
- SignaturePolicyIdentifier.AppendChild(SignaturePolicyId);
- XmlElement SigPolicyId = xmlDoc.CreateElement("xades", "SigPolicyId", URI);
- SignaturePolicyId.AppendChild(SigPolicyId);
- XmlElement Identifier = xmlDoc.CreateElement("xades", "Identifier", URI);
- Identifier.InnerText = "https://tribunet.hacienda.go.cr/docs/esquemas/2016/v4.1/Resolucion_Comprobantes_Electronicos_DGT-R-48-2016.pdf";
- SigPolicyId.AppendChild(Identifier);
- XmlElement SigPolicyHash = xmlDoc.CreateElement("xades", "SigPolicyHash", URI);
- SignaturePolicyId.AppendChild(SigPolicyHash);
- DigestMethod = xmlDoc.CreateElement("ds", "DigestMethod",uri);
- DigestMethod.SetAttribute("Algorithm", "http://www.w3.org/2001/04/xmlenc#sha256");
- DigestValue = xmlDoc.CreateElement("ds", "DigestValue",uri);
- byte[] shaCertificate = { 0x06, 0xb3, 0x90, 0xb6, 0x45, 0xbb, 0x68, 0x3a, 0xde, 0x72, 0x8e, 0xb8, 0xf9, 0x79, 0x27, 0xd9, 0x18, 0x01, 0x67, 0xdb };
- SHA256 sigPolicyHash = SHA256Managed.Create();
- byte[] sigPolicyHashValue = sigPolicyHash.ComputeHash(shaCertificate);
- DigestValue.InnerText = Convert.ToBase64String(sigPolicyHashValue);
- SigPolicyHash.AppendChild(DigestMethod);
- SigPolicyHash.AppendChild(DigestValue);
- xmlDoc.DocumentElement.AppendChild(xmlDoc.ImportNode(SignaturePolicyIdentifier, true));
- xmlDoc.Save(path);
- }
- catch (Exception ex ){ result = ex.ToString(); }
- }
Add Comment
Please, Sign In to add comment