<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум Рутокен &mdash; Рутокен ЭЦП SC и Raspbian OS]]></title>
	<link rel="self" href="https://forum.rutoken.ru/feed/atom/topic/2341" />
	<updated>2015-11-23T15:40:19Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.rutoken.ru/topic/2341/</id>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП SC и Raspbian OS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/9117/#p9117" />
			<content type="html"><![CDATA[<p>Altynbek, здравствуйте.<br />Пока вы выполняете сборку исключительно для тестирования функциональности, можете добавить при сборке флаг компилятора -fpermissive (как сам компилятор и предлагает в описании ошибки):<br /></p><div class="codebox"><pre><code>gcc sign.cpp -fpermissive -lstdc++</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Евгений Мироненко]]></name>
				<uri>https://forum.rutoken.ru/user/8673/</uri>
			</author>
			<updated>2015-11-23T15:40:19Z</updated>
			<id>https://forum.rutoken.ru/post/9117/#p9117</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП SC и Raspbian OS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/9109/#p9109" />
			<content type="html"><![CDATA[<p>В таком случае, у меня вопрос.<br />Я скачал SDK с вышеуказанного адреса. Как его теперь установить на Raspbian OS? <br />Дело в том, что мне не удалось найти ни одного мануала по установке Вашего SDK.</p><p>Что касается файлов Common.h, то я взял его из папки /samples вашего sdk и подключил в своем примере (плюс файлы win2nix.h и wintypes.h, так как этого требовал компилятор).<br />Скомпилировал свой пример и получил следующее исключение:</p><p>In file included from rtpkcs11/Common.h:37:0,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;from sign.cpp:4:<br />rtpkcs11/win2nix.h: In function ‘pthread_t CreateProc(pthread_t*, pthread_attr_t*, void*, void*)’:<br />rtpkcs11/win2nix.h:72:41: error: invalid conversion from ‘void*’ to ‘void* (*)(void*)’ [-fpermissive]<br />/usr/include/pthread.h:225:12: error:&nbsp; &nbsp;initializing argument 3 of ‘int pthread_create(pthread_t*, const pthread_attr_t*, void* (*)(void*), void*)’ [-fpermissive]</p><p>Вопрос, что я сделал не так ?</p>]]></content>
			<author>
				<name><![CDATA[Altynbek]]></name>
				<uri>https://forum.rutoken.ru/user/9944/</uri>
			</author>
			<updated>2015-11-23T12:41:05Z</updated>
			<id>https://forum.rutoken.ru/post/9109/#p9109</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП SC и Raspbian OS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/9108/#p9108" />
			<content type="html"><![CDATA[<p>SDK надо брать здесь и больше нигде <a href="https://www.rutoken.ru/developers/sdk/">https://www.rutoken.ru/developers/sdk/</a></p>]]></content>
			<author>
				<name><![CDATA[Кирилл Мещеряков]]></name>
				<uri>https://forum.rutoken.ru/user/6786/</uri>
			</author>
			<updated>2015-11-23T12:07:30Z</updated>
			<id>https://forum.rutoken.ru/post/9108/#p9108</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП SC и Raspbian OS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/9107/#p9107" />
			<content type="html"><![CDATA[<p>Здравствуйте! <br />Полагаю, по незнанию ))<br />Просто в сборке, присланной мне на почту не было ни файлов Common.h, ни makefile&#039;ов.</p>]]></content>
			<author>
				<name><![CDATA[Altynbek]]></name>
				<uri>https://forum.rutoken.ru/user/9944/</uri>
			</author>
			<updated>2015-11-23T12:04:32Z</updated>
			<id>https://forum.rutoken.ru/post/9107/#p9107</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП SC и Raspbian OS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/9105/#p9105" />
			<content type="html"><![CDATA[<p>Добрый день.</p><p>Конечно, в linux таких функций и типов просто нет, так как для динамической загрузки используются dlopen, dlclose, dlsym<br />Вы можете подключить файл common.h из нашего SDK так чтобы они транслировались автоматически.</p><p>Все это уже было для вас сделано в файле makefile. <br />Почему вы им не воспользовались?</p>]]></content>
			<author>
				<name><![CDATA[Кирилл Мещеряков]]></name>
				<uri>https://forum.rutoken.ru/user/6786/</uri>
			</author>
			<updated>2015-11-23T11:32:04Z</updated>
			<id>https://forum.rutoken.ru/post/9105/#p9105</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП SC и Raspbian OS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/9100/#p9100" />
			<content type="html"><![CDATA[<p>Еще раз спасибо за предоставленную библиотеку rtpkcs11ecp для ОС raspbian.<br />Однако у меня возникла проблема. Дело в том, что я пытаюсь загрузить библиотеку с помощью с++ кода (как продемонстрировано в документации на сайте). <br />В этом скрипте я подключил заголовочный файл rtpkcs11.h, предоставленный мне вместе с библиотекой.<br />Я подключил его следующим образом: <br />#include &quot;rtpkcs11/rtpkcs11.h&quot;</p><p>И, скомпилировав свою программу следующим образом&nbsp; gcc sign.cpp -lstdc++<br />получил следующие ошибки:<br />pi@raspberrypi ~/Desktop/au-gateway/POC $ gcc sign.cpp -lstdc++<br />sign.cpp: In function ‘int main()’:<br />sign.cpp:31:2: error: ‘HMODULE’ was not declared in this scope<br />sign.cpp:31:10: error: expected ‘;’ before ‘hModule’<br />sign.cpp:41:6: error: ‘hModule’ was not declared in this scope<br />sign.cpp:41:47: error: ‘LoadLibrary’ was not declared in this scope<br />sign.cpp:51:91: error: ‘GetProcAddress’ was not declared in this scope<br />sign.cpp:72:6: error: ‘hModule’ was not declared in this scope<br />sign.cpp:75:29: error: ‘FreeLibrary’ was not declared in this scope</p><p>Проверил все предоставленные мне заголовочные файлы и не обнаружил определений для типов данных hModule и методов LoadLibrary() и GetProcAddress().<br />И потому у меня возникает вопрос, где можно их взять, чтобы устранить вышеуказанную проблему?</p><p>Это исходник примера, взятого из документации, который я пытаюсь скомпилировать:<br />#include &lt;iostream&gt;<br />#include &lt;stdio.h&gt;</p><p>#include &quot;rtpkcs11/rtpkcs11.h&quot;</p><p>#ifdef __unix__<br />/* Библиотека для Рутокен Lite, Рутокен ЭЦП, Рутокен PINPad, поддерживает алгоритмы ГОСТ и RSA */<br />&nbsp; &nbsp; #define PKCS11_LIBRARY_NAME&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;/usr/lib/pkcs11-arm/rtpkcs11ecp/librtpkcs11ecp.so&quot;<br />&nbsp; &nbsp; #define PKCS11ECP_LIBRARY_NAME&nbsp; &nbsp; &nbsp; &quot;/usr/lib/pkcs11-arm/rtpkcs11ecp/librtpkcs11ecp.so&quot;<br />#endif </p><p>int main()<br />{<br />&nbsp; &nbsp; HMODULE hModule = NULL_PTR;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// Хэндл загруженной библиотеки PKCS#11<br />&nbsp; &nbsp; CK_FUNCTION_LIST_PTR pFunctionList = NULL_PTR;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Указатель на список функций PKCS#11, хранящийся в структуре CK_FUNCTION_LIST<br />&nbsp; &nbsp; CK_C_GetFunctionList pfGetFunctionList = NULL_PTR;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Указатель на функцию C_GetFunctionList<br />&nbsp; &nbsp; CK_RV rv = CKR_OK;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Вспомогательная переменная для хранения кода возврата</p><p>&nbsp; &nbsp; while (TRUE)<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;// Загрузить библиотеку<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;printf(&quot;Loading library %s&quot;, PKCS11_LIBRARY_NAME);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;hModule = LoadLibrary(PKCS11_LIBRARY_NAME);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (hModule == NULL_PTR)<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;{<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;printf(&quot; -&gt; Failed to load rtPKCS11ECP library\n&quot;);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;}<br />&nbsp; &nbsp;&nbsp; <br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;// Получить адрес функции запроса структуры с указателями на функции <br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;printf(&quot; -&gt; Getting GetFunctionList function&quot;);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;pfGetFunctionList = (CK_C_GetFunctionList)GetProcAddress(hModule, &quot;C_GetFunctionList&quot;);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (pfGetFunctionList == NULL_PTR)<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;{<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;printf(&quot; -&gt; Failed to get function list\n&quot;);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;}<br />&nbsp; &nbsp;&nbsp; <br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;// Получить структуру с указателями на функции<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;printf(&quot;Getting function list&quot;);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;rv = pfGetFunctionList(&amp;pFunctionList);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (rv != CKR_OK)<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;{<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;printf(&quot; -&gt; Failed\n&quot;);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;}<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;break;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp;&nbsp; <br />&nbsp; &nbsp; // Выгрузить библиотеку из памяти <br />&nbsp; &nbsp; if (hModule)<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;printf(&quot;Unloading library&quot;);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (FreeLibrary(hModule) != TRUE)<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;printf(&quot; -&gt; Failed to unload library\n&quot;);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;hModule = NULL_PTR;<br />&nbsp; &nbsp; }<br />}</p>]]></content>
			<author>
				<name><![CDATA[Altynbek]]></name>
				<uri>https://forum.rutoken.ru/user/9944/</uri>
			</author>
			<updated>2015-11-20T19:08:37Z</updated>
			<id>https://forum.rutoken.ru/post/9100/#p9100</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Рутокен ЭЦП SC и Raspbian OS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/9086/#p9086" />
			<content type="html"><![CDATA[<p>Добрый день, библиотека для ARM процессоров существует, но пока предоставляется только по запросу.<br />Напишите пожалуйста нам на hotline@rutoken.ru</p>]]></content>
			<author>
				<name><![CDATA[Кирилл Мещеряков]]></name>
				<uri>https://forum.rutoken.ru/user/6786/</uri>
			</author>
			<updated>2015-11-17T11:48:03Z</updated>
			<id>https://forum.rutoken.ru/post/9086/#p9086</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Рутокен ЭЦП SC и Raspbian OS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/9085/#p9085" />
			<content type="html"><![CDATA[<p>Всем привет!<br />В одном из моих проектов мне необходимо реализовать механизм создания цифровой подписи при помощи смарт карт.<br />Для этих целей у меня есть смарт карты Рутокен ЭЦП SC и кард ридер ACR38U-I1.<br />При решении этой задачи я столкнулся с проблемой отсутствия сборки библиотеки PKCS#11 для Raspbian OS (имеющиеся сборки под debian и ubuntu по понятным причинам не подходят).<br />В результате мне пришлось искать альтернативные реализации стандарта PKCS11 от сторонних разработчиков. Выбор пал на opensc-pkcs11 и pyKCS11(обертку для стандарта pkcs11 для взаимодействия из Python).<br />После установки указанных библиотек я решил запустить тестовый пример из библиотеки pyKCS11 и получил следующие ошибки:</p><p>root@raspberrypi:/home/pi/EDS/PyKCS11-1.3.0/samples/LowLevel# python InitTokenPin.py<br />src/dyn_unix.c:34:SYS_dyn_LoadLibrary() pkcs11_lib.dll: cannot open shared object file: No such file or directory<br />и<br />root@raspberrypi:/home/pi/EDS/PyKCS11-1.3.0/samples/LowLevel# python test.py<br />src/dyn_unix.c:34:SYS_dyn_LoadLibrary() incryptoki2.dll: cannot open shared object file: No such file or directory</p><p>Просмотрел все имеющиеся библиотеки внутри папки /usr/ и не нашел их. Возможно opensc-pkcs11 не предоставляет соответствующих библиотек (либо они называются как-то иначе).<br />В связи с этим, у меня возникает вопрос, - приходилось ли кому-нибудь сталкиваться с аналогичной проблемой. И если да, то как удалось ее решить?</p>]]></content>
			<author>
				<name><![CDATA[Altynbek]]></name>
				<uri>https://forum.rutoken.ru/user/9944/</uri>
			</author>
			<updated>2015-11-17T11:00:35Z</updated>
			<id>https://forum.rutoken.ru/post/9085/#p9085</id>
		</entry>
</feed>
