Валидация xml подписи, отсутствие алгоритма в XMLSignature

Пытаюсь провалидировать подпись следущими строчками кода на Java:

public boolean verifyXml(String xmlString) {
boolean result = false;

    try {
        Provider kalkanProvider = new KalkanProvider();
        Security.addProvider(kalkanProvider);
        KncaXS.loadXMLSecurity();

        Document doc = getDocument(xmlString);

        Element sigElement = null;
        Element rootEl = (Element) doc.getFirstChild();

        NodeList list = rootEl.getElementsByTagName("ds:Signature");
        if (list.getLength() == 0) {
            throw new IllegalStateException("ds:Signature not found");
        }

        Node sigNode = list.item(0);
        sigElement = (Element) sigNode;
        XMLSignature signature = new XMLSignature(sigElement, "");
        KeyInfo ki = signature.getKeyInfo();
        X509Certificate cert = ki.getX509Certificate();
        if (cert == null) {
            throw new IllegalStateException("Certificate not found");
        }
        result = signature.checkSignatureValue(cert);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return result;
}

Подписанные XML-ки имеют такое поле ds:SignatureMethod Algorithm=“urn:ietf:params:xml:ns:pkigovkz:xmlsec:algorithms:gostr34102015-gostr34112015-512”

Provider kalkanProvider = new KalkanProvider();
Security.addProvider(kalkanProvider);
KncaXS.loadXMLSecurity();

Добавление KalkanProvider должно добавлять этот алгоритм в XMLSignature, чтобы она могла провалидировать подпись. В чем может быть ошибка? Правильно ли я понимаю процесс валидации?