<?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/1599/</link>
		<atom:link href="https://forum.rutoken.ru/feed/rss/topic/1599/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Java».]]></description>
		<lastBuildDate>Mon, 15 Sep 2014 11:08:45 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Java]]></title>
			<link>https://forum.rutoken.ru/post/7497/#p7497</link>
			<description><![CDATA[<p>Вы используете две разные библиотеки <br />здесь:<br /> String pkcs11Config = &quot;name=ruToken\nlibrary=/usr/lib/librtpkcs11ecp.so&quot;;<br />и здесь:<br />pkcs15-init --erase-card -p rutoken_ecp<br />pkcs15-init --create-pkcs15 --so-pin ((SO_PIN)) --so-puk &quot;&quot;<br />pkcs15-init --store-pin --label &quot;User PIN&quot; --auth-id 02 --pin ((PIN)) --puk &quot;&quot; --so-pin ((SO_PIN)) --finalize<br />pkcs11-tool --module /usr/lib64/opensc-pkcs11.so --keypairgen --key-type rsa:2048 --login -p ((PIN)) --label &quot;user&quot; --id ((ID))</p><p>Они несовместимы по форматам, поэтому вы ничего и не видите на токене.</p><p>Рекомендую Вам не делать ничего через pkcs15-init, это тоже самое что и форматирование, а форматировать токен можно через панельку в windows.<br />А утилите pkcs11-tool скармливайте librtpkcs11ecp.so.<br />Тогда у Вас должно всё завестись.</p>]]></description>
			<author><![CDATA[null@example.com (Кирилл Мещеряков)]]></author>
			<pubDate>Mon, 15 Sep 2014 11:08:45 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/7497/#p7497</guid>
		</item>
		<item>
			<title><![CDATA[Re: Java]]></title>
			<link>https://forum.rutoken.ru/post/7496/#p7496</link>
			<description><![CDATA[<p>Подниму старую тему. Ситуация абсолютно такая же.<br />Тестовый код<br /></p><div class="codebox"><pre><code>public class TestToken {
    public static void main(String[] args) throws Exception {

    String pkcs11Config = &quot;name=ruToken\nlibrary=/usr/lib/librtpkcs11ecp.so&quot;;
    ByteArrayInputStream configStream = new ByteArrayInputStream(pkcs11Config.getBytes());
    Provider pkcs11Provider = new SunPKCS11(configStream);
    Security.addProvider(pkcs11Provider);

    System.out.println(&quot;TestToken.main &quot; + pkcs11Provider.getName());

    String pass = &quot;...&quot;;
    KeyStore keyStore = KeyStore.getInstance(&quot;PKCS11&quot;);
    keyStore.load(null, pass.toCharArray());

    System.out.println(&quot;TestToken.main &quot; + keyStore.getType() + &quot; &quot; + keyStore.getProvider() + &quot;\nKey store size:&quot; + keyStore.size());

    Enumeration aliasesEnum = keyStore.aliases();
    while (aliasesEnum.hasMoreElements()) {
        String alias = (String) aliasesEnum.nextElement();
        System.out.println(&quot;alias: &quot; + alias);

        Certificate cert = keyStore.getCertificate(alias);
        System.out.println(&quot;cert: &quot; + cert);

        PrivateKey privateKey = (PrivateKey) keyStore.getKey(alias, null);
        System.out.println(&quot;privateKey: &quot; + privateKey);

        String doc = &quot;doc123&quot;;
        Signature signature = Signature.getInstance(&quot;SHA1withRSA&quot;);
        signature.initSign(privateKey);
        signature.update(doc.getBytes());
        byte[] bytes = signature.sign();
    }
    }
}</code></pre></div><p>Получаю:<br /></p><div class="codebox"><pre><code>TestToken.main SunPKCS11-ruToken
TestToken.main PKCS11 SunPKCS11-ruToken version 1.8
Key store size:0</code></pre></div><p>Пара ключей создавалась так:<br /></p><div class="codebox"><pre><code>pkcs15-init --erase-card -p rutoken_ecp

pkcs15-init --create-pkcs15 --so-pin ((SO_PIN)) --so-puk &quot;&quot;

pkcs15-init --store-pin --label &quot;User PIN&quot; --auth-id 02 --pin ((PIN)) --puk &quot;&quot; --so-pin ((SO_PIN)) --finalize

pkcs11-tool --module /usr/lib64/opensc-pkcs11.so --keypairgen --key-type rsa:2048 --login -p ((PIN)) --label &quot;user&quot; --id ((ID))</code></pre></div><p>pkcs11-tool корректно выдает список объектов:<br /></p><div class="codebox"><pre><code>user ~# pkcs11-tool --module /usr/lib64/opensc-pkcs11.so -Ol
Using slot 1 with a present token (0x1)
Logging in to &quot;Rutoken ECP (User PIN)&quot;.
Please enter User PIN: 
Private Key Object; RSA 
  label:      Certificate
  ID:         ...
  Usage:      decrypt, sign, unwrap
Public Key Object; RSA 2048 bits
  label:      label
  ID:         ...
  Usage:      encrypt, verify, wrap
Certificate Object, type = X.509 cert
  label:      Certificate
  ID:         ...</code></pre></div><p>Что я делаю не так? Почему Java не видит ничего на токене?<br />Конечный результат - хотелось бы провести провести шифрование/расшифровку с помощью токена на Java, через PKCS#11.&nbsp; Это возможно?</p>]]></description>
			<author><![CDATA[null@example.com (a.khusainov)]]></author>
			<pubDate>Mon, 15 Sep 2014 06:54:41 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/7496/#p7496</guid>
		</item>
		<item>
			<title><![CDATA[Re: Java]]></title>
			<link>https://forum.rutoken.ru/post/4042/#p4042</link>
			<description><![CDATA[<p>Уточните пожалуйста, каким способом сертификат был записан на Рутокен?</p>]]></description>
			<author><![CDATA[null@example.com (Vladimir Ivanov)]]></author>
			<pubDate>Wed, 14 Sep 2011 12:02:47 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/4042/#p4042</guid>
		</item>
		<item>
			<title><![CDATA[Re: Java]]></title>
			<link>https://forum.rutoken.ru/post/4033/#p4033</link>
			<description><![CDATA[<p>Методом научного тыка подобрал параметры инициализации, получился примерно такой код</p><p>&nbsp; &nbsp; &nbsp; &nbsp; String pkcs11config = &quot;name = ruToken\n&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + &quot;library = c:\\windows\\system32\\rtPKCS11.dll&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; ByteArrayInputStream configStream = new ByteArrayInputStream(pkcs11config.getBytes());<br />&nbsp; &nbsp; &nbsp; &nbsp; Provider pkcs11Provider = new sun.security.pkcs11.SunPKCS11(configStream);<br />&nbsp; &nbsp; &nbsp; &nbsp; Security.addProvider(pkcs11Provider);</p><p>&nbsp; &nbsp; &nbsp; &nbsp; char[] pin = {...};<br />&nbsp; &nbsp; &nbsp; &nbsp; KeyStore rtKeyStore = KeyStore.getInstance(&quot;PKCS11&quot;);<br />&nbsp; &nbsp; &nbsp; &nbsp; rtKeyStore.load(null, pin);</p><p>&nbsp; &nbsp; &nbsp; &nbsp; Enumeration aliasesEnum = rtKeyStore.aliases();<br />&nbsp; &nbsp; &nbsp; &nbsp; while (aliasesEnum.hasMoreElements()) {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String alias = (String) aliasesEnum.nextElement();<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println(&quot;Alias: &quot; + alias);<br />&nbsp; &nbsp; &nbsp; &nbsp; }</p><p>Проблема в том что rtKeyStore пуст, нет там aliases, и по заданному имени [rtKeyStore.getCertificate(&quot;KristaProof&quot;)] ничего не находит, хотя утилита rtCert сертификат видит.</p>]]></description>
			<author><![CDATA[null@example.com (Юрий)]]></author>
			<pubDate>Tue, 13 Sep 2011 10:17:16 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/4033/#p4033</guid>
		</item>
		<item>
			<title><![CDATA[Re: Java]]></title>
			<link>https://forum.rutoken.ru/post/4032/#p4032</link>
			<description><![CDATA[<div class="quotebox"><cite>Vladimir Ivanov пишет:</cite><blockquote><p>Да, работа с Рутокен из Java возможна через интерфейс PKCS#11, например. В Java имеется реализация такого класса.<br />Вот одна из реализаций апплета для подписи сообщений: <a href="http://www.developer.com/java/other/article.php/3587361/Java-Applet-for-Signing-with-a-Smart-Card.htm">http://www.developer.com/java/other/art … t-Card.htm</a></p></blockquote></div><p>Драйвер ruTiken с сайта скачал и установил.<br />Но ни файла конфигурации C:\smartcards\config\pkcs11.cfg, ни файла драйвера о котором говориться в приведенном примере (c:\windows\system32\pkcs201n.dll) у меня нет.<br />Соответственно вопрос, какие параметры нужно указывать для получения провайдера, который может обращаться к ruToken.<br />P.S. ОС: Win7 x32</p>]]></description>
			<author><![CDATA[null@example.com (Юрий)]]></author>
			<pubDate>Tue, 13 Sep 2011 08:58:31 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/4032/#p4032</guid>
		</item>
		<item>
			<title><![CDATA[Re: Java]]></title>
			<link>https://forum.rutoken.ru/post/4025/#p4025</link>
			<description><![CDATA[<p>Да, работа с Рутокен из Java возможна через интерфейс PKCS#11, например. В Java имеется реализация такого класса.<br />Вот одна из реализаций апплета для подписи сообщений: <a href="http://www.developer.com/java/other/article.php/3587361/Java-Applet-for-Signing-with-a-Smart-Card.htm">http://www.developer.com/java/other/art … t-Card.htm</a></p>]]></description>
			<author><![CDATA[null@example.com (Vladimir Ivanov)]]></author>
			<pubDate>Fri, 09 Sep 2011 15:20:35 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/4025/#p4025</guid>
		</item>
		<item>
			<title><![CDATA[Java]]></title>
			<link>https://forum.rutoken.ru/post/4015/#p4015</link>
			<description><![CDATA[<p>Нужно из Java работать с ruToken.<br />Возможно ли такое?<br />Если возможно, то хотелось бы увидеть примерчик подписания потока (набора байт) через ruToken?</p>]]></description>
			<author><![CDATA[null@example.com (Юрий)]]></author>
			<pubDate>Fri, 09 Sep 2011 10:59:42 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/4015/#p4015</guid>
		</item>
	</channel>
</rss>
