private SignatureValidationReport cloneSignatureValidationReport() { if (simpleReport.getSignature().size() > 1) { logger.warn("Simple report contains more than one signature: " + simpleReport.getSignature().size()); } XmlSignature signatureXmlReport = simpleReport.getSignature().get(0); return SignatureValidationReport.create(signatureXmlReport); }
@Test public void testWithoutCertChain() throws Exception { FileInputStream fis = new FileInputStream("src/test/resources/qualifNAWithoutCertChain.xml"); DiagnosticData diagnosticData = getJAXBObjectFromString(fis, DiagnosticData.class, "/xsd/DiagnosticData.xsd"); assertNotNull(diagnosticData); CustomProcessExecutor executor = new CustomProcessExecutor(); executor.setDiagnosticData(diagnosticData); executor.setValidationPolicy(loadPolicy()); executor.setCurrentTime(diagnosticData.getValidationDate()); Reports reports = executor.execute(); SimpleReport simpleReport = reports.getSimpleReport(); assertEquals(1, simpleReport.getJaxbModel().getSignaturesCount()); XmlSignature xmlSignature = simpleReport.getJaxbModel().getSignature().get(0); assertEquals(null, xmlSignature.getCertificateChain()); validateBestSigningTimes(reports); }
@Test public void testCertChain() throws Exception { FileInputStream fis = new FileInputStream("src/test/resources/qualifNA.xml"); DiagnosticData diagnosticData = getJAXBObjectFromString(fis, DiagnosticData.class, "/xsd/DiagnosticData.xsd"); assertNotNull(diagnosticData); CustomProcessExecutor executor = new CustomProcessExecutor(); executor.setDiagnosticData(diagnosticData); executor.setValidationPolicy(loadPolicy()); executor.setCurrentTime(diagnosticData.getValidationDate()); Reports reports = executor.execute(); SimpleReport simpleReport = reports.getSimpleReport(); assertEquals(1, simpleReport.getJaxbModel().getSignaturesCount()); XmlSignature xmlSignature = simpleReport.getJaxbModel().getSignature().get(0); assertTrue(!xmlSignature.getCertificateChain().getCertificate().isEmpty()); assertEquals(3, xmlSignature.getCertificateChain().getCertificate().size()); ByteArrayOutputStream s = new ByteArrayOutputStream(); JAXB.marshal(simpleReport.getJaxbModel(), s); validateBestSigningTimes(reports); }
/** * This method retrieves the signature ids * * @return the {@code List} of signature id(s) contained in the simpleReport */ public List<String> getSignatureIdList() { final List<String> signatureIdList = new ArrayList<String>(); List<XmlSignature> signatures = wrapped.getSignature(); if (Utils.isCollectionNotEmpty(signatures)) { for (XmlSignature xmlSignature : signatures) { signatureIdList.add(xmlSignature.getId()); } } return signatureIdList; }
/** * This method returns a wrapper for the given signature * * @param signatureId * the signature id * @return the wrapper for the given signature id */ private XmlSignature getSignatureById(String signatureId) { List<XmlSignature> signatures = wrapped.getSignature(); if (Utils.isCollectionNotEmpty(signatures)) { for (XmlSignature xmlSignature : signatures) { if (Utils.areStringsEqual(signatureId, xmlSignature.getId())) { return xmlSignature; } } } return null; }
simpleReport.getSignature().add(xmlSignature);