/** * Returns the number of Basic Building Blocks. * * @return {@code int} number of Basic Building Blocks */ public int getBasicBuildingBlocksNumber() { return jaxbDetailedReport.getBasicBuildingBlocks().size(); }
protected DetailedReport init() { DetailedReport detailedReport = new DetailedReport(); if (policy.isEIDASConstraintPresent()) { detailedReport.getTLAnalysis().addAll(executeAllTlAnalysis(diagnosticData, policy, currentTime)); } return detailedReport; }
DetailedReport build() { DetailedReport detailedReport = init(); CertificateWrapper certificate = diagnosticData.getUsedCertificateById(certificateId); CertificateWrapper rootCertificate = diagnosticData.getUsedCertificateById(certificate.getLastChainCertificateId()); Map<String, XmlBasicBuildingBlocks> bbbs = new HashMap<String, XmlBasicBuildingBlocks>(); process(Collections.singleton(certificate), Context.CERTIFICATE, bbbs); detailedReport.getBasicBuildingBlocks().addAll(bbbs.values()); XmlBasicBuildingBlocks basicBuildingBlocks = bbbs.get(certificate.getId()); CertificateQualificationBlock cqb = new CertificateQualificationBlock(basicBuildingBlocks.getConclusion(), currentTime, certificate, rootCertificate, detailedReport.getTLAnalysis(), diagnosticData.getLOTLCountryCode()); detailedReport.setCertificate(cqb.execute()); return detailedReport; }
@Test public void dkNoChain() throws Exception { FileInputStream fis = new FileInputStream("src/test/resources/cert-validation/dk_no_chain.xml"); DiagnosticData diagnosticData = getJAXBObjectFromString(fis, DiagnosticData.class, "/xsd/DiagnosticData.xsd"); assertNotNull(diagnosticData); String certificateId = "3ECBC4648AA3BCB671976F53D7516F774DB1C886FAB81FE5469462181187DB8D"; CertificateProcessExecutor executor = new CertificateProcessExecutor(); executor.setCertificateId(certificateId); executor.setDiagnosticData(diagnosticData); executor.setValidationPolicy(loadPolicy()); executor.setCurrentTime(diagnosticData.getValidationDate()); CertificateReports reports = executor.execute(); DetailedReport detailedReportJaxb = reports.getDetailedReportJaxb(); assertNotNull(detailedReportJaxb); assertNotNull(detailedReportJaxb.getCertificate()); assertEquals(0, detailedReportJaxb.getTLAnalysis().size()); assertEquals(1, detailedReportJaxb.getBasicBuildingBlocks().size()); assertEquals(0, detailedReportJaxb.getSignatures().size()); SimpleCertificateReport simpleReportJaxb = reports.getSimpleReportJaxb(); assertNotNull(simpleReportJaxb); assertNotNull(simpleReportJaxb.getChain()); assertEquals(1, simpleReportJaxb.getChain().size()); XmlChainItem cert = simpleReportJaxb.getChain().get(0); assertEquals(certificateId, cert.getId()); assertNotNull(cert.getQualificationAtIssuance()); assertNotNull(cert.getQualificationAtValidation()); assertNull(cert.getTrustAnchors()); }
detailedReport.getBasicBuildingBlocks().addAll(bbbs.values()); rootCertificate, detailedReport.getTLAnalysis(), diagnosticData.getLOTLCountryCode()); signatureAnalysis.setValidationSignatureQualification(qualificationBlock.execute()); detailedReport.getSignatures().add(signatureAnalysis);
public Indication getCertificateXCVIndication(String certificateId) { if (jaxbDetailedReport.getCertificate() == null) { throw new DSSException("Only supported in report for certificate"); } List<XmlBasicBuildingBlocks> basicBuildingBlocks = jaxbDetailedReport.getBasicBuildingBlocks(); for (XmlBasicBuildingBlocks xmlBasicBuildingBlocks : basicBuildingBlocks) { XmlXCV xcv = xmlBasicBuildingBlocks.getXCV(); if (xcv != null) { List<XmlSubXCV> subXCV = xcv.getSubXCV(); for (XmlSubXCV xmlSubXCV : subXCV) { if (Utils.areStringsEqual(certificateId, xmlSubXCV.getId())) { return xmlSubXCV.getConclusion().getIndication(); } } } } return null; }
public XmlSignature getXmlSignatureById(String signatureId) { List<XmlSignature> signatures = jaxbDetailedReport.getSignatures(); if (Utils.isCollectionNotEmpty(signatures)) { for (XmlSignature xmlSignature : signatures) { if (Utils.areStringsEqual(signatureId, xmlSignature.getId())) { return xmlSignature; } } } return null; }
private CertificateQualification getCertificateQualification(ValidationTime validationTime) { XmlCertificate certificate = jaxbDetailedReport.getCertificate(); if (certificate != null) { List<XmlValidationCertificateQualification> validationCertificateQualifications = certificate.getValidationCertificateQualification(); if (Utils.isCollectionNotEmpty(validationCertificateQualifications)) { for (XmlValidationCertificateQualification validationCertificateQualification : validationCertificateQualifications) { if (validationTime == validationCertificateQualification.getValidationTime()) { return validationCertificateQualification.getCertificateQualification(); } } } } return CertificateQualification.NA; }
/** * Create an instance of {@link DetailedReport } * */ public DetailedReport createDetailedReport() { return new DetailedReport(); }
assertNotNull(detailedReportJaxb.getCertificate()); assertEquals(2, detailedReportJaxb.getTLAnalysis().size()); assertEquals(1, detailedReportJaxb.getBasicBuildingBlocks().size()); assertEquals(0, detailedReportJaxb.getSignatures().size());
private XmlValidationProcessTimestamps getTimestampValidationById(String timestampId) { List<XmlSignature> signatures = jaxbDetailedReport.getSignatures(); if (Utils.isCollectionNotEmpty(signatures)) { for (XmlSignature xmlSignature : signatures) { List<XmlValidationProcessTimestamps> validationTimestamps = xmlSignature.getValidationProcessTimestamps(); if (Utils.isCollectionNotEmpty(validationTimestamps)) { for (XmlValidationProcessTimestamps tspValidation : validationTimestamps) { if (Utils.areStringsEqual(tspValidation.getId(), timestampId)) { return tspValidation; } } } } } return null; }
@Test public void twoSDIdiffentResults() throws Exception { FileInputStream fis = new FileInputStream("src/test/resources/cert-validation/2-sdi-different-results.xml"); DiagnosticData diagnosticData = getJAXBObjectFromString(fis, DiagnosticData.class, "/xsd/DiagnosticData.xsd"); assertNotNull(diagnosticData); String certificateId = "E4A94773CF7B28C2BDF25015BE6716E501E73AB82BF0A9788D0DF8AD14D6876D"; CertificateProcessExecutor executor = new CertificateProcessExecutor(); executor.setCertificateId(certificateId); executor.setDiagnosticData(diagnosticData); executor.setValidationPolicy(loadPolicy()); executor.setCurrentTime(diagnosticData.getValidationDate()); CertificateReports reports = executor.execute(); DetailedReport detailedReportJaxb = reports.getDetailedReportJaxb(); XmlCertificate certificate = detailedReportJaxb.getCertificate(); List<XmlValidationCertificateQualification> validationCertificateQualification = certificate.getValidationCertificateQualification(); for (XmlValidationCertificateQualification xmlValidationCertificateQualification : validationCertificateQualification) { assertEquals(Indication.FAILED, xmlValidationCertificateQualification.getConclusion().getIndication()); } }
assertNotNull(detailedReportJaxb.getCertificate()); assertEquals(2, detailedReportJaxb.getTLAnalysis().size()); assertEquals(1, detailedReportJaxb.getBasicBuildingBlocks().size()); assertEquals(0, detailedReportJaxb.getSignatures().size());
/** * Returns the id of the token. The signature is identified by its index: 0 for the first one. * * @param index * (position/order) of the signature within the report * @return {@code String} identifying the token */ public String getBasicBuildingBlocksSignatureId(final int index) { List<XmlBasicBuildingBlocks> bbbs = jaxbDetailedReport.getBasicBuildingBlocks(); if (Utils.collectionSize(bbbs) >= index) { XmlBasicBuildingBlocks bbb = jaxbDetailedReport.getBasicBuildingBlocks().get(index); if (bbb != null) { return bbb.getId(); } } return null; }
private void validateBestSigningTimes(Reports reports) { eu.europa.esig.dss.jaxb.detailedreport.DetailedReport detailedReportJaxb = reports.getDetailedReportJaxb(); List<eu.europa.esig.dss.jaxb.detailedreport.XmlSignature> xmlSignatures = detailedReportJaxb.getSignatures(); for (eu.europa.esig.dss.jaxb.detailedreport.XmlSignature xmlSignature : xmlSignatures) { assertNotNull(xmlSignature.getValidationProcessBasicSignatures().getBestSignatureTime()); assertNotNull(xmlSignature.getValidationProcessLongTermData().getBestSignatureTime()); assertNotNull(xmlSignature.getValidationProcessArchivalData().getBestSignatureTime()); } }
public List<String> getRevocationIds() { List<String> result = new ArrayList<String>(); List<XmlBasicBuildingBlocks> bbbs = jaxbDetailedReport.getBasicBuildingBlocks(); for (XmlBasicBuildingBlocks bbb : bbbs) { if (Context.REVOCATION == bbb.getType()) { result.add(bbb.getId()); } } return result; }
public List<String> getTimestampIds() { List<String> result = new ArrayList<String>(); List<XmlBasicBuildingBlocks> bbbs = jaxbDetailedReport.getBasicBuildingBlocks(); for (XmlBasicBuildingBlocks bbb : bbbs) { if (Context.TIMESTAMP == bbb.getType()) { result.add(bbb.getId()); } } return result; }
public List<String> getSignatureIds() { List<String> result = new ArrayList<String>(); List<XmlBasicBuildingBlocks> bbbs = jaxbDetailedReport.getBasicBuildingBlocks(); for (XmlBasicBuildingBlocks bbb : bbbs) { if (Context.SIGNATURE == bbb.getType() || Context.COUNTER_SIGNATURE == bbb.getType()) { result.add(bbb.getId()); } } return result; }
/** * This method returns the full content of the Basic Building Block for a token (signature, timestamp, revocation) * * @param tokenId * the token identifier * @return the XmlBasicBuildingBlocks */ public XmlBasicBuildingBlocks getBasicBuildingBlockById(String tokenId) { List<XmlBasicBuildingBlocks> basicBuildingBlocks = jaxbDetailedReport.getBasicBuildingBlocks(); if (Utils.isCollectionNotEmpty(basicBuildingBlocks)) { for (XmlBasicBuildingBlocks xmlBasicBuildingBlocks : basicBuildingBlocks) { if (Utils.areStringsEqual(xmlBasicBuildingBlocks.getId(), tokenId)) { return xmlBasicBuildingBlocks; } } } return null; }
private void errorsAndWarningsBuilder(){ log.debug("Errors and warnings parsing from DetailedReport"); List<XmlBasicBuildingBlocks> basicBuildingBlocks = this.detailedReport.getJAXBModel().getBasicBuildingBlocks(); List<XmlName> errors = new ArrayList<>(); List<XmlName> warnings = new ArrayList<>();