/** * Returns the digest algorithm used to compute the hash value. * * @param timestampId timestamp id * @return the digest algorithm */ public String getTimestampDigestAlgorithm(final String timestampId) { final String digestAlgorithm = getValue("/DiagnosticData/Signature/Timestamps/Timestamp[@Id='%s']/SignedDataDigestAlgo/text()", timestampId); return digestAlgorithm; }
/** * This method indicates if the certificate is QCP. * * @param dssCertificateId DSS certificate identifier to be checked * @return true if QCP */ public boolean isCertificateQCP(final int dssCertificateId) { final boolean qcp = getBoolValue("/DiagnosticData/UsedCertificates/Certificate[@Id='%s']/QCStatement/QCP/text()", dssCertificateId); return qcp; }
/** * This method returns signing certificate dss id for the given signature. * * @param signatureId The identifier of the signature, for which the signing certificate is sought. * @return signing certificate dss id for the given signature. */ public int getSigningCertificateId(final String signatureId) { final int signingCertificateId = getIntValue("/DiagnosticData/Signature[@Id='%s']/SigningCertificate/@Id", signatureId); return signingCertificateId; }
/** * Indicates if there is a signature timestamp. * * @param signatureId The identifier of the signature. * @return true if the signature timestamp is present */ public boolean isThereTLevel(final String signatureId) { final List<XmlDom> timestamps = getElements("/DiagnosticData/Signature[@Id='%s']/Timestamps/Timestamp[@Type='%s']", signatureId, TimestampType.SIGNATURE_TIMESTAMP.name()); return timestamps.size() > 0; }
/** * 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 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; }
/** * Returns the digest algorithm used to compute the hash value. * * @param timestampId timestamp id * @return the digest algorithm */ public Date getTimestampProductionTime(final String timestampId) { final Date productionTime = getTimeValue("/DiagnosticData/Signature/Timestamps/Timestamp[@Id='%s']/ProductionTime/text()", timestampId); return productionTime; }
/** * This method returns the first signature id. * * @return */ public String getFirstSignatureId() { getSignatureIdList(); if (signatureIdList.size() > 0) { return signatureIdList.get(0); } return null; }
final String diagnosticDataXml = diagnosticData.toString(); wsValidationReport.setXmlDiagnosticData(diagnosticDataXml);
/** * Indicates if there is an archive timestamp. * * @param signatureId The identifier of the signature. * @return true if the archive timestamp is present */ public boolean isThereALevel(final String signatureId) { final List<XmlDom> timestamps = getElements("/DiagnosticData/Signature[@Id='%s']/Timestamps/Timestamp[@Type='%s']", signatureId, TimestampType.ARCHIVE_TIMESTAMP.name()); return timestamps.size() > 0; }
public Date getSignatureDate() { final Date signatureDate = getTimeValue("/DiagnosticData/Signature[1]/DateTime/text()"); //final XMLGregorianCalendar xmlGregorianCalendar = DSSXMLUtils.createXMLGregorianCalendar(signatureDate); //xmlGregorianCalendar. return signatureDate; }
/** * This method returns the serial number of the given dss certificate identifier. * * @param dssCertificateId DSS certificate identifier to be checked * @return serial number */ public String getCertificateSerialNumber(final int dssCertificateId) { final String serialNumber = getValue("/DiagnosticData/UsedCertificates/Certificate[@Id='%s']/SerialNumber/text()", dssCertificateId); return serialNumber; }
public List<String> getCertificateTSPServiceQualifiers(final int dssCertificateId) { List<String> tspServiceQualifiers = new ArrayList<String>(); final List<XmlDom> TSPServiceQualifiers = getElements("/DiagnosticData/UsedCertificates/Certificate[@Id='%s']/TrustedServiceProvider/Qualifiers/Qualifier", dssCertificateId); for (XmlDom tspServiceQualifier : TSPServiceQualifiers) { tspServiceQualifiers.add(tspServiceQualifier.getText()); } return tspServiceQualifiers; }
/** * Returns the result of validation of the timestamp message imprint. * * @param timestampId timestamp id * @return true or false */ public boolean isTimestampMessageImprintIntact(final String timestampId) { final boolean messageImprintIntact = getBoolValue("/DiagnosticData/Signature/Timestamps/Timestamp[@Id='%s']/MessageImprintDataIntact/text()", timestampId); return messageImprintIntact; }
/** * Returns the identifier of the timestamp signing certificate. * * @param timestampId timestamp id * @return signing certificate id */ public int getTimestampSigningCertificateId(final String timestampId) { final int signingCertificateId = getIntValue("/DiagnosticData/Signature/Timestamps/Timestamp[@Id='%s']/SigningCertificate/@Id", timestampId); return signingCertificateId; }
/** * This method returns the claimed signing time. * * @param signatureId The identifier of the signature, for which the date is sought. * @return */ public Date getSignatureDate(final String signatureId) { Date signatureDate = null; try { signatureDate = getTimeValue("/DiagnosticData/Signature[@Id='%s']/DateTime/text()", signatureId); } catch (DSSException e) { // returns null if not found } return signatureDate; }
/** * This method returns the issuer distinguished name for the given dss certificate identifier. * * @param dssCertificateId DSS certificate identifier to be checked * @return issuer distinguished name */ public String getCertificateIssuerDN(final int dssCertificateId) { final String issuerDistinguishedName = getValue("/DiagnosticData/UsedCertificates/Certificate[@Id='%s']/IssuerDistinguishedName[@Format='RFC2253']/text()", dssCertificateId); return issuerDistinguishedName; }
private void addSignatures(final ProcessParameters params, final XmlNode simpleReport) throws DSSException { final List<XmlDom> signatures = diagnosticData.getElements("/DiagnosticData/Signature"); validSignatureCount = 0; totalSignatureCount = 0; for (final XmlDom signatureXmlDom : signatures) { addSignature(params, simpleReport, signatureXmlDom); } }
/** * This method indicates if the certificate is QCPPlus. * * @param dssCertificateId DSS certificate identifier to be checked * @return true if QCPPlus */ public boolean isCertificateQCPPlus(final int dssCertificateId) { final boolean qcpPlus = getBoolValue("/DiagnosticData/UsedCertificates/Certificate[@Id='%s']/QCStatement/QCPPlus/text()", dssCertificateId); return qcpPlus; }
/** * This method returns signing certificate dss id for the first signature. * * @return signing certificate dss id. */ public int getSigningCertificateId() { final int signingCertificateId = getIntValue("/DiagnosticData/Signature[1]/SigningCertificate/@Id"); return signingCertificateId; }