SQL Server
SQL Server
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 SQL Server Downloads
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
DECLARE @success int
SELECT @success = 0
-- 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
DECLARE @sbXml int
EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbXml OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
EXEC sp_OAMethod @sbXml, 'LoadFile', @success OUT, 'qa_data/xml_dsig/sii_cl/signed1.xml', 'iso-8859-1'
IF @success = 0
BEGIN
PRINT 'Failed to load input file.'
EXEC @hr = sp_OADestroy @sbXml
RETURN
END
DECLARE @dsig int
EXEC @hr = sp_OACreate 'Chilkat.XmlDSig', @dsig OUT
EXEC sp_OAMethod @dsig, 'LoadSignatureSb', @success OUT, @sbXml
IF @success <> 1
BEGIN
EXEC sp_OAGetProperty @dsig, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @sbXml
EXEC @hr = sp_OADestroy @dsig
RETURN
END
DECLARE @bVerifyReferenceDigests int
SELECT @bVerifyReferenceDigests = 1
DECLARE @bVerified int
EXEC sp_OAMethod @dsig, 'VerifySignature', @bVerified OUT, @bVerifyReferenceDigests
IF @bVerified = 0
BEGIN
EXEC sp_OAGetProperty @dsig, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @sbXml
EXEC @hr = sp_OADestroy @dsig
RETURN
END
PRINT 'Signature verified = ' + @bVerified
EXEC @hr = sp_OADestroy @sbXml
EXEC @hr = sp_OADestroy @dsig
END
GO