/** * This method returns the list of timestamps wrappers which covers the given signature. * * @param signatureId * The identifier of the signature. * @return The list of timestamp wrappers */ public List<TimestampWrapper> getTimestampList(final String signatureId) { SignatureWrapper signature = getSignatureByIdNullSafe(signatureId); return signature.getTimestampList(); }
public List<TimestampWrapper> getTimestampListByType(final TimestampType timestampType) { List<TimestampWrapper> result = new ArrayList<TimestampWrapper>(); List<TimestampWrapper> all = getTimestampList(); for (TimestampWrapper tsp : all) { if (timestampType.name().equals(tsp.getType())) { result.add(tsp); } } return result; }
public List<String> getTimestampIdsList() { List<String> result = new ArrayList<String>(); List<TimestampWrapper> timestamps = getTimestampList(); if (Utils.isCollectionNotEmpty(timestamps)) { for (TimestampWrapper tsp : timestamps) { result.add(tsp.getId()); } } return result; }
/** * This method retrieves a set of timestamp wrappers * * @return a list of timestamp wrappers */ public Set<TimestampWrapper> getAllTimestamps() { Set<TimestampWrapper> allTimestamps = new HashSet<TimestampWrapper>(); List<SignatureWrapper> signatures = getSignatures(); if (Utils.isCollectionNotEmpty(signatures)) { for (SignatureWrapper signatureWrapper : signatures) { allTimestamps.addAll(signatureWrapper.getTimestampList()); } } return allTimestamps; }
private void executeTimestampsValidation(XmlSignature signatureAnalysis, SignatureWrapper signature, Map<String, XmlBasicBuildingBlocks> bbbs) { List<TimestampWrapper> allTimestamps = signature.getTimestampList(); for (TimestampWrapper timestamp : allTimestamps) { ValidationProcessForTimeStamps vpftsp = new ValidationProcessForTimeStamps(timestamp, bbbs); signatureAnalysis.getValidationProcessTimestamps().add(vpftsp.execute()); } }
private boolean isInvalidFormat(String signatureFormat, String signatureId) { return Indication.TOTAL_PASSED == dssReports.getSimpleReport().getIndication(signatureId) && dssReports.getDiagnosticData().getSignatureById(signatureId).getTimestampList().isEmpty() && !signatureFormat.equals(LT_TM_XAdES_SIGNATURE_FORMAT); }
private Date getBestSignatureTime(String signatureFormat, String signatureId) { SignatureWrapper signature = dssReports.getDiagnosticData().getSignatureById(signatureId); if (signatureFormat.equals(LT_TM_XAdES_SIGNATURE_FORMAT)) { for (RevocationWrapper revocationData : dssReports.getDiagnosticData().getAllRevocationData()) { return revocationData.getProductionDate(); } } else { List<TimestampWrapper> timeStamps = signature.getTimestampList(); return timeStamps.isEmpty() ? null : timeStamps.get(0).getProductionTime(); } return null; }
private Set<RevocationWrapper> getLinkedRevocationData() { Set<RevocationWrapper> result = new HashSet<RevocationWrapper>(); extractRevocationDataFromCertificateChain(result, currentSignature.getCertificateChainIds()); List<TimestampWrapper> timestampList = currentSignature.getTimestampList(); for (TimestampWrapper timestamp : timestampList) { extractRevocationDataFromCertificateChain(result, timestamp.getCertificateChainIds()); } return result; }
/** * Returns the TimestampWrapper corresponding to the given id. * * @param id * timestamp id * @return timestamp wrapper or null */ public TimestampWrapper getTimestampById(String id) { List<SignatureWrapper> signatures = getSignatures(); for (SignatureWrapper signatureWrapper : signatures) { List<TimestampWrapper> timestampList = signatureWrapper.getTimestampList(); for (TimestampWrapper timestampWrapper : timestampList) { if (Utils.areStringsEqual(id, timestampWrapper.getId())) { return timestampWrapper; } } } return null; }
void validateRevocationFreshness(eu.europa.esig.dss.validation.reports.Reports reports) { DiagnosticData diagnosticData = reports.getDiagnosticData(); if (diagnosticData.getUsedCertificates() != null && diagnosticData.getSigningCertificateId() != null) { for (CertificateWrapper certificateWrapper : diagnosticData.getUsedCertificates()) { for (SignatureWrapper signatureWrapper : diagnosticData.getSignatures()) { if (certificateWrapper.getId().equals(signatureWrapper.getSigningCertificateId()) && !signatureWrapper.getTimestampList().isEmpty()) { TimestampWrapper timeStampWrapper = getFirstTimestamp(signatureWrapper.getTimestampList()); if (timeStampWrapper.getProductionTime() == null) return; boolean revocationFreshnessCheckInvokeError = isRevocationFreshnessCheckInvalid(certificateWrapper, timeStampWrapper); if (revocationFreshnessCheckInvokeError) { reports.getSimpleReport().getErrors(signatureWrapper.getId()).add(REVOCATION_FRESHNESS_FAULT); } else { boolean revocationFreshnessCheckInvokeWarning = certificateWrapper.getRevocationData().stream().anyMatch( r -> !CRL_REVOCATION_SOURCE.equals(r.getSource()) && isInRangeMillis(r.getProductionDate(), timeStampWrapper.getProductionTime(), REVOCATION_FRESHNESS_FIFTEEN_MINUTES_DIFFERENCE)); if (revocationFreshnessCheckInvokeWarning) { reports.getSimpleReport().getWarnings(signatureWrapper.getId()).add(REVOCATION_FRESHNESS_FAULT); } } } } } } }
List<TimestampWrapper> timestampsList = signature.getTimestampList(); if (Utils.isCollectionNotEmpty(timestampsList)) { Collections.sort(timestampsList, new TimestampComparator());
Set<TimestampWrapper> allowedTimestamps = filterValidSignatureTimestamps(currentSignature.getTimestampList()); item = item.setNextItem(timestampCoherenceOrder(currentSignature.getTimestampList()));