Atom Лента - Форум КриптоПро - Тема:СМЭВ3 + Openssl + gost_capi - 10Форум КриптоПро - Atom Лентаurn:https:--www-cryptopro-ru:AtomLenta:ForumKriptoPro:Tema:SMEhV3+Openssl+gost_capi-10:1Copyright 2024 Форум КриптоПро2024-03-28T15:39:57Zhttps://www.cryptopro.ru/forum2/Images/YAFLogo.pngForum Adminhttps://www.cryptopro.ruforum@cryptopro.ruIliyas_Bhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=51067&name=Iliyas_BIliyas_Bhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=51067&name=Iliyas_BYetAnotherForum.NETurn:https:--www-cryptopro-ru:ftPosts:st1:meid98153:1СМЭВ3 + Openssl + gost_capi<table class="content postContainer_Alt" width="100%"><tr><td>Добрый день.<br />Занимаюсь разработкой клиента для СМЭВ3 на питоне. При проверке xml сообщения на технологическом портале выдает ошибку "<strong>ЭП-ОВ не подтверждена: Ошибка проверки ЭП: Нарушена целостность <br />ЭП</strong>".<br /><br /><strong>Шаги формирования XML</strong>:<br /><ol style="list-style-type:number"><li>Провожу нормализацию и канонизацию блока SenderProvidedRequestData<br /><li>Получаю хэш с помощью команды <strong>openssl dgst -binary -md_gost94</strong><br /><li>Конвертирую в base64 и записываю в DigestValue<br /><li>Провожу нормализацию и канонизацию блока SignedInfo<br /><li>Получаю хэш с помощью команды <strong>openssl dgst -binary -md_gost94</strong><br /><li>Подписываю хэш с помощью команды <strong>openssl -sign <em>pkey_filename</em> -binary</strong><br /><li>Подпись конвертирую в base64 и записываю в SignatureValue<br /><li>В X509Certificate записываю значение сертификата (то что между строками BEGIN и END, удалив все пробелы и переводы строк)</ol><br /><br />Формирование хэша проверял на эталонных примерах СМЭВ - значения сходятся.<br />Судя по постам на форуме библиотечка gost.so для подписания не годится. Поставил cprocsp в состав которой входит openssl с поддержкой библиотеки gost_capi. <br /><br />Сейчас пытаюсь просто подписать файл командой:<br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-bash">/opt/cprocsp/cp-openssl/bin/amd64/openssl cms -sign -engine gost_capi -keyform PEM -inkey private_key.key -in in.xml -out test.txt -outform PEM -nodetach -CAfile cert.crt -signer cert.crt</code></pre>
</div></div><br /><br />Но в ответ получаю ошибки:<br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-bash">engine "gost_capi" set.
unable to load certificate</code></pre>
</div></div><br /><br />Сертификат и приватный ключ прислали из СМЭВ3.<br />Подскажите, что я делаю не так?<br /><br /><br /><br /></td></tr></table>2018-12-14T15:29:51+03:002018-12-14T15:29:51+03:00Iliyas_B<table class="content postContainer_Alt" width="100%"><tr><td>Добрый день.<br />Занимаюсь разработкой клиента для СМЭВ3 на питоне. При проверке xml сообщения на технологическом портале выдает ошибку "<strong>ЭП-ОВ не подтверждена: Ошибка проверки ЭП: Нарушена целостность <br />ЭП</strong>".<br /><br /><strong>Шаги формирования XML</strong>:<br /><ol style="list-style-type:number"><li>Провожу нормализацию и канонизацию блока SenderProvidedRequestData<br /><li>Получаю хэш с помощью команды <strong>openssl dgst -binary -md_gost94</strong><br /><li>Конвертирую в base64 и записываю в DigestValue<br /><li>Провожу нормализацию и канонизацию блока SignedInfo<br /><li>Получаю хэш с помощью команды <strong>openssl dgst -binary -md_gost94</strong><br /><li>Подписываю хэш с помощью команды <strong>openssl -sign <em>pkey_filename</em> -binary</strong><br /><li>Подпись конвертирую в base64 и записываю в SignatureValue<br /><li>В X509Certificate записываю значение сертификата (то что между строками BEGIN и END, удалив все пробелы и переводы строк)</ol><br /><br />Формирование хэша проверял на эталонных примерах СМЭВ - значения сходятся.<br />Судя по постам на форуме библиотечка gost.so для подписания не годится. Поставил cprocsp в состав которой входит openssl с поддержкой библиотеки gost_capi. <br /><br />Сейчас пытаюсь просто подписать файл командой:<br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-bash">/opt/cprocsp/cp-openssl/bin/amd64/openssl cms -sign -engine gost_capi -keyform PEM -inkey private_key.key -in in.xml -out test.txt -outform PEM -nodetach -CAfile cert.crt -signer cert.crt</code></pre>
</div></div><br /><br />Но в ответ получаю ошибки:<br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-bash">engine "gost_capi" set.
unable to load certificate</code></pre>
</div></div><br /><br />Сертификат и приватный ключ прислали из СМЭВ3.<br />Подскажите, что я делаю не так?<br /><br /><br /><br /></td></tr></table>