Прочитать на английском

Поделиться через


CngKey.Open Метод

Определение

Создает экземпляр класса CngKey, который представляет существующий ключ.

Перегрузки

Open(String)

Создает экземпляр класса CngKey, который представляет существующий именованный ключ.

Open(SafeNCryptKeyHandle, CngKeyHandleOpenOptions)

Создает экземпляр класса CngKey, используя дескриптор существующего ключа.

Open(String, CngProvider)

Создает экземпляр класса CngKey, который представляет существующий именованный ключ, используя заданного поставщика хранилища ключей (KSP).

Open(String, CngProvider, CngKeyOpenOptions)

Создает экземпляр класса CngKey, который представляет существующий именованный ключ, используя заданного поставщика хранилища ключей (KSP) и параметры открытия ключа.

Open(String)

Исходный код:
Cng.NotSupported.cs
Исходный код:
Cng.NotSupported.cs
Исходный код:
Cng.NotSupported.cs

Создает экземпляр класса CngKey, который представляет существующий именованный ключ.

public static System.Security.Cryptography.CngKey Open (string keyName);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static System.Security.Cryptography.CngKey Open (string keyName);

Параметры

keyName
String

Имя ключа.

Возвращаемое значение

Существующий ключ.

Атрибуты

Исключения

keyName имеет значение null.

Криптография следующего поколения (CNG) не поддерживается в этой системе.

Все остальные ошибки.

Комментарии

Эта перегрузка использует следующие значения по умолчанию:

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
Windows Desktop 3.0, 3.1, 5

Open(SafeNCryptKeyHandle, CngKeyHandleOpenOptions)

Исходный код:
Cng.NotSupported.cs
Исходный код:
Cng.NotSupported.cs
Исходный код:
Cng.NotSupported.cs

Создает экземпляр класса CngKey, используя дескриптор существующего ключа.

public static System.Security.Cryptography.CngKey Open (Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle keyHandle, System.Security.Cryptography.CngKeyHandleOpenOptions keyHandleOpenOptions);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static System.Security.Cryptography.CngKey Open (Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle keyHandle, System.Security.Cryptography.CngKeyHandleOpenOptions keyHandleOpenOptions);
[System.Security.SecurityCritical]
public static System.Security.Cryptography.CngKey Open (Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle keyHandle, System.Security.Cryptography.CngKeyHandleOpenOptions keyHandleOpenOptions);

Параметры

keyHandle
SafeNCryptKeyHandle

Дескриптор существующего ключа.

keyHandleOpenOptions
CngKeyHandleOpenOptions

Одно из значений перечисления, определяющее, представляет ли keyHandle эфемерный или именованный ключ.

Возвращаемое значение

Существующий ключ.

Атрибуты

Исключения

keyHandle имеет значение null.

keyHandle является недопустимым или имеет неверный формат либо уже закрыт. Это исключение также возникает в том случае, если ключ является эфемерным ключом, созданным средой CLR, но не задано значение EphemeralKey.

Криптография следующего поколения (CNG) не поддерживается в этой системе.

Все остальные ошибки.

Комментарии

Эта перегрузка позволяет опытным пользователям использовать классы CNG, даже если они используют вызов платформы или возможность управляемого взаимодействия C++. Например, если у вас есть собственная библиотека, которая возвращает ключ в виде NCRYPT_KEY_HANDLE, эта перегрузка позволяет создать управляемую оболочку вокруг ключа и использовать классы CNG для управления им.

При открытии ключа с помощью его дескриптора невозможно определить эфемерное состояние ключа и его необходимо указать самостоятельно. Некоторые CngKey свойства класса зависят от этого значения, чтобы быть правильным. Поэтому убедитесь, что вы передаете правильное значение флага в Open методы.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
Windows Desktop 3.0, 3.1, 5

Open(String, CngProvider)

Исходный код:
Cng.NotSupported.cs
Исходный код:
Cng.NotSupported.cs
Исходный код:
Cng.NotSupported.cs

Создает экземпляр класса CngKey, который представляет существующий именованный ключ, используя заданного поставщика хранилища ключей (KSP).

public static System.Security.Cryptography.CngKey Open (string keyName, System.Security.Cryptography.CngProvider provider);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static System.Security.Cryptography.CngKey Open (string keyName, System.Security.Cryptography.CngProvider provider);

Параметры

keyName
String

Имя ключа.

provider
CngProvider

Поставщик KSP, который содержит ключ.

Возвращаемое значение

Существующий ключ.

Атрибуты

Исключения

Параметр keyName или provider имеет значение null.

Криптография следующего поколения (CNG) не поддерживается в этой системе.

Все остальные ошибки.

Комментарии

В отличие от перегрузки Open(String) метода, эта перегрузка позволяет указать поставщика. Кроме того, создается значение None по умолчанию CngKeyOpenOptions и привязывается к ключу.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
Windows Desktop 3.0, 3.1, 5

Open(String, CngProvider, CngKeyOpenOptions)

Исходный код:
Cng.NotSupported.cs
Исходный код:
Cng.NotSupported.cs
Исходный код:
Cng.NotSupported.cs

Создает экземпляр класса CngKey, который представляет существующий именованный ключ, используя заданного поставщика хранилища ключей (KSP) и параметры открытия ключа.

public static System.Security.Cryptography.CngKey Open (string keyName, System.Security.Cryptography.CngProvider provider, System.Security.Cryptography.CngKeyOpenOptions openOptions);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static System.Security.Cryptography.CngKey Open (string keyName, System.Security.Cryptography.CngProvider provider, System.Security.Cryptography.CngKeyOpenOptions openOptions);
[System.Security.SecurityCritical]
public static System.Security.Cryptography.CngKey Open (string keyName, System.Security.Cryptography.CngProvider provider, System.Security.Cryptography.CngKeyOpenOptions openOptions);

Параметры

keyName
String

Имя ключа.

provider
CngProvider

Поставщик KSP, который содержит ключ.

openOptions
CngKeyOpenOptions

Побитовое сочетание значений перечисления, которые определяют параметры открытия ключа, например, расположение, из которого открывается ключ (компьютер или пользовательское хранилище), или отключение запросов пользовательского интерфейса.

Возвращаемое значение

Существующий ключ.

Атрибуты

Исключения

Параметр keyName или provider имеет значение null.

Криптография следующего поколения (CNG) не поддерживается в этой системе.

Все остальные ошибки.

Комментарии

В отличие от перегрузки Open(String) метода, эта перегрузка позволяет указать как поставщик, так и параметры открытия ключа.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
Windows Desktop 3.0, 3.1, 5