Pengidentifikasi Properti Primitif Kriptografi

Artikel ini menjelaskan pengidentifikasi properti primitif kriptografi yang digunakan dengan fungsi BCryptGetProperty dan BCryptSetProperty . Pelajari bagaimana nilai-nilai ini membantu mengidentifikasi properti dalam algoritma kriptografi.

BCRYPT_ALGORITHM_NAME

L"AlgorithmName"

String Unicode yang dihentikan null yang berisi nama algoritma.

BCRYPT_AUTH_TAG_LENGTH

L"AuthTagLength"

Panjang tag autentikasi yang didukung oleh algoritma. Properti ini adalah struktur BCRYPT_AUTH_TAG_LENGTHS_STRUCT . Properti ini hanya berlaku untuk algoritma.

BCRYPT_BLOCK_LENGTH

L"BlockLength"

Ukuran, dalam byte, dari blok sandi untuk algoritma. Properti ini hanya berlaku untuk algoritma cipher blok. Jenis data ini adalah DWORD.

BCRYPT_BLOCK_SIZE_LIST

L"BlockSizeList"

Daftar panjang blok yang didukung oleh algoritma enkripsi. Jenis data ini adalah array DWORD. Jumlah elemen dalam array dapat ditentukan dengan membandingkan jumlah byte yang diambil oleh ukuran DWORD tunggal.

BCRYPT_CHAINING_MODE

L"ChainingMode"

Penunjuk ke string Unicode yang dihentikan null yang mewakili mode penautan algoritma enkripsi. Properti ini dapat diatur pada handel algoritma atau handel kunci ke salah satu nilai berikut.

Pengidentifikasi Nilai Deskripsi
BCRYPT_CHAIN_MODE_CBC L"ChainingModeCBC" Mengatur mode penautan algoritma ke rantai blok sandi.
BCRYPT_CHAIN_MODE_CCM L"ChainingModeCCM" Mengatur mode rantai algoritma untuk dilawan dengan mode CBC-MAC (CCM).
Mendukung panjang kunci 128, 192, dan 256 bit.

Nota: Nilai ini didukung dimulai dengan Windows Vista dengan SP1.
BCRYPT_CHAIN_MODE_CFB L"ChainingModeCFB" Mengatur mode penautan algoritma ke umpan balik sandi.
BCRYPT_CHAIN_MODE_ECB L"ChainingModeECB" Mengatur mode penautan algoritma ke buku kode elektronik.
BCRYPT_CHAIN_MODE_GCM L"ChainingModeGCM" Mengatur mode rantai algoritma ke Galois/mode penghitung (GCM).
Mendukung panjang kunci 128, 192, dan 256 bit.

Nota: Nilai ini didukung dimulai dengan Windows Vista dengan SP1.
BCRYPT_CHAIN_MODE_NA L"ChainingModen/A" Algoritma tidak mendukung penautan.

BCRYPT_DH_PARAMETERS

L"DHParameters"

Menentukan parameter yang akan digunakan dengan kunci Diffie-Hellman. Jenis data ini adalah penunjuk ke struktur BCRYPT_DH_PARAMETER_HEADER . Properti ini hanya dapat diatur dan harus diatur untuk kunci sebelum kunci selesai.

BCRYPT_DSA_PARAMETERS

L"DSAParameters"

Menentukan parameter yang akan digunakan dengan kunci DSA. Properti ini adalah struktur BCRYPT_DSA_PARAMETER_HEADER atau BCRYPT_DSA_PARAMETER_HEADER_V2 . Properti ini hanya dapat diatur dan harus diatur untuk kunci sebelum kunci selesai.

Windows 8: Dimulai dengan Windows 8, properti ini bisa menjadi struktur BCRYPT_DSA_PARAMETER_HEADER_V2 . Gunakan struktur ini jika ukuran kunci melebihi 1024 bit dan kurang dari atau sama dengan 3072 bit. Jika ukuran kunci lebih besar dari atau sama dengan 512 tetapi kurang dari atau sama dengan 1024 bit, gunakan struktur BCRYPT_DSA_PARAMETER_HEADER .

BCRYPT_EFFECTIVE_KEY_LENGTH

L"EffectiveKeyLength"

Ukurannya, dalam bit, dengan panjang efektif kunci RC2. Jenis data ini adalah DWORD.

BCRYPT_HASH_BLOCK_LENGTH

L"HashBlockLength"

Ukurannya, dalam byte, dari blok untuk hash. Properti ini hanya berlaku untuk algoritma hash. Jenis data ini adalah DWORD.

BCRYPT_HASH_LENGTH

L"HashDigestLength"

Ukurannya, dalam byte, dari nilai hash penyedia hash. Jenis data ini adalah DWORD.

BCRYPT_HASH_OID_LIST

L"HashOIDList"

Daftar pengidentifikasi objek hashing (OID) yang dikodekan DER. Properti ini adalah struktur BCRYPT_OID_LIST . Properti ini hanya dapat dibaca.

BCRYPT_INITIALIZATION_VECTOR

L"IV"

Berisi vektor inisialisasi (IV) untuk kunci. Properti ini hanya berlaku untuk kunci.

BCRYPT_KEM_SHARED_SECRET_LENGTH

L"KEMSharedSecretLength"

Ukurannya, dalam byte, dari rahasia bersama untuk kunci mekanisme enkapulasi kunci (KEM). Jenis data ini adalah DWORD.

BCRYPT_KEM_CIPHERTEXT_LENGTH

L"KEMCiphertextLength"

Ukurannya, dalam byte, dari ciphertext untuk kunci mekanisme enkapsulasi kunci (KEM). Jenis data ini adalah DWORD.

BCRYPT_PUBLIC_KEY_LENGTH

L"PublicKeyLength"

Ukuran, dalam bit, dari kunci publik. Jenis data ini adalah DWORD.

Ukuran spesifik yang dikembalikan ini bervariasi sesuai dengan algoritma. Untuk penggunaan terprogram, sebagian besar penelepon harus menggunakan pcbResult output panggilan BCryptExportKey .

Untuk sebagian besar algoritma, panjang yang dikembalikan sesuai dengan ukuran bit kunci publik berseri tanpa pengodean lebih lanjut. Untuk ECC, panjang yang dikembalikan sesuai dengan ukuran bit modulus bidang. Misalnya, meminta ukuran panjang kunci publik untuk kunci kurva P-256 mengembalikan 256 bit, meskipun kunci publik diwakili oleh sepasang koordinat 256-bit.

BCRYPT_KEY_LENGTH

L"KeyLength"

Ukuran, dalam bit, dari nilai kunci penyedia kunci konten. Jenis data ini adalah DWORD.

Ukuran spesifik yang dikembalikan ini bervariasi sesuai dengan algoritma. Untuk penggunaan terprogram, sebagian besar penelepon harus menggunakan pcbResult output panggilan BCryptExportKey .

BCRYPT_KEY_LENGTHS

L"KeyLengths"

Panjang kunci yang didukung oleh algoritma. Properti ini adalah struktur BCRYPT_KEY_LENGTHS_STRUCT . Properti ini hanya berlaku untuk algoritma.

BCRYPT_KEY_OBJECT_LENGTH

L"KeyObjectLength"

Properti ini tidak digunakan. Properti BCRYPT_OBJECT_LENGTH digunakan untuk mendapatkan informasi ini.

BCRYPT_KEY_STRENGTH

L"KeyStrength"

Jumlah bit dalam kunci. Jenis data ini adalah DWORD. Properti ini hanya berlaku untuk kunci.

BCRYPT_MESSAGE_BLOCK_LENGTH

L"MessageBlockLength"

Ini dapat diatur pada handel kunci apa pun yang memiliki set mode rantai CFB. Secara default, properti ini diatur ke 1 untuk CFB 8-bit. Mengaturnya ke ukuran blok dalam byte menyebabkan CFB blok penuh digunakan. Untuk kunci XTS digunakan untuk mengatur ukuran, dalam byte, dari Unit Data XTS (umumnya 512 atau 4096).

BCRYPT_MULTI_OBJECT_LENGTH

L"MultiObjectLength"

Properti ini mengembalikan BCRYPT_MULTI_OBJECT_LENGTH_STRUCT, yang berisi informasi yang diperlukan untuk menghitung ukuran buffer objek. Properti ini hanya didukung pada versi sistem operasi yang mendukung fungsi BCryptCreateMultiHash .

BCRYPT_OBJECT_LENGTH

L"ObjectLength"

Ukuran, dalam byte, dari subobjek penyedia. Jenis data ini adalah DWORD. Saat ini, penyedia algoritma sandi hash dan simetris menggunakan buffer yang dialokasikan penelepon untuk menyimpan subobjek mereka. Misalnya, penyedia hash mengharuskan Anda mengalokasikan memori untuk objek hash yang diperoleh dengan fungsi BCryptCreateHash . Properti ini menyediakan ukuran buffer untuk objek penyedia sehingga Anda dapat mengalokasikan memori untuk objek yang dibuat oleh penyedia.

BCRYPT_PADDING_SCHEMES

L"PaddingSchemes"

Mewakili skema padding penyedia algoritma RSA. Jenis data ini adalah DWORD. Ini bisa menjadi salah satu nilai berikut:

Pengidentifikasi Nilai Deskripsi
BCRYPT_SUPPORTED_PAD_ROUTER 0x00000001 Penyedia mendukung padding yang ditambahkan oleh router.
BCRYPT_SUPPORTED_PAD_PKCS1_ENC 0x00000002 Penyedia mendukung skema padding enkripsi PKCS1.
BCRYPT_SUPPORTED_PAD_PKCS1_SIG 0x00000004 Penyedia mendukung skema padding tanda tangan PKCS1.
BCRYPT_SUPPORTED_PAD_OAEP 0x00000008 Penyedia mendukung skema padding OAEP.
BCRYPT_SUPPORTED_PAD_PSS 0x00000010 Penyedia mendukung skema padding PSS.

BCRYPT_PARAMETER_SET_NAME

L"ParameterSetName"

Pengidentifikasi ini harus diatur pada ML-DSA BCrypt dan kunci ML-KEM sebelum dapat diselesaikan. Properti dapat diatur ke salah satu nilai berikut.

PQ-DSA nilai properti untuk BCRYPT_PARAMETER_SET_NAME:

Pengidentifikasi Nilai
BCRYPT_MLDSA_PARAMETER_SET_44 L"44"
BCRYPT_MLDSA_PARAMETER_SET_65 L"65"
BCRYPT_MLDSA_PARAMETER_SET_87 L"87"

ML-KEM nilai properti untuk BCRYPT_PARAMETER_SET_NAME:

Pengidentifikasi Nilai
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"

Handel penyedia CNG yang membuat objek diteruskan dalam parameter hObject . Jenis data ini adalah BCRYPT_ALG_HANDLE. Properti ini hanya dapat diambil; tidak dapat diatur.

BCRYPT_SIGNATURE_LENGTH

L"SignatureLength"

Ukuran, dalam byte, dengan panjang tanda tangan untuk kunci. Jenis data ini adalah DWORD. Properti ini hanya berlaku untuk kunci. Properti ini hanya dapat diambil; tidak dapat diatur.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Kepala Halaman Bcrypt.h

CNG Algoritma Pseudo-handles

Pengidentifikasi Algoritma CNG