Fungsi BCryptKeyDerivation (bcrypt.h)
Fungsi BCryptKeyDerivation memperoleh kunci tanpa memerlukan perjanjian rahasia. Ini mirip dalam fungsionalitas dengan BCryptDeriveKey tetapi tidak memerlukan nilai BCRYPT_SECRET_HANDLE sebagai input.
Sintaks
NTSTATUS BCryptKeyDerivation(
[in] BCRYPT_KEY_HANDLE hKey,
[in, optional] BCryptBufferDesc *pParameterList,
[out] PUCHAR pbDerivedKey,
[in] ULONG cbDerivedKey,
[out] ULONG *pcbResult,
[in] ULONG dwFlags
);
Parameter
[in] hKey
Handel kunci input.
[in, optional] pParameterList
Penunjuk ke struktur BCryptBufferDesc yang berisi parameter KDF. Parameter ini bersifat opsional dan dapat berupa NULL jika tidak diperlukan. Parameter dapat spesifik untuk fungsi derivasi kunci (KDF) atau generik. Tabel berikut menunjukkan parameter yang diperlukan dan opsional untuk KDF tertentu yang diterapkan oleh penyedia Microsoft Primitif.
KDF | Parameter | Diperlukan |
---|---|---|
SP800-108 HMAC dalam mode penghitung | KDF_LABEL | ya |
KDF_CONTEXT | ya | |
KDF_HASH_ALGORITHM | ya | |
SP800-56A | KDF_ALGORITHMID | ya |
KDF_PARTYUINFO | ya | |
KDF_PARTYVINFO | ya | |
KDF_HASH_ALGORITHM | ya | |
KDF_SUPPPUBINFO | tidak | |
KDF_SUPPPRIVINFO | tidak | |
PBKDF2 | KDF_HASH_ALGORITHM | ya |
KDF_SALT | ya | |
KDF_ITERATION_COUNT | tidak | |
CAPI_KDF | KDF_HASH_ALGORITHM | ya |
Parameter generik berikut dapat digunakan:
- KDF_GENERIC_PARAMETER
SP800-108 HMAC dalam mode penghitung:
- KDF_GENERIC_PARAMETER = KDF_LABEL||0x00||KDF_CONTEXT
SP800-56A
- KDF_GENERIC_PARAMETER = KDF_ALGORITHMID || KDF_PARTYUINFO || KDF_PARTYVINFO {|| KDF_SUPPPUBINFO } {|| KDF_SUPPPRIVINFO }
PBKDF2
- KDF_GENERIC_PARAMETER = KDF_SALT
- KDF_ITERATION_COUNT – default ke 10000
CAPI_KDF
- KDF_GENERIC_PARAMETER = Tidak Digunakan
[out] pbDerivedKey
Alamat buffer yang menerima kunci. Parameter cbDerivedKey berisi ukuran buffer ini.
[in] cbDerivedKey
Ukuran, dalam byte, dari buffer yang ditunjukkan oleh parameter pbDerivedKey .
[out] pcbResult
Penunjuk ke variabel yang menerima jumlah byte yang disalin ke buffer yang ditunjukkan oleh parameter pbDerivedKey .
[in] dwFlags
Bendera yang mengubah perilaku fungsi ini. Nilai berikut dapat digunakan dengan penyedia Microsoft Primitif.
Nilai | Makna |
---|---|
|
Menentukan bahwa algoritma target adalah AES dan oleh karena itu kunci harus diperluas dua kali lipat. Bendera ini hanya valid dengan algoritma CAPI_KDF. |
Mengembalikan nilai
Mengembalikan kode status yang menunjukkan keberhasilan atau kegagalan fungsi.
Keterangan
Anda dapat menggunakan pengidentifikasi algoritma berikut dalam fungsi BCryptOpenAlgorithmProvider sebelum memanggil BCryptKeyDerivation:
- BCRYPT_CAPI_KDF_ALGORITHM
- BCRYPT_SP800108_CTR_HMAC_ALGORITHM
- BCRYPT_SP80056A_CONCAT_ALGORITHM
- BCRYPT_PBKDF2_ALGORITHM
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8 [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2012 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | bcrypt.h |
Pustaka | Bcrypt.lib |
DLL | Bcrypt.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk