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


Идентификаторы примитивных свойств криптографии

В этой статье описываются идентификаторы примитивных свойств шифрования, используемые с функциями BCryptGetProperty и BCryptSetProperty . Узнайте, как эти значения помогают определить свойства в криптографических алгоритмах.

BCRYPT_ALGORITHM_NAME

L"AlgorithmName"

Строка Юникода, завершающаяся значением NULL, содержащая имя алгоритма.

BCRYPT_AUTH_TAG_LENGTH

L"AuthTagLength"

Длина тега проверки подлинности, поддерживаемая алгоритмом. Это свойство является BCRYPT_AUTH_TAG_LENGTHS_STRUCT структурой . Это свойство применяется только к алгоритмам.

BCRYPT_BLOCK_LENGTH

L"BlockLength"

Размер блока шифра в байтах для алгоритма. Это свойство применяется только к алгоритмам блочного шифра. Этот тип данных является DWORD.

BCRYPT_BLOCK_SIZE_LIST

L"BlockSizeList"

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

BCRYPT_CHAINING_MODE

L"ChainingMode"

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

Идентификатор Ценность Описание
BCRYPT_CHAIN_MODE_CBC L"ChainingModeCBC" Задает режим цепочки алгоритма для цепочки шифров.
BCRYPT_CHAIN_MODE_CCM L"ChainingModeCCM" Задает режим цепочки алгоритма для счетчика с режимом CBC-MAC (CCM).
Поддерживает длину ключей 128, 192 и 256 битов.

Заметка: Это значение поддерживается начиная с Windows Vista с пакетом обновления 1 (SP1).
BCRYPT_CHAIN_MODE_CFB L"ChainingModeCFB" Задает режим цепочки алгоритма для обратной связи с шифром.
BCRYPT_CHAIN_MODE_ECB L"ChainingModeECB" Задает режим цепочки алгоритма в электронную кодовую книгу.
BCRYPT_CHAIN_MODE_GCM L"ChainingModeGCM" Задает режим цепочки алгоритма в режиме Galois/counter (GCM).
Поддерживает длину ключей 128, 192 и 256 битов.

Заметка: Это значение поддерживается начиная с Windows Vista с пакетом обновления 1 (SP1).
BCRYPT_CHAIN_MODE_NA L"ChainingModeN/A" Алгоритм не поддерживает цепочку.

BCRYPT_DH_PARAMETERS

L"DHParameters"

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

BCRYPT_DSA_PARAMETERS

L"DSAParameters"

Задает параметры, используемые с ключом DSA. Это свойство является BCRYPT_DSA_PARAMETER_HEADER или структурой BCRYPT_DSA_PARAMETER_HEADER_V2 . Это свойство может быть задано только перед завершением ключа.

Windows 8: Начиная с Windows 8, это свойство может быть BCRYPT_DSA_PARAMETER_HEADER_V2 структурой . Используйте эту структуру, если размер ключа превышает 1024 бита и меньше или равен 3072 битам. Если размер ключа больше или равен 512, но меньше или равен 1024 битам, используйте структуру BCRYPT_DSA_PARAMETER_HEADER .

BCRYPT_EFFECTIVE_KEY_LENGTH

L"EffectiveKeyLength"

Размер( в битах) эффективной длины ключа RC2. Этот тип данных является DWORD.

BCRYPT_HASH_BLOCK_LENGTH

L"HashBlockLength"

Размер блока в байтах для хэша. Это свойство применяется только к хэш-алгоритмам. Этот тип данных является DWORD.

BCRYPT_HASH_LENGTH

L"HashDigestLength"

Размер хэша поставщика хэша в байтах. Этот тип данных является DWORD.

BCRYPT_HASH_OID_LIST

L"HashOIDList"

Список идентификаторов объектов в кодировке DER (OID). Это свойство является BCRYPT_OID_LIST структурой . Это свойство можно прочитать только.

BCRYPT_INITIALIZATION_VECTOR

L"IV"

Содержит вектор инициализации (IV) для ключа. Это свойство применяется только к ключам.

BCRYPT_KEM_SHARED_SECRET_LENGTH

L"KEMSharedSecretLength"

Размер в байтах общего секрета для ключа инкапсуляции ключа (KEM). Этот тип данных является DWORD.

BCRYPT_KEM_CIPHERTEXT_LENGTH

L"KEMCiphertextLength"

Размер шифра в байтах для ключа инкапсулирования ключа (KEM). Этот тип данных является DWORD.

BCRYPT_PUBLIC_KEY_LENGTH

L"PublicKeyLength"

Размер открытого ключа в битах. Этот тип данных является DWORD.

Этот конкретный размер, возвращаемый, зависит от алгоритма. Для программного использования большинство вызывающих объектов должны использовать pcbResult выходные данные вызова BCryptExportKey .

Для большинства алгоритмов возвращаемая длина соответствует битовому размеру сериализованного открытого ключа без дополнительной кодировки. Для ECC возвращаемая длина соответствует битовой величине модуля поля. Например, запрос размера длины открытого ключа для ключа кривой P-256 возвращает 256 бит, даже если открытый ключ представлен парой 256-разрядных координат.

BCRYPT_KEY_LENGTH

L"KeyLength"

Размер в битах значения ключа поставщика симметричного ключа. Этот тип данных является DWORD.

Этот конкретный размер, возвращаемый, зависит от алгоритма. Для программного использования большинство вызывающих объектов должны использовать pcbResult выходные данные вызова BCryptExportKey .

BCRYPT_KEY_LENGTHS

L"KeyLengths"

Длина ключа, поддерживаемая алгоритмом. Это свойство является структурой BCRYPT_KEY_LENGTHS_STRUCT . Это свойство применяется только к алгоритмам.

BCRYPT_KEY_OBJECT_LENGTH

L"KeyObjectLength"

Это свойство не используется. Свойство BCRYPT_OBJECT_LENGTH используется для получения этих сведений.

BCRYPT_KEY_STRENGTH

L"KeyStrength"

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

BCRYPT_MESSAGE_BLOCK_LENGTH

L"MessageBlockLength"

Это можно задать для любого дескриптора ключей, имеющего набор режимов цепочки CFB. По умолчанию это свойство имеет значение 1 для 8-разрядного CFB. Установка размера блока в байтах приводит к использованию полноблокового CFB. Для ключей XTS он используется для задания размера в байтах единицы данных XTS (обычно 512 или 4096).

BCRYPT_MULTI_OBJECT_LENGTH

L"MultiObjectLength"

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

BCRYPT_OBJECT_LENGTH

L"ObjectLength"

Размер в байтах подобъекта поставщика. Этот тип данных является DWORD. В настоящее время поставщики хэш-и симметричного алгоритма шифра используют выделенные вызывающим буферы для хранения подобъектов. Например, поставщик хэша требует выделения памяти для хэш-объекта, полученного с помощью функции BCryptCreateHash . Это свойство предоставляет размер буфера для объекта поставщика, чтобы можно было выделить память для объекта, созданного поставщиком.

BCRYPT_PADDING_SCHEMES

L"PaddingSchemes"

Представляет схему заполнения поставщика алгоритмов RSA. Этот тип данных является DWORD. Может иметь одно из следующих значений:

Идентификатор Ценность Описание
BCRYPT_SUPPORTED_PAD_ROUTER 0x00000001 Поставщик поддерживает заполнение, добавленное маршрутизатором.
BCRYPT_SUPPORTED_PAD_PKCS1_ENC 0x00000002 Поставщик поддерживает схему заполнения шифрования PKCS1.
BCRYPT_SUPPORTED_PAD_PKCS1_SIG 0x00000004 Поставщик поддерживает схему заполнения подписей PKCS1.
BCRYPT_SUPPORTED_PAD_OAEP 0x00000008 Поставщик поддерживает схему заполнения OAEP.
BCRYPT_SUPPORTED_PAD_PSS 0x00000010 Поставщик поддерживает схему заполнения PSS.

BCRYPT_PARAMETER_SET_NAME

L"ParameterSetName"

Этот идентификатор необходимо задать в BCrypt ML-DSA и ML-KEM ключей, прежде чем их можно будет завершить. Для свойства можно задать одно из следующих значений.

PQ-DSA значения свойств для BCRYPT_PARAMETER_SET_NAME:

Идентификатор Ценность
BCRYPT_MLDSA_PARAMETER_SET_44 L"44"
BCRYPT_MLDSA_PARAMETER_SET_65 L"65"
BCRYPT_MLDSA_PARAMETER_SET_87 L"87"

ML-KEM значения свойств для BCRYPT_PARAMETER_SET_NAME:

Идентификатор Ценность
BCRYPT_MLKEM_PARAMETER_SET_512 L"512"
BCRYPT_MLKEM_PARAMETER_SET_768 L"768"
BCRYPT_MLKEM_PARAMETER_SET_1024 L"1024"

BCRYPT_PROVIDER_HANDLE

L"ProviderHandle"

Дескриптор поставщика CNG, создавшего объект, переданный в параметре hObject . Этот тип данных является BCRYPT_ALG_HANDLE. Это свойство можно получить только; его нельзя задать.

BCRYPT_SIGNATURE_LENGTH

L"SignatureLength"

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

Требования

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

Псевдо-дескриптор алгоритма CNG

Идентификаторы алгоритма CNG