Статус: Участник
Группы: Участники
Зарегистрирован: 29.05.2014(UTC) Сообщений: 18
Сказал(а) «Спасибо»: 1 раз
|
Добрый день. Столкнулся со следующей проблемой: есть подписанный файл с несколькими присоединенными подписями. Пытаюсь улучшить подписи до CAdES_X_Long_Type_1 и получаю ошибку "Not enough revocation values for the certificate" Лог выполнения и исходный файл прикладываю Вложение(я): log.txt (1,084kb) загружен 5 раз(а). file.zip (23kb) загружен 4 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
Здравствуйте! А какое ПО вы используете?
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 29.05.2014(UTC) Сообщений: 18
Сказал(а) «Спасибо»: 1 раз
|
Улучшаю Java кодом, использую так: Код:
Collection<X509Certificate> chain = new ArrayList<X509Certificate>();
// 1. Загрузка и "проверка" подписи.
// Если подпись совмещенная, то данные (origData) равны null.
logger.debug("Load signature...");
CAdESSignature cadesSignature = new CAdESSignature(cadesCms, origData, null);
cadesSignature.verify(chain);
CAdESSigner[] signerInfos = cadesSignature.getCAdESSignerInfos();
for (CAdESSigner signer : signerInfos) {
chain.add(signer.getSignerCertificate());
}
// Список всех подписантов в исходной подписи.
Collection<SignerInformation> srcSignerInfos = new ArrayList<SignerInformation>();
for (CAdESSigner signer : signerInfos) {
srcSignerInfos.add(signer.getSignerInfo());
}
// 2. Усовершенствование подписи.
CMSSignedData srcSignedData = cadesSignature.getSignedData();
for (CAdESSigner srcSigner : signerInfos) {
// Исключаем его из исходного списка, т.к. его место займет усовершенствованный подписант.
srcSignerInfos.remove(srcSigner.getSignerInfo());
// Улучшаем CAdES-BES до CAdES-X Long Type 1.
srcSigner.enhance(JCP.PROVIDER_NAME, JCP.GOST_DIGEST_OID, chain, tsaUrl, CAdESType.CAdES_X_Long_Type_1);
// Усовершенствованный подписант.
SignerInformation enhSigner = srcSigner.getSignerInfo();
// Добавляем его в исходный список подписантов.
srcSignerInfos.add(enhSigner);
}
// Список подписантов.
SignerInformationStore dstSignerInfoStore = new SignerInformationStore(srcSignerInfos);
// Обновляем исходную подпись c ее начальным списком подписантов на тот же, но с усовершенствованными подписантами.
CMSSignedData dstSignedData = CMSSignedData.replaceSigners(srcSignedData, dstSignerInfoStore);
// 3. Проверка усовершенствованной подписи.
// Проверяем подпись.
byte[] encodedSignature = dstSignedData.getEncoded();
cadesSignature = new CAdESSignature(encodedSignature, origData, null);
cadesSignature.verify(chain);
return encodedSignature;
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Здравствуйте. В chain предполагается, что сертификат подписанта - первый в списке. Немного смущает for (CAdESSigner signer : signerInfos) { chain.add(signer.getSignerCertificate()); } а потом он передается всем, даже разным, подписям (enhance). Попробуйте не класть эти сертификаты, или класть так, чтобы первым был сертификат актуального, улучшаемого в данной итерации цикла подписанта. Отредактировано пользователем 3 октября 2014 г. 17:02:28(UTC)
| Причина: Не указана |
|
1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 29.05.2014(UTC) Сообщений: 18
Сказал(а) «Спасибо»: 1 раз
|
Спасибо! Немного исправил код, теперь все сработало.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 29.05.2014(UTC) Сообщений: 18
Сказал(а) «Спасибо»: 1 раз
|
Подскажите еще по такой проблеме Есть подпись CADES_BES сделанная например два месяца назад. Подписана сертификатом у которого истекает срок действия. Пытаюсь усовершенствовать подпись, но получаю ошибку: Код:CRL issued by CN=TAXCOM CA, OU=Удостоверяющий центр, O="ООО \"Такском\"", L=Москва, ST=77 Москва, C=RU, EMAILADDRESS=uc_support@taxcom.ru, STREET="ул. Плющиха, дом 26/2", OID.1.2.643.3.131.1.1=#120C303037373034323131323031, OID.1.2.643.100.1=#120D31303237373030303731353330, has wrong thisUpdate Thu Oct 02 17:10:00 GMT+04:00 2014 if compare to Fri Oct 03 17:39:32 GMT+04:00 2014
Про даты CRL я понимаю, но может есть какие то варианты как обойти данную проблему? Отредактировано пользователем 3 октября 2014 г. 18:04:48(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
По 1 вопросу - спасибо, внесем исправление, которое позволит выбирать из цепочки chain нужный сертификат подписи независимо от его положения. По поводу двумесячной CAdES-BES - есть подозрение, что в сертификате подписи нет AIA - адреса OCSP службы. В этой версии CAdES.jar может быть ошибка - попытка обращения в случае отсутствия AIA или недоступности OCSP службы к CRL даже для сертификата подписи, хотя для него полагается только OCSP доказательство. Это исправлено в текущей версии. Отредактировано пользователем 4 октября 2014 г. 11:28:51(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 29.05.2014(UTC) Сообщений: 18
Сказал(а) «Спасибо»: 1 раз
|
Автор: afev По 1 вопросу - спасибо, внесем исправление, которое позволит выбирать из цепочки chain нужный сертификат подписи независимо от его положения. По поводу двумесячной CAdES-BES - есть подозрение, что в сертификате подписи нет AIA - адреса OCSP службы. В этой версии CAdES.jar может быть ошибка - попытка обращения в случае отсутствия AIA или недоступности OCSP службы к CRL даже для сертификата подписи, хотя для него полагается только OCSP доказательство. Это исправлено в текущей версии. Спасибо за ответ!
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close