Atom Лента - Форум КриптоПро - Тема:Linux + Windows - 10Форум КриптоПро - Atom Лентаurn:https:--www-cryptopro-ru:AtomLenta:ForumKriptoPro:Tema:Linux+Windows-10:1Copyright 2024 Форум КриптоПро2024-03-29T04:41:08Zhttps://www.cryptopro.ru/forum2/Images/YAFLogo.pngForum Adminhttps://www.cryptopro.ruforum@cryptopro.ruАндрей *https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=15008&name=Андрей *Андрей *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_oceansАндрей *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_oceansАндрей *https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=15008&name=Андрей *Андрей *https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=15008&name=Андрей *poleg-onhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=60358&name=poleg-ontwo_oceanshttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=36490&name=two_oceanspoleg-onhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=60358&name=poleg-onАндрей *https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=15008&name=Андрей *YetAnotherForum.NETurn:https:--www-cryptopro-ru:ftPosts:st1:meid127574:1Linux + Windows<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: two_oceans <a href="/forum2/default.aspx?g=posts&m=127565#post127565"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=127528#post127528"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>1. Где в моих сообщения есть упоминание про хеш?</div></div><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=127528#post127528"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Записывается его описание (небольшой файл, xml\json, в котором перечислены доп данные (номер\дата\<span class="highlight">сумма</span>)</div></div>Вероятно, я тогда не до конца понял и домыслил. Самые простые хэши md4, md5, sha1 среды программирования считать умеют сразу, а где не умеют, там есть модули, есть реализации для JavaScript и php. Соответственно вместо "длинных" контрольных сумм повсеместно используют хэши, сейчас уже фактически в смысловом поле сравнялись понятия "[контрольная] сумма" и "значение хэш-функции". С той же CRС суммой я недавно заинтересовался и обнаружил, что это "семейство" функций и совершенно не обязательно брать определенные константы. Исходник на Си CRC32 нашелся, а на паскале не повезло. В итоге пришел к выводу, что для моей цели в аналогичной программе хэш sha1 от файла посчитать на Microsoft CryptoApi будет быстрее и надежнее чем реализовать CRC32 или таскать с программой Zlib.dll.<br /> <br /></div></div><br /><br />нет.. всё проще и о другом...<br />номер\дата\<span class="highlight">сумма</span> - сумма в контексте с номером и датой документа... сумма = деньги), а не хеш.<br />// p.s. речь в примере про файловые АРМ, в интеграциях с операторами ЭДО... отправляется документ № ххх от хххх на сумму ххххх...</td></tr></table>2021-09-27T09:17:04+03:002021-09-27T09:17:04+03:00Андрей *<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: two_oceans <a href="/forum2/default.aspx?g=posts&m=127565#post127565"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=127528#post127528"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>1. Где в моих сообщения есть упоминание про хеш?</div></div><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=127528#post127528"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Записывается его описание (небольшой файл, xml\json, в котором перечислены доп данные (номер\дата\<span class="highlight">сумма</span>)</div></div>Вероятно, я тогда не до конца понял и домыслил. Самые простые хэши md4, md5, sha1 среды программирования считать умеют сразу, а где не умеют, там есть модули, есть реализации для JavaScript и php. Соответственно вместо "длинных" контрольных сумм повсеместно используют хэши, сейчас уже фактически в смысловом поле сравнялись понятия "[контрольная] сумма" и "значение хэш-функции". С той же CRС суммой я недавно заинтересовался и обнаружил, что это "семейство" функций и совершенно не обязательно брать определенные константы. Исходник на Си CRC32 нашелся, а на паскале не повезло. В итоге пришел к выводу, что для моей цели в аналогичной программе хэш sha1 от файла посчитать на Microsoft CryptoApi будет быстрее и надежнее чем реализовать CRC32 или таскать с программой Zlib.dll.<br /> <br /></div></div><br /><br />нет.. всё проще и о другом...<br />номер\дата\<span class="highlight">сумма</span> - сумма в контексте с номером и датой документа... сумма = деньги), а не хеш.<br />// p.s. речь в примере про файловые АРМ, в интеграциях с операторами ЭДО... отправляется документ № ххх от хххх на сумму ххххх...</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid127565:1Linux + Windows<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=127528#post127528"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>1. Где в моих сообщения есть упоминание про хеш?</div></div><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=127528#post127528"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Записывается его описание (небольшой файл, xml\json, в котором перечислены доп данные (номер\дата\<span class="highlight">сумма</span>)</div></div>Вероятно, я тогда не до конца понял и домыслил. Самые простые хэши md4, md5, sha1 среды программирования считать умеют сразу, а где не умеют, там есть модули, есть реализации для JavaScript и php. Соответственно вместо "длинных" контрольных сумм повсеместно используют хэши, сейчас уже фактически в смысловом поле сравнялись понятия "[контрольная] сумма" и "значение хэш-функции". С той же CRС суммой я недавно заинтересовался и обнаружил, что это "семейство" функций и совершенно не обязательно брать определенные константы. Исходник на Си CRC32 нашелся, а на паскале не повезло. В итоге пришел к выводу, что для моей цели в аналогичной программе хэш sha1 от файла посчитать на Microsoft CryptoApi будет быстрее и надежнее чем реализовать CRC32 или таскать с программой Zlib.dll.<br /><br />Про подходы и ограничения согласен - люди разные, кому как кажется удобнее. В месте с тем не могу не отметить, что функциональность плагина в нескольких местах ограничена и оставляет желать лучшего. Навскидку припомню, что были проблемы: поддержка не всех вариантов регулировки включения цепочки сертификатов (не включать/включить конечный/включать кроме корневого/включать все); некоторых полей отсутствовавших в Cadescom, но бывших в Capicom, в частности просмотра содержимого расширений сертификата и т.д.<br /><br />Вроде как сделать их не так и сложно (формат сертификата и общий формат расширений известен - оид, признак критичности, значение). По крайней мере, хотелось бы увидеть их для стандартных расширений сертификата, использующихся в гост-сертификатах (в одном сертификате видел вместе десяток расширений, порознь наберется десятка полтора). На Windows можно было открыть тот же сертификата через CAPICOM и посмотреть чего нужно, но вот с phpcades вряд ли так получится. Поправьте меня, если в этом плане произошли какие-то улучшения за 5 лет.<br /></td></tr></table>2021-09-27T05:36:37+03:002021-09-27T05:36:37+03:00two_oceans<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=127528#post127528"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>1. Где в моих сообщения есть упоминание про хеш?</div></div><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=127528#post127528"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Записывается его описание (небольшой файл, xml\json, в котором перечислены доп данные (номер\дата\<span class="highlight">сумма</span>)</div></div>Вероятно, я тогда не до конца понял и домыслил. Самые простые хэши md4, md5, sha1 среды программирования считать умеют сразу, а где не умеют, там есть модули, есть реализации для JavaScript и php. Соответственно вместо "длинных" контрольных сумм повсеместно используют хэши, сейчас уже фактически в смысловом поле сравнялись понятия "[контрольная] сумма" и "значение хэш-функции". С той же CRС суммой я недавно заинтересовался и обнаружил, что это "семейство" функций и совершенно не обязательно брать определенные константы. Исходник на Си CRC32 нашелся, а на паскале не повезло. В итоге пришел к выводу, что для моей цели в аналогичной программе хэш sha1 от файла посчитать на Microsoft CryptoApi будет быстрее и надежнее чем реализовать CRC32 или таскать с программой Zlib.dll.<br /><br />Про подходы и ограничения согласен - люди разные, кому как кажется удобнее. В месте с тем не могу не отметить, что функциональность плагина в нескольких местах ограничена и оставляет желать лучшего. Навскидку припомню, что были проблемы: поддержка не всех вариантов регулировки включения цепочки сертификатов (не включать/включить конечный/включать кроме корневого/включать все); некоторых полей отсутствовавших в Cadescom, но бывших в Capicom, в частности просмотра содержимого расширений сертификата и т.д.<br /><br />Вроде как сделать их не так и сложно (формат сертификата и общий формат расширений известен - оид, признак критичности, значение). По крайней мере, хотелось бы увидеть их для стандартных расширений сертификата, использующихся в гост-сертификатах (в одном сертификате видел вместе десяток расширений, порознь наберется десятка полтора). На Windows можно было открыть тот же сертификата через CAPICOM и посмотреть чего нужно, но вот с phpcades вряд ли так получится. Поправьте меня, если в этом плане произошли какие-то улучшения за 5 лет.<br /></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid127545:1Linux + Windows<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: two_oceans <a href="/forum2/default.aspx?g=posts&m=127543#post127543"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Андрей, ну что Вы мне рассказываете )))) Работает конечно, но какой процент лишних телодвижений во всем этом? PHP скрипт может генерировать описание xml\json на лету в памяти без медленных файловых операций и соответственно мелкий временный файл описания также можно поймать в память в стороне клиента. Как бы незачем его писать на диск.<br /><br />У меня самого программа синхронизации надцать лет была написана по такому принципу: был файл со списком файлов в папке и их характеристик (crc32 в том числе) и был "файл блокировки" списка (просто пустой). пока он есть другой экземпляр программы синхронизации файл со списком не трогал. Понятно что по разным причинам частенько все крашилось и файл блокировки оставался. Потому программа еще и его дату время создания сравнивала с текущей датой временем - если больше некого предела предыдущая сессия считалась "погибшей на боевом посту" и файл блокировки удалялся и создавался заново.<br /><br />C NTFS это стало сложнее, так как эта система еще и кэширует файловые атрибуты на какое-то время, то есть переместил файл на другой диск - он типа удалился, переместил обратно через минуту - вуаля, у файла старое время создания, кэш минуту продержался и героически восстановил время. А я сижу и тихо матерюсь, так как перемещал как раз чтобы время создания изменилось. Значит надо либо ждать либо явно поменять время.<br /><br />В этом году переписал программку для СМЭВ на уведомления нтфс, но "боевого теста" пока не было, терзают сомнения.<br /><br />Для одиночного файла все работает годами и прекрасно. Но... уже ощущается почти как работа с мсдос. Больше всего меня удивляет в описанном то, <span class="highlight">что указываете про хэш и</span> xml\json - так и просится http для связки с ними. http работает по TCP, то есть там уже встроен контроль правильности пакетов, зачем хэш; если считаем хэш, то почему не посчитать по гост-2012 256, тогда нам и файл не нужен; есть события по завершению http - не надо думать как просканировать папку или отфильтровать лишнее, придет событие именно файла который загружаешь.<br /></div></div><br /><br />1. Где в моих сообщения есть упоминание про хеш?<br />2. Я предлагаю варианты на выбор и web-сервис был: Web сервис или утилита <br />3. Некоторым программистам проще записать в файл\прочитать ответ (разработчики ИС\1С), чем изучать WebAPI какого-то сервиса. У каждого подхода свои возможности\ограничения. Косвенный пример: вместо использования phpcades вызывают утилиты, порождая дальнейшие вопросы (как получить время подписания из ЭП?)</td></tr></table>2021-09-24T14:34:35+03:002021-09-24T14:34:35+03:00Андрей *<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: two_oceans <a href="/forum2/default.aspx?g=posts&m=127543#post127543"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Андрей, ну что Вы мне рассказываете )))) Работает конечно, но какой процент лишних телодвижений во всем этом? PHP скрипт может генерировать описание xml\json на лету в памяти без медленных файловых операций и соответственно мелкий временный файл описания также можно поймать в память в стороне клиента. Как бы незачем его писать на диск.<br /><br />У меня самого программа синхронизации надцать лет была написана по такому принципу: был файл со списком файлов в папке и их характеристик (crc32 в том числе) и был "файл блокировки" списка (просто пустой). пока он есть другой экземпляр программы синхронизации файл со списком не трогал. Понятно что по разным причинам частенько все крашилось и файл блокировки оставался. Потому программа еще и его дату время создания сравнивала с текущей датой временем - если больше некого предела предыдущая сессия считалась "погибшей на боевом посту" и файл блокировки удалялся и создавался заново.<br /><br />C NTFS это стало сложнее, так как эта система еще и кэширует файловые атрибуты на какое-то время, то есть переместил файл на другой диск - он типа удалился, переместил обратно через минуту - вуаля, у файла старое время создания, кэш минуту продержался и героически восстановил время. А я сижу и тихо матерюсь, так как перемещал как раз чтобы время создания изменилось. Значит надо либо ждать либо явно поменять время.<br /><br />В этом году переписал программку для СМЭВ на уведомления нтфс, но "боевого теста" пока не было, терзают сомнения.<br /><br />Для одиночного файла все работает годами и прекрасно. Но... уже ощущается почти как работа с мсдос. Больше всего меня удивляет в описанном то, <span class="highlight">что указываете про хэш и</span> xml\json - так и просится http для связки с ними. http работает по TCP, то есть там уже встроен контроль правильности пакетов, зачем хэш; если считаем хэш, то почему не посчитать по гост-2012 256, тогда нам и файл не нужен; есть события по завершению http - не надо думать как просканировать папку или отфильтровать лишнее, придет событие именно файла который загружаешь.<br /></div></div><br /><br />1. Где в моих сообщения есть упоминание про хеш?<br />2. Я предлагаю варианты на выбор и web-сервис был: Web сервис или утилита <br />3. Некоторым программистам проще записать в файл\прочитать ответ (разработчики ИС\1С), чем изучать WebAPI какого-то сервиса. У каждого подхода свои возможности\ограничения. Косвенный пример: вместо использования phpcades вызывают утилиты, порождая дальнейшие вопросы (как получить время подписания из ЭП?)</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid127543:1Linux + Windows<table class="content postContainer" width="100%"><tr><td>Андрей, ну что Вы мне рассказываете )))) Работает конечно, но какой процент лишних телодвижений во всем этом? PHP скрипт может генерировать описание xml\json на лету в памяти без медленных файловых операций и соответственно мелкий временный файл описания также можно поймать в память в стороне клиента. Как бы незачем его писать на диск.<br /><br />У меня самого программа синхронизации надцать лет была написана по такому принципу: был файл со списком файлов в папке и их характеристик (crc32 в том числе) и был "файл блокировки" списка (просто пустой). пока он есть другой экземпляр программы синхронизации файл со списком не трогал. Понятно что по разным причинам частенько все крашилось и файл блокировки оставался. Потому программа еще и его дату время создания сравнивала с текущей датой временем - если больше некого предела предыдущая сессия считалась "погибшей на боевом посту" и файл блокировки удалялся и создавался заново.<br /><br />C NTFS это стало сложнее, так как эта система еще и кэширует файловые атрибуты на какое-то время, то есть переместил файл на другой диск - он типа удалился, переместил обратно через минуту - вуаля, у файла старое время создания, кэш минуту продержался и героически восстановил время. А я сижу и тихо матерюсь, так как перемещал как раз чтобы время создания изменилось. Значит надо либо ждать либо явно поменять время.<br /><br />В этом году переписал программку для СМЭВ на уведомления нтфс, но "боевого теста" пока не было, терзают сомнения.<br /><br />Для одиночного файла все работает годами и прекрасно. Но... уже ощущается почти как работа с мсдос. Больше всего меня удивляет в описанном то, что указываете про хэш и xml\json - так и просится http для связки с ними. http работает по TCP, то есть там уже встроен контроль правильности пакетов, зачем хэш; если считаем хэш, то почему не посчитать по гост-2012 256, тогда нам и файл не нужен; есть события по завершению http - не надо думать как просканировать папку или отфильтровать лишнее, придет событие именно файла который загружаешь.<br /></td></tr></table>2021-09-24T13:56:19+03:002021-09-24T13:56:19+03:00two_oceans<table class="content postContainer" width="100%"><tr><td>Андрей, ну что Вы мне рассказываете )))) Работает конечно, но какой процент лишних телодвижений во всем этом? PHP скрипт может генерировать описание xml\json на лету в памяти без медленных файловых операций и соответственно мелкий временный файл описания также можно поймать в память в стороне клиента. Как бы незачем его писать на диск.<br /><br />У меня самого программа синхронизации надцать лет была написана по такому принципу: был файл со списком файлов в папке и их характеристик (crc32 в том числе) и был "файл блокировки" списка (просто пустой). пока он есть другой экземпляр программы синхронизации файл со списком не трогал. Понятно что по разным причинам частенько все крашилось и файл блокировки оставался. Потому программа еще и его дату время создания сравнивала с текущей датой временем - если больше некого предела предыдущая сессия считалась "погибшей на боевом посту" и файл блокировки удалялся и создавался заново.<br /><br />C NTFS это стало сложнее, так как эта система еще и кэширует файловые атрибуты на какое-то время, то есть переместил файл на другой диск - он типа удалился, переместил обратно через минуту - вуаля, у файла старое время создания, кэш минуту продержался и героически восстановил время. А я сижу и тихо матерюсь, так как перемещал как раз чтобы время создания изменилось. Значит надо либо ждать либо явно поменять время.<br /><br />В этом году переписал программку для СМЭВ на уведомления нтфс, но "боевого теста" пока не было, терзают сомнения.<br /><br />Для одиночного файла все работает годами и прекрасно. Но... уже ощущается почти как работа с мсдос. Больше всего меня удивляет в описанном то, что указываете про хэш и xml\json - так и просится http для связки с ними. http работает по TCP, то есть там уже встроен контроль правильности пакетов, зачем хэш; если считаем хэш, то почему не посчитать по гост-2012 256, тогда нам и файл не нужен; есть события по завершению http - не надо думать как просканировать папку или отфильтровать лишнее, придет событие именно файла который загружаешь.<br /></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid127530:1Linux + Windows<table class="content postContainer_Alt" width="100%"><tr><td>// тот же файл описания, но расширение другое, для отправителя (клиент с linux в примере).</td></tr></table>2021-09-24T11:04:57+03:002021-09-24T11:04:57+03:00Андрей *<table class="content postContainer_Alt" width="100%"><tr><td>// тот же файл описания, но расширение другое, для отправителя (клиент с linux в примере).</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid127528:1Linux + Windows<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: two_oceans <a href="/forum2/default.aspx?g=posts&m=127526#post127526"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote><br />Мониторить папку немного сложно: можно пересканировать, но никто не поручится записался ли файл на этот момент целиком. Придется городить вычисление хэшей на сервере. Да, на Windows есть функции автоуведомления, что файл изменился/появился в папке, вот только работает она несколько своеобразно: сначала посылается уведомление что появилось имя файла (содержимого файла еще нет, размер 0 байт), потом что изменилось время, изменился размер (вот тут фактически файл может уже иметь данные, "но это не точно" что все данные уже приняты, возможно будут еще увеличения размера).</div></div><br /><br />Нет никаких сложностей и проблем. Уведомления от NTFS можно фильтровать и ориентироваться не на сам документ.<br /><br />Записывается документ.<br />Записывается его описание (небольшой файл, xml\json, в котором перечислены доп данные (номер\дата\сумма), какой сертификат использовать, куда записать подпись). <br />Утилита читает файл описания, выполняет необходимое и пишет в ответ результат, тот же файл + код\описание ошибки.<br /><br />Linux читает обратно - появившийся файл описания...<br /><br />Каждая из сторон обрабатывает и переносит к себе необходимое\очищает папку обмена.<br />Работает такое годами)</td></tr></table>2021-09-24T11:03:20+03:002021-09-24T11:03:20+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=127526#post127526"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote><br />Мониторить папку немного сложно: можно пересканировать, но никто не поручится записался ли файл на этот момент целиком. Придется городить вычисление хэшей на сервере. Да, на Windows есть функции автоуведомления, что файл изменился/появился в папке, вот только работает она несколько своеобразно: сначала посылается уведомление что появилось имя файла (содержимого файла еще нет, размер 0 байт), потом что изменилось время, изменился размер (вот тут фактически файл может уже иметь данные, "но это не точно" что все данные уже приняты, возможно будут еще увеличения размера).</div></div><br /><br />Нет никаких сложностей и проблем. Уведомления от NTFS можно фильтровать и ориентироваться не на сам документ.<br /><br />Записывается документ.<br />Записывается его описание (небольшой файл, xml\json, в котором перечислены доп данные (номер\дата\сумма), какой сертификат использовать, куда записать подпись). <br />Утилита читает файл описания, выполняет необходимое и пишет в ответ результат, тот же файл + код\описание ошибки.<br /><br />Linux читает обратно - появившийся файл описания...<br /><br />Каждая из сторон обрабатывает и переносит к себе необходимое\очищает папку обмена.<br />Работает такое годами)</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid127527:1Linux + Windows<table class="content postContainer_Alt" width="100%"><tr><td>спасибо за предложенный механизм взаимодействия</td></tr></table>2021-09-24T10:19:22+03:002021-09-24T10:19:22+03:00poleg-on<table class="content postContainer_Alt" width="100%"><tr><td>спасибо за предложенный механизм взаимодействия</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid127526:1Linux + Windows<table class="content postContainer" width="100%"><tr><td>Добрый день.<br /><br />Что-то все как-то наоборот, Linux сервер клиент, а Windows 10 сервер? С api такое расположение будет немного сложно в том плане, что Windows 10 клиентская операционная система и количество подключений к ней ограничено. На практике если развернуть на Windows веб-сервер, то один клиент в браузере с ним будет работать прекрасно, но вот несколько человек уже будут получать отказы. Конечно одиночное соединение REST API нагружает несколько меньше чем параллельные соединения браузера, но все же массовости так не получится.<br /><br />Более перспективен вариант как порекомендовали выше. С поправкой на http - все же эпоха веб, кому нужны проблемы с межплатформенными SMB общими папками? Логически можно сделать чтобы был один сервер и 2 клиента: один клиент запрашивает подписание, второй клиент выполняет подписание, сервер их соединяет и выполняет проверку прав доступа.<br /><br />Допустим, развернуть http сервер на Linux, куда некое ПО (клиент 1) от Linux может обратиться к http API и положить документ в очередь, указать сертификат (по отпечатку сертификата). В то же время на Windows 10 поставить в автозагрузку/планировщик некий клиент 2 (скрипт для WSH или PowerShell), который будет скачивать список очереди (ссылки на файлы с указанными отпечатками сертификатов). Если сертификат по отпечатку найден, то скачивать документ, рапортовать статус "в процессе подписания", подписывать, загружать подпись/подписанный документ (с автоотметкой "готово"). Если сертификат не найден, то сообщать об этом через http API. Соответственно через некоторое время клиент 1 может снова обратиться к серверу и получить либо ссылку на подпись/подписанный документ и скачать его либо статус "в очереди"/"в процессе подписания" либо отказ "не найден сертификат".<br /><br />Так исключается прямое, в том числе множественное, обращение к Windows 10 и соответственно не нарушаются ограничения по подключениям. Остается придумать как "пинать" клиент2, если документ завис. Например, можно возвращать документ в очередь на подписание, если некий таймаут (относительно размера файла) и ждать перезапуска клиента 2 планировщиком. Правда, есть шанс что ждать придется долго (постоянно включенная Десятка может внезапно начать ставить обновления).<br /><br />Мониторить папку немного сложно: можно пересканировать, но никто не поручится записался ли файл на этот момент целиком. Придется городить вычисление хэшей на сервере. Да, на Windows есть функции автоуведомления, что файл изменился/появился в папке, вот только работает она несколько своеобразно: сначала посылается уведомление что появилось имя файла (содержимого файла еще нет, размер 0 байт), потом что изменилось время, изменился размер (вот тут фактически файл может уже иметь данные, "но это не точно" что все данные уже приняты, возможно будут еще увеличения размера).</td></tr></table>2021-09-24T10:37:37+03:002021-09-24T10:37:37+03:00two_oceans<table class="content postContainer" width="100%"><tr><td>Добрый день.<br /><br />Что-то все как-то наоборот, Linux сервер клиент, а Windows 10 сервер? С api такое расположение будет немного сложно в том плане, что Windows 10 клиентская операционная система и количество подключений к ней ограничено. На практике если развернуть на Windows веб-сервер, то один клиент в браузере с ним будет работать прекрасно, но вот несколько человек уже будут получать отказы. Конечно одиночное соединение REST API нагружает несколько меньше чем параллельные соединения браузера, но все же массовости так не получится.<br /><br />Более перспективен вариант как порекомендовали выше. С поправкой на http - все же эпоха веб, кому нужны проблемы с межплатформенными SMB общими папками? Логически можно сделать чтобы был один сервер и 2 клиента: один клиент запрашивает подписание, второй клиент выполняет подписание, сервер их соединяет и выполняет проверку прав доступа.<br /><br />Допустим, развернуть http сервер на Linux, куда некое ПО (клиент 1) от Linux может обратиться к http API и положить документ в очередь, указать сертификат (по отпечатку сертификата). В то же время на Windows 10 поставить в автозагрузку/планировщик некий клиент 2 (скрипт для WSH или PowerShell), который будет скачивать список очереди (ссылки на файлы с указанными отпечатками сертификатов). Если сертификат по отпечатку найден, то скачивать документ, рапортовать статус "в процессе подписания", подписывать, загружать подпись/подписанный документ (с автоотметкой "готово"). Если сертификат не найден, то сообщать об этом через http API. Соответственно через некоторое время клиент 1 может снова обратиться к серверу и получить либо ссылку на подпись/подписанный документ и скачать его либо статус "в очереди"/"в процессе подписания" либо отказ "не найден сертификат".<br /><br />Так исключается прямое, в том числе множественное, обращение к Windows 10 и соответственно не нарушаются ограничения по подключениям. Остается придумать как "пинать" клиент2, если документ завис. Например, можно возвращать документ в очередь на подписание, если некий таймаут (относительно размера файла) и ждать перезапуска клиента 2 планировщиком. Правда, есть шанс что ждать придется долго (постоянно включенная Десятка может внезапно начать ставить обновления).<br /><br />Мониторить папку немного сложно: можно пересканировать, но никто не поручится записался ли файл на этот момент целиком. Придется городить вычисление хэшей на сервере. Да, на Windows есть функции автоуведомления, что файл изменился/появился в папке, вот только работает она несколько своеобразно: сначала посылается уведомление что появилось имя файла (содержимого файла еще нет, размер 0 байт), потом что изменилось время, изменился размер (вот тут фактически файл может уже иметь данные, "но это не точно" что все данные уже приняты, возможно будут еще увеличения размера).</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid127525:1Linux + Windows<table class="content postContainer_Alt" width="100%"><tr><td>Вдруг есть уже готовое решение...</td></tr></table>2021-09-24T09:52:05+03:002021-09-24T09:52:05+03:00poleg-on<table class="content postContainer_Alt" width="100%"><tr><td>Вдруг есть уже готовое решение...</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid127524:1Linux + Windows<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: poleg-on <a href="/forum2/default.aspx?g=posts&m=127515#post127515"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>В идеале, чтобы на Windows стороне был сервер, к которому можно обратиться по API:<br />Передать исходный документ,<br />Указать сертификат,<br />В ответ получить подписанный документ</div></div><br /><br />Web сервис или утилита, мониторит папку, в папке создаются файлы (например, xml, с описанием, какой файл, какой сертификат использовать и т.п)<br /><br />Ищите что-то готовое.. или для программиста собираете информацию, ТЗ? <br /></td></tr></table>2021-09-24T09:41:25+03:002021-09-24T09:41:25+03:00Андрей *<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: poleg-on <a href="/forum2/default.aspx?g=posts&m=127515#post127515"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>В идеале, чтобы на Windows стороне был сервер, к которому можно обратиться по API:<br />Передать исходный документ,<br />Указать сертификат,<br />В ответ получить подписанный документ</div></div><br /><br />Web сервис или утилита, мониторит папку, в папке создаются файлы (например, xml, с описанием, какой файл, какой сертификат использовать и т.п)<br /><br />Ищите что-то готовое.. или для программиста собираете информацию, ТЗ? <br /></td></tr></table>