<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум Рутокен &mdash; Запись сертификата с закрытым ключем на Рутокен Lite]]></title>
	<link rel="self" href="https://forum.rutoken.ru/feed/atom/topic/2324/" />
	<updated>2015-11-06T11:07:05Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.rutoken.ru/topic/2324/</id>
		<entry>
			<title type="html"><![CDATA[Re: Запись сертификата с закрытым ключем на Рутокен Lite]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/9046/#p9046" />
			<content type="html"><![CDATA[<p>Спасибо что самостоятельно разобрались! :)</p>]]></content>
			<author>
				<name><![CDATA[Кирилл Мещеряков]]></name>
				<uri>https://forum.rutoken.ru/user/6786/</uri>
			</author>
			<updated>2015-11-06T11:07:05Z</updated>
			<id>https://forum.rutoken.ru/post/9046/#p9046</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запись сертификата с закрытым ключем на Рутокен Lite]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/9006/#p9006" />
			<content type="html"><![CDATA[<p>Может кому пригодится подсказка как на C# записать сертификат (X509Certificate2) на токен. На этом форуме я такого не нашел.</p><p>Создаем контейнер<br /></p><div class="codebox"><pre><code>CryptAcquireContext(ref hProv, null, &quot;Aktiv ruToken CSP v1.0&quot;, PROV_RSA_FULL, CRYPT_NEWKEYSET);</code></pre></div><p>Вытаскиваем закрытый ключ из нашего объекта certificate<br /></p><div class="codebox"><pre><code>RSACryptoServiceProvider key = (RSACryptoServiceProvider) certificate.PrivateKey;
byte[] privateKeyBinary = key.ExportCspBlob(true);</code></pre></div><p>Записываем его на токен<br /></p><div class="codebox"><pre><code>IntPtr hKey = IntPtr.Zero;
CryptImportKey(hProv, privateKeyBinary, (UInt32) privateKeyBinary.Length, IntPtr.Zero, 0, ref hKey);</code></pre></div><p>Потом привязываем к ЗК сертификат<br /></p><div class="codebox"><pre><code>CryptSetKeyParam(hKey, KP_CERTIFICATE, certificate.RawData, 0)</code></pre></div><p>И не забываем подчищать за собой<br /></p><div class="codebox"><pre><code>CryptDestroyKey(hKey);
CryptReleaseContext(hProv, 0);</code></pre></div><p>Всевозможные проверки, для наглядности тут не показал.</p><p>Узнать имя контейнера, после его создания можно вот таким образом<br /></p><div class="codebox"><pre><code>uint stringLength = 0;
if (CryptGetProvParam(hProv, PP_CONTAINER, null, ref stringLength, 0))
{
    StringBuilder name = new StringBuilder((int) (stringLength + 1));
    if (CryptGetProvParam(hProv, PP_CONTAINER, name, ref stringLength, 0))
    {
        return name.ToString();
    }
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexkhvlg]]></name>
				<uri>https://forum.rutoken.ru/user/9839/</uri>
			</author>
			<updated>2015-10-30T08:54:46Z</updated>
			<id>https://forum.rutoken.ru/post/9006/#p9006</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запись сертификата с закрытым ключем на Рутокен Lite]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/8990/#p8990" />
			<content type="html"><![CDATA[<p>Вообще, хочется повторить функцию утилиты certutil:<br />certutil -user -csp &quot;Aktiv ruToken CSP v1.0&quot; -importpfx pfx.pfx</p><p>Она делает так, что рутокен предлагает выбрать из нескольких носителей нужный.</p>]]></content>
			<author>
				<name><![CDATA[alexkhvlg]]></name>
				<uri>https://forum.rutoken.ru/user/9839/</uri>
			</author>
			<updated>2015-10-28T07:57:14Z</updated>
			<id>https://forum.rutoken.ru/post/8990/#p8990</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запись сертификата с закрытым ключем на Рутокен Lite]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/8989/#p8989" />
			<content type="html"><![CDATA[<p>В данный момент проблема с вызовом функции</p><p>IntPtr hProv = IntPtr.Zero;<br />string cspName = &quot;Aktiv ruToken CSP v1.0&quot;;<br />CryptAcquireContext(ref hProv, null, cspName, PROV_RSA_FULL, CRYPT_NEWKEYSET);</p><p>Она выдает ошибку<br />Набор ключей не определен (0x80090019)</p>]]></content>
			<author>
				<name><![CDATA[alexkhvlg]]></name>
				<uri>https://forum.rutoken.ru/user/9839/</uri>
			</author>
			<updated>2015-10-28T07:52:44Z</updated>
			<id>https://forum.rutoken.ru/post/8989/#p8989</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запись сертификата с закрытым ключем на Рутокен Lite]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/8987/#p8987" />
			<content type="html"><![CDATA[<p>Да это я видел. Но там закрытый ключ уже записан.</p>]]></content>
			<author>
				<name><![CDATA[alexkhvlg]]></name>
				<uri>https://forum.rutoken.ru/user/9839/</uri>
			</author>
			<updated>2015-10-28T05:36:03Z</updated>
			<id>https://forum.rutoken.ru/post/8987/#p8987</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запись сертификата с закрытым ключем на Рутокен Lite]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/8973/#p8973" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexkhvlg пишет:</cite><blockquote><p>Строгих зависимостей от интерфейса нет. Хотя чем выше по уровню интерфейс, тем лучше.<br />Пишется маленькая утилита для получения сертификатов из Службы сертификатов Active Directory и записи их на Рутокен Lite без участия пользователя, с занесением дополнительной информации в MS SQL.</p></blockquote></div><p>Смотрите пример для CryptoAPI в нашем SDK.<br />Должно подойти!</p>]]></content>
			<author>
				<name><![CDATA[Кирилл Мещеряков]]></name>
				<uri>https://forum.rutoken.ru/user/6786/</uri>
			</author>
			<updated>2015-10-27T09:22:46Z</updated>
			<id>https://forum.rutoken.ru/post/8973/#p8973</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запись сертификата с закрытым ключем на Рутокен Lite]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/8966/#p8966" />
			<content type="html"><![CDATA[<p>Строгих зависимостей от интерфейса нет. Хотя чем выше по уровню интерфейс, тем лучше.<br />Пишется маленькая утилита для получения сертификатов из Службы сертификатов Active Directory и записи их на Рутокен Lite без участия пользователя, с занесением дополнительной информации в MS SQL.</p>]]></content>
			<author>
				<name><![CDATA[alexkhvlg]]></name>
				<uri>https://forum.rutoken.ru/user/9839/</uri>
			</author>
			<updated>2015-10-27T01:19:01Z</updated>
			<id>https://forum.rutoken.ru/post/8966/#p8966</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запись сертификата с закрытым ключем на Рутокен Lite]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/8952/#p8952" />
			<content type="html"><![CDATA[<p>Здравствуйте.<br /></p><div class="quotebox"><cite>alexkhvlg пишет:</cite><blockquote><p>Подскажите пожалуйста, каким образом можно записать объект X509Certificate2 на Рутокен Lite ?<br />Может есть примеры на C++/C# ?</p></blockquote></div><p>Уточните, пожалуйста, через какой интерфейс необходимо записывать? Для чего будет применяться?</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.rutoken.ru/user/8822/</uri>
			</author>
			<updated>2015-10-26T10:29:47Z</updated>
			<id>https://forum.rutoken.ru/post/8952/#p8952</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Запись сертификата с закрытым ключем на Рутокен Lite]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/8951/#p8951" />
			<content type="html"><![CDATA[<p>Подскажите пожалуйста, каким образом можно записать объект X509Certificate2 на Рутокен Lite ?<br />Может есть примеры на C++/C# ?</p>]]></content>
			<author>
				<name><![CDATA[alexkhvlg]]></name>
				<uri>https://forum.rutoken.ru/user/9839/</uri>
			</author>
			<updated>2015-10-26T01:32:42Z</updated>
			<id>https://forum.rutoken.ru/post/8951/#p8951</id>
		</entry>
</feed>
