<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум Рутокен &mdash; Поиск закрытого ключа и сертификата на токене]]></title>
	<link rel="self" href="https://forum.rutoken.ru/feed/atom/topic/3317/" />
	<updated>2021-02-03T12:49:52Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.rutoken.ru/topic/3317/</id>
		<entry>
			<title type="html"><![CDATA[Re: Поиск закрытого ключа и сертификата на токене]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/15272/#p15272" />
			<content type="html"><![CDATA[<p>Судя по присланному нам на почту скриншоту, на Рутокене контейнер КриптоПро CSP.<br />Работа с такими ключами должна производиться через <a href="https://www.cryptopro.ru/products/net/downloads/">API КриптоПро</a>.<br />Здесь вы можете найти <a href="https://cpdn.cryptopro.ru/content/cpnet/html/df69722e-0dc6-4e57-942e-33ffb39bf8cd.htm">список примеров</a>.</p><p>Работа через PKCS#11 возможна с неизвлекаемыми ключами, созданными через библиотеку rtpkcsecp или, например, на нашем портале <a href="http://ra.rutoken.ru">ra.rutoken.ru</a>.</p>]]></content>
			<author>
				<name><![CDATA[Ксения Шаврова]]></name>
				<uri>https://forum.rutoken.ru/user/8982/</uri>
			</author>
			<updated>2021-02-03T12:49:52Z</updated>
			<id>https://forum.rutoken.ru/post/15272/#p15272</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Поиск закрытого ключа и сертификата на токене]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/15270/#p15270" />
			<content type="html"><![CDATA[<p>Здравствуйте, mrgoldtony.</p><p>Приложите, пожалуйста, скриншот &quot;Панели управления Рутокен&quot; - вкладка &quot;Сертификаты&quot; тут или пришлите нам на почту службы технической поддержки - <a href="mailto:hotline@rutoken.ru">hotline@rutoken.ru</a></p>]]></content>
			<author>
				<name><![CDATA[Ксения Шаврова]]></name>
				<uri>https://forum.rutoken.ru/user/8982/</uri>
			</author>
			<updated>2021-02-03T10:40:21Z</updated>
			<id>https://forum.rutoken.ru/post/15270/#p15270</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Поиск закрытого ключа и сертификата на токене]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/15269/#p15269" />
			<content type="html"><![CDATA[<p>Добрый день. При работе с токеном, получаю слот и успешно логинюсь. При поиске закрытого ключа и сертификата, ничего не находит, как можно локализовать проблему? Может что-то в реализации? Во время использовании Панели управления Рутокен пишет, что есть сертификат с ключами. Использую следующую реализацию: </p><div class="codebox"><pre><code>                using (var pkcs11 = new Pkcs11(Settings.RutokenEcpDllDefaultPath, AppType.MultiThreaded))
                {
                    // Получить доступный слот
                    Console.WriteLine(&quot;Checking tokens available&quot;);
                    Slot slot = GetUsableSlot(pkcs11);


                    List&lt;CKM&gt; mechanisms = slot.GetMechanismList();

                    foreach (var item in mechanisms)
                    {
                        Console.WriteLine(item);
                    }

                    using (Session session = slot.OpenSession(SessionType.ReadWrite))
                    {
                        // Выполнить аутентификацию Пользователя
                        Console.WriteLine(&quot;User authentication&quot;);
                        session.Login(CKU.CKU_USER, &quot;123456&quot;);

                        try
                        {
                            // Поиск закрытого ключа на токене
                            Console.WriteLine(&quot; Getting private key...&quot;);
                            List&lt;ObjectHandle&gt; privateKeys = session.FindAllObjects(PrivateKeyAttributes);

                            // Поиск сертификата на токене
                            Console.WriteLine(&quot; Getting certificate...&quot;);
                            List&lt;ObjectHandle&gt; certificates = session.FindAllObjects(CertificateAttributes);

                            // Подпись данных
                            byte[] signature = session.PKCS7Sign(file, certificates[0], privateKeys[0], null, SampleConstants.UseHardwareHash);
                            File.WriteAllBytes(FilePath + &quot;test.pdf.sig&quot;, signature);

                        }
                        finally
                        {
                            session.Logout();
                        }
                    }
                }

        // Шаблон для поиска закрытого ключа ГОСТ Р 34.10-2001
        static readonly List&lt;ObjectAttribute&gt; PrivateKeyAttributes = new List&lt;ObjectAttribute&gt;
        {
            // Объект закрытого ключа
            new ObjectAttribute(CKA.CKA_CLASS, CKO.CKO_PRIVATE_KEY),
            // Закрытый ключ является объектом токена
            new ObjectAttribute(CKA.CKA_TOKEN, true),
            // Идентификатор искомой пары
            new ObjectAttribute(CKA.CKA_ID, SampleConstants.GostKeyPairId1),
       };

        // Шаблон для поиска сертификата ключа подписи
        static readonly List&lt;ObjectAttribute&gt; CertificateAttributes = new List&lt;ObjectAttribute&gt;
        {
            // Объект сертификата
            new ObjectAttribute(CKA.CKA_CLASS, CKO.CKO_CERTIFICATE),
            // Сертификат является объектом токена
            new ObjectAttribute(CKA.CKA_TOKEN, true),
            // Идентификатор сертификата
            new ObjectAttribute(CKA.CKA_ID, SampleConstants.GostKeyPairId1),
            // Тип сертификата - X.509
            new ObjectAttribute(CKA.CKA_CERTIFICATE_TYPE, CKC.CKC_X_509),
            // Категория сертификата - пользовательский
            new ObjectAttribute(CKA.CKA_CERTIFICATE_CATEGORY, SampleConstants.TokenUserCertificate)
        };</code></pre></div><p>При запросе механизмов получаю это (<br />CKM_RSA_PKCS_KEY_PAIR_GEN<br />CKM_RSA_PKCS<br />CKM_RSA_X_509<br />CKM_RSA_PKCS_OAEP<br />CKM_MD5<br />CKM_SHA_1<br />CKM_SHA224<br />CKM_SHA256<br />CKM_SHA384<br />CKM_SHA512<br />CKM_GOSTR3410_KEY_PAIR_GEN<br />CKM_GOSTR3410<br />CKM_GOSTR3410_DERIVE<br />CKM_GOSTR3411<br />CKM_GOST28147_KEY_WRAP<br />CKM_GOST28147_ECB<br />CKM_GOST28147<br />CKM_GOST28147_KEY_GEN<br />CKM_GOST28147_MAC<br />CKM_GOSTR3411_HMAC)</p>]]></content>
			<author>
				<name><![CDATA[mrgoldtony]]></name>
				<uri>https://forum.rutoken.ru/user/11650/</uri>
			</author>
			<updated>2021-02-03T10:22:32Z</updated>
			<id>https://forum.rutoken.ru/post/15269/#p15269</id>
		</entry>
</feed>
