Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

3 Страницы123>
Опции
К последнему сообщению К первому непрочитанному
Offline vorh  
#1 Оставлено : 28 июня 2017 г. 15:31:41(UTC)
vorh

Статус: Участник

Группы: Участники
Зарегистрирован: 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

Результат: то же самое - нечего не находит


Собственно вопрос , что я делаю не так и как мне извлечь сертификат?
Online Андрей Писарев  
#2 Оставлено : 28 июня 2017 г. 15:37:11(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
> ByteArrayInputStream(bytes)

В bytes передавать байты декодированные из base64 ( MIIC9zCCAqagAwIB ...)
Техническую поддержку оказываем тут
Наша база знаний
Offline vorh  
#3 Оставлено : 28 июня 2017 г. 15:49:12(UTC)
vorh

Статус: Участник

Группы: Участники
Зарегистрирован: 18.05.2017(UTC)
Сообщений: 16

Сказал(а) «Спасибо»: 4 раз
Использовал Base64.getMimeDecoder().decode() для декодирования , перед этим файлы на сервер попадают get запросом , в параметре которого передается как раз base64 сертификата

Отредактировано пользователем 28 июня 2017 г. 15:51:15(UTC)  | Причина: Не указана

Online Андрей Писарев  
#4 Оставлено : 28 июня 2017 г. 16:23:08(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Автор: vorh Перейти к цитате
Использовал Base64.getMimeDecoder().decode() для декодирования , перед этим файлы на сервер попадают get запросом , в параметре которого передается как раз base64 сертификата


POST желателен для этих целей...
Техническую поддержку оказываем тут
Наша база знаний
Offline vorh  
#5 Оставлено : 28 июня 2017 г. 17:33:54(UTC)
vorh

Статус: Участник

Группы: Участники
Зарегистрирован: 18.05.2017(UTC)
Сообщений: 16

Сказал(а) «Спасибо»: 4 раз
Автор: Андрей * Перейти к цитате
Автор: vorh Перейти к цитате
Использовал Base64.getMimeDecoder().decode() для декодирования , перед этим файлы на сервер попадают get запросом , в параметре которого передается как раз base64 сертификата


POST желателен для этих целей...


Да b64 сертификата просто из дебагера скопировал и попытался распарсить - толку ноль , чего то не хватает
То же самое и с подписью документа - извлечь из нее информацию о подписанте не удается

Метод проверки подписи отрабатывает успешно
Online Андрей Писарев  
#6 Оставлено : 28 июня 2017 г. 17:54:02(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
>толку ноль , чего то не хватает

а приведенная выше строка в base64 - корректная?

Подозрительные: 1,00 КБ (1 024 байт)

Отредактировано пользователем 28 июня 2017 г. 17:54:35(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline vorh  
#7 Оставлено : 28 июня 2017 г. 18:59:32(UTC)
vorh

Статус: Участник

Группы: Участники
Зарегистрирован: 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 раз(а).


Online Андрей Писарев  
#8 Оставлено : 28 июня 2017 г. 22:00:45(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
1. Вы смотрели результат?
почему в base64 в каждой строке "\r\n"?

2. Чтобы получить сертификат - необходимо выполнить проверку подписи (.VerifyCades), тогда будут доступны Signers,



Signers object
Signers.Item


а у Signer - Signer.Certificate property
из которого можно получить необходимое.

Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
vorh оставлено 29.06.2017(UTC)
Offline vorh  
#9 Оставлено : 29 июня 2017 г. 16:01:32(UTC)
vorh

Статус: Участник

Группы: Участники
Зарегистрирован: 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++ при этом все нормально декодирует
Offline vorh  
#10 Оставлено : 29 июня 2017 г. 18:08:25(UTC)
vorh

Статус: Участник

Группы: Участники
Зарегистрирован: 18.05.2017(UTC)
Сообщений: 16

Сказал(а) «Спасибо»: 4 раз
Как оказалось не один из доступных способов в js то же не может декодировать подпись - все валятся с ошибкой

Можно ли изменить чтобы CAdESCOM.CPSigner подпись сразу выдавал в бинарном формате ?

Отредактировано пользователем 29 июня 2017 г. 18:40:18(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
3 Страницы123>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.