/** * @param signatureId the signature id to test * @return true if the signature Indication element is equals to {@link Indication#VALID} */ public boolean isSignatureValid(final String signatureId) { final String indicationValue = getIndication(signatureId); return Indication.VALID.equals(indicationValue); }
/** * This method returns the first signature id. * * @return */ public String getFirstSignatureId() { final List<String> signatureIdList = getSignatureIdList(); if (signatureIdList.size() > 0) { return signatureIdList.get(0); } return null; }
public List<Conclusion.BasicInfo> getInfo(final String signatureId) { final List<Conclusion.BasicInfo> infoList = getBasicInfo(signatureId, "Info"); return infoList; }
private boolean validateTslSignature(final List<X509Certificate> signingCertList, final byte[] bytes) { boolean coreValidity = false; if (signingCertList != null) { final XMLDocumentValidator xmlDocumentValidator = prepareSignatureValidation(signingCertList, bytes); final List<AdvancedSignature> signatures = xmlDocumentValidator.getSignatures(); if (signatures.size() == 0) { throw new DSSException("Not ETSI compliant signature. The Xml is not signed."); } final Reports reports = xmlDocumentValidator.validateDocument(); final SimpleReport simpleReport = reports.getSimpleReport(); final List<String> signatureIdList = simpleReport.getSignatureIdList(); final String signatureId = signatureIdList.get(0); final String indication = simpleReport.getIndication(signatureId); coreValidity = Indication.VALID.equals(indication); LOG.info("The TSL signature validity: " + coreValidity); if (!coreValidity) { LOG.info("The TSL signature validity details:\n" + simpleReport); throw new DSSException("Not ETSI compliant signature. The signature is not valid."); } } return coreValidity; }
/** * This method returns the indication obtained after the validation of the signature. * * @param signatureId DSS unique identifier of the signature * @return */ public String getIndication(final String signatureId) { final String indication = getValue("/SimpleReport/Signature[@Id='%s']/Indication/text()", signatureId); return indication; }
/** * @return the {@code List} of signature id(s) contained in the simpleReport */ public List<String> getSignatureIdList() { final List<String> signatureIdList = new ArrayList<String>(); final List<XmlDom> signatures = getElements("/SimpleReport/Signature"); for (final XmlDom signature : signatures) { signatureIdList.add(signature.getAttribute("Id")); } return signatureIdList; }
/** * This method returns the validation time. * * @return */ public Date getValidationTime() { final Date validationTime = getTimeValue("/SimpleReport/ValidationTime/text()"); return validationTime; }
final String simpleReportXml = simpleReport.toString();
/** * This method generates the validation simpleReport. * * @param params validation process parameters * @return the object representing {@code SimpleReport} */ public SimpleReport build(final ProcessParameters params) { final XmlNode simpleReport = new XmlNode(NodeName.SIMPLE_REPORT); simpleReport.setNameSpace(XmlDom.NAMESPACE); try { addPolicyNode(simpleReport); addValidationTime(params, simpleReport); addDocumentName(simpleReport); addSignatures(params, simpleReport); addStatistics(simpleReport); } catch (Exception e) { if (!"WAS TREATED".equals(e.getMessage())) { notifyException(simpleReport, e); } } final Document reportDocument = simpleReport.toDocument(); return new SimpleReport(reportDocument); }
/** * This method returns the signature format (XAdES_BASELINE_B...) * * @param signatureId * @return */ public String getSignatureFormat(final String signatureId) { final String indication = getValue("/SimpleReport/Signature[@Id='%s']/@SignatureFormat", signatureId); return indication; } }
/** * @return the list of signature id contained in the simpleReport * @deprecated FROM 4.3.0-RC, use getSignatureIdList() */ @Deprecated public List<String> getSignatureIds() { final List<String> signatureIdList = new ArrayList<String>(); final List<XmlDom> signatures = getElements("/SimpleReport/Signature"); for (final XmlDom signature : signatures) { signatureIdList.add(signature.getAttribute("Id")); } return signatureIdList; }
/** * This method returns the sub-indication obtained after the validation of the signature. * * @param signatureId DSS unique identifier of the signature * @return */ public String getSubIndication(final String signatureId) { final String subIndication = getValue("/SimpleReport/Signature[@Id='%s']/SubIndication/text()", signatureId); return subIndication; }
private List<Conclusion.BasicInfo> getBasicInfo(final String signatureId, final String basicInfoType) { final List<XmlDom> elementList = getElements("/SimpleReport/Signature[@Id='%s']/" + basicInfoType, signatureId); final List<Conclusion.BasicInfo> infoList = new ArrayList<Conclusion.BasicInfo>(); for (final XmlDom infoElement : elementList) { Conclusion.BasicInfo basicInfo = new Conclusion.BasicInfo(basicInfoType); basicInfo.setValue(infoElement.getText()); final NamedNodeMap attributes = infoElement.getAttributes(); for (int index = 0; index < attributes.getLength(); index++) { final Node attribute = attributes.item(index); basicInfo.setAttribute(attribute.getNodeName(), attribute.getNodeValue()); } infoList.add(basicInfo); } return infoList; }
public List<Conclusion.BasicInfo> getErrors(final String signatureId) { final List<Conclusion.BasicInfo> errorList = getBasicInfo(signatureId, "Error"); return errorList; }
/** * Returns the signature type: QES, AdES, AdESqc, NA * * @param signatureId * @return {@code SignatureType} */ public SignatureType getSignatureLevel(final String signatureId) { final String signatureTypeString = getValue("/SimpleReport/Signature[@Id='%s']/SignatureLevel/text()", signatureId); SignatureType signatureType; try { signatureType = SignatureType.valueOf(signatureTypeString); } catch (IllegalArgumentException e) { signatureType = SignatureType.NA; } return signatureType; }
public List<Conclusion.BasicInfo> getWarnings(final String signatureId) { final List<Conclusion.BasicInfo> errorList = getBasicInfo(signatureId, "Warning"); return errorList; }