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


Идентификаторы свойств хранилища ключей

Следующие значения используются для идентификации свойства хранилища ключей.

Идентификаторы

NCRYPT_ALGORITHM_GROUP_PROPERTY

L"Algorithm Group"

Строка Юникода, завершающаяся null, которая содержит имя группы алгоритмов объекта. Это свойство применяется только к ключам. Поставщик хранилища ключей Майкрософт возвращает следующие идентификаторы.

Идентификатор Значение Описание
NCRYPT_RSA_ALGORITHM_GROUP "RSA" Группа алгоритмов RSA.
NCRYPT_DH_ALGORITHM_GROUP "DH" Группа алгоритмов Diffie-Hellman.
NCRYPT_DSA_ALGORITHM_GROUP "DSA" Группа алгоритмов DSA.
NCRYPT_ECDSA_ALGORITHM_GROUP "ECDSA" Группа алгоритмов DSA с эллиптической кривой.
NCRYPT_ECDH_ALGORITHM_GROUP "ECDH" Эллиптическая кривая Diffie-Hellman группы алгоритмов.

NCRYPT_ALGORITHM_PROPERTY

L"Algorithm Name"

Строка Юникода, заканчивающаяся null, которая содержит имя алгоритма объекта. Это может быть один из предопределенных идентификаторов алгоритма CNG или другой зарегистрированный идентификатор алгоритма. Это свойство применяется только к ключам.

NCRYPT_ASSOCIATED_ECDH_KEY

L"SmartCardAssociatedECDHKey"

Значение LPWSTR , указывающее имя контейнера ключа Diffie-Hellman эллиптических кривых (ECDH), используемого во время входа в заданный дескриптор для ключа ECDSA . Если на карте нет ключей ECDH, поставщик хранилища ключей (KSP) возвращает .NTE_NOT_FOUND Это свойство применяется к ключам ECDSA для входа с помощью смарт-карт. Свойство поддерживается поставщиком хранилища ключей Microsoft Smart Card, а не поставщиком хранилища ключей Программного обеспечения Майкрософт.

Windows Server 2008 и Windows Vista: Это значение не поддерживается.

NCRYPT_BLOCK_LENGTH_PROPERTY

L"Block Length"

Значение DWORD, содержащее длину (в байтах) блока шифрования. Это свойство применяется только к ключам, поддерживающим шифрование.

NCRYPT_CERTIFICATE_PROPERTY

L"SmartCardKeyCertificate"

Большой двоичный объект, содержащий сертификат X.509, связанный с ключом.

Windows Server 2008 R2, Windows 7, Windows Server 2008 и Windows Vista:Большой двоичный объект, содержащий сертификат ключа смарт-карты. Это свойство не поддерживается поставщиком хранилища ключей программного обеспечения Майкрософт.

NCRYPT_DH_PARAMETERS_PROPERTY

L"DHParameters"

Указывает параметры, используемые с ключом Diffie-Hellman. Этот тип данных является указателем на структуру BCRYPT_DH_PARAMETER_HEADER . Это свойство можно задать только и должно быть задано для ключа до его завершения.

NCRYPT_EXPORT_POLICY_PROPERTY

L"Export Policy"

DWORD, содержащий набор флагов, определяющих политику экспорта для сохраненного ключа. Это свойство применяется только к ключам. Он может содержать ноль или сочетание одного или нескольких из следующих значений.

Идентификатор Значение Описание
NCRYPT_ALLOW_EXPORT_FLAG 0x00000001 Закрытый ключ можно экспортировать.
NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG 0x00000002 Закрытый ключ можно экспортировать в виде открытого текста.
NCRYPT_ALLOW_ARCHIVING_FLAG 0x00000004 Закрытый ключ можно экспортировать один раз для архивации. Этот флаг применяется только к исходному дескриптотору ключа, для которого он установлен. Эта политика может применяться только к исходному дескриптору ключа. После закрытия дескриптора ключа невозможно экспортировать ключ в целях архивации.
NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG 0x00000008 Закрытый ключ можно экспортировать один раз в виде открытого текста для архивации. Этот флаг применяется только к исходному дескриптотору ключа, для которого он установлен. Эта политика может применяться только к исходному дескриптору ключа. После закрытия дескриптора ключа невозможно экспортировать ключ в целях архивации.

NCRYPT_IMPL_TYPE_PROPERTY

L"Impl Type"

DWORD, содержащий набор флагов, определяющих сведения о реализации поставщика. Это свойство применяется только к поставщикам хранилища ключей. Он может содержать ноль или сочетание одного или нескольких из следующих значений.

Идентификатор Значение Описание
NCRYPT_IMPL_HARDWARE_FLAG 0x00000001 Поставщик основан на оборудовании.
NCRYPT_IMPL_SOFTWARE_FLAG 0x00000002 Поставщик основан на программном обеспечении.
NCRYPT_IMPL_REMOVABLE_FLAG 0x00000008 Поставщик является съемным.
NCRYPT_IMPL_HARDWARE_RNG_FLAG 0x00000010 Поставщик — это аппаратный генератор случайных чисел.

NCRYPT_KEY_TYPE_PROPERTY

L"Key Type"

DWORD, содержащий набор флагов, определяющих тип ключа. Это свойство применяется только к ключам. Он может содержать ноль или следующее значение.

Идентификатор Значение Описание
NCRYPT_MACHINE_KEY_FLAG 0x00000020 Ключ применяется к локальному компьютеру. Если этот флаг отсутствует, ключ применяется к текущему пользователю.

NCRYPT_KEY_USAGE_PROPERTY

L"Key Usage"

DWORD, содержащий набор флагов, определяющих сведения об использовании ключа. Это свойство применяется только к ключам. Он может содержать ноль или сочетание одного или нескольких из следующих значений.

Идентификатор Значение Описание
NCRYPT_ALLOW_DECRYPT_FLAG 0x00000001 Ключ можно использовать для расшифровки.
NCRYPT_ALLOW_SIGNING_FLAG 0x00000002 Ключ можно использовать для подписывания.
NCRYPT_ALLOW_KEY_AGREEMENT_FLAG 0x00000004 Ключ можно использовать для шифрования секретного соглашения.
NCRYPT_ALLOW_ALL_USAGES 0x00ffffff Ключ можно использовать для любых целей.

NCRYPT_LAST_MODIFIED_PROPERTY

L"Modified"

Указывает, когда ключ был изменен в последний раз. Этот тип данных является указателем на структуру FILETIME . Это свойство применяется только к сохраненным ключам.

NCRYPT_LENGTH_PROPERTY

L"Length"

DWORD, содержащий длину ключа в битах. Это свойство применяется только к ключам.

NCRYPT_LENGTHS_PROPERTY

L"Lengths"

Указывает размеры ключей, поддерживаемые ключом. Этот тип данных является указателем на структуру NCRYPT_SUPPORTED_LENGTHS , содержащую эти сведения. Это свойство применяется только к ключам.

NCRYPT_MAX_NAME_LENGTH_PROPERTY

L"Max Name Length"

DWORD, содержащий максимальную длину (в символах) имени постоянного ключа. Это свойство применяется только к поставщику.

Это свойство в первую очередь предназначено для использования поставщиками хранилища ключей, которые хранят свои ключи на устройстве с ограниченным объемом доступной памяти, например на смарт-карте.

NCRYPT_NAME_PROPERTY

L"Name"

Указатель на строку Юникода, завершающуюся null, которая содержит имя объекта .

NCRYPT_PIN_PROMPT_PROPERTY

L"SmartCardPinPrompt"

Это значение не поддерживается.

NCRYPT_PIN_PROPERTY

L"SmartCardPin"

Указатель на строку Юникода, завершающуюся значением NULL, которая содержит ПИН-код. ПИН-код используется для ключа смарт-карты или пароля для ключа, защищенного паролем, хранящегося в программном поставщике служб KSP. Это свойство можно задать только. Microsoft KSP кэширует это значение, чтобы пользователь запрашивал только один раз для каждого процесса.

NCRYPT_PROVIDER_HANDLE_PROPERTY

L"Provider Handle"

NCRYPT_PROV_HANDLE, содержащий дескриптор поставщика хранилища ключей CNG. Завершив использование дескриптора, необходимо вызвать NCryptFreeObject , чтобы освободить его.

NCRYPT_READER_PROPERTY

L"SmartCardReader"

Указатель на строку Юникода, завершающуюся null, которая содержит имя устройства чтения смарт-карт. Это свойство можно задать только.

NCRYPT_ROOT_CERTSTORE_PROPERTY

L"SmartcardRootCertStore"

HCERTSTORE, представляющий корневое хранилище сертификатов смарт-карт.

NCRYPT_SCARD_PIN_ID

L"SmartCardPinId"

Указатель на значение, связанное PIN_ID с заданным криптографическим ключом на смарт-карте. Это свойство доступно только для чтения. Тип PIN_ID данных определяется в Cardmod.h.

Windows Server 2008 и Windows Vista: Это значение не поддерживается.

NCRYPT_SCARD_PIN_INFO

L"SmartCardPinInfo"

Указатель на PIN_INFO структуру ПИН-кода, связанного с заданным криптографическим ключом на смарт-карте. Вызывающий объект предоставляет дескриптор ключа. Это свойство доступно только для чтения. Структура PIN_INFO определена в Cardmod.h.

Windows Server 2008 и Windows Vista: Это значение не поддерживается.

NCRYPT_SECURE_PIN_PROPERTY

L"SmartCardSecurePin"

Указатель на строку Юникода, завершающуюся значением NULL, которая содержит ПИН-код сеанса смарт-карты. Это свойство можно задать только.

Windows Vista: Это свойство не поддерживается.

NCRYPT_SECURITY_DESCR_PROPERTY

L"Security Descr"

Указатель на структуру SECURITY_DESCRIPTOR , содержащую сведения об управлении доступом к ключу. Это свойство применяется только к постоянным ключам. Параметр dwFlags функции NCryptGetProperty или NCryptSetProperty определяет часть дескриптора безопасности для получения или задания.

NCRYPT_SECURITY_DESCR_SUPPORT_PROPERTY

L"Security Descr Support"

Указывает, поддерживает ли поставщик дескрипторы безопасности для ключей. Это свойство является DWORD , содержащим 1, если поставщик поддерживает дескрипторы безопасности для ключей. Если это свойство содержит любое другое значение или функция NCryptGetProperty возвращает NTE_NOT_SUPPORTED, то поставщик не поддерживает дескрипторы безопасности для ключей. Это свойство применяется только к поставщикам.

NCRYPT_SMARTCARD_GUID_PROPERTY

L"SmartCardGuid"

Большой двоичный объект, содержащий идентификатор смарт-карты.

NCRYPT_UI_POLICY_PROPERTY

L"UI Policy"

При использовании с функцией NCryptSetProperty или NCryptGetProperty это указатель на структуру NCRYPT_UI_POLICY , которая содержит политику пользовательского интерфейса строгого ключа для ключа. Это свойство применяется только к постоянным ключам. Это свойство можно задать только при создании ключа. После вызова функции NCryptFinalizeKey для этого ключа это свойство становится доступным только для чтения.

Поставщик хранилища ключей может получить этот параметр с помощью функции обратного вызова NCryptSetPropertyFn . Значение параметра — это NCRYPT_UI_POLICY_BLOB структура, содержащая те же сведения. Аналогичным образом, когда приложение отправляет поставщику запрос через NCryptSetPropertyFn на возврат этого свойства, поставщик должен вернуть структуру NCRYPT_UI_POLICY_BLOB .

NCRYPT_UNIQUE_NAME_PROPERTY

L"Unique Name"

Указатель на строку Юникода, завершающуюся значением NULL, которая содержит уникальное имя объекта. Это альтернативное имя, которое можно использовать при доступе к ключу. Это свойство используется, если считается, что имя ключа, первоначально переданное в NCryptCreatePersistedKey , недостаточно уникально для надежной идентификации сохраненного ключа. Поставщик хранилища ключей Майкрософт вернет имя файла ключа в качестве этого свойства.

NCRYPT_USE_CONTEXT_PROPERTY

L"Use Context"

Указатель на строку Юникода, завершающуюся значением NULL, которая описывает контекст операции. Это свойство не является постоянным и может быть задано для поставщика или ключа. Ключ не имеет доступа к свойству NCRYPT_USE_CONTEXT_PROPERTY поставщика, так как свойство относится только к дескриптору, для который он задан.

Примером использования этого свойства в контексте поставщика является поставщик хранилища ключей, который должен запрашивать пользователя во время вызова NCryptOpenKey (например, "Вставьте смарт-карту в средство чтения". Так как дескриптор ключа недоступен до тех пор, пока не будет возвращен ключ NCryptOpenKey , приложение должно задать это свойство для дескриптора поставщика перед вызовом NCryptOpenKey.

Примером, в котором это свойство будет использоваться в контексте дескриптора ключа, является поставщик хранилища ключей, который должен запрашивать пользователя во время операции с использованием ключа (например, "Это приложение должно использовать этот ключ для подписания документа".) Затем поставщик может передать эти сведения о контексте пользователю в любом пользовательском интерфейсе, отображаемом во время операции.

NCRYPT_USE_COUNT_ENABLED_PROPERTY

L"Enabled Use Count"

Указывает, поддерживает ли поставщик подсчет использования для ключей. Это свойство является параметром DWORD , содержащим значение 1, если поставщик поддерживает подсчет использования ключей. Если это свойство содержит любое другое значение или функция NCryptGetProperty возвращает NTE_NOT_SUPPORTEDзначение , то поставщик не поддерживает подсчет использования для ключей. Это свойство применяется только к поставщикам.

NCRYPT_USE_COUNT_PROPERTY

L"Use Count"

Переменная ULARGE_INTEGER, содержащая количество операций, выполненных указанным закрытым ключом. Это свойство является необязательным и может поддерживаться не всеми поставщиками. Поставщики, поддерживающие это свойство в ключах, также должны поддерживать NCRYPT_USE_COUNT_ENABLED_PROPERTY свойство в дескрипторе поставщика. Поставщик хранилища ключей Майкрософт не поддерживает это свойство. Это свойство применяется только к постоянным ключам.

NCRYPT_USER_CERTSTORE_PROPERTY

L"SmartCardUserCertStore"

HCERTSTORE, представляющий хранилище сертификатов пользователя смарт-карты.

NCRYPT_VERSION_PROPERTY

L"Version"

DWORD, содержащий версию программного обеспечения поставщика. Высокое слово содержит основную версию, а нижнее — дополнительный вариант. Например, 0x00030033 = 3.51. Это свойство применяется только к поставщикам.

NCRYPT_WINDOW_HANDLE_PROPERTY

L"HWND Handle"

Указатель на дескриптор окна (HWND), используемый в качестве родительского элемента любого отображаемого пользовательского интерфейса.

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

Следующие значения используются для определения пределов данных свойств.

Константа Значение Описание
NCRYPT_MAX_PROPERTY_DATA 0x100000 Задает максимальный размер значения свойства в байтах.
NCRYPT_MAX_PROPERTY_NAME 64 Указывает максимальный размер имени свойства в символах.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Заголовок Ncrypt.h

См. также раздел