/** * This method creates {@code TimestampToken} based on provided parameters. * * @param timestampElement contains the encapsulated timestamp * @param timestampType {@code TimestampType} * @return {@code TimestampToken} of the given type * @throws DSSException */ private TimestampToken makeTimestampToken(final Element timestampElement, final TimestampType timestampType) throws DSSException { final Element timestampTokenNode = DSSXMLUtils.getElement(timestampElement, xPathQueryHolder.XPATH__ENCAPSULATED_TIMESTAMP); if (timestampTokenNode == null) { // TODO (09/11/2014): The error message must be propagated to the validation report LOG.warn("The timestamp (" + timestampType.name() + ") cannot be extracted from the signature!"); return null; } final String base64EncodedTimestamp = timestampTokenNode.getTextContent(); final TimeStampToken timeStampToken = DSSASN1Utils.createTimeStampToken(base64EncodedTimestamp); final TimestampToken timestampToken = new TimestampToken(timeStampToken, timestampType, certPool); timestampToken.setHashCode(timestampElement.hashCode()); setTimestampCanonicalizationMethod(timestampElement, timestampToken); // TODO: timestampToken.setIncludes(element.getIncludes)... // final NodeList includes = timestampTokenNode.getElementsByTagName("Include"); // for (int i = 0; i < includes.getLength(); ++i) { // timestampToken.getTimestampIncludes().add(new TimestampInclude(includes.item(i).getBaseURI(), includes.item(i).getAttributes())); // } return timestampToken; }