<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум Рутокен &mdash; Как получить идентификатор сертификата (CKA_ID ключ. пары) на токене?]]></title>
		<link>https://forum.rutoken.ru/topic/3045/</link>
		<atom:link href="https://forum.rutoken.ru/feed/rss/topic/3045/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Как получить идентификатор сертификата (CKA_ID ключ. пары) на токене?».]]></description>
		<lastBuildDate>Mon, 07 Oct 2019 09:57:17 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Как получить идентификатор сертификата (CKA_ID ключ. пары) на токене?]]></title>
			<link>https://forum.rutoken.ru/post/13365/#p13365</link>
			<description><![CDATA[<p><strong>Павел Анфимов</strong>, Спасибо за помощь</p>]]></description>
			<author><![CDATA[null@example.com (Binger)]]></author>
			<pubDate>Mon, 07 Oct 2019 09:57:17 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/13365/#p13365</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как получить идентификатор сертификата (CKA_ID ключ. пары) на токене?]]></title>
			<link>https://forum.rutoken.ru/post/13359/#p13359</link>
			<description><![CDATA[<div class="quotebox"><cite>Binger пишет:</cite><blockquote><p><strong>Павел Анфимов</strong>, у меня тут проблема вылезла...<br /><span class="postimg"><a class="fancybox fancybox.image" rel="group" href="https://forum.rutoken.ru/uploads/images/2019/10/f9528863c9aa081479f335ef73377423.png"><img class="fb_img" src="https://forum.rutoken.ru/uploads/previews/2019/10/f9528863c9aa081479f335ef73377423.png" alt="" /></a></span></p></blockquote></div><p>Опечатка вкралась. Все функции PKCS#11 нужно вызывать через указатель на functionList:</p><div class="codebox"><pre><code> functionList-&gt;C_GetAttributeValue(session, pObjHandles[i], &amp;idAttr, 1);</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Павел Анфимов)]]></author>
			<pubDate>Fri, 04 Oct 2019 14:42:02 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/13359/#p13359</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как получить идентификатор сертификата (CKA_ID ключ. пары) на токене?]]></title>
			<link>https://forum.rutoken.ru/post/13358/#p13358</link>
			<description><![CDATA[<p><strong>Павел Анфимов</strong>, у меня тут проблема вылезла...<br /><span class="postimg"><a class="fancybox fancybox.image" rel="group" href="https://forum.rutoken.ru/uploads/images/2019/10/f9528863c9aa081479f335ef73377423.png"><img class="fb_img" src="https://forum.rutoken.ru/uploads/previews/2019/10/f9528863c9aa081479f335ef73377423.png" alt="" /></a></span></p>]]></description>
			<author><![CDATA[null@example.com (Binger)]]></author>
			<pubDate>Fri, 04 Oct 2019 14:37:58 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/13358/#p13358</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как получить идентификатор сертификата (CKA_ID ключ. пары) на токене?]]></title>
			<link>https://forum.rutoken.ru/post/13357/#p13357</link>
			<description><![CDATA[<p>1. Как найти все сертификаты<br /></p><div class="codebox"><pre><code>/*************************************************************************
* Шаблон для поиска сертификата                                          *
*************************************************************************/
CK_ATTRIBUTE certificateTemplate[] =
{
    { CKA_CLASS, &amp;certificateObject, sizeof(certificateObject) },                      // Класс - сертификат
    { CKA_TOKEN, &amp;attributeTrue, sizeof(attributeTrue) },                              // Сертификат является объектом токена
    { CKA_PRIVATE, &amp;attributeFalse, sizeof(attributeFalse) },                          // Сертификат доступен без аутентификации
    { CKA_CERTIFICATE_TYPE, &amp;certificateType, sizeof(certificateType) },               // Тип сертификата - X.509
    { CKA_CERTIFICATE_CATEGORY, &amp;tokenUserCertificate, sizeof(tokenUserCertificate) }, // Категория сертификата - пользовательский
};


r = findObjects(functionList, session, certificateTemplate, arraysize(certificateTemplate),
                    &amp;certificates, &amp;objectCount);</code></pre></div><p>2. А затем для найденных объектов в цикле получайте CKA_ID.<br />Упрощенный код:<br /></p><div class="codebox"><pre><code>for(CK_ULONG i = 0; i &lt; objCount; ++i) {
      CK_ATTRIBUTE idAttr = { CKA_ID, NULL_PTR, 0 };
      rv = C_GetAttributeValue(session, pObjHandles[i], &amp;idAttr, 1);
      if(rv != CKR_OK) break;

      std::vector&lt;CK_BYTE&gt; ckId;
      ckId.resize(idAttr.ulValueLen);
      idAttr.pValue = ckId.data();
 
      rv = functionList-&gt;C_GetAttributeValue(session, pObjHandles[i], &amp;idAttr, 1);
      if(rv != CKR_OK) break;
}</code></pre></div><p>3. У закрытого ключа, открытого ключа и сертификата одинаковые CKA_ID.<br />Чтобы найти закртый ключ по CKA_ID сертификата, надо поиска объектов c CKA_CLASS == CKO_CERTIFICATE и получения их CKA_ID, запустить второй поиск, где в качестве шаблона поиска будет CKA_ID ключа и CKA_CLASS == CKO_PRIVATE_KEY.</p><p>4. Алгорим сертификата можно найти в информации, которая выдает функция C_EX_GetCertificateInfoText</p>]]></description>
			<author><![CDATA[null@example.com (Павел Анфимов)]]></author>
			<pubDate>Fri, 04 Oct 2019 14:14:27 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/13357/#p13357</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как получить идентификатор сертификата (CKA_ID ключ. пары) на токене?]]></title>
			<link>https://forum.rutoken.ru/post/13356/#p13356</link>
			<description><![CDATA[<p>Хочу получить имена всех контейнеров, находящихся на токене, чтобы в дальнейшем действовать с определёнными из них</p>]]></description>
			<author><![CDATA[null@example.com (Binger)]]></author>
			<pubDate>Fri, 04 Oct 2019 14:12:49 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/13356/#p13356</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как получить идентификатор сертификата (CKA_ID ключ. пары) на токене?]]></title>
			<link>https://forum.rutoken.ru/post/13355/#p13355</link>
			<description><![CDATA[<div class="quotebox"><cite>Павел Анфимов пишет:</cite><blockquote><p>Здравствуйте!</p><p>Вы хотите это сделать в коде своего приложения, или с помощью какой-либо программы?</p></blockquote></div><p>В коде приложения</p>]]></description>
			<author><![CDATA[null@example.com (Binger)]]></author>
			<pubDate>Fri, 04 Oct 2019 14:05:01 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/13355/#p13355</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как получить идентификатор сертификата (CKA_ID ключ. пары) на токене?]]></title>
			<link>https://forum.rutoken.ru/post/13353/#p13353</link>
			<description><![CDATA[<div class="quotebox"><cite>Binger пишет:</cite><blockquote><p>Здравствуйте. Как я могу получить список идентификаторов (CKA_ID ключевых пар) всех сертификатов, имеющихся на токене? Посмотрел пример CertInfo из SDK, но там лишь получение информации о конкретном сертификате, ID которого был установлен в программе. А как мне сначала получить список всех сертификатов, чтобы потом я уже мог выбирать из них. И можно ли получить сразу же вместе с ID алгоритм работы сертификата? Буду рад любой помощи. Спасибо.</p></blockquote></div><p>Здравствуйте!</p><p>Вы хотите это сделать в коде своего приложения, или с помощью какой-либо программы?</p>]]></description>
			<author><![CDATA[null@example.com (Павел Анфимов)]]></author>
			<pubDate>Fri, 04 Oct 2019 14:02:30 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/13353/#p13353</guid>
		</item>
		<item>
			<title><![CDATA[Как получить идентификатор сертификата (CKA_ID ключ. пары) на токене?]]></title>
			<link>https://forum.rutoken.ru/post/13352/#p13352</link>
			<description><![CDATA[<p>Здравствуйте. Как я могу получить список идентификаторов (CKA_ID ключевых пар) всех сертификатов, имеющихся на токене? Посмотрел пример CertInfo из SDK, но там лишь получение информации о конкретном сертификате, ID которого был установлен в программе. А как мне сначала получить список всех сертификатов, чтобы потом я уже мог выбирать из них. И можно ли получить сразу же вместе с ID алгоритм работы сертификата? Буду рад любой помощи. Спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (Binger)]]></author>
			<pubDate>Fri, 04 Oct 2019 13:44:55 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/13352/#p13352</guid>
		</item>
	</channel>
</rss>
