<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум Рутокен &mdash; "Сырая" подпись на Java]]></title>
		<link>https://forum.rutoken.ru/topic/3818/</link>
		<atom:link href="https://forum.rutoken.ru/feed/rss/topic/3818/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «"Сырая" подпись на Java».]]></description>
		<lastBuildDate>Mon, 09 Jan 2023 06:04:35 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: "Сырая" подпись на Java]]></title>
			<link>https://forum.rutoken.ru/post/19321/#p19321</link>
			<description><![CDATA[<p><strong>martin-wanderer</strong>, добрый день!</p><p>Перед вызовом C_Sign (или обертки Pkcs11Signer.sign) нужно посчитать хеш.</p><p>Как это сделать для RSA на Java есть пример:<br />sdk/java/samples/pkcs11/src/main/java/ru/rutoken/samples/PkiExtensionsRSA.java</p><br /><p>Константы для ГОСТ-алгоритмов есть в примере на Си: <br />sdk/pkcs11/samples/Standard/SigVerGOST34.10-2012-256/SigVerGOST34.10-2012-256.c</p>]]></description>
			<author><![CDATA[null@example.com (Павел Анфимов)]]></author>
			<pubDate>Mon, 09 Jan 2023 06:04:35 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/19321/#p19321</guid>
		</item>
		<item>
			<title><![CDATA["Сырая" подпись на Java]]></title>
			<link>https://forum.rutoken.ru/post/19317/#p19317</link>
			<description><![CDATA[<p>Добрый день. Пытаюсь подписать производльную строку с помощью приватного ключа на Рутокен ЭЦП 2.0<br />Успешно проходит подписание в примере CmsSignVerifyDetachedGOSTR3410_2012_256.java из SDK, однако там формируется CMS-подпись, тогда как мне нужна &quot;сырая&quot; (интегрирую Рутокены в существующую систему, где сервер принимает строку определенного формата и её сырую подпись).</p><p>Попытался напрямую вызвать Pkcs11Signer.sign вместо CmsOperations.signDetached, однако получаю ошибку &quot;C_Sign failed, error code: 0x21&quot; - предполагаю, что это CKR_DATA_LEN_RANGE<br />В то же время подпись проходит успешно, если передать в C_Sign массив длиной ровно 32 байта (такой же как у хэша в CmsOperations)<br /></p><div class="codebox"><pre><code>//          byte[] detachedCmsSignature = CmsOperations.signDetached(DATA_TO_SIGN, session.longValue(),
//                  signerPrivateKey.longValue(), SignAlgorithm.GOSTR3410_2012_256, signerCertificateHolder);

            byte[] detachedCmsSignature = new Pkcs11Signer(SignAlgorithm.GOSTR3410_2012_256, session.longValue(), signerPrivateKey.longValue()).sign(DATA_TO_SIGN);</code></pre></div><p>Также нашел тему &quot;Подпись данные Rutoken Plugin без сертификата&quot;, где автору тоже требуется сырая подпись, и упоминается метод rawSign плагина.</p><p>Подскажите пожалуйста, есть ли способ на Java сформировать &quot;сырую&quot; подпись произвольной строки данных (а не её хэша)?</p>]]></description>
			<author><![CDATA[null@example.com (martin-wanderer)]]></author>
			<pubDate>Sat, 07 Jan 2023 02:02:13 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/19317/#p19317</guid>
		</item>
	</channel>
</rss>
