Статус: Участник
Группы: Участники
Зарегистрирован: 18.05.2017(UTC) Сообщений: 16
Сказал(а) «Спасибо»: 4 раз
|
Не удается декодировать(?) извлеченный сертификат Извлекаю сертификат из store и вызываю метод Export(); На выходе получаю вот такое Цитата:MIIC9zCCAqagAwIBAgITEgAcQq9kIFE6XW/J5gAAABxCrzAIBgYqhQMCAgMwfzEj MCEGCSqGSIb3DQEJARYUc3VwcG9ydEBjcnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJV MQ8wDQYDVQQHEwZNb3Njb3cxFzAVBgNVBAoTDkNSWVBUTy1QUk8gTExDMSEwHwYD VQQDExhDUllQVE8tUFJPIFRlc3QgQ2VudGVyIDIwHhcNMTcwNTE1MTIzODQ3WhcN MTcwODE1MTI0ODQ3WjAbMRkwFwYDVQQDDBBUZXN0IENlcnRpZmljYXRlMGMwHAYG KoUDAgITMBIGByqFAwICJAAGByqFAwICHgEDQwAEQI2vz2e7XiWhO9qPvNhys4TV O0Yz04iq9rFQZgVK9ZoJ/7VzXaCGjDyLhh5zCkesn0olSWB4CcPRao4Z5J9+Sryj ggFbMIIBVzAOBgNVHQ8BAf8EBAMCBPAwHQYDVR0OBBYEFN3ugCVhrKM61uwsrg5w z5jbDEjXMB8GA1UdIwQYMBaAFBUxfLCNGt5m1xWcSVKXFyS5AXqDMFkGA1UdHwRS MFAwTqBMoEqGSGh0dHA6Ly90ZXN0Y2EuY3J5cHRvcHJvLnJ1L0NlcnRFbnJvbGwv Q1JZUFRPLVBSTyUyMFRlc3QlMjBDZW50ZXIlMjAyLmNybDCBqQYIKwYBBQUHAQEE gZwwgZkwYQYIKwYBBQUHMAKGVWh0dHA6Ly90ZXN0Y2EuY3J5cHRvcHJvLnJ1L0Nl cnRFbnJvbGwvdGVzdC1jYS0yMDE0X0NSWVBUTy1QUk8lMjBUZXN0JTIwQ2VudGVy JTIwMi5jcnQwNAYIKwYBBQUHMAGGKGh0dHA6Ly90ZXN0Y2EuY3J5cHRvcHJvLnJ1 L29jc3Avb2NzcC5zcmYwCAYGKoUDAgIDA0EA6co/YUYmr0Dt+3hpIB4ffYBkVc7v vvNOkIuGLgQGsMnsG3GEGRAPAwgAOBwWbQ Пытаюсь извлечь сертификат: 1) С помощью java: Код:ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
Iterator<? extends Certificate> i = cf.generateCertificates(bais).iterator();
Результат: Получаю ошибку java.security.cert.CertificateException: java.io.IOException: Incomplete BER/DER data 2) Декодировал с помощью онлайн сервиса https://www.sslshopper.c...certificate-decoder.htmlРезультат: то же самое - нечего не находит Собственно вопрос , что я делаю не так и как мне извлечь сертификат?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 495 раз Поблагодарили: 2035 раз в 1579 постах
|
> ByteArrayInputStream(bytes)
В bytes передавать байты декодированные из base64 ( MIIC9zCCAqagAwIB ...) |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 18.05.2017(UTC) Сообщений: 16
Сказал(а) «Спасибо»: 4 раз
|
Использовал Base64.getMimeDecoder().decode() для декодирования , перед этим файлы на сервер попадают get запросом , в параметре которого передается как раз base64 сертификата Отредактировано пользователем 28 июня 2017 г. 15:51:15(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 495 раз Поблагодарили: 2035 раз в 1579 постах
|
Автор: vorh Использовал Base64.getMimeDecoder().decode() для декодирования , перед этим файлы на сервер попадают get запросом , в параметре которого передается как раз base64 сертификата POST желателен для этих целей... |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 18.05.2017(UTC) Сообщений: 16
Сказал(а) «Спасибо»: 4 раз
|
Автор: Андрей * Автор: vorh Использовал Base64.getMimeDecoder().decode() для декодирования , перед этим файлы на сервер попадают get запросом , в параметре которого передается как раз base64 сертификата POST желателен для этих целей... Да b64 сертификата просто из дебагера скопировал и попытался распарсить - толку ноль , чего то не хватает То же самое и с подписью документа - извлечь из нее информацию о подписанте не удается Метод проверки подписи отрабатывает успешно
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 495 раз Поблагодарили: 2035 раз в 1579 постах
|
>толку ноль , чего то не хватает а приведенная выше строка в base64 - корректная? Подозрительные: 1,00 КБ (1 024 байт) Отредактировано пользователем 28 июня 2017 г. 17:54:35(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 18.05.2017(UTC) Сообщений: 16
Сказал(а) «Спасибо»: 4 раз
|
Автор: Андрей * >толку ноль , чего то не хватает
а приведенная выше строка в base64 - корректная?
Подозрительные: 1,00 КБ (1 024 байт) Собственно расскажу все по порядку: Есть документ odt , который пытаюсь подписать На вход подается uint8Array я кодирую в Base64 с помощью вот этой функции Код:function _arrayBufferToBase64( buffer ) {
var binary = '';
var bytes = new Uint8Array( buffer );
var len = bytes.byteLength;
for (var i = 0; i < len; i++) {
binary += String.fromCharCode( bytes[ i ] );
}
return window.btoa( binary );
}
Потом подписываю: Код:var CADES_BES = 1;
Signature = oSignedData.SignCades(data, CADES_BES);
Из этой сигнатуры пытаюсь извлечь сертификат(?) Подписывал у вас на сайте файл - все корректно, подпись потом легко открывается в виде сертификата test.p7b (42kb) загружен 2 раз(а).Что мне нужно сделать чтобы добавиться такого ? Собственно сама сигнатура подписанного файла b64.txt (60kb) загружен 2 раз(а).
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 495 раз Поблагодарили: 2035 раз в 1579 постах
|
|
|
1 пользователь поблагодарил Андрей * за этот пост.
|
vorh оставлено 29.06.2017(UTC)
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 18.05.2017(UTC) Сообщений: 16
Сказал(а) «Спасибо»: 4 раз
|
С сертификатом разобрался огромное спасибо вам, но теперь возникла проблема с подписью:
Пытаюсь ее декодировать из base64 to byte[]
С помощью java
Base64.getMimeDecoder().decode(sign.getBytes(StandardCharsets.UTF_8)); // Пробовал и без UTF-8
Вываливается ошибка java.lang.IllegalArgumentException: Input byte array has wrong 4-byte ending unit Иногда удается нормально декодировать , но подпись не открывается как .p7b
В чем может быть проблема ?
Если декодируемую подпись поместить в Notepad++ и там декодировать с помощью плагина , а затем сохранить как .p7b - то все открывается , при этом размер файла 2006 байт , а если удается удачно декодировать с помощью java то размер 2000 байт
Так же в подписи присутствуют знаки \r\n - покрай не мере такое замечено при подписание в IE11 , я их пытался и оставлять и убирать- результат тот же
Notepad++ при этом все нормально декодирует
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 18.05.2017(UTC) Сообщений: 16
Сказал(а) «Спасибо»: 4 раз
|
Как оказалось не один из доступных способов в js то же не может декодировать подпись - все валятся с ошибкой Можно ли изменить чтобы CAdESCOM.CPSigner подпись сразу выдавал в бинарном формате ? Отредактировано пользователем 29 июня 2017 г. 18:40:18(UTC)
| Причина: Не указана
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close