logo
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

23 Страницы«<1920212223>
Опции
К последнему сообщению К первому непрочитанному
Offline Sonseven  
#401 Оставлено : 17 марта 2016 г. 8:46:10(UTC)
Sonseven

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

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

Сказал(а) «Спасибо»: 1 раз
Добрый день! Подскажите, как можно создать отдельную подпись? Используется плагин версии 2.0.12247.

В данный момент подпись создается следующей командой:

Signature = oSignedData.SignCades(oSigner,
CADES_BES,
true); //подпись отдельно от подписываемого файла
Offline tarasnn  
#402 Оставлено : 17 марта 2016 г. 13:44:48(UTC)
tarasnn

Статус: Новичок

Группы: Участники
Зарегистрирован: 19.02.2016(UTC)
Сообщений: 7
Откуда: Perm

Добрый день!

в "Пример подписи XML", нода DigestValue, к примеру, имеет такой вид:
<DigestValue>kjgId/SyPeo8gyKJ2ZEuQz0HMc752FzS8b51L3f271c=</DigestValue>

считается, что тут лежит результат от gost3411-94('...')
но приведенный пример не похож на ожидаемый результат (как по длине так и по используемым символам) от gost3411-94('...')

что нужно сделать с хэшем от gost3411-94('...') для приведения к виду kjgId/SyPeo8gyKJ2ZEuQz0HMc752FzS8b51L3f271c=
?




Offline cross  
#403 Оставлено : 17 марта 2016 г. 16:23:19(UTC)
cross

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 876
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 137 раз в 127 постах
Цитата:
Добрый день!

в "Пример подписи XML", нода DigestValue, к примеру, имеет такой вид:
<DigestValue>kjgId/SyPeo8gyKJ2ZEuQz0HMc752FzS8b51L3f271c=</DigestValue>

считается, что тут лежит результат от gost3411-94('...')
но приведенный пример не похож на ожидаемый результат (как по длине так и по используемым символам) от gost3411-94('...')

что нужно сделать с хэшем от gost3411-94('...') для приведения к виду kjgId/SyPeo8gyKJ2ZEuQz0HMc752FzS8b51L3f271c=
?

Это base64 кодированное представление бинарного значения хеша. У вас по ссылке примеры в виде hex-представления.
Анатолий Беляев (cross на cryptopro.ru)
Offline Yred  
#404 Оставлено : 18 марта 2016 г. 11:42:26(UTC)
Yred

Статус: Новичок

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

Здравствуйте. В данный момент, насколько я вижу, нет никакой возможности определить установлен ли браузерный плагин в Chrome юзера, не попытавшись добавить из плагина на страницу/взять еще каким-либо способом nmcades_plugin_api.js, верно? Это не слишком удобно, потому что приходится ожидать ответа от асинхронной функции, да и обрабатывать ошибки получается достаточно проблемно, тем более когда есть гораздо более простой способ сообщить о том что плагин установлен: добавить на страницу какой-нибудь элемент с фиксированным айди, который и можно будет поискать в своем js.
Было бы очень неплохо, если бы вы добавили такое в ваш плагин. Заранее спасибо.
Offline cross  
#405 Оставлено : 18 марта 2016 г. 13:05:59(UTC)
cross

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 876
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 137 раз в 127 постах
Цитата:
Здравствуйте. В данный момент, насколько я вижу, нет никакой возможности определить установлен ли браузерный плагин в Chrome юзера, не попытавшись добавить из плагина на страницу/взять еще каким-либо способом nmcades_plugin_api.js, верно? Это не слишком удобно, потому что приходится ожидать ответа от асинхронной функции, да и обрабатывать ошибки получается достаточно проблемно, тем более когда есть гораздо более простой способ сообщить о том что плагин установлен: добавить на страницу какой-нибудь элемент с фиксированным айди, который и можно будет поискать в своем js.
Было бы очень неплохо, если бы вы добавили такое в ваш плагин. Заранее спасибо.

Не могли бы вы рассказать подробней, в чем неудобство использовать Promise или неудобство обработки ошибок?
При загрузке cadesplugin_api.js проверяет есть ли у пользователя плагин или нет. По результатам проверки изменяется состояние Promise. Т.к. для проверки нужно минимум подгрузить еще один Js скрипт и проверить наличие связи Native Message Host то проверка по природе своей будет асинхронной.
Анатолий Беляев (cross на cryptopro.ru)
Offline tarasnn  
#406 Оставлено : 24 марта 2016 г. 11:23:16(UTC)
tarasnn

Статус: Новичок

Группы: Участники
Зарегистрирован: 19.02.2016(UTC)
Сообщений: 7
Откуда: Perm

Добрый день!

Правильно ли я предполагаю, что для вставки подписи в поле SignedValue (xmldsig)
результат отработки CAdESCOM.RawSignature вида
25B0E2C673A297D551EB466227D8EB8ED77219B8FF3A9D00C75A9C5520979A2EC1EE1C960FBA59BC190988FBBD02DFB5F8EEAD251FF3AC358113827CF84B917A
надо представить (перевернуть) в виде
A719B48FC728311853CA3FF152DAEE8F5BFD20DBBF889091CB95ABF069C1EE1CE2A9790255C9A57C00D9A3FF8B91277DE8BE8D722664BE155D792A376C2E0B52

?
Offline alexk79  
#407 Оставлено : 24 сентября 2017 г. 10:54:43(UTC)
alexk79

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Hyperc0der Перейти к цитате
Новожилова Елена написал:
Возможно это не самый прямой путь, но так уж спроектирован CAPICOM, что значение свойства OID не объект, а строка.

Да, немного в обход получается. Для интересующихся:
Код:

try {
	oCPAttribute = ObjCreator("CAdESCOM.CPAttribute", browserName); 
} catch (err) {
	alert('Failed to create CAdESCOM.CPAttribute: ' + errerr.number);
	return;
}
	
for (i = 1; i <= oSigner.Certificate.ExtendedKeyUsage().EKUs.Count; i++) {
	
	alert(oSigner.Certificate.ExtendedKeyUsage().EKUs.Item(i).OID);
			
	oCPAttribute.OID.Value = oSigner.Certificate.ExtendedKeyUsage().EKUs.Item(i).OID;
	alert(oCPAttribute.OID.FriendlyName);
}


Подскажите, плиз, а oSigner - этот объект как создается?
Offline uwq6  
#408 Оставлено : 21 ноября 2017 г. 9:07:28(UTC)
uwq6

Статус: Новичок

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

Сказал(а) «Спасибо»: 1 раз
Доброе утро!
Не видна ЭП. Можно ли такое исправить?
Win 8.1 x64, IE 11
Использование различных версий КриптоПро 4 или Browser plug-in не помогло.
pic.PNG (266kb) загружен 11 раз(а).
Offline Xendar  
#409 Оставлено : 22 ноября 2017 г. 13:55:41(UTC)
Xendar

Статус: Активный участник

Группы: Участники
Зарегистрирован: 30.07.2014(UTC)
Сообщений: 111
Российская Федерация

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 11 раз в 11 постах
Попробуйте установить в хранилище Промежуточные ЦС актуальные списки отзыва для всей цепочки сертификации.
thanks 1 пользователь поблагодарил Xendar за этот пост.
uwq6 оставлено 24.11.2017(UTC)
Offline uwq6  
#410 Оставлено : 24 ноября 2017 г. 7:03:36(UTC)
uwq6

Статус: Новичок

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

Сказал(а) «Спасибо»: 1 раз
Автор: Xendar Перейти к цитате
Попробуйте установить в хранилище Промежуточные ЦС актуальные списки отзыва для всей цепочки сертификации.

Удивительно, но после этого сертификат появился в плагине. Хотя на других машинах с Win10 x64 и Win7 x64 списки отзыва не понадобились.
Большое спасибо за помощь
Offline Alex_04  
#411 Оставлено : 4 декабря 2017 г. 15:40:12(UTC)
Alex_04

Статус: Активный участник

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

Сказал «Спасибо»: 12 раз
Поблагодарили: 4 раз в 4 постах
Решил не создавать отдельную тему, т.к. вопрос о возможном влиянии КриптоПро ЭЦП Browser plug-in актуальной версии 2.0.13064 при генерации запроса на сертификат в одной из программ казначейства - СУФД.
Если у кого-то из уважаемых сотрудников КриптоПро этого форума есть доступ к форуму ФК, то не сочтите за труд - почитайте, пожалуйста, сообщения на том форуме в разделе "Информационные технологии - Удостоверяющий центр Федерального казначейства" тему "Средство создания запроса (СУФД)", начиная с поста по ссылке: http://forum.roskazna.ru...25&start=180#p306887
В последних сообщениях коллеги стали почти с уверенностью обвинять в ошибке именно КриптоПро ЭЦП Browser plug-in версии 2.0.13064. Если у Вас есть какая-то практика по данной проблеме - поделитесь здесь хотя-бы мыслями (возможно и фактами) по выяснению причины. Будем очень благодарны всем откликнувшимся!

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

Offline Mikhail123  
#412 Оставлено : 5 декабря 2017 г. 10:58:56(UTC)
Mikhail123

Статус: Новичок

Группы: Участники
Зарегистрирован: 09.11.2017(UTC)
Сообщений: 5
Российская Федерация

Сказал(а) «Спасибо»: 3 раз
Здравствуйте, такой вопрос. Работаем со СМЭВ3, создаем attachment (файл) к SOAP запросу для отправки посредством MTOM+XOP с которого надо снять pkcs7 detached подпись. Им требуется снимать хеш с файла (узнать о чем было отдельным приключением) в формате HEX Гостом 34_11-94 - это мы делаем на сервере с помощью CSP и передаем на сторону клиента (подписывать надо клиентским сертификатом). Здесь мы пытаемся подписать detached pkcs7 подписью полученный хеш. Примерный вызов такой (в переменной dataToSign лежит хеш, для взятия сертификата есть отдельная функция, просто мы подписываем не только файл, в СМЭВ3 чет вообще дофига подписей поэтому цапаем его не 1 раз):

Код:
oCertificate = yield getCertificate_Async();
var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
yield oSigner.propset_Certificate(oCertificate);
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData.propset_Content(dataToSign);
var sSignedMessage = yield oSignedData.SignCades(oSigner, CADESCOM_CADES_BES, true);


Результат в смеве возвращает ошибку 60: свяжитесь с ослужбой тенической поддержки. Однако зная скорость их ответа ищем решение сами. Так вот на портале https://www.gosuslugi.ru/pgu/eds/ сделанная подпись проверку не проходит. Пробовали так же снимать не с хеша, а с содержимого файла (получаем функцией file_get_contents на сервере, потом base64_encode чтобы переслать клиенту, потом на клиенте декодим и в качестве даты суем в плагин), проверку так же не проходит. Если подписывать файл с помощью cryptopro ARM от цифровых технологий - проверка проходится нормально (вариант подписи любой - без коневого, с корневым или только текущим). Можете подсказать в чем может быть проблема? Сертификат один и тот же, Другие части сообщения (наложение ЭП СП) нареканий со стороын СМЭВ не вызывают, ошибок не валится, но там подпись RawSignature.

Отредактировано пользователем 5 декабря 2017 г. 11:05:08(UTC)  | Причина: Не указана

Offline cross  
#413 Оставлено : 5 декабря 2017 г. 14:50:11(UTC)
cross

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 876
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 137 раз в 127 постах
Автор: Mikhail123 Перейти к цитате
Здравствуйте, такой вопрос. Работаем со СМЭВ3, создаем attachment (файл) к SOAP запросу для отправки посредством MTOM+XOP с которого надо снять pkcs7 detached подпись. Им требуется снимать хеш с файла (узнать о чем было отдельным приключением) в формате HEX Гостом 34_11-94 - это мы делаем на сервере с помощью CSP и передаем на сторону клиента (подписывать надо клиентским сертификатом). Здесь мы пытаемся подписать detached pkcs7 подписью полученный хеш. Примерный вызов такой (в переменной dataToSign лежит хеш, для взятия сертификата есть отдельная функция, просто мы подписываем не только файл, в СМЭВ3 чет вообще дофига подписей поэтому цапаем его не 1 раз):

Код:
oCertificate = yield getCertificate_Async();
var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
yield oSigner.propset_Certificate(oCertificate);
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData.propset_Content(dataToSign);
var sSignedMessage = yield oSignedData.SignCades(oSigner, CADESCOM_CADES_BES, true);


Результат в смеве возвращает ошибку 60: свяжитесь с ослужбой тенической поддержки. Однако зная скорость их ответа ищем решение сами. Так вот на портале https://www.gosuslugi.ru/pgu/eds/ сделанная подпись проверку не проходит. Пробовали так же снимать не с хеша, а с содержимого файла (получаем функцией file_get_contents на сервере, потом base64_encode чтобы переслать клиенту, потом на клиенте декодим и в качестве даты суем в плагин), проверку так же не проходит. Если подписывать файл с помощью cryptopro ARM от цифровых технологий - проверка проходится нормально (вариант подписи любой - без коневого, с корневым или только текущим). Можете подсказать в чем может быть проблема? Сертификат один и тот же, Другие части сообщения (наложение ЭП СП) нареканий со стороын СМЭВ не вызывают, ошибок не валится, но там подпись RawSignature.


Для получения подписи по хэш значению вам нужна другая функция подписи (у обьекта CadesSignedData метод SignHash() http://cpdn.cryptopro.ru...03ca56afabeb9c82387.html ). Хеш передается так же как в примере http://cpdn.cryptopro.ru...mples-raw-signature.html

Отредактировано пользователем 5 декабря 2017 г. 14:52:37(UTC)  | Причина: Не указана

Анатолий Беляев (cross на cryptopro.ru)
thanks 1 пользователь поблагодарил cross за этот пост.
Mikhail123 оставлено 08.12.2017(UTC)
Offline cross  
#414 Оставлено : 5 декабря 2017 г. 14:53:14(UTC)
cross

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 876
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 137 раз в 127 постах
Автор: Alex_04 Перейти к цитате
Решил не создавать отдельную тему, т.к. вопрос о возможном влиянии КриптоПро ЭЦП Browser plug-in актуальной версии 2.0.13064 при генерации запроса на сертификат в одной из программ казначейства - СУФД.
Если у кого-то из уважаемых сотрудников КриптоПро этого форума есть доступ к форуму ФК, то не сочтите за труд - почитайте, пожалуйста, сообщения на том форуме в разделе "Информационные технологии - Удостоверяющий центр Федерального казначейства" тему "Средство создания запроса (СУФД)", начиная с поста по ссылке: http://forum.roskazna.ru...25&start=180#p306887
В последних сообщениях коллеги стали почти с уверенностью обвинять в ошибке именно КриптоПро ЭЦП Browser plug-in версии 2.0.13064. Если у Вас есть какая-то практика по данной проблеме - поделитесь здесь хотя-бы мыслями (возможно и фактами) по выяснению причины. Будем очень благодарны всем откликнувшимся!


К сожалению у нас нет доступа на указанный форум.
Анатолий Беляев (cross на cryptopro.ru)
Offline Alex_04  
#415 Оставлено : 5 декабря 2017 г. 16:09:28(UTC)
Alex_04

Статус: Активный участник

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

Сказал «Спасибо»: 12 раз
Поблагодарили: 4 раз в 4 постах
Автор: cross Перейти к цитате
Автор: Alex_04 Перейти к цитате
Если у кого-то из уважаемых сотрудников КриптоПро этого форума есть доступ к форуму ФК...

К сожалению у нас нет доступа на указанный форум.

Тогда постараюсь здесь коротко суть проблемы.
В казначейском ППО "СУФД" можно сгенерировать запрос на сертификат ЭП (ФИО.req). Но при его создании выходит ошибка внутри файла: в спец. ПО УЦ ФК для получения сертификата видно, что в строке со значениями СНИЛС и ИНН заявителя они разделены символом "," (запятая) вместо ";" (точка с запятой). ПО УЦ ФК не пропускает такой файл, считая что в данной строке не 2 параметра (СНИЛС;ИНН), а один (СНИЛС) с неверными атрибутами. Самое непонятное - ошибка выходит не у всех, а как будто "выборочно".
Стали искать причину путем пробных генераций в "СУФД" на разных версиях ОС и КриптоПро. Вначале было подозрение, что виной КриптоПро версии 4.0.9842, но по дальнейшим отзывам это не подтвердилось.
А затем стали писать, что:
Цитата:
чудит КриптоПро ЭЦП Browser plug-in. Подтвердилось экспериментально на АРМ казначейства после установки плагина и удаления Java.

Цитата:
сформировал запрос в СУФД под КриптоПро-4 без плагина, через java. Запрос нормальный, с разделителем ';'

Цитата:
конкретно на моей машине стоял КриптоПро ЭЦП Browser plug-in 2.0.13064. А если версия 2.0.12888 или нет его вообще, то генерация происходит через java плагин без ошибки в файле

Вот, собственно, и весь расклад по проблеме. Если информации недостаточно - пишите, постараюсь дополнить по мере возможности.
Проблема очень волнует в силу того, что КриптоПро ЭЦП Browser plug-in сейчас чуть-ли не обязателен для установки при работе во многих (если не во всех) ИС ФК. И если без него дальше действительно будет невозможно работать, то очень хотелось-бы знать: может-ли криптоплагин актуальной на данный момент версии 2.0.13064 действительно приводить к некорректной работе "генератора" запроса на сертификат ЭП, или это в принципе невозможно?
P.S: обещал коротко, но уж как получилось, сори.
Offline Mikhail123  
#416 Оставлено : 6 декабря 2017 г. 6:16:07(UTC)
Mikhail123

Статус: Новичок

Группы: Участники
Зарегистрирован: 09.11.2017(UTC)
Сообщений: 5
Российская Федерация

Сказал(а) «Спасибо»: 3 раз
Автор: cross Перейти к цитате

Для получения подписи по хэш значению вам нужна другая функция подписи (у обьекта CadesSignedData метод SignHash() http://cpdn.cryptopro.ru...03ca56afabeb9c82387.html ). Хеш передается так же как в примере http://cpdn.cryptopro.ru...mples-raw-signature.html


По поводу подписания вроде понял (кроме того где в методе указывать что подпись должна быть detached), спасибо, сегодня попробую. По поводу хеша уточните вот какой момент:
1. То что я получаю с помощью csp в php на сервере совпадает с хешем полученным с помощью cpverify (выложена на сайте госуслуг).
2. То что я получаю посредством асинхроной версии указанного вами примера с тем что отдает прога с госуслуг - не совпадает.

Функция:
Код:
function createHash_Async(data) {
        return new Promise(function (resolve, reject) {
            cadesplugin.async_spawn(function* (args) {
                try {
                    let oHashData = yield cadesplugin.CreateObjectAsync('CAdESCOM.HashedData');
                    yield oHashData.DataEncoding = cadesplugin.CADESCOM_BASE64_TO_BINARY;
                    yield oHashData.Algorithm = cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411;
                    yield oHashData.Hash(data);
                    args[0](oHashData);
                }
                catch (err) {
                    D3Api.notify('Ошибка', 'Не удалось создать хэш: ' + Form.GetErrorMessage(err), {'expires': false});
                    args[1]();
                }
            }, resolve, reject);
        });
    }


Вызываю ее примерно так:
Код:

let oHashData = yield createHash_Async(fileData);
let hashValue = yield oHashData.Value;

В итоге в hashValue оказывается вроде хеш в формате как надо но он не совпадает.
В fileData лежит base64 с file_get_contents (содержимое файла в binary, полученое на сервере с которого на сервере же хеш снимается правильно). Я правильно понял что в oHashData.Hash(data); при таком вызове надо класть именно base64 с подписываемого?

Отредактировано пользователем 6 декабря 2017 г. 6:41:16(UTC)  | Причина: Не указана

Offline cross  
#417 Оставлено : 6 декабря 2017 г. 11:50:14(UTC)
cross

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 876
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 137 раз в 127 постах
Автор: Alex_04 Перейти к цитате
Автор: cross Перейти к цитате
Автор: Alex_04 Перейти к цитате
Если у кого-то из уважаемых сотрудников КриптоПро этого форума есть доступ к форуму ФК...

К сожалению у нас нет доступа на указанный форум.

Тогда постараюсь здесь коротко суть проблемы.
В казначейском ППО "СУФД" можно сгенерировать запрос на сертификат ЭП (ФИО.req). Но при его создании выходит ошибка внутри файла: в спец. ПО УЦ ФК для получения сертификата видно, что в строке со значениями СНИЛС и ИНН заявителя они разделены символом "," (запятая) вместо ";" (точка с запятой). ПО УЦ ФК не пропускает такой файл, считая что в данной строке не 2 параметра (СНИЛС;ИНН), а один (СНИЛС) с неверными атрибутами. Самое непонятное - ошибка выходит не у всех, а как будто "выборочно".
Стали искать причину путем пробных генераций в "СУФД" на разных версиях ОС и КриптоПро. Вначале было подозрение, что виной КриптоПро версии 4.0.9842, но по дальнейшим отзывам это не подтвердилось.
А затем стали писать, что:
Цитата:
чудит КриптоПро ЭЦП Browser plug-in. Подтвердилось экспериментально на АРМ казначейства после установки плагина и удаления Java.

Цитата:
сформировал запрос в СУФД под КриптоПро-4 без плагина, через java. Запрос нормальный, с разделителем ';'

Цитата:
конкретно на моей машине стоял КриптоПро ЭЦП Browser plug-in 2.0.13064. А если версия 2.0.12888 или нет его вообще, то генерация происходит через java плагин без ошибки в файле

Вот, собственно, и весь расклад по проблеме. Если информации недостаточно - пишите, постараюсь дополнить по мере возможности.
Проблема очень волнует в силу того, что КриптоПро ЭЦП Browser plug-in сейчас чуть-ли не обязателен для установки при работе во многих (если не во всех) ИС ФК. И если без него дальше действительно будет невозможно работать, то очень хотелось-бы знать: может-ли криптоплагин актуальной на данный момент версии 2.0.13064 действительно приводить к некорректной работе "генератора" запроса на сертификат ЭП, или это в принципе невозможно?
P.S: обещал коротко, но уж как получилось, сори.

Обвинять другой софт это уже традиция :). К сожалению без возможности глянуть как они создают(код страницы) запрос мы врядли сможем чем то помочь. Через наш плагин запросы на сертификат создают несколько площадок, в данный момент ни одного обращения к нам по поводу ошибок при генерации запроса нет.

Анатолий Беляев (cross на cryptopro.ru)
Offline cross  
#418 Оставлено : 6 декабря 2017 г. 11:57:27(UTC)
cross

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 876
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 137 раз в 127 постах
Автор: Mikhail123 Перейти к цитате
Автор: cross Перейти к цитате

Для получения подписи по хэш значению вам нужна другая функция подписи (у обьекта CadesSignedData метод SignHash() http://cpdn.cryptopro.ru...03ca56afabeb9c82387.html ). Хеш передается так же как в примере http://cpdn.cryptopro.ru...mples-raw-signature.html


По поводу подписания вроде понял (кроме того где в методе указывать что подпись должна быть detached), спасибо, сегодня попробую. По поводу хеша уточните вот какой момент:
1. То что я получаю с помощью csp в php на сервере совпадает с хешем полученным с помощью cpverify (выложена на сайте госуслуг).
2. То что я получаю посредством асинхроной версии указанного вами примера с тем что отдает прога с госуслуг - не совпадает.

Функция:
Код:
function createHash_Async(data) {
        return new Promise(function (resolve, reject) {
            cadesplugin.async_spawn(function* (args) {
                try {
                    let oHashData = yield cadesplugin.CreateObjectAsync('CAdESCOM.HashedData');
                    yield oHashData.DataEncoding = cadesplugin.CADESCOM_BASE64_TO_BINARY;
                    yield oHashData.Algorithm = cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411;
                    yield oHashData.Hash(data);
                    args[0](oHashData);
                }
                catch (err) {
                    D3Api.notify('Ошибка', 'Не удалось создать хэш: ' + Form.GetErrorMessage(err), {'expires': false});
                    args[1]();
                }
            }, resolve, reject);
        });
    }


Вызываю ее примерно так:
Код:

let oHashData = yield createHash_Async(fileData);
let hashValue = yield oHashData.Value;

В итоге в hashValue оказывается вроде хеш в формате как надо но он не совпадает.
В fileData лежит base64 с file_get_contents (содержимое файла в binary, полученое на сервере с которого на сервере же хеш снимается правильно). Я правильно понял что в oHashData.Hash(data); при таком вызове надо класть именно base64 с подписываемого?

При подписи через метод SignHash всегда будет отделенная подпись, дополнительно указывать какие то параметры для этого не нужно.
В вашем примере в oHashedData.Hash() нужно подавать base64(бинарных данных файла). Внутри функция декодирует из base64 обратно в binary и уже от этих данных посчитает hash. PHP расширение и плагин внутри себя используют единный код, если вы подаете одинаковые данные то и хеш будет одинаковый. В PHP вы тоже данные через base64 передаете для хеширования?
Анатолий Беляев (cross на cryptopro.ru)
thanks 1 пользователь поблагодарил cross за этот пост.
Mikhail123 оставлено 08.12.2017(UTC)
Offline Alex_04  
#419 Оставлено : 6 декабря 2017 г. 12:50:45(UTC)
Alex_04

Статус: Активный участник

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

Сказал «Спасибо»: 12 раз
Поблагодарили: 4 раз в 4 постах
Автор: cross Перейти к цитате
Обвинять другой софт это уже традиция :).

Да ни в одном глазу даже мысли такой не было. :)
Цитата:
К сожалению без возможности глянуть как они создают (код страницы) запрос мы врядли сможем чем то помочь.

Я не программист и не работник УФК, на чьих серверах и работает ППО "СУФД" - это не портальное решение для единого доступа через интернет. Жаль конечно, так и предполагал, что без живого доступа к СУФД ничего определенного сказать будет невозможно.
Цитата:
Через наш плагин запросы на сертификат создают несколько площадок, в данный момент ни одного обращения к нам по поводу ошибок при генерации запроса нет.

На основании даже этого уже можно предположить, что "косяк" все-же в СУФД - некорректно взаимодействует с крипто-плагином версии именно 2.0.13064. По мере возможности и времени постараюсь проверить на плагине версии 2.0.12888: если ошибка не повторится, значит буду обращаться к разработчикам СУФД. Спасибо большое за отклик.

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

Offline cross  
#420 Оставлено : 6 декабря 2017 г. 12:53:49(UTC)
cross

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 876
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 137 раз в 127 постах
Цитата:
На основании даже этого уже можно предположить, что "косяк" все-же в СУФД - некорректно взаимодействует с крипто-плагином версии именно 2.0.13064. По мере возможности и времени постараюсь проверить на плагине версии 2.0.12888: если ошибка не повторится, значит буду обращаться к разработчикам СУФД. Спасибо большое за отклик.

Было бы хорошо, если они при обнаружении ошибки, даже если она у нас, что вообщем то не исключено, обратились бы к нам. Мы стараемся оперативно исправлять ошибки :). Рассуждения на закрытом форуме дают мало информации.

Отредактировано пользователем 6 декабря 2017 г. 12:55:21(UTC)  | Причина: Не указана

Анатолий Беляев (cross на cryptopro.ru)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
23 Страницы«<1920212223>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.