struktur BCRYPT_DH_PARAMETER_HEADER (bcrypt.h)
Struktur BCRYPT_DH_PARAMETER_HEADER digunakan untuk berisi informasi header parameter untuk kunci Diffie-Hellman. Struktur ini digunakan dengan properti BCRYPT_DH_PARAMETERS dalam fungsi BCryptSetProperty .
Sintaks
typedef struct _BCRYPT_DH_PARAMETER_HEADER {
ULONG cbLength;
ULONG dwMagic;
ULONG cbKeyLength;
} BCRYPT_DH_PARAMETER_HEADER;
Anggota
cbLength
Ukuran total, dalam byte, dari struktur ini dan buffer yang segera mengikuti struktur ini dalam memori.
dwMagic
Nilai ajaib untuk kunci.
Anggota ini harus menjadi nilai berikut.
BCRYPT_DH_PARAMETERS_MAGIC (0x4d504844)
cbKeyLength
Ukuran, dalam byte, dari kunci yang diterapkan struktur ini.
Keterangan
Struktur ini digunakan sebagai header untuk buffer yang lebih besar. Blok memori tunggal terdiri dari struktur ini diikuti dengan buffer ukuran cbKeyLength yang berisi nomor prima Diffie-Hellman, dan buffer lain dengan ukuran cbKeyLength yang berisi nomor generator Diffie-Hellman. Kedua angka ini dalam format big-endian.
Contoh berikut menunjukkan cara menghitung ukuran yang diperlukan untuk buffer ini dan cara mengisi anggota struktur ini.
// In this example, the rgbModulus variable is a byte array that contains the modulus in big-endian byte order.
// The rgbGenerator variable is a byte array that contains the generator in big-endian byte order.
ULONG cbDHParams = sizeof(BCRYPT_DH_PARAMETER_HEADER) + (cbKeySize * 2);
PBYTE pbDHParams = (PBYTE)malloc(cbDHParams);
if(!pbDHParams)
{
status = STATUS_NO_MEMORY;
goto Cleanup;
}
BCRYPT_DH_PARAMETER_HEADER *pDHParamHeader;
pDHParamHeader = (BCRYPT_DH_PARAMETER_HEADER*)pbDHParams;
pDHParamHeader->cbLength = cbDHParams;
pDHParamHeader->cbKeyLength = cbKeySize;
pDHParamHeader->dwMagic = BCRYPT_DH_PARAMETERS_MAGIC;
// Add the modulus to the parameters.
// The rgbModulus argument is a byte array that contains the modulus.
PBYTE pbTemp = (PBYTE)pbDHParams + sizeof(BCRYPT_DH_PARAMETER_HEADER);
CopyMemory(pbTemp, rgbModulus, pDHParamHeader->cbKeyLength);
// Add the generator to the parameters.
// The rgbGenerator argument is a byte array that contains the generator.
pbTemp += pDHParamHeader->cbKeyLength;
CopyMemory(pbTemp, rgbGenerator, pDHParamHeader->cbKeyLength);
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 [hanya aplikasi desktop] |
Header | bcrypt.h |