Zig
Zig
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 Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
// 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
const sb_xml = try chilkat.StringBuilder.init();
defer sb_xml.deinit();
sb_xml.loadFile("qa_data/xml_dsig/sii_cl/signed1.xml", "iso-8859-1") catch {
std.debug.print("Failed to load input file.\n", .{});
return;
};
const dsig = try chilkat.XmlDSig.init();
defer dsig.deinit();
dsig.loadSignatureSb(sb_xml) catch {
std.debug.print("{s}\n", .{try dsig.getLastErrorText(alloc)});
return;
};
const b_verify_reference_digests = true;
const b_verified = if (dsig.verifySignature(b_verify_reference_digests)) true else |_| false;
if (!b_verified) {
std.debug.print("{s}\n", .{try dsig.getLastErrorText(alloc)});
return;
}
std.debug.print("Signature verified = {}\n", .{b_verified});
}