<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум Рутокен &mdash; PKCS#11 на Android (Flutter)]]></title>
	<link rel="self" href="https://forum.rutoken.ru/feed/atom/topic/3928/" />
	<updated>2023-05-12T13:17:16Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.rutoken.ru/topic/3928/</id>
		<entry>
			<title type="html"><![CDATA[Re: PKCS#11 на Android (Flutter)]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/20562/#p20562" />
			<content type="html"><![CDATA[<p>Если вы планируете поддерживать любые устройства на ОС Android, то на текущий момент встраивание без java кода невозможно. Предпосылок к появлению такого варианта встраивания также нет.<br />Если вы являетесь разработчиками устройств с ОС Android, то напишите нам на hotline@rutoken.ru</p>]]></content>
			<author>
				<name><![CDATA[Аверченко Кирилл]]></name>
				<uri>https://forum.rutoken.ru/user/11551/</uri>
			</author>
			<updated>2023-05-12T13:17:16Z</updated>
			<id>https://forum.rutoken.ru/post/20562/#p20562</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: PKCS#11 на Android (Flutter)]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/20561/#p20561" />
			<content type="html"><![CDATA[<p>Хорошо. Попробую для тестов подключиться через AAR. </p><p>Подскажите, планируется ли выпустить найтивные библиотеки для андроид что бы работать без Java, как это уже сделано для Линукс и Windows?</p><p>Нам предстоит сертификация в ФСБ и ФСТЭК под Андроид и Линукс, использование одного и того же кода, который работает через стандарт PKCS#11 существенно упростило бы задачу.</p>]]></content>
			<author>
				<name><![CDATA[Денис (ЦПУ-301)]]></name>
				<uri>https://forum.rutoken.ru/user/13621/</uri>
			</author>
			<updated>2023-05-12T08:23:05Z</updated>
			<id>https://forum.rutoken.ru/post/20561/#p20561</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: PKCS#11 на Android (Flutter)]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/20559/#p20559" />
			<content type="html"><![CDATA[<p><strong>Денис (ЦПУ-301)</strong>, добрый день.<br />К сожалению, важная часть встраивания находится в java части aar библиотек для встраивания. Без встраивания aar (только с встраиванием нативных библиотек) работать с Рутокенами не получится.</p>]]></content>
			<author>
				<name><![CDATA[Аверченко Кирилл]]></name>
				<uri>https://forum.rutoken.ru/user/11551/</uri>
			</author>
			<updated>2023-05-12T05:47:04Z</updated>
			<id>https://forum.rutoken.ru/post/20559/#p20559</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: PKCS#11 на Android (Flutter)]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/20552/#p20552" />
			<content type="html"><![CDATA[<p>Спасибо за оперативный ответ. </p><p>Функцию C_WaitForSlotEvet использовал в вариантах с блокировкой и без блокировки. <br />&nbsp; &nbsp;в отсутствии блокировки ожидал в цикле. Всегда получал код ответа CKR_NO_EVENT<br />&nbsp; &nbsp;в варианте с блокировкой функция не возвращала управление</p><p>Так же проверял в цикле C_GetSlotList и C_GetSlotInfo<br />&nbsp; &nbsp;C_GetSlotList с параметром tokenPresent=1 возвращает всегда пустой список (длина 0)<br />&nbsp; &nbsp;С_GetSlotInfo записывает с структуру CK_SLOT_INFO флаги CKF_REMOVABLE_DEVICE, CKF_HW_SLOT, без флага CKF_TOKEN_PRESENT</p><p>Относительно библиотек, в соответствии с запросом библиотеки librtpkcs11ecp.so я добавил библиотеку librtpcsc.so из SDK, соответствующий rtpcsc-2.1.0.aar. Без внедрения этих библиотек функции вообще не вызывались. Сейчас все вызовы проходят нормально.</p><p>Для подключения я пользуюсь интерфейсом динамических библиотек, аналогично как если бы вашу библиотеку подключали в приложение написанное на С. AAR не использую так как это формат библиотек для Java. </p><p>Проверяю на мобильном телефоне Armor X7 Pro, Android 10, архитектура arm64-v8a.</p><p>Относительно выравнивания и на Windows и на Android у меня платформы 64 бита. Размеры CK_ULONG и CK_VOID_PTR идентичные, 4 и 8 байт соответственно. Но это не принципиально, могу подстроиться под фактически возвращаемую структуру. Я надеялся что это поможет в поиске проблемы с не работающим C_WaitForSlotEvent.</p>]]></content>
			<author>
				<name><![CDATA[Денис (ЦПУ-301)]]></name>
				<uri>https://forum.rutoken.ru/user/13621/</uri>
			</author>
			<updated>2023-05-11T11:56:06Z</updated>
			<id>https://forum.rutoken.ru/post/20552/#p20552</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: PKCS#11 на Android (Flutter)]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/20551/#p20551" />
			<content type="html"><![CDATA[<p><strong>Денис (ЦПУ-301)</strong>, добрый день.<br />Структуры в интерфейсе pkcs#11 только для Windows выравнены по 1 байту, для других платформ используется &quot;нативное&quot; выравнивание, которое может отличаться от платформы к платформе.</p><p>Типы в интерфейсе pkcs#11 мапятся в нативные типы языка С, размеры которых от платформы к платформе тоже отличаются.</p><p>В совокупности 1 и 2 дают разницу в выравниваниях и в размерах типов, которые вы видете в дампе памяти. Никакого &quot;неправильного&quot; выравнивания мы не видим.</p><p>Вы видимо используете C_WaitForSlotEvent в неблокирующем режиме, для корректной работы в этом случае она должна вызываться в цикле. Вы вызываете ее в цикле?</p><p>Для поддержки работы с Рутокенами на Android требуется внедрение дополнительных библиотек в ваше приложение (rtpcsc.aar или rtserviceconnection.aar), подробнее о них можно прочитать тут – <a href="https://dev.rutoken.ru/pages/viewpage.action?pageId=54395671.">https://dev.rutoken.ru/pages/viewpage.a … =54395671.</a> Подскажите внедрены ли они в ваше приложение? Если да – какой библиотекой и какой версией вы пользуетесь?</p><p>Также будем рады если сообщите на каком устройстве вы проверяете работу (модель, версия Android и прочее).</p>]]></content>
			<author>
				<name><![CDATA[Аверченко Кирилл]]></name>
				<uri>https://forum.rutoken.ru/user/11551/</uri>
			</author>
			<updated>2023-05-11T10:11:52Z</updated>
			<id>https://forum.rutoken.ru/post/20551/#p20551</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[PKCS#11 на Android (Flutter)]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/20549/#p20549" />
			<content type="html"><![CDATA[<p>Здравствуйте! </p><p>Подключаю библиотеку PKCS#11 к программе на Flutter (Dart). Использую вызов функций из динамически загружаемой библиотеки. Для Windows использую библиотеку rtpkcs11ecp.dll, все работает. </p><p>Для Android использую библиотеку librtpkcs11ecp.so, обнаружены проблемы:</p><p>1. Неправильное выравнивание в структуре CK_INFO, возвращаемой функцией C_GetInfo. Дамп памяти для обоих платформ приложен. Красным выделены лишние байты.<br />Windows:<br /><span class="postimg"><a class="fancybox fancybox.image" rel="group" href="https://forum.rutoken.ru/uploads/images/2023/05/399a6080de3ef97fd619c5e348577f92.png"><img class="fb_img" src="https://forum.rutoken.ru/uploads/previews/2023/05/399a6080de3ef97fd619c5e348577f92.png" alt="" /></a></span> <br />Android:<br /><span class="postimg"><a class="fancybox fancybox.image" rel="group" href="https://forum.rutoken.ru/uploads/images/2023/05/ea17fa9898a4c2d785c857d9239fed66.png"><img class="fb_img" src="https://forum.rutoken.ru/uploads/previews/2023/05/ea17fa9898a4c2d785c857d9239fed66.png" alt="" /></a></span> </p><p>2. Неправильное выравнивание в структуре возвращаемой функцией C_GetSlotList. Дамп памяти для обоих платформ приложен.<br />Windows:<br /><span class="postimg"><a class="fancybox fancybox.image" rel="group" href="https://forum.rutoken.ru/uploads/images/2023/05/e534bf741d5c5da1079d65dd116eea93.png"><img class="fb_img" src="https://forum.rutoken.ru/uploads/previews/2023/05/e534bf741d5c5da1079d65dd116eea93.png" alt="" /></a></span> <br />Android:<br /><span class="postimg"><a class="fancybox fancybox.image" rel="group" href="https://forum.rutoken.ru/uploads/images/2023/05/1a1cc4156e8ab1e51d1c419018856cff.png"><img class="fb_img" src="https://forum.rutoken.ru/uploads/previews/2023/05/1a1cc4156e8ab1e51d1c419018856cff.png" alt="" /></a></span> </p><p>3. Функция C_WaitForSlotEvent возвращает CKR_NO_EVENT, а C_GetSlotList кол-во активных слотов 0, независимо от наличия или отсутствия токена подключенного через NFC. </p><p>Используется Рутокен 3.0 ЭЦП NFC. Панель управления Рутокен установлена. Она NFC-токен обнаруживает. Приложение Демо-смена установлено, оно так же видит NFC-токен, но оно использует другую библиотеку, не PKCS#11.</p>]]></content>
			<author>
				<name><![CDATA[Денис (ЦПУ-301)]]></name>
				<uri>https://forum.rutoken.ru/user/13621/</uri>
			</author>
			<updated>2023-05-11T08:18:44Z</updated>
			<id>https://forum.rutoken.ru/post/20549/#p20549</id>
		</entry>
</feed>
