Код JAVA из SDK, для проверки и подписания новых ЭЦП, не работают

В последнем SDK примеры Java старые, последние изменения вносились в 2015 году. Может есть обновленные варианты кодов?

У меня проблемы возникают в следующих местах:
1) Онлайн проверка тестового ключа нового формата (из SDK) всегда возвращает статус 1. Проверка через сервис http://test.pki.gov.kz/ocsp. Проверил со всеми корневыми сертификатами которые в SDK. Старые ЭЦП проверяются без проблем. Использую код SDK 2.0\Java\examples\OCSPTest.java

private VerifySignatureResult makeOcspResponse(HttpURLConnection con) throws OCSPException, Exception {
try {
InputStream in = con.getInputStream();
OCSPResp response = new OCSPResp(in);
in.close();
log.info(“makeOcspResponse” + response.getStatus());
} …

2) Не получается подписать с тестовыми ключами нового формата. Код Java в SDK все старые. Использую код из примера SDK 2.0\Java\examples\XMLSignSample\src\kz\gov\pki\XMLSignSample.java. Думаю может нужны новые методы подписания.
if (sigAlgOid.equals(PKCSObjectIdentifiers.sha1WithRSAEncryption.getId())) {
signMethod = Constants.MoreAlgorithmsSpecNS + “rsa-sha1”;
digestMethod = Constants.MoreAlgorithmsSpecNS + “sha1”;
} else if (sigAlgOid.equals(PKCSObjectIdentifiers.sha256WithRSAEncryption.getId())) {
signMethod = Constants.MoreAlgorithmsSpecNS + “rsa-sha256”;
digestMethod = XMLCipherParameters.SHA256;
} else {
signMethod = Constants.MoreAlgorithmsSpecNS + “gost34310-gost34311”;
digestMethod = Constants.MoreAlgorithmsSpecNS + “gost34311”;
}

Примеры пока еще не обновлены, потому что работы по переходу на новый ГОСТ пока еще не закончены.

Корневые из какой папки вы указывали для OCSP?

Для примера по XML можете добавить

else if (sigAlgOid.equals(KNCAObjectIdentifiers.gost3411_2015_with_gost3410_2015_512.getId())) {
        signMethod = "urn:ietf:params:xml:ns:pkigovkz:xmlsec:algorithms:gostr34102015-gostr34112015-512";
        digestMethod = "urn:ietf:params:xml:ns:pkigovkz:xmlsec:algorithms:gostr34112015-512";
}

Корневые взял из папки SDK 2.0\GOST2015-TEST\cert\root. На всякий случай и старые, и свежие с сайта тоже пробовал

Здравствуйте!
В библиотеке knca_provider_util есть PKIXUtil для проверки цепочки. Там можно проверять действительность сертификата либо через CRL, либо OCSP
Его исходный код опубликован здесь
https://gist.github.com/as1an/8533a5c3f9ae9787de50a44457b242b8

Он использует KNCAOCSPChecker из библиотеки KalkanCrypt
Исходный код тут
https://gist.github.com/as1an/c84b13b0afc740dde14d90c8b0d5e88d

Здравствуйте!

Спасибо, подписать получилось.

Первую проблему все еще не могу решить. Попробовал метод проверки из PKIXUtil. Статус на этом месте всегда 1. С ошибкой Certification path could not be validated

if (ocspResp.getStatus() != OCSPRespStatus.SUCCESSFUL) {
   throw new KalkanException(OCSPCode.OCSP_RESP_NOT_SUCCESSFUL).set("status", ocspResp.getStatus());
}

Сертификат тестовый из папки SDK 2.0\GOST2015-TEST\cert\действующие\ЮЛ\первый руководитель
Корневые из папки SDK 2.0\GOST2015-TEST\cert\root

Добрый день. Подскажите, у Вас получилось обратиться по тестовому ocsp и получить корректный ответ от сервера?
У меня падает в том же самом месте. пробовал разными сертификатами (из папки Gost2015) подписывать

Добрый вечер!
Тогда ошибка была в моем коде:
В качестве URL присваивал URL url = new URL(ocspUrl); вместо URL url = new URL(ocspUrl + “/” + b64Req);

Сейчас такую ошибку ( Certification path could not be validated) выдает до обращения к тестовому ocsp, при проверке цепочки. Думаю из-за того что истекли сроки тестовых корневых сертификатов

так же возникает такая ошибка переодически если дебажить и останавливаться на какойто точке потом запускать этой ошибки нет.Еще я синхронизировал время и ошибка прошла но через день вернулась.