C
C
Verify Factura Electronica Chile SII (iso-8859-1)
See more XAdES Examples
Demonstrates how to verify SII XML stored as iso-8859-1 having just a single signature.Chilkat C Downloads
#include <C_CkStringBuilder.h>
#include <C_CkXmlDSig.h>
void ChilkatSample(void)
{
BOOL success;
HCkStringBuilder sbXml;
HCkXmlDSig dsig;
BOOL bVerifyReferenceDigests;
BOOL bVerified;
success = FALSE;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// The signed XML to be verified in this example contains the following:
// <?xml version="1.0" encoding="ISO-8859-1"?>
// <DTE version="1.0" xmlns="http://www.sii.cl/SiiDte">
// <Documento ID="F13T34">
// ...
// </Documento>
// <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
// ....
// </Signature>
// </DTE>
// Load the signed XML into sbXml -- telling Chilkat to interpret the bytes as iso-8859-1
sbXml = CkStringBuilder_Create();
success = CkStringBuilder_LoadFile(sbXml,"qa_data/xml_dsig/sii_cl/signed1.xml","iso-8859-1");
if (success == FALSE) {
printf("Failed to load input file.\n");
CkStringBuilder_Dispose(sbXml);
return;
}
dsig = CkXmlDSig_Create();
success = CkXmlDSig_LoadSignatureSb(dsig,sbXml);
if (success != TRUE) {
printf("%s\n",CkXmlDSig_lastErrorText(dsig));
CkStringBuilder_Dispose(sbXml);
CkXmlDSig_Dispose(dsig);
return;
}
bVerifyReferenceDigests = TRUE;
bVerified = CkXmlDSig_VerifySignature(dsig,bVerifyReferenceDigests);
if (bVerified == FALSE) {
printf("%s\n",CkXmlDSig_lastErrorText(dsig));
CkStringBuilder_Dispose(sbXml);
CkXmlDSig_Dispose(dsig);
return;
}
printf("Signature verified = %d\n",bVerified);
CkStringBuilder_Dispose(sbXml);
CkXmlDSig_Dispose(dsig);
}