<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум Рутокен &mdash; Вывод атрибута из файла с Rutoken]]></title>
		<link>https://forum.rutoken.ru/topic/2369/</link>
		<atom:link href="https://forum.rutoken.ru/feed/rss/topic/2369/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Вывод атрибута из файла с Rutoken».]]></description>
		<lastBuildDate>Wed, 03 Feb 2016 17:24:35 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Вывод атрибута из файла с Rutoken]]></title>
			<link>https://forum.rutoken.ru/post/9293/#p9293</link>
			<description><![CDATA[<p><a href="http://www.cplusplus.com/reference/cstdio/printf/">http://www.cplusplus.com/reference/cstdio/printf/</a><br />используйте %c а не %s для вывода символа</p>]]></description>
			<author><![CDATA[null@example.com (Кирилл Мещеряков)]]></author>
			<pubDate>Wed, 03 Feb 2016 17:24:35 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/9293/#p9293</guid>
		</item>
		<item>
			<title><![CDATA[Вывод атрибута из файла с Rutoken]]></title>
			<link>https://forum.rutoken.ru/post/9291/#p9291</link>
			<description><![CDATA[<p>Пишу программу, необходимо считать атрибут с файла хранящегося на Rutoken S и записать его в строку.</p><p>пользуюсь исходным кодом представленным на <br /><a href="http://developer.rutoken.ru/pages/viewpage.action?pageId=13795364#id-ВстраиваниеустройствРутокенчерезPKCS#11-Созданиеобъектанатокене">http://developer.rutoken.ru/pages/viewp … танатокене</a></p><p>но при компиляции возникает ошибка <br /> </p><div class="codebox"><pre><code>CK_BYTE         new_data[] = “Sample Rutoken data”;
 
CK_ATTRIBUTE attrDataReadTmpl[] = {CKA_VALUE, NULL_PTR, NULL};
CK_ATTRIBUTE attrDataEditTmpl[] = {CKA_VALUE, new_data, sizeof(new_data)};
 
 
while(true)
{
    ...
  
    /* Изменить значение объекта */
    printf(&quot;Setting object value&quot;);
    rv = pFunctionList-&gt;C_SetAttributeValue(hSession,            // Хэндл открытой с правами Пользователя сессии
                                            hData,              // Хэндл объекта ключа
                                            &amp;attrDataEditTmpl[0],  // Шаблон изменения значения атрибута
                                            1);                 // Количество атрибутов в шаблоне
    if (rv != CKR_OK)
    {
        printf(&quot; -&gt; Failed\n&quot;);
        break;
    }
    printf(&quot; -&gt; OK\n&quot;);
  
    /* Получить размер буфера для хранения значения атрибута CKA_VALUE*/
    printf(&quot;Getting object value size&quot;);
    rv = pFunctionList-&gt;C_GetAttributeValue(hSession,            // Хэндл открытой с правами Пользователя сессии
                                            hData,              // Хэндл объекта ключа
                                            &amp;attrDataReadTmpl[0],  // Шаблон получения значения атрибута
                                            1);                 // Количество атрибутов в шаблоне
    if (rv != CKR_OK)
    {
        printf(&quot; -&gt; Failed\n&quot;);
        break;
    }
    printf(&quot; -&gt; OK\n&quot;);
 
    /* Выделить необходимое количество памяти для значения атрибута */
    attrDataReadTmpl-&gt;pValue = (CK_BYTE*)malloc(attrDataReadTmpl-&gt;ulValueLen);
    if (attrDataReadTmpl-&gt;pValue == NULL)
    {
        printf(&quot;Memory allocation for attrDataReadTmpl failed! \n&quot;);
        break;
    }
    memset(attrDataReadTmpl-&gt;pValue,
           0,
           (attrDataReadTmpl-&gt;ulValueLen * sizeof(CK_BYTE)));
  
    /* Получить значение объекта */
    printf(&quot;Getting object value&quot;);
    rv = pFunctionList-&gt;C_GetAttributeValue(hSession,            // Хэндл открытой с правами Пользователя сессии
                                            hData,              // Хэндл объекта ключа
                                            &amp;attrDataReadTmpl,  // Шаблон получения значения атрибута
                                            1);                 // Количество атрибутов в шаблоне
    if (rv != CKR_OK)
    {
        printf(&quot; -&gt; Failed\n&quot;);
        break;
    }
    printf(&quot; -&gt; OK\n&quot;);
  
    /* Распечатать буфер со значением объекта */
    printf(&quot;Data is:\n&quot;);
    for (i = 0;
         i &lt; attrDataReadTmpl-&gt;ulValueLen;
         i++)
        printf(&quot;%s&quot;, attrDataReadTmpl-&gt;pValue[i]);
    break;
}
  
if (attrDataReadTmpl-&gt;pValue)
{
    free(attrDataReadTmpl-&gt;pValue);
    attrDataReadTmpl-&gt;pValue = NULL_PTR;
    attrDataReadTmpl-&gt;ulValueLen= 0;
}
  </code></pre></div><br /><p>а именно в строчке <br /></p><div class="codebox"><pre><code>        printf(&quot;%s&quot;, attrDataReadTmpl-&gt;pValue[i]); </code></pre></div><p>код ошибки <br /></p><div class="codebox"><pre><code>[bcc32 Error] Unit1.cpp(273): E2453 Size of the type &#039;void&#039; is unknown or zero
  Full parser context
    Unit1.cpp(44): parsing: void _fastcall TForm1::FormShow(TObject *)</code></pre></div><p>перерыл весь интрнет ничего путного не нашел,<br />подскажите что делать, или дайте подобный семпл!</p>]]></description>
			<author><![CDATA[null@example.com (pva_57)]]></author>
			<pubDate>Wed, 03 Feb 2016 09:26:58 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/9291/#p9291</guid>
		</item>
	</channel>
</rss>
