/** * This method checks if the basic building blocks have VALID indication. The check is performed for all signatures. * * @return {@code true} if basic building blocks (for all signatures) have VALID indication, otherwise {@code false} */ public boolean areBasicBuildingBlocksValid() { final List<XmlDom> indications = getElements("/ValidationData/BasicBuildingBlocks/Signature/Conclusion/Indication"); return areAllIndicationsValid(indications); }
/** * Returns the number of the signatures into the signed document. The XML element: '/ValidationData/BasicBuildingBlocks/Signature' is used to obtain this information. * * @return {@code int} number of the retrieved signatures */ public int getBasicBuildingBlocksSignaturesNumber() { final int signaturesNumber = (int) getCountValue("count(/ValidationData/BasicBuildingBlocks/Signature)"); return signaturesNumber; }
/** * This method returns the {@code List} of the signature id based on the XML element: '/ValidationData/BasicBuildingBlocks/Signature' within the report. * * @return {@code List} of the signature id */ public List<String> getBasicBuildingBlocksSignatureId() { return getIdList("/ValidationData/BasicBuildingBlocks/Signature"); }
/** * Returns the validation SUB_INDICATION of the basic building blocks for the given signature id. * * @param signatureId {@code String} id of the signature * @return related {@code String} sub-indication */ public String getBasicBuildingBlocksSubIndication(final String signatureId) { final String indication = getValue("/ValidationData/BasicBuildingBlocks/Signature[@Id='%s']/Conclusion/SubIndication/text()", signatureId); return indication; }
/** * This method returns the {@code List} of {@code String} id based on the given XPath query and set of optional parameters. * * @param xPath XPath query * @param parameters array of {@code String }parameters * @return {@code List} of id */ private List<String> getIdList(final String xPath, final String... parameters) { final List<String> idList = new ArrayList<String>(); final List<XmlDom> elements = getElements(xPath, parameters); for (final XmlDom element : elements) { final String id = element.getAttribute("Id"); idList.add(id); } return idList; }
final String detailedReportXml = detailedReport.toString();
/** * This method executes the long term validation processes. The underlying processes are automatically executed. */ @Override public Reports execute() { processParams = new ProcessParameters(); diagnosticData = new DiagnosticData(diagnosticDataDom); processParams.setDiagnosticData(diagnosticData); processParams.setValidationPolicy(validationPolicy); processParams.setCountersignatureValidationPolicy(countersignatureValidationPolicy); processParams.setCurrentTime(currentTime); final XmlDom usedCertificates = diagnosticData.getElement("/DiagnosticData/UsedCertificates"); processParams.setCertPool(usedCertificates); final XmlNode mainNode = new XmlNode(NodeName.VALIDATION_DATA); mainNode.setNameSpace(XmlDom.NAMESPACE); final LongTermValidation ltv = new LongTermValidation(); ltv.run(mainNode, processParams); final Document validationReportDocument = mainNode.toDocument(); detailedReport = new DetailedReport(validationReportDocument); final SimpleReportBuilder simpleReportBuilder = new SimpleReportBuilder(validationPolicy, diagnosticData); simpleReport = simpleReportBuilder.build(processParams); final Reports reports = new Reports(diagnosticData, detailedReport, simpleReport); return reports; }
/** * This method returns the notice related to the signature policy. * * @param signatureId {@code String} id of the signature for which the check is to be done * @return {@code String} describing the policy notice */ public String getPolicyNotice(final String signatureId) { final String notice = getValue("/ValidationData/BasicBuildingBlocks/Signature[@Id='%s']/VCI/Constraint/Notice/text()", signatureId); return notice; }
/** * This method checks if the long term validation has VALID indication. The check is performed for all signatures. * * @return {@code true} if long term validation (for all signatures) has VALID indication, otherwise {@code false} */ public boolean isLongTermValidationValid() { final List<XmlDom> indications = getElements("/ValidationData/LongTermValidationData/Signature/Conclusion/Indication"); return areAllIndicationsValid(indications); }
/** * Returns the id of the signature. The signature is identified by its index: 1 for the first one. * * @param index (position/order) of the signature within the report * @return {@code String} identifying the signature */ public String getBasicBuildingBlocksSignatureId(final int index) { final String signatureId = getValue("/ValidationData/BasicBuildingBlocks/Signature[%s]/@Id", index); return signatureId; }
/** * This method returns the {@code List} of the signature id based on the XML element: '/ValidationData/TimestampValidationData/Signature' within the report. * * @return {@code List} of the signature id */ public List<String> getTimestampValidationSignatureId() { return getIdList("/ValidationData/TimestampValidationData/Signature"); }
/** * This method checks if the timestamp validation has VALID indication. The check is performed for all signatures. * * @return {@code true} if timestamp validation (for all signatures) has VALID indication, otherwise {@code false} */ public boolean isTimestampValidationValid() { final List<XmlDom> indications = getElements("/ValidationData/TimestampValidationData/Signature/Timestamp/BasicBuildingBlocks/Conclusion/Indication"); return areAllIndicationsValid(indications); }
/** * Returns the validation INDICATION of the long term validation for the given signature id. * * @param signatureId {@code String} id of the signature * @return related {@code String} indication */ public String getLongTermValidationIndication(final String signatureId) { final String indication = getValue("/ValidationData/LongTermValidationData/Signature[@Id='%s']/Conclusion/Indication/text()", signatureId); return indication; }
/** * This method returns the {@code List} of the signature id based on the XML element: '/ValidationData/LongTermValidationData/Signature' within the report. * * @return {@code List} of the signature id */ public List<String> getLongTermValidationSignatureId() { return getIdList("/ValidationData/LongTermValidationData/Signature"); }
/** * This method checks the timestamp validation indication for all signatures is VALID. * * @return {@code true} if VALID indication for all signatures, {@code null} if there is no timestamp, {@code false} otherwise. */ public Boolean isTimestampValidationValidOrEmpty() { final List<XmlDom> indications = getElements("/ValidationData/TimestampValidationData/Signature/Timestamp/BasicBuildingBlocks/Conclusion/Indication"); if (indications.size() == 0) { return null; } return areAllIndicationsValid(indications); }
/** * Returns the validation SUB_INDICATION of the timestamp validation for the given signature id. * * @param signatureId {@code String} id of the signature * @return related {@code String} sub-indication */ public String getTimestampValidationSubIndication(final String signatureId, final String timestampId) { final String indication = getValue("/ValidationData/TimestampValidationData/Signature[@Id='%s']/Timestamp[@Id='%s']/BasicBuildingBlocks/Conclusion/SubIndication/text()", signatureId, timestampId); return indication; }
/** * This method returns the {@code List} of the timestamp id for the given {@code TimestampType} based on TimestampValidationData. * * @param signatureId {@code String} id of the signature * @param timestampType {@code TimestampType} * @return {@code List} of timestamp id */ public List<String> getTimestampValidationTimestampId(final String signatureId, final TimestampType timestampType) { return getIdList("/ValidationData/TimestampValidationData/Signature[@Id='%s']/Timestamp[@Type='%s']", signatureId, timestampType.name()); }
/** * Returns the validation INDICATION of the basic building blocks for the given signature id. * * @param signatureId {@code String} id of the signature * @return related {@code String} indication */ public String getBasicBuildingBlocksIndication(final String signatureId) { final String indication = getValue("/ValidationData/BasicBuildingBlocks/Signature[@Id='%s']/Conclusion/Indication/text()", signatureId); return indication; }
/** * Returns the validation SUB_INDICATION of the long term validation for the given signature id. * * @param signatureId {@code String} id of the signature * @return related {@code String} sub-indication */ public String getLongTermValidationSubIndication(final String signatureId) { final String indication = getValue("/ValidationData/LongTermValidationData/Signature[@Id='%s']/Conclusion/SubIndication/text()", signatureId); return indication; }
/** * Returns the validation INDICATION of the timestamp validation for the given signature id. * * @param signatureId {@code String} id of the signature * @return related {@code String} indication */ public String getTimestampValidationIndication(final String signatureId, final String timestampId) { final String indication = getValue("/ValidationData/TimestampValidationData/Signature[@Id='%s']/Timestamp[@Id='%s']/BasicBuildingBlocks/Conclusion/Indication/text()", signatureId, timestampId); return indication; }