<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум Рутокен &mdash; Ошибка при выполнении функции rt_eng_p11_key_pair_wrap на swift. iOS]]></title>
	<link rel="self" href="https://forum.rutoken.ru/feed/atom/topic/3599/" />
	<updated>2022-06-10T13:20:59Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.rutoken.ru/topic/3599/</id>
		<entry>
			<title type="html"><![CDATA[Re: Ошибка при выполнении функции rt_eng_p11_key_pair_wrap на swift. iOS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/17573/#p17573" />
			<content type="html"><![CDATA[<p><strong>Павел Анфимов</strong>,&nbsp; добрый день!</p><p>Да, работает.</p><p>Свою проблему тоже удалось решить. Проблема была в &quot;кривой&quot; линковке либ</p>]]></content>
			<author>
				<name><![CDATA[SergeyRT]]></name>
				<uri>https://forum.rutoken.ru/user/11860/</uri>
			</author>
			<updated>2022-06-10T13:20:59Z</updated>
			<id>https://forum.rutoken.ru/post/17573/#p17573</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ошибка при выполнении функции rt_eng_p11_key_pair_wrap на swift. iOS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/17552/#p17552" />
			<content type="html"><![CDATA[<p><strong>SergeyRT</strong>, добрый день! </p><p>Заработала ли у Вас Демосмена после переключения на новый master?</p><p>Для диагностики проблемы в коде вашего приложения пока недостаточно информации.<br />Подготовьте, пожалуйста, минимальный пример из вашего приложения, в котором воспроизводится падение.</p>]]></content>
			<author>
				<name><![CDATA[Павел Анфимов]]></name>
				<uri>https://forum.rutoken.ru/user/7338/</uri>
			</author>
			<updated>2022-06-08T08:42:47Z</updated>
			<id>https://forum.rutoken.ru/post/17552/#p17552</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ошибка при выполнении функции rt_eng_p11_key_pair_wrap на swift. iOS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/17550/#p17550" />
			<content type="html"><![CDATA[<p>Спасибо.</p><p>Собрал собственное приложение (приложение на React-native) и добавил все 4 необходимых framework&#039;и (OpenSSL 3.0 и rtengine3).</p><p>- Приложение периодически падает при вызове d2i_X509 с ошибкой EXC_BAD_ACCESS (падает всегда, если вызывать чтение токенов при запуске приложения. А если запустить приложение, немного подождать и потом подключить токен, то падает не всегда). Вызов d2i_X509 полностью повторяет Ваш пример из гита.<br />- Вызов rt_eng_p11_key_pair_wrap все также отдает nil.</p><p>Подскажите, пожалуйста, как можно получить более подробную информацию о выполнении функции?</p>]]></content>
			<author>
				<name><![CDATA[SergeyRT]]></name>
				<uri>https://forum.rutoken.ru/user/11860/</uri>
			</author>
			<updated>2022-06-07T19:25:10Z</updated>
			<id>https://forum.rutoken.ru/post/17550/#p17550</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ошибка при выполнении функции rt_eng_p11_key_pair_wrap на swift. iOS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/17544/#p17544" />
			<content type="html"><![CDATA[<p><strong>SergeyRT</strong>, здравствуйте! </p><p>Спасибо за сигнал.</p><p>Мы актуализировали <a href="https://github.com/AktivCo/rutoken-demoshift-ios">https://github.com/AktivCo/rutoken-demoshift-ios</a> (приложение Демосмена), теперь оно собирается с последним Рутокен SDK. И в том числе использует вызов rt_eng_p11_key_pair_wrap (<a href="https://github.com/AktivCo/rutoken-demoshift-ios/blob/master/demoshift/Pkcs11/Token.swift#L148">https://github.com/AktivCo/rutoken-demo … swift#L148</a>).<br />Обратите внимание, что ветка master использует OpenSSL 3.0 и rtengine3.</p>]]></content>
			<author>
				<name><![CDATA[Павел Анфимов]]></name>
				<uri>https://forum.rutoken.ru/user/7338/</uri>
			</author>
			<updated>2022-06-07T14:39:01Z</updated>
			<id>https://forum.rutoken.ru/post/17544/#p17544</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Ошибка при выполнении функции rt_eng_p11_key_pair_wrap на swift. iOS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/17543/#p17543" />
			<content type="html"><![CDATA[<p>Добрый день, коллеги.</p><p>Подскажите, пожалуйста, как сделать корректный вызов функции rt_eng_p11_key_pair_wrap на swift?</p><p>Скачал последнюю версию SDK и пытался собрать Ваш пример из гитхаб для iOS на swift (<a href="https://github.com/AktivCo/rutoken-demoshift-ios">https://github.com/AktivCo/rutoken-demoshift-ios</a>), перед этим подложив в проект нужные framework&#039;и (openssl 1.1, engine - 1.1). Но наткнулся на проблему отсутствия rt_eng_init / rt_eng_final / rt_eng_p11_session_new и так далее (<a href="https://github.com/AktivCo/rutoken-demoshift-ios/blob/master/demoshift/Pkcs11/TokenManager.swift#L54">https://github.com/AktivCo/rutoken-demo … .swift#L54</a>). Посмотрев на другой Ваш проект для iOS на Objc обнаружил, что вместо вышеуказанных функции там используется rt_eng_load_engine / rt_eng_unload_engine / rt_eng_p11_session_wrap и так далее. Поэтому заменил часть функций engine из swift проекта на функции из Objc проекта.</p><p>Пример кода:</p><div class="codebox"><pre><code>let publicHandle: CK_OBJECT_HANDLE = findObject(CKO_PUBLIC_KEY, ...)
let privateHandle: CK_OBJECT_HANDLE = findObject(CKO_PRIVATE_KEY, ...)

var functionList = CK_FUNCTION_LIST()
try withUnsafeMutablePointer(to: &amp;functionList) { pointer in
var functionListPointer: UnsafeMutablePointer&lt;CK_FUNCTION_LIST&gt;? = pointer
let rv = C_GetFunctionList(&amp;functionListPointer)
guard rv == CKR_OK else {
  throw &quot;Error&quot;
}

guard let wrappedSession = rt_eng_p11_session_wrap(functionListPointer, token.session, 0, nil) else {
  throw &quot;Error&quot;
}
defer {
  rt_eng_p11_session_free(wrappedSession)
}

guard let evpPKey = rt_eng_p11_key_pair_wrap(wrappedSession, privateHandle, publicHandle) else {
  throw &quot;Error&quot; // получаю ошибку
}
defer {
  EVP_PKEY_free(evpPKey)
}

...
}</code></pre></div><p>Предполагаю, что получение handle&#039;ов ключей валидно, так как вызов функции C_EX_PKCS7Sign с использованием этих ключей выполняется успешно.</p>]]></content>
			<author>
				<name><![CDATA[SergeyRT]]></name>
				<uri>https://forum.rutoken.ru/user/11860/</uri>
			</author>
			<updated>2022-06-07T11:11:12Z</updated>
			<id>https://forum.rutoken.ru/post/17543/#p17543</id>
		</entry>
</feed>
