Статус: Участник
Группы: Участники
Зарегистрирован: 25.09.2014(UTC) Сообщений: 13 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 1 раз
|
Добрый день! У меня задача проверить входящую Cades-подпись. Использую jdk1.6.0_38, jcp.1.0.54. Приведенный ниже код справляется со своей задачей, за исключением подписи (и подписываемого текста) во вложении. Поднимается exception на строке Код:
cadesSignature.verify(null, crlList);
Код:
Error building certification path for <далее данные сертификата подписи>: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target, errors: 'PKIX failure: invalid certificate parameters' (33)
at ru.CryptoPro.CAdES.b.d.b.a(Unknown Source)
at ru.CryptoPro.CAdES.b.d.b.a(Unknown Source)
at ru.CryptoPro.CAdES.b.d.a.a(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSigner.a(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.a(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.verify(Unknown Source)
at ru.bm.ws.cryptoprowrk.check.CryptoProVerify.verify(CryptoProVerify.java:98)
at ru.bm.ws.cryptoprowrk.check.CryptoProVerify.main(CryptoProVerify.java:153)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Код:
if (messageBase64 == null) {
throw new NullPointerException("Ошибка - подписанное сообщение пусто.");
}
if (signatureBase64 == null) {
throw new NullPointerException("Ошибка - пустая подпись сообщения.");
}
byte[] message = null;
try {
message = Base64.decode(messageBase64.getBytes());
} catch (Exception e) {
throw new Exception("Ошибка - сообщение должно быть в формате Base64");
}
byte[] signature = null;
try {
signature = Base64.decode(signatureBase64.getBytes());
} catch (Exception e) {
throw new Exception("Ошибка - подпись должна быть в формате Base64");
}
// Подпись в тесте была совмещенная, потому данные равны null. Предположим, что
// подписей несколько, тогда лучше указать тип null и положиться на самоопределение
// типа подписи.
CAdESSignature cadesSignature = new CAdESSignature(signature, message, CAdESType.CAdES_BES);
Configuration.printSignatureInfo(cadesSignature);
System.setProperty("ru.CryptoPro.reprov.enableCRLDP", "false");
System.setProperty("com.sun.security.enableCRLDP", "false"); // для sun jvm
System.setProperty("com.ibm.security.enableCRLDP", "false"); // или ibm jvm
System.setProperty("ru.cryptopro.notThrowIfChainIsInvalid", "true");
System.setProperty("ocsp.enable", "false");
// Список CRL.
List<X509CRL> crlList = new ArrayList<X509CRL>(3);
// Если задан CRL, то читаем его из файла.
crlList.add((X509CRL) CertificateFactory.getInstance("X.509")
.generateCRL(new FileInputStream(Configuration.CRL_FILENAME_1)));
crlList.add((X509CRL) CertificateFactory.getInstance("X.509")
.generateCRL(new FileInputStream(Configuration.CRL_FILENAME_2)));
crlList.add((X509CRL) CertificateFactory.getInstance("X.509")
.generateCRL(new FileInputStream(Configuration.CRL_FILENAME_3)));
cadesSignature.verify(null, crlList);
Подскажите, в чем может быть проблема? Сертификаты в хранилище добавлены, CRL свежие, на других подписях все работает. Вложение(я): ![](/forum2/Themes/soclean/icon_file.gif) 27.03.2015.rar (9kb) загружен 6 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.09.2014(UTC) Сообщений: 13 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 1 раз
|
Есть ли надежда на помощь?:)
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Здравствуйте. Может быть, в сертификате подписи есть какое-нибудь незнакомое критическое расширение? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.09.2014(UTC) Сообщений: 13 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 1 раз
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Здравствуйте. Может быть, в сертификате подписи есть какое-нибудь незнакомое критическое расширение? Здравствуйте. Во вложении 2 сертификата. Подпись, сделанная сертификатом cert_fail.cer, при проверке падает с ошибкой. Вложение(я): ![](/forum2/Themes/soclean/icon_file.gif) 30.03.2015.rar (5kb) загружен 6 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Попробуйте включить логирование уровня FINE для JCP и собрать лог. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.09.2014(UTC) Сообщений: 13 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 1 раз
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Попробуйте включить логирование уровня FINE для JCP и собрать лог. Лог во вложении. Вложение(я): ![](/forum2/Themes/soclean/icon_file.gif) log.log (56kb) загружен 8 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Из первого архива не удалось декодировать ResBase.base64 (в asn-редакторе тоже ошибки), для signatureResBase.base64 необходимо знать, какие данные подписывали (видимо, отделенная подпись). |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.09.2014(UTC) Сообщений: 13 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 1 раз
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Из первого архива не удалось декодировать ResBase.base64 (в asn-редакторе тоже ошибки), для signatureResBase.base64 необходимо знать, какие данные подписывали (видимо, отделенная подпись). Декодированные данные во вложении. Странно. У меня получилось декодировать следующим кодом: Код:public static void main(String[] args) throws Exception {
byte[] message = null;
String xmlForSignSourceBase64 = FileUtils.readFileToString(new File("C:\\Users\\Arsanukaev_IZ\\Documents\\23.03.2015\\ResBase.base64"), "UTF-8");
try {
message = Base64.decode(xmlForSignSourceBase64.getBytes());
} catch (Exception e) {
throw new Exception("Ошибка - содержимое тега должно иметь формат Base64.");
}
FileOutputStream fos = new FileOutputStream("C:\\Users\\Arsanukaev_IZ\\Documents\\23.03.2015\\ResBase.decoded");
fos.write(message);
fos.close();
/* String xmlForSignSource = new String(message);
System.out.print(xmlForSignSource);*/
}
Вложение(я): ![](/forum2/Themes/soclean/icon_file.gif) ResBase.rar (3kb) загружен 6 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Я имел в виду asn-структуру, не base64. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.09.2014(UTC) Сообщений: 13 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 1 раз
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Я имел в виду asn-структуру, не base64. Подписывали данные ResBase.decoded из архива из предыдущего сообщения. Я проверяю здесь - http://www.gosuslugi.ru/pgu/eds/Тип подписи - — электронного документа. ЭП — отсоединенная, в формате PKCS#7 указываю два файла из вложения. Проверка проходит. Делаю то же самое через свое приложение - выходит ошибка. Вложение(я): ![](/forum2/Themes/soclean/icon_file.gif) 31.03.2015.rar (7kb) загружен 5 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close