Java
Chilkat2 Java
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 Java Downloads
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.StringBuilder;
import com.chilkatsoft.chilkat2.XmlDSig;
public class ChilkatExample {
public static void main(String[] args) {
// 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..
StringBuilder sbXml = new StringBuilder();
try {
sbXml.loadFile("qa_data/xml_dsig_valid_samples/externalFile/test.pdf.XAdES", "utf-8");
} catch (ChilkatException e) {
System.out.println("Failed to load XAdES input file.");
return;
}
XmlDSig validator = new XmlDSig();
// Specify a set of absolute or relative directory paths to be searched for any external file references.
// Directory paths are separated by semicolon chars.
validator.setExternalRefDirs("qa_data/externalFiles;qa_data/xml_dsig_valid_samples/externalFile;c:/someOtherDir");
try {
validator.loadSignatureSb(sbXml);
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
// Validate signatures as usual..
int i = 0;
while (i < validator.getNumSignatures()) {
validator.setSelector(i);
boolean valid;
try {
validator.verifySignature(true);
valid = true;
} catch (ChilkatException e) {
valid = false;
}
System.out.println("Signature " + (i + 1) + " and all reference digests OK = " + valid);
i = i + 1;
}
}
}