<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум Рутокен &mdash; Проблема с авторизацией. PKCS11. Многопоточность]]></title>
		<link>https://forum.rutoken.ru/topic/3132/</link>
		<atom:link href="https://forum.rutoken.ru/feed/rss/topic/3132/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Проблема с авторизацией. PKCS11. Многопоточность».]]></description>
		<lastBuildDate>Wed, 19 Feb 2020 22:52:23 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Проблема с авторизацией. PKCS11. Многопоточность]]></title>
			<link>https://forum.rutoken.ru/post/13958/#p13958</link>
			<description><![CDATA[<p><strong>Павел Анфимов</strong>, Спасибо. Именно в этом и было дело</p>]]></description>
			<author><![CDATA[null@example.com (Binger)]]></author>
			<pubDate>Wed, 19 Feb 2020 22:52:23 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/13958/#p13958</guid>
		</item>
		<item>
			<title><![CDATA[Re: Проблема с авторизацией. PKCS11. Многопоточность]]></title>
			<link>https://forum.rutoken.ru/post/13956/#p13956</link>
			<description><![CDATA[<p><strong>Binger</strong>, согласно стандарту PKCS#11 у всех сессий одинаковое состояние с точки зрения аутентифицированности:<br /></p><div class="quotebox"><blockquote><p>пункт 6.7.4</p><p> In Cryptoki, all sessions that an application has with a token must have the same login/logout status (i.e., for a given application and token, one of the following holds: all sessions are public sessions; all sessions are SO sessions; or all sessions are user sessions). When an application’s session logs into a token, all of that application’s sessions with that token become logged in, and when an application’s session logs out of a token, all of that application’s sessions with that token become logged out. Similarly, for example, if an application already has a R/O user session open with a token, and then opens a R/W session with that token, the R/W session is automatically logged in.</p></blockquote></div><p>Скорее всего у вас в одной из сессий вызывается C_Logout, что раслогинивает <em>все</em> другие сессии.</p>]]></description>
			<author><![CDATA[null@example.com (Павел Анфимов)]]></author>
			<pubDate>Tue, 18 Feb 2020 15:46:03 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/13956/#p13956</guid>
		</item>
		<item>
			<title><![CDATA[Проблема с авторизацией. PKCS11. Многопоточность]]></title>
			<link>https://forum.rutoken.ru/post/13955/#p13955</link>
			<description><![CDATA[<p>Здравствуйте. Пытаюсь реализовать ЭЦП с использованием многопоточности в приложении. Изучил документацию PKCS11 и нашёл там, что для безопасного использования многопоточности необходимо определить аргументы для функции C_Initialize, что я и сделал:<br /></p><div class="codebox"><pre><code>        CK_C_INITIALIZE_ARGS initArgs =
        {
            CK_CREATEMUTEX(), /* CreateMutex */
            CK_DESTROYMUTEX(), /* DestroyMutex */
            CK_LOCKMUTEX(), /* LockMutex */
            CK_UNLOCKMUTEX(), /* UnlockMutex */
            CKF_OS_LOCKING_OK, /* flags */
            NULL_PTR, /* pReserved */
        };

        if (m_functionList-&gt;C_Initialize(&amp;initArgs) != CKR_OK)
        {
            log_err(INIT_PKCS11_FAILED);
            return FALSE;
        }</code></pre></div><p>Далее пытаюсь вызвать функцию ЭЦП по вашему примеру из SDK. В первом потоке авторизация проходит успешно, далее в каждом потоке при попытке залогиниться вылезает ошибка CKR_USER_ALREADY_LOGGED_IN. Стал её игнорировать в приложении, теперь только с использованием сессии, в которой залогинился формируется ЭЦП, во всех остальных потоках при попытке вызвать функцию </p><div class="codebox"><pre><code>m_functionListEx-&gt;C_EX_PKCS7Sign(session, pbData, cbData, certificates[0], &amp;signature, &amp;signatureSize, privateKeys[0], NULL_PTR, 0, 0)</code></pre></div><p>вылетает ошибка CKR_USER_NOT_LOGGED_IN. </p><p>Получается, при попытке залогиниться библиотека выдаёт мне ошибку, что я уже залогинился, а при вызове функции подписи говорит, что авторизации не было... Что я делаю не так?</p>]]></description>
			<author><![CDATA[null@example.com (Binger)]]></author>
			<pubDate>Tue, 18 Feb 2020 13:26:44 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/13955/#p13955</guid>
		</item>
	</channel>
</rss>
