Tcl
Tcl
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 Tcl Downloads
load ./chilkat.dll
set success 0
# 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..
set sbXml [new_CkStringBuilder]
set success [CkStringBuilder_LoadFile $sbXml "qa_data/xml_dsig_valid_samples/externalFile/test.pdf.XAdES" "utf-8"]
if {$success == 0} then {
puts "Failed to load XAdES input file."
delete_CkStringBuilder $sbXml
exit
}
set validator [new_CkXmlDSig]
# Specify a set of absolute or relative directory paths to be searched for any external file references.
# Directory paths are separated by semicolon chars.
CkXmlDSig_put_ExternalRefDirs $validator "qa_data/externalFiles;qa_data/xml_dsig_valid_samples/externalFile;c:/someOtherDir"
set success [CkXmlDSig_LoadSignatureSb $validator $sbXml]
if {$success == 0} then {
puts [CkXmlDSig_lastErrorText $validator]
delete_CkStringBuilder $sbXml
delete_CkXmlDSig $validator
exit
}
# Validate signatures as usual..
set i 0
while {$i < [CkXmlDSig_get_NumSignatures $validator]} {
CkXmlDSig_put_Selector $validator $i
set valid [CkXmlDSig_VerifySignature $validator 1]
puts "Signature [expr $i + 1] and all reference digests OK = $valid"
set i [expr $i + 1]
}
delete_CkStringBuilder $sbXml
delete_CkXmlDSig $validator