/** * This method returns the first signature id. * * @return the first signature id */ public String getFirstSignatureId() { SignatureWrapper firstSignature = getFirstSignatureNullSafe(); return firstSignature.getId(); }
private ChainItem<XmlValidationProcessArchivalData> pastSignatureValidation(Context currentContext) { XmlBasicBuildingBlocks bbbSig = bbbs.get(signature.getId()); return new PastSignatureValidationCheck(result, signature, diagnosticData, bbbSig, poe, currentTime, policy, currentContext, getFailLevelConstraint()); }
private ChainItem<XmlValidationProcessBasicSignatures> basicBuildingBlocks() { return new SignatureBasicBuildingBlocksCheck(result, diagnosticData, bbbs.get(signature.getId()), bbbs, getFailLevelConstraint()); }
private void addBestSignatureTime(SignatureWrapper signature, XmlSignature xmlSignature) { xmlSignature.setBestSignatureTime(detailedReport.getBestSignatureTime(signature.getId())); }
@Override protected boolean process() { boolean foundCountersignature = false; String currentSignatureId = signature.getId(); List<SignatureWrapper> signatures = diagnosticData.getSignatures(); for (SignatureWrapper signatureWrapper : signatures) { if (signatureWrapper.isCounterSignature() && currentSignatureId.equals(signatureWrapper.getParentId())) { foundCountersignature = true; break; } } return foundCountersignature; }
@Override protected boolean process() { List<TimestampWrapper> timestampsBySignature = diagnosticData.getTimestampList(signature.getId()); for (TimestampWrapper timestampWrapper : timestampsBySignature) { if (TimestampType.CONTENT_TIMESTAMP.name().equals(timestampWrapper.getType()) || TimestampType.ALL_DATA_OBJECTS_TIMESTAMP.name().equals(timestampWrapper.getType()) || TimestampType.INDIVIDUAL_DATA_OBJECTS_TIMESTAMP.name().equals(timestampWrapper.getType())) { return true; } } return false; }
/** * This method returns a signature wrapper for the given signature id * * @param id * the signature id * @return a signature wrapper or null */ public SignatureWrapper getSignatureById(String id) { List<SignatureWrapper> signatures = getSignatures(); if (Utils.isCollectionNotEmpty(signatures)) { for (SignatureWrapper xmlSignature : signatures) { if (Utils.areStringsEqual(id, xmlSignature.getId())) { return xmlSignature; } } } return null; }
private SignatureWrapper getSignatureByIdNullSafe(String id) { List<SignatureWrapper> signatures = getSignatures(); if (Utils.isCollectionNotEmpty(signatures)) { for (SignatureWrapper xmlSignature : signatures) { if (Utils.areStringsEqual(id, xmlSignature.getId())) { return xmlSignature; } } } return new SignatureWrapper(new XmlSignature()); // TODO improve ? }
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); } } } } } } }
public void init(DiagnosticData diagnosticData, Date currentTime) { Set<SignatureWrapper> signatures = diagnosticData.getAllSignatures(); for (SignatureWrapper signature : signatures) { addPOE(signature.getId(), currentTime); } Set<TimestampWrapper> timestamps = diagnosticData.getAllTimestamps(); for (TimestampWrapper timestamp : timestamps) { addPOE(timestamp.getId(), currentTime); } List<CertificateWrapper> usedCertificates = diagnosticData.getUsedCertificates(); for (CertificateWrapper certificate : usedCertificates) { addPOE(certificate.getId(), currentTime); Set<RevocationWrapper> revocations = certificate.getRevocationData(); if (Utils.isCollectionNotEmpty(revocations)) { for (RevocationWrapper revocation : revocations) { if (RevocationOrigin.SIGNATURE.name().equals(revocation.getOrigin())) { addPOE(revocation.getId(), currentTime); } } } } }
String signatureId = signature.getId(); XmlSignature xmlSignature = new XmlSignature(); xmlSignature.setId(signatureId);
signatureAnalysis.setId(signature.getId()); if (signature.isCounterSignature()) { signatureAnalysis.setCounterSignature(true);