Получает информацию о CSP CspKeyContainerInfo, в котором хранится ключевая пара.

Пространство имен:  CryptoPro.Sharpei
Сборка:  CryptoPro.Sharpei.Base (в CryptoPro.Sharpei.Base.dll)

Синтаксис

Visual Basic
<ComVisibleAttribute(False)> _
Public ReadOnly Property CspKeyContainerInfo As CspKeyContainerInfo
	Get
C#
[ComVisibleAttribute(false)]
public CspKeyContainerInfo CspKeyContainerInfo { get; }
Visual C++
[ComVisibleAttribute(false)]
public:
virtual property CspKeyContainerInfo^ CspKeyContainerInfo {
	CspKeyContainerInfo^ get () sealed;
}
JavaScript
function get_cspKeyContainerInfo();

Реализации

ICspAsymmetricAlgorithmCspKeyContainerInfo()()()()

Примеры

Пример вызова свойства CspKeyContainerInfo.
Visual Basic Copy imageCopy Code
' Copyright (C) 2006-2012 Крипто-Про. Все права защищены.
'
' Этот файл содержит информацию, являющуюся
' собственностью компании Крипто Про.
' 
' Любая часть этого файла не может быть скопирована,
' исправлена, переведена на другие языки,
' локализована или модифицирована любым способом,
' откомпилирована, передана по сети с или на
' любую компьютерную систему без предварительного
' заключения соглашения с компанией Крипто Про.
' 
' Программный код, содержащийся в этом файле, предназначен
' исключительно для целей обучения и не может быть использован
' для защиты информации.
' 
' Компания Крипто-Про не несет никакой
' ответственности за функционирование этого кода.

Imports System
Imports System.Security.Cryptography
Imports CryptoPro.Sharpei

Class PersistKeyInCspSample
    Shared Sub Main()

        Dim KeyContainerName As String = "MyKeyContainer"

        'Создаем ключ и помещаем его в контейнер.  
        GostPersistKeyInCSP(KeyContainerName)

        'Удаляем ключ из контейнера.
        GostDeleteKeyInCSP(KeyContainerName)
    End Sub

    Shared Sub GostPersistKeyInCSP(ByVal ContainerName As String)
        Try

            ' Создаем новые CspParameters.  
            Dim cspParams As CspParameters = New CspParameters()

            ' Устанавливаем имя контейнера ключа.
            cspParams.KeyContainerName = ContainerName
            ' Устанавливаем тип CSP - ГОСТ-овый.
            cspParams.ProviderType = 75

            ' Создаем новый Gost3410CryptoServiceProvider, чтобы сгенерировать
            ' ключевую пару. 
            ' Свойство PersistKeyInCsp по умолчанию имеет значение true
            Dim gost As Gost3410CryptoServiceProvider = New Gost3410CryptoServiceProvider(cspParams)

            Console.WriteLine("Ключ помещен в контейнер {0}", ContainerName)

        Catch e As CryptographicException
            Console.WriteLine(e.Message)
        End Try
    End Sub

    Shared Sub GostDeleteKeyInCSP(ByVal ContainerName As String)

        Try

            ' Создаем новые CspParameters. 
            Dim cspParams As CspParameters = New CspParameters()

            ' Устанавливаем имя контейнера ключа.
            cspParams.KeyContainerName = ContainerName
            ' Устанавливаем тип CSP - ГОСТ-овый.
            cspParams.ProviderType = 75

            ' Создаем новый Gost3410CryptoServiceProvider, чтобы получить доступ к
            ' ключу в контейнере.
            Dim gost As Gost3410CryptoServiceProvider = _
                  New Gost3410CryptoServiceProvider(cspParams)

            ' Меняен значение свойства PersistKeyInCsp на false
            ' чтобы иметь возможность удалить ключ из контейнера.
            gost.PersistKeyInCsp = False

            ' Clear освобождает ресурсы и удаляет ключ из контейнера.
            gost.Clear()

            Console.WriteLine("Ключ удален из контейнера {0}", ContainerName)

        Catch e As CryptographicException
            Console.WriteLine(e.Message)
        End Try

    End Sub
End Class
C# Copy imageCopy Code
// Copyright (C) 2006-2012 Крипто-Про. Все права защищены.
//
// Этот файл содержит информацию, являющуюся
// собственностью компании Крипто-Про.
// 
// Любая часть этого файла не может быть скопирована,
// исправлена, переведена на другие языки,
// локализована или модифицирована любым способом,
// откомпилирована, передана по сети с или на
// любую компьютерную систему без предварительного
// заключения соглашения с компанией Крипто-Про.
// 
// Программный код, содержащийся в этом файле, предназначен
// исключительно для целей обучения и не может быть использован
// для защиты информации.
// 
// Компания Крипто-Про не несет никакой
// ответственности за функционирование этого кода.

// Пример работы с контейнером закрытого ключа.
//
// Данный пример:
// 1. Создает контейнер закрытого ключа с именем "MyKeyContainer"
// для ГОСТ-ового криптопровайдера.
// 2. Удаляет ключ из контейнера.

using System;
using System.Text;
using System.Security.Cryptography;

using CryptoPro.Sharpei;

namespace Samples.MySamples
{
    class PersistKeyInCspSample
    {
        static void Main()
        {

            string KeyContainerName = "MyKeyContainer";

            //Создаем ключ и помещаем его в контейнер.  
            GostPersistKeyInCSP(KeyContainerName);

            //Удаляем ключ из контейнера.
            GostDeleteKeyInCSP(KeyContainerName);
        }

        static void GostPersistKeyInCSP(string ContainerName)
        {
            try
            {
                // Создаем новые CspParameters.  
                CspParameters cspParams = new CspParameters();

                // Устанавливаем имя контейнера ключа.
                cspParams.KeyContainerName = ContainerName;
                // Устанавливаем тип CSP - ГОСТ-овый.
                cspParams.ProviderType = 75;

                //Создаем новый Gost3410CryptoServiceProvider, чтобы сгенерировать
                //ключевую пару. 
                //Свойство PersistKeyInCsp по умолчанию имеет значение true
                Gost3410CryptoServiceProvider gost = new Gost3410CryptoServiceProvider(cspParams);

                Console.WriteLine("Ключ помещен в контейнер \"{0}\".", ContainerName);
            }
            catch (CryptographicException e)
            {
                Console.WriteLine(e.Message);
            }
        }

        static void GostDeleteKeyInCSP(string ContainerName)
        {
            try
            {
                // Создаем новые CspParameters. 
                CspParameters cspParams = new CspParameters();

                // Устанавливаем имя контейнера ключа.
                cspParams.KeyContainerName = ContainerName;
                // Устанавливаем тип CSP - ГОСТ-овый.
                cspParams.ProviderType = 75;

                //Создаем новый Gost3410CryptoServiceProvider, чтобы получить доступ к
                //ключу в контейнере.
                Gost3410CryptoServiceProvider gost = new Gost3410CryptoServiceProvider(cspParams);

                //Меняен значение свойства PersistKeyInCsp на false
                //чтобы иметь возможность удалить ключ из контейнера.
                gost.PersistKeyInCsp = false;

                //Clear освобождает ресурсы и удаляет ключ из контейнера.
                gost.Clear();

                Console.WriteLine("Ключ удален из контейнера \"{0}\".", ContainerName);
            }
            catch (CryptographicException e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}

Разрешения

РазрешениеОписание
KeyContainerPermissionДля открытия существующего контейнера. Связанные перечисления: Open. Действия по обеспечению безопасности: Demand .
KeyContainerPermissionДля создания контейнера с заданным (не случаыным именем). Связанные перечисления: Create. Действия по обеспечению безопасности: Demand .

Версии CSP:

КриптоПро CSP 2.0, КриптоПро CSP 3.0, КриптоПро CSP 3.6

См. также: