Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Create XAdES-EPES Factura Electrónica SignatureDemonstrates how to create an XAdES-EPES signature. The sample data is for the Costa Rica Factura Electrónica (http://www.hacienda.go.cr/contenido/14350-factura-electronica) Note: This example requires Chilkat v9.5.0.75 or greater.
Use ChilkatAx-win32.pkg Procedure Test Variant vCert Handle hoCert Boolean iSuccess Variant vSbXml Handle hoSbXml Handle hoGen Handle hoXml String sSignedPropsId String sKeyInfoId String sTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // This example will add an XAdES-EPES signature to the file // at FacturaElectronica_cr.xml // // The XML to be signed looks like this: // <?xml version="1.0" encoding="UTF-8"?> // <FacturaElectronica xmlns="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica" // xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> // <Clave>70609022800030259092400100001010000000005100001701</Clave> // <NumeroConsecutivo>00100001010000000007</NumeroConsecutivo> // <FechaEmision>2018-02-08T22:05:20.3925782-06:00</FechaEmision> // <Emisor> // ... // </Emisor> // ... // <Normativa> // <NumeroResolucion>DGT-R-48-2016</NumeroResolucion> // <FechaResolucion>20-02-2017 13:22:22</FechaResolucion> // </Normativa> // </FacturaElectronica> // First load a certificate w/ private key from a .pfx. // (There are many different ways to provide the certificate + private key for signing. // loading a .pfx is just one particular way of doing it..) Get Create (RefClass(cComChilkatCert)) To hoCert If (Not(IsComObjectCreated(hoCert))) Begin Send CreateComObject of hoCert End Get ComLoadPfxFile Of hoCert "qa_data/pfx/cert_test123.pfx" "test123" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoCert To sTemp1 Showln sTemp1 Procedure_Return End // Load XML to be signed. Get Create (RefClass(cComChilkatStringBuilder)) To hoSbXml If (Not(IsComObjectCreated(hoSbXml))) Begin Send CreateComObject of hoSbXml End Get ComLoadFile Of hoSbXml "qa_data/xades/factura_cr/FacturaElectronica.xml" "utf-8" To iSuccess If (iSuccess <> True) Begin Showln "Failed to load file." Procedure_Return End Get Create (RefClass(cComChilkatXmlDSigGen)) To hoGen If (Not(IsComObjectCreated(hoGen))) Begin Send CreateComObject of hoGen End // Indicate where the signature is to be placed. Set ComSigLocation Of hoGen To "FacturaElectronica" // The SigId can be any random unique string in any format (in other words, there is no expected format). // For example, "Hello_23946359203502" or "A3982BF7130C". It is arbitrary. // However, other parts of the XML will reference the ID you use here. (Search for the same string below and you'll see...) Set ComSigId Of hoGen To "Signature-d1cbfe99-fd8e-4e0f-b0b7-fc5bfe2f1dd0" Set ComSigNamespacePrefix Of hoGen To "ds" Set ComSignedInfoCanonAlg Of hoGen To "C14N" Set ComSignedInfoDigestMethod Of hoGen To "sha256" // -------------------------------------------------------------------- // We want to build the QualifyingProperties XML, as shown below: // You can generate the code that creates this XML using the online tool // at XML Code Generator // I've place a copy of the QualifyingProperties XML at // QualifyingProperties_cr.xml // <xades:QualifyingProperties xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" Id="QualifyingProperties-aa262416-8607-4f02-8897-0a6440a1ae03" Target="#Signature-d1cbfe99-fd8e-4e0f-b0b7-fc5bfe2f1dd0"> // <xades:SignedProperties Id="SignedProperties-Signature-d1cbfe99-fd8e-4e0f-b0b7-fc5bfe2f1dd0"> // <xades:SignedSignatureProperties> // <xades:SigningTime>TO BE GENERATED BY CHILKAT</xades:SigningTime> // <xades:SigningCertificate> // <xades:Cert> // <xades:CertDigest> // <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> // <ds:DigestValue>TO BE GENERATED BY CHILKAT</ds:DigestValue> // </xades:CertDigest> // <xades:IssuerSerial> // <ds:X509IssuerName>TO BE GENERATED BY CHILKAT</ds:X509IssuerName> // <ds:X509SerialNumber>TO BE GENERATED BY CHILKAT</ds:X509SerialNumber> // </xades:IssuerSerial> // </xades:Cert> // </xades:SigningCertificate> // <xades:SignaturePolicyIdentifier> // <xades:SignaturePolicyId> // <xades:SigPolicyId> // <xades:Identifier>https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/Resolucion%20Comprobantes%20Electronicos%20%20DGT-R-48-2016.pdf</xades:Identifier> // <xades:Description /> // </xades:SigPolicyId> // <xades:SigPolicyHash> // <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> // <ds:DigestValue>NmI5Njk1ZThkNzI0MmIzMGJmZDAyNDc4YjUwNzkzODM2NTBiOWUxNTBkMmI2YjgzYzZjM2I5NTZlNDQ4OWQzMQ==</ds:DigestValue> // </xades:SigPolicyHash> // </xades:SignaturePolicyId> // </xades:SignaturePolicyIdentifier> // </xades:SignedSignatureProperties> // <xades:SignedDataObjectProperties> // <xades:DataObjectFormat ObjectReference="#Reference-ab26afbd-e2dc-4cb0-886a-ce2a4a118c7f"> // <xades:MimeType>text/xml</xades:MimeType> // <xades:Encoding>UTF-8</xades:Encoding> // </xades:DataObjectFormat> // </xades:SignedDataObjectProperties> // </xades:SignedProperties> // </xades:QualifyingProperties> // // This is the code generated by the online tool to create the above XML. // Note: Chilkat will automatically populate the strings indicated by "TO BE GENERATED BY CHILKAT" with actual/correct values // when the XML is signed. Get Create (RefClass(cComChilkatXml)) To hoXml If (Not(IsComObjectCreated(hoXml))) Begin Send CreateComObject of hoXml End Set ComTag Of hoXml To "xades:QualifyingProperties" Get ComAddAttribute Of hoXml "xmlns:xades" "http://uri.etsi.org/01903/v1.3.2#" To iSuccess Get ComAddAttribute Of hoXml "Id" "QualifyingProperties-aa262416-8607-4f02-8897-0a6440a1ae03" To iSuccess Get ComAddAttribute Of hoXml "Target" "#Signature-d1cbfe99-fd8e-4e0f-b0b7-fc5bfe2f1dd0" To iSuccess Get ComUpdateAttrAt Of hoXml "xades:SignedProperties" True "Id" "SignedProperties-Signature-d1cbfe99-fd8e-4e0f-b0b7-fc5bfe2f1dd0" To iSuccess Send ComUpdateChildContent To hoXml "xades:SignedProperties|xades:SignedSignatureProperties|xades:SigningTime" "TO BE GENERATED BY CHILKAT" Get ComUpdateAttrAt Of hoXml "xades:SignedProperties|xades:SignedSignatureProperties|xades:SigningCertificateV2|xades:Cert|xades:CertDigest|ds:DigestMethod" True "Algorithm" "http://www.w3.org/2001/04/xmlenc#sha256" To iSuccess Send ComUpdateChildContent To hoXml "xades:SignedProperties|xades:SignedSignatureProperties|xades:SigningCertificateV2|xades:Cert|xades:CertDigest|ds:DigestValue" "TO BE GENERATED BY CHILKAT" Send ComUpdateChildContent To hoXml "xades:SignedProperties|xades:SignedSignatureProperties|xades:SigningCertificateV2|xades:Cert|xades:IssuerSerialV2" "TO BE GENERATED BY CHILKAT" Send ComUpdateChildContent To hoXml "xades:SignedProperties|xades:SignedSignatureProperties|xades:SignaturePolicyIdentifier|xades:SignaturePolicyId|xades:SigPolicyId|xades:Identifier" "https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/Resolucion%20Comprobantes%20Electronicos%20%20DGT-R-48-2016.pdf" Send ComUpdateChildContent To hoXml "xades:SignedProperties|xades:SignedSignatureProperties|xades:SignaturePolicyIdentifier|xades:SignaturePolicyId|xades:SigPolicyId|xades:Description" "" Get ComUpdateAttrAt Of hoXml "xades:SignedProperties|xades:SignedSignatureProperties|xades:SignaturePolicyIdentifier|xades:SignaturePolicyId|xades:SigPolicyHash|ds:DigestMethod" True "Algorithm" "http://www.w3.org/2001/04/xmlenc#sha256" To iSuccess Send ComUpdateChildContent To hoXml "xades:SignedProperties|xades:SignedSignatureProperties|xades:SignaturePolicyIdentifier|xades:SignaturePolicyId|xades:SigPolicyHash|ds:DigestValue" "NmI5Njk1ZThkNzI0MmIzMGJmZDAyNDc4YjUwNzkzODM2NTBiOWUxNTBkMmI2YjgzYzZjM2I5NTZlNDQ4OWQzMQ==" Get ComUpdateAttrAt Of hoXml "xades:SignedProperties|xades:SignedDataObjectProperties|xades:DataObjectFormat" True "ObjectReference" "#Reference-ab26afbd-e2dc-4cb0-886a-ce2a4a118c7f" To iSuccess Send ComUpdateChildContent To hoXml "xades:SignedProperties|xades:SignedDataObjectProperties|xades:DataObjectFormat|xades:MimeType" "text/xml" Send ComUpdateChildContent To hoXml "xades:SignedProperties|xades:SignedDataObjectProperties|xades:DataObjectFormat|xades:Encoding" "UTF-8" // -------------------------------------------------------------------- // Add the QualifyingProperties as an Object in the Signature that is to be produced. Get ComGetXml Of hoXml To sTemp1 Get ComAddObject Of hoGen "XadesObjectId-674a431e-692c-4e0a-9d82-6275c85c5876" sTemp1 "" "" To iSuccess // Add a Reference to the SignedProperties. Move "SignedProperties-Signature-d1cbfe99-fd8e-4e0f-b0b7-fc5bfe2f1dd0" To sSignedPropsId Get ComAddObjectRef Of hoGen sSignedPropsId "sha256" "EXCL_C14N" "" "http://uri.etsi.org/01903#SignedProperties" To iSuccess // When the Signature is generated, the Reference to the SignedProperties will look like this: // <ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#SignedProperties-Signature-d1cbfe99-fd8e-4e0f-b0b7-fc5bfe2f1dd0"> // <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> // <ds:DigestValue>GLOA1AWNZhJM9NlK515TJmCE+/EKHlrIQJkkyTPPL4E=</ds:DigestValue> // </ds:Reference> // -------------------------------------------------------------------- // Add a reference to the KeyInfo, which does not yet exist because it will be // generated as part of the Signature. However, we can specify the KeyInfo Id, // and then specify that during signature generation, a reference to the KeyInfo (using the Id) // should be added. // We'll want a KeyInfo that will look like this: // <ds:Reference Id="ReferenceKeyInfo" URI="#KeyInfoId-Signature-d1cbfe99-fd8e-4e0f-b0b7-fc5bfe2f1dd0"> // <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> // <ds:DigestValue>hbYK/DyNGpK4HtUQV8xsljxbrTJY4AS0SYOa1oW/FQw=</ds:DigestValue> // </ds:Reference> Move "KeyInfoId-Signature-d1cbfe99-fd8e-4e0f-b0b7-fc5bfe2f1dd0" To sKeyInfoId Set ComKeyInfoId Of hoGen To sKeyInfoId Get ComAddSameDocRef Of hoGen sKeyInfoId "sha256" "EXCL_C14N" "" "" To iSuccess Get ComSetRefIdAttr Of hoGen sKeyInfoId "ReferenceKeyInfo" To iSuccess // -------------------------------------------------------------------- // Add our 3rd and final Reference, which is to the root element of the XML document being signed. Get ComAddSameDocRef Of hoGen "" "sha256" "EXCL_C14N" "" "" To iSuccess Get ComSetRefIdAttr Of hoGen "" "Reference-ab26afbd-e2dc-4cb0-886a-ce2a4a118c7f" To iSuccess // The 3rd Reference will look like this: // <ds:Reference Id="Reference-ab26afbd-e2dc-4cb0-886a-ce2a4a118c7f" URI=""> // <ds:Transforms> // <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> // </ds:Transforms> // <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> // <ds:DigestValue>BvbWtgU5sBzQpS4xHOocHHmj97o/M895BsYb0ce+3LA=</ds:DigestValue> // </ds:Reference> // ---------------------------------------------------------------- // Provide the KeyInfo information. Set ComKeyInfoType Of hoGen To "X509Data" Set ComX509Type Of hoGen To "Certificate" Get pvComObject of hoCert to vCert Get ComSetX509Cert Of hoGen vCert True To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoGen To sTemp1 Showln sTemp1 Procedure_Return End // -------------------------------------------------------------------- // Create the XAdES-EPES signed XML. Set ComBehaviors Of hoGen To "IndentedSignature" Get pvComObject of hoSbXml to vSbXml Get ComCreateXmlDSigSb Of hoGen vSbXml To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoGen To sTemp1 Showln sTemp1 Procedure_Return End // Examine the signed XML Get ComGetAsString Of hoSbXml To sTemp1 Showln sTemp1 // The following XAdES-EPES signed XML is produced: // <?xml version="1.0" encoding="UTF-8"?> // <FacturaElectronica xmlns="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> // <Clave>70609022800030259092400100001010000000005100001701</Clave> // <NumeroConsecutivo>00100001010000000007</NumeroConsecutivo> // <FechaEmision>2018-02-08T22:05:20.3925782-06:00</FechaEmision> // <Emisor> // <Nombre>Xavier Zarpio Yonge</Nombre> // <Identificacion> // <Tipo>01</Tipo> // <Numero>302590926</Numero> // </Identificacion> // <NombreComercial /> // <Ubicacion> // <Provincia>3</Provincia> // <Canton>01</Canton> // <Distrito>01</Distrito> // <Barrio>01</Barrio> // <OtrasSenas>555 al sur de la plaza los Angeles.</OtrasSenas> // </Ubicacion> // <Telefono> // <CodigoPais>506</CodigoPais> // <NumTelefono>99929567</NumTelefono> // </Telefono> // <Fax> // <CodigoPais>506</CodigoPais> // <NumTelefono>99929567</NumTelefono> // </Fax> // <CorreoElectronico>xavieryarpio@gmail.com</CorreoElectronico> // </Emisor> // <Receptor> // <Nombre>Andy Malamar Catal�n</Nombre> // <Identificacion> // <Tipo>01</Tipo> // <Numero>305580724</Numero> // </Identificacion> // <NombreComercial /> // <Ubicacion> // <Provincia>3</Provincia> // <Canton>01</Canton> // <Distrito>01</Distrito> // <Barrio>01</Barrio> // <OtrasSenas>Cartago, los �ngeles</OtrasSenas> // </Ubicacion> // <Telefono> // <CodigoPais>506</CodigoPais> // <NumTelefono>84431131</NumTelefono> // </Telefono> // <Fax> // <CodigoPais>506</CodigoPais> // <NumTelefono>00000000</NumTelefono> // </Fax> // <CorreoElectronico>andycatalan12@hotmail.es</CorreoElectronico> // </Receptor> // <CondicionVenta>01</CondicionVenta> // <PlazoCredito>0</PlazoCredito> // <MedioPago>01</MedioPago> // <DetalleServicio> // <LineaDetalle> // <NumeroLinea>1</NumeroLinea> // <Codigo> // <Tipo>01</Tipo> // <Codigo>11</Codigo> // </Codigo> // <Cantidad>1.000</Cantidad> // <UnidadMedida>Unid</UnidadMedida> // <UnidadMedidaComercial /> // <Detalle>servicios profesionales</Detalle> // <PrecioUnitario>30000.00000</PrecioUnitario> // <MontoTotal>30000.00000</MontoTotal> // <NaturalezaDescuento /> // <SubTotal>30000.00000</SubTotal> // <MontoTotalLinea>30000.00000</MontoTotalLinea> // </LineaDetalle> // </DetalleServicio> // <ResumenFactura> // <CodigoMoneda>CRC</CodigoMoneda> // <TipoCambio>1.00000</TipoCambio> // <TotalServGravados>0.00000</TotalServGravados> // <TotalServExentos>30000.00000</TotalServExentos> // <TotalMercanciasGravadas>0.00000</TotalMercanciasGravadas> // <TotalMercanciasExentas>0.00000</TotalMercanciasExentas> // <TotalGravado>0.00000</TotalGravado> // <TotalExento>30000.00000</TotalExento> // <TotalVenta>30000.00000</TotalVenta> // <TotalDescuentos>0.00000</TotalDescuentos> // <TotalVentaNeta>30000.00000</TotalVentaNeta> // <TotalImpuesto>0.00000</TotalImpuesto> // <TotalComprobante>30000.00000</TotalComprobante> // </ResumenFactura> // <Normativa> // <NumeroResolucion>DGT-R-48-2016</NumeroResolucion> // <FechaResolucion>20-02-2017 13:22:22</FechaResolucion> // </Normativa> // <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-d1cbfe99-fd8e-4e0f-b0b7-fc5bfe2f1dd0"> // <ds:SignedInfo> // <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> // <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/> // <ds:Reference URI="#SignedProperties-Signature-d1cbfe99-fd8e-4e0f-b0b7-fc5bfe2f1dd0" Type="http://uri.etsi.org/01903#SignedProperties"> // <ds:Transforms> // <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> // </ds:Transforms> // <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> // <ds:DigestValue>rk9bKozGf7gos5+gk77yd+6Or71uMtLKanLlJQ1CCJ4=</ds:DigestValue> // </ds:Reference> // <ds:Reference Id="Reference-ab26afbd-e2dc-4cb0-886a-ce2a4a118c7f" URI="#KeyInfoId-Signature-d1cbfe99-fd8e-4e0f-b0b7-fc5bfe2f1dd0"> // <ds:Transforms> // <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> // </ds:Transforms> // <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> // <ds:DigestValue>AHAsUXqwwBjpkiSelrzz7TJ7WjbM3IWOOF210YuYSEU=</ds:DigestValue> // </ds:Reference> // <ds:Reference Id="Reference-ab26afbd-e2dc-4cb0-886a-ce2a4a118c7f" URI=""> // <ds:Transforms> // <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> // <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> // </ds:Transforms> // <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> // <ds:DigestValue>sU/yIR2Wh8xEaMQswFjQv65VCCm/1m/0Q+WZoORItw8=</ds:DigestValue> // </ds:Reference> // </ds:SignedInfo> // <ds:SignatureValue>XL2OfTTE8mOwfF3jzZ9A+21xKImA6ClpahXwA7twJ4O6Zw4zLd9M4WIFOEd288Uch+Uvd3ixz+zn+F5ubkQS276DQ9WRIPwqaBapf3LqOjs3TcWq39UJbyq7Cnwd14HA5kefKZSzBLS8icoNpMm8/0vVJ7IyO9r10cxNZ5FMY8IAMRuQXRGNLvwRL+NVN4ZrH0ga6lkUciTfUi4ESJQBoRXyF6yLFbZry45ozXlrNFlrNIAwZf30L1+0MZKCp8MAlU8Sf+PfDWkMJ6ii1iaQkFFR6D4nrTi+9ZjDzNIwkfBvuAmouwEndhvcplBfHaiQFlbQmxqkQ9sjYeUH3X+ceg==</ds:SignatureValue> // <ds:KeyInfo Id="KeyInfoId-Signature-d1cbfe99-fd8e-4e0f-b0b7-fc5bfe2f1dd0"> // <ds:X509Data> // <ds:X509Certificate>MIIFNTCCBB2gAwIBAgIQHozVnBl1lTsusAh26u6WZTANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxPTA7BgNVBAMTNENPTU9ETyBSU0EgQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0EwHhcNMTcxMjE0MDAwMDAwWhcNMTgxMjE0MjM1OTU5WjAmMSQwIgYJKoZIhvcNAQkBFhVhc2Rhc2Rhc2Rhc2RkQGJ5b20uZGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC96oQe50EDoiuJVITeKJzy6GzVq74cEa14eFypjMNbYVyedfCI6cn9pVClLqL7dlwxFGCRA62bbNE9woKLBT3SO1IvgoFDVIrbJm+84GEoqQReZe8HpZnF06d3DWwhUjjcuO1z2yliGdSymSee8/1OaztxEAEOWaZR+4MkfSNcAzzjGtKcKjVMSdiiO0JGAG/IXEwzlulfkF8zVdqDGkQTQesvT4WBys4BYwTDI64dsM7rcC9vwuK6gvpkUi9i1Wzu0W4v9T3iHAbl3rLihPcjQ95c4q7+NjwpRqQW1VXRenR/0iyLEFOek0D4JvOoscUwJ0LYd8f9SxFEWIzc4iAfAgMBAAGjggHrMIIB5zAfBgNVHSMEGDAWgBSCr2yM+MX+lmF86B89K3FIXsSLwDAdBgNVHQ4EFgQUrC0DOyBBAgOWgo2EfVZbppe3xfEwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwIAYDVR0lBBkwFwYIKwYBBQUHAwQGCysGAQQBsjEBAwUCMBEGCWCGSAGG+EIBAQQEAwIFIDBGBgNVHSAEPzA9MDsGDCsGAQQBsjEBAgEBATArMCkGCCsGAQUFBwIBFh1odHRwczovL3NlY3VyZS5jb21vZG8ubmV0L0NQUzBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9SU0FDbGllbnRBdXRoZW50aWNhdGlvbmFuZFNlY3VyZUVtYWlsQ0EuY3JsMIGLBggrBgEFBQcBAQR/MH0wVQYIKwYBBQUHMAKGSWh0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9ET1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxDQS5jcnQwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmNvbW9kb2NhLmNvbTAgBgNVHREEGTAXgRVhc2Rhc2Rhc2Rhc2RkQGJ5b20uZGUwDQYJKoZIhvcNAQELBQADggEBAHEQTr0WFcwHVk0xozn26P3s6i3RWEcokNr8AdOtEvU0UYf1AfyVxUs04rS3Fs0lu2TD0840S3R687xF4HXhLYxSdD0QoZyUS2mgxxyVxCqhwptmLn7ZQjUKEuK6Kv6wZ3/XugsBoNrMYWlYX8g2jWVDBCJ+Z0eTQkaYkeSxzBSMQP3DxJS/bWh5LfwSyWYk4a3SVRJV4QVyBDXKt2uwjj1wWfxfGtiw6uAd2F3YIymZKsRVdrU6+h0gXMnmtpX8T+SDV6M72PP2/ZzF6gVVItyyrIScK1J8mcEaR5GGkLBk1s9qQM9esp3FRlACVeb1Qlytr4vgc5FlCqn0rMtjlF4=</ds:X509Certificate> // </ds:X509Data> // </ds:KeyInfo> // <ds:Object Id="XadesObjectId-674a431e-692c-4e0a-9d82-6275c85c5876"><xades:QualifyingProperties xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" Id="QualifyingProperties-aa262416-8607-4f02-8897-0a6440a1ae03" Target="#Signature-d1cbfe99-fd8e-4e0f-b0b7-fc5bfe2f1dd0"> // <xades:SignedProperties Id="SignedProperties-Signature-d1cbfe99-fd8e-4e0f-b0b7-fc5bfe2f1dd0"> // <xades:SignedSignatureProperties> // <xades:SigningTime>2018-06-19T18:44:02-0500</xades:SigningTime> // <xades:SigningCertificate> // <xades:Cert> // <xades:CertDigest> // <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> // <ds:DigestValue>b8Dptsa8ynvygBZYOLl2u6Nxn1RfzJlR44OmxEw+9ak=</ds:DigestValue> // </xades:CertDigest> // <xades:IssuerSerial> // <ds:X509IssuerName>C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO RSA Client Authentication and Secure Email CA</ds:X509IssuerName> // <ds:X509SerialNumber>40608093954460556376902031137928287845</ds:X509SerialNumber> // </xades:IssuerSerial> // </xades:Cert> // </xades:SigningCertificate> // <xades:SignaturePolicyIdentifier> // <xades:SignaturePolicyId> // <xades:SigPolicyId> // <xades:Identifier>https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/Resolucion%20Comprobantes%20Electronicos%20%20DGT-R-48-2016.pdf</xades:Identifier> // <xades:Description /> // </xades:SigPolicyId> // <xades:SigPolicyHash> // <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> // <ds:DigestValue>NmI5Njk1ZThkNzI0MmIzMGJmZDAyNDc4YjUwNzkzODM2NTBiOWUxNTBkMmI2YjgzYzZjM2I5NTZlNDQ4OWQzMQ==</ds:DigestValue> // </xades:SigPolicyHash> // </xades:SignaturePolicyId> // </xades:SignaturePolicyIdentifier> // </xades:SignedSignatureProperties> // <xades:SignedDataObjectProperties> // <xades:DataObjectFormat ObjectReference="#Reference-ab26afbd-e2dc-4cb0-886a-ce2a4a118c7f"> // <xades:MimeType>text/xml</xades:MimeType> // <xades:Encoding>UTF-8</xades:Encoding> // </xades:DataObjectFormat> // </xades:SignedDataObjectProperties> // </xades:SignedProperties> // </xades:QualifyingProperties> // </ds:Object> // </ds:Signature></FacturaElectronica> // End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.