Guest User

Untitled

a guest
Jan 17th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. private void AddIdentificacionPolitica(string path)
  2. {
  3. XmlDocument xmlDoc = new XmlDocument();
  4. xmlDoc.PreserveWhitespace = true;
  5. xmlDoc.Load(path);
  6. try
  7. {
  8. result = "";
  9. string uri = "http://www.w3.org/2000/09/xmldsig#";
  10. string URI = "http://uri.etsi.org/01903/v1.3.2#";
  11.  
  12. XmlElement DigestMethod = xmlDoc.CreateElement("ds", "DigestMethod");
  13. XmlElement DigestValue = xmlDoc.CreateElement("ds", "DigestValue");
  14.  
  15. XmlElement SignaturePolicyIdentifier = xmlDoc.CreateElement("xades", "SignaturePolicyIdentifier", URI);
  16.  
  17. XmlElement SignaturePolicyId = xmlDoc.CreateElement("xades", "SignaturePolicyId", URI);
  18. SignaturePolicyIdentifier.AppendChild(SignaturePolicyId);
  19.  
  20. XmlElement SigPolicyId = xmlDoc.CreateElement("xades", "SigPolicyId", URI);
  21. SignaturePolicyId.AppendChild(SigPolicyId);
  22.  
  23. XmlElement Identifier = xmlDoc.CreateElement("xades", "Identifier", URI);
  24. Identifier.InnerText = "https://tribunet.hacienda.go.cr/docs/esquemas/2016/v4.1/Resolucion_Comprobantes_Electronicos_DGT-R-48-2016.pdf";
  25. SigPolicyId.AppendChild(Identifier);
  26.  
  27. XmlElement SigPolicyHash = xmlDoc.CreateElement("xades", "SigPolicyHash", URI);
  28. SignaturePolicyId.AppendChild(SigPolicyHash);
  29.  
  30. DigestMethod = xmlDoc.CreateElement("ds", "DigestMethod",uri);
  31. DigestMethod.SetAttribute("Algorithm", "http://www.w3.org/2001/04/xmlenc#sha256");
  32. DigestValue = xmlDoc.CreateElement("ds", "DigestValue",uri);
  33. byte[] shaCertificate = { 0x06, 0xb3, 0x90, 0xb6, 0x45, 0xbb, 0x68, 0x3a, 0xde, 0x72, 0x8e, 0xb8, 0xf9, 0x79, 0x27, 0xd9, 0x18, 0x01, 0x67, 0xdb };
  34. SHA256 sigPolicyHash = SHA256Managed.Create();
  35. byte[] sigPolicyHashValue = sigPolicyHash.ComputeHash(shaCertificate);
  36. DigestValue.InnerText = Convert.ToBase64String(sigPolicyHashValue);
  37. SigPolicyHash.AppendChild(DigestMethod);
  38. SigPolicyHash.AppendChild(DigestValue);
  39.  
  40. xmlDoc.DocumentElement.AppendChild(xmlDoc.ImportNode(SignaturePolicyIdentifier, true));
  41. xmlDoc.Save(path);
  42. }
  43. catch (Exception ex ){ result = ex.ToString(); }
  44.  
  45. }
Add Comment
Please, Sign In to add comment