@Override protected SignatureCryptographicConstraint getSignatureCryptographicConstraint_(final String rootXPathQuery, final String context, final String subContext) { final String level = getValue(rootXPathQuery + "/@Level"); if (DSSUtils.isNotBlank(level)) { final SignatureCryptographicConstraint constraint = new SignatureCryptographicConstraint(level, context, subContext); final List<XmlDom> encryptionAlgoList = getElements(rootXPathQuery + "/AcceptableEncryptionAlgo/Algo"); final List<String> encryptionAlgoStringList = XmlDom.convertToStringList(encryptionAlgoList); constraint.setEncryptionAlgorithms(encryptionAlgoStringList); final List<XmlDom> digestAlgoList = getElements(rootXPathQuery + "/AcceptableDigestAlgo/Algo"); final List<String> digestAlgoStringList = XmlDom.convertToStringList(digestAlgoList); constraint.setDigestAlgorithms(digestAlgoStringList); final List<XmlDom> miniPublicKeySizeList = getElements(rootXPathQuery + "/MiniPublicKeySize/Algo"); final Map<String, String> miniPublicKeySizeStringMap = XmlDom.convertToStringMap(miniPublicKeySizeList, SIZE); constraint.setMinimumPublicKeySizes(miniPublicKeySizeStringMap); final List<XmlDom> algoExpirationDateList = getElements("/ConstraintsParameters/Cryptographic/AlgoExpirationDate/Algo"); final Map<String, Date> algoExpirationDateStringMap = XmlDom.convertToStringDateMap(algoExpirationDateList, DATE); constraint.setAlgorithmExpirationDates(algoExpirationDateStringMap); return constraint; } return null; }