Atom Лента - Форум КриптоПро - Тема:Ошибка подписи при работе с api СУЗ - 10Форум КриптоПро - Atom Лентаurn:https:--www-cryptopro-ru:AtomLenta:ForumKriptoPro:Tema:OshibkapodpisiprirabotesapiSUZ-10:1Copyright 2024 Форум КриптоПро2024-03-19T06:41:33Zhttps://www.cryptopro.ru/forum2/Images/YAFLogo.pngForum Adminhttps://www.cryptopro.ruforum@cryptopro.rubrenlihttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=55498&name=brenlibrenlihttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=55498&name=brenliАндрей *https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=15008&name=Андрей *brenlihttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=55498&name=brenliАндрей *https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=15008&name=Андрей *two_oceanshttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=36490&name=two_oceansbrenlihttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=55498&name=brenliЗахар Тихоновhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=38230&name=Захар Тихоновbrenlihttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=55498&name=brenlibrenlihttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=55498&name=brenliYetAnotherForum.NETurn:https:--www-cryptopro-ru:ftPosts:st1:meid113872:1Ошибка подписи при работе с api СУЗ<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=113862#post113862"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Вызов SignCades(...) соответствует <a rel="nofollow" href="https://cpdn.cryptopro.ru?url=/content/cades/interface_c_ad_e_s_c_o_m_1_1_i_c_p_signed_data2.html" title="https://cpdn.cryptopro.ru?url=/content/cades/interface_c_ad_e_s_c_o_m_1_1_i_c_p_signed_data2.html">документации</a> по параметрам?<br /></div></div><br /><br />Я все перепробовал уже. Я правильно понимаю, что данные для подписи нужно передать в виде преобразованной строки в base64?</td></tr></table>2020-03-26T18:12:45+03:002020-03-26T18:12:45+03:00brenli<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=113862#post113862"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Вызов SignCades(...) соответствует <a rel="nofollow" href="https://cpdn.cryptopro.ru?url=/content/cades/interface_c_ad_e_s_c_o_m_1_1_i_c_p_signed_data2.html" title="https://cpdn.cryptopro.ru?url=/content/cades/interface_c_ad_e_s_c_o_m_1_1_i_c_p_signed_data2.html">документации</a> по параметрам?<br /></div></div><br /><br />Я все перепробовал уже. Я правильно понимаю, что данные для подписи нужно передать в виде преобразованной строки в base64?</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid113862:1Ошибка подписи при работе с api СУЗ<table class="content postContainer" width="100%"><tr><td>Вызов SignCades(...) соответствует <a rel="nofollow" href="https://cpdn.cryptopro.ru?url=/content/cades/interface_c_ad_e_s_c_o_m_1_1_i_c_p_signed_data2.html" title="https://cpdn.cryptopro.ru?url=/content/cades/interface_c_ad_e_s_c_o_m_1_1_i_c_p_signed_data2.html">документации</a> по параметрам?<br /></td></tr></table>2020-03-26T15:22:05+03:002020-03-26T15:22:05+03:00Андрей *<table class="content postContainer" width="100%"><tr><td>Вызов SignCades(...) соответствует <a rel="nofollow" href="https://cpdn.cryptopro.ru?url=/content/cades/interface_c_ad_e_s_c_o_m_1_1_i_c_p_signed_data2.html" title="https://cpdn.cryptopro.ru?url=/content/cades/interface_c_ad_e_s_c_o_m_1_1_i_c_p_signed_data2.html">документации</a> по параметрам?<br /></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid113860:1Ошибка подписи при работе с api СУЗ<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=113858#post113858"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote><div class="quote"><span class="quotetitle">Автор: two_oceans <a href="/forum2/default.aspx?g=posts&m=113857#post113857"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Скорее всего дело вот в чем.<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote> InData=InStream.Read(-1);</div></div>Дает в переменную данные типа comsafearray который совсем не то же самое, что строка или массив байт по представлению в памяти. А смысл именно в получении в памяти идеальной копии файла и передаче копии из памяти в SignedData.Content.<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote> SignedData.Content=InData;</div></div>До этой строки нужно перекодировать в обычный массив или подпись будет верна для safearray, но не будет верна для исходного файла. Пример есть в одной из соседних тем, но так сразу найти не могу.</div></div><br /><br /><br />т.к. используется CadesSignedData - то самое простое - выставить кодировку: <br />.ContentEncoding = CADESCOM_BASE64_TO_BINARY;<br /><br />и передать файл как base64 строку. <br /><br /><br /><a rel="nofollow" href="https://cpdn.cryptopro.ru?url=/content/cades/content-encoding.html" title="https://cpdn.cryptopro.ru?url=/content/cades/content-encoding.html">Особенности работы с данными в КриптоПро ЭЦП</a></div></div><br /><br />Выставил кодировку.<br />Выводит следующую ошибку .<br /><br />Не важно, указываю я значение 1 или CADESCOM_BASE64_TO_BINARY выходит эта же самая ошибка. <br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote>Произошла ошибка при подписи файла!<br />Описание ошибки: CAdESCOM.CadesSignedData.1: Параметр задан неверно.<br />Стрим.LoadFromFile(Путь); <br />{C:\USERS\MASTERIT\DESKTOP\1C\КОНФИГУРАЦИИ\V7\ГИСМТ_1С77\EXTFORMS\ОБМЕНMARK\ПОДПИСАНИЕСЕРТИФИКАТОМMY.ERT(417)}: ADODB.Stream: Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом.</div></div></td></tr></table>2020-03-26T15:13:41+03:002020-03-26T15:13:41+03:00brenli<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=113858#post113858"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote><div class="quote"><span class="quotetitle">Автор: two_oceans <a href="/forum2/default.aspx?g=posts&m=113857#post113857"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Скорее всего дело вот в чем.<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote> InData=InStream.Read(-1);</div></div>Дает в переменную данные типа comsafearray который совсем не то же самое, что строка или массив байт по представлению в памяти. А смысл именно в получении в памяти идеальной копии файла и передаче копии из памяти в SignedData.Content.<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote> SignedData.Content=InData;</div></div>До этой строки нужно перекодировать в обычный массив или подпись будет верна для safearray, но не будет верна для исходного файла. Пример есть в одной из соседних тем, но так сразу найти не могу.</div></div><br /><br /><br />т.к. используется CadesSignedData - то самое простое - выставить кодировку: <br />.ContentEncoding = CADESCOM_BASE64_TO_BINARY;<br /><br />и передать файл как base64 строку. <br /><br /><br /><a rel="nofollow" href="https://cpdn.cryptopro.ru?url=/content/cades/content-encoding.html" title="https://cpdn.cryptopro.ru?url=/content/cades/content-encoding.html">Особенности работы с данными в КриптоПро ЭЦП</a></div></div><br /><br />Выставил кодировку.<br />Выводит следующую ошибку .<br /><br />Не важно, указываю я значение 1 или CADESCOM_BASE64_TO_BINARY выходит эта же самая ошибка. <br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote>Произошла ошибка при подписи файла!<br />Описание ошибки: CAdESCOM.CadesSignedData.1: Параметр задан неверно.<br />Стрим.LoadFromFile(Путь); <br />{C:\USERS\MASTERIT\DESKTOP\1C\КОНФИГУРАЦИИ\V7\ГИСМТ_1С77\EXTFORMS\ОБМЕНMARK\ПОДПИСАНИЕСЕРТИФИКАТОМMY.ERT(417)}: ADODB.Stream: Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом.</div></div></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid113858:1Ошибка подписи при работе с api СУЗ<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: two_oceans <a href="/forum2/default.aspx?g=posts&m=113857#post113857"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Скорее всего дело вот в чем.<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote> InData=InStream.Read(-1);</div></div>Дает в переменную данные типа comsafearray который совсем не то же самое, что строка или массив байт по представлению в памяти. А смысл именно в получении в памяти идеальной копии файла и передаче копии из памяти в SignedData.Content.<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote> SignedData.Content=InData;</div></div>До этой строки нужно перекодировать в обычный массив или подпись будет верна для safearray, но не будет верна для исходного файла. Пример есть в одной из соседних тем, но так сразу найти не могу.</div></div><br /><br /><br />т.к. используется CadesSignedData - то самое простое - выставить кодировку: <br />.ContentEncoding = CADESCOM_BASE64_TO_BINARY;<br /><br />и передать файл как base64 строку. <br /><br /><br /><a rel="nofollow" href="https://cpdn.cryptopro.ru?url=/content/cades/content-encoding.html" title="https://cpdn.cryptopro.ru?url=/content/cades/content-encoding.html">Особенности работы с данными в КриптоПро ЭЦП</a></td></tr></table>2020-03-26T14:38:14+03:002020-03-26T14:38:14+03:00Андрей *<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: two_oceans <a href="/forum2/default.aspx?g=posts&m=113857#post113857"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Скорее всего дело вот в чем.<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote> InData=InStream.Read(-1);</div></div>Дает в переменную данные типа comsafearray который совсем не то же самое, что строка или массив байт по представлению в памяти. А смысл именно в получении в памяти идеальной копии файла и передаче копии из памяти в SignedData.Content.<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote> SignedData.Content=InData;</div></div>До этой строки нужно перекодировать в обычный массив или подпись будет верна для safearray, но не будет верна для исходного файла. Пример есть в одной из соседних тем, но так сразу найти не могу.</div></div><br /><br /><br />т.к. используется CadesSignedData - то самое простое - выставить кодировку: <br />.ContentEncoding = CADESCOM_BASE64_TO_BINARY;<br /><br />и передать файл как base64 строку. <br /><br /><br /><a rel="nofollow" href="https://cpdn.cryptopro.ru?url=/content/cades/content-encoding.html" title="https://cpdn.cryptopro.ru?url=/content/cades/content-encoding.html">Особенности работы с данными в КриптоПро ЭЦП</a></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid113857:1Ошибка подписи при работе с api СУЗ<table class="content postContainer_Alt" width="100%"><tr><td>Скорее всего дело вот в чем.<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote> InData=InStream.Read(-1);</div></div>Дает в переменную данные типа comsafearray который совсем не то же самое, что строка или массив байт по представлению в памяти. А смысл именно в получении в памяти идеальной копии файла и передаче копии из памяти в SignedData.Content.<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote> SignedData.Content=InData;</div></div>До этой строки нужно перекодировать в обычный массив или подпись будет верна для safearray, но не будет верна для исходного файла. Пример есть в одной из соседних тем, но так сразу найти не могу.</td></tr></table>2020-03-26T14:10:55+03:002020-03-26T14:10:55+03:00two_oceans<table class="content postContainer_Alt" width="100%"><tr><td>Скорее всего дело вот в чем.<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote> InData=InStream.Read(-1);</div></div>Дает в переменную данные типа comsafearray который совсем не то же самое, что строка или массив байт по представлению в памяти. А смысл именно в получении в памяти идеальной копии файла и передаче копии из памяти в SignedData.Content.<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote> SignedData.Content=InData;</div></div>До этой строки нужно перекодировать в обычный массив или подпись будет верна для safearray, но не будет верна для исходного файла. Пример есть в одной из соседних тем, но так сразу найти не могу.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid113852:1Ошибка подписи при работе с api СУЗ<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Захар Тихонов <a href="/forum2/default.aspx?g=posts&m=113841#post113841"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Здравствуйте.<br /><br /> укажите ваш сертификат на техническую поддержку "КриптоПро SDK".</div></div><br /><br />Можно подробнее. Что за сертификат?</td></tr></table>2020-03-26T11:43:01+03:002020-03-26T11:43:01+03:00brenli<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Захар Тихонов <a href="/forum2/default.aspx?g=posts&m=113841#post113841"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Здравствуйте.<br /><br /> укажите ваш сертификат на техническую поддержку "КриптоПро SDK".</div></div><br /><br />Можно подробнее. Что за сертификат?</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid113841:1Ошибка подписи при работе с api СУЗ<table class="content postContainer_Alt" width="100%"><tr><td>Здравствуйте.<br /><br />Для оперативной поддержки по разработке, создайте заявку на портале ТП - <a rel="nofollow" href="https://support.cryptopro.ru/" title="https://support.cryptopro.ru/">https://support.cryptopro.ru/</a> , и укажите ваш сертификат на техническую поддержку "КриптоПро SDK".</td></tr></table>2020-03-26T10:01:13+03:002020-03-26T10:01:13+03:00Захар Тихонов<table class="content postContainer_Alt" width="100%"><tr><td>Здравствуйте.<br /><br />Для оперативной поддержки по разработке, создайте заявку на портале ТП - <a rel="nofollow" href="https://support.cryptopro.ru/" title="https://support.cryptopro.ru/">https://support.cryptopro.ru/</a> , и укажите ваш сертификат на техническую поддержку "КриптоПро SDK".</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid113839:1Ошибка подписи при работе с api СУЗ<table class="content postContainer" width="100%"><tr><td>Кто нибудь может помочь мне? </td></tr></table>2020-03-26T09:57:05+03:002020-03-26T09:57:05+03:00brenli<table class="content postContainer" width="100%"><tr><td>Кто нибудь может помочь мне? </td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid113834:1Ошибка подписи при работе с api СУЗ<table class="content postContainer_Alt" width="100%"><tr><td>Всем добра.<br />Пытаюсь подписать открепленной подписью заказ км в СУЗ, выдает такую ошибку.<br />Signature validation failed: message-digest attribute value does not match calculated value Subject:<br /><br /> <div class="quote"><span class="quotetitle">Цитата:</span><blockquote>| InStream=new ActiveXObject(""ADODB.Stream"");<br /> | InStream.Type=1; // binary data<br /> | InStream.Mode=3; // read/write<br /> | InStream.Open();<br /> | InStream.LoadFromFile(FileName);<br /> | InData=InStream.Read(-1);<br /> |<br /> | Signer=new ActiveXObject(""CAdESCOM.CPSigner"");<br /> | Signer.Certificate=Cert;<br /> | Signer.TSAAddress = ""http://www.cryptopro.ru/tsp/tsp.srf"";<br /> |<br /> | SignedData=new ActiveXObject(""CAdESCOM.CadesSignedData"");<br /> // | SignedData.ContentEncoding =1; <br /> | Signer.Options=2;<br /> | SignedData.Content=InData;<br /> |<br /> | OutSignedData=SignedData.SignCades(Signer,1,1);<br /> |<br /> | OutStream=new ActiveXObject(""ADODB.Stream"");<br /> | OutStream.CharSet=""utf-8"";<br /> | OutStream.Type=2; // text data<br /> | OutStream.Mode=3; // read/write<br /> | OutStream.Open();<br /> | OutStream.WriteText(OutSignedData);<br /> | OutStream.SaveToFile(OutFileName,2);<br /> | OutStream.Close();</div></div><br /><br />Подписание выглядит именно так. Работаю из 1с 7.<br />Как поправить результат? Спасибо</td></tr></table>2020-03-25T23:26:41+03:002020-03-25T23:26:41+03:00brenli<table class="content postContainer_Alt" width="100%"><tr><td>Всем добра.<br />Пытаюсь подписать открепленной подписью заказ км в СУЗ, выдает такую ошибку.<br />Signature validation failed: message-digest attribute value does not match calculated value Subject:<br /><br /> <div class="quote"><span class="quotetitle">Цитата:</span><blockquote>| InStream=new ActiveXObject(""ADODB.Stream"");<br /> | InStream.Type=1; // binary data<br /> | InStream.Mode=3; // read/write<br /> | InStream.Open();<br /> | InStream.LoadFromFile(FileName);<br /> | InData=InStream.Read(-1);<br /> |<br /> | Signer=new ActiveXObject(""CAdESCOM.CPSigner"");<br /> | Signer.Certificate=Cert;<br /> | Signer.TSAAddress = ""http://www.cryptopro.ru/tsp/tsp.srf"";<br /> |<br /> | SignedData=new ActiveXObject(""CAdESCOM.CadesSignedData"");<br /> // | SignedData.ContentEncoding =1; <br /> | Signer.Options=2;<br /> | SignedData.Content=InData;<br /> |<br /> | OutSignedData=SignedData.SignCades(Signer,1,1);<br /> |<br /> | OutStream=new ActiveXObject(""ADODB.Stream"");<br /> | OutStream.CharSet=""utf-8"";<br /> | OutStream.Type=2; // text data<br /> | OutStream.Mode=3; // read/write<br /> | OutStream.Open();<br /> | OutStream.WriteText(OutSignedData);<br /> | OutStream.SaveToFile(OutFileName,2);<br /> | OutStream.Close();</div></div><br /><br />Подписание выглядит именно так. Работаю из 1с 7.<br />Как поправить результат? Спасибо</td></tr></table>