Статус: Новичок
Группы: Участники
Зарегистрирован: 21.03.2024(UTC) Сообщений: 4
|
Здравствуйте, На форуме уже поднимали вопрос с ошибкой, возникающей при подписании CAdES_BES (https://cryptopro.ru/forum2/default.aspx?g=posts&t=22623): Код:
Caused by: java.lang.NullPointerException: digest OID is null
at org.bouncycastle.operator.DefaultDigestAlgorithmIdentifierFinder.find(Unknown Source)
at org.bouncycastle.operator.DefaultDigestAlgorithmIdentifierFinder.find(Unknown Source)
at org.bouncycastle.cms.SignerInfoGeneratorBuilder.createGenerator(Unknown Source)
at org.bouncycastle.cms.SignerInfoGeneratorBuilder.build(Unknown Source)
... 30 more
Столкнулся с той же проблемой, но рекомендации, описанные в представленной ветке, не помогли. Исходные данные: Код:
Java : temurin21-jdk:21.0.9_10-debian-upd7
CryptoPro : 2.0.42119-A
org.bouncycastle:bcpkix-jdk18on : 1.78.1
org.bouncycastle:bcprov-jdk18on : 1.78.1
Проблемный фрагмент кода: Код:
var cert0 = (X509Certificate) hdImageStore.getCertificate(alias);
var cert1 = (X509Certificate) null;
var cert2 = (X509Certificate) null;
try (
var cert1Is = FileResourceUtils.readResourceAsInputStream("certs/kontur-q-2025.crt");
var cert2Is = FileResourceUtils.readResourceAsInputStream("certs/guc2022.crt");
) {
cert1 = (X509Certificate) CertificateFactory.getInstance("X.509").generateCertificate(cert1Is);
cert2 = (X509Certificate) CertificateFactory.getInstance("X.509").generateCertificate(cert2Is);
}
var certificateChain = new Certificate[]{ cert0, cert1, cert2 };
var x509CertificateChain = new X509Certificate[certificateChain.length];
for (int i = 0; i < certificateChain.length; i++) {
x509CertificateChain[i] = (X509Certificate) certificateChain[i];
}
var privateKey = (PrivateKey) hdImageStore.getKey(alias, password);
var algorithm = privateKey.getAlgorithm();
var cadesSignature = new CAdESSignature(true);
cadesSignature.setOptions((new Options()).disableCertificateValidation());
cadesSignature.addSigner(
JCP.PROVIDER_NAME,
AlgorithmUtility.keyAlgToDigestOid(algorithm), // 1.2.643.7.1.1.2.2
AlgorithmUtility.keyAlgToKeyAlgorithmOid(algorithm), // 1.2.643.7.1.1.1.1
privateKey,
Arrays.asList(x509CertificateChain),
CAdESType.CAdES_BES,
null,
false
);
var baos = new ByteArrayOutputStream();
cadesSignature.open(baos);
cadesSignature.update(data);
cadesSignature.close();
baos.close();
Отредактировано пользователем 20 апреля 2026 г. 8:19:00(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,087  Откуда: Крипто-Про Сказал(а) «Спасибо»: 22 раз Поблагодарили: 747 раз в 704 постах
|
Здравствуйте. А если так передать? Код:
cadesSignature.addSigner(
JCP.PROVIDER_NAME,
null, // <---
null, // <---
privateKey,
Arrays.asList(x509CertificateChain),
CAdESType.CAdES_BES,
null,
false
);
|
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,087  Откуда: Крипто-Про Сказал(а) «Спасибо»: 22 раз Поблагодарили: 747 раз в 704 постах
|
Еще тут у 2.0.42119-A версия BC должна быть 1.60, как в папке dependencies дистрибутива. Иначе могут быть проблемы, т.к. BC тоже меняется. Отредактировано пользователем 20 апреля 2026 г. 13:21:57(UTC)
| Причина: Не указана |
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.03.2024(UTC) Сообщений: 4
|
Проблема в BC. Возвращение на org.bouncycastle:bcpkix-jdk15on:1.60 и org.bouncycastle:bcprov-jdk15on:1.60 решает проблему. Спасибо.
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close