<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум Рутокен &mdash; "Сырая" подпись на Java]]></title>
	<link rel="self" href="https://forum.rutoken.ru/feed/atom/topic/3818/" />
	<updated>2023-01-09T06:04:35Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.rutoken.ru/topic/3818/</id>
		<entry>
			<title type="html"><![CDATA[Re: "Сырая" подпись на Java]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/19321/#p19321" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Павел Анфимов]]></name>
				<uri>https://forum.rutoken.ru/user/7338/</uri>
			</author>
			<updated>2023-01-09T06:04:35Z</updated>
			<id>https://forum.rutoken.ru/post/19321/#p19321</id>
		</entry>
		<entry>
			<title type="html"><![CDATA["Сырая" подпись на Java]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/19317/#p19317" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[martin-wanderer]]></name>
				<uri>https://forum.rutoken.ru/user/13037/</uri>
			</author>
			<updated>2023-01-07T02:02:13Z</updated>
			<id>https://forum.rutoken.ru/post/19317/#p19317</id>
		</entry>
</feed>
