Atom Лента - Форум КриптоПро - Тема:Многократный ввод правильного пароля контейнера для подписи одного документа - 10Форум КриптоПро - Atom Лентаurn:https:--www-cryptopro-ru:AtomLenta:ForumKriptoPro:Tema:Mnogokratnyjjvvodpravil'nogoparoljakontejjneradljapodpisiodnogodokumenta-10:1Copyright 2024 Форум КриптоПро2024-03-29T03:03:56Zhttps://www.cryptopro.ru/forum2/Images/YAFLogo.pngForum Adminhttps://www.cryptopro.ruforum@cryptopro.rutwo_oceanshttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=36490&name=two_oceanstwo_oceanshttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=36490&name=two_oceansKonstantin Agilehttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=60056&name=Konstantin AgileKonstantin Agilehttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=60056&name=Konstantin AgileАндрей *https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=15008&name=Андрей *Андрей *https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=15008&name=Андрей *Андрей *https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=15008&name=Андрей *Konstantin Agilehttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=60056&name=Konstantin AgileKonstantin Agilehttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=60056&name=Konstantin AgileАндрей *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_oceansYetAnotherForum.NETurn:https:--www-cryptopro-ru:ftPosts:st1:meid126718:1Многократный ввод правильного пароля контейнера для подписи одного документа<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Konstantin Agile <a href="/forum2/default.aspx?g=posts&m=126713#post126713"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Какой вызов в логе КриптоПРО CSP соответствует запросу наличия ЗК?<br /><br />Между первой парой вызовов CPCAcquireContext и CPCReleaseContext не было других операций.<br />Что могло в таком случае кроме CryptSignHash вызвать модальное окно запроса пароля?</div></div>Насчет того, какой вызов соответствует запросу пароля тут давненько идут баталии, полной правды пока не видел. В теории можно вызвать CryptAcquireContext (создать hProv), потом установить для hProv параметр с пин-кодом и запроса не будет при всех операциях с этим hProv (а то и с этим контейнером - если закэшируется пароль в хранилище). Из этого как бы следует, что CryptAcquireContext не запрашивает пароль. В теории.<br /><br />Также очевидно что если к моменту вызова CryptSignHash пин-код не сохранен средствами криптопровайдера, не закэширован в хранилище (за это отвечает Microsoft CryptoApi) и не установлен для конкретного hProv, то CryptSignHash вызовет обращение к закрытому ключу и запрос пин-кода точно будет. Про то, что в промежутке между CryptAcquireContext и CryptSignHash - не ясно, в теории тоже не должно спрашивать.<br /><br />Например, при подписи xml хэш считается минимум 2 раза, подписывается только последний. Иногда для первого вычисления хэша также вызывают контекст с контейнером вместо VERIFY_CONTEXT.<br /><br />Кроме того, мне вспоминается поведение КриптоПро CSP когда у меня запрашивались пин-коды от трех "первых попавшихся" контейнеров и если в них не находилось нужного, выдавалась ошибка. Не очень хорошо помню при какой ситуации это было. При "автоопределении" контейнера, соответствующего сертификату или при вызове CryptAcquireCertificatePrivateKey.<div class="quote"><span class="quotetitle">Автор: Konstantin Agile <a href="/forum2/default.aspx?g=posts&m=126713#post126713"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Наличие ЗК можно проверить по сертификату для этого ввод пароля ведь не требуется.</div></div>Сертификат это сертификат, в нем не хранится ссылка на контейнер ЗК. В хранилище ссылка хранится, но некоторым плагинам этого мало и они перечисляют сами контейнеры, а вдруг токен не вставлен. Контуровская диагностика активно продвигает драйверы рутокена, что на самом деле контейнер не на токене - алгоритм не волнует. Так что и плагин может быть написан с упором на токены. Более того, диагностика еще и выдает рекомендацию использовать КС1 вместо КС2.<div class="quote"><span class="quotetitle">Автор: Konstantin Agile <a href="/forum2/default.aspx?g=posts&m=126713#post126713"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Что могло в таком случае кроме CryptSignHash вызвать модальное окно запроса пароля?</div></div>Модальное окно запроса пароля? Серьезно? Модальное - это когда не дает переключиться на какое-то другое (родительское) окно, на версии 4 мне такое не встречалось - для этого надо специально передавать hwnd родительского окна.<br /><br /></td></tr></table>2021-08-19T06:14:17+03:002021-08-19T06:14:17+03:00two_oceans<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Konstantin Agile <a href="/forum2/default.aspx?g=posts&m=126713#post126713"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Какой вызов в логе КриптоПРО CSP соответствует запросу наличия ЗК?<br /><br />Между первой парой вызовов CPCAcquireContext и CPCReleaseContext не было других операций.<br />Что могло в таком случае кроме CryptSignHash вызвать модальное окно запроса пароля?</div></div>Насчет того, какой вызов соответствует запросу пароля тут давненько идут баталии, полной правды пока не видел. В теории можно вызвать CryptAcquireContext (создать hProv), потом установить для hProv параметр с пин-кодом и запроса не будет при всех операциях с этим hProv (а то и с этим контейнером - если закэшируется пароль в хранилище). Из этого как бы следует, что CryptAcquireContext не запрашивает пароль. В теории.<br /><br />Также очевидно что если к моменту вызова CryptSignHash пин-код не сохранен средствами криптопровайдера, не закэширован в хранилище (за это отвечает Microsoft CryptoApi) и не установлен для конкретного hProv, то CryptSignHash вызовет обращение к закрытому ключу и запрос пин-кода точно будет. Про то, что в промежутке между CryptAcquireContext и CryptSignHash - не ясно, в теории тоже не должно спрашивать.<br /><br />Например, при подписи xml хэш считается минимум 2 раза, подписывается только последний. Иногда для первого вычисления хэша также вызывают контекст с контейнером вместо VERIFY_CONTEXT.<br /><br />Кроме того, мне вспоминается поведение КриптоПро CSP когда у меня запрашивались пин-коды от трех "первых попавшихся" контейнеров и если в них не находилось нужного, выдавалась ошибка. Не очень хорошо помню при какой ситуации это было. При "автоопределении" контейнера, соответствующего сертификату или при вызове CryptAcquireCertificatePrivateKey.<div class="quote"><span class="quotetitle">Автор: Konstantin Agile <a href="/forum2/default.aspx?g=posts&m=126713#post126713"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Наличие ЗК можно проверить по сертификату для этого ввод пароля ведь не требуется.</div></div>Сертификат это сертификат, в нем не хранится ссылка на контейнер ЗК. В хранилище ссылка хранится, но некоторым плагинам этого мало и они перечисляют сами контейнеры, а вдруг токен не вставлен. Контуровская диагностика активно продвигает драйверы рутокена, что на самом деле контейнер не на токене - алгоритм не волнует. Так что и плагин может быть написан с упором на токены. Более того, диагностика еще и выдает рекомендацию использовать КС1 вместо КС2.<div class="quote"><span class="quotetitle">Автор: Konstantin Agile <a href="/forum2/default.aspx?g=posts&m=126713#post126713"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Что могло в таком случае кроме CryptSignHash вызвать модальное окно запроса пароля?</div></div>Модальное окно запроса пароля? Серьезно? Модальное - это когда не дает переключиться на какое-то другое (родительское) окно, на версии 4 мне такое не встречалось - для этого надо специально передавать hwnd родительского окна.<br /><br /></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid126714:1Многократный ввод правильного пароля контейнера для подписи одного документа<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=126709#post126709"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>в логе подключение и отключение было: CPCReleaseContext <br />второе подключение (в котором был вызов CryptSignHash) было уже с другим указателем (hProv)</div></div><br /><br />Между первой парой вызовов CPCAcquireContext и CPCReleaseContext не было других операций.<br />Что могло в таком случае кроме CryptSignHash вызвать модальное окно запроса пароля? <br /><br /></td></tr></table>2021-08-18T18:22:40+03:002021-08-18T18:22:40+03:00Konstantin Agile<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=126709#post126709"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>в логе подключение и отключение было: CPCReleaseContext <br />второе подключение (в котором был вызов CryptSignHash) было уже с другим указателем (hProv)</div></div><br /><br />Между первой парой вызовов CPCAcquireContext и CPCReleaseContext не было других операций.<br />Что могло в таком случае кроме CryptSignHash вызвать модальное окно запроса пароля? <br /><br /></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid126713:1Многократный ввод правильного пароля контейнера для подписи одного документа<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=126707#post126707"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote><div class="quote"><span class="quotetitle">Автор: Konstantin Agile <a href="/forum2/default.aspx?g=posts&m=126705#post126705"><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=126687#post126687"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Здравствуйте.<br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote><br />При подписании одного документа через <br />Крипто Про CSP пин-код (пароль) от контейнера ЭЦП запрашивается два раза. <br /></div></div><br /><br />В каком ПО?</div></div><br /><br />В Контур.Плагин 3.12.0.441.<br />Какое это имеет значение, если анализируется лог самого КриптоПро CSP? Или в логе КриптоПро CSP некоторые вызовы API из внешнего ПО могут не отражаться?<br /></div></div><br /><br />Как какое... <br />А если ПО захотело проверить наличие ЗК - пароль не должен требоваться?<br /><br />Проверили - ок, можно подписывать.<br /><br /></div></div><br /><br />Какой вызов в логе КриптоПРО CSP соответствует запросу наличия ЗК?<br />Наличие ЗК можно проверить по сертификату для этого ввод пароля ведь не требуется. <br /><br /><br /></td></tr></table>2021-08-18T18:20:28+03:002021-08-18T18:20:28+03:00Konstantin Agile<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=126707#post126707"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote><div class="quote"><span class="quotetitle">Автор: Konstantin Agile <a href="/forum2/default.aspx?g=posts&m=126705#post126705"><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=126687#post126687"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Здравствуйте.<br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote><br />При подписании одного документа через <br />Крипто Про CSP пин-код (пароль) от контейнера ЭЦП запрашивается два раза. <br /></div></div><br /><br />В каком ПО?</div></div><br /><br />В Контур.Плагин 3.12.0.441.<br />Какое это имеет значение, если анализируется лог самого КриптоПро CSP? Или в логе КриптоПро CSP некоторые вызовы API из внешнего ПО могут не отражаться?<br /></div></div><br /><br />Как какое... <br />А если ПО захотело проверить наличие ЗК - пароль не должен требоваться?<br /><br />Проверили - ок, можно подписывать.<br /><br /></div></div><br /><br />Какой вызов в логе КриптоПРО CSP соответствует запросу наличия ЗК?<br />Наличие ЗК можно проверить по сертификату для этого ввод пароля ведь не требуется. <br /><br /><br /></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid126709:1Многократный ввод правильного пароля контейнера для подписи одного документа<table class="content postContainer" width="100%"><tr><td>в логе подключение и отключение было: CPCReleaseContext <br />второе подключение (в котором был вызов CryptSignHash) было уже с другим указателем (hProv)</td></tr></table>2021-08-18T17:00:48+03:002021-08-18T17:00:48+03:00Андрей *<table class="content postContainer" width="100%"><tr><td>в логе подключение и отключение было: CPCReleaseContext <br />второе подключение (в котором был вызов CryptSignHash) было уже с другим указателем (hProv)</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid126708:1Многократный ввод правильного пароля контейнера для подписи одного документа<table class="content postContainer_Alt" width="100%"><tr><td>Проверьте поведение на актуальной сертифицированной сборке 5R2.</td></tr></table>2021-08-18T16:58:52+03:002021-08-18T16:58:52+03:00Андрей *<table class="content postContainer_Alt" width="100%"><tr><td>Проверьте поведение на актуальной сертифицированной сборке 5R2.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid126707:1Многократный ввод правильного пароля контейнера для подписи одного документа<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Konstantin Agile <a href="/forum2/default.aspx?g=posts&m=126705#post126705"><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=126687#post126687"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Здравствуйте.<br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote><br />При подписании одного документа через <br />Крипто Про CSP пин-код (пароль) от контейнера ЭЦП запрашивается два раза. <br /></div></div><br /><br />В каком ПО?</div></div><br /><br />В Контур.Плагин 3.12.0.441.<br />Какое это имеет значение, если анализируется лог самого КриптоПро CSP? Или в логе КриптоПро CSP некоторые вызовы API из внешнего ПО могут не отражаться?<br /></div></div><br /><br />Как какое... <br />А если ПО захотело проверить наличие ЗК - пароль не должен требоваться?<br /><br />Проверили - ок, можно подписывать.<br /><br /></td></tr></table>2021-08-18T16:55:25+03:002021-08-18T16:55:25+03:00Андрей *<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Konstantin Agile <a href="/forum2/default.aspx?g=posts&m=126705#post126705"><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=126687#post126687"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Здравствуйте.<br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote><br />При подписании одного документа через <br />Крипто Про CSP пин-код (пароль) от контейнера ЭЦП запрашивается два раза. <br /></div></div><br /><br />В каком ПО?</div></div><br /><br />В Контур.Плагин 3.12.0.441.<br />Какое это имеет значение, если анализируется лог самого КриптоПро CSP? Или в логе КриптоПро CSP некоторые вызовы API из внешнего ПО могут не отражаться?<br /></div></div><br /><br />Как какое... <br />А если ПО захотело проверить наличие ЗК - пароль не должен требоваться?<br /><br />Проверили - ок, можно подписывать.<br /><br /></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid126706:1Многократный ввод правильного пароля контейнера для подписи одного документа<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=126701#post126701"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Да, я тоже думаю на ПО - дело в том, что некоторые программисты "по всем правилам" вызывают функцию CryptSignHash дважды. Первый раз просто для получения размера памяти, второй - собственно для подписания. Лично меня двойной запрос раздражает, поэтому в моей программке выбирается заранее размер памяти для RAW подписи по алгоритму.</div></div><br /><br />Если функция CryptSignHash вызывается дважды, тогда почему в логе КриптоПро CSP только один вызов?</td></tr></table>2021-08-18T16:47:13+03:002021-08-18T16:47:13+03:00Konstantin Agile<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=126701#post126701"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Да, я тоже думаю на ПО - дело в том, что некоторые программисты "по всем правилам" вызывают функцию CryptSignHash дважды. Первый раз просто для получения размера памяти, второй - собственно для подписания. Лично меня двойной запрос раздражает, поэтому в моей программке выбирается заранее размер памяти для RAW подписи по алгоритму.</div></div><br /><br />Если функция CryptSignHash вызывается дважды, тогда почему в логе КриптоПро CSP только один вызов?</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid126705:1Многократный ввод правильного пароля контейнера для подписи одного документа<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=126687#post126687"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Здравствуйте.<br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote><br />При подписании одного документа через <br />Крипто Про CSP пин-код (пароль) от контейнера ЭЦП запрашивается два раза. <br /></div></div><br /><br />В каком ПО?</div></div><br /><br />В Контур.Плагин 3.12.0.441.<br />Какое это имеет значение, если анализируется лог самого КриптоПро CSP? Или в логе КриптоПро CSP некоторые вызовы API из внешнего ПО могут не отражаться?<br /></td></tr></table>2021-08-18T16:45:40+03:002021-08-18T16:45:40+03:00Konstantin Agile<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=126687#post126687"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Здравствуйте.<br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote><br />При подписании одного документа через <br />Крипто Про CSP пин-код (пароль) от контейнера ЭЦП запрашивается два раза. <br /></div></div><br /><br />В каком ПО?</div></div><br /><br />В Контур.Плагин 3.12.0.441.<br />Какое это имеет значение, если анализируется лог самого КриптоПро CSP? Или в логе КриптоПро CSP некоторые вызовы API из внешнего ПО могут не отражаться?<br /></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid126702:1Многократный ввод правильного пароля контейнера для подписи одного документа<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=126701#post126701"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Да, я тоже думаю на ПО - дело в том, что некоторые программисты "по всем правилам" вызывают функцию CryptSignHash дважды. Первый раз просто для получения размера памяти, второй - собственно для подписания. Лично меня двойной запрос раздражает, поэтому в моей программке выбирается заранее размер памяти для RAW подписи по алгоритму.</div></div><br /><br />Когда заранее пишется под конкретный алгоритм(Id) - известен размер.<br />А по правилам - дважды.</td></tr></table>2021-08-18T14:02:00+03:002021-08-18T14:02:00+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=126701#post126701"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Да, я тоже думаю на ПО - дело в том, что некоторые программисты "по всем правилам" вызывают функцию CryptSignHash дважды. Первый раз просто для получения размера памяти, второй - собственно для подписания. Лично меня двойной запрос раздражает, поэтому в моей программке выбирается заранее размер памяти для RAW подписи по алгоритму.</div></div><br /><br />Когда заранее пишется под конкретный алгоритм(Id) - известен размер.<br />А по правилам - дважды.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid126701:1Многократный ввод правильного пароля контейнера для подписи одного документа<table class="content postContainer" width="100%"><tr><td>Да, я тоже думаю на ПО - дело в том, что некоторые программисты "по всем правилам" вызывают функцию CryptSignHash дважды. Первый раз просто для получения размера памяти, второй - собственно для подписания. Лично меня двойной запрос раздражает, поэтому в моей программке выбирается заранее размер памяти для RAW подписи по алгоритму.</td></tr></table>2021-08-18T13:59:28+03:002021-08-18T13:59:28+03:00two_oceans<table class="content postContainer" width="100%"><tr><td>Да, я тоже думаю на ПО - дело в том, что некоторые программисты "по всем правилам" вызывают функцию CryptSignHash дважды. Первый раз просто для получения размера памяти, второй - собственно для подписания. Лично меня двойной запрос раздражает, поэтому в моей программке выбирается заранее размер памяти для RAW подписи по алгоритму.</td></tr></table>