Example #1
0
  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;
  }