Статус: Новичок
Группы: Участники
Зарегистрирован: 22.04.2020(UTC) Сообщений: 5 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Здравствуйте! Есть задача по формированию ЭП:
1. Из документа формируется строковая последовательность (ключевой буфер или дайджест), включающая все значимые данные документа. 2. Затем от дайджеста вычисляется хеш по стандарту ГОСТ 34.11-94 с параметрами GostR3411-94-CryptoProParamSet. 3. Полученное значение хеш-функции подписывается по стандарту ГОСТ 34.10-2001 с параметрами GostR3410-2001-CryptoPro-B-ParamSet. 4. 64 байта, полученные в результате шага 3 и представленные в виде, описанном в пункте 3.1 RFC 4490 и есть сформированная электронная подпись.
Хеш сформировать получается с помощью cpverify. Размер его 64 байта. Далее хочу сформировать подпись с помощью csptest. Пробую различные ключи, но файл подписи формируется более чем 64 байта.
Подскажите пожалуйста можно ли с помощью csptest выполнить эту задачу, или нужно использовать что-то другое?
Спасибо
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2044 раз в 1585 постах
|
Здравствуйте.
Зачем нужен пункт 1? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 22.04.2020(UTC) Сообщений: 5 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
пункт 1 нужен чтобы из документа выделить только значимые поля которые требуются для подписания. Выглядит примерно так: Пример дайджеста acceptanceTerm=5 amount=100.01 date=2018-12-31 externalId=22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6 operationCode=02 payeeAccount=40802810600000200000 payeeBankBic=044525225 payeeBankCorrAccount=30101810400000000225 payeeInn=0 payeeName=Общество с ограниченной ответственностью "Получатель" payerAccount=40802810600000200000 payerBankBic=044525225 payerBankCorrAccount=30101810400000000225 payerInn=0 payerName=Общество с ограниченной ответственностью "Клиент" paymentCondition=1 priority=5 purpose=Назначение платежа
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2044 раз в 1585 постах
|
Автор: Sergey_H21 пункт 1 нужен чтобы из документа выделить только значимые поля которые требуются для подписания. Выглядит примерно так: Пример дайджеста acceptanceTerm=5 amount=100.01 date=2018-12-31 externalId=22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6 operationCode=02 payeeAccount=40802810600000200000 payeeBankBic=044525225 payeeBankCorrAccount=30101810400000000225 payeeInn=0 payeeName=Общество с ограниченной ответственностью "Получатель" payerAccount=40802810600000200000 payerBankBic=044525225 payerBankCorrAccount=30101810400000000225 payerInn=0 payerName=Общество с ограниченной ответственностью "Клиент" paymentCondition=1 priority=5 purpose=Назначение платежа Вы понимаете к чему это может привести? А завтра\через полгода появятся еще значимые данные, обновите алгоритм получения от них хеша? и к старым нужна пометка, какие данные "были значимы" на тот момент? Хешируйте целиком. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 22.04.2020(UTC) Сообщений: 5 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Формирование дайджеста, хеширование и подписание его - это требование провайдера услуги. Мы не можем повлиять на алгоритм формирования дайджеста. Сейчас задача заключается в том чтобы хеш этого дайджеста подписать. Нужно понять можно ли это сделать с помощью csptest или что-то другое использовать придется.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2044 раз в 1585 постах
|
Автор: Sergey_H21 Формирование дайджеста, хеширование и подписание его - это требование провайдера услуги. Мы не можем повлиять на алгоритм формирования дайджеста. Сейчас задача заключается в том чтобы хеш этого дайджеста подписать. Нужно понять можно ли это сделать с помощью csptest или что-то другое использовать придется.
Тогда сюда: https://www.cryptopro.ru...ts&m=77710#post77710 |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2044 раз в 1585 постах
|
Автор: Sergey_H21 Формирование дайджеста, хеширование и подписание его - это требование провайдера услуги. Мы не можем повлиять на алгоритм формирования дайджеста. Сейчас задача заключается в том чтобы хеш этого дайджеста подписать. Нужно понять можно ли это сделать с помощью csptest или что-то другое использовать придется.
"C:\Program Files (x86)\Crypto Pro\CSP\csptest.exe" -keys -cont "REGISTRY\\007706092944_05.11.2019 124400" -sign GOST12_256 -keytype exchange -in y:\file.ext -out y:\file.sig "REGISTRY\\007706092944_05.11.2019 124400" - имя контейнера. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 22.04.2020(UTC) Сообщений: 5 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Спасибо большое!
Сейчас встала задача - определить контейнер.
На компьютере установлен КриптоПро CSP и с помощью Plugin для браузера удается подписать документ используя установленный сертификат. Используя тот же CN сертификата подпись удается создать и с помощью консоли: csptest -sfsign -sign -in dg.hsh -out dg.sig -my 17392498
Но командой csptest -keys -cont 17392498 -sign GOST -in dg.hsh -out dg6.s не получается: C:\1\cp>csptest -keys -cont 17392498 -sign GOST -in dg.hsh -out dg6.s WARNING: Legacy parameter: "-sign GOST" CSP (Type:80) v4.0.9019 KC1 Release Ver:4.0.9963 OS:Windows CPU:IA32 FastCode:READY:AVX. An error occurred in running the program. ctkey.c:1004:AcquireContext("17392498") Error number 0x80090016 (-2146893802). Набор ключей не существует
Total: SYS: 0,422 sec USR: 0,063 sec UTC: 1,500 sec [ErrorCode: 0x80090016]
Как можно определить контейнер?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2044 раз в 1585 постах
|
Автор: Sergey_H21 Спасибо большое!
Сейчас встала задача - определить контейнер.
На компьютере установлен КриптоПро CSP и с помощью Plugin для браузера удается подписать документ используя установленный сертификат. Используя тот же CN сертификата подпись удается создать и с помощью консоли: csptest -sfsign -sign -in dg.hsh -out dg.sig -my 17392498
Но командой csptest -keys -cont 17392498 -sign GOST -in dg.hsh -out dg6.s не получается: C:\1\cp>csptest -keys -cont 17392498 -sign GOST -in dg.hsh -out dg6.s WARNING: Legacy parameter: "-sign GOST" CSP (Type:80) v4.0.9019 KC1 Release Ver:4.0.9963 OS:Windows CPU:IA32 FastCode:READY:AVX. An error occurred in running the program. ctkey.c:1004:AcquireContext("17392498") Error number 0x80090016 (-2146893802). Набор ключей не существует
Total: SYS: 0,422 sec USR: 0,063 sec UTC: 1,500 sec [ErrorCode: 0x80090016]
Как можно определить контейнер? Панель управления\КриптоПРО CSP\Сервис\Протестировать\По сертификату - выбрать сертификат, отобразится имя контейнера, в результатах теста - будет детализация. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2044 раз в 1585 постах
|
либо через утилиту: Цитата: "C:\Program Files (x86)\Crypto Pro\CSP\csptest.exe" -keyset -enum_cont -verifycontext -fqcn
|
|
1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close