Статус: Участник
Группы: Участники
Зарегистрирован: 18.05.2017(UTC) Сообщений: 16
Сказал(а) «Спасибо»: 4 раз
|
Всем доброго дня возникла проблема с извлечением сертификата из подписи : Создаю подпись для документа odt Код:
var CADES_BES = 1;
oSignedData.Content= b64encoded;
oSigner.Options = 1; //CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN
signature = oSignedData.SignCades(oSigner, CADES_BES,true);
Проверяю с помощью Код: var oSignedData = cadesplugin.CreateObject("CAdESCOM.CadesSignedData");
oSignedData.ContentEncoding = 1;
oSignedData.Content = b64encoded;
oSignedData.VerifyCades(signature, 1, true);
Проверка проходит без ошибок И отправляю на сервер где с помощью java пытаюсь извлечь сертификат Код:signature = Base64.getMimeDecoder().decode(sign);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
ByteArrayInputStream bais = new ByteArrayInputStream(signature);
Iterator<? extends Certificate> i = cf.generateCertificates(bais).iterator(); // тут ошибка
X509Certificate cert = (X509Certificate) i.next();
Трейс ошибки: Код:java.security.cert.CertificateException: java.io.IOException: Incomplete BER/DER data
at sun.security.provider.X509Factory.engineGenerateCertificates(X509Factory.java:358)
at java.security.cert.CertificateFactory.generateCertificates(CertificateFactory.java:462)
Пытался достать просто сертификат из хранилища и вызвать у него метод UPD: Отправлял его на сервер и с помощью кода выше пытался сгенерировать сертифкат - результат то же самое То же самое не может - вытащить нужный сертификат Указывал разные oSigner.Option для генерации подписи Менял способы кодирование и декодирования base64 Можете подсказать что я делаю не так ? Отредактировано пользователем 18 мая 2017 г. 17:44:30(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Здравствуйте. Автор: vorh ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) И отправляю на сервер где с помощью java пытаюсь извлечь сертификат Код:signature = Base64.getMimeDecoder().decode(sign);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
ByteArrayInputStream bais = new ByteArrayInputStream(signature);
Iterator<? extends Certificate> i = cf.generateCertificates(bais).iterator(); // тут ошибка
X509Certificate cert = (X509Certificate) i.next();
Трейс ошибки: Код:java.security.cert.CertificateException: java.io.IOException: Incomplete BER/DER data
at sun.security.provider.X509Factory.engineGenerateCertificates(X509Factory.java:358)
at java.security.cert.CertificateFactory.generateCertificates(CertificateFactory.java:462)
sign - это подпись? Если да, то вы ее фактически пытаетесь открыть, как сертификат: sign -> signature -> bais -> i. Если не подпись, то сохраните в файл, попробуйте декодировать asn1 декодировщиком. Вообще, подпись можно декодировать либо низкоуровневыми asn1-функциями (см. архив samples-sources.jar), либо с помощью CAdES API (модули AdES-core.jar и CAdES.jar, документация и примеры в javadoc/CAdES-javadoc.jar). |
|
![thanks](/forum2/Themes/soclean/heart_small.png) 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
vorh оставлено 18.05.2017(UTC)
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 18.05.2017(UTC) Сообщений: 16
Сказал(а) «Спасибо»: 4 раз
|
Благодарю за быстрый ответ , сейчас попробую это сделать, а что то по поводу извлечение сертификата можете подсказать ? Как корректно это сделать или указать на руководство где про это можно почитать UPD: JCP и TLS увы не стоит и нету возможности его поставить По ошибке увидев тег Java решил создать тему тут - мои вопросы скорее отностся к разделу плагина браузера Собственно как можно с помощью плагина извлечь сертификат и передать на сервер ? Отредактировано пользователем 18 мая 2017 г. 18:36:17(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Автор: vorh ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) JCP и TLS увы не стоит и нету возможности его поставить Тогда поищите что-то вроде bouncycastle для декодирования подписи и извлечения сертификата. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close