<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум Рутокен &mdash; Рутокен ЭЦП 3.0 вопросы по pkcs11]]></title>
		<link>https://forum.rutoken.ru/topic/4485/</link>
		<atom:link href="https://forum.rutoken.ru/feed/rss/topic/4485/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Рутокен ЭЦП 3.0 вопросы по pkcs11».]]></description>
		<lastBuildDate>Tue, 15 Oct 2024 08:43:02 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Рутокен ЭЦП 3.0 вопросы по pkcs11]]></title>
			<link>https://forum.rutoken.ru/post/26342/#p26342</link>
			<description><![CDATA[<p><strong>andydandy</strong>, Здравствуйте.</p><p><span class="bbu">Я правильно понимаю что Рутокен ЭЦП 3.0 поддерживает только 512, 1024, 2048, 4096 длины ключей?</span></p><p>Только RSA-1024, -2048 и -4096.</p><br /><p><span class="bbu">Можете сказать почему рутокен ожидает `oaepParams.source = 0;` в то время как например pkcs11-tool устанавливает `oaepParams.source = CKZ_DATA_SPECIFIED;` в аналогичной ситуации?<br />Где в стандарте или в каких-нибудь других поясняющих документах это описано?</span></p><p>Начиная с версии 2.16.1.0, rtpkcs11ecp (релиз ожидается в конце октября/начале ноября) будет принимать оба варианта значения поля source. В спецификации явно прописан смысл поля source только при ненулевых данных, но не указано, допустимо ли его выставление при нулевых данных.</p><p>Выставление данных для OAEP не поддерживается нами. Стек opensc, насколько нам известно, также не поддерживает такое. Чтобы наша библиотека стала более совместимой с реализацией вызовов из opensc, в следующей версии мы решили разрешить выставление данного флага, но при условии, что данные не будут передаваться.</p>]]></description>
			<author><![CDATA[null@example.com (Филиппов Никита)]]></author>
			<pubDate>Tue, 15 Oct 2024 08:43:02 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/26342/#p26342</guid>
		</item>
		<item>
			<title><![CDATA[Рутокен ЭЦП 3.0 вопросы по pkcs11]]></title>
			<link>https://forum.rutoken.ru/post/26336/#p26336</link>
			<description><![CDATA[<p>Привет, </p><p><strong>Есть П.О. на с++ которое: </strong><br />1. Получает сообщение зашифрованное открытым ключем 3072 бит (по алгоритму RSA с OAEP и SHA-1) и расшифровывает его закрытым ключем.<br />2. С помошью закрытого ключа, генерирует цифровую подпись (по алгоритму RSA PKCS#1 v1.5 и SHA-1).</p><p><strong>Задача: </strong><br />- Перенести выполнение описаных выше функций, на устройство Рутокен ЭЦП 3.0. Использовать библиотеку pkcs11.</p><p><strong>1.</strong> Загрузка закрытого ключа на рутокен:<br />&nbsp; &nbsp; Загружаю ключ с помошью `C_CreateObject`:<br />&nbsp; &nbsp; <br /></p><div class="codebox"><pre><code>    CK_RV rv = functionList-&gt;C_CreateObject(session,
                                            privateKeyTemplate,
                                            sizeof(privateKeyTemplate) / sizeof(CK_ATTRIBUTE),
                                            &amp;privateKeyHandle);</code></pre></div><p>&nbsp; &nbsp; <br /><strong>Мне не удалось загрузить ключ размером 3072 бит, но загрузились все остальные. </strong><br /><strong>Я правильно понимаю что Рутокен ЭЦП 3.0 поддерживает только 512, 1024, 2048, 4096 длины ключей? </strong></p><p><strong>2.</strong> Дешифровка сообщения RSA с OAEP и SHA-1:<br />&nbsp; &nbsp; Пытаюсь провести инициализацию:</p><div class="codebox"><pre><code>    CK_RSA_PKCS_OAEP_PARAMS oaepParams;
    oaepParams.hashAlg = CKM_SHA_1;
    oaepParams.mgf = CKG_MGF1_SHA1;
    oaepParams.source = CKZ_DATA_SPECIFIED;
    oaepParams.pSourceData = NULL;
    oaepParams.ulSourceDataLen = 0;

    CK_MECHANISM mechanism;
    mechanism.mechanism = CKM_RSA_PKCS_OAEP;
    mechanism.pParameter = &amp;oaepParams;
    mechanism.ulParameterLen = sizeof(oaepParams);
    
    CK_RV rv = functionList-&gt;C_DecryptInit(session, &amp;mechanism, privKeys[0]);</code></pre></div><p>&nbsp; &nbsp; В качестве референса я использовал код утилиты pkcs11-tool от OpenSC и описание стандарта PKCS#11 current mechanisms v2.40.<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; `C_DecryptInit` возвращал ошибку, пока я не заменил `oaepParams.source = CKZ_DATA_SPECIFIED;` на `oaepParams.source = 0;`<br />&nbsp; &nbsp; C `oaepParams.source = 0;` код работает и сообщение дешифруется.<br />&nbsp; &nbsp; <br /><strong>Можете сказать почему рутокен ожидает `oaepParams.source = 0;` в то время как например pkcs11-tool устанавливает `oaepParams.source = CKZ_DATA_SPECIFIED;` в аналогичной ситуации? </strong><br /><strong>Где в стандарте или в каких-нибудь других поясняющих документах это описано? </strong></p><p><strong>3.</strong> Цифровая подпись RSA PKCS#1 v1.5 и SHA-1:</p><div class="codebox"><pre><code>    CK_MECHANISM rsaSigVerMechWithSha1 = { CKM_SHA1_RSA_PKCS, NULL_PTR, 0 };
    CK_RV rv = functionList-&gt;C_SignInit(session, &amp;rsaSigVerMechWithSha1, objects[0]);</code></pre></div><p><em>Отработала без сюрпризов </em></p>]]></description>
			<author><![CDATA[null@example.com (andydandy)]]></author>
			<pubDate>Mon, 14 Oct 2024 17:53:21 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/26336/#p26336</guid>
		</item>
	</channel>
</rss>
