static SignatureRequestDecoder test(String file, boolean outdata) throws Exception { byte[] data = ArrayUtil.readFile(file); XMLSchemaCache schema_cache = new XMLSchemaCache(); schema_cache.addWrapper(SignatureRequestDecoder.class); schema_cache.addWrapper(XDSProfileRequestDecoder.class); SignatureRequestDecoder sreq = (SignatureRequestDecoder) schema_cache.parse(data); boolean signed = sreq.isSigned(); KeyStoreVerifier verifier = new KeyStoreVerifier(DemoKeyStore.getCAKeyStore()); verifier.setTrustedRequired(false); if (signed) { sreq.verifySignature(verifier); } StringBuffer s = new StringBuffer(); for (SignatureProfileDecoder spd : sreq.getSignatureProfilesDecoders()) { s.append("\nSIGNATUREPROFILE:\n" + spd + "\nSIGNATUREPROFILE\n"); } for (CertificateFilter cf : sreq.getCertificateFilters()) { printcf(cf, s); } print("MAIN_VIEW", sreq.getMainDocument(), s); print("DETAIL_VIEW", sreq.getDetailDocument(), s); print("PROCESSING_VIEW", sreq.getProcessingDocument(), s); for (SignatureRequestDecoder.BaseDocument d : sreq.getEmbeddedObjects()) { print("EMBEDDED", d, s); } for (SignatureRequestDecoder.BaseDocument d : sreq.getAttachments()) { print("ATTACHMENT", d, s); } s.append("\nID=" + sreq.getID() + "\n"); if (sreq.getLanguages() != null) s.append("\nLanguages=" + StringUtil.tokenList(sreq.getLanguages()) + "\n"); s.append("\nMESSAGEDIGEST:\n" + sreq.getDocumentSignatures(null, null) + "\nMESSAGEDIGEST\n"); if (signed) { s.append("\nSIGNATURE\n" + verifier.getSignerCertificateInfo().toString() + "\nSIGNATURE"); } if (outdata) { System.out.println(s.toString()); } return sreq; }