<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум Рутокен &mdash; Проблема с авторизацией. PKCS11. Многопоточность]]></title>
	<link rel="self" href="https://forum.rutoken.ru/feed/atom/topic/3132/" />
	<updated>2020-02-19T22:52:23Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.rutoken.ru/topic/3132/</id>
		<entry>
			<title type="html"><![CDATA[Re: Проблема с авторизацией. PKCS11. Многопоточность]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13958/#p13958" />
			<content type="html"><![CDATA[<p><strong>Павел Анфимов</strong>, Спасибо. Именно в этом и было дело</p>]]></content>
			<author>
				<name><![CDATA[Binger]]></name>
				<uri>https://forum.rutoken.ru/user/11270/</uri>
			</author>
			<updated>2020-02-19T22:52:23Z</updated>
			<id>https://forum.rutoken.ru/post/13958/#p13958</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Проблема с авторизацией. PKCS11. Многопоточность]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13956/#p13956" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Павел Анфимов]]></name>
				<uri>https://forum.rutoken.ru/user/7338/</uri>
			</author>
			<updated>2020-02-18T15:46:03Z</updated>
			<id>https://forum.rutoken.ru/post/13956/#p13956</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Проблема с авторизацией. PKCS11. Многопоточность]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/13955/#p13955" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Binger]]></name>
				<uri>https://forum.rutoken.ru/user/11270/</uri>
			</author>
			<updated>2020-02-18T13:26:44Z</updated>
			<id>https://forum.rutoken.ru/post/13955/#p13955</id>
		</entry>
</feed>
