/** * This method indicates if the certificate signature is valid and the revocation status is valid. * * @param dssCertificateId DSS certificate identifier to be checked * @return certificate validity */ public boolean isValidCertificate(final int dssCertificateId) { final XmlDom certificate = getElement("/DiagnosticData/UsedCertificates/Certificate[@Id='%s']", dssCertificateId); final boolean signatureValid = certificate.getBoolValue("./BasicSignature/SignatureValid/text()"); final boolean revocationValid = certificate.getBoolValue("./Revocation/Status/text()"); final boolean trusted = certificate.getBoolValue("./Trusted/text()"); final boolean validity = signatureValid && (trusted ? true : revocationValid); return validity; }
/** * 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; }