<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум Рутокен &mdash; Подпись с помощью функции C_EX_PKCS7Sign не проходит. OS iOS]]></title>
	<link rel="self" href="https://forum.rutoken.ru/feed/atom/topic/3415/" />
	<updated>2021-09-10T10:12:44Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.rutoken.ru/topic/3415/</id>
		<entry>
			<title type="html"><![CDATA[Re: Подпись с помощью функции C_EX_PKCS7Sign не проходит. OS iOS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/15968/#p15968" />
			<content type="html"><![CDATA[<p>действительно, спасибо!</p>]]></content>
			<author>
				<name><![CDATA[SergeyRT]]></name>
				<uri>https://forum.rutoken.ru/user/11860/</uri>
			</author>
			<updated>2021-09-10T10:12:44Z</updated>
			<id>https://forum.rutoken.ru/post/15968/#p15968</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Подпись с помощью функции C_EX_PKCS7Sign не проходит. OS iOS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/15967/#p15967" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>SergeyRT пишет:</cite><blockquote><p>rv = _extendedFunctions-&gt;C_EX_PKCS7Sign(_session, data, sizeof(data), <strong>publicKey,</strong> &amp;signature, &amp;signatureSize, privateKey, NULL, 0, 0);</p></blockquote></div><p>Вы передаете дескриптор publicKey, а необходимо передавать дескриптор сертификата.</p>]]></content>
			<author>
				<name><![CDATA[Аверченко Кирилл]]></name>
				<uri>https://forum.rutoken.ru/user/11551/</uri>
			</author>
			<updated>2021-09-10T09:51:40Z</updated>
			<id>https://forum.rutoken.ru/post/15967/#p15967</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Подпись с помощью функции C_EX_PKCS7Sign не проходит. OS iOS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/15966/#p15966" />
			<content type="html"><![CDATA[<p>Спасибо за ответ, но это не помогает. rv также равен 18.</p><p>Прикладываю код:</p><p>CK_OBJECT_HANDLE privateKey;</p><p>CK_OBJECT_CLASS keyClass1 = CKO_PRIVATE_KEY;<br />CK_ATTRIBUTE template1[] = {<br />&nbsp; {CKA_CLASS, &amp;keyClass1, sizeof(keyClass1)},<br />&nbsp; {CKA_ID, (void*)[[certificate id] bytes], [[certificate id] length]},<br />};<br />&nbsp; &nbsp; <br />rv = _functions-&gt;C_FindObjectsInit(_session, template1, ARRAY_LENGTH(template1));<br />if (CKR_OK != rv) [Pkcs11Error initWithCode:rv];</p><p>rv = _functions-&gt;C_FindObjects(_session, &amp;privateKey, 1, &amp;count);<br />if (CKR_OK != rv) [Pkcs11Error initWithCode:rv];</p><p>rv = _functions-&gt;C_FindObjectsFinal(_session);<br />if (CKR_OK != rv) [Pkcs11Error initWithCode:rv];</p><p>if (count != 1) {<br />&nbsp; &nbsp;[Pkcs11Error initWithDescription:@&quot;private key for certificate not found&quot;];<br />}</p><p>rv = _extendedFunctions-&gt;C_EX_PKCS7Sign(_session, data, sizeof(data), publicKey, &amp;signature, &amp;signatureSize, <strong>privateKey</strong>, NULL, 0, 0);</p><p>У вас в документации указано, что передача приватного ключа не обязательна: <br />&quot;hPrivKey - дескриптор закрытого ключа, соответствующего указанному сертификату. Если равен 0, то закрытый ключ будет искаться по ID сертификата&quot;</p>]]></content>
			<author>
				<name><![CDATA[SergeyRT]]></name>
				<uri>https://forum.rutoken.ru/user/11860/</uri>
			</author>
			<updated>2021-09-10T09:14:51Z</updated>
			<id>https://forum.rutoken.ru/post/15966/#p15966</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Подпись с помощью функции C_EX_PKCS7Sign не проходит. OS iOS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/15965/#p15965" />
			<content type="html"><![CDATA[<p>Добрый день. <br />Подпись производится с помощью закрытого ключа (private key). Именно его необходимо передавать в вызов C_EX_PKCS7Sign.<br />Описание функции доступно по ссылке <a href="https://dev.rutoken.ru/pages/viewpage.action?pageId=3178555#id-Описаниефункцийрасширения-C_EX_PKCS7Sign()">https://dev.rutoken.ru/pages/viewpage.a … KCS7Sign()</a><br />Вам необходимо поправить шаблон поиска ключа.<br />Открытый ключ (public key) используется для проверки подписи.</p>]]></content>
			<author>
				<name><![CDATA[Аверченко Кирилл]]></name>
				<uri>https://forum.rutoken.ru/user/11551/</uri>
			</author>
			<updated>2021-09-10T09:04:07Z</updated>
			<id>https://forum.rutoken.ru/post/15965/#p15965</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Подпись с помощью функции C_EX_PKCS7Sign не проходит. OS iOS]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/15963/#p15963" />
			<content type="html"><![CDATA[<p>Добрый день.</p><p>Пытаюсь подписать некоторые данные используя C_EX_PKCS7Sign, но она всегда отдает в результате CKR_ATTRIBUTE_TYPE_INVALID.</p><p>Используемые код:</p><p>CK_OBJECT_CLASS keyClass = CKO_PUBLIC_KEY;<br />CK_ATTRIBUTE template[] = {<br />&nbsp; &nbsp; &nbsp; {CKA_CLASS, &amp;keyClass, sizeof(keyClass)},<br />&nbsp; &nbsp; &nbsp; {CKA_ID, (void*)[[certificate id] bytes], [[certificate id] length]},<br />};</p><p>rv = _functions-&gt;C_FindObjectsInit(_session, template, ARRAY_LENGTH(template));<br />if (CKR_OK != rv) [Pkcs11Error initWithCode:rv];<br />&nbsp; &nbsp; <br />rv = _functions-&gt;C_FindObjects(_session, &amp;publicKey, 1, &amp;count);<br />if (CKR_OK != rv) [Pkcs11Error initWithCode:rv];<br />&nbsp; &nbsp; <br />rv = _functions-&gt;C_FindObjectsFinal(_session);<br />if (CKR_OK != rv) [Pkcs11Error initWithCode:rv];<br />&nbsp; &nbsp; <br />if (count != 1) {<br />&nbsp; &nbsp;[Pkcs11Error initWithDescription:@&quot;public key for certificate not found&quot;];<br />}</p><p>CK_BYTE_PTR signature;<br />CK_ULONG signatureSize;</p><p>unsigned char data[7] = &quot;qwerty&quot;;<br />rv = _extendedFunctions-&gt;C_EX_PKCS7Sign(_session, data, sizeof(data), publicKey, &amp;signature, &amp;signatureSize, 0, NULL, 0, 0);</p><p>Здесь rv получается равен 18.<br />Подскажите, пожалуйста, что я делаю не так?</p><p>&gt; Пользователь авторизован.<br />&gt; если вместо вызова C_EX_PKCS7Sign использовать кусок кода из <a href="https://github.com/AktivCo/rutoken-demobank-ios/blob/062c16ca9a72c1dba2467f7a3ec541e842addf7c/Token.m#L385">https://github.com/AktivCo/rutoken-demo … ken.m#L385</a> с openssl, то все работает.</p>]]></content>
			<author>
				<name><![CDATA[SergeyRT]]></name>
				<uri>https://forum.rutoken.ru/user/11860/</uri>
			</author>
			<updated>2021-09-10T07:57:45Z</updated>
			<id>https://forum.rutoken.ru/post/15963/#p15963</id>
		</entry>
</feed>
