Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Структура BCRYPT_DH_PARAMETER_HEADER используется для хранения сведений о заголовке параметра для ключа Diffie-Hellman. Эта структура используется со свойством BCRYPT_DH_PARAMETERS в функции BCryptSetProperty .
Синтаксис
typedef struct _BCRYPT_DH_PARAMETER_HEADER {
ULONG cbLength;
ULONG dwMagic;
ULONG cbKeyLength;
} BCRYPT_DH_PARAMETER_HEADER;
Члены
cbLength
Общий размер (в байтах) этой структуры и буфера, который непосредственно следует за этой структурой в памяти.
dwMagic
Магическое значение для ключа.
Этот элемент должен иметь следующее значение.
BCRYPT_DH_PARAMETERS_MAGIC (0x4d504844)
cbKeyLength
Размер (в байтах) ключа, к которому применяется эта структура.
Комментарии
Эта структура используется в качестве заголовка для буфера большего размера. Один блок памяти состоит из этой структуры, за которой следует буфер размера cbKeyLength , содержащий Diffie-Hellman простое число, и другой буфер размера cbKeyLength , содержащий номер генератора Diffie-Hellman. Оба этих числа имеют формат big-endian.
В следующем примере показано, как вычислить размеры, необходимые для этого буфера, и как заполнить элементы этой структуры.
// 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);
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows Vista [только классические приложения] |
| Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
| Верхняя часть | bcrypt.h |