DataFlex
DataFlex
Verify XAdES with External File Reference
See more XML Digital Signatures Examples
Demonstrates how to validate an XML digital signature that contains a reference to an external file. (This is one way of doing it..)Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Variant vSbXml
Handle hoSbXml
Handle hoValidator
Integer i
Boolean iValid
String sTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// Load the XAdES file to be validated..
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbXml
If (Not(IsComObjectCreated(hoSbXml))) Begin
Send CreateComObject of hoSbXml
End
Get ComLoadFile Of hoSbXml "qa_data/xml_dsig_valid_samples/externalFile/test.pdf.XAdES" "utf-8" To iSuccess
If (iSuccess = False) Begin
Showln "Failed to load XAdES input file."
Procedure_Return
End
Get Create (RefClass(cComChilkatXmlDSig)) To hoValidator
If (Not(IsComObjectCreated(hoValidator))) Begin
Send CreateComObject of hoValidator
End
// Specify a set of absolute or relative directory paths to be searched for any external file references.
// Directory paths are separated by semicolon chars.
Set ComExternalRefDirs Of hoValidator To "qa_data/externalFiles;qa_data/xml_dsig_valid_samples/externalFile;c:/someOtherDir"
Get pvComObject of hoSbXml to vSbXml
Get ComLoadSignatureSb Of hoValidator vSbXml To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoValidator To sTemp1
Showln sTemp1
Procedure_Return
End
// Validate signatures as usual..
Move 0 To i
While (i < (ComNumSignatures(hoValidator)))
Set ComSelector Of hoValidator To i
Get ComVerifySignature Of hoValidator True To iValid
Showln "Signature " (i + 1) " and all reference digests OK = " iValid
Move (i + 1) To i
Loop
End_Procedure