Udostępnij przez


Identyfikatory właściwości pierwotnych kryptografii

W tym artykule wyjaśniono identyfikatory właściwości pierwotnych kryptografii używane z funkcjami BCryptGetProperty i BCryptSetProperty . Dowiedz się, jak te wartości pomagają identyfikować właściwości w algorytmach kryptograficznych.

BCRYPT_ALGORITHM_NAME

L"AlgorithmName"

Ciąg Unicode zakończony wartością null, który zawiera nazwę algorytmu.

BCRYPT_AUTH_TAG_LENGTH

L"AuthTagLength"

Długość tagów uwierzytelniania obsługiwanych przez algorytm. Ta właściwość jest strukturą BCRYPT_AUTH_TAG_LENGTHS_STRUCT . Ta właściwość ma zastosowanie tylko do algorytmów.

BCRYPT_BLOCK_LENGTH

L"BlockLength"

Rozmiar w bajtach bloku szyfrowania dla algorytmu. Ta właściwość ma zastosowanie tylko do algorytmów szyfrowania blokowego. Ten typ danych to DWORD.

BCRYPT_BLOCK_SIZE_LIST

L"BlockSizeList"

Lista długości bloków obsługiwanych przez algorytm szyfrowania. Ten typ danych jest tablicą DWORD. Liczbę elementów w tablicy można określić przez podzielenie liczby bajtów pobranych przez rozmiar pojedynczego dwordu.

BCRYPT_CHAINING_MODE

L"ChainingMode"

Wskaźnik do ciągu Unicode zakończonego wartością null, który reprezentuje tryb łańcucha algorytmu szyfrowania. Tę właściwość można ustawić na dojściu algorytmu lub dojściu klucza do jednej z następujących wartości.

Identyfikator Wartość Opis
BCRYPT_CHAIN_MODE_CBC L"ChainingModeCBC" Ustawia tryb łańcucha algorytmu na łańcuch bloków szyfrowania.
BCRYPT_CHAIN_MODE_CCM L"ChainingModeCCM" Ustawia tryb łańcucha algorytmu w celu przeciwdziałania trybowi CBC-MAC (CCM).
Obsługuje długości kluczy 128, 192 i 256 bitów.

Nuta: Ta wartość jest obsługiwana począwszy od systemu Windows Vista z dodatkiem SP1.
BCRYPT_CHAIN_MODE_CFB L"ChainingModeCFB" Ustawia tryb tworzenia łańcucha algorytmu w celu szyfrowania opinii.
BCRYPT_CHAIN_MODE_ECB L"ChainingModeECB" Ustawia tryb łańcucha algorytmu na elektroniczny koder.
BCRYPT_CHAIN_MODE_GCM L"ChainingModeGCM" Ustawia tryb łańcucha algorytmu na tryb Galois/counter (GCM).
Obsługuje długości kluczy 128, 192 i 256 bitów.

Nuta: Ta wartość jest obsługiwana począwszy od systemu Windows Vista z dodatkiem SP1.
BCRYPT_CHAIN_MODE_NA L"ChainingModeN/A" Algorytm nie obsługuje tworzenia łańcuchów.

BCRYPT_DH_PARAMETERS

L"DHParameters"

Określa parametry do użycia z kluczem Diffie-Hellman. Ten typ danych jest wskaźnikiem do struktury BCRYPT_DH_PARAMETER_HEADER . Tę właściwość można ustawić tylko i należy ustawić dla klucza przed ukończeniem klucza.

BCRYPT_DSA_PARAMETERS

L"DSAParameters"

Określa parametry do użycia z kluczem DSA. Ta właściwość jest strukturą BCRYPT_DSA_PARAMETER_HEADER lub BCRYPT_DSA_PARAMETER_HEADER_V2 . Tę właściwość można ustawić tylko i należy ustawić dla klucza przed ukończeniem klucza.

Windows 8: Począwszy od systemu Windows 8, ta właściwość może być strukturą BCRYPT_DSA_PARAMETER_HEADER_V2 . Użyj tej struktury, jeśli rozmiar klucza przekracza 1024 bity i jest mniejszy lub równy 3072 bitom. Jeśli rozmiar klucza jest większy lub równy 512, ale mniejszy lub równy 1024 bitom, użyj struktury BCRYPT_DSA_PARAMETER_HEADER .

BCRYPT_EFFECTIVE_KEY_LENGTH

L"EffectiveKeyLength"

Rozmiar (w bitach) efektywnej długości klucza RC2. Ten typ danych to DWORD.

BCRYPT_HASH_BLOCK_LENGTH

L"HashBlockLength"

Rozmiar bloku w bajtach dla skrótu. Ta właściwość ma zastosowanie tylko do algorytmów skrótu. Ten typ danych to DWORD.

BCRYPT_HASH_LENGTH

L"HashDigestLength"

Rozmiar w bajtach wartości skrótu dostawcy skrótu. Ten typ danych to DWORD.

BCRYPT_HASH_OID_LIST

L"HashOIDList"

Lista identyfikatorów obiektów skrótów zakodowanych w formacie DER (OID). Ta właściwość jest strukturą BCRYPT_OID_LIST . Tę właściwość można odczytać tylko.

BCRYPT_INITIALIZATION_VECTOR

L"IV"

Zawiera wektor inicjowania (IV) dla klucza. Ta właściwość dotyczy tylko kluczy.

BCRYPT_KEM_SHARED_SECRET_LENGTH

L"BCRYPT_KEM_SHARED_SECRET_LENGTH"

Rozmiar w bajtach wspólnego klucza tajnego klucza hermetyzacji (KEM). Ten typ danych to DWORD.

BCRYPT_KEM_CIPHERTEXT_LENGTH

L"BCRYPT_KEM_CIPHERTEXT_LENGTH"

Rozmiar w bajtach szyfru dla klucza mechanizmu hermetyzacji (KEM). Ten typ danych to DWORD.

BCRYPT_KEY_LENGTH

L"KeyLength"

Rozmiar w bitach wartości klucza dostawcy klucza symetrycznego. Ten typ danych to DWORD.

BCRYPT_KEY_LENGTHS

L"KeyLengths"

Długość klucza obsługiwana przez algorytm. Ta właściwość jest strukturą BCRYPT_KEY_LENGTHS_STRUCT . Ta właściwość ma zastosowanie tylko do algorytmów.

BCRYPT_KEY_OBJECT_LENGTH

L"KeyObjectLength"

Ta właściwość nie jest używana. Właściwość BCRYPT_OBJECT_LENGTH służy do uzyskiwania tych informacji.

BCRYPT_KEY_STRENGTH

L"KeyStrength"

Liczba bitów w kluczu. Ten typ danych to DWORD. Ta właściwość dotyczy tylko kluczy.

BCRYPT_MESSAGE_BLOCK_LENGTH

L"MessageBlockLength"

Można to ustawić na dowolnym dojściu klucza, który ma ustawiony tryb łańcucha CFB. Domyślnie ta właściwość jest ustawiona na 1 dla 8-bitowej cfB. Ustawienie go na rozmiar bloku w bajtach powoduje, że będzie używany pełny blok CFB. W przypadku kluczy XTS służy do ustawiania rozmiaru w bajtach jednostki danych XTS (zwykle 512 lub 4096).

BCRYPT_MULTI_OBJECT_LENGTH

L"MultiObjectLength"

Ta właściwość zwraca BCRYPT_MULTI_OBJECT_LENGTH_STRUCT, która zawiera informacje niezbędne do obliczenia rozmiaru buforu obiektu. Ta właściwość jest obsługiwana tylko w wersjach systemu operacyjnego, które obsługują funkcję BCryptCreateMultiHash .

BCRYPT_OBJECT_LENGTH

L"ObjectLength"

Rozmiar w bajtach podobiektu dostawcy. Ten typ danych to DWORD. Obecnie dostawcy algorytmów szyfrowania skrótu i symetrycznego używają przydzielonych przez obiekt wywołujący do przechowywania ich podobiektów. Na przykład dostawca skrótu wymaga przydzielenia pamięci dla obiektu skrótu uzyskanego za pomocą funkcji BCryptCreateHash . Ta właściwość udostępnia rozmiar buforu dla obiektu dostawcy, dzięki czemu można przydzielić pamięć dla obiektu utworzonego przez dostawcę.

BCRYPT_PADDING_SCHEMES

L"PaddingSchemes"

Reprezentuje schemat wypełnienia dostawcy algorytmu RSA. Ten typ danych to DWORD. Może to być jedna z następujących wartości:

Identyfikator Wartość Opis
BCRYPT_SUPPORTED_PAD_ROUTER 0x00000001 Dostawca obsługuje dopełnianie dodane przez router.
BCRYPT_SUPPORTED_PAD_PKCS1_ENC 0x00000002 Dostawca obsługuje schemat uzupełniania szyfrowania PKCS1.
BCRYPT_SUPPORTED_PAD_PKCS1_SIG 0x00000004 Dostawca obsługuje schemat uzupełniania podpisów PKCS1.
BCRYPT_SUPPORTED_PAD_OAEP 0x00000008 Dostawca obsługuje schemat uzupełniania OAEP.
BCRYPT_SUPPORTED_PAD_PSS 0x00000010 Dostawca obsługuje schemat uzupełniania PSS.

BCRYPT_PARAMETER_SET_NAME

L"ParameterSetName"

Ten identyfikator należy ustawić na ML-DSA BCrypt i ML-KEM kluczy, zanim będzie można je sfinalizować. Właściwość można ustawić na jedną z następujących wartości.

PQ-DSA wartości właściwości dla BCRYPT_PARAMETER_SET_NAME:

Identyfikator Wartość
BCRYPT_MLDSA_PARAMETER_SET_44 L"44"
BCRYPT_MLDSA_PARAMETER_SET_65 L"65"
BCRYPT_MLDSA_PARAMETER_SET_87 L"87"

ML-KEM wartości właściwości dla BCRYPT_PARAMETER_SET_NAME:

Identyfikator Wartość
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"

Dojście dostawcy CNG, który utworzył obiekt przekazany w parametrze hObject . Ten typ danych jest BCRYPT_ALG_HANDLE. Tę właściwość można pobrać tylko; nie można go ustawić.

BCRYPT_SIGNATURE_LENGTH

L"SignatureLength"

Rozmiar w bajtach długości podpisu klucza. Ten typ danych to DWORD. Ta właściwość dotyczy tylko kluczy. Tę właściwość można pobrać tylko; nie można go ustawić.

Wymagania

Wymaganie Wartość
Minimalny obsługiwany klient Windows Vista [tylko aplikacje klasyczne]
Minimalny obsługiwany serwer Windows Server 2008 [tylko aplikacje klasyczne]
Nagłówek Bcrypt.h

Pseudoujścia algorytmu CNG

Identyfikatory algorytmów CNG